DUNIN7 · LOOMWORKS · RECORD
record.dunin7.com
Status Current
Path phases/phase-50-companion-as-authority-and-public-form/loomworks-phase-50-step-0-inspection-brief-v0_1.md

Loomworks — Phase 50 Step 0 Inspection Brief

Version. 0.1 Date. 2026-05-08 Audience. Claude Code (CC), executing on DUNIN7-M4. Purpose. Eight pre-CR-drafting verifications against the live codebase. CC produces a findings document; does not propose remediation, edit the scoping note, draft a CR, or implement.


1. What this is

The Phase 50 scoping note v0.1 (loomworks-phase-50-scoping-note-v0_1.md) settled three primary build items: Companion-as-Authority decision logic for grants (item 2), public credit-request form endpoint (item 3, engine half), Operator override path for conversion-credit asset_id (item 8). The scoping note's §8 listed eight pre-flight items where the draft sketches assume substrate shapes that have not been verified against the live codebase.

This brief is the verification ask. CC reads the scoping note and this brief, runs each of the eight verifications, and produces a findings document. The findings either confirm the scoping note's draft sketches (CR drafting can begin), reveal naming-only divergences (drafting absorbs them inline), or surface architectural friction (scoping note bumps to v0.2 to absorb).

CC does not propose remediation. CC does not edit the scoping note. CC does not draft a CR. CC does not start implementation. CC reports.


2. Reading order for CC

  1. loomworks-phase-50-scoping-note-v0_1.md (scope, decisions, draft sketches that this brief verifies)
  2. current-status-manifest-v0_35.md (Phase 49 close state — substrate baseline)
  3. This document (the eight verifications)

Optional reads if a verification needs context:


3. Code baseline

If the live baseline diverges (test count off by more than ±2 routine noise, Alembic head different, working tree dirty, tag missing), CC stops at the start and reports before running any verifications.


4. Eight 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).

4.1 Verification 1 — Phase 45 dispatch surface for item 2

Ask. Confirm register_action_dispatcher signature and ApprovalCard extension pattern. The scoping note assumes Phase 49's bimodal dispatch (delegation_required: bool = True, on_decline: Callable | None = None) is the surface item 2's dispatcher registers against, and that the Phase 49 item 9 ProposalApprovalCard is the closest-fit reuse pattern for item 2's GrantDecisionApprovalCard.

Look at.

Evidence expected.

Verdict criteria.

4.2 Verification 2 — Cross-engagement Memory read seam generalization

Ask. Confirm read_credit_management_assertions (or whatever it's actually named in loomworks/credit/cross_engagement_memory.py) parameterizes the category filter cleanly enough to support a second category (conversion_credit_policy for item 8), or whether item 8 needs a sibling function. The scoping note assumes the filter path correction from Phase 49 (payload->'metadata'->>'category') is in place and that the function takes a category parameter.

Look at.

Evidence expected.

Verdict criteria.

4.3 Verification 3 — Public endpoint posture

Ask. Confirm whether the engine has rate-limit middleware, CORS configuration, and a clean public-endpoint validation pattern. Item 3's POST /authority/grant-request is a public unauthenticated endpoint; the scoping note §4.2 sketches all three pieces but does not assert their presence.

Look at.

Evidence expected.

Verdict criteria.

4.4 Verification 4 — Memory event author for form submissions

Ask. Confirm the existing ActorRef kinds and how Phase 16 contributions create Memory events with non-Operator authoring. The scoping note §4.2 recommends Companion-as-receiver for the form submission's Memory event (ActorRef(kind="companion")); alternatives are system-actor (sentinel) or external-actor (new ActorRef kind).

Look at.

Evidence expected.

Verdict criteria.

4.5 Verification 5 — Grant-request event kind registration

Ask. Determine whether the new grant_request_received event kind needs Phase 38 declare-and-register treatment (specification-grammar extension via lifespan hook, like Phase 49's ensure_reconciliation_specialists_declared) or whether it's a routine Memory event that doesn't require DST/DRT declaration. The distinction matters: declare-and-register fires bootstrap-idempotent appender code; routine event creation does not.

Look at.

Evidence expected.

Verdict criteria.

4.6 Verification 6 — Conversion observer location and extension shape

Ask. Confirm _on_api_key_saved_for_conversion (Phase 48 CR §12.3) — module location, signature, integration with register_on_api_key_saved. Item 8 extends it; the extension shape in scoping note §4.3 should not surprise the existing structure.

Look at.

Evidence expected.

Verdict criteria.

4.7 Verification 7 — Voice composition module location and prompt loading pattern

Ask. Confirm where Phase 49's three credit_voice templates live (prompts/credit_voice/tier_drop.md, prompts/credit_voice/near_exhaustion.md, prompts/credit_voice/exhaustion_choice.md) and how they are loaded into voice composition. Item 2's prompts/credit_voice/grant_proposal.md lands in the same location with the same loading pattern.

Look at.

Evidence expected.

Verdict criteria.

4.8 Verification 8 — Rate-limit and CORS infrastructure decision support

Ask. If Verification 3 reveals no rate-limit middleware or no CORS config mechanism, this verification supports the scoping decision: does Phase 50 add the simplest viable form, or does the gap warrant scoping note v0.2 / Phase 51 deferral? Provides the evidence base for that call.

Look at.

Evidence expected.

Verdict criteria.


5. After verification

CC produces phase-50-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 / NOT NEEDED for verification 8), evidence (file paths, line numbers, function signatures, exact strings as found), implication for scoping note (carry / naming-only divergence / architectural amendment).

CC then tells Marvin which of three states the findings put Phase 50 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.


6. CC kickoff prompt — paste-ready

Place this brief at /Users/dunin7/loomworks-engine/docs/phase-impl-notes/phase-50-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/phase-50-step-0-inspection-brief-v0_1.md

Run all eight verifications against the live codebase at /Users/dunin7/loomworks-engine. For verifications that cross into the Operator Layer frontend repo, also read /Users/dunin7/loomworks. Phase 49 tag for reference: phase-49-companion-intelligence at engine f27aba3 / frontend 6a3653b.

Reading order before running: loomworks-phase-50-scoping-note-v0_1.md (in project knowledge); current-status-manifest-v0_35.md (in project knowledge); this brief.

Produce findings at /Users/dunin7/loomworks-engine/docs/phase-impl-notes/phase-50-step-0-findings-v0_1.md.

One section per verification. Each section: verdict (HOLDS / PARTIALLY HOLDS / BREAKS / INCONCLUSIVE; verification 8 also accepts NOT NEEDED), evidence (file paths, line numbers, function signatures, exact strings as found), implication for scoping note (carry / naming-only divergence / architectural amendment).

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.


7. Companion documents


DUNIN7 — Done In Seven LLC — Miami, Florida Loomworks Phase 50 Step 0 Inspection Brief — v0.1 — 2026-05-08