32 lines
1.8 KiB
Markdown
32 lines
1.8 KiB
Markdown
# skills/caveman-learn — the Caveman Learn editing skill (MIT, public)
|
|
|
|
The consent-gated half of `caveman learn`. The analyzer (the Go proxy) **measures**
|
|
where an agent's tokens go and writes a ranked plan; this skill is what an agent
|
|
loads to **act** on that plan — proposing each fix and applying it only with the
|
|
user's per-edit yes. It is the loop-closer the learn spec §10
|
|
describes, plus the new `cavemem_offload` move.
|
|
|
|
## Layout
|
|
- `SKILL.md` — the canonical skill body (frontmatter `name: caveman-learn` + a
|
|
trigger-phrase `description`; body = the read-plan → per-class consent loop). This
|
|
file is the source of truth.
|
|
- `tests/skill-file.test.mjs` — asserts the canonical file is well-formed and honest
|
|
(frontmatter present; the net-token-negative gate, the never-make-the-agent-dumber
|
|
guard, consent-per-edit, and reversibility are all stated; no imperative for
|
|
behavioral findings; no placeholders).
|
|
|
|
## Install path
|
|
`caveman tools skills install caveman-learn` (in `../../cli/src/index.ts`) writes this file
|
|
into a repo's `.claude/skills/caveman-learn/SKILL.md` (Claude Code) or
|
|
`~/.codex/skills/caveman-learn/SKILL.md` (Codex). The CLI **embeds a byte-identical copy**
|
|
(`CAVEMAN_LEARN_SKILL_MD`) because the published CLI ships no sibling assets;
|
|
`../../cli/tests/skills.runtime.mjs` asserts the embedded copy equals this canonical
|
|
file (the drift guard). **Change this file and that constant together.**
|
|
|
|
## Boundary (binding)
|
|
The skill — using the agent's own file tools — is the ONLY thing that edits a user's
|
|
config. `caveman learn apply` stays read-only (it materializes candidates), and
|
|
`caveman mem *` are mechanical store ops. The offload move enforces a net-token-negative
|
|
gate and the never-make-the-agent-dumber guard before any trim.
|
|
|
|
See ../../mem/CLAUDE.md (cavemem) · ../caveman-explore/SKILL.md (the packaging precedent)
|