Repository navigation
docs(instructions): drop history narratives from the instruction files - #851
Conversation
An instruction file is read as instructions, not as a changelog. Past-tense sentences about what a rule used to be, which PR changed it, and when the owner ruled, all cost budget and invite the model to reason about the repository's history instead of the user's question. Removed: qa/SKILL.md's three narrated asides, book-refresh.md's "and the answer changed with #523", first-review.md's "now gated rather than trusted", condition-slots.md's "It used to be the one thing thrown away", decision-framing.md's "no longer says it a second time" and its History block, and trade-consequence.md's dated owner-ruling paragraph plus the "Deleted, and what replaced each" table (three renderings becomes two, because two is what there are). server.js's MCP tool description becomes a contract rather than one line, with a `.describe()` on each input field: a tool description is read by a model choosing whether to call it, so precision is worth more than brevity. 60/60 offline suites pass. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
The four hunks below sat inside the compact-witness commit of #851, so dropping that commit would have silently dropped them too. They belong with the rest of the history cut: - the "revised by owner ruling 2026-07-30 (#561) from the original four-column table" narrative on the positions view - "Since #830, *where* they go is a rule" and "since #830 that block separates ..." (the rules stand; the dating goes) - "and #823 did not build one" Also corrects the maintainer-guide row for #834, which still named freeform_positions_view as freeform's exemplar after #843 made it freeform_research_depth. No second fence, no test change. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…r loose Found by the independent review of #851 (Codex and Antigravity) and checked against the code before changing anything: - docs/maintainer-guide.md, the #830 row, still said trade-consequence.md "states a reason per keep and per delete". The per-delete table is gone, so the row now says what the file does: a reason per kept fact. - fomo_submit_demo_choice described `locale` as the language of its "confirmation text", but the tool returns one fixed English string and only echoes `locale` back. The description now says that. - qa/SKILL.md Step 6 said archive-receipt makes "converting a miss" part of the walkthrough. The gate (`verify --require-findings`) requires a recorded disposition, and `--no-findings` and `not-episodable:` are legal ones, so the sentence now says "recording where each miss went". No behaviour change. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…r loose Found by the independent review of #851 (Codex and Antigravity) and checked against the code before changing anything: - docs/maintainer-guide.md, the #830 row, still said trade-consequence.md "states a reason per keep and per delete". The per-delete table is gone, so the row now says what the file does: a reason per kept fact. - fomo_submit_demo_choice described `locale` as the language of its "confirmation text", but the tool returns one fixed English string and only echoes `locale` back. The description now says that. - qa/SKILL.md Step 6 said archive-receipt makes "converting a miss" part of the walkthrough. The gate (`verify --require-findings`) requires a recorded disposition, and `--no-findings` and `not-episodable:` are legal ones, so the sentence now says "recording where each miss went". No behaviour change. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
… prove it The review of #851 found that the gate widened from "exactly one fence" to a bounded set was neither bounded nor proven. Both points were then confirmed by mutating copies of the reference files: - Nothing capped the count, so any surface reference could take every positive scene of its surface. The #836 owner decision allows one extra witness, on freeform only; WITNESS_ALLOWANCE now says so and every other surface stays at one. weekly-market-read.md has a single `##` heading, so for it the opening-section rule is vacuous and only the count keeps a second fence out. - The widened rules had no mutation proof (test_exemplar_drift_is_caught only exercises the extractor). The checks move into _assert_witnesses, a pure function of the file text, and test_witness_rules_are_enforced breaks each of its nine rules once on a synthetic reference and requires that rule's own message. Deleting any one assert from the gate turns the proof red. It also fixes prose the second fence made wrong: freeform-answers.md gave one provenance ("It is copied ... scene freeform_research_depth") for two fences, the maintainer-guide row said "Four rules" over five bold rules, and a test_doc_language docstring said every reference opens with one exemplar. Not pinned, on purpose: which freeform witnesses are present and in what order. The gate checks that what is there is valid, not that a given scene is. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
73864ee to
b7c92fb
Compare
|
Scope narrowed to the history cut. The compact second freeform exemplar (commit 7900180) is dropped from this PR: the #836 decision makes freeform_research_depth "the one exemplar visible in references/freeform-answers.md" and keeps the compact scenes in the corpus only, until the owner-live rerun. That commit is preserved on branch Head is now b7c92fb: origin/main plus the history-narrative removals (including the four freeform-answers.md edits that were inside 7900180), the maintainer-guide exemplar-name fix, the MCP 🤖 Generated with Claude Code |
Provenance
The second half of the uncommitted work recovered from
.claude/worktrees/qa-multi-turn-trace-counting-ed1876(2026-09-02, never committed, never pushed, no PR). The first half — the judge's move to structured outputs — is #850 and touches none of these files.Two commits, deliberately separable
9d14048— drop history narratives. An instruction file is read as instructions, not as a changelog. Past-tense sentences about what a rule used to be, which PR changed it, and when the owner ruled all cost budget and invite the model to reason about this repository's history instead of the user's question.qa/SKILL.mdflows/book-refresh.mdflows/first-review.mdreferences/condition-slots.mdreferences/decision-framing.md> **History:**blockreferences/trade-consequence.mdserver.js's MCP tool description becomes a contract rather than one line, with a.describe()per input field. A tool description is read by a model deciding whether to call it, so precision beats brevity there.7900180— compact freeform witness.freeform-answers.mdnamed the compact scenes in prose but fenced only the upper witness, so the only end of the rule a reader could see was the long one. This fencesfreeform_cash_questionbeside it, verbatim from the corpus, and widenstest_expression_contract.pyfrom "exactly one exemplar block" to a bounded set (every fence in the opening section, same surface, positive scene, non-duplicated, byte-identical to corpus). It also fixesdocs/maintainer-guide.md:156, which still namedfreeform_positions_viewas freeform's exemplar after #843 made itfreeform_research_depth.Open question for you
docs/expression-contract.md:253says each reference file "opens with its own copy of one of them" — singular. Adding a second fence is arguably a §3 revision that needs a §8 ruling. That is why it is its own commit: drop7900180and the rest of the PR still stands.Three hunks deliberately dropped
The recovered work also wanted to remove "Never claim unsupported portfolio facts or execution." from both entry descriptions, and to reword AGENTS.md rule 5. All three are dropped:
.claude-plugin/plugin.jsonandskills/fomo-kernel/SKILL.md— The user's own record comes first — install inside the investing folder, quote it as theirs, let the engine check the pick (refs #844) #845 rewrote those description lines and pins them with tests; the removal would have to be hand-reapplied onto The user's own record comes first — install inside the investing folder, quote it as theirs, let the engine check the pick (refs #844) #845's text and might trip the pin.AGENTS.mdrule 5 — Move the limits onto the claim, let the answer support a reader's confidence, and close the continuity loop on the route that opens it #847 rewrote this rule. The recovered wording is purely stylistic and longer, and Move the limits onto the claim, let the answer support a reader's confidence, and close the continuity loop on the route that opens it #847 records AGENTS.md at 7,860 / 8,192 bytes.None of the three changes behaviour. They are recorded here rather than silently discarded.
Verification
python3 tests/run_all.py→ PASS: all 60 suites passed (group: all) at both commits.Refs #836.
🤖 Generated with Claude Code