github JuliusBrussee/caveman v3.1.0
Caveman 3.1.0

3 hours ago

Three skills replace six intensity levels, the reviewed fix stack lands, and the repo maintenance that piled up since 3.0.0 comes with it. 106 commits over main.

The skill, rethought for current models

/caveman is the voice. /ultracave strips the grammar. /megacave speaks classical Chinese. Each is a self-contained skills/<id>/SKILL.md in the same shape: thesis, persistence, why, numbered rules with bad/good pairs, when to break the rules, pre-send check. Simplified Technical English (ASD-STE100) is the floor under all three instead of a competing register. The tool-call silence ban becomes one status line per phase (#1127, #1154), and the host harness outranks the skill on when to speak (#1125). /caveman lite|full|ultra|wenyan* keep working as aliases; stored sessions migrate on read.

Hooks: mode ids are now caveman, ultracave, megacave (+ one-shots, off); legacy values map on every read path; the SessionStart hook injects the active skill whole; per-turn reinforcement is derived from the skill's thesis line; statusline renders [CAVEMAN], [ULTRACAVE], [MEGACAVE]; an outdated statusline copy pinned to a plugin-cache path now triggers the repair nudge. The always-on rule copies (IDE rules, opencode AGENTS.md, OpenClaw, extension, cavecrew agents, Codex/Gemini stubs, Codex plugin mirror) are regenerated or hand-synced with a drift test. Design record: docs/technical/three-skills-refactor.md.

Evals were rerun on claude-opus-5-5 with host settings isolated: vs a plain Answer concisely. control, median output reduction is caveman 3%, ultracave 35%, megacave 9% (n=10, single run, length only). README and HONEST-NUMBERS cite exactly that. Owner decision: the default voice adds little over "be concise" on this model; ultracave carries the savings.

Fix stack (PRs #1163 #1157 #1158 #1159 #1160 #1161 #1162, merged as one)

Proxy session-marker correlation and silent CCR failures (#1105 #1110 #1149 #1113); engine JSON elision, non-finite cells, shrink sentinel (#1151 #1095); CLI dangling hooks, shrink hook permissions, Codex TOML, Remote Control, opencode OAuth, watermark locks (#1137 #1138 #1133 #1134 #1101 #1119 #1116 #1132); statusline nudge path (#1147); Codex SessionStart honors defaultMode (#185 #1139); caveman-compress streaming/ceiling/pairing (#1131 #1107). #1164 (Pi recovery proof, Pi 1.0.0) is not here: it must wait for a caveman-mcp binary release.

Maintenance

  • maintenance/2026-09-20: /caveman status, defaultMode: "manual".
  • Contributor PRs merged: #1078 (C++ parse gate), #1076 (GDScript elision), #1156 (syslog severities), #1108 (delete dead proxy/routing), #1084 (Grok Build install, closes #547), #1062 (eval snapshot contract).
  • Daily-triage remnants cherry-picked: Python encoding fixes, merge scope check, the conformance pin-bump chain (#978 #1096 #1097 #1098 #1099 #1100 #1109 #1118).
  • Dependabot: #1144 #1143 #1141 #1140 merged. #1142 (TypeScript 7, @types/node 26) reverted: its own CI was red.
  • Pins bumped to v3.1.0 everywhere the shim-security test checks, plus the Gemini and Codex plugin manifests.

Don't miss a new caveman release

NewReleases is sending notifications on new releases.