Version. 0.3
Date. 2026-06-11
Status. Scoping note for the marketing-site Example Generator. All eight decisions settled and Operator-confirmed; the change request (v0.1) is written against decisions D1–D7, and D8 (the take-away) is added here for a CR update. Operator-facing.
Render-type. Scoping note. Operator-facing.
Source. loomworks-example-generator-investigation-v0_1; loomworks-api-glossary-v0_3; CC recon of DUNIN7/foray-kaspathon (Business Analyzer) and DUNIN7/foray-protocol; loomworks-candidate-seed-v0_12; loomworks-example-generator-scoping-addition-foundation-draft-v0_1 (the D8 source, folded here).
Change from v0.2. Adds an eighth decision, D8 — the take-away: a Foundation Document draft (a copy-only, save-nothing text-area output the prospect triggers after seeing the example, labeled a draft toward the Foundation Document, never "seed"). Folded from loomworks-example-generator-scoping-addition-foundation-draft-v0_1 on Operator direction, re-grounded against this note per that draft's §6. D8 is reconciled against the seven: it extends D6 (nothing-saved / ephemeral — the draft is a client-side copy, no server artifact) and is distinct from D4 (a separate prospect-triggered action, not a sixth output section); D7's analyze→illustrate chain is untouched, and no prior decision had settled the take-away question. The seven decisions D1–D7 stand unchanged. Two stale v0.1 carryovers in v0.2's scope summary are corrected to match the settled decisions: "six chips" → seven (D2), and "API key behind a Tunnel" → the Cloudflare-Worker edge secret (D5); the CR-needs list's "six chip seeds" likewise → seven. (v0.2 is kept as history.)
Change from v0.1. Two decisions moved during Operator review. D2 gains a seventh chip — an architecture decision record — chosen as the software-domain chip because the "why did we decide this" recall-and-provenance pain is the sharpest showcase of what Loomworks distinctively is to developers. D5 is settled to a Cloudflare Worker/Function (not the FORAY M4-tunnel pattern), because a public marketing surface must be always-on and cannot depend on a local machine being awake; the Worker is same-origin with the Pages site, holds the key as an edge secret, and brings edge rate-limiting. The other five decisions stand as in v0.1. (v0.1 is kept as history: it shows the chips were six and the server question open.)
The investigation found the FORAY Business Analyzer is the thing to copy and left seven decisions to make; an eighth — the take-away — was added on Operator direction. This note makes them — each with a recommendation so a single word confirms it. Once these are settled, the build is a small one: a marketing page with a few input fields and cross-domain example chips, a server that makes two chained AI calls grounded in the glossary, and an HTML "here's how Loomworks would help you" page out the other end — plus an opt-in Foundation Document draft the prospect can copy and carry away (D8). Nothing real is created; nothing is saved.
Two things the investigation fixed, carried here as given:
Each is stated as a question, a recommendation, and the reasoning. Confirm or override per item. D1–D7 are Operator-confirmed (the CR v0.1 is written against them); D8 is the take-away decision folded in at v0.3.
Decision: three or four short seed-spine fields, not a single free-text box.
Fields: What is the work? · Who is it for? · What does "done" look like? (optionally a fourth: Any constraints?). Each with a short worked placeholder.
Reasoning. A prospect who fills these in has already met the seed's spine before they ever sign up — the input teaches the model the prospect should be holding. A single free-text box is simpler but throws away that priming. Keep it to three or four fields; this is a teaser, not an induction.
Override option: single free-text box if you want the lightest-possible surface.
Decision: seven chips spanning the glossary's domains plus an architecture decision record, text adapted from the glossary's worked examples.
The seven: a legal matter, a clinical-trial protocol, a research synthesis, a product specification, a regulatory filing, a documentary, and an architecture decision record (ADR). Each chip pre-fills the D1 fields with a short worked seed for that domain.
Reasoning. The chips carry the glossary's anti-narrowing discipline: a chip set all of one kind of work teaches the prospect Loomworks is for that. Spanning the glossary's range means a visitor from any of those domains sees themselves. The ADR is the deliberate software-domain chip — and it is chosen over the other software framings (API docs, runbook, design system) because those read as "a nicer docs tool" a developer already half-has, whereas the ADR names a pain with no off-the-shelf substitute: why did we decide this? The ADR seed leads on that hook, showcasing the parts of Loomworks with no competitor — provenance, considerations kept not just verdicts, corrections preserved alongside the decision, relationships between decisions. It is the chip that shows recall, which is the real product. The documentary stays as the chip that proves Loomworks reaches creative/non-technical work — the breadth a software-heavy reader needs to see. Reusing the glossary's example wording keeps the two documents consistent.
Decision: the system prompt is grounded in the glossary, embedded as a constant in the server.
The system prompt carries the four rooms, the lifecycle vocabulary (engagement, assertion, held/committed, consideration, cadence, provenance), the authority posture (the Operator approves; the system surfaces and signals), and the plain-terms discipline — drawn from the glossary's settled definitions.
Reasoning. FORAY's whole technique is a vocabulary-grounding system prompt; we already have its content. Embedding (a constant in the server) rather than fetching the glossary at runtime is simpler and has no live dependency. The cost is that a glossary revision does not automatically flow into the prompt — acceptable, because the prompt carries a distilled grounding, not the whole glossary, and is revised deliberately when the vocabulary settles further.
Note: the glossary thereby earns a second job — human-facing definition and AI grounding text. When the glossary firms up (Shaping/Rendering entries leave provisional at batches 7–8), the prompt's room descriptions get a matching pass.
Decision: five named HTML sections, model instructed to emit <h3>-sectioned HTML.
Reasoning. Mirrors the Business Analyzer's sectioned-HTML output contract, mapped to the four rooms plus a benefits close. The fifth section is where the prospect's "why should I care" is answered in their own domain's terms.
Override option: add/drop/rename sections.
Decision: a Cloudflare Worker/Function, same-origin with the marketing Pages site; key as an edge secret; model string confirmed at build.
loomworks-marketing (Cloudflare Pages).Reasoning. A public marketing surface must be always-on. The FORAY tools run a server on the M4 behind a tunnel — fine for a demo, but it makes the page's headline feature depend on a local machine being awake, connected, and rebooted-or-not. The marketing page is Cloudflare Pages (always-on, global); a Worker keeps the generator's uptime identical to the page's, with no machine behind it. The Worker is genuinely same-origin (no proxy hop, no CORS dance), holds the key as an edge secret, scales to zero when idle and to spikes under load, and brings edge rate-limiting and bot protection — exactly what an unauthenticated public AI endpoint spending API credits needs. The one cost is a new deploy shape for CC to learn versus the FORAY Flask server; a one-time setup tax against a permanent always-on win. The M4-tunnel pattern remains right for internal/demo tools — but this is the shop window, and the shop window cannot depend on the laptop being awake.
Decision: ephemeral. Nothing saved, submitted, or catalogued.
Output retention is client-side only: copy, download, print-to-PDF (the kaspathon affordances).
Reasoning. It is a sales aid, not a corpus. The protocol's auto-capture pattern exists if harvesting visitor generations is ever wanted, but that carries privacy weight (you would be retaining descriptions of strangers' businesses) and is a separate, later decision — not part of this build.
Override option: opt into harvesting now — but that pulls in a storage decision and a privacy posture, expanding the scope.
Decision: both steps at launch — analyze, then illustrate.
Reasoning. The two-step chain (analyze the description → generate a grounded illustration from that analysis) is the technique that makes the output bespoke rather than templated. It is the whole reason to copy the Business Analyzer over a one-shot generator. Shipping analyze-only first would launch the weaker half. The second call is not much more build — same server, same grounding, a second prompt — so there is little saved by deferring it.
Override option: analyze-only at launch, illustration as a fast follow, if you want the smallest first cut.
Decision: the Example Generator offers a Foundation Document draft — generated text the prospect can copy and carry anywhere — without saving, creating, or committing anything.
After an example has been generated, the prospect may trigger a separate action to see a draft toward the engagement's Foundation Document: the four answers they gave, written into the shape an engagement starts from. It renders as plain text in a read-only text area with a Copy control; the prospect lifts their own words to their own clipboard. The page persists nothing and creates nothing.
Reasoning. This is the lowest-friction take-away: no carry-the-answers plumbing between the static page and the authenticated flow, no sign-up funnel, and "nothing is saved" holds in its cleanest form — the person copies their own words. It is labeled a draft toward the Foundation Document — not "seed" (a methodology noun a public page should not speak; "Foundation Document" is the plain-English name for what the seed is) and not a finished Foundation Document (the finished one is made the proper way through the create-engagement conversation, where induction runs). The draft is raw material; a prospect who later pastes it as their opening message in create-engagement starts a conversation the Companion works, with induction running at the end of the real flow — guarantees enforced in code, not requested in a prompt. The one creation path (create-engagement → induction) is untouched; D8 produces reusable text, not a second seed-making route.
Paths set aside (preserved). A literal engine seed-commit from the marketing page — rejected: seed creation is a three-step authenticated Operator flow (POST /engagements → seed/converse → instantiate, then Discovery → extract_discovery_to_seed_skill → induct_seed); a save-nothing public page cannot and should not perform the most save-everything action in the system. Handoff-with-plumbing (the earlier lean) — dropped: the text-area-with-Copy delivers the same reusable-answers value with zero plumbing and no sign-up funnel. A downloadable file labeled "seed" — rejected: a fabrication surface (a prompt emitting something called a seed that looks induction-ready but was generated ungrounded teaches the wrong model), and seed-format conformance would then be enforced by asking the prompt nicely rather than by the apparatus that already enforces it. A bare "seed" label on any output — rejected: methodology-noun collision and plain-terms violation on a prospect-facing surface, at once.
Reconciliation with the seven. D8 extends, and does not contradict, the settled decisions. It honors D6 (ephemeral — nothing saved): the draft is a client-side copy action with no server-side artifact, consistent with D6's copy/download/print retention posture. It is distinct from D4 (output section structure): the draft is a separate prospect-triggered action, not a sixth section of the analyze→illustrate output. It leaves D7 (the analyze→illustrate chain) untouched. No prior decision had settled the take-away question; D8 settles it.
The honesty guard (the one invariant). The output is a draft toward a Foundation Document, never the finished document. Every surface that presents it carries that qualifier; the qualifier is not optional.
Residual (Operator). The qualifier wording is held as "a draft toward the engagement's Foundation Document." A shorter surface label ("Foundation Document draft") is acceptable; the bare "Foundation Document" with no qualifier is not — it reintroduces the honesty concern above. The qualifier itself is fixed; its exact phrasing is tunable.
A page on loomworks-marketing with three-to-four seed-spine input fields and seven cross-domain example chips; a same-origin server making two chained Anthropic calls (analyze → illustrate) grounded in a glossary-derived system prompt; five-section HTML output rendered in-page with copy/download/print; an opt-in Foundation Document draft (a save-nothing text-area-with-Copy the prospect triggers after the example, D8); the API key held as an edge secret in the Cloudflare Worker (never in the browser, per D5); nothing persisted.
All eight decisions are settled — D1–D7 Operator-confirmed (the CR v0.1 is written against them), D8 folded in at v0.3 on Operator direction. The build remains small and self-contained: a marketing-site surface with no engine call and no persistence, plus the opt-in copy-only Foundation Document draft. Two items the CR must still specify concretely: the public-endpoint rate-limiting posture, and the D8 take-away surface (per the CR-needs list above). D8's open residual is the qualifier wording — held as "a draft toward the engagement's Foundation Document" pending an Operator call.
DUNIN7 — Done In Seven LLC — Miami, Florida Loomworks Example Generator — scoping note — v0.3 — 2026-06-11