RE-CUT: Split the templates out of gauntlet.md into templates.md - #10
Conversation
c188608 to
1ad2280
Compare
|
Taking you up on your own offer: yes to the fields-only re-cut, independent of #9. Take
The templates split itself is fine by me if it comes independent of #9 — you are right that Leave out
One caution on the whole directionEvery field added to the EVIDENCE template is paid for by every future report, and the human reading it has a fixed attention budget. The four above earn it because each one lets a reader distinguish two states they would otherwise conflate. I would hold that as the bar for anything further: a field earns its place if its absence would let a reader believe something false, not if its presence would be nice to have. |
…ree ways gauntlet.md had become two documents read at different moments: how to run each layer, and the fill-in forms for SPEC and EVIDENCE. The file is loaded in full either way. `references/templates.md` now holds the Gherkin scenario template, the SPEC template, the EVIDENCE template, and the tracker roll-up; gauntlet.md keeps a pointer and drops 74 lines. Four fields come with it, each earning its place by the same test -- its absence lets a reader believe something false: - "Skipped layers" becomes "Layers not run as specified", split into N-A / UNAVAILABLE / SUBSTITUTED. One list collapses "no such surface here", "tool missing, nothing ran", and "something else ran, here is its blind spot" into one word. Those are three different confidence claims that currently read identically. - A Dismissed-findings section, one line each naming the command or file:line that disproves the finding. A fix carries its own evidence; a dismissal carries none, so "not a real problem" and "did not check" are indistinguishable. - A Structural-blind-spot line, naming the layer this project cannot run at all -- otherwise it reads as absent rather than accepted. - A `## Revisions` section in SPEC. The spec is required to be append-only and revised visibly, and there was nowhere to write the revision. The demo's evidence.md carried the exact conflation this fixes: mutmut replaced by tools/mutants.py (SUBSTITUTED) and shellcheck never run (UNAVAILABLE) sat under one "Skipped layers" heading, reading as the same claim. Relabelled; no numbers change, and evidence.md is not in source_state.sh's hashed set, so the recorded tree hash still holds. Not included, per the review on AmazingAng#10: the per-layer wall-clock column, and the Config header line that depended on the deferred config format. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
1ad2280 to
fe4bf35
Compare
|
Re-cut per your review. The description at the top of this PR is the original one and no longer matches the diff — this comment is what the PR now contains. Restacked. The branch is cut fresh off Dropped, per your review: the per-layer wall-clock column, and the Config header line. What it carries now — the split, plus the four you named:
Each of the four carries its argument in the file itself rather than only here, since the file is what a future contributor reads when deciding whether a fifth field is worth it. What these do when they are broken. Straight answer: they are prose fields with no checker, so a writer who wants to misreport still can. What the split changes is the shape of the misreport. "Skipped: mutation" is vague enough to be written without deciding anything; A fifth field, which you did not name — flagging it rather than slipping it in. The EVIDENCE header gained one line: It exists because the tracker roll-up is in this PR and is otherwise unreportable: without the line, "a roll-up was posted", "one was written and deliberately withheld", and "the SPEC named no issue" are indistinguishable, and the first is an outward-facing action that happened. That is the bar you set, applied to a field you did not accept — so it is your call, and striking it costs this PR nothing. Say the word and it comes out. One change outside the skill directory. READMEs left alone deliberately. Both file-tree lines read |
|
@AmazingAng -- Ready for more feedback |
Three adjustments to the templates split, kept separate from the merge so the contributor's commit lands as written. - Defer tracker linkage. The roll-up section, the SPEC `Issue:` field and the EVIDENCE `Tracker:` line are removed for the same reason `.old-coder.toml` was deferred in #9: adding tracker integration changes what this skill is, and that is a positioning decision that should be made on its own rather than arriving inside a technical PR. The four accepted EVIDENCE fields do not depend on it. Nothing here is a quality judgement on the writing. - Move "commit the spec at approval" into SKILL.md step 1. It is a process rule, not a template, and spec rules living in two files will drift. Its argument — a compaction loses the approved contract while the code it authorized remains — is worth keeping. - Say "files the gauntlet will add **by path**" in step 1, matching the template. The two wordings had already diverged. Also correct a sentence in the demo evidence report that this PR falsified: commits after `8b88bda` no longer touch only `skills/`, since #10 edits the report itself. The tree-hash binding is unaffected — `evidence.md` is not in the set `source_state.sh` hashes — but the stated reason was wrong. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
gauntlet.mdhad become two documents: how to run each layer, and the fill-in forms for SPEC and EVIDENCE. They're read at different moments — the layer guidance while building the gauntlet, the templates while writing the two artifacts the human actually reads — and the file gets loaded in full either way.So
references/templates.mdnow holds the Gherkin scenario template, the SPEC template, the EVIDENCE template, and the tracker roll-up.gauntlet.mdkeeps a two-line pointer and drops ~70 lines; SKILL.md's EVIDENCE step points at the new location.The templates also gained the fields this fork found it needed while running the loop:
file:linethat disproves the finding.Your Independent-verification EVIDENCE fields from #5 move across intact, with a note that they're prose and get no row in the layer table.
If you'd rather keep the templates inline in
gauntlet.md, the added fields are separable — say the word and I'll re-cut this as a fields-only PR.Part of a series from a fork that has been running this skill daily (drmikecrowe/old-coder).
🤖 Generated with Claude Code