Version. 0.1
Date. 2026-05-10
Status. Pre-CR scoping evidence brief. Hands to CC. Mirrors loomworks-phase-52-step-0-inspection-brief-v0_1.md.
Author. Claude.ai. Operator: Marvin Percival.
Companion document. loomworks-phase-53-scoping-note-v0_1.md (parent — the brief presupposes its decomposition, its P53-D1 through P53-D9 recommendations all settled by the Operator, and its §7 candidate verification list).
Pre-CR live-codebase verification for Phase 53 — Discovery-to-seed skill substrate as the engagement creation arc kickoff (Option B from the scoping-time shape options). Single sub-arc; engine repo only; sub-arcs 2 (Operator Layer) and 3 (marketing) empty by default.
Phase 53 scoping note v0.1 records the build shape and architectural decisions (Option B; P53-D1 through P53-D9 with all Operator-confirmed recommendations). Several of those decisions rest on assumptions about what the Phase 16 ExtractionSkill family, the Phase 25 seed-induction loop, the Phase 31 conversational creation flow, the Phase 38 declare-and-register surface, the Phase 16 upload pipeline, and the FORAY attestation seam look like as actually shipped at the Phase 52 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 Option B is the working shape with all P53-D1 through P53-D9 recommendations settled per Operator confirmation:
phase-53-discovery-to-seed-skill.discovery_to_seed_extracted.If V2 or V5 reports diverge from the scoping-note read in ways that affect P53-D3 or P53-D5, scoping v0.2 reshapes around the actual evidence.
Lens-bounded discipline note. Per manifest v0.37 §2 lens-bounded-scoping-evidence-cascade methodology candidate (awaiting second instance), several verifications below explicitly ask for enumeration of call-sites or registration-sites where the scoping note assumes a count or shape. The Phase 52 finding was that Step 0 verifications inherit aperture from the brief's explicit asks; this brief widens aperture pre-emptively where the scoping note's assumptions involve counts. If Phase 53 surfaces this pattern again as a real call-site count divergence, it promotes from candidate to named principle in the manifest v0.38 bump.
CC reads in this order before starting verifications:
loomworks-phase-53-scoping-note-v0_1.md (parent document; in project knowledge).phase-52-cr-jurisdiction-routing-v0_1.md (engine repo docs/phase-crs/; the most recent CR — for §6–§11 substrate decomposition pattern, §17 test list pattern, FORAY hook conventions, Memory event registration pattern V7 verifies).phase-31-cr-conversational-engagement-creation-v0_1.md (engine repo docs/phase-crs/; the existing conversational creation flow — V5 verifies the as-shipped substrate; especially §4 system-level key store, §5 conversational seed synthesis endpoint, §6 conversation prompt template, §7 FORAY hooks).docs/phase-crs/; ExtractionSkillRegistry shape — V1 verifies; per-engagement key store pattern — context for V5).docs/phase-crs/; declare-and-register pattern — V3 verifies).docs/phase-crs/; engagement creation endpoints, seed-induction loop, FORAY attestation seam — V4, V9 verify).loomworks-queued-directions-and-deferred-work-v0_7.md §1.1 + §1.2 (the queued-directions framing of the engagement creation arc; §1.2 trajectory note's reference to "materializer registry" — V2 resolves).Before running verifications, CC confirms the substrate is at the expected baseline. Phase 52 close per the scoping note §predecessor-state:
DUNIN7/loomworks-engine, tag phase-52-jurisdiction-routing at engine 69aecdc (annotated tag object f11e41a). main one commit ahead at 14e5a7f per Phase 52 close report. Substrate 2,137 tests passed, 25 skipped. Alembic 0064. Working tree clean on main. Pushed to origin.DUNIN7/loomworks, Phase 51 marker tag phase-51-marketing-site-and-companion-email at frontend e4c09e0 (Phase 50 commit). 139 vitest passed, eslint/tsc/build clean. Phase 52 sub-arc 2 was empty by default per P52-D4. Not in Phase 53 scope by default per P53-D4.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 53 scope.DUNIN7/loomworks-ui, unchanged from Phase 48 baseline. Not in Phase 53 scope.If the live baseline diverges (test count off by more than ±2 routine noise, Alembic head different from expected, working tree dirty, tag missing), CC stops at the start and reports before running any verifications.
Each verification has four parts: ask (what to verify), look at (where to read), evidence expected (what the finding should cite), verdict criteria (when each verdict applies).
Ask. Confirm the as-shipped ExtractionSkill family — module location, protocol surface (the Python protocol or base class skills implement), the registration mechanism (decorator, registry function, both), the secret_key kwarg autouse-monkeypatch convention from the testing standard, AND enumerate every existing skill registration call-site so the Phase 53 skill registration lands in a verified-by-count surface (lens-bounded discipline; the scoping note assumes "the existing registry pattern" — count divergence here would surface a P53-D3 reshape).
Look at.
loomworks/skills/. Confirm the directory exists, list its contents, and identify the base class / protocol all skills inherit / implement.loomworks/skills/__init__.py or a sibling registry.py; identify how skills get registered (decorator? imperative call? auto-discovery?).grep or equivalent for the registration mechanism's signature; count and list.secret_key kwarg pattern — confirm the autouse-monkeypatch convention from the testing standard (per userMemories: "ExtractionSkill protocol carries a secret_key kwarg; tests must autouse-monkeypatch settings.loomworks_secret_key to TEST_SECRET_KEY"). Read the relevant conftest.py files.Evidence expected.
secret_key kwarg signature in the protocol; the autouse-monkeypatch fixture in conftest.py (file path + line range).Verdict criteria.
secret_key kwarg pattern intact. Phase 53 skill registers in the same family.Extractor not ExtractionSkill, or the registry is named differently). Reports the actual names; CR drafting uses the actual names.secret_key kwarg now lives on a different protocol). Reports the specifics and which call-sites use which pattern.Ask. Queued directions v0.7 §1.2 trajectory note refers to "the skill pattern composes with the rest of Loomworks (extraction skills, materializer registry, etc.)" — phrasing that suggests materializer registry is a distinct thing from ExtractionSkillRegistry. Resolve whether materializer registry is (i) a separate registered surface, (ii) a synonym for ExtractionSkillRegistry, (iii) a Phase 38 grammar-dict surface, or (iv) terminology that didn't survive into shipped substrate. This verification settles P53-D3 (skill registration locus).
Look at.
grep -ri "materializer" across the codebase; report all hits with file paths and line ranges.Evidence expected.
materializer hits in the substrate (file path, line range, usage context for each).Verdict criteria.
materializer hits in substrate. Reports the absence; queued directions §1.2 trajectory note's phrasing was forward-looking, not load-bearing on shipped substrate. P53-D3 settles to ExtractionSkillRegistry by default.Ask. Confirm the Phase 38 declare-and-register pattern as actually shipped — module location, declaration surface (where engagements declare what they want registered), registration mechanism, and any existing extension points the Phase 53 skill might use directly rather than going through the ExtractionSkillRegistry. The scoping note assumes Phase 38 is a sibling registration pattern that could be the Phase 53 locus per P53-D3 candidate (iii); V3 confirms or refutes that candidate.
Look at.
loomworks/spec/ or loomworks/grammar/ per Phase 38 CR §6 (specification grammar declaration).Evidence expected.
grep or equivalent for the registration function).Verdict criteria.
Ask. Confirm the seed schema (R-A5 through R-A11 per methodology v0.20 / Spec v0.10 Sec-A.2) as actually shipped in code — the canonical Pydantic model or dataclass for a candidate seed payload, the field names, the field types, the Phase 25 POST /engagements/{eid}/seed endpoint's request body shape. Phase 53's skill output must conform exactly. Enumerate every code site that constructs or validates a seed payload (lens-bounded discipline; scoping note assumes "the canonical structure" — count divergence here would surface seed-schema scattering).
Look at.
loomworks/api/routers/engagements.py or similar; the POST /engagements/{eid}/seed endpoint definition.grep for the model name; report file paths + line numbers.Evidence expected.
Verdict criteria.
Ask. Confirm Phase 31's conversational creation flow is still functional in current substrate — POST /seed/converse endpoint live, POST /seed/converse/transcribe live, GET /seed/conversation live, system_config table populated, conversation prompt template at loomworks/prompts/creation_conversation.py, all FORAY hooks intact. Confirms the P53-D5 "coexist as sibling paths" recommendation rests on a working sibling, not a degraded one. Enumerate every call-site that touches the seed-induction loop entry (Phase 25 POST /engagements/{eid}/seed/induct and equivalents) so Phase 53's new skill-completion → induction-loop hand-off lands consistently with both Phase 25 form-submission and Phase 31 conversation endpoints.
Look at.
loomworks/api/routers/seed_conversation.py or wherever the endpoints live.PROMPT_VERSION / CONVERSATION_MODEL / CREATION_CONVERSATION_PROMPT.system_config table — Alembic migration history; current schema.grep for the induction endpoint or its handler function.Evidence expected.
PROMPT_VERSION value.system_config table: Alembic migration ID; current column listing.Verdict criteria.
Ask. Confirm the Phase 16 upload pipeline as actually shipped — POST /engagements/{eid}/files endpoint live; the file upload mechanism produces a Memory artifact reference; Markdown content is supported (text-shaped artifact, not just binary blob). Phase 53's skill input is "a Discovery document landed in Memory via the Phase 16 upload pipeline" per P53-D6.
Look at.
loomworks/api/routers/files.py or equivalent.POST /engagements/{eid}/files); request body shape; supported content types.Evidence expected.
Verdict criteria.
Ask. Confirm the typed-MemoryObject-subclass-without-migration pattern from Phase 50 (grant_request_received) and Phase 52 (jurisdiction_routing_decided) as still the canonical pattern for new Memory event kinds. Phase 53 registers discovery_to_seed_extracted per P53-D9 following the same pattern — without an Alembic migration if the pattern holds. Confirm OBJECT_TYPE_REGISTRY entry point, event-kind literal canonicalization site, and FORAY namespace pattern.
Look at.
grant_request_received registration — likely in loomworks/credit/grant_request.py or similar; full registration code.jurisdiction_routing_decided registration — likely in loomworks/credit/jurisdiction_routing.py per scoping note baseline state; full registration code._foray namespace in event payloads, content_hash field convention.Evidence expected.
content_hash pattern as code: file path, line range, conventional shape.Verdict criteria.
Ask. Inventory the Discovery records already produced in project knowledge as candidate test fixtures for the Phase 53 skill. The skill operates on free-form Markdown with recognized section headers (path (a) per P53-D2); the test surface needs at least three such records spanning different domains to demonstrate the skill is not over-fit to one Discovery shape. Confirm the recognized-section-header convention is reading-pattern-stable enough for the skill to depend on.
Look at.
-discovery-, Discovery, or files that read as Discovery-trajectory shape (per the candidate seed v0.8 / declared-shape-types draft v0.1 description: "positions considered, alternatives set aside and why, corrections that landed, moments where something new crystallized").loomworks-person-layer-discovery-v0_2.mddiscovery-shape-as-specification-v0_4.mdloomworks-marketing-creation-flow-content-v0_3.mdrender-discovery-handoff-v0_2.mdloomworks-ui-discovery-sign-in-and-dashboard-v0_1.mdEvidence expected.
Verdict criteria.
Ask. Confirm the FORAY attestation seam (Phase 25 amendment + Phase 50/52 extensions) as actually shipped. The Phase 53 skill produces a discovery_to_seed_extracted Memory event with content_hash + _foray namespace per P53-D9 and the Phase 50/52 precedent. V9 confirms the canonical content_hash computation function, the _foray namespace structure, and the test fixture for FORAY hook coverage.
Look at.
loomworks/foray/ or similar.content_hash computation function — file path, signature, hashing convention._foray namespace structure — what fields go inside _foray in event payloads.Evidence expected.
content_hash function: file path, line range, full signature._foray namespace example: a representative event payload showing the structure.Verdict criteria.
_foray namespace since Phase 50). Reports specifics; CR drafting absorbs.
Ask. Confirm the existing engagement creation endpoint surface naming so Phase 53's new endpoint lands consistently. Phase 25 ships POST /engagements/{eid}/seed (form submission), POST /engagements/{eid}/seed/induct (induction trigger), and Phase 31 ships POST /seed/converse, GET /seed/conversation, POST /seed/converse/transcribe, GET /seed/converse/ready. The Phase 53 endpoint candidate POST /engagements/{eid}/seed/from-discovery (per scoping note §4) needs to fit into the family without surprise.
Look at.
/seed or /engagements/{eid}/seed. grep for the route prefixes; report all routes with file paths and line numbers./engagements/{eid}/seed/ and /seed/ co-exist as parallel families (engagement-scoped vs system-scoped), or has there been consolidation?POST /engagements/{eid}/seed/from-discovery fits the engagement-scoped family naturally.Evidence expected.
/seed*: file path, line number, full route signature./engagements/{eid}/seed/from-discovery, or propose a more in-convention name.Verdict criteria.
POST /engagements/{eid}/seed/from-discovery fits naturally. CR drafting uses the proposed name.POST /engagements/{eid}/seed/discovery simpler; or POST /engagements/{eid}/seed/extract more aligned with skill-centric naming). Reports the alternative; Operator picks at v0.2 review.
CC produces phase-53-step-0-findings-v0_1.md at /Users/dunin7/loomworks-engine/docs/phase-impl-notes/. One section per verification. Each section: verdict (HOLDS / PARTIALLY HOLDS / BREAKS / INCONCLUSIVE; verifications also accept their 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 53 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, V4, V5, and V10 explicitly ask for enumeration of call-sites, construction-sites, induction-loop entries, or routes. If any enumeration produces a count materially different from what the scoping note assumes (V1: a small handful of skill registrations; V4: one canonical seed model with bounded construction sites; V5: clean and bounded induction-loop entry; V10: clean and bounded /seed routes), CC reports the discrepancy as a finding worth surfacing* even if the verdict otherwise lands HOLDS — this is how the lens-bounded scoping evidence cascade methodology candidate gets its second instance and becomes a named principle.
Place this brief at /Users/dunin7/loomworks-engine/docs/phase-impl-notes/loomworks-phase-53-step-0-inspection-brief-v0_1.md (or wherever you prefer; adjust the first line of the kickoff accordingly). Then open a new CC session on DUNIN7-M4 and paste:
Read /Users/dunin7/loomworks-engine/docs/phase-impl-notes/loomworks-phase-53-step-0-inspection-brief-v0_1.md
Run all ten verifications against the live codebase at /Users/dunin7/loomworks-engine. Phase 52 close baseline: tag phase-52-jurisdiction-routing at engine 69aecdc; main one commit ahead at 14e5a7f. Substrate 2,137 tests passed, 25 skipped, Alembic 0064. Working tree expected clean on main.
Reading order before running: loomworks-phase-53-scoping-note-v0_1.md (in project knowledge); current-status-manifest-v0_37.md (in project knowledge); phase-52-cr-jurisdiction-routing-v0_1.md (engine repo docs/phase-crs/); phase-31-cr-conversational-engagement-creation-v0_1.md (engine repo docs/phase-crs/); Phase 16 CR + addendum (engine repo docs/phase-crs/); phase-38-cr-specification-grammar-declaration-v0_1.md (engine repo docs/phase-crs/); Phase 25 CR + FORAY amendment (engine repo docs/phase-crs/); loomworks-queued-directions-and-deferred-work-v0_7.md sections 1.1 and 1.2 (in project knowledge); this brief.
Produce findings at /Users/dunin7/loomworks-engine/docs/phase-impl-notes/phase-53-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, V4, V5, and V10 explicitly require enumeration of call-sites, construction-sites, induction-loop entries, or routes. 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 methodology candidate's second-instance test.
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-53-scoping-note-v0_1.md — parent scoping note. CC reads this first (the brief presupposes its decomposition and Operator-confirmed P53-Dn settings).current-status-manifest-v0_37.md — current substrate state and named principles; Section 2 lens-bounded-scoping-evidence-cascade methodology candidate context.phase-52-cr-jurisdiction-routing-v0_1.md (engine repo docs/phase-crs/) — most recent CR; Memory event registration pattern V7 verifies; FORAY hook conventions V9 verifies.phase-31-cr-conversational-engagement-creation-v0_1.md (engine repo docs/phase-crs/) — existing conversational creation flow; V5 verifies the as-shipped substrate.docs/phase-crs/) — ExtractionSkillRegistry shape V1 verifies; per-engagement key store pattern context.phase-38-cr-specification-grammar-declaration-v0_1.md (engine repo docs/phase-crs/) — declare-and-register pattern V3 verifies.docs/phase-crs/) — engagement creation endpoints; seed schema V4 verifies; FORAY attestation seam V9 verifies.loomworks-queued-directions-and-deferred-work-v0_7.md §1.1 + §1.2 — engagement creation arc framing; the "materializer registry" trajectory note V2 resolves.phase-52-step-0-findings-v0_1.md (engine repo docs/phase-impl-notes/) — Phase 52 Step 0 precedent findings shape.loomworks-phase-52-step-0-inspection-brief-v0_1.md — precedent for this brief's structure.DUNIN7 — Done In Seven LLC — Miami, Florida Loomworks Phase 53 Step 0 Inspection Brief — v0.1 — 2026-05-10