Skip to content

Commit 8a2c293

Browse files
committed
docs(.claude/ATT): add §16 Adoption Tiers + honest caveats
Responds to field-test critique from 12-agent Rust fan-out (sprints PR-X4 cascade / PR-X10..13 consolidation / PR-X12 codec): - §16 Adoption Tiers (NEW). Tier-A (day-one minimum viable, 8 items), Tier-B (savants + high-stakes only), Tier-C (project-overrideable defaults), Tier-D (honest caveats). Encodes the field-tested 6-adopt / 3-modify-or-skip split rather than asserting the maximalist surface is mandatory. - §4.1 LD-3/4/5 adoption note: SHOULD-USE on savants every wave, MAY-USE on workers selectively; not routine per-worker rotation. - §6.1 honest caveat: Agent() tool does NOT expose a self-interrupt API; detector is prompt-level only; catches in-LLM oscillation but not OS hangs (wrap spawn in wall-clock timeout for that). - §8.1 adoption note: Tier-1 defaults to coordinator-side (PP-13 runs once on consolidated diff), not per-worker — 12-agent fan-out with ~1 GB Rust target dirs makes per-worker Tier-1 disk-prohibitive. - §10 DoD: LD-1..LD-5 rotation language softened: every-wave on savants, conditional on workers (when phase_reached=internalize or output overconfident). - §16.6 v0.2 prune targets: mark the four DoD checklists for slimming after one real sprint with the framework. EN + DE in lockstep.
1 parent c09d3f6 commit 8a2c293

2 files changed

Lines changed: 242 additions & 5 deletions

File tree

.claude/ATT/DE/anti-skim-agent-spec.md

Lines changed: 122 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -121,6 +121,12 @@ Billig zu teuer:
121121
| LD-4 | **Negative-Knowledge-Test** | „Steht in File X etwas zu Thema Y?" — wobei Y NICHT drin ist | „nein, nicht enthalten" | halluziniert plausibel klingenden Inhalt zu Y |
122122
| LD-5 | **Line-Range-Quote** | „Quote Zeilen N-M aus File X verbatim" | exakter Quote ODER „Range existiert nicht (File nur K Zeilen)" | paraphrasiert, weicht ab, oder verweigert ohne Grund |
123123

124+
> **Adoption-Note.** LD-3 / LD-4 / LD-5 sind SHOULD-USE auf Savants
125+
> jede Wave, MAY-USE auf Workers selektiv — typisch wenn
126+
> `phase_reached=internalize` geclaimt wird oder der Output
127+
> overconfident wirkt. Per-Worker-per-Wave-Rotation ist Overkill
128+
> für routinemäßige 200-LoC-Bundles. Siehe §16 Adoption-Tiers.
129+
124130
### §4.2 Trigger-Heuristik
125131

126132
| Worker-Antwort-Pattern | Lie-Detector |
@@ -243,6 +249,16 @@ Diese Regel wird auch von PP-13 brutally-honest-tester als
243249
Anti-Pattern AP9 (tool-call-loop) durchgesetzt. PP-13s Post-hoc-
244250
Detection greift, wenn der In-Loop-Detector versagt hat.
245251

252+
> **Implementations-Note (ehrlicher Caveat).** Das aktuelle Claude
253+
> Code `Agent()`-Tool exponiert KEINE Self-Interrupt-API. Der
254+
> §6.1-Detector lebt nur als prompt-level Instruction; Workers
255+
> können sich nicht tatsächlich via Tool-API terminieren — sie
256+
> können nur `outcome=RETRY` emittieren nachdem sie den Loop
257+
> bemerken. Das fängt In-LLM-Oszillation; es fängt NICHT OS-Level-
258+
> Hangs (z. B. `cargo build` stuck auf einem Netzwerk-Resolver).
259+
> Für OS-Level-Hangs MUSS der Orchestrator jeden Spawn in einen
260+
> Wall-Clock-Timeout wrappen. Siehe §16.4.
261+
246262
---
247263

248264
## §7 Proof-of-Read-Schema
@@ -306,6 +322,14 @@ FAIL.
306322

307323
Owned by PP-13 brutally-honest-tester. Per-Language-Adapter:
308324

325+
> **Adoption-Note.** Default ist Tier-1 **coordinator-side** — PP-13
326+
> fährt die volle Toolchain einmal auf dem konsolidierten Diff.
327+
> Per-Worker-Tier-1 ist teuer bei 12-Agent-Fan-out (z. B. ~1 GB
328+
> Rust-`target/` pro Worker). Projekte DÜRFEN Tier-1 auf
329+
> per-worker pushen (kleinere Workspaces, schnellerer Feedback)
330+
> durch Setzen von `tier_1_runner: per-worker` in `INVARIANTS.md`.
331+
> Siehe §16.3.
332+
309333
| Zweck | Rust | Python | TypeScript | Go |
310334
|---|---|---|---|---|
311335
| Lint, keine Warnings | `cargo clippy --all-targets --all-features -- -D warnings` | `ruff check` | `eslint --max-warnings 0` | `golangci-lint run` |
@@ -378,8 +402,11 @@ Eine Implementierung ist konform, wenn sie ALLE erfüllt:
378402
- [ ] Bei Stuck nutzt der Worker einen der fünf §5.1-Blocker-Typen
379403
und hängt Proof-of-Read für jede referenzierte Datei an.
380404
- [ ] Der Meta-Agent / Supervisor stichprobenartig EINEN von LD-1..LD-5
381-
pro Worker pro Wave (rotierend, sodass Workers nicht gamen
382-
können, welcher Test gefaked wird).
405+
auf jedem **Savant** pro Wave (rotierend, sodass der Test nicht
406+
gamed werden kann). Auf routinemäßigen **Workers** ist LD-1
407+
(Sentinel) Pflicht; LD-3 / LD-4 / LD-5 sind konditional — angewendet
408+
wenn `phase_reached=internalize` geclaimt wird ODER der Output
409+
overconfident wirkt. Siehe §16.
383410
- [ ] Drift-Signale (§4.3) werden für jeden Worker vor dem
384411
Goal-Gate-Verdict gescannt.
385412
- [ ] PP-13 fährt die §8.1-Tier-1-Toolchain für die Sprache des
@@ -772,4 +799,97 @@ Ein Worker besteht das Kognitive-Hygiene-Gate wenn ALLE:
772799

773800
---
774801

802+
## §16 Adoption-Tiers (Projekt-spezifisch)
803+
804+
> Specs shippen eine maximalistische Surface, damit jeder
805+
> vernünftige Use-Case gecovered ist. Reale Projekte adopten
806+
> Subsets. Diese Section benennt, was ein Projekt am Tag eins
807+
> adopten SOLLTE (Tier-A), was den Cost nur bei High-Stakes wert
808+
> ist (Tier-B), was Projekt-überschreibbar ist (Tier-C) und was
809+
> ehrlich bekannte Limits hat (Tier-D).
810+
>
811+
> **Ursprung:** Field-Test-Feedback aus einem 12-Agent-Rust-Fan-out
812+
> (Sprints PR-X4 cascade / PR-X10..13 consolidation / PR-X12 codec)
813+
> wo ~1 GB Per-Worker-`target/`-Dirs Universal-Per-Worker-Tier-1-
814+
> Toolchain prohibitiv teuer machten, und wo die fehlende
815+
> Self-Interrupt der `Agent()`-API den §6.1-Detector zu prompt-level
816+
> only zwang.
817+
818+
### §16.1 Tier-A — am Tag eins adopten (minimum viable)
819+
820+
Die minimale Surface, die ≥80% des Werts des Frameworks bei ≤20%
821+
des Ceremony liefert.
822+
823+
| § | Was | Warum Pflicht |
824+
|---|---|---|
825+
| §3 | Reading-Depth-Ladder per File | Wichtigste Anti-Skim-Primitive. |
826+
| §5 | 5 typisierte Stuck-Blocker (`AMBIGUITY` / `MISSING_INVARIANT` / `SPEC_SOURCE_MISMATCH` / `BEHAVIOUR_QUESTION` / `EXTERNAL_DEPENDENCY`) | Ersetzt vages „report under 200 words" mit crispem typisiertem Routing. |
827+
| §7 | `proof_of_read`-Schema in `status.json` | `{file, sha256, lines, depth, phase_reached}`. Trivialer Overhead; großer Audit-Win. |
828+
| §14 | Reading-Phasen per File + §14.5-Per-File-Kind-Minimum | Fängt „Agent claimt confident File-Content ohne zu lesen" — der häufigste Silent-Skim-Failure. |
829+
| §15 | CA1..CA4 kognitive-Anti-Pattern-Framing | Die Linse, durch die ein Savant-Audit schon schaut; billig zu adopten. |
830+
| §15.6 | 4-Savant-Council für P0-Review auf Consolidation-Sprints | High-Leverage-Audit; läuft auf Opus, einmal pro Sprint. |
831+
| §4.1 LD-1 | Sentinel-Tokens | ~50 LoC Ceremony pro Brief; fängt den trivialen „Agent hat das Brief nicht gelesen"-Fall. |
832+
| §6 | Prompt-level Tool-Call-Loop-Instruction (best-effort, siehe §16.4) | Fängt In-LLM-Oszillation, wenn der Worker die Instruction honored. |
833+
834+
### §16.2 Tier-B — adopten nur für Savants / High-Stakes
835+
836+
Reserviere für Review-Agents (PP-13/14/15/16) und High-Stakes-Worker-
837+
Spawns. Skip für routinemäßige 200-LoC-Skeleton-Fills.
838+
839+
| § | Was | Wann adopten |
840+
|---|---|---|
841+
| §4.1 LD-3 / LD-4 / LD-5 | 3-Section-Challenge / Negative-Knowledge / Line-Range-Quote | Auf Savants **jede Wave**. Auf routinemäßigen Workers **nur wenn** `phase_reached=internalize` geclaimt wird ODER der Output overconfident wirkt. Nicht als routinemäßige Per-Worker-per-Wave-Rotation. |
842+
| §13 Skeleton-Fill (Protokoll A) | `todo!("SOURCE:")`-Marker erzwingen Read-Before-Fill | High-Stakes-Ports (Python→Rust-Transcode, x265→Rust-Codec) wo Source-Fidelity matters. Skip für Greenfield-Prose-Features. |
843+
| Volle §10 / §13.6 / §14.8 / §15.7 DoD-Checklisten | Per-PR-DoD-Verifikation | Per-Sprint, nicht per-PR, bis v0.2-Prune. Siehe §16.6. |
844+
845+
### §16.3 Tier-C — Projekt-überschreibbare Defaults
846+
847+
Defaults, die diese Spec empfiehlt, aber die reale Projekte oft
848+
überschreiben. Der Override SOLLTE in `INVARIANTS.md` des Projekts
849+
dokumentiert sein.
850+
851+
| § | Default | Override-Scenario | Typische Projekt-Wahl |
852+
|---|---|---|---|
853+
| §8.1 Tier-1-Toolchain | Coordinator-side (PP-13 fährt einmal auf konsolidiertem Diff) | Kleiner Workspace wo Per-Worker-Compile schnell ist | `tier_1_runner: per-worker` |
854+
| §4.1 LD-3/4/5-Rotation | Spot-Check nur auf Savants + overconfident Workers | Projekt will Per-Worker-per-Wave-Rotation | `lie_detector_rotation: per-worker-per-wave` |
855+
| §13 Skeleton-Fill | Opt-in pro Sprint via `preflight.skeleton: enabled` | Greenfield-Code ohne SOURCE-Referenz | `preflight.skeleton: disabled` (Default für Greenfield) |
856+
| §14.5 Per-File-Kind-Minimum-Phase | INVARIANTS.md / Spec / Reference = internalize | Projekts INVARIANTS lebt woanders oder existiert nicht | Projekt-definiertes `file_kind_phase_map` in `INVARIANTS.md` |
857+
858+
### §16.4 Tier-D — known-limited (ehrliche Caveats)
859+
860+
| § | Caveat |
861+
|---|---|
862+
| §6.1 In-Loop-Tool-Call-Detection | Das aktuelle Claude Code `Agent()`-Tool exponiert KEINE Interrupt-API. Der Detector lebt nur als prompt-level Instruction. Fängt In-LLM-Oszillation; fängt NICHT OS-Level-Hangs. Wrap jeden Spawn in einen Wall-Clock-Timeout auf der Orchestrator-Schicht für OS-Hangs. |
863+
| §8.1 Per-Worker-Tier-1 | Auf Rust-Workspaces mit ~1 GB Per-Worker-`target/`-Dirs ist Per-Worker-Tier-1 bei 12-Agent-Fan-out disk-prohibitiv. Nutze den §16.3-Coordinator-side-Override. |
864+
| §4.1 LD-1-Sentinel-Tokens | Slight Per-Brief-Ceremony (~50 LoC). Projekt DARF das Token auf Orchestrator-Level templaten statt per-worker Brief, um den Cost zu amortisieren. |
865+
| Spec-Line-Count bei v0.1.0 DRAFT | Diese Spec ist intentional maximalistisch für die erste Revision. Plan einen v0.2-Prune der vier DoD-Checklisten (§10 / §13.6 / §14.8 / §15.7) nachdem ein realer Sprint mit dem Framework gelaufen ist — behalte nur Items, die Field-Bugs gefangen haben. |
866+
867+
### §16.5 Sprint-by-Sprint-Adoption Worked-Example
868+
869+
Ein 12-Agent-Rust-Fan-out mit Cascade + Codec + Consolidation:
870+
871+
| Sprint | Tier-A adopted | Tier-B adopted | Tier-C Overrides |
872+
|---|---|---|---|
873+
| PR-X4 Splat-Cascade (12 Workers, interne Refactor) | full | LD-1-Sentinel only; skip LD-3/4/5 auf routinemäßigen Workers | `tier_1_runner: coordinator` |
874+
| PR-X12 Codec (Rust-Port von x265-Reference) | full | volle §13-Skeleton-Fill (High-Stakes-Source-Fidelity-Port); LD-3/4/5 auf Consolidation-Worker | `tier_1_runner: coordinator` |
875+
| PR-X10+11+13 Consolidation-Review (Savant-Pass) | n/a (Review-Pass) | volles §15.6-Vier-Savant-Council auf Opus | n/a |
876+
877+
### §16.6 v0.2-Prune-Targets (slim wenn field-tested)
878+
879+
Nach einem vollen Sprint mit dieser Spec, slim die folgenden Sections
880+
auf Items, die field-tested Catches produziert haben:
881+
882+
| Section | Aktuelle Items | Slim-Target |
883+
|---|---:|---|
884+
| §10 Definition von Fertig | 13 | behalte ~5, die echte Bugs fangen |
885+
| §13.6 Skeleton-Fill-DoD | 7 | behalte ~3 |
886+
| §14.8 Per-File-Read-DoD | 5 | behalte ~3 |
887+
| §15.7 Kognitive-Hygiene-DoD | 5 | behalte ~3 |
888+
| §8.1 / §8.2 / §8.3 Tier-Tabellen | volle Per-Language-Matrix | slim auf Entries, die tatsächlich im Field laufen |
889+
890+
Ziel: Spec-Line-Count fällt 30-50% bei v0.2, während die Patterns
891+
erhalten bleiben, die echte Bugs gefangen haben.
892+
893+
---
894+
775895
*Ende der Datei anti-skim-agent-spec.md.*

.claude/ATT/anti-skim-agent-spec.md

Lines changed: 120 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -115,6 +115,12 @@ Cheap to expensive:
115115
| LD-4 | **Negative-Knowledge Test** | "Does file X say anything about topic Y?" — where Y is NOT in the file | "no, not contained" | hallucinates plausible-sounding content about Y |
116116
| LD-5 | **Line-Range Quote** | "Quote lines N–M from file X verbatim" | exact quote OR "range does not exist (file only K lines)" | paraphrases, deviates, or refuses without reason |
117117

118+
> **Adoption note.** LD-3 / LD-4 / LD-5 are SHOULD-USE on savants
119+
> every wave, MAY-USE on workers selectively — typically when
120+
> `phase_reached=internalize` is claimed or the output looks
121+
> overconfident. Per-worker-per-wave rotation is overkill for
122+
> routine 200-LoC bundles. See §16 Adoption Tiers.
123+
118124
### §4.2 Trigger heuristic
119125

120126
| Worker answer pattern | Lie-Detector |
@@ -234,6 +240,16 @@ This rule is also enforced by PP-13 brutally-honest-tester as
234240
anti-pattern AP9 (tool-call-loop). PP-13's post-hoc detection
235241
applies if the in-loop detector failed.
236242

243+
> **Implementation note (honest caveat).** The current Claude Code
244+
> `Agent()` tool does NOT expose a self-interrupt API. The §6.1
245+
> detector lives only as a prompt-level instruction; workers cannot
246+
> actually terminate themselves via the tool API — they can only
247+
> emit `outcome=RETRY` after they notice the loop. This catches
248+
> in-LLM oscillation; it does NOT catch OS-level hangs (e.g.
249+
> `cargo build` stuck on a network resolver). For OS-level hangs,
250+
> the orchestrator MUST wrap each spawn in a wall-clock timeout.
251+
> See §16.4.
252+
237253
---
238254

239255
## §7 Proof-of-Read Schema
@@ -294,6 +310,13 @@ into the `status.json` `sentinel_token` field. Mismatch = FAIL.
294310

295311
Owned by PP-13 brutally-honest-tester. Per-language adapter:
296312

313+
> **Adoption note.** By default, Tier-1 is **coordinator-side**
314+
> PP-13 runs the full toolchain once on the consolidated diff. Per-
315+
> worker Tier-1 is expensive at 12-agent fan-out (e.g. ~1 GB Rust
316+
> `target/` per worker). Projects MAY push Tier-1 to per-worker
317+
> (smaller workspaces, faster feedback) by setting
318+
> `tier_1_runner: per-worker` in `INVARIANTS.md`. See §16.3.
319+
297320
| Purpose | Rust | Python | TypeScript | Go |
298321
|---|---|---|---|---|
299322
| Lint, no warnings | `cargo clippy --all-targets --all-features -- -D warnings` | `ruff check` | `eslint --max-warnings 0` | `golangci-lint run` |
@@ -365,9 +388,12 @@ An implementation is conformant if it satisfies ALL of:
365388
`notes=tool-call-loop:...`.
366389
- [ ] On stuck, the worker uses one of the five §5.1 blocker types
367390
and attaches proof-of-read for every referenced file.
368-
- [ ] The meta-agent / supervisor spot-checks ONE of LD-1..LD-5 per
369-
worker per wave (rotating, so workers cannot game which test
370-
to fake).
391+
- [ ] The meta-agent / supervisor spot-checks ONE of LD-1..LD-5
392+
on every **savant** per wave (rotating, so the test cannot
393+
be gamed). On routine **workers**, LD-1 (sentinel) is
394+
mandatory; LD-3 / LD-4 / LD-5 are conditional — applied when
395+
`phase_reached=internalize` is claimed OR the output looks
396+
overconfident. See §16.
371397
- [ ] Drift signals (§4.3) are scanned for every worker before the
372398
goal-gate verdict.
373399
- [ ] PP-13 runs the §8.1 Tier-1 toolchain for the worker's
@@ -752,4 +778,95 @@ A worker passes the cognitive-hygiene gate when ALL of:
752778

753779
---
754780

781+
## §16 Adoption Tiers (project-specific)
782+
783+
> Specs ship a maximalist surface so every reasonable use-case is
784+
> covered. Real projects adopt subsets. This section names what a
785+
> project SHOULD adopt on day one (Tier-A), what's worth the cost
786+
> only at high stakes (Tier-B), what's project-overrideable
787+
> (Tier-C), and what has honest known limits (Tier-D).
788+
>
789+
> **Origin:** field-test feedback from a 12-agent Rust fan-out
790+
> (sprints PR-X4 cascade / PR-X10..13 consolidation / PR-X12 codec)
791+
> where ~1 GB per-worker `target/` dirs made universal per-worker
792+
> Tier-1 toolchain prohibitively expensive, and where the
793+
> `Agent()` API's missing self-interrupt forced the §6.1 detector
794+
> to be prompt-level only.
795+
796+
### §16.1 Tier-A — adopt on day one (minimum viable)
797+
798+
The minimal surface delivering ≥80% of the framework's value at
799+
≤20% of the ceremony.
800+
801+
| § | What | Why mandatory |
802+
|---|---|---|
803+
| §3 | Reading-Depth Ladder per file | Single most important anti-skim primitive. |
804+
| §5 | 5 typed stuck blockers (`AMBIGUITY` / `MISSING_INVARIANT` / `SPEC_SOURCE_MISMATCH` / `BEHAVIOUR_QUESTION` / `EXTERNAL_DEPENDENCY`) | Replaces vague "report under 200 words" with crisp typed routing. |
805+
| §7 | `proof_of_read` schema in `status.json` | `{file, sha256, lines, depth, phase_reached}`. Trivial overhead; big audit win. |
806+
| §14 | Reading Phases per file + §14.5 per-file-kind minimum | Catches "agent confidently asserts file content without reading" — the most common silent-skim failure. |
807+
| §15 | CA1..CA4 cognitive anti-pattern framing | The lens a savant audit already uses; cheap to adopt. |
808+
| §15.6 | 4-savant council for P0 review on consolidation sprints | High-leverage audit; runs on Opus, once per sprint. |
809+
| §4.1 LD-1 | Sentinel tokens | ~50 LoC ceremony per brief; catches the trivial "agent didn't read the brief" case. |
810+
| §6 | Prompt-level tool-call-loop instruction (best-effort, see §16.4) | Catches in-LLM oscillation when the worker honors the instruction. |
811+
812+
### §16.2 Tier-B — adopt for savants / high-stakes only
813+
814+
Reserve for review agents (PP-13/14/15/16) and high-stakes worker
815+
spawns. Skip for routine 200-LoC skeleton-fills.
816+
817+
| § | What | When to adopt |
818+
|---|---|---|
819+
| §4.1 LD-3 / LD-4 / LD-5 | 3-section challenge / negative-knowledge / line-range quote | On savants **every wave**. On routine workers **only when** `phase_reached=internalize` is claimed OR the output looks overconfident. Not as routine per-worker per-wave rotation. |
820+
| §13 Skeleton-Fill (Protocol A) | `todo!("SOURCE:")` markers force read-before-fill | High-stakes ports (Python→Rust transcode, x265→Rust codec) where source fidelity matters. Skip for greenfield prose features. |
821+
| Full §10 / §13.6 / §14.8 / §15.7 DoD checklists | Per-PR DoD verification | Per-sprint, not per-PR, until v0.2 prune. See §16.6. |
822+
823+
### §16.3 Tier-C — project-overrideable defaults
824+
825+
Defaults this spec recommends but which real projects often override.
826+
The override SHOULD be documented in the project's `INVARIANTS.md`.
827+
828+
| § | Default | Override scenario | Project's typical choice |
829+
|---|---|---|---|
830+
| §8.1 Tier-1 toolchain | Coordinator-side (PP-13 runs once on consolidated diff) | Small workspace where per-worker compile is fast | `tier_1_runner: per-worker` |
831+
| §4.1 LD-3/4/5 rotation | Spot-check only on savants + overconfident workers | Project wants per-worker per-wave rotation | `lie_detector_rotation: per-worker-per-wave` |
832+
| §13 Skeleton-Fill | Opt-in per sprint via `preflight.skeleton: enabled` | Greenfield code with no SOURCE to reference | `preflight.skeleton: disabled` (default for greenfield) |
833+
| §14.5 per-file-kind minimum phase | INVARIANTS.md / spec / reference = internalize | Project's INVARIANTS lives elsewhere or doesn't exist | Project-defined `file_kind_phase_map` in `INVARIANTS.md` |
834+
835+
### §16.4 Tier-D — known-limited (honest caveats)
836+
837+
| § | Caveat |
838+
|---|---|
839+
| §6.1 in-loop tool-call detection | The current Claude Code `Agent()` tool does NOT expose an interrupt API. The detector lives only as a prompt-level instruction. Catches in-LLM oscillation; does NOT catch OS-level hangs. Wrap each spawn in a wall-clock timeout at the orchestrator layer for OS hangs. |
840+
| §8.1 per-worker Tier-1 | On Rust workspaces with ~1 GB per-worker `target/` dirs, per-worker Tier-1 at 12-agent fan-out is disk-prohibitive. Use the §16.3 coordinator-side override. |
841+
| §4.1 LD-1 sentinel tokens | Slight per-brief ceremony (~50 LoC). Project MAY template the token at orchestrator level rather than per-worker brief to amortize the cost. |
842+
| Spec line-count at v0.1.0 DRAFT | This spec is intentionally maximalist for the first revision. Plan a v0.2 prune of the four DoD checklists (§10 / §13.6 / §14.8 / §15.7) once one real sprint has run with the framework — keep only items that caught field bugs. |
843+
844+
### §16.5 Sprint-by-sprint adoption worked example
845+
846+
A 12-agent Rust fan-out doing cascade + codec + consolidation:
847+
848+
| Sprint | Tier-A adopted | Tier-B adopted | Tier-C overrides |
849+
|---|---|---|---|
850+
| PR-X4 splat cascade (12 workers, internal refactor) | full | LD-1 sentinel only; skip LD-3/4/5 on routine workers | `tier_1_runner: coordinator` |
851+
| PR-X12 codec (Rust port of x265 reference) | full | full §13 Skeleton-Fill (high-stakes source-fidelity port); LD-3/4/5 on consolidation worker | `tier_1_runner: coordinator` |
852+
| PR-X10+11+13 consolidation review (savant pass) | n/a (review pass) | full §15.6 four-savant council on Opus | n/a |
853+
854+
### §16.6 v0.2 prune targets (slim once field-tested)
855+
856+
After one full sprint with this spec, slim the following sections to
857+
items that produced field-tested catches:
858+
859+
| Section | Current items | Slim target |
860+
|---|---:|---|
861+
| §10 Definition of Done | 13 | keep ~5 that catch real bugs |
862+
| §13.6 Skeleton-Fill DoD | 7 | keep ~3 |
863+
| §14.8 per-file-read DoD | 5 | keep ~3 |
864+
| §15.7 cognitive-hygiene DoD | 5 | keep ~3 |
865+
| §8.1 / §8.2 / §8.3 Tier tables | full per-language matrix | slim to entries actually run in the field |
866+
867+
Goal: spec line-count drops 30-50% by v0.2 while preserving the
868+
patterns that caught real bugs.
869+
870+
---
871+
755872
*End of `anti-skim-agent-spec.md`.*

0 commit comments

Comments
 (0)