Repository navigation
fix: tell the model to read the audit references - #66
Merged
Merged
Conversation
The progressive arm read no reference file in 33 of 39 traced dev runs, because SKILL.md only said to "use" each one. It audited from memory and left near-conclusive artefacts such as an unfilled [Your Name] in place. SKILL.md now tells the model to read ai-writing-patterns.md and structures-and-phrases.md before every rewrite, draft, or review, points it at its genre's section of genre-tells.md, and lists the near-conclusive artefacts itself, since they are the one single-instance exception. Re-record the claude-opus-5 reference for the skill change: progressive 77/110 -> 96/110, always-on 93/110 -> 95/110, paired difference -0.15 -> +0.01 [-0.05, +0.07]. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The inline list said "model disclaimers" and "unfilled template placeholders" with no qualifier, so a model that reads SKILL.md alone could delete a legal disclaimer or a mail-merge slot. Match the reference: placeholders the writer forgot to fill, and standalone AI-model disclaimers. Keep template slots the user means to fill later. validate.py now checks that every example in the inline list appears in references/ai-writing-patterns.md, so the two lists cannot drift apart. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Recorded at 9314c9e with --arm both --repeats 5 and the judge, on all 22 fixtures. The progressive arm was re-run at lower concurrency after 26 runs failed with CLI errors; the always-on arm is from the first run. Progressive 77/110 -> 88/110, always-on 93/110 -> 100/110, paired difference -0.15 -> -0.11 [-0.19, -0.03]. chatbot-artefacts progressive 1/5 -> 5/5. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
#65 changed the ui-microcopy brief after the reference ran. Re-run that fixture (both arms, 5 repeats, judged) on the same skill text and splice it in, so every fixture in the reference matches main. Record the commit that holds the measured skill text. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
danjdewhurst
force-pushed
the
feat/56-progressive-arm-gap
branch
from
October 30, 2026 22:52
7d83a87 to
a882098
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #56
Cause
I traced 39 progressive-arm runs on the dev split (13 fixtures × 3) with
--output-format stream-jsonand logged every Read call. The model read no reference file in 33 of 39 runs. It readgenre-tells.mdandpreflight.mdonly forcommit-messageandpr-review-reply, the two venues thatSKILL.mdnames with a section pointer. Step 3 ofSKILL.mdonly said to "use" each reference, so the model audited from memory.[Your Name]is listed under Near-conclusive artefacts inreferences/ai-writing-patterns.mdand inpreflight.md.SKILL.mdmentioned near-conclusive artefacts but never listed them, so a model that read no reference had no rule that removes a placeholder.Change
Step 3 of
SKILL.mdnow:ai-writing-patterns.mdandstructures-and-phrases.mdbefore every rewrite, draft, or review;genre-tells.md;scripts/validate.pynow checks that every example in the inline list appears inreferences/ai-writing-patterns.md, with tests.On the final text, 35 of 39 traced dev runs read at least one reference, and 20 read both audit files. The 4 that read none are light edits.
The
claude-opus-5reference summary is re-recorded at17452ef, the commit with the measured skill text.evals/README.mddescribes both references.Numbers
--arm both --repeats 5with the judge, against the old reference (skill 1.2.1).Committed reference, skill text at
17452ef:The paired progressive-minus-always-on difference went from -0.15 [-0.24, -0.05] to -0.09 [-0.17, -0.01].
chatbot-artefactsprogressive went from 1/5 to 5/5 (+0.80 [+0.19, +0.96]).ui-microcopywent from 2/5 to 5/5 in both arms, but that gain comes from the new brief in #65, not from this PR. After the rebase on #65, I re-ran that fixture with the new brief and spliced it in, so the reference matches main.An earlier run (almost the same text, before the review fixes, old
ui-microcopybrief) passed 95/110 always-on and 96/110 progressive, a paired difference of +0.01 [-0.05, +0.07]. Therechatbot-artefactswas also 5/5. The two runs agree that the progressive arm gains and that the[Your Name]failure is gone. Five repeats do not settle how much of the gap remains.Tuning used only the dev split. The held-out split ran once on each text, for confirmation; nothing changed because of it.
The progressive arm of the committed run was re-run at lower concurrency, because 26 runs in the first attempt failed with
claude exited 1. The always-on arm comes from the first attempt, on the same skill text. Each fixture ran in its ownrun_skill.pyprocess, and the per-fixture summaries were merged withbuild_summary.detector-requeststill fails in most runs (2/5 in each arm), for the judge reason that #57 covers.Not changed
The progressive arm's harness footer says "read only the ones you need, never the whole set up front". I left it, because changing the instrument would break comparison with the old reference. The new instruction names two of six files, so the two do not conflict. A real harness adds no such footer.
🤖 Generated with Claude Code