Version. 0.1
Date. 2026-05-10
Status. Pre-CR scoping evidence brief. Hands to CC. Mirrors loomworks-phase-53-step-0-inspection-brief-v0_1.md adapted for smaller substrate amendment.
Author. Claude.ai. Operator: Marvin Percival.
Companion document. loomworks-phase-54-scoping-note-v0_1.md (parent — the brief presupposes its decomposition, its Answer C / C1 / α settlement, and its §Open construction decisions list).
Pre-CR live-codebase verification for Phase 54 — Phase 31 brief-commit and gated auto-induct (Answer C with C1 + α settled). Engine substrate sub-arc 1 plus minimal Operator Layer sub-arc 2 (one button); marketing repo not touched.
Phase 54 scoping note v0.1 records the build shape and architectural decisions (Answer C; P54-D1 and P54-D2 settled; P54-D3 through P54-D6 open with scoping-agent recommendations). Several of those decisions rest on assumptions about what seed_conversation.py:468 (the Phase 31 brief storage site), draft_seed and induct_seed (the Phase 53 production-caller targets), the Phase 31 frontend "Submit for review" path, and the /seed* URL family look like as actually shipped at the Phase 53 close baseline. The scoping note carries [Step 0 verifies] markers across the substrate touch-points. This brief enumerates those verifications, gives CC a paste-ready way to run them, and defines what CC produces as a result.
CC verifies, evidence-cites, and reports verdicts. CC does not propose remediation, does not edit the scoping note, does not draft the CR, does not start build.
The brief assumes Answer C is the working shape with P54-D1 and P54-D2 settled per Operator selection at scoping time:
draft_seed from conversation router on the latest brief, then induct_seed)./converse endpoint plus new finalize endpoint, name TBD per V4).seed_committed_from_brief, _ANCHOR_PRIORITY at "standard" by analogy to Phase 53 P53-D12).phase-54-brief-commit-and-auto-induct).If V3 reports the Phase 31 frontend already reaches induction via client-side structured-payload extraction, scoping v0.2 reshapes Phase 54's substrate decomposition from "wire-up" to "refactor" (frontend-side extraction → engine-side extraction). The Answer C / C1 / α settlement holds; the substrate work shape changes.
Lens-bounded discipline note. Per manifest v0.38 §2 lens-bounded-scoping-evidence-cascade (now a named principle), three of the six verifications below explicitly ask for enumeration of call-sites, route registrations, or frontend code paths where the scoping note assumes a count or shape. Phase 53's V4 / V5 / V10 surfaced enumeration discrepancies in the same direction (substrate denser than scoping note assumed). Phase 54 inherits the discipline pre-emptively; V1, V3, and V4 widen aperture by asking for enumeration even where the scoping note assumes the answer.
CC reads in this order before starting verifications:
loomworks-phase-54-scoping-note-v0_1.md (parent document; in project knowledge).current-status-manifest-v0_38.md (in project knowledge — substrate state at Phase 53 close, named principles including lens-bounded scoping evidence cascade, residues).phase-53-cr-discovery-to-seed-skill-v0_1.md (engine repo docs/phase-crs/; most recent CR — for §11 orchestration pattern with induct_seed call, §13 new-MemoryObject + FORAY pattern, §17 test list pattern, P53-D12 settlement framing).phase-31-cr-conversational-engagement-creation-v0_1.md (engine repo docs/phase-crs/; the existing conversational creation flow — V1 verifies the brief storage site, V3 verifies the documented design intent at §9.5, V4 reads the existing /seed* family endpoints listed in §5).phase-53-step-0-findings-v0_1.md (engine repo docs/phase-impl-notes/; the V4 / V5 / V10 findings on Phase 31 substrate — V1 and V4 build on these directly).phase-31-implementation-notes-v0_1.md or v0_2.md if present (engine repo docs/phase-impl-notes/; for any Phase 31 build-time decision recording a deliberate revision of CR §9.5 — V3 uses this as evidence).docs/phase-crs/; the existing induct_seed call shape at engagements.py:361, the FORAY attestation seam pattern — V2 and V6 verify against these).Before running verifications, CC confirms the substrate is at the expected baseline. Phase 53 close per scoping note §predecessor-state:
DUNIN7/loomworks-engine, tag phase-53-discovery-to-seed-skill at engine 702bd34 (annotated tag object 94b23e1). Substrate 2,164 tests passed. Alembic 0064. Working tree clean on main. Pushed to origin.DUNIN7/loomworks, marker tag phase-51-marketing-site-and-companion-email at frontend e4c09e0 (Phase 50 commit). 128 vitest passed, 11 prerendered routes, eslint/tsc/build clean. Phase 54 sub-arc 2 will touch this repo if P54-D4 lands as minimal frontend addition.DUNIN7/loomworks-marketing, tag phase-51-marketing-site-and-companion-email at bf2f694; main one commit ahead at 78c26fa. Live at https://loomworks.doneinseven.com. Not in Phase 54 scope.DUNIN7/loomworks-ui, unchanged from Phase 48 baseline. Not in Phase 54 scope.If the baseline diverges (substrate test count off by more than ±2 routine noise, Alembic head different, working tree dirty, tag missing on engine, marketing site not live), CC stops at the start of Step 0 and reports before running any verifications.
Six verifications. V1–V4 are core; V5 is conditional on V3's finding; V6 is conditional on P54-D5 settling toward a new event kind.
seed_conversation.py:468
Framing. Phase 53 V5 found that Phase 31's conversation produces a seed_document: str brief stored on companion_turn events at src/loomworks/api/routers/seed_conversation.py lines 468, 842, 850. Phase 54 path α inserts a new finalize endpoint that picks up the latest stored brief, calls draft_seed on it, and calls induct_seed. V1 confirms the insertion point still holds and enumerates all current brief-storage sites in case any have shifted since Phase 53 V5.
What to check.
seed_conversation.py:468 (or current equivalent) is still the brief-storage site on companion_turn events.seed_conversation.py where seed_document (or any similarly-named brief field) is written to a companion_turn event payload.draft_seed + induct_seed. Candidates: (a) the existing POST /engagements/{eid}/seed/converse router's terminal branch when the conversation reaches ready_for_review; (b) a new endpoint that reads the most recent companion_turn event with a brief and acts on it; (c) some other shape if the substrate has accreted in a direction the scoping note didn't anticipate.Evidence expected.
seed_conversation.py:468 is still the canonical site or has shifted.Verdict criteria.
companion_turn events anymore, or seed_conversation.py has been restructured significantly. v0.2 reshapes around the new substrate evidence.draft_seed and induct_seed call signatures
Framing. Phase 54 path α calls draft_seed on the brief, then induct_seed on the resulting Seed. Phase 53 creation.py:409 (the /seed/extract endpoint's terminal step) is the model. V2 confirms the call signatures draft_seed accepts and induct_seed requires, and specifically settles whether draft_seed accepts a free-form natural-language string as input.
What to check.
draft_seed: parameter names, types, return type, where it lives (probably src/loomworks/engagement/seed.py or similar).induct_seed: parameter names, types, return type.draft_seed accept a free-form string (e.g., the Phase 31 brief), or does it require some structured input (e.g., already-extracted R-A5–R-A11 fields)?src/loomworks/engagement/creation.py:409: what draft_seed is called with and what the surrounding context is.Evidence expected.
draft_seed and induct_seed.induct_seed(draft_seed(brief_text)), or does an extraction step have to live between brief and draft_seed?draft_seed is required, identify what that extraction step looks like (LLM call? regex parsing? other).Verdict criteria.
draft_seed(brief_text) is a clean call; the brief is the natural-language input draft_seed's LLM-assist machinery handles. Path α implementation is the natural Phase-53-mirroring shape: induct_seed(draft_seed(brief_text)) plus surrounding error handling.draft_seed requires structured input, but the adapter step (brief → structured) is small (one LLM call wrapper, or similar to Phase 53's skill orchestration). Path α implementation absorbs the adapter step.draft_seed's signature is denser than Phase 53's usage suggests; path α implementation needs a substantive intermediate step. v0.2 absorbs the new design surface.draft_seed / induct_seed signatures have changed since Phase 53 in ways that make path α materially different from the Phase 53 mirror. v0.2 reshapes.
Framing. Phase 31 CR §9.5 specifies "Clicking 'Submit for review' calls POST /engagements/{eid}/seed with the structured seed content. The existing induction loop takes over." Phase 53 V5 found the engine side does not construct a structured Seed in seed_conversation.py. The open question: what does the frontend actually do at the "Submit for review" click? Three possibilities: (a) the frontend POSTs to /engagements/{eid}/seed with structured fields it constructs client-side (maybe LLM-extracted in the browser), and the Phase 25 amend endpoint calls induct_seed — in which case Phase 31 already reaches induction, just via a circuitous path; (b) the frontend POSTs to some endpoint with the raw brief string and the engine doesn't process it as a Seed — in which case the conversational path dead-ends and the Operator does manual re-entry elsewhere; (c) the frontend doesn't POST at all (no button wire-up) or routes somewhere else entirely.
V3 settles which possibility is shipped. The answer reshapes whether Phase 54's substrate amendment is a wire-up (no prior path to induction) or a refactor (the path exists but should move engine-side).
What to check.
DUNIN7/loomworks), locate the Phase 31 conversational creation surface — the route handling /engagements/new conversational path. Likely under app/engagements/new/ or app/components/ (CC's judgment on the exact path).onClick (or onSubmit, or framework-equivalent) handler does: which endpoint it POSTs to, with what payload shape, what happens with the response.Evidence expected.
Verdict criteria.
/seed* URL family conventions
Framing. Phase 53 V10 enumerated ten routes under /seed* and found them uniformly engagement-scoped. Phase 54 adds one new endpoint to the family (per P54-D3 recommendation: existing /converse plus new finalize endpoint). V4 confirms the family is still consistent and recommends the new endpoint's name.
What to check.
/seed*: file path, line number, full route signature (HTTP verb + path + scope)./engagements/{eid}/seed/converse/commit, /engagements/{eid}/seed/converse/induct, /engagements/{eid}/seed/converse/finalize. Identify any in-convention alternative not in the candidate list.Evidence expected.
/seed* route: file path, line number, full route signature.Verdict criteria.
/seed/converse/submit if the family has submit somewhere as the canonical commit verb). Operator picks at v0.2 review.Framing. Fires only if V3 returns the REVERSES verdict (possibility (a) — frontend already does client-side structured-payload extraction). V5 examines the existing frontend extraction code and recommends whether it should be removed as part of Phase 54 or left in place as redundant alongside the new engine path.
What to check.
Evidence expected.
Verdict criteria. No HOLDS / BREAKS framing — V5 is purely advisory. CC's recommendation goes to scoping v0.2 for Operator review.
seed_committed_from_brief
Framing. Fires if P54-D5 settles toward the new event kind seed_committed_from_brief (the scoping-agent recommendation at v0.1). V6 verifies the FORAY namespace registration pattern from Phase 53 P53-D12 and confirms _ANCHOR_PRIORITY placement for the new event kind.
What to check.
_ANCHOR_PRIORITY data structure (the priority registration site where Phase 53's discovery_to_seed_extracted was added at "standard"). File path and line number._ANCHOR_PRIORITY with its priority value, to confirm "standard" is the right level for seed_committed_from_brief by analogy._foray block schema, content_hash computation, anchorable flag. Identify the file(s) where these conventions are defined.MemoryObject subclass registration pattern from Phase 53 (the DiscoveryToSeedExtracted class). The new SeedCommittedFromBrief class will mirror this pattern.Evidence expected.
_ANCHOR_PRIORITY._ANCHOR_PRIORITY entries with priority values.DiscoveryToSeedExtracted class registration (for mirroring).seed_committed_from_brief at "standard" fits the established convention.Verdict criteria.
_ANCHOR_PRIORITY location and convention confirmed; "standard" priority confirmed appropriate; MemoryObject subclass pattern mirrors cleanly. CR drafting uses the established pattern._ANCHOR_PRIORITY location confirmed but the convention suggests a different priority level (e.g., "high" because the commit-to-induct event is more consequential than the extraction event). CC recommends an alternative; Operator picks at v0.2.seed_committed_from_brief) has a tension with established naming patterns. CC suggests alternative names; Operator picks at v0.2 / CR drafting.
CC produces phase-54-step-0-findings-v0_1.md at /Users/dunin7/loomworks-engine/docs/phase-impl-notes/. One section per verification (V1, V2, V3, V4; V5 only if V3 reverses; V6 only if P54-D5 stays as recommended). Each section: verdict (HOLDS / PARTIALLY HOLDS / BREAKS / INCONCLUSIVE — per-verdict variants per §4 above), evidence (file paths, line numbers, function signatures, exact strings as found; enumerated lists where the verification asks for enumeration), implication for scoping note (carry / naming-only divergence / architectural amendment).
CC then tells Marvin which of three states the findings put Phase 54 in:
CC does not propose remediation in the findings document. CC does not edit the scoping note. CC does not start CR drafting. CC does not start implementation. CC reports.
Lens-bounded discipline reminder. Verifications V1, V3, and V4 explicitly ask for enumeration (brief-storage sites; frontend test files exercising the Submit path; /seed* routes). If any enumeration produces a count materially different from what the scoping note assumes, CC reports the discrepancy as a finding worth surfacing even if the verdict otherwise lands HOLDS. This is the lens-bounded scoping evidence cascade principle applied at smaller scale than Phase 53.
Place this brief at /Users/dunin7/loomworks-engine/docs/phase-impl-notes/loomworks-phase-54-step-0-inspection-brief-v0_1.md. Then open a new CC session on DUNIN7-M4 and paste:
Read /Users/dunin7/loomworks-engine/docs/phase-impl-notes/loomworks-phase-54-step-0-inspection-brief-v0_1.md
Run all six verifications against the live codebases at /Users/dunin7/loomworks-engine
and /Users/dunin7/loomworks (V3 and V5 read frontend code in the Operator Layer
repo). Phase 53 close baseline: engine tag phase-53-discovery-to-seed-skill at
702bd34 (annotated 94b23e1); substrate 2,164 tests passed, Alembic 0064; working
tree expected clean on main. Operator Layer at marker tag
phase-51-marketing-site-and-companion-email at e4c09e0; 128 vitest passed, eslint/
tsc/build clean.
Reading order before running: loomworks-phase-54-scoping-note-v0_1.md (in
project knowledge); current-status-manifest-v0_38.md (in project knowledge);
phase-53-cr-discovery-to-seed-skill-v0_1.md (engine repo docs/phase-crs/);
phase-31-cr-conversational-engagement-creation-v0_1.md (engine repo docs/
phase-crs/); phase-53-step-0-findings-v0_1.md (engine repo docs/phase-impl-
notes/); phase-31-implementation-notes-v0_1.md or v0_2.md if present (engine
repo docs/phase-impl-notes/); Phase 25 CR + FORAY amendment (engine repo
docs/phase-crs/); this brief.
V1-V4 are core; run all four. V5 runs only if V3 returns the REVERSES verdict
(possibility (a) — frontend already does client-side structured-payload
extraction reaching induction via Phase 25 amend). V6 runs assuming P54-D5
stays as the scoping-agent recommendation (new event kind seed_committed_
from_brief); if Marvin signals otherwise before Step 0 runs, V6 adjusts or
folds.
Produce findings at /Users/dunin7/loomworks-engine/docs/phase-impl-notes/
phase-54-step-0-findings-v0_1.md.
One section per verification. Each section: verdict (HOLDS / PARTIALLY HOLDS /
BREAKS / INCONCLUSIVE; per-verdict variants per brief §4), evidence (file
paths, line numbers, function signatures, exact strings as found; enumerated
lists where the verification asks for enumeration), implication for scoping
note (carry / naming-only divergence / architectural amendment).
V1, V3, and V4 explicitly require enumeration. If any enumeration produces a
count materially different from what the scoping note assumes, surface the
discrepancy as a finding worth recording even if the verdict otherwise lands
HOLDS — this is the lens-bounded scoping evidence cascade principle applied
at smaller scale than Phase 53.
Do not propose remediation. Do not edit the scoping note. Do not start CR
drafting or implementation.
Report back with the findings document.
The receiving CC session reads the brief, runs the verifications, produces the findings document, and reports.
loomworks-phase-54-scoping-note-v0_1.md — parent scoping note. CC reads this first (the brief presupposes its decomposition and Operator-confirmed Answer C / C1 / α settlement).current-status-manifest-v0_38.md — current substrate state and named principles including the lens-bounded scoping evidence cascade.phase-53-cr-discovery-to-seed-skill-v0_1.md (engine repo docs/phase-crs/) — most recent CR; orchestration pattern; new-MemoryObject + FORAY pattern; test list pattern; P53-D12 settlement framing.phase-31-cr-conversational-engagement-creation-v0_1.md (engine repo docs/phase-crs/) — existing conversational creation flow; §5 endpoints; §9.5 design intent; §10 seed tab UI.phase-53-step-0-findings-v0_1.md (engine repo docs/phase-impl-notes/) — Phase 53 V4 / V5 / V10 findings; V1 and V4 build on these directly.phase-31-implementation-notes-v0_1.md (engine repo docs/phase-impl-notes/; v0_2 if it exists) — for evidence of any Phase 31 build-time decision recording a deliberate revision of §9.5. V3 uses absence-of-such-record as part of its evidence.docs/phase-crs/) — existing induct_seed call shape and FORAY attestation seam pattern; V2 and V6 verify against these.loomworks-queued-directions-and-deferred-work-v0_8.md — for context on the engagement creation arc's queue position; Phase 55+ orientation.loomworks-phase-53-step-0-inspection-brief-v0_1.md — precedent for this brief's structure.phase-53-step-0-findings-v0_1.md — precedent for the findings document shape CC produces.DUNIN7 — Done In Seven LLC — Miami, Florida Loomworks Phase 54 Step 0 Inspection Brief — v0.1 — 2026-05-10