DUNIN7 · LOOMWORKS · RECORD
record.dunin7.com
Status Current
Path scoping-notes/loomworks-create-stage-door-3-scoping-note-v0_1.md

Loomworks — create stage door 3: document to foundation (true size) — scoping note — v0.1

Document: loomworks-create-stage-door-3-scoping-note-v0_1 Version: v0.1 Status: scoping note — precedes a CR. Re-scopes door 3 from the "heaviest net-new capability" framing in the three-door note (loomworks-create-stage-three-doors-scoping-note-v0_1) down to its true size, applying the door-2 machinery-import discipline. Grounded in the door-3 inspection (the existing upload pathway, extract_seed_fields_from_text, the reusable review patterns — engine 5ccc3d7, OL 3f2fca8). Date: 2026-06-28 Origin: Door 3 of the create stage ("here's my specification" — for the already-documented Operator, e.g. a system designer fluent in PRDs). The three-door note scoped it as "the heaviest, newest capability — document upload, extraction, mapping-review, a marketing→product boundary, provenance threading." That framing carried the same route-external-things-through-pipelines fingerprints that bloated door 2. Re-checked through the door-2 lens — am I importing machinery, or applying the product's own methodology to "map a document to a foundation"? — door 3 collapses to a small piece. The product already has every engine part, including the document-text→five-commitments skill.


Plain-language summary

Door 3 is for the Operator who has already written their specification — a PRD, a brief, a statement of work — and just wants it mapped to the Loomworks foundation, not talked through. They upload their document, the system reads it and extracts the five commitments (what the work is, who it's for, the voice, the constraints, what success looks like), and shows the mapping for the Operator to confirm or adjust each one. They brought finished work, so they review a mapping rather than answer questions. Then it opens the create conversation for any gaps and the Operator commits the seed. The product already has the upload that reads documents and the AI logic that extracts the commitments — so this is mostly assembling existing pieces, plus one small new thing: a way to edit an extracted value before confirming it.


The big finding: all three doors share one compose path

The door-3 grounding surfaced the deepest unification of the create stage, and it reframes everything:

extract_seed_fields_from_text(document_text: str, …) (seed_extraction_core.py:189, model claude-sonnet-4-6) is a single AI call that takes plain text and returns the structured five commitments. It is door 2's compose path AND door 3's compose path — the same skill, different text input:

The three doors are three text inputs to one extraction skill. They are not three capabilities — they are three adapters to one compose path that already exists. The create stage has a spine, and the product already implements it. This also resolves door-2's open-question #3 (which established AI-logic path composes the foundation): it is extract_seed_fields_from_text. Door 2 can go to CR on this finding.

What this corrects (the door-2 discipline applied)

The three-door note's door-3 framing imported machinery that does not apply:

The lesson (same as door 2): we learn from work that has been done. The upload pathway, the extraction skill, the seed viewer's display, the held-card confirm — all already built, for other reasons, all reused here because they fit the intent, not contorted to fit. Door 3 imports no machinery; it applies the product's own methodology to a document input.

What door 3 is (at its true size)

A signed-in Operator with a document: upload → extract the five commitments → review the mapping (confirm/adjust) → open the conversation for gaps → commit.

Reuse vs. net-new (from the grounding)

Reused (existing, fits the intent):

Genuine net-new (small):

The Step-0 imperative — door 3 may be PARTLY BUILT

me_create_engagement.py already calls extract_seed_fields_from_text. So a document-to-create path may already exist in some form. The CR's Step 0 MUST run down exactly what that route does before scoping any new work — or the CR will re-import what is already there, the exact trap this whole re-scoping exercise is guarding against. Ground on the existing route first; scope only the genuine gap (likely just the editable-review component + create-path upload + glue, but confirm against the real route, not this note's assumption).

Provenance (flagged, not built)

Door 3 is the one door that brings a real external source (the uploaded document). Under the trust-axis = tie-to-source principle, the resultant seed's commitments could carry an outward thread to the source document. This is an enhancement, not v1 core — named for the CR to consider, deferred by default. (The upload pathway already writes UploadEventReceived with provenance, so the source event exists to thread from if wanted.)

Open questions for the CR

  1. What me_create_engagement.py already does (the Step-0 imperative) — the load-bearing unknown. Door 3 may be a small completion, not a build.
  2. The editable-review component shape — extends SeedViewer's Field to be editable, or a new sibling? Lean: extend/sibling the viewer's display so the read and edit surfaces share vocabulary.
  3. Where the upload affordance sits on the create surface — the door-3 entry ("here's my specification") and how it presents alongside door 1 (talk) and door 2 (tell). The three-door note's "doors clearly identified" governs.
  4. Voice handling — a PRD may or may not encode the voice; the review surface shows it as extracted-or-gap; a gap drops to the conversation. Confirm the gap→conversation handoff is the same door-1 hook.

Dependencies / sequencing


DUNIN7 — Done In Seven LLC — Miami, Florida Loomworks — create stage door 3: document to foundation (true size) — scoping note — v0.1 — 2026-06-28 Door 3 ("here's my specification") re-scoped from "heaviest net-new capability" to its true small size: a signed-in Operator uploads a document, the existing upload pathway transforms it to text, the existing extract_seed_fields_from_text skill (door 2's compose path too) maps it to the five commitments, the Operator reviews-and-adjusts the mapping (reusing SeedViewer's display + the held-card confirm), gaps drop to the conversation, the Operator commits. Genuine net-new is one editable-review component + create-path upload re-gating + small glue. No marketing boundary, no bespoke subsystem. The big finding: all three doors are text inputs to ONE compose path — the create-stage spine already exists. Step 0 imperative: me_create_engagement.py already calls the extraction skill — door 3 may be partly built; ground the real route before scoping.