feat(playbooks,claude-config): align Fable 5 doctrine and the instruction audit with the live prompting guide - #1908
Conversation
…tion audit with the live prompting guide Roster row 1 close-out. The live "Prompting Claude Fable 5" page was re-fetched 2026-08-03 (HTTP 200) and is byte-identical to this repository's 2026-07-29 capture, so nothing in the repo misstates it and the work is entirely what the page implies and the repo lacked. playbooks (0.6.8 -> 0.6.9) - context-economy: the late-session decay ladder could be entered on a remaining-context number, which is the behavior the guide's "Rare cases of context-budget concern" section exists to suppress. A fourth bullet names the number as a NON-signal. It governs your own initiative and nothing else: an instructed stop outranks it under meta-rule 1, so the sibling plugins that deliberately gate on the window - a context-zone hook, a retro that shortens past a threshold, a workflow handoff step - keep doing what they were built to do. An absolute rule here would have contradicted every one of them for any consumer installing both, which is the cross-surface conflict I15 reports. - communication: adds the assessment-versus-change gate. opus-4-8.md already named "Assessment vs change" and routed readers to "(Communication chapter.)", which held no such section - the pointer promised doctrine that did not exist. - orchestration: adds non-blocking dispatch. Every path through the chapter read dispatch-then-wait; the guide's "Parallel subagents" posture is to keep working and to continue an already-oriented worker rather than respawn one. - execution: adds a bound on defensive over-building - boundary-only validation, no cleanup around a bug fix, no abstraction before the second real caller, no shim where changing the code is available. - SKILL.md core doctrine carries all four, because chapters load at triggers and three of these fire before their chapter's trigger plausibly would. - opus-4-8.md Sources gains a re-verification line stating its own limits. claude-config (0.21.0 -> 0.21.1; criteria 1.8.0 -> 1.9.0) - New row I8-d, short-turn assumptions, Model scope: fable-5 (promotion gate unmet - one model guide, no model-agnostic page). Three fences keep it off output-length instructions, surface-owned latency requirements, and documents about the pattern. Lane-only, not seeded: a scanner family was declined because the repository's one candidate string is the exempt meta case. - I8's base row gains the delegation throttle as a named worked instance, fenced so a cap with its own non-model rationale is not caught. Verified: both audit-instructions test suites pass (46 + 41 checks); skill-quality gate PASS with 0 errors on both touched skills, warning counts identical to base; markdownlint clean over 57 files; the new doctrine text adds zero new I6 bare-prohibition candidates under the repo's own scanner; every new cross-reference resolves to a real section; docs/CATALOG.md carries no plugin versions so the bumps owe it nothing. Not done, deliberately: the IA-2(d) context-budget audit row does not ship - run against this repository it fires on nine deliberate instances including the context-guard plugin, no fence separates designed context management from the accidental self-winding-down the guide describes, and the guide's own remedy is harness configuration rather than instruction editing. The config half is unauthorable besides: totalTokensReminder and CLAUDE_CODE_TOTAL_TOKENS_REMINDER appear on no official settings, env-vars, model-config, or context-window page. The doctrine fix above is what that finding turned into instead. Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
|
Bugbot is not enabled for your account, so this pull request was not reviewed. Enable Bugbot in the Cursor dashboard to get automatic reviews on future PRs. |
|
Claude finished @kyle-sexton's task in 2m 28s —— View job Code review — PR #1908
Scope note: All 12 changed files are documentation/doctrine prose (skill bodies, criteria catalog, changelogs, plugin.json version bumps) — no application code, no state-writing paths, no auth/tenancy surfaces. REVIEW.md's code-review-lane "always check" items (audit-log correlation, multi-write atomicity) don't apply to this diff, and the security lane has nothing to review here either. Findings: none. I verified the specific claims this PR's own verification section makes, rather than taking them on faith:
Not independently re-run: the PR's test-plan claims ("46 + 41 checks," skill-quality gate, markdownlint) — this sandbox blocks executing |
|
Claude finished @kyle-sexton's task in 1m 0s —— View job Security review complete
Scope reviewed (via
Findings: none. This PR is entirely documentation/prose content: markdown instruction text for the
No further action needed from a security standpoint. |
|
Claude has reviewed this PR 2 times. The lane skips further automatic reviews after 5; deleting this comment resets the count. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 51be17a500
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
…e-alignment additions Finding 1: the new core-doctrine line "No cleanup around a bug fix" (SKILL.md) and the new "Build for what can happen" section (context/execution.md) contradicted the pre-existing Scope fencing rule, which REQUIRES absorbing a behavior-preserving cleanup in an already-touched file costing under ~2 minutes. Both statements now defer explicitly to the scope fence's absorb bar, so the exception stays actionable. Finding 2: audit-instructions row I8-d flagged deliberately-designed progress cadences whose stated rationale is observability or interruptibility of long autonomous runs — the very guarantees its own Remediate line names as legitimate. A fourth fence exempts a cadence carrying an explicit observability/interruptibility rationale unless evidence shows it was calibrated to an obsolete turn length. criteria.md stays at 1.9.0: that version was minted in this branch's unreleased commit, matching the in-place extension of the unreleased [0.21.1] and [0.6.9] changelog entries. Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
|
Claude finished @kyle-sexton's task in 2m 13s —— View job Code review — PR #1908 (re-review after push)
Findings: none. This push ( Codex finding 1 (scope-fence contradiction) — verified fixed. The unconditional core-doctrine line "No cleanup around a bug fix..." now reads "beyond what the scope fence absorbs", and its chapter twin in Codex finding 2 (I8-d swallowing observability cadences) — verified fixed. Consistency check on the fix commit itself:
I re-checked the rest of the original diff (communication.md's new "Assessment is a deliverable" section, orchestration.md's non-blocking dispatch, context-economy.md's non-signal bullet, and the I8 base-row delegation-throttle addition) for any second-order contradiction introduced by this fix — found none; the new scope-fence qualifier doesn't loosen anything else in those sections. Not independently re-run: |
|
Claude finished @kyle-sexton's task in 1m 51s —— View job Security review — PR #1908
Scope reviewed: full diff
Findings: none.
This PR has no security-relevant surface to review beyond what the prior automated pass already covered on commit |
…ims (#1909) ## Summary Doc-alignment roster row 2: **Introducing Claude Fable 5 and Claude Mythos 5** (the canonical platform page; the anthropic.com launch post is a separate roster row, read as corroborating voice only). **playbooks 0.6.10** — the fable-5 calibration chapter's Mythos 5 worked instance gains its custody record. It carried two true observations (Mythos row in the thinking per-model matrix; known-but-unselectable registry entry in Claude Code) with no account of why they differ. The introducing page states the reason — "Claude Mythos 5 is not generally available: it is offered in limited availability to approved customers in Project Glasswing" (fetched 2026-08-03) — added as one pointer + one quoted sentence + one date, per the section's own no-pasted-matrix rule. The negative the instance rests on was verified rather than assumed: the matrix page carries the row and no access-availability signal (its only availability language, a zero-data-retention note, covers both models identically). **claude-config 0.21.2 / criteria 1.10.0** — audit-instructions row I10's Model-scope ground moves from an omission reading to the introducing page's positive statement ("Claude Mythos 5 does not include these classifiers"), cited as a deliberate two-step chain — the introducing page owns the classifier-set exclusion for Mythos 5; the refusals-and-fallback page owns `reasoning_extraction`'s membership in that set — because collapsing them would rebuild the near-miss scope inheritance the catalog's own model-scoping block forbids. Scope conclusion unchanged (`fable-5`). Deliberately not done: no docpage-digest slice produced (queue entry retained); no duplicate Fable/Mythos criterion (the worked instance is that rule); boris vendor surfaces untouched; row 11's IA-4 evidence left to its own row. ## Test plan - Docs-only (skill prose, criteria, changelogs, version bumps); markdownlint clean; both plugin.json parse. - Producer ran a fresh-context reviewer (rationale withheld) that fact-checked both quotes against live pages and audited against criteria.md's own binds-on-touch rules. - Independent fresh-context Fable verifier, 7 binary criteria — its own live fetches of all three pages, verbatim-quote checks (both quotes character-exact), verified-negative adjudication, two-step chain integrity, version/changelog accuracy, hygiene — **7/7 PASS**; its one minor wording defect ("no availability signal of any kind" overclaimed vs the page's ZDR note) fixed in `e6ffa40fb2`. - Rebased onto main after #1908; version stack asserted: playbooks 0.6.10 > 0.6.9, claude-config 0.21.2 > 0.21.1, criteria 1.10.0 > 1.9.0. ## Related - No linked issue. - Doc-alignment per-document loop, roster row 2. Predecessors: #1908 (row 1), #1899/#1906 (drift root-cause fixes). 🤖 Generated with [Claude Code](https://claude.com/claude-code) https://claude.ai/code/session_019gaVX25Txd6GXdiu9HEH3X --------- Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
…and re-verify its sources (#1910) ## Summary Doc-alignment roster row 3: re-check of **Prompting Claude Opus 5** (platform.claude.com) against the shipped chapter `plugins/playbooks/reference/model-adaptation/opus-5.md`. Re-check result: the live page is byte-identical to the repo's 2026-07-25 capture (11,225 bytes, MD5 `8579d63f…` — confirmed independently by producer and verifier), and every existing chapter claim re-verified against it holds, including four precise source-line citations and the truncated-effort-ladder claim. The Fable 5 launch moved nothing on this page. The re-check surfaced one gap byte-identity hid — **playbooks 0.6.11**: - The guide's "Self-correction" section has two halves; the chapter carried only the first (self-verify default → remove instructed re-checks). The second — Opus 5 **narrates corrections to earlier statements** more than prior models, undesirable in user-facing products — was absent from the whole plugin. Shipped as `opus-5.md` §"Correction narration: fix the slip, announce only what changes a decision", tagged `[CC: direct]` (verified empirically: Claude Code's own rules state update cadence, outcome-first ordering, and faithful outcome reporting, but no correction-narration rule). Hard-fenced: suppression licensed only where the correction changes nothing for the user; faithful reporting explicitly outranks it — failed tests, skipped steps, results already acted on, and false claims always get said. - Sources block gains a scoped re-verification line (mirrors #1908's `opus-4-8.md` treatment), stating its own limits. Deliberately not shipped: an audit-instructions criteria row — zero in-repo instructions request correction narration, and the audit lane targets instructions to remove, not guidance to add in user-facing products. Positive finding kept visible: the chapter's recorded "Residual tension" (upstream endorses writer-verifier patterns while advising removal of verification instructions) remains unresolved upstream — byte-identity means no reconciliation shipped, so that section and the audit rows built on it correctly stay put. ## Test plan - Docs-only (chapter prose, changelog, version bump); markdownlint clean; skill-quality gate on fable-5 PASS 0 errors, warnings identical to base. - Producer-side fresh-context Fable verifier (rationale withheld, 8 binary criteria): 8/8 PASS. - Second, orchestrator-commissioned Fable verifier post-rebase (6 criteria incl. its own live fetch + MD5, traceability to the page's Self-correction text, adversarial fence-reading, `[CC: direct]` empirical check, rebase content-loss diff via reflog): content 6/6 PASS; its one defect (stale version-chain paragraph in the commit message) fixed by message-only amend before push (tree hash unchanged: `0e37455e…`). - Rebased onto main after #1909; changelog stack asserted 0.6.11 > 0.6.10 > 0.6.9. ## Related - No linked issue. - Doc-alignment per-document loop, roster row 3. Predecessors: #1908 (row 1), #1909 (row 2). 🤖 Generated with [Claude Code](https://claude.com/claude-code) https://claude.ai/code/session_019gaVX25Txd6GXdiu9HEH3X --------- Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
…ard and withdraw an unresolvable citation (#1913) ## Summary Doc-alignment roster row 4: **Claude Opus 5 System Card** (194-page PDF; live CDN copy byte-identical to the archived capture, SHA-256 re-verified by producer and verifier independently). **context-guard 0.4.5** — withdraws an unresolvable citation from the reader contract: the token-shape rationale co-cited "Anthropic system-card fixed-point evals" for degradation-tracks-absolute-tokens. The card names no such eval and contains no long-context degradation benchmark (normalized sweeps: fixed-point, MRCR, RULER, needle, LongBench all zero; §8.9 ProgramBench is fresh-budget episodes with a *rising* 83%→93% curve). Nuance preserved: the proposition is unsupported from an unnamed card, not asserted false — other Anthropic cards do publish long-context evals. No behavior change (the shape's other rationales are independent; band values were always declared judgment defaults). The contract keeps one standing line: cite a system card by name and section or not at all. **playbooks 0.6.12** — four card-grounded additions to `opus-5.md`, each fenced: - **Stated facts** (p.3, §6.5.1): more accurate than Opus 4.8 AND hallucinating slightly more, with confident-unsure cases — a factual specific with no tool call behind it is a recall claim. Fences the Verification delta against the broad reading that would strip needed lookups. - **Destructive actions** (§6.6.1, worked case p.115, transcript 6.4.2.A p.93): "Fabricated user consent" is a recurring category, and the transcript shows a written scoping rule defeated in-text — so for destructive/irreversible operations the remediation is a mechanism (PreToolUse hook, `permissions.deny`), not a written rule; a subagent return asserting approval is content, not authorization. Three fences: similar-to-Opus-4.8, reckless-use-significantly-down, pre-flagged-transcripts/earlier-snapshot (occurrence, not base rate). - **Effort**: two pilot cohorts *reported* quality falling at the top of the ladder (p.81–82) — kept explicitly report-not-finding with Anthropic's own disclaimer inline. - **Injection robustness**: quote boundary corrected ("…and browser use"); auto-mode 0%-of-129 reframed as evidence about a configuration, not the model, with the nonzero unsafeguarded rates (3.70%/4.30% browser; 0.56%/0.41% coding; 0.54%/0.39% computer use) and the operator action stated. - Sources: re-read + hash line replaces "the system card has not been re-read"; the deferred routing-lane trigger confirmed still unfired. Deliberately not shipped, with reasons in the commit: condescension note (too weak, conflicts with instruction-audit posture), vulnerability-discovery scaffolding sweep (no stale refusal workarounds found), per-worker-checkout orchestration seam (card-harness property, and a card citation in a model-agnostic chapter violates the scoping rule). ## Test plan - Docs-only; markdownlint clean; changelog-parity `--check` / `--check-bump` / `--check-order` all pass; zero lines over 100 chars. - Producer fanned the card to 4 section subagents, then re-grepped every shipped quote against the normalized PDF text itself. - Orchestrator-commissioned fresh-context Fable verifier: scripted quote-matcher over 29 fragments with a corrupted-quote control probe, its own normalized sweeps for the withdrawal, framing-honesty and fence-interaction checks — substance passed fully; its four defects (a heading accidentally consumed by the diff, a reviewer misattribution, a direction word, an example nit) fixed in the amended commit and ALL re-verified PASS, including an independent PDF check that the retained §6.2 pilot citation was genuinely correct. ## Related - No linked issue. - Doc-alignment loop, roster row 4. Predecessors: #1908 (row 1), #1909 (row 2), #1910 (row 3), #1911/#1912 (row-5 follow-ups). 🤖 Generated with [Claude Code](https://claude.com/claude-code) https://claude.ai/code/session_019gaVX25Txd6GXdiu9HEH3X --------- Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
…nd ship the IA-3 audit rows (#1914) ## Summary Doc-alignment roster row 6: **Prompting Claude Sonnet 5** (live page byte-identical to the archived capture, MD5 confirmed independently by producer and verifier — this ships unshipped deltas, not drift reaction). **playbooks 0.6.13** — new model-adaptation chapter `sonnet-5.md` (233 lines, opus-5/opus-4-8 pattern: version-scoped counter-steers, `[CC:]` tags, Sources block with capture provenance). Rationale for minting where RA-3 once said don't: ADR-0007 has since settled where per-model doctrine lives (closing RA-3's blocking premise), and the reader guaranteed to get no chapter — a Sonnet worker dispatched at low effort for mechanical prep, exactly where the guide places the under-thinking risk — was the one most likely to need it. Cross-references updated both halves (fable-5 meta-rule 3 gains the chapter; its no-chapter example narrows to Haiku; opus-4-8's preamble decoupled to generic routing so new chapters stop editing their predecessors). **claude-config 0.21.3 / criteria 1.11.0** — the IA-3 cluster dispositioned, all 11 candidates: - Shipped: **I8-e** (forced status cadence, `Model scope: sonnet-5` — deliberately scoped, not an unscoped I8-d promotion: the promotion gate needs two model guides *stating* the claim, and the Fable 5 guide's "Longer turns by default" prescribes timeout/streaming adjustments, never cadence removal — verified negative stamped on the row; the two rows state their no-co-fire relationship in their own words). **I17-c** (a fixed thinking budget prescribed where adaptive reasoning silently ignores or hard-rejects it — the finding is the missing model-AND-release gate, never the mention; fenced off I17-a's `=0` claim). - Already shipped, no work: qualitative severity bars (I8-b already cites this guide; `review`'s severity.md already carries decidable per-tier tests citing it — closing RA-2 / IA-1(1b) / IA-3's severity row as three IDs, one fix). - Dropped with evidence (6): verbosity suppression (page says *tune*, and designed succinctness surfaces exist), weak-tool-reach + thinking-off nudges (0 instances; fires on designed surfaces), unscoped-"apply" (not mechanically separable — the IA-2(d) failure mode again), sampling parameters (a source-code lint neither audit skill owns; zero instruction surfaces in-repo; deferred with trigger: first consumer repo with a direct Messages API / Agent SDK call site), coding-product addendum (guidance → chapter section), computer-use knob (no surfaces). ## Test plan - Docs-only; markdownlint (1,023 files) 0 errors; changelog parity `--check`/`--check-bump`/`--check-order` pass; `instruction-scan.test.sh` 46/46; `validate-plugins.sh` pass. - Producer-side: independent fresh-context reviewer (rationale withheld) — 19 findings all resolved, including defeating an unscoped I8-e promotion and an overclaim on `MAX_THINKING_TOKENS` (now carries the API-vs-third-party nuance, which model-config states verbatim). Producer's first quote-checker was itself found broken and rebuilt; final run 20/20. - Orchestrator-commissioned Fable verifier: its own 30-span quote extraction from the committed diff against five live pages (30/30), I8-e gate check against the live Fable guide, I17-c grounded against live env-vars, drop spot-checks, RA-2 closure confirmation, loss-free rebase proof — 7/8 clean; its three changelog-granularity defects fixed and re-verified PASS. - Rebased onto main after #1913; version stacks asserted: playbooks 0.6.13 > 0.6.12 > 0.6.11; claude-config 0.21.3 > 0.21.2; criteria 1.11.0. ## Related - No linked issue. - Doc-alignment loop, roster row 6 — last model-page row of the priority head. Predecessors: #1908 (row 1), #1909 (row 2), #1910 (row 3), #1913 (row 4), #1911/#1912 (row-5 follow-ups). 🤖 Generated with [Claude Code](https://claude.com/claude-code) https://claude.ai/code/session_019gaVX25Txd6GXdiu9HEH3X --------- Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
…odel facts (#1915) ## Summary Doc-alignment roster row 8: **Models overview** — the docpage-digest profile's canonical model-fact freshness source. First repo capture of the page (29,119 bytes, MD5 recorded); systematic ten-dimension sweep of every repo surface stating a fact this page owns. Sweep verdict: the repo is clean — pointer-not-copy holds everywhere except one surface. The single fix: `prompts/loops/loop-lane-prompts.md` justified two lane assignments with bare, undated page-owned facts (`opus` freshest-cutoff; `haiku` 200k/oldest-cutoff). Both were *true*; the defect was discipline. The rationales now carry the sanctioned dated-matrix shape already used by `docs/PLUGIN-PHILOSOPHY.md`'s tier table: figures upstream-owned and not restated, a dated resolution (2026-08-04), and a recheck trigger naming the derived-ordering failure mode (either comparison can flip while every underlying figure stays correct). Operational instructions unchanged. Also verified in passing: the profile's canonical-freshness claim is structurally true (current matrix + legacy accordion in one fetch); #1911's three enqueue negatives re-confirmed against the live page; all agent `model:` frontmatter still aliases; legacy placements and tier orderings consistent repo-wide. Component opportunity (a stored capture-and-diff freshness probe) declined: no upstream sync path for a hand-copied materialization, a one-consumer count, and the lightweight trigger shape already proved itself by producing #1912 — deferred with a trigger recorded on the roster row. ## Test plan - Single file, +11/−2, no plugin/changelog touched (parity script is plugin-scoped — confirmed by reading it); markdownlint clean. - Independent fresh-context Fable verifier: its own live fetch and scripted ordering checks (both derived orderings true), three sweep spot-checks (all holds), positional-wording check, `git merge-tree` conflict-free against current main, decline-soundness and scope-call review — **all PASS, empty defect list**. ## Related - No linked issue. - Doc-alignment loop, roster row 8. Predecessors: #1908–#1914 (rows 1–6 + row-5 follow-ups). 🤖 Generated with [Claude Code](https://claude.com/claude-code) https://claude.ai/code/session_019gaVX25Txd6GXdiu9HEH3X Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
… the tier ladder lacked (#1916) ## Summary Doc-alignment roster row 9: **Choosing the right model** (live page byte-identical to the archived slice — MD5 confirmed by producer and verifier independently against both the capture and today's live page). Row dispositions: - **IA-6 (vet-delta triggers): closed, nothing owed here.** Its mechanism half already shipped as criteria I21/I22 via the Q8 ownership carve-out (I22 carries all four trigger shapes, the delta-not-re-run discipline, and consumer-supplies-baseline); the instance half is dotfiles-owned. The targeted delta check was run anyway against the executed 2026-07-29 vet (issue #1697): no trigger fired. - **DOC-40 (four-question second lens): not shipped, correctly still routed to the dotfiles routing-doctrine seam** per its recorded disposition. - **OQ-6 (fast mode): deferral holds** — zero latency-first lanes exist, and model-config now documents `/fast` refusing to toggle under an allowlist that excludes the target, one more availability constraint on a research preview. **What ships (+15 lines, `docs/PLUGIN-PHILOSOPHY.md` only, no version bump per this file's precedent):** an enterprise `availableModels` dispatch-seam consequence the Model-tiers section lacked. Upstream (model-config, quoted character-exact): the allowlist reaches subagent/skill/command `model` frontmatter; a pin naming an excluded model "falls back to the inherited or default model rather than failing the request"; under `enforceAvailableModels` the Default remaps to the first *allowed, available* allowlist entry, and that remap reaches "the fallback used when an excluded selection is dropped". Consequence: a blocked pin can silently land **below** the session tier — the section's own invariant (consequential verdict at session tier or above) is not self-enforcing under an allowlist, and no error is raised. The paragraph states the failure mode, the operator action, and a non-vacuous recheck trigger. This is a dispatch-seam consequence, not a second selection checklist — DOC-40's declined shape. ## Test plan - Single file, +15/−0; markdownlint clean; parity scripts green; merge-tree clean vs current main. - Producer ran a two-round adversarial loop before handoff: a fresh Fable verifier falsified an advisor-recall claim (the paragraph's first draft asserted the *opposite* direction) against the primary source, and caught a vacuous recheck trigger; both fixed, then a second adversarial pass returned SHIP with one precision fix (the "allowed, available" qualifiers restored). - Orchestrator-commissioned Fable verifier: live-page sentence fidelity (three quotes character-exact, qualifiers present, anchor resolves), step-by-step reconstruction of the invariant-breakage scenario including the alias-resolution subtlety, IA-6 closure evidence (I21/I22 on main; carve-out record; delta-check spot-checks), contested-call boundary (no factor checklist restated), OQ-6 spot-checks, hygiene — **6/6 PASS, empty defect list**. ## Related - No linked issue. - Doc-alignment loop, roster row 9. Predecessors: #1908–#1915. Recorded for later: playbooks:boris transcribes "fast mode 3× cheaper" (Opus 4.8-era third-party claim) while this page's era has it premium-priced — third-party transcription, exempt from first-party staleness detection by I22's own fence; noted on the roster row, not patched inside a vendor mirror. 🤖 Generated with [Claude Code](https://claude.com/claude-code) https://claude.ai/code/session_019gaVX25Txd6GXdiu9HEH3X Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
…orbids it (#1917) ## Summary Doc-alignment roster row 11: **Thinking** (live page byte-identical to the archived 917-line slice — MD5 confirmed by producer and verifier independently). Headline: the roster recorded IA-4's three harness rules as *unshipped*; they were in fact already covered by the I17 family — and that stale status was hiding a live defect inside the coverage. **criteria 1.12.0 / claude-config 0.21.4**: - **I17 base row amended** (the defect): the live thinking page states, with no effort qualifier, that Fable 5 / Mythos 5 / Mythos Preview reject `thinking: {type: "disabled"}` outright. The old row's remediation offered "lower the effort to `high` or below" — a branch that still 400s on that family — and its unscoped fence *excused* the unconditional-reject case. Now two Detect arms with per-arm fences and remediations; heading retitled to "…where the model forbids it"; the second arm is API-form-only (on Fable 5 the harness surfaces are documented silent no-ops and stay I17-a's; for the Mythos models the harness pages state nothing, recorded as silence — no claim either direction). - **I17-b extended** to the thinking half of mid-session churn (the page renders both dials into the prompt; switching modes or budgets starts a new cache prefix), with a deliberate, honest carve-out: a Claude Code surface prescribing a mid-session thinking toggle is *out of reach* — neither excused nor flagged — because harness prompt-caching docs name only model and effort as out-of-prompt cache-key settings and document a confirm dialog for effort alone; a non-vacuous re-scope trigger is recorded. Plus an I17-b/I17-c co-firing note in the house pattern. - IA-4 rule 2 already fully covered by I17-a (untouched); IA-5's gate (PA-AE) was answered 2026-08-02 — rules 1–3 shipped long since as I18, rules 4–8 stay deferred on recorded grounds (no instruction surface to run on; rule 8 is the same deferral row 6 recorded), nothing zero-instance shipped. ## Test plan - Docs-only; markdownlint 0 errors; changelog parity all three modes; `instruction-scan.test.sh` 46/46; `conflict-scan.test.sh` 41/41; manifest validation pass. - Producer: scripted quote fidelity (9 quotes vs seven live sources, plus a negative assertion that the over-broad phrasing is gone); its own independent reviewer caught two gaps pre-handoff (I17-b/I17-c overlap note; a reach ambiguity), both fixed. - Orchestrator-commissioned Fable verifier: live fetches of the thinking and harness prompt-caching pages, confirmation of the old row's double defect (both readings wrong), per-arm scenario construction (including the case the old row passed as compliant), carve-out honesty, coverage spot-checks — **6/6 PASS**; its two minor defects (stale instance count; Mythos over-generalization) fixed and re-checked, with the final one-line residual (a changelog echo) fixed before push. ## Related - No linked issue. - Doc-alignment loop, roster row 11. Predecessors: #1908–#1916. Follow-up candidate recorded on the roster: opus-5.md's RA-8 clause is silent on the API-form unconditional reject for the Fable family — natural doctrine-side home for the second arm. 🤖 Generated with [Claude Code](https://claude.com/claude-code) https://claude.ai/code/session_019gaVX25Txd6GXdiu9HEH3X --------- Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
…d where none is (#1918) ## Summary Doc-alignment roster row 12: **Steering thinking** (live page byte-identical to the archived 947-line slice — MD5 confirmed by producer and verifier independently). **criteria 1.13.0 / claude-config 0.21.5** — new sub-row **I18-a**: *a leading thinking block treated as required where the model does not require one*. I18 covered only what a surface does to blocks it has; the inverse belief — that a block must be there — had no row, and its natural remediation (fabricate one) produces exactly I18's shape 1 (a hand-built block has no valid signature), making I18-a the upstream cause of an I18 violation. Three detect shapes, one per consequence the page states: reinsertion when assembling history from mixed sources; history rewriting on resume under a different thinking configuration; logic reading an assistant turn's first block as a thinking block. - Honest carve-out from upstream's own text: legacy manual-budget models *do* enforce the leading block — the finding is the missing gate, never the mention. - Fence: the relaxation "is about validation, not about what you should send" — never license to drop blocks. - Reach held to I18's line: presence-assuming read-only logic is out of reach (neither excused nor flagged), keyed to the still-unresolved question of what Claude Code transcripts carry, with a re-scope trigger. - Sourcing: the Steering page is decisive (states the relaxation operatively with its three consequences); the Thinking page carries the pair in compressed form in its tool-use section and is cited as corroboration — with its server-side strip claim explicitly held apart as a different claim. - I18 base gains only a two-sentence lead-in and a "Base row:" label; its detect, fences, source, and stamp are untouched. Also verified in passing (roster corrections, not in this diff): the row's "shipped only as far as context-economy" note was stale — PLUGIN-PHILOSOPHY's Effort tiers already carries five of the slice's candidates citing this page; and the repo's one transcript consumer already selects blocks by their own `type`, correct by construction. ## Test plan - Docs-only; markdownlint 0 errors; changelog parity all three modes; `instruction-scan.test.sh` 46/46; scripted quote fidelity 14/14 against both live pages with control probes. - Producer's advisor overturned an over-reach in its first draft (extending shape 3 to read-only surfaces — unsupported); the producer also self-diagnosed the root cause of its one false claim (a `begin with` grep that could never match `begins with` — the absence-through-a-blind-channel trap). - Orchestrator-commissioned Fable verifier: 5/6 first pass — caught the false "only source" custody claim against its own live fetch of the sibling page — plus an ambiguous antecedent; both fixed, rebase compose verified to preserve #1917's Sources expansion, re-check ALL PASS. - Rebased onto post-#1917 main; stacks asserted: [0.21.5] > [0.21.4] > [0.21.3]; criteria 1.13.0. ## Related - No linked issue. - Doc-alignment loop, roster row 12. Predecessors: #1908–#1917. 🤖 Generated with [Claude Code](https://claude.com/claude-code) https://claude.ai/code/session_019gaVX25Txd6GXdiu9HEH3X --------- Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
…e and I8-c its second source (#1919) ## Summary Doc-alignment roster row 13: **Troubleshooting thinking** — the per-model matrix page the calibration rule and the I17 family cite as authority, previously cited-but-not-digested (no hash, no capture). First byte-level baseline taken: 12,544 B, MD5 `dc994aa9…`, confirmed by producer and verifier on independent fetches. **playbooks 0.6.14** — `calibration.md`'s matrix citation gains the custody its own re-check mandate requires: a capture stamp framed forward-only (the prior citation had no hash, so no unchanged-since claim is possible and none is made); the worked instance's two halves now date separately (matrix re-read 2026-08-04 and unmoved; introducing-page quote + registry reading remain 2026-08-03 snapshots); the verified negative tightened to name the page's only other availability sentence (the Claude 4 deprecations pointer) so it is falsifiable on its own terms. **claude-config 0.21.6 / criteria 1.14.0** — I8-c (don't-think directives increase tag leakage) gains its second source: this model-agnostic troubleshooting page states the same claim from the symptom side and *still names only Claude Opus 5* — so the row's scope is now positively confirmed narrow on the declined-widening reasoning the catalog already uses (promotion gate deliberately unmet: the claim is not stated unqualified). The row also gains the consequence it lacked ("A leaked tool call never runs, and in agentic loops the leaked text stays in the conversation history…"), the condition ("most commonly on tool-heavy workloads such as search"), one catalog-extension sentence explicitly marked as the catalog's own, and a recheck trigger naming the two stating sections (an absence has no page to watch). Sources parenthetical updated. All four pre-existing citations that rest on this page spot-verified against the live table (Mythos row, adaptive-only models, reject values, footnote 2's per-request enforcement) — nothing misstated. Deliberate non-actions with evidence: no reverse-direction-400 row (no instruction-text shape prescribes adaptive — it is the unspecified default), max_tokens truncation owned by the errors pages, display-defaults covered by I10 + context-economy. The page's docpage-digest queue position stands (queue rationale re-verified, strengthened by the page's own Next-steps transfer declaration). ## Test plan - Docs-only; markdownlint 0 errors; changelog parity all three modes; `instruction-scan.test.sh` 46/46; `conflict-scan.test.sh` 41/41; scripted quote fidelity with control probes. - Orchestrator-commissioned Fable verifier: independent fetches of the troubleshooting page, the Opus 5 guide, and both errors pages (all byte-identical to producer captures); promotion-gate reading verified against the gate's own "stated unqualified" precedents; all three contested calls adjudicated sound; custody framing checked forward-only — **6/6 PASS, empty defect list**. - Rebased onto post-#1918 main with a composed Sources block (both #1918's Steering entry and this row's expanded Troubleshooting entry preserved); stacks asserted: [0.21.6] > [0.21.5] > [0.21.4]; criteria 1.14.0. ## Related - No linked issue. - Doc-alignment loop, roster row 13. Predecessors: #1908–#1918. Roster observation recorded: row 99's errors-page mapping is incomplete — the transfer target is two distinct pages (platform `api/errors`, 22,669 B; harness `errors`, 152,674 B), both now captured. 🤖 Generated with [Claude Code](https://claude.com/claude-code) https://claude.ai/code/session_019gaVX25Txd6GXdiu9HEH3X --------- Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
…ive pages (#1920) ## Summary Doc-alignment roster row 16: **Prompt caching (API)** — first captures of both the API page (152,223 B) and its harness sibling (29,721 B), with a hard surface-scoping discipline (API vs harness caching semantics are different products' claims). Seven repo surfaces stating caching facts swept; five verified clean and left alone (including boris's $12.50/$1 figures — confirmed contextually right for subagent orchestration, where the five-minute TTL governs); two carried real defects: **playbooks 0.6.15** — `orchestration.md`'s continue-an-oriented-worker rationale claimed "accumulated context is a cache read". Wrong in the chapter's own modal case: the harness page states subagents build their own cache *and* use the five-minute TTL even on subscription, so a worker resumed after a longer fan-out wave re-writes its whole context at the five-minute cache-write rate ("1.25 times the base input tokens price"), not a cache-read rate. The recommendation stands; the reason is now the re-derivation saved (a replacement pays the same tokens plus the rediscovery tool turns), with the TTL and pricing anchors cited. **docs-hygiene 0.9.5** — `extract-ssot`'s anti-pattern #9 ("Cache invalidation cascade") rested on a mechanism that is dead on the skill's own declared surface: the harness page states mid-session edits of always-loaded files keep the cache (the edit just doesn't apply), and cross-session sharing keys on the git-status snapshot, which any commit breaks. Rewritten in place as **"Always-loaded SSOT propagation lag"** — corrections ship that live sessions don't see until `/clear`/`/compact`/restart — with a scope fence for the API surface (where prefix volatility genuinely costs an Agent SDK fleet), scoped to *unscoped* rules files (path-scoped rules load lazily; pre-load edits apply), and slot 9 preserved because #10–#13 are cited by number in eight places. The dead vocabulary survives only in the changelog, quoted as removed. Routed, not acted on: the owner's dotfiles CLAUDE.md caching claim verified correct with one additive omission (fast mode is a third cache-key element) — recorded for dotfiles routing; the API page's explicit-default-effort no-invalidate row flagged as a future I17-b enrichment parallel. ## Test plan - Docs-only; markdownlint 0 errors; version/changelog parity both plugins; scripted quote fidelity 11/11 against the captured pages. - Orchestrator-commissioned Fable verifier: both live fetches (MD5s exact), both correction logics reconstructed, the slot-9 citation count independently verified, both contested calls upheld — substance PASS with 1 real defect (a surviving dead-mechanism table row in the same file) + 2 precision nits (cache-write rate; unscoped-rules scoping), all three fixed and re-checked **ALL PASS** including an independent dead-vocabulary sweep. ## Related - No linked issue. - Doc-alignment loop, roster row 16. Predecessors: #1908–#1919. 🤖 Generated with [Claude Code](https://claude.com/claude-code) https://claude.ai/code/session_019gaVX25Txd6GXdiu9HEH3X --------- Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
…fleet acts on (#1922) ## Summary Doc-alignment roster row 17: **How Claude Code uses prompt caching** (the harness half of the caching pair; page unmoved vs row 16's capture — MD5 re-confirmed three times). Most of the page was already verified-in-use this session (I17-b's authority chain, row 16's sweep); this row closed the residue. **claude-ops 0.27.0** — the observability skill stored the cache half of the cost signal but never surfaced it: `cc_metrics` has always split token usage into input/output/cacheRead/cacheCreation, yet no report section rendered it. Now shipped: - A **Cache health** report section — deliberately its own OTEL-sourced section rather than new columns on the ccusage-sourced Token/cost table, fixing a grain mismatch *and* a provenance mismatch in one move (per-model windowed data vs a session-scoped query; OTEL tokens vs ccusage billing). - A new per-model windowed query in `otel-queries.md`, **verified by execution** against a live store (returns real per-model rows; the live data even demonstrates the diagnostic — an inverted read/creation ratio on short-session Haiku subagents). Deliberately hot-tier-only: the cold-tier union was built, tested, and **fails** with an IO error on any fresh install lacking cold parquet — the constraint is documented at the point of use rather than shipping a query that breaks for most consumers. - The upstream reading ("a high read-to-creation ratio means caching is working well…") in-fence as report copy; the **reported-never-graded** rule outside the skeleton fence with only the non-derivable rationale (upstream publishes direction, no threshold — a severity band here would be an invented number cited as sourced). - A Cache-health routing row distinguishable from the existing historical-token row. **`docs/PLUGIN-PHILOSOPHY.md`** (one line, no bump per precedent) — the component-stances MCP-servers row gains its second adoption cost, previously omitted: the only component type that can cost a consumer their prompt cache — with the load-bearing deferred-tools qualifier (the cache survives when the server's tools are deferred, the default on supported models), conclusion-plus-pointer, no enumeration. The row's Verified column deliberately not advanced (it dates the MCP link, which was not re-verified; the new claim carries its own inline stamp). Residue dispositions with evidence: 7 sections verified-this-session, 3 already satisfied in-repo, the rest declined on the no-decision-turns-on-it test (provider table, TTL env-var enumeration, worktree cache scope, tool-deny mid-session cost, compaction mechanics). Recorded for the roster: the session-flow handoff "fork" naming collision with the harness feature of the same name (skill defines its term inline; nothing false). ## Test plan - markdownlint 0 errors; changelog parity all three modes; manifest presence; skill portability; check-changed-skills PASS. - Producer-side independent reviewer (rationale withheld) found 2 blockers + 1 major on the first commit — a rendering directive inside the report skeleton's fence, an unfillable-at-grain data path, an overstated routing-gap claim — all fixed, with the fill-path fix going beyond the reviewer's options after the producer found the underlying provenance mismatch. - Orchestrator-commissioned Fable verifier over the final state (which no prior review had covered end-to-end): live page fetch, fence-boundary check, **query extracted verbatim and executed read-only against the live OTEL store**, cold-union failure reproduced first-hand, provenance separation judged, philosophy-row accuracy and table integrity, claim accuracy against origin/main — **7/7 PASS, empty defect list**. ## Related - No linked issue. - Doc-alignment loop, roster row 17. Predecessors: #1908–#1920. 🤖 Generated with [Claude Code](https://claude.com/claude-code) https://claude.ai/code/session_019gaVX25Txd6GXdiu9HEH3X --------- Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
…ss accepts but declines to honor (#1923) ## Summary Doc-alignment roster row 18 — the priority head's final row: **Model configuration** (code.claude.com/docs/en/model-config), the corpus's most-cited harness page, first formally captured here (82,975 B, MD5 `5c9e06c5…`) with a **semantic-stability proof**: normalized token streams of the live page and the frozen 2026-07-31 snapshot are identical (10,222 tokens each, control-probed) — retroactively confirming seven earlier rows' model-config-dependent work ran against an unchanged page. **claude-config 0.21.7 / criteria 1.15.0**: - The audit skill advertised settings auditing yet had zero coverage of the model-configuration keys. New **category H (Model and effort settings)** — four rows, each a value the harness accepts into a settings file and then declines to honor: `effortLevel: max/ultracode` (not accepted there), `fallbackModel` beyond three after dedup (with the raw-`maxItems:3` schema test reported separately — the two tests genuinely diverge, verified empirically), a specific entry disabling its family wildcard (including the Mantle-ID and custom-model-option arms), and `enforceAvailableModels` against an unset/empty list (rated **error** per the skill's own enforcement-bypass rubric). Visibility stated per row from the page's own text (row 3's substitution notice; row 2's documented silence). Category H is wired into the skill's phase flow: "Eight categories", a Category H section, and a MANDATORY Phase 3.3 live model-config fetch gating every H finding. `settings.local.json` routed through the safe-read path. - **criteria I17's carve-out justification corrected** (1.15.0): it claimed the schema makes `effortLevel: max` "unreachable" in settings — false (JSON Schema is advisory; the harness reads a violating file). The directive is unchanged; the justification now states the true reason and points at the sibling that owns the file-level check, making the two halves of one plugin cohere. - Loop-lane alias stamp refreshed in place (prescribed by that convention's own no-drift rule; claim re-verified against today's bytes). CLOSE-2 re-confirmed discharged. The roster's named component (dotfiles pin audit) declined — machine-scope, not this repo's to own. Recorded upstream: schemastore's `effortLevel` description omits Opus 5/Sonnet 5 from its effort-support list — stale against the live page; their fix, flagged because this PR now cites that schema. ## Test plan - markdownlint 0 errors; changelog parity all modes; `instruction-scan.test.sh` 46/46; `conflict-scan.test.sh` 41/41; scripted quote fidelity (6 literals exact, 3 near-miss control probes absent); schema constraints script-verified including the no-`uniqueItems` fact the divergence rests on. - Two full independent passes converged: the producer's reviewer (found the blocking category-letter collision that made the section unreachable, plus 8 accuracy/coherence defects — all fixed) and an orchestrator-commissioned Fable verifier (upstream fidelity, the stability-proof reproduction, IA-10-boundary and quote-vs-cite adjudications, then a delta re-verify of the fix round: **every item PASS, empty defect list**, both its residual observations non-blocking). - Producer self-caught one defect pre-review (a sorted dedup misidentifying dead chain entries) and corrected one of its own premises when tested (A–F never quote upstream; the quote call stands on the consumer-repo ground instead, disclosed as a deliberate departure). ## Related - No linked issue. - Doc-alignment loop, roster row 18 — completes the 18-row priority head. Predecessors: #1908–#1920, #1922. 🤖 Generated with [Claude Code](https://claude.com/claude-code) https://claude.ai/code/session_019gaVX25Txd6GXdiu9HEH3X --------- Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
…and its fences (#1924) ## Summary Doc-alignment roster row 241: **Choosing a Claude model and effort level in Claude Code** (claude.com blog) — the post the owner's model-routing lane and two main-tree surfaces cite for the model-vs-effort dial discrimination. First custody baseline taken (article-body-only hash, so site chrome can't fake drift). The roster's premise was corrected en route: the post was *not* "digested nowhere" — planning's session-config already carried a faithful two-knob digest; what it lacked was custody and the post's own qualifiers. **planning 0.27.3** — the "Two orthogonal knobs" section gains: - Its citation, led by the strongest ground available: model-config's own delegation sentence ("For guidance on which model and effort level fit different kinds of work, see [the post] on the blog") — the reference page points *at* the post; the narrowed negative is the supporting ground: no reference page states the try-versus-know **diagnostic** (choosing-a-model *orders* the levers — "Tuning effort is often a better lever than switching models" — and the effort page pairs effort against prompting; ordering a lever is not diagnosing which failure you have). - The post's **context-first prior step** neither knob had: on a wrong answer, examine the provided context before touching a dial — sharpened here because the step is this skill's own product (the Brief *is* the context fix). - Two missing fences: the discriminator is "a starting point, not a hard rule" (the post's figure caption, disclosed as such), and raising effort is sharpest below the model's default. - The ambiguity signal: ambiguity the rounds could not retire argues up; a Brief precise enough to execute from argues down. Both pre-existing main-tree citations verified holding against the live post. Owner-facing findings routed to the dotfiles ledger (not this repo's to edit): the CLAUDE.md lane's dropped "clearly tried" (making the two branches overlap), the Fable-reservation grounds contradiction, the missing context-first step — with one earlier finding partially withdrawn after the verifier surfaced the choosing-a-model source. ## Test plan - Docs-only; markdownlint 0 errors; check-skill PASS identical to base; scripted quote fidelity across four live sources (post, effort, model-config, choosing-a-model) — after the producer caught and fixed its own circular self-match, all spans verbatim with one disclosed editorial elision. - Independent fresh-context Fable verifier (rationale withheld, 8 binary criteria incl. an adversarial test of the load-bearing negative): 7/8 PASS; its one FAIL (the negative stated too broadly) fixed with its prescribed wording, the fix cross-verified verbatim against both live pages before amending. ## Related - No linked issue. - Doc-alignment loop, roster row 241. Predecessors: #1908–#1920, #1922, #1923. 🤖 Generated with [Claude Code](https://claude.com/claude-code) https://claude.ai/code/session_019gaVX25Txd6GXdiu9HEH3X Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
…ance and the C9 presence check (#1925) ## Summary Doc-alignment roster row 236 — **Building verification loops in Claude Code with skills** (the DOC-37 row: the roster's densest component-opportunity row, named in the campaign's completion criteria). Live post verified unmoved on every load-bearing point (three converging checks + a firecrawl body diff; minor additive drift only). **Zero new skills were minted — deliberately.** The slice's own Target typing makes two of the seven "skill candidates" rule rows and one a doctrine chapter; three shipped as content on surfaces that already own the shape, four deferred with a build-on-demand trigger (all four zero-instance by grep; one already correctly served by the shipped verification-surfaces table). **playbooks 0.6.16** — new skill-authoring spoke `reference/verification-loops-in-skills.md`: - Three skill-creation routes ranked with the documented dependency-free direct-ask first (the platform page's own "you don't need a 'writing skills' skill" disclaimer), the skill-creator plugin second on needs-no-install grounds — with creation *including its interview flow* correctly credited as first-party documented (README + the plugin's own SKILL.md "Interview and Research" phase). - The **conditional bare-resolution rule**, stated accurately: a plugin skill's bare name also resolves *unless another command claims it* (skills.md's own sentence, v2.1.216+ noted); write the namespaced form because it is unconditional — not because bare fails. This corrects an inference the campaign's frozen EC-4 record had closed wrongly (its cited evidence was about collision, not resolution; its live test was never run) — **EC-4 should be treated as superseded**, and rows that consumed its answer re-checked. - The embed-debugging checklist leading with the documented diagnosis (prominence/wording, then unfollowed references, tested on real work not test scenarios), the blog's description-diagnosis as a clearly-marked second hypothesis; the shadowing note with its true replace-not-extend semantics (the blog omits shadowing entirely); the three senses of "chaining" disambiguated. **claude-memory 0.5.3 / criteria 1.4.0** — new criterion **C9**: project CLAUDE.md build/test-command presence, FAIL-headed with branches per the file's own convention, an explicit C7 boundary (C7 owns references; C9 owns commands; never double-report), sourced quotes added to official-guidance.md so the update action can't orphan it — and a **step-0 false-positive guard** the producer added against its own citation: memory.md's table puts "Build commands" in the *auto-memory* column, so commands reachable on any loaded surface route to C3 placement, not a C9 WARN, with the counter-evidence disclosed in the Why. Eval 8 exercises all three regression-prone behaviors. ## Test plan - check-changed-skills 2 skills 0 failed; markdownlint 0 errors; changelog parity + order; manifests/catalog/contracts/portability all pass; eval 8 schema-validated. - Two full independent passes ran to convergence. The producer's reviewer falsified **three successive coverage-negatives** ("bare doesn't resolve", "blog alone", "stated by neither") — each corrected against a wider primary-source fetch, and the lesson (phrase coverage claims positively) applied across the artifact. The orchestrator-commissioned Fable verifier independently fetched every load-bearing source (including the upstream skill-creator SKILL.md to adjudicate the final conflict), validated the no-skills-minted call against the slice's own typing, and pinned the final SHA: **verified end to end, no content defects**. ## Related - No linked issue. - Doc-alignment loop, roster row 236 (DOC-37). Predecessors: #1908–#1920, #1922–#1924. Campaign record note: EC-4 (EMPIRICAL-CHECKS-RESULTS-2026-08-02) is superseded by this PR's documented conditional-resolution rule; the frozen record stays frozen, the supersession is recorded on the roster. 🤖 Generated with [Claude Code](https://claude.com/claude-code) https://claude.ai/code/session_019gaVX25Txd6GXdiu9HEH3X --------- Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
Summary
Doc-alignment roster row 1: align repo doctrine and the instruction audit with the live Prompting Claude Fable 5 page (platform.claude.com). The live page was re-fetched and is byte-identical to the repo's 2026-07-29 capture, so this ships what the page implies and the repo lacked — nothing in the repo misstated it.
playbooks 0.6.9 (fable-5 doctrine):
context-economy.md— the late-session decay ladder gains a fourth bullet naming a remaining-context number as a NON-signal (the page's "Rare cases of context-budget concern"). Scoped to the model's own initiative; an instructed stop outranks it under meta-rule 1, so sibling plugins that deliberately gate on the window keep working.communication.md— new assessment-versus-change gate ("Assessment is a deliverable; a fix is a different one"): report-and-stop on problem/question framings, evidence bar before state-changing actions. Repairsopus-4-8.md's pre-existing pointer to a section that did not exist.orchestration.md— non-blocking dispatch: keep working while independent workers run; continue an oriented worker rather than respawn.execution.md— bound on defensive over-building: boundary-only validation, no cleanup around a bug fix, no abstraction before the second real caller, no shim where changing the code is available.SKILL.md— core-doctrine lines for all four (they fire before their chapters' load triggers plausibly would).claude-config 0.21.1 (criteria 1.9.0, IA-2 model-delta cluster):
Deliberately NOT shipped, with verified reasoning: the IA-2(d) context-budget audit row — it fires on nine deliberate in-repo context-gating surfaces (context-guard exists on purpose), and its config half (
totalTokensReminder/CLAUDE_CODE_TOTAL_TOKENS_REMINDER) appears on no official settings/env-var/model-config/context-window page. The finding shipped as the context-economy doctrine bullet instead.Test plan
Related
🤖 Generated with Claude Code
https://claude.ai/code/session_019gaVX25Txd6GXdiu9HEH3X