You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
docs(.claude/ATT): Protocol A/B + Cooperative Savant Council + skeleton-fill
Folds in the strategic orchestration loop:
- Two-Protocol Operating Modes (§14 of autoattended-orchestrator-spec.md)
Protocol B = design loop on N docs jointly; Protocol A = implementation
loop with skeleton-first preflight.
- Commented-out Rust skeleton as PP-16's Protocol-A deliverable (§14.4)
Canonical token: todo!("SOURCE: <path>:<lines>") per language.
Validation: WAVE-018 skeleton-compiles / WAVE-019 source-annotated /
WAVE-020 no-runtime / WAVE-021 protocol-declared / WAVE-022 coherence.
- Cooperative Savant Council (§15) — NOT independent-parallel + super-
verdict aggregation, but a shared scratchpad where savants iterate,
cross-refer, and withdraw duplicates over R rounds (default max 3).
Super-verdict CONVERGE / SPLIT / BLOCK at chairman synthesis.
Validation: WAVE-023..WAVE-029.
- Savant Mindsets (§4.0) — savants are mindsets, not verdict-producers.
PP-13 = implementation principal; PP-14 = creative-design / R&D;
PP-15 = DTO/interface architect; PP-16 = principal system architect.
- Skeleton-Fill Contract (§13 of anti-skim-agent-spec.md) — what workers
do when PP-16 hands them a skeleton: source-range read, SHA-pin verify,
signature preserved, no new todo!(), SAFETY comments preserved.
- Universal wire format (§1.3 of agent-coordination-mcp-spec.md) —
tee -a [bug/proposal] markdown blob IS the MCP A2A wire format AND
the log format. Three uses, one write.
- Tables-over-prose discipline (§1.4 of agent-coordination-mcp-spec.md).
- Cooperative-Savant Scratchpad Bus (§13 of agent-coordination-mcp-spec.md)
with directory convention .claude/board/savant-council-<topic>/ and
per-savant per-round file schema. Native MCP endpoint sketch:
post_council_finding / read_council_round / subscribe_council_round.
Additive only.
Copy file name to clipboardExpand all lines: .claude/ATT/anti-skim-agent-spec.md
+78Lines changed: 78 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -440,4 +440,82 @@ work.
440
440
441
441
---
442
442
443
+
## §13 Skeleton-Fill Contract (Protocol A)
444
+
445
+
> Added 2026-05-18. Applies to workers operating in
446
+
> `autoattended-orchestrator-spec.md` Protocol A (implementation),
447
+
> where PP-16's preflight has produced a commented-out Rust
448
+
> skeleton (per §14.4 of the orchestrator spec).
449
+
450
+
### §13.1 What the worker receives
451
+
452
+
Three inputs:
453
+
454
+
1. The skeleton file(s) at `skeleton_output_path` containing
455
+
`todo!("SOURCE: <path>:<lines>")` macros at every body site.
456
+
2. The original spec / reference-source files referenced in each
457
+
`SOURCE:` annotation.
458
+
3. A SHA-256 of both the skeleton AND each referenced source file,
459
+
pinned by PP-16 at preflight time.
460
+
461
+
### §13.2 Worker's obligations
462
+
463
+
For every `todo!("SOURCE: <path>:<lines>")` the worker fills:
464
+
465
+
1.**Read the source range** at the declared depth (§3.3); default
466
+
for ports is `full`.
467
+
2.**Record proof-of-read** for the source file at the declared
468
+
line range (§7.1).
469
+
3.**Replace `todo!(...)` with the body**, preserving the surrounding
470
+
signature exactly. The signature came from PP-16; the worker
471
+
does not change it without an Iron-Rule-amending RFC.
472
+
4.**Quote the source line range in the commit message body** (per
473
+
`autoattended-orchestrator-spec.md` §5.6).
474
+
5.**Confirm the skeleton's SHA-256 against the pinned value** at
475
+
start of work. If the skeleton has drifted (e.g. a sibling worker
476
+
touched it), the worker MUST STOP and file an `EXTERNAL_DEPENDENCY`
477
+
blocker in `META/REQUESTS-FROM-AGENTS.md`.
478
+
479
+
### §13.3 Forbidden in skeleton-fill mode
480
+
481
+
- Changing a signature provided by the skeleton (RFC required).
482
+
- Adding a `todo!()` that did NOT come from the skeleton (would
483
+
bypass PP-16's source-annotation discipline).
484
+
- Removing a `// SAFETY:` comment from an `unsafe` block (PP-13
485
+
will reject; PP-16 wrote it for a reason).
486
+
- Filling bodies in a file outside `skeleton_output_path` (§5.1
487
+
unique-file write discipline).
488
+
489
+
### §13.4 Reading depth required
490
+
491
+
| Source kind | Minimum depth |
492
+
|---|---|
493
+
|`SOURCE: <reference-source>:<lines>` (the function being ported) |`full` for the named line range |
494
+
|`UNSAFE-SOURCE: <reference-source>:<lines>`|`thorough` for the named range AND the function's callers |
495
+
| The skeleton file itself |`read` (to confirm the surrounding signature you're filling into) |
496
+
|`META/INVARIANTS.md`|`thorough` (per §3.3) |
497
+
498
+
### §13.5 Validation rules
499
+
500
+
| Rule | Description | Severity |
501
+
|---|---|---|
502
+
|`FILL-001 source-range-read`| Every `todo!("SOURCE: P:L-M")` the worker fills MUST appear in the worker's proof-of-read with `file=P, lines covering L-M, depth=full`. | ERROR |
503
+
|`FILL-002 skeleton-sha-pin`| Worker MUST verify the skeleton's SHA-256 against the value PP-16 pinned, at start of work. Drift → STOP + `EXTERNAL_DEPENDENCY`. | ERROR |
504
+
|`FILL-003 signature-preserved`| Worker MUST NOT change a signature provided by the skeleton without a merged RFC. Diff inspection by PP-15 enforces. | ERROR |
505
+
|`FILL-004 unsafe-safety-preserved`|`// SAFETY:` comments on `unsafe` blocks from the skeleton MUST survive into the filled body. PP-13 enforces. | ERROR |
506
+
|`FILL-005 no-new-todo`| Worker MUST NOT introduce new `todo!()` calls; every `todo!()` in the filled file MUST trace back to a skeleton entry. | ERROR |
507
+
508
+
### §13.6 Definition of Done (skeleton-fill)
509
+
510
+
-[ ] Every `todo!()` in the assigned skeleton file(s) is replaced.
511
+
-[ ] No new `todo!()` introduced (FILL-005).
512
+
-[ ] Skeleton SHA matched at start; final SHA different (FILL-002).
513
+
-[ ] Proof-of-read covers every `SOURCE:` annotation (FILL-001).
514
+
-[ ] All signatures preserved (FILL-003).
515
+
-[ ] All `// SAFETY:` comments preserved (FILL-004).
516
+
-[ ] Tier-1 toolchain green on filled file (§8.1).
517
+
-[ ] Status file written per `autoattended-orchestrator-spec.md` §9.1.
0 commit comments