docs(playbooks): ship DOC bundle 2 — thinking cost doctrine under EC-1, effort dial seam - #1887
Conversation
…e under EC-1, effort dial seam Ships DOC bundle 2 of the doc-corpus campaign: DOC-6 and DOC-12 (merged, rewritten against EC-1), DOC-8, DOC-10. `playbooks` 0.6.3 -> 0.6.4; the `docs/PLUGIN-PHILOSOPHY.md` rows follow this repo's convention of not versioning repo-level doctrine (precedent a09efd7, 970d0cb, and bundle 1 at 90d526d). ## DOC-6 + DOC-12 merged into one home Both rows state "thinking bills as output". Two sections stating it is the duplication bundle 1 itself invoked against a second effort home, so the billing facts get one owner: `skills/fable-5/context/context-economy.md`, new section "Your own thinking is context you pay for twice". DOC-6 supplies the asymmetry and the operating consequence; DOC-12 supplies the three buckets and the billed-vs-visible invariance. Placed in the fable-5 context tree rather than `docs/PLUGIN-PHILOSOPHY.md` because the content is an action the running model takes (accumulated thinking is billed history, so hygiene is a cost lever), not a cost table an author budgets from. It clears that tree's own exclusion rule: the bar is on model-VERSION claims, and "every model, always" is not one. ## The EC-1 rewrite, and what it does not claim The inherited row text hung the cost rows on the per-model keep-all vs last-turn-only split. EC-1 falsifies that for the harness. The shipped framing states the split as what upstream documents for raw API callers, with the harness override beside it: Claude Code overrides it in the keep-all direction on every thinking-enabled request, so retained blocks accumulate and bill as input on every model. Observation and inference are kept apart, deliberately. The wire evidence proves the harness FORCES RETENTION; it does not observe billing. The input-billing half is upstream's own rule for retained blocks (thinking.md "Thinking and the context window") applied to that forced retention, and the section says so in those words. Presenting "input-billed always" as wire-observed would assert more than the capture supports. The four-part record ships with it: claim, basis (request bodies emitted by `claude.exe`, 265,720,480 bytes, read for both a documented keep-all and a documented last-turn-only model, `context-management-2025-06-27` present in each request's `betas`), as-of date, and a recheck trigger on any Claude Code upgrade — `keep:"all"` is a build-time constant, not a documented contract. The three gating conditions and both escapes (`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1`, a gateway dropping the field) are stated, and the escape is described as resuming the per-model default rather than making the claim false. DOC-12's observability half is REFUSED, not dropped: `usage.output_tokens_details.thinking_tokens` is an API-only surface gated on OQ-A/EC-6, and shipping it into playbook doctrine would state a harness capability nobody has verified exists. ## DOC-8 — the effort dial seam `docs/PLUGIN-PHILOSOPHY.md` §Effort tiers, which already owns effort doctrine, gains the two-dials note: `thinking` decides whether Claude reasons in blocks, `effort` decides how hard the whole response works; "Don't pass `adaptive` as an `effort` value: `adaptive` is a thinking mode, not an effort level"; and "Effort is soft guidance; `max_tokens` is a strict limit", so a lane needing a hard spend ceiling sets the output cap instead of pinning effort lower. Placed here because a frontmatter `effort` field is the one surface in this repo where the `adaptive` trap is reachable. A7's frontmatter lint stays deferred and the note says why: a lint rule's source of truth is the harness's accepted-value list, which this section deliberately does not restate. ## DOC-10 — two genuine deltas, two refusals A3 and A4 already shipped in bundle 1 (the raise direction verbatim, and `low` for mechanical fan-out with the "such as subagents" cite), so nothing is restated. What ships: - **A6** — the harness prompt-caching cite beside the platform cite, the polish bundle 1's verifier flagged. It carries a harness fact the platform page does not: once a conversation has started Claude Code "shows a confirmation dialog before applying an effort change that would invalidate the cache", and a change resolving to the level already in effect "skips the dialog and keeps the cache" — which independently corroborates the no-op corollary already there. - **A1** — `context/model-adaptation/opus-5.md` deferred every effort claim to "the verified effort-doc slice (see this workstream's Phase 6 cross-check)". Both referents are campaign-internal and resolvable by no consumer — the exact defect class bundle 1 refused for DOC-13. The deferral now points at the live Effort and model-config pages, and names per-model starting level among the upstream-owned items. Refused: A3's "exact steering line for must-stay-low lanes" is the `low` row of the Opus 4.7 per-level table ("Pair `low` with explicit checklists if your task has multiple sections", effort source :83). §Effort tiers' own rule bars restating the ladder including per-model guidance — resolve it at decision time — so shipping it would violate the section it would live in. ## Dispute Effort digest 07 claim 5 quotes the harness prompt-caching page as "each effort level has its own cache for the same model. Changing it mid-session recomputes the entire request, and Claude Code asks you to confirm before applying the change". That text no longer exists. The live page (:82 of a 255-line, 29,777-byte raw fetch) rewords it entirely, same substance. The live bytes are what ships, and the recheck trigger records that this section has already moved once inside the campaign's own window. ## Consumer-state halves Drafted, not committed: `.work` dotfiles-seam draft carrying the A6 addendum to the consumer session-start rule, plus a recorded DECLINE of the `adaptive` guard consumer-side (the trap is unreachable from a surface that never sets `effort` from a value list). Lands in a separate batched dotfiles PR; the source-to-disk sync stays a human interactive step and is never run from an agent session. ## Verification Every upstream page fetched raw this session with recorded length: thinking.md (HTTP 200, 52,769 B / 917 lines — byte-identical to the frozen slice, so its line numbers are live-valid), thinking-steering-and-cost.md (200, 40,477 B / 947 lines, likewise), code.claude.com prompt-caching.md (200, 29,777 B / 255 lines), model-config.md (200, 83,644 B), effort.md (200, 21,744 B). All anchors confirmed against live headings. markdownlint 0 errors across 17 files; `check-changed-skills.sh` PASS (0 errors, 8 warnings, all pre-existing — the `context-economy.md:67` warning maps to unchanged line 53 on origin/main); changelog parity, order, and bump checks all pass. No linked issue ## Related - Phase 3b DOC chapters of the doc-corpus campaign; bundle 1 is #1885. - EC-1 answers the pricing digest's OQ-B in the keep-all direction. The frozen digest is deliberately not edited — it keeps the epistemic state its author had. - DOC-7/20/23/43 remain gated on campaign decisions. Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
…eat recheck trigger Independent verification of 00dc307 caught a shipped claim that is false at the bytes, and this retracts it. ## What was wrong The recheck trigger on the harness prompt-caching cite asserted that the section "already reworded between this corpus's 2026-07-29 capture and this check, same substance, different words". It did not. The corpus digest's quoted sentence survives VERBATIM on the live page: prompt-caching.md:38 — "* **Effort level**: each effort level has its own cache for the same model. Changing it mid-session recomputes the entire request, and Claude Code asks you to confirm before applying the change." The page states the mechanic TWICE — once in the cache-key list at :38, and again in the `### Changing effort level` section body at :82, in different words. The authoring pass grepped only the section body, found different wording there, and recorded a divergence that never happened. Matching one statement and not the other is not evidence of drift. That is the same defect class this repository's own corpus discipline exists to catch: a claim of absence derived from a probe that never covered the place the text actually lives. Shipping it inside a recheck trigger made it worse, since a trigger is the part a later reader is supposed to be able to act on. ## The fix The false clause is removed and replaced with the general caution the episode actually earns: the page states the mechanic in two places, so a quote matching only one of them is not evidence the other drifted — check both before recording a divergence. The recheck trigger keeps its two observable events (a Claude Code release changing the effort-change confirmation flow, or that section being reworded). Nothing else changes. Every quoted fragment shipped in 00dc307 was re-verified verbatim against raw fetches of all five cited pages, all six URL anchors resolve to real headings, and the EC-1 boundary conditions and basis specifics match the evidence file exactly. ## Correction to 00dc307's message, recorded here since it is immutable - Its "Dispute" section is withdrawn in full — there is no dispute with effort digest 07 claim 5. The digest quoted the page correctly. - It said A3 and A4 "already shipped in bundle 1". A3 did (90d526d). A4's `low`-for-mechanical-sweeps bullet shipped earlier, in a09efd7 (#1725, 2026-07-29). The operative conclusion is unaffected: both were already present, so neither was restated. ## Verification `prompt-caching.md` re-fetched raw, HTTP 200, 29,777 bytes / 255 lines; the verbatim sentence located at :38 by grep. markdownlint 0 errors. No linked issue Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
…d surface; drop session residue Two review findings from the bundle 2 pass, both about where a claim is read rather than whether it is true. ## The distilled line shipped a build-pinned specific bare `skills/fable-5/SKILL.md`'s core-doctrine line stated the harness thinking-retention override with no boundary condition, no recheck trigger, and no route to either. SKILL.md is the always-loaded surface, so that line is the most-read statement of the claim and the one a reader can act on without ever reaching the chapter that qualifies it — exactly the shape `docs/conventions/upstream-drift/README.md` refuses: anything restating a volatile specific carries a re-derivation event or it is drift waiting to happen. 0.6.3's chapter/core-doctrine pairing is not precedent for this. Its distilled line carried a general rule; this one carries a specific pinned to a harness build. Fixed with the convention's own preferred shape — the pointer, not a copy of the record. The line now says the override is pinned to a build rather than a documented contract, and routes to the context-economy chapter for the boundary conditions and recheck trigger. No stamp is duplicated, so the two surfaces cannot drift apart. ## The correction commit encoded session residue into doctrine f10b0ba replaced a false drift claim with a sentence explaining how to avoid making it: "That page states the mechanic twice … check both before recording a divergence." That is verification methodology aimed at nobody who reads §Effort tiers, and it only parses for someone who knows which grep missed which line in the session that wrote it. The recheck trigger's two observable events stand without it, so it is removed. The retraction itself is preserved where it belongs, in f10b0ba's message. The same shape is removed from the uncommitted `.work` dotfiles draft. ## Verification markdownlint 0 errors across 17 files; `check-changed-skills.sh` PASS (0 errors, 8 warnings, all pre-existing). Both hunks are re-checked because f10b0ba was authored after the independent audit closed — a change written in response to a found defect is the worst place to leave an unverified edit. No linked issue Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
|
Claude finished @kyle-sexton's task in 3m 41s —— View job Reviewing PR #1887
SummaryThis is a docs-only PR (playbooks 0.6.3 -> 0.6.4) with no code, config schema, or hook-contract surface touched, so the CLAUDE.md fresh-docs mandate's mandatory-WebFetch gate doesn't apply here (SKILL.md prose bodies and a No correctness issues found. This PR is unusually well self-audited — it ships two follow-up commits that retract its own defects (a false drift claim in f10b0ba, a build-pinned bare specific and session-residue prose in c34659e), and the final state holds up:
Minor, non-blocking observations:
Nothing here rises to a blocking finding — this is solid, self-correcting documentation work. |
|
Claude finished @kyle-sexton's task in 1m 17s —— View job Security review — no issues found
Scope reviewed: the full diff introduced by this PR (
Findings: none. This PR is a pure documentation/doctrine change — markdown prose, citation links to |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: c34659e575
ℹ️ 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".
|
Claude has reviewed this PR 3 times. The lane skips further automatic reviews after 5; deleting this comment resets the count. |
…mpacted window; scope max_tokens to the surface that can reach it Two Codex P2 threads on #1887. One is accepted as found and fixed on both surfaces; the other is a split verdict — its headline misreads a faithful upstream quote, but the prescription it attacks was genuinely unactionable. ## Thread 1 — accepted: the retention claim was unbounded `context-economy.md` said every turn's reasoning "is re-sent and re-billed on every subsequent request", with no upper boundary. That overcounts after a history reset. Claude Code's own page states it plainly: compaction "replaces your message history with a summary" (prompt-caching.md, fetched raw 2026-08-03, HTTP 200, 29,777 bytes). `keep:"all"` is a preservation instruction over blocks a request still carries — it cannot resurrect history the harness already summarized away. `/clear` and a rewind that truncates to an earlier prefix land the same way. Both surfaces are fixed, not just the flagged one. The thread cites `context-economy.md:21`, but `SKILL.md`'s distilled line carried the identical "every later request" claim, and SKILL.md is always loaded — fixing only the chapter would have left the defect on the more-read surface. The chapter gains a bounding bullet with the citation; the distilled line gains the scope inline. The four-part record is deliberately untouched. `keep:"all"` is still what the harness sends on every thinking-enabled request; what narrows is the billing scope downstream of it, which is upstream's rule applied to retained blocks, not the wire observation. ## Thread 2 — split: quote faithful, prescription unactionable The thread's headline says the section presents `max_tokens` as a total spend cap. It does not invent that framing — `thinking.md:688` reads verbatim: "**You need a hard ceiling on spend:** use `max_tokens`. Effort is soft guidance; `max_tokens` is a strict limit" (fetched raw 2026-08-03, HTTP 200, 52,769 bytes). The section quoted the second sentence and paraphrased the first. Retracting that would retract upstream. The thread's second half is right and is the real defect. The section went on to prescribe that "a lane needing a hard ceiling on spend sets the output cap rather than pinning effort lower" — an instruction to a plugin author at a surface where no such field exists. Verified against the documented field lists: subagent frontmatter carries `model`, `effort`, and `maxTurns` (an agentic-turn bound, not a token one) with no token cap; skill frontmatter carries `model` and `effort` and not even `maxTurns` (sub-agents.md 95,655 bytes, skills.md 73,907 bytes, both fetched raw 2026-08-03, HTTP 200). `max_tokens` belongs to the API request a plugin does not assemble. So the fix extends the quotation to include upstream's own bullet header — making the attribution visible in the bytes rather than leaving the framing looking self-authored — and then states what the limit actually bounds (one response's output, thinking included, saying nothing about input, cache reads, or an agentic lane's further requests) and that no plugin surface reaches it. The rule the section can honestly give is narrower than the quote: lower `effort` and know it is guidance; a hard cap comes from whoever builds the request. `maxTurns` is named with both qualifiers it needs — turns not tokens, subagent-only — rather than offered as a substitute ceiling, since an unqualified mention would ship a fresh imprecision inside a fix for one. The absence is stated as what the documented field lists do carry, and the paragraph's recheck trigger is extended to fire if either list gains a token cap. ## Verification markdownlint 0 errors across 36 files; `check-changed-skills.sh origin/main` PASS, 0 errors, 8 warnings on fable-5 all pre-existing and line-shifted only. CHANGELOG folded into unreleased playbooks 0.6.4; the philosophy edit is repo-scope docs and stays out of the plugin changelog, matching how 0.6.4 already handles that file. No linked issue Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
|
Claude finished @kyle-sexton's task in 55s —— View job Security review — PR #1887
Scope reviewed (
Findings: none. This is a pure documentation/doctrine change — markdown prose, citation links to Note: the two Codex bot review comments on this PR (compaction bounding the thinking-cost claim; |
|
Claude finished @kyle-sexton's task in 2m 29s —— View job Reviewing PR #1887 (code-review lane)
SummaryDocs-only PR (playbooks 0.6.3 → 0.6.4), no code/config-schema/hook-contract surface touched, so CLAUDE.md's fresh-docs mandatory-WebFetch gate doesn't apply (SKILL.md/context-chapter prose bodies and a This review is against the latest commit (
No new correctness issues found beyond what the two prior review passes already covered (EC-1 observation/inference separation, the Minor, non-blocking: the verification record and both new Note on security: per REVIEW.md's lane split, security findings are left to the dedicated security-review lane (already posted "no issues found" for this diff in this thread). I could not run |
…undary in the docs profile (#1888) Lands two adopted Sitting-2 decisions in the anthropic-docs publisher profile — the campaign's consumer-facing tag-selection doctrine. `knowledge` 0.10.16 -> 0.10.17. ## PA-M — the harness-surface definition New bullet appended to the near-miss rule: **a harness surface is a surface a user can reach**, with three non-falsifying sub-shapes that harness-doc text can take without establishing one. Both the definition sentence and sub-shape (3) carry explicit `[campaign-owned amendment]` labels — the record shows the campaign making the selection-over-support choice, not inheriting an adjudication. Sub-shape (3) rests on its single attested instance (`env-vars.md:394`, a retry/fallback row) and carries its own over-broadening boundary: a doc line describing some *other* model's tier fails the sub-shape's own test. The landing site was derived three independent ways: the profile already uses "harness surface" as its negative-claim term (`:34`, `:54`); the adopted row's own text says "write into the profile"; and the 0.10.16 CHANGELOG deliberately held this exact question (J-12) for the dispositions interview this answers. ## PA-V — the bare-name boundary The `cc-applicable`/`mixed` boundary bullet now carries the fourth API surface (**model ID**) and the negative half the profile never stated: **bare names are not API surfaces** — a product name, display name, or docs-path slug never by itself triggers `mixed`. Ratified from the de facto standard 15+ rows already stood on (cross-vendor retag applied in-slice). Deliberately excluded: a `[campaign-owned amendment]` label (this ratifies an evidence-carried standard, not a campaign-invented definition) and "feature names" (present only in one slice's wording, not the adopted row — widening the enumeration would exceed the adopted authority). ## Verification Both commits independently verified by a second model with the implementer's rationale withheld: the PA-M landing audited across landing-site derivation, amendment fidelity (verbatim vs the adopted blockquote), self-fire (no profile or checklist conflict; no live campaign artifact violates the definition), and mechanics; the PA-V text was *authored* by that verifier from the adopted row and applied verbatim, with the producer re-confirming the authority citations at the bytes before editing. The one enumeration of the API-surface list repo-wide is this bullet — no drift introduced. markdownlint 0 errors; CHANGELOG newest-first, both entries folded into the unreleased 0.10.17. Downstream, already discharged against these rules: the four slice-local `api-only` ratifications (memory-tier) now cite the landed definition and route their three disclosed near-miss hits per these bullets. No linked issue ## Related - Sitting 2 of the doc-corpus decision block, ADOPTED 2026-08-03 after adversarial validation (21/21 CONFIRMED); PA-M ordered first carrying its amendment flags, exactly as the adoption block specifies. - Siblings this session: #1881, #1882, #1884, #1885, #1887 (open); standards#311 + ADR-0002; dotfiles#394, #399 (open). - The J-12 hold this closes: `knowledge` 0.10.16's CHANGELOG (PR #1879). --------- Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
…ied; drop a duplicated pointer Self-review of 956a025 found two defects in the bytes that commit shipped. Both are in text its thread replies quote, so they are fixed before the replies are allowed to stand. ## The absence claim outran its evidence 956a025 bolded "And no plugin surface reaches it" about `max_tokens`. What was actually verified is two documented frontmatter field lists. "No plugin surface" is a universal over everything a plugin ships — including `hooks`, which both of those field lists expose and which is arbitrary code. That is the exhaustiveness-from-a-null-result shape this repo refuses, committed inside a fix whose whole subject is a claim outrunning its surface. Narrowed to "no documented frontmatter field reaches it", which is what the two citations support. The trailing reasoning is scoped the same way: the parameter belongs to the API request "that the lane-pin surface does not assemble", not one "a plugin does not assemble". The commit message for 956a025 already stated the correct, narrower form. Only the shipped bytes and the thread reply carried the absolute. ## The bounding bullet re-stated a rule two sections down Its closing sentence — the reset is a cost event, so externalize before one — is "Externalize conclusions when they stabilize" line 55, which fires on exactly that trigger. The bullet directly above already routes there by name, so the sentence bought a duplicate that can drift and nothing else. It is the residue class c34659e stripped one commit ago. Removed; the bounding bullet is complete without it. ## Verification markdownlint 0 errors across 36 files; `check-changed-skills.sh origin/main` PASS (0 errors, 8 pre-existing fable-5 warnings). `check-changelog-parity.sh` run in all three modes — `--check`, `--check-bump origin/main`, `--check-order` — all pass, confirming the scope call in 956a025: no version bump is implied and the repo-scope philosophy edit correctly stays out of the plugin changelog. No linked issue Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
|
Claude finished @kyle-sexton's task in 1m 3s —— View job Security review — PR #1887
Scope reviewed (base
This pass also covers the newest commit ( Findings: none. This remains a pure documentation/doctrine change. Checked specifically for this PR's diff:
None of the categories in scope for this lane — dangerous Actions patterns ( |
|
Claude finished @kyle-sexton's task in 1m 23s —— View job Reviewing PR #1887 (code-review lane) — delta review of b53ae48
SummaryThis PR had already been reviewed twice by this lane (at No correctness issues found. Both fixes are accurate and land cleanly:
Environment note: Note on security: per REVIEW.md's lane split, security findings are left to the dedicated security-review lane (this diff is prose-only — no code, hooks, or config-schema surface touched). |
…uthority, consistency rationale (#1893) ## Summary DOC bundle 3 of the doc-corpus application campaign — three evidence-forced rows, one playbooks bump (0.6.5 → 0.6.6): - **Verification surfaces table** (`fable-5/context/verification.md`): six-row map of the built-in verification surfaces to their canonical pages — spanning the harness, the managed Code Review service, and the Managed Agents platform API — including the one source item nothing implements (spec validation, shipped as a dated absence with a recheck trigger). Closes with the invocation/plan/version caveats that make "built-in" not mean "automatic". - **Channel-authority routing rule** (`fable-5/context/calibration.md` + one SKILL.md distillation line): the reference page that owns a term defines it; a vendor post corroborates — written once, never revised, and what it omits is invisible from inside it. Worked instance: the glossary's verification-loop entry carries the prerequisite-for-`/goal`/unattended-runs/dynamic-workflows fact a post-length definition drops. The paired glossary-row half of this row targets a graduated-corpus surface that does not exist yet and is deliberately unlanded. - **Consistency rationale for decomposing** (`fable-5/context/orchestration.md`): output consistency recorded beside context economy as the second rationale — fewer inconsistency errors across scaled workflows — with the tiebreak consequence, mechanism-agnostic, and deliberately in exactly one place (no SKILL.md line). All canonical URLs and anchors re-verified live 2026-08-03 in both raw-md and rendered forms. Independently verified (fresh-context, rationale withheld): FIX-FIRST with three one-line wording findings, all applied in `8786a772ec`; no blockers. No linked issue ## Related - #1885, #1887 — DOC bundles 1 and 2 (same evidence-forced class and delivery shape) - #1891 — the playbooks rehost this bundle's version bump follows (0.6.5 → 0.6.6) 🤖 Generated with [Claude Code](https://claude.com/claude-code) https://claude.ai/code/session_011UarawwEnZQu7cB6i7WatJ --------- Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
…ster (#1895) ## Summary Repopulates the docpage-digest Anthropic profile's doc queue with the doc-corpus campaign's adopted enqueue roster (knowledge 0.10.18 → 0.10.19): - **14 pages queued across seven groups** — thinking troubleshooting first (on the corrected rationale: the harness carries a parallel troubleshooting surface, so the page's transfer is demonstrated, not conjectured), then the last thinking page, the retention/ZDR slice (one slice, two lanes, three pages — org-level policy, the one queued topic with compliance weight), one Agent SDK page with the wider-scope boundary stated in the group heading, the models freshness pair, three Claude Code companion docs in digestion order, two blog posts, and one engineering post (the property admitted in 0.10.18). - **5 pages deferred with triggers** — each carrying its named re-arm condition, including a context-window deferral that states its discharged check's result rather than leaving the trigger dormant. - The retention/ZDR enqueue is recorded as still open to an owner veto; the engineering entry's contingency is disclosed as discharged (its prerequisite property edit was the 0.10.18 merge). Independently verified (fresh-context, rationale withheld): SHIP, with the two findings (deferred-block position; contingency disclosure) applied in `6395841eb3` and confirmed CLOSED. All 14 queued URLs return HTTP 200 live; queue counts recounted at the bytes by producer and verifier independently. No linked issue ## Related - #1892 — the property admission and artifact-target amendment this queue builds on (0.10.18) - #1887 — DOC bundle 2, where the queue's prior entries were retired on slice completion 🤖 Generated with [Claude Code](https://claude.com/claude-code) https://claude.ai/code/session_011UarawwEnZQu7cB6i7WatJ --------- Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
…s, residual-risk footer (#1898) ## Summary DOC bundle 4 of the doc-corpus application campaign — the three unblocked rows (playbooks 0.6.6 → 0.6.7; knowledge 0.10.19 → 0.10.20): - **Point at a per-model matrix; never copy one** (`fable-5/context/calibration.md` + one SKILL.md line): a third source-grading axis (volatility) beside the surface and channel axes — point at the vendor page that owns a per-model table; a stated matrix carries a re-check trigger naming the next model release; table presence is not reachability where you run. Worked instance corrected at the bytes: Claude Mythos 5 is a known registry model with full gating machinery and still not selectable — exactly one non-null provider id beside **seven** null siblings (the earlier "all eight null" figure was schema-disproven; the correction and its reason are in the CHANGELOG). - **Archive-reading conventions** (knowledge profile): a dated entry is not a content-change signal (two byte-identical entries five days apart prove it); absence of bold does not prove absence of change — deltas come from diffing entries, never reading markup; note a source artifact at the row, never silently repair it (with the one reader-facing exception stated). Recheck against the UNC-1 ruling confirmed no premise moved — the ruling touched tags, these are page properties. - **Residual-risk footer** (knowledge profile): the reduce-hallucinations page's own hedge, quoted verbatim (byte-compared live), scope unbroadened — hallucinations only, no validator named — with the cite-never-restate rider for graduated chapters. Fourth commit removes a cross-plugin dependency claim and an internal-record pointer from the knowledge CHANGELOG (self-caught; disclosed). Independently verified (fresh-context, rationale withheld): SHIP, zero findings — EC-3 seven-count, UNC-1 no-retag ruling, byte-identical-entries evidence, and the footer byte-compare all re-derived by the verifier. No linked issue ## Related - #1885, #1887, #1893 — DOC bundles 1-3 (same campaign, same delivery shape) - #1895 — the doc-queue repopulation this bundle's knowledge bump follows (0.10.19 → 0.10.20) 🤖 Generated with [Claude Code](https://claude.com/claude-code) https://claude.ai/code/session_011UarawwEnZQu7cB6i7WatJ --------- Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
Ships DOC bundle 2 of the doc-corpus campaign: DOC-6 and DOC-12 (thinking cost doctrine, rewritten against the EC-1 finding), DOC-10 (effort extend-or-cite deltas), DOC-8 (the two-dials seam).
playbooks0.6.3 -> 0.6.4.The EC-1 rewrite — the load-bearing change
The thinking cost doctrine (fable-5
context-economy.md+ one distilledSKILL.mdline) states the harness override as build-pinned behavior: Claude Code sendsclear_thinking_20251015 keep:"all"on every thinking-enabled request, on keep-all AND last-turn-only models alike — prior-turn thinking is retained and input-billed everywhere. The per-model keep-all/last-turn split is presented only as what a raw API caller gets, beside the override. The full four-part record ships: claim, basis (wire-captured request bodies, build pinned by byte size), as-of 2026-08-03, recheck trigger (any CC upgrade — the override is a build-time constant, not a documented contract), plus the three gating conditions and both escapes (CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1; a gateway dropping the field) under which per-model defaults resume. Observation and inference kept apart: the wire proves retention; input-billing is upstream's rule applied to it.The other rows
opus-5.md's campaign-internal "Phase 6 cross-check" deferral replaced with live Effort/model-config pages that actually own per-model starting levels, preserving the TRUNCATED finding.adaptiveis a thinking mode, never an effort value; effort is soft guidance,max_tokensthe only strict limit) landed in the effort-doctrine owner where the frontmatterefforttrap is reachable. Pins untouched — they move only through the dotfiles seam, per the row's own text; the consumer-state drafts are in the campaign's memory tier.Verification
Independently verified cold by a second model (the implementer's report was lost to a session interruption; the audit ran from the diff and primary bytes alone). Every quoted fragment re-verified verbatim against raw fetches with byte-size pins matching the commits' own records; the build pin re-verified live (same byte count, so the as-of stamp holds); zero surviving unqualified keep-all claims; nothing trips catalog rows I17-I22/I19/I8-b; playbooks 0.6.4 + CHANGELOG parity/order/bump green; markdownlint 0 errors.
Ledger note (immutable commit message):
00dc30749dsays "DOC-12 supplies the three buckets"; the shipped section carries two of the pricing page's three — ordinary output-token billing is the pointer's job, not restated. Recorded here per the campaign's history-stays-immutable practice.No linked issue
Related
EC-1-PROCEDURE-REPAIR-2026-08-02.md+ interview-checklist ratification (memory tier).