Version. 0.1 Date. 2026-05-30 For. A fresh Claude.ai session opening the pipeline-spend credit-gate scoping. From. The session that shipped source identification and scoped-ahead the credit gate. Operator. Marvin Percival.
You are opening the scoping for the pipeline-spend credit gate — step two of the Memory-completion path, the major solvency-weighted build. Step one (source identification) is shipped, merged, and recorded; you do not need it except as done-context. Everything you need to scope the credit gate has been verified against live code and captured in a constraints note. Your job this session is to turn that constraints note into a scoping note (the scoping-note-before-Change-Request discipline). There is one ground-truth verification to run first — it shapes the scope and must not be assumed. Read the orientation documents, run the verification, then scope.
In order:
loomworks-record/scoping-notes/loomworks-pipeline-spend-credit-gate-scoping-constraints-v0_2.md. This is your primary orientation. It carries: the governing principle (§0 — the credit system is a prepaid, hard-gated solvency control, not a metering feature; the deficit risk to DUNIN7; the invariant; the hard precondition on opening the pipeline), the corrected scope (three model-rooms, not four), the five corrected pieces, the two Operator requirements (credits-for-sale forward-compat; FORAY accountability), and the one convergent substrate gap (grant→consumption lineage + funded reservoir). Read §0 first and let it govern — this is a solvency control; the gate is primary and pre-spend; reconciliation is corrective.loomworks-candidate-seed-vN_M in candidate-seeds/loomworks/ (was v0.9). Standing first-read.current-status-manifest-vN_M in current-status/ (was v0.44; Entry 106 records source identification shipped). Standing first-read.
The two read-only inspections that produced the constraints note are referenced inside it; you do not need to re-run them. One inspection artifact sits untracked at loomworks-engine docs/inspections/credit-substrate-four-room-gate-inspection-v0_1.md if you want the full file:line detail — but the constraints note already distills it.
main at daee809, alembic head 0074 (source identification merged; the development database is migrated to 0074; schema and main agree).main at 1ce2542.main at 722a436 (constraints note v0.2 filed in scoping-notes/).source-identification-v0_1; the source-identification branches are merged and left in place as the record.Before scoping the async-room metering, answer this open question (constraints note §5), because it shapes the scope and was unconfirmed in inspection:
> Is person_id threaded through the Shaping and Rendering async background jobs?
Credit balances are person-scoped (party_id = person_id). Manifestation is synchronous (the person is in the request). But Shaping and Rendering run as async background jobs (dispatch → run later), and inspection could not confirm the spender's identity reaches the running job. If it does not, threading it is a prerequisite piece, not a detail — there is no one to debit otherwise.
Run this as a read-only Claude Code inspection at session entry: trace the Shaping and Rendering job dispatch (the shaping_jobs / render_jobs enqueue and executor.py / agents/runner.py run path) and report whether person_id (or a resolvable equivalent) is carried into the running job. Report present / absent / partially. The answer changes the scope.
Turn the constraints note into a scoping note (loomworks-record/scoping-notes/, versioned). The scoping note decides what the constraints note only framed:
resolve_engagement_api_key resolver rather than three divergent inline ones; (3) spender-threading (informed by the first-action verification); (4) per-room consumption-flow writer; (5) gate + exhaustion per execution model (inline for synchronous Manifestation; dispatch-time / job-outcome for async Shaping and Rendering).Keep the gate primary and pre-spend throughout — reconciliation is corrective, never the primary control. And keep the hard precondition in view: the pipeline is not opened to other Operators until the gate is real.
Claude.ai scopes, drafts, and produces the scoping note and (later) the Change Request. Claude Code executes read-only verification this session (the spender-threading check) and, in a later build session, the build. Claude Code halts at checkpoints; never pushes without explicit Operator authorization. The Operator communicates tersely and expects ground-truth verification before scoping decisions, not assumption. Documents are versioned name-vN_M.ext, Markdown-primary for technical consumers; the HTML-companion gap is tracked record-wide (do not hand-produce companions per-document — it waits for the render path). Full forms in the record (no abbreviations: Change Request, Operator Layer, Claude Code spelled out).
test_api_assertion_retract, test_phase_44_evaluator dedup) — unrelated, pinned, accepted. Their own errand.engagement_display_identifier_seq not reset by TRUNCATE … RESTART IDENTITY; needs manual ALTER SEQUENCE … RESTART for a clean engine baseline).loomworks_credit_opus → claude-opus-4-7, behind opus-4-8) — small separate follow-up.It does not build (no code, no migration). It does not write the Change Request yet — scoping note first, per discipline. It does not decide the funded-reservoir timing without surfacing it to the Operator. It produces a scoping note and the action path to the Change Request.
DUNIN7 — Done In Seven LLC — Miami, Florida Session Handoff — Open Credit-Gate Scoping — version 0.1 — 2026-05-30