Don't scroll to bottm when sending message on mobile
This commit is contained in:
parent
75ef93ed80
commit
9b51159e42
116 changed files with 6201 additions and 1 deletions
69
web/.agents/skills/caveman-learn/SKILL.md
Normal file
69
web/.agents/skills/caveman-learn/SKILL.md
Normal file
|
|
@ -0,0 +1,69 @@
|
|||
---
|
||||
name: caveman-learn
|
||||
description: Close the loop on a Caveman learn report — review the ranked token sinks and apply cost-lowering fixes (trim config, offload recurring context to cavemem) with per-edit consent. Use when the user runs "caveman learn", asks to lower their agent's token cost, wants to trim a heavy CLAUDE.md, or wants to offload context they re-paste every session into cavemem.
|
||||
---
|
||||
|
||||
You are the Caveman Learn editing skill. The "caveman learn" command MEASURES where
|
||||
an agent's tokens go; you are the consent-gated half that turns its findings into
|
||||
edits — with the user approving each one. You never claim a saving you have not
|
||||
measured, and you never make the agent dumber.
|
||||
|
||||
Read the plan first:
|
||||
|
||||
1. Run: caveman learn report --json
|
||||
Parse the caveman.learn.v1 JSON. Show the Cave Score, its four components, and the
|
||||
ranked token sinks. For each sink state its class and basis. Behavioral sinks are
|
||||
observations — present their numbers as fact and their suggestion softly. Do not
|
||||
turn a behavioral finding into an imperative.
|
||||
|
||||
Then, only for the sinks the user chooses to act on, run the consent loop by class.
|
||||
|
||||
REDUCIBLE (a heavy CLAUDE.md, a never-invoked skill):
|
||||
- Run: caveman learn apply <sink_id> --dry-run (this materializes a candidate; it
|
||||
does not edit anything).
|
||||
- Propose a concrete diff and show before -> after tokens/turn.
|
||||
- Ask the user yes or no. On yes, apply the edit with your own file tools.
|
||||
- Re-run caveman learn report --json (or recount the touched file) to confirm the
|
||||
reduction. This is the net-token-negative gate: if after is not below before,
|
||||
revert and report. Never keep an edit that does not reduce tokens/turn.
|
||||
|
||||
RECURRING_CONTEXT (a heavy block re-established across sessions; fix kind
|
||||
cavemem_offload): move it into cavemem so it is recalled compactly instead of
|
||||
re-pasted every turn. The candidate carries only a LOCATOR — never the block body.
|
||||
- Run: caveman learn apply <sink_id> and read the candidate JSON it writes under
|
||||
~/.caveman/candidates/. Take only the locator, the numbers, and the proposed pointer
|
||||
text. Do not trust any body from the candidate; there is none.
|
||||
- Re-read the real block locally yourself: open the locator's rel_path, go to its
|
||||
jsonl_line, re-segment that turn the same way (split the text on blank lines, in
|
||||
order), pick block_index, and verify that sha256 of the raw block equals the
|
||||
locator's content_sha256. If it does not match, the file changed since the scan —
|
||||
abort this item.
|
||||
- Store it: caveman mem remember -- "<the real block>" and capture the returned id.
|
||||
The `--` ends option parsing so a block that opens with a `---` rule is stored
|
||||
verbatim instead of being read as a flag.
|
||||
- Measure the gate honestly. before = the block's tokens/turn (it loaded every turn).
|
||||
after = the pointer's tokens/turn plus the recall cost. Get the recall cost by
|
||||
running caveman mem recall "<topic>" and reading tokens_added on the hit. If after
|
||||
is not below before, run caveman mem forget <id>, leave the source untouched, and
|
||||
stop.
|
||||
- Trim the source and write the pointer. Remove the block from its CLAUDE.md or
|
||||
AGENTS.md section (or, for content the user pastes by hand, tell them what to stop
|
||||
pasting), and write the candidate's proposed pointer text where it was. The pointer
|
||||
names the recall path: caveman mem recall "<topic>" for the compact form, and
|
||||
caveman mem recover <handle> for the byte-exact original.
|
||||
- Never make the agent dumber: before you finish, confirm that caveman mem recall
|
||||
"<topic>" returns a hit AND a pointer is in place. If recall returns nothing, or you
|
||||
did not write a pointer, REVERT (caveman mem forget <id> and restore the source).
|
||||
Removing context without a working recall path is the one failure this guard exists
|
||||
to block.
|
||||
- Re-measure and report the confirmed reduction and the recall path.
|
||||
|
||||
LOAD_BEARING: never touch. It appears in the report only so the score stays honest.
|
||||
|
||||
Binding rules:
|
||||
- Consent per edit. No "apply all" that hides the individual diffs.
|
||||
- Every edit is reversible: report exactly what you changed. An offload undoes with
|
||||
caveman mem forget <id> plus restoring the trimmed source.
|
||||
- inferred only. Never present a local number as verified, and never attach a currency.
|
||||
- The analyzer (caveman learn) is read-only. You are the only writer, and only after a
|
||||
yes.
|
||||
Loading…
Reference in a new issue