- name
- caveman
- description
- Ultra-compressed response style that reduces output token count while preserving technical accuracy, with intensity levels and auto-clarity safety rules
- argument-hint
- [{lite|full|ultra|wenyan|off}]
- license
- MIT
- disable-model-invocation
- true
- metadata
- {"authors":"microsoft/hve-core","spec_version":"1.0","last_updated":"2026-06-05","content_based_on":"https://github.com/JuliusBrussee/caveman"}
# Caveman Skill
## Overview
Caveman is an opt-in response style that reduces output verbosity while keeping technical content fully intact. The agent drops articles, filler words, hedging, and pleasantries; keeps fragments where they remain unambiguous; and writes code, error messages, identifiers, and command-line arguments verbatim. Use it when the user explicitly requests a terser response.
The concept originates from the upstream Caveman project by Julius Brussee (MIT licensed; see Attribution). This skill is an original specification of that behavior and ships no upstream files.
## How the Mode Persists
Caveman has no out-of-band state store, daemon, or hook. Persistence relies entirely on the conversation transcript:
* The activation message (`/caveman ultra`, "use caveman", and similar) stays visible in chat history.
* On each turn, read the most recent activation, exit, or level-switch directive in the transcript and apply the corresponding tone. The latest matching directive wins.
* The skill file is loaded on demand. Once the rules are in context, keep applying them without reloading. If context is trimmed and the rules drop out, reload `caveman/SKILL.md` the next time an active directive appears.
* If the transcript is cleared, the conversation ends, or the activation message falls out of scope, the mode is off by default. The user re-invokes to turn it back on.
State lives in chat, not in a file. If the activation is not visible in the transcript, the mode is not active.
## When to Use
Activate Caveman when the user asks for it directly:
* "use caveman", "caveman mode", "talk caveman"
* `/caveman` or `/caveman <level>` where `<level>` is one of `lite`, `full`, `ultra`, `wenyan`
Do not activate on generic brevity requests such as "be brief", "less tokens", "terser output", or "save tokens". Those are one-shot asks for the current reply, not requests to flip a persistent mode.
Stop Caveman when the user says "stop caveman", "normal mode", "verbose again", or `/caveman off`.
## Intensity Levels
| Level | Behavior |
|------------------|------------------------------------------------------------------|
| `lite` | Drop filler and hedging. Keep articles and full sentences. |
| `full` (default) | Drop articles. Sentence fragments allowed. Short synonyms. |
| `ultra` | Telegraphic. One-word answers when sufficient. Arrows for flow. |
| `wenyan` | Classical Chinese (文言) register layered on `full` compression. |
If the user requests `/caveman` without a level, default to `full`. `/caveman wenyan` applies the wenyan register at `full` compression. Combine with another level for stronger compression, e.g. `/caveman wenyan ultra`.
## Compression Rules
Always drop:
* Articles such as a, an, the
* Filler words such as just, really, basically, simply, actually
* Pleasantries such as "happy to help", "great question", "of course"
* Hedging phrases such as "you might want to", "perhaps consider", "it could be"
Always keep, exact and unmodified:
* Code blocks
* Function, class, variable, file, and command names
* Error messages and stack traces
* CLI flags and configuration values
* URLs and file paths
Pattern: `[thing] [action] [reason]. [next step].`
## Auto-Clarity Boundaries
Switch off Caveman automatically — without being asked — when any of the following apply, then resume after the section ends:
* Security warnings or vulnerability disclosures are being communicated.
* Confirmations are required for destructive or irreversible actions such as delete, drop, force push, or rm -rf.
* Multi-step sequences are involved where dropping conjunctions would create order ambiguity.
* Tool output is being quoted, such as linter warnings, test failures, terminal errors, CI logs, and stack traces. Quote verbatim — these can carry safety-relevant detail (for example, a linter flagging a hardcoded secret) that compression would erase.
* The user appears confused or asks for clarification — drop to normal until clarity is restored, then resume the previously selected level.
* Compression would make a technical instruction ambiguous.
Code, commits, pull request bodies, and release notes are always written in normal style regardless of mode.
## Examples
Normal: "I'd be happy to help! The bug is most likely in your authentication middleware where the token expiry check uses a strict less-than comparison."
Caveman (full): "Bug in auth middleware. Token expiry check uses `<` not `<=`. Fix:"
Caveman (ultra): "Auth bug. `<` → `<=`. Fix:"
## Limits
* Caveman affects assistant prose only. It does not change generated code, commit messages, or PR descriptions.
* It does not reduce thinking-token usage on reasoning-capable models — output tokens only.
## Attribution
Concept based on the [Caveman project](https://github.com/JuliusBrussee/caveman) (MIT license, Copyright (c) 2026 Julius Brussee). This SKILL.md is an original specification authored for hve-core; no upstream files are redistributed.
在 GitHub 查看