- Add utils/docker/version_updater.py with CLI for updating Docker image versions - Add cli/fix/docker_image_versions module wrapping the updater - Add .github/workflows/update.yml replacing update-skills.yml - Add scripts/github/ helpers: check_git_changes, install_update_python, open_update_pr, update_docker_image_versions - Add tests/lint/filesystem/ for scripts/ and utils/ folder file-type enforcement - Add tests/lint/ansible/ for legacy module usage and vars usage checks - Reorganize tests/lint/repository/ and move test_vars_usage_in_yaml.py to ansible/ - Add artefact docs: files/github/workflow.md, scripst.md, utils.md - Apply documentation.md standards to all modified markdown files Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2.6 KiB
Caveman: Token Compression
Caveman is a token-compression plugin installed via make install-skills. It reduces output token consumption through progressively terser communication styles. Installation uses make install-skills (scripts/install/skills/install.sh), which restores all skills from skills-lock.json reproducibly. This works universally across all supported agents: Claude Code, Codex, Gemini CLI, Cursor, Copilot, Windsurf, Cline, and more. Skills are kept up to date via the daily update CI workflow or manually with make update-skills.
Default Mode
Agents MUST operate in /caveman lite mode by default. Lite keeps grammar and readability intact while still reducing output size.
Startup Notification
At the start of every conversation, before doing any other work, the agent MUST display the following block verbatim (substituting the active mode if it has been changed by the user):
[caveman: lite] Switch: /caveman full · /caveman ultra · /caveman wenyan-lite · /caveman wenyan · /caveman wenyan-ultra · stop caveman
Mode Reference
| Command | Style | Use when |
|---|---|---|
/caveman lite |
Professional brevity, grammar intact | Default: balanced readability |
/caveman full |
Fragment-based, drops articles | Context growing, prefer brevity |
/caveman ultra |
Maximally compressed, telegraphic | Context critical, every token counts |
/caveman wenyan-lite |
Classical Chinese, semi-formal | Alternative compression style |
/caveman wenyan |
Full classical Chinese terseness | Deep compression, classical style |
/caveman wenyan-ultra |
Extreme classical compression | Maximum reduction |
stop caveman |
Normal prose | User explicitly requests full output |
Tier Progression: Token Budget Guidance
As the conversation grows, the agent MUST proactively suggest a higher tier. Base the estimate on observable signals: message count, response sizes, and whether context compression has been triggered by the system.
| Approximate token budget consumed | Action |
|---|---|
| < 20 % | Stay on current tier. No suggestion needed. |
| ≥ 20 % | Recommend upgrading from lite → full |
| ≥ 50 % | Recommend upgrading from full → ultra |
| ≥ 75 % | Strongly recommend ultra (or a wenyan variant); warn that context is running low |
Suggestions MUST be short, inline, and non-blocking. Example:
[caveman: lite | ~30 % context used → consider /caveman full]
The agent MUST NOT interrupt work to ask about tier changes. Recommendations appear as a single line at the start of the next response after the threshold is crossed.