core.md went through the sentence-level refine pass and it paid. Forty-six sentences became thirty-seven: fifteen dropped, ten rewritten, four added, one split into three. Several rules turned out to be teaching a stance rather than naming an act, and two behaviours were left with no home once core stopped stating them, which only surfaced because the pass searches for whatever points at a sentence before removing it. The eval pass rate held across the change.
The pass now lives at agent-harness/agent-instructions/skills/instructions/refine.md, routed from that skill. It splits a file by its own tags, indexes every sentence continuously across the whole file, sorts each one into action, wisdom, mixed, exception or scope, and hands the table to a human to drive by row number.
Nothing else in the tree has been through it.
Scope, in the order worth doing
- The three remaining
core-rules files: adaptive-implementation-delivery-process.md, core-skill-frontmatter.md, servant-identity.md. These load into every session, so a sentence that only teaches costs every turn.
- The two always-on repository files:
project-context/dotfiles-agent-instructions.md and rebuild-guidance/rebuild-agent-instructions.md. Same horizon, repository scope.
- The 33
SKILL.md router files. A router decides whether its chapter is ever read, so a vague one silently strands the content behind it.
- The 31 skill chapters.
What done means per file
The indexed table is produced, every row is ruled on by a human, each drop or rewrite is grounded against the guards, tests and pointers that reference it, and the file is re-verified after editing. A sentence that fits no category is doing two jobs and gets split rather than labelled.
Two costs to plan around
Editing an instruction file that an evaluation references invalidates the baseline fingerprint, and the re-save is a thirty-minute run. Batch the edits per push rather than per file.
The pass is interactive by design. It is not work to hand to an unattended agent, because its value is a human ruling on each row.
core.mdwent through the sentence-level refine pass and it paid. Forty-six sentences became thirty-seven: fifteen dropped, ten rewritten, four added, one split into three. Several rules turned out to be teaching a stance rather than naming an act, and two behaviours were left with no home once core stopped stating them, which only surfaced because the pass searches for whatever points at a sentence before removing it. The eval pass rate held across the change.The pass now lives at
agent-harness/agent-instructions/skills/instructions/refine.md, routed from that skill. It splits a file by its own tags, indexes every sentence continuously across the whole file, sorts each one into action, wisdom, mixed, exception or scope, and hands the table to a human to drive by row number.Nothing else in the tree has been through it.
Scope, in the order worth doing
core-rulesfiles:adaptive-implementation-delivery-process.md,core-skill-frontmatter.md,servant-identity.md. These load into every session, so a sentence that only teaches costs every turn.project-context/dotfiles-agent-instructions.mdandrebuild-guidance/rebuild-agent-instructions.md. Same horizon, repository scope.SKILL.mdrouter files. A router decides whether its chapter is ever read, so a vague one silently strands the content behind it.What done means per file
The indexed table is produced, every row is ruled on by a human, each drop or rewrite is grounded against the guards, tests and pointers that reference it, and the file is re-verified after editing. A sentence that fits no category is doing two jobs and gets split rather than labelled.
Two costs to plan around
Editing an instruction file that an evaluation references invalidates the baseline fingerprint, and the re-save is a thirty-minute run. Batch the edits per push rather than per file.
The pass is interactive by design. It is not work to hand to an unattended agent, because its value is a human ruling on each row.