From 05cfbe514e5bfdc29bc9ab703e4fdf61e68efb07 Mon Sep 17 00:00:00 2001 From: POWERFULMOVES Date: Sun, 16 Aug 2026 09:26:06 -0400 Subject: [PATCH] docs(handoff): re-scope the SPARK Danger Room lane before assigning it Operator asked for a refresh against current main rather than a cold assignment of an 8-day-old handoff. Re-measured against origin/main @ 017de5369. Append-only -- z890's and 4090's original text is untouched. The scope holds. Three claims re-verified rather than assumed: E2B gitlink still drifted -- working copy 7a38b33b, origin/main records 78f7c5d8. The pre-req is unresolved and is the first task, not a footnote. Still 31 skills. Still zero skills declaring the verification contract. One thing is newly available. Acceptance criterion 1 ("sandbox has populated submodules") was an eyeball check when written; it can now be two commands, because SUBMODULE_BUILD_AND_MOUNT_GAP.md merged (#2485) and bind-sources-check landed (#2581). A sandbox passing both cannot silently be the empty-submodule case, which is the case that yields confident false negatives. One thing got sharper, and it changes the artifact contract. Piece 5 cites archon.crawl.* as "a subject registered against an operation nobody built". That was too kind. It HAS a handler: _process_crawl echoes the request's own metadata back as extracted_text and fragments, stamped "status": "completed", and nothing fetches the URL (documented 2026-08-16, #2582). An unimplemented subject times out and you notice. That one reports success. For skill.verified.v1 the same failure is a receipt reading PASS because the harness echoed what the request handed it -- so the artifact must carry the skill content hash AND something only an actual run could produce: exit codes, wall time, emitted paths. A receipt derivable from the request alone is archon.crawl.result.v1 under a different name. That promotes acceptance (5) -- a deliberately broken skill must produce a RED artifact -- from "the one I would cut last" to the one that defines the lane. A Danger Room that cannot emit RED is a publish-and-echo circuit. Not claimed by 4090. SPARK remains the named owner; this refreshes the lane, it does not take it. Co-Authored-By: Claude Opus 5 --- ...NGER_ROOM_VERIFICATION_SPARK_2026-08-08.md | 66 +++++++++++++++++++ 1 file changed, 66 insertions(+) diff --git a/pmoves/docs/handoffs/SKILL_DANGER_ROOM_VERIFICATION_SPARK_2026-08-08.md b/pmoves/docs/handoffs/SKILL_DANGER_ROOM_VERIFICATION_SPARK_2026-08-08.md index 2e4fe7e8c2..e3449800a4 100644 --- a/pmoves/docs/handoffs/SKILL_DANGER_ROOM_VERIFICATION_SPARK_2026-08-08.md +++ b/pmoves/docs/handoffs/SKILL_DANGER_ROOM_VERIFICATION_SPARK_2026-08-08.md @@ -155,3 +155,69 @@ I do not need to watch a run. I need to be able to answer these from artifacts a ## Trail Three-body: delivery=SPARK, control=DARKXSIDE, memory=this doc + the AGNOTE row + the receipts themselves once T3 lands. + +--- + +## Re-scope check — 2026-08-16 (4090, before assignment) + +Eight days on, re-measured against `origin/main` @ `017de5369` before handing this to SPARK. +**The scope holds.** Nothing below replaces the text above; it records what is still true, what +is newly available, and one thing that got sharper. + +### Still true, verified not assumed + +| Claim in this handoff | Checked | State | +|---|---|---| +| E2B gitlink drifted, sync before building | `git submodule status PMOVES-E2B-Danger-Room` | **still drifted.** Working copy `7a38b33b`, `origin/main` records `78f7c5d8`. The pre-req is unresolved — it is the first thing to do, not a footnote. | +| 31 skills, retrofitting all of them is out of scope | count of `.claude/skills/*/SKILL.md` | **still 31.** Unchanged. | +| No skill declares the verification contract | grep for `danger_room` / `scope:` in skill frontmatter | **still none.** Piece 2 is untouched. | + +### Newly available — acceptance criterion 1 can now be a command + +Acceptance 1 asks that a sandbox built from the template have populated submodules. When this +was written that was an eyeball check. Since then: + +- `pmoves/docs/operations/SUBMODULE_BUILD_AND_MOUNT_GAP.md` merged (#2485) — the failure is now + documented, including that Docker **creates** a missing bind source as a directory rather than + erroring, which is exactly how a sandbox produces a confident false negative. +- `make -C pmoves bind-sources-check` (#2581) asserts every submodule-backed compose bind source + exists and is the right kind, and distinguishes *missing* from *directory-where-file-expected*. + +So acceptance 1 should be stated as two commands rather than an inspection: + +```bash +git submodule status | grep '^-' && echo "UNPOPULATED" || echo "populated" +make -C pmoves bind-sources-check +``` + +A sandbox that passes both cannot silently be the empty-submodule case. + +### Sharper — the `archon.crawl.*` cautionary tale is worse than this doc says + +Piece 5 cites `archon.crawl.*` as the reason to register `skill.verified.v1` **before** first +publish: "a subject registered against an operation nobody built." That description was too kind, +and the real version matters for the artifact contract. + +`archon.crawl.*` has a handler. `ArchonOrchestrator._process_crawl` takes the `metadata` dict +**from the request message** and republishes it unchanged as `extracted_text` and `fragments`, +stamped `"status": "completed"`. Nothing fetches the URL. Its tests assert dispatch *routing* +and never that a crawl occurred. (Documented 2026-08-16, PR #2582.) + +**A subject that is never implemented times out and you notice. This one reports success.** For +`skill.verified.v1` that is the precise failure to design against: a receipt reading PASS because +the harness echoed back what the request handed it. Which means the artifact must carry the +**skill content hash** — already required by piece 4 — *and* something the harness could only +know by actually running: exit codes, wall time, emitted paths. A receipt derivable from the +request alone is `archon.crawl.result.v1` wearing a different name. + +This also raises acceptance (5) from "the one I would cut last" to **the one that defines the +lane**. A Danger Room that cannot emit RED is a publish→echo circuit. + +### Unchanged and still correct + +The boundaries hold: `e2b-mcp-server` stays out of scope (still not a compose service), and +retrofitting all 31 skills stays out of scope. Two or three real fixtures still beat thirty +aspirational ones. + +**Not claimed by 4090.** SPARK remains the named owner; this row refreshes the lane, it does not +take it.