# How Caveman Differentiates Standard Acronyms from Invented Abbreviations in Ultra Mode

> Discover how Caveman's ultra mode differentiates standard acronyms from invented abbreviations using mode-specific rules in skill definition files for cleaner code.

- Repository: [Julius Brussee/caveman](https://github.com/JuliusBrussee/caveman)
- Tags: deep-dive
- Published: 2026-07-07

---

**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`](https://github.com/JuliusBrussee/caveman/blob/main/skills/caveman/SKILL.md)

The distinction originates in the skill definition markdown. Lines 21–22 of [`skills/caveman/SKILL.md`](https://github.com/JuliusBrussee/caveman/blob/main/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`](https://github.com/JuliusBrussee/caveman/blob/main/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:

```javascript
// Activate ultra mode via the slash command
await sendMessage('/caveman ultra');

```

Then query the model:

```javascript
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:

```javascript
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.md`](https://github.com/JuliusBrussee/caveman/blob/main/skills/caveman/SKILL.md) and enforced through the prompt template activated by [`src/plugins/opencode/plugin.js`](https://github.com/JuliusBrussee/caveman/blob/main/src/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`](https://github.com/JuliusBrussee/caveman/blob/main/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`](https://github.com/JuliusBrussee/caveman/blob/main/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`](https://github.com/JuliusBrussee/caveman/blob/main/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`](https://github.com/JuliusBrussee/caveman/blob/main/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.