How Caveman Differentiates Standard Acronyms from Invented Abbreviations in Ultra Mode
In ultra mode, Caveman explicitly allows globally recognized tech acronyms like DB, API, and HTTP while prohibiting invented shorthand such as cfg, impl, or auth through mode-specific rules encoded in its skill definition files.
The Caveman compression engine, developed in the JuliusBrussee/caveman repository, uses a strict policy to determine which short forms survive in ultra mode. This differentiation between standard acronyms and invented abbreviations is hardcoded into the skill configuration to optimize token economy without sacrificing clarity.
The Rule Set in skills/caveman/SKILL.md
The distinction originates in the skill definition markdown. Lines 21–22 of skills/caveman/SKILL.md explicitly state:
“Standard well‑known tech acronyms OK (DB/API/HTTP); never invent new abbreviations (cfg/impl/req/res/fn) — tokenizer splits them the same as a full word, so they give no token saving and hurt readability.”
This rule establishes that while universal technology terms are permitted, any non-standard shorthand is rejected because the tokenizer processes these invented abbreviations as individual tokens, eliminating any compression benefit and reducing readability.
Ultra Mode Intensity Restrictions
The ultra intensity table in lines 38–39 of the same file adds concrete prohibitions:
“NO prose abbreviations (cfg/impl/req/res/fn/auth), NO arrows (X → Y) — own token, save nothing. Code symbols, function names, API names, error strings: never touch.”
These restrictions ensure that ultra mode maintains maximum clarity by only allowing acronyms that are universally understood in technical contexts.
How the Caveman Plugin Enforces These Rules
Unlike a runtime parser, the Caveman plugin implements this policy through system prompt engineering. When a user sends /caveman ultra in the chat, the command handler in src/plugins/opencode/plugin.js activates the ultra rule set. The resulting prompt template instructs the LLM to preserve standard acronyms because they are part of the global technical vocabulary, while explicitly avoiding invented abbreviations that lack universal recognition.
Practical Examples: Ultra Mode vs. Full Mode
The difference becomes visible when comparing outputs across modes.
First, activate ultra mode:
// Activate ultra mode via the slash command
await sendMessage('/caveman ultra');
Then query the model:
await sendMessage('Explain how the API layer authenticates a request.');
Ultra mode output:
API validates token, checks DB for user, returns 200 if ok.
Notice that API and DB remain intact because they are standard acronyms, while cfg and auth are absent.
By contrast, in full mode, the restriction is relaxed:
await sendMessage('/caveman full');
await sendMessage('Explain how the API layer authenticates a request.');
Full mode output:
API validates token, checks cfg for user, returns 200 if auth passes.
Here, the invented abbreviations cfg and auth appear because the full-mode rule set permits non-standard shorthand.
Summary
- Standard acronyms (
DB,API,HTTP) are permitted in ultra mode because they are globally recognized and preserve token economy. - Invented abbreviations (
cfg,impl,req,res,fn,auth) are prohibited in ultra mode as they do not reduce token count and harm readability. - Rules are defined in
skills/caveman/SKILL.mdand enforced through the prompt template activated bysrc/plugins/opencode/plugin.js. - The distinction is achieved through system prompt design rather than post-processing parsers.
Frequently Asked Questions
Why does Caveman block invented abbreviations specifically in ultra mode?
Caveman blocks invented abbreviations in ultra mode because the tokenizer splits them as individual tokens, providing no compression benefit while reducing clarity. According to the skill definition in skills/caveman/SKILL.md, these non-standard shorthand forms "give no token saving and hurt readability" compared to full words.
Which file contains the specific list of allowed acronyms?
The allowed acronyms and prohibited abbreviations are documented in skills/caveman/SKILL.md. Lines 21–22 explicitly list the standard tech acronyms (DB/API/HTTP) as acceptable, while lines 38–39 enumerate the prohibited invented forms (cfg/impl/req/res/fn/auth) for ultra mode.
Is there a way to customize which abbreviations are allowed in ultra mode?
Currently, Caveman does not support runtime customization of the acronym policy for ultra mode. The rules are hardcoded into the skill markdown and the resulting system prompt. To modify allowed abbreviations, you would need to edit skills/caveman/SKILL.md and rebuild the plugin configuration.
How does the plugin know which mode is active?
The Caveman plugin in src/plugins/opencode/plugin.js parses the /caveman slash command to determine the active mode. When it receives /caveman ultra, it loads the ultra-specific rule set from the skill definition and injects the corresponding behavioral constraints into the system prompt sent to the LLM.
Have a question about this repo?
These articles cover the highlights, but your codebase questions are specific. Give your agent direct access to the source. Share this with your agent to get started:
curl -s "https://instagit.com/install.md" Maintain an open-source project? Get it listed too →