Revisions batch: on-ramp + model currency + D13 scope row (spec), six guide rules, first full live-AC run (6/6 after the thread-identity fix) - #25
Conversation
…ency updates, importable fixture filename Owner-approved texts from the #24 batch: blockquote gains 'what you're building' + fastest-path/completion sentences (R16/R18 density feedback; keyless finish blessed); D11/D12 course-default entries carry inline setup weight; D4 Options name providers not current model names, with gate-time recommendation deferred to the build agent; CTX-D gains the perishable request-parameter-behavior category (temperature rejection); §2 key wording acknowledges compatible endpoints; fixtures/llm-stubs.py -> llm_stubs.py. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…o canon) First contradicted-category row: thread-scoped default (the app path) vs the Lesson-5 notebook's unscoped global pool, both course-demonstrated; stakes test passes because the choice changes what a summary read returns. Side edits: contradicted-group paragraph updated; R18 defers to D13 (no deciding twice); §5 coverage note and CTX-C11 cross-reference D13; provenance note records the batch. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…nline heavy-option weights, model-currency timing, id alphabets, importable fixture filenames, scoping-contradiction example G1 blockquote anatomy: orientation lead (goal-row default as a user-visible interaction, never a component inventory) + fastest-path/completion sentence. G2 §5.5 Options: heavy options state setup weight inline at choice time. G3 §6.0 + CTX-D anatomy: model currency is the canonical generation-vs-gate timing split; request-parameter-compatibility perishables. G4 Pass A: identifier formats are working parameters, alphabet included. G5 §5 anatomy: fixture module filenames must be importable identifiers. G6 §5.5 contradicted route: worked storage-scoping example that passes the stakes test (stabilizes the D13-class subject). §14: reference-style audit lines for G1/G2/G3/G5; G4 rides the existing Pass-A coverage line. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…1-V6 properties Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…1 residual class recurrence Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
… (augmentation fold) Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…marization (R11) AC21's live run caught the gap deterministically: the model, never told its thread id, called summarize_and_store with a guessed 'current_thread' and the tool honestly consolidated nothing. The constraint is now stated; AC21 is its end-to-end test. Living-document rule applied; guide-level generalization (harness-known identities are injected, never model-guessed) queued as a pass finding. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…ct PASS; AC21 finding + live-run record Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The 2026-09-09 wording named summarize_and_store in the normative clause; an independent trial build (fresh session, spec-only) built the general injection mechanism but applied it to exactly that tool, leaving expand_summary unscoped and weakening D13's thread isolation. Wording-discipline violation #2 (anchored to a course specific instead of a concept), caught by the disposable-clone trial. Now covers every thread-scoped agent-triggered operation, requires the parameter be absent from the model-facing schema, and preserves genuinely model-held identifiers (summary ids read from [Summary ID: ...] references). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…olved-decisions.md Spec §0 step 5 + §7 evidence list; guide §6.0 checklist-echo rule (with the why: screen output cannot be verified afterwards, and a fixed name is what makes compliance checkable), the emitted §0 template, the §0 anatomy comment, the express-lane bullet, and two §14 audit lines. The file is a record, never an input — a new or resumed build re-runs the gate from the spec and never reads a previous checklist; each run overwrites it. Prompted by the disposable-clone trial: across three builds the checklist landed in three different places (two of them files no spec mentions), so gate compliance has never been checkable from a delivered tree. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
Two fixes added mid-review (commits 1. 2. Files to re-read: A template-conformance validation regen is running against the new guide commit; its result and the accepted residual (the behavioral check — does a build actually write the file — rides the next trial rather than a paid probe build) are recorded in 🤖 Generated with Claude Code |
…guide half shown to be needed Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Owner review: the 'mechanically checkable' framing was false (the file is forgeable — only probes test gate behavior) and the '3/3 builds wrote it unprompted' evidence was inflated (one clean instance, one was our own build, one partial). Removed the false framing from the guide's §6.0 rule; the stated purpose is now what survives scrutiny: a recoverable decision record in a fixed place instead of whatever file the agent invents. Prose cost cut ~60%: guide +256 -> +104 words, spec step 5 +66 -> +26. Guide and spec template text verified byte-identical, so regen-D's validation still covers the (content-defined) requirement set. Matrix records the correction, the deliberate economy and its risk, and the batch's size accounting. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The revisions batch from the tester-feedback triage (#24) plus the promoted #18 findings — spec edits and their guide generalizations, validated Option-B style (surgical edits + clean-room Opus regens; no adoption, no rebuild). Also includes the lab's first full keyed live-AC run, which caught and fixed a real design gap.
Spec (3 commits)
2835655— on-ramp + currency: the opening blockquote gains the orientation lead ("what you're building" as a user-visible scene) and the fastest-path/completion sentence (offline suite green = the recommended baseline is complete; keys unlock only live tests/live use); inline heavy-setup notes on D11 Oracle and D12 Tavily; D4 Options name providers, never "current" model names ("expect the build agent to recommend current ones at the gate"); CTX-D gains the request-parameter-compatibility perishable (the temperature-rejection class);fixtures/llm-stubs.py→llm_stubs.py.809dea8— D13 summary-memory-scope row (owner decision, first contradicted-category row): thread-scoped default (the app path) vs the Lesson-5 notebook's unscoped global pool — both course-demonstrated; stakes test passes because the choice changes what a read returns. Side edits: contradicted-group paragraph, R18 defers to D13, §5 coverage note, CTX-C11 cross-ref.Guide (1 commit,
0cd5ff2)Six course-agnostic rules: G1 orientation-block template + reader test; G2 heavy options state setup weight inline at choice time; G3 model currency is the generation-vs-gate timing split, CTX-D parameter-constraint category; G4 identifier formats are Pass-A parameters, alphabet included; G5 fixture module filenames must be importable identifiers; G6 the contradicted route's worked storage-scoping example. Reference-style §14 lines.
Validation
docs/research/guide-revisions-batch-matrix.md(decision log incl. F8 parked and Recording: Claude Code transcript compaction can erase the /prepare-build announcement bookend #19 excluded by owner).Live-AC run (run-09, owner-supplied key) — the headline
First keyed run: AC4, AC9, AC19, AC22, AC24 passed live. AC21 — the course's cross-session continuity demo — failed deterministically: the assembled context never tells the model its thread id, so it called
summarize_and_storewith a guessed"current_thread"and the tool honestly consolidated nothing. The oracle worked exactly as designed: the spec gained the missing constraint (R11: harness-known identities are injected, never model-supplied), the run-09 build was conformed (~20 lines), offline suite re-green 21/21, and AC21 passed on rerun — live suite 6/6. The course-agnostic guide rule ("harness-known identities are injected, never model-guessed") is recorded in the matrix as the next pass's first candidate, per fix-and-test-travel-together.Issue routing
🤖 Generated with Claude Code