Document: current-status-manifest-v0_72-amendment-v0_1
Version: v0.1
Date: 2026-06-28
Recipe: Apply these splices to current-status-manifest-v0_71.md and save the result as current-status-manifest-v0_72.md (add-new-file sibling — never git mv; v0.71 stays a standing sibling, byte-for-byte untouched). Update header/footer/version to v0.72 throughout.
What v0.72 records: doors 2 and 3 of the create stage SHIPPED (door 1 was already in v0.71), completing the three-door create stage. Door 2 ("I'll tell you") needed a thin engine turn-writer seam; door 3 ("here's my specification") needed a thin engine allocation seam — both small reuses over the untouched compose→commit spine, each live-verified to the WebAuthn gate. The CR scopes were corrected during the builds (door 2: "frontend-only" → needed the seam; door 3: "heaviest door" → the smallest). The browser passkey-commit remains the one pending real-world step across all three doors.
Replace the H1:
# Loomworks Current-Status Manifest — v0.71
with:
# Loomworks Current-Status Manifest — v0.72
And the version line Version: 0.71 → Version: 0.72 (date stays 2026-06-28).
The Status block's v0.71 sentence ends "...See Entry 117 and the §5/§2 updates." Append immediately after it, before the Correction (2026-06-19): line:
> v0.72 (later same session): the create stage is COMPLETE — all three doors shipped. Doors 2 and 3 joined door 1, each a thin engine seam over the untouched compose→commit spine plus its OL surface. Door 2 ("I'll tell you") — five foundation questions (incl. the voice) → a turn-writer seam (POST /me/engagements/seed-creation-conversation, batch-records the answers as creation-mode turns via the existing record_turn, no LLM, no commit) → the conversation opens populated → refine → commit through the existing terminal. Engine 5578a05 → 37a3be5; OL 132296f → 807ef8e (both --no-ff). Door 3 ("here's my specification") — upload a document → the existing /seed/extract pulls the five commitments (no commit) → review-and-adjust (one net-new editable field) → amend → commit via the existing /instantiate. Needed only a thin allocation seam (POST /me/engagements/draft-candidate, exposing the existing _allocate_candidate_engagement — a seedless candidate + operator membership). Engine 37a3be5 → 0b2c232; OL 807ef8e → b107290 (both --no-ff). Both live-verified to the WebAuthn gate (door 2: the seed carried all five incl. the voice; door 3: an adjusted voice value survived to commit — "ADJUSTED persisted: True"). Both CR scopes were corrected in-build (door 2 "frontend-only" → needed the seam; door 3 "heaviest door" → the smallest), recorded not smoothed. The create stage is three text inputs to one spine, complete. The browser passkey-commit remains the one pending step across all three doors (the passkey tap is the Operator's, unreachable headlessly). See Entry 118.
Entry 117 ends with "...both depend on door 1's now-shipped opening." then ---. Insert after that --- and before ### 4.A Carryover from v0.41:
### Entry 118 — Create stage COMPLETE: doors 2 and 3 shipped (new v0.72; 2026-06-28, same session as 115–117, later)
The create stage is complete — all three doors shipped, three text inputs to the one compose→commit spine, the spine itself untouched (the converged-spine discipline from Entry 117 held through both builds). Door 1 (Entry 117) shipped earlier this session; doors 2 and 3 follow here.
**Door 2 — "I'll tell you" (shipped).** For the articulable Operator who hasn't written it down: five foundation questions (incl. the voice the marketing generator omits), composed into the create conversation's opening state, then refine and commit. **Step 0 corrected the CR's "frontend-only" lean** (recorded, not smoothed): the commit terminal composes the seed from *persisted DB turns* (`get_recent_turns` → the creation-mode block), so client-side-only synthesized answers would render a populated opening but the commit would read an empty block and fail — the exists-vs-works trap, caught at the read level. The fix: a thin **turn-writer seam** `POST /me/engagements/seed-creation-conversation` that batch-records the answered questions as creation-mode `conversation_turns` via the *existing* `record_turn` (pure INSERT, no LLM, no commit) — a turn-writer, not a second spine; the compose→commit spine is untouched. ChatView fetches the just-seeded block to display (single source of truth — the display reads the same DB the commit reads, closing the drift trap). **Live-verified** (real engine + real Anthropic): seam → 11 turns recorded; the conversation opened populated with the faithful five Q&A from the DB (not the generic greeting, no immediate commit); commit read the seeded block, drafted a convergent seed (E0079) carrying all five commitments incl. the voice ("Plain, unsentimental, and factual — no marketing gloss, no hype"), to the WebAuthn gate. Engine `feat-create-stage-door-2` `f1b0d85` → `main` `37a3be5` (`--no-ff`); OL `97bcc9e` → `main` `807ef8e` (`--no-ff`); engine suite 3049, OL 458, zero new lint debt. CR `cr-create-stage-door-2-v0_1` (v0.1 scope corrected in-build).
**Door 3 — "here's my specification" (shipped).** For the already-documented Operator (PRD/brief/SOW): upload the document, the existing extraction pulls the five commitments, review-and-adjust the mapping (not a conversation — finished work gets reviewed), then commit. **Step 0 confirmed door 3 is the *smallest* door** (correcting the CR's "heaviest" framing, recorded not smoothed): the document→commitments→commit path already exists end to end — upload (`POST /engagements/{id}/uploads`), extract-without-commit (`POST …/seed/extract`, returns the five commitments + drafts the candidate seed), amend (`POST …/seed`), commit (`POST …/instantiate`, the WebAuthn gate). The one real gap was **pre-engagement upload**: upload/extract are engagement-scoped, but create mode has no engagement yet, and allocating one via the public `draft_engagement` would require fabricated placeholder commitments (the orphaned-initial-Seed anti-pattern the engine explicitly designed around, and a truthfulness violation). The fix: a thin **allocation seam** `POST /me/engagements/draft-candidate` exposing the *existing* internal `_allocate_candidate_engagement` (seedless candidate + operator membership) — pure reuse, no new extract/create capability. The one net-new UI piece: an editable-field component (adjust an extracted value before confirming), over the reused SeedViewer display + held-card confirm. **Live-verified**: draft-candidate → candidate; upload spec → file_id; `/seed/extract` → the five commitments (gap_fields empty, no commit); adjust the voice → amend → the seed carried the *adjusted* voice ("Terse and clinical — data only…"), NOT the extracted original ("ADJUSTED persisted: True" — the exists-vs-works proof that the commit reads the reviewed mapping); instantiate → the WebAuthn gate. Engine `feat-create-stage-door-3` `3e80e29` → `main` `0b2c232` (`--no-ff`); OL `dcc32cd` → `main` `b107290` (`--no-ff`); engine suite 3050, OL 461, lint unchanged. CR `cr-create-stage-door-3-v0_1` (v0.1 "heaviest door" framing corrected in-build). Two build-time branches not exercised live (the spec was complete): re-induct-after-amend (not needed for the convergent case — instantiate went straight to the gate; an amend that introduced a gap would re-induct or instantiate-divergent) and the gaps→conversation handoff (handled structurally via per-field gap markers + a done-state note that uncovered items fill in the door-1 conversation).
**The pattern across all three doors.** Each needed only a thin engine seam — greeting (door 1 cold-open), turn-writer (door 2), allocation (door 3) — over reused spine machinery, plus its OL surface; the compose→commit spine was never rebuilt. Each Step 0 corrected its CR's scope before code (door 1: speak-first isn't built for empty openers; door 2: not frontend-only; door 3: the smallest not the heaviest). Each was live-verified to the WebAuthn gate against the real engine + real Anthropic, distinguishing render/exists from commit/works. **The one remaining real-world step across all three is the browser passkey-commit** (the WebAuthn presence ceremony — the passkey tap is the Operator's, unreachable headlessly; pre-existing, unchanged by any door). The create stage that began with "the create page doesn't invite activity" is complete: three ways in (talk it through / answer the questions / hand over a document), one merged resultant seed.
In the §1 "Frontend state — Operator Layer" block, after the v0.71 update sentence ("...Prior SHAs preserved as trajectory. (See header status + Entry 117.)"), append:
> Updated for v0.72 (2026-06-28): the create stage completed — doors 2 and 3 shipped. OL main advanced 132296f → 807ef8e (door-2 surface, --no-ff) → b107290 (door-3 surface, --no-ff); engine main advanced 5578a05 → 37a3be5 (door-2 turn-writer seam, --no-ff) → 0b2c232 (door-3 allocation seam, --no-ff); alembic unchanged (both seams reuse existing helpers, no migration). Prior SHAs preserved as trajectory. (See header status + Entry 118.)
§5 has no door-specific open item to remove (door state lives in Entries 117–118). Add a new §5 item (after the methodology-note item from v0.71):
**Browser passkey-commit pending across all three create-stage doors (2026-06-28).** Doors 1–3 are shipped and live-verified to the WebAuthn step-up gate, but the final commit — the WebAuthn presence ceremony (a passkey tap) — is unreachable headlessly and remains the Operator's to perform in the browser. This is a pre-existing security control on all commits, unchanged by the create-stage work; it is the one real-world acceptance step still open on each door. Not a defect — the expected ceiling of headless verification. (The greeting render was browser-confirmed by screenshot for door 1; the door-2/3 surfaces were live-driven to the gate over HTTP.)
Insert above the - v0.71 changelog entry:
- **v0.72** (2026-06-28, later same session): **The engagement create stage is COMPLETE — doors 2 and 3 shipped, joining door 1.** Each door needed only a thin engine seam over the untouched compose→commit spine. **Door 2 ("I'll tell you")** — five foundation questions (incl. the voice) → a turn-writer seam (`/me/engagements/seed-creation-conversation`, batch-records the answers as creation-mode turns via the existing `record_turn`) → conversation opens populated → refine → commit. Step 0 corrected the CR's "frontend-only" lean (the commit composes from persisted DB turns, so client-only state would break at commit). Engine `5578a05 → 37a3be5`; OL `132296f → 807ef8e`. **Door 3 ("here's my specification")** — upload → existing `/seed/extract` → review-and-adjust (one net-new editable field) → amend → commit via `/instantiate`. Needed only a thin allocation seam (`/me/engagements/draft-candidate`, exposing the existing `_allocate_candidate_engagement`). Step 0 corrected the CR's "heaviest door" framing to the smallest. Engine `37a3be5 → 0b2c232`; OL `807ef8e → b107290` (all `--no-ff`). Both live-verified to the WebAuthn gate (door 2: seed carried all five incl. voice; door 3: an adjusted value survived to commit — "ADJUSTED persisted: True"). Adds §3 Entry 118 (create stage complete; corrections recorded not smoothed); §1 Substrate OL/engine SHA bumps; §5 the browser-passkey-commit-pending item. The browser passkey-commit remains the one pending real-world step across all three doors. Otherwise carries v0.71 forward.
Replace:
*Loomworks Current-Status Manifest — v0.71 — 2026-06-28*
with:
*Loomworks Current-Status Manifest — v0.72 — 2026-06-28*
→ 807ef8e → b107290, engine → 37a3be5 → 0b2c232 (appended, prior SHAs preserved).0b2c232 (door-3 main), 37a3be5 (door-2 main); OL b107290 (door-3 main), 807ef8e (door-2 main); seams f1b0d85/97bcc9e (door 2), 3e80e29/dcc32cd (door 3)..md-only.
DUNIN7 — Done In Seven LLC — Miami, Florida
Current-Status Manifest v0.72 — amendment instructions — v0.1 — 2026-06-28
Splice-list against v0.71: doors 2 ("I'll tell you" — turn-writer seam) and 3 ("here's my specification" — allocation seam) SHIPPED, completing the three-door create stage. Each a thin engine seam over the untouched compose→commit spine; each Step 0 corrected its CR scope in-build (door 2 not-frontend-only; door 3 smallest-not-heaviest), recorded not smoothed; each live-verified to the WebAuthn gate (door 3's adjusted-value-survives-commit the exists-vs-works proof). Engine main 5578a05 → 37a3be5 → 0b2c232; OL main 132296f → 807ef8e → b107290. The browser passkey-commit remains the one pending real-world step across all three doors. Add-new-file sibling; v0.71 untouched.