← Design HQ · HTML on GitHub ↗ · PRD ↗
Program Launch Kit — Discover, set the facts, write the kit, then live on Pulse.
Give it one program's facts — what it is, when it happens, what to bring — and it writes the whole launch set in the founder's voice: description, page copy, launch blast, IG captions, flyer copy. Five pieces, one sitting, from the same Brain every other assistant reads.
This file follows the same frame sequence as every other assistant flow in this folder — Explore card → Overview → Personalize → Connect → Try → Activated → Pulse. Activation writes the kit; Pulse is where the founder makes it right. Personalize holds this program's facts and a static example of how a finished kit looks — the persona/lens is preset by the card, never a founder-facing picker (ADR-035). Tapping Activate runs the real first generation: the founder watches the five pieces stream, the $3.00 settles once, and Activated means kit v1 exists. From Pulse she reads each piece and — where one isn't right — shares corrective feedback through the same share-anything composer the Brain uses, and that piece is rewritten at AI cost only. One instance = one program = one kit. A different program is a new activation of the same template, with its own name and ID, carrying most fields forward. Companion to the master build contract: assistant-flows/assistant-lifecycle.html, and the sibling exemplars assistant-flows/on-brand-support.html (token block, CSS classes, and the R32 split-pane mechanic this file reuses verbatim) and assistant-flows/workshop-booking.html (the 6a activating loader).
Widths here sample a fluid continuum — content
scales continuously; structure steps only at sm 640 · md 768 · lg 1024. Kit:
design-canon.md U8.
Every $ figure drawn in these frames ($3.00 per kit, wallet balances) is
illustrative — the real price arrives from assistant_templates.price_per_run at runtime,
never an authored literal (single-source pricing).
Reading order: § Desktop journey first, then
§ Mobile journey — 375 below it in the same order, as a wrapping grid. Two sections, never
interleaved — a review-document convention only (design-canon.md § Mockup review reading
order). Mobile 375px is still designed and scored FIRST in the /design ritual (kit canon U5/U8).
Card family (ADR-035).
This card is Workshop Launch Kit (TMPL-WMKT01, frozen id) on the shared Content Generation Engine.
Retreat Launch Kit is a sibling card on the same engine — zero engine code, just a new
assistant_templates row (migration), a registry entry, and its own persona config/prompt
module. The Explore persona filter pre-routes a founder to the right card; a founder running both program
types activates two cards. Personalize (frames 3/3b/3c) shows only THIS card's own workshop persona block and example — never a lens
toggle and never the sibling card's fields, which appear only in frame 3a for
build-reviewer comparison. The founder-facing shared-spine facts (program name, price, dates, location)
stay the pre-existing “Sunrise Yoga Retreat” worked example carried through Try/Activate/Pulse
— those fields are persona-agnostic, so they read as this founder's own facts regardless of program
type.
platform_triggered carve-out: that enum prescribes a real activation artifact, and the
first generation now IS it.
mystflo-kit/design-decisions.md (2026-08-01 evening entry, supersedes both earlier same-day
entries).
program_name · program_hook · who_its_for ·
what_happens · price · dates_times · location ·
how_to_book.materials_or_what_youll_make +
skill_level (required) + venue_or_parking (optional — sparser page copy,
never a pause, C-F2 ↗). The sibling Retreat card swaps in its own 5 optional retreat fields
(frame 3a).../archetypes/generation-surface.md): one row per piece — status dot, name, version chip,
expand to read — with Copy on every row and Google-Doc delivery for the set (frame
8).No customer/guest side exists for this assistant — it's founder-triggered, not message-triggered. The line that matters is the one between the phases: Activate delivers the kit; Monitor makes it right. There is no “activated but empty” state and no multi-kit machine — this instance belongs to Sunrise Yoga Retreat forever. A different program is a different activation.
┌ DISCOVER ──────────────────────────────────────────────────────────────┐
│ Founder browses Explore — sees the card, price, and that it's │
│ coming soon (not yet publicly activatable). │
└──────────────────────────┬─────────────────────────────────────────────┘
▼
┌ EVALUATE ──────────────────────────────────────────────────────────────┐
│ Opens Overview — what it writes, how it works, key benefits. │
└──────────────────────────┬─────────────────────────────────────────────┘
▼
┌ ACTIVATE — this is where the kit gets written, and where $3.00 fires ──┐
│ Personalize fill the program's facts (lens preset by card) → 3b │
│ └─ preview panel: how a kit looks (static example, │
│ fixed per card — never a real generation) │
│ Connect Brain Check (business name + brand voice) → 4 │
│ Try read-back: what will be written, from these facts, │
│ in your voice · “$3.00 writes your kit when you → 5b │
│ activate” — the Activate button IS the write button │
│ Activating the 5 pieces stream, piece by piece → 6a │
│ Activated “Your kit is ready — all 5 pieces” · [View the kit] → 6 │
└──────────────────────────┬─────────────────────────────────────────────┘
▼
┌ MONITOR — Pulse · review · refine · deliver ───────────────────────────┐
│ card Sunrise Yoga Retreat · Kit ready — all 5 pieces · v1 → 7 │
│ the kit read each piece · Copy · deliver to Google Doc → 8 │
│ └─ “Not quite?” → share-anything composer │
│ (type · paste · drop a file — ONE box) │
│ └─ ▶ Rewrite this piece — AI cost only │
│ rewritten piece shows v2, “rewritten just now” → 9 │
│ failed per-piece retry — free, distinct from a rewrite → 10 │
└──────────────────────────┬─────────────────────────────────────────────┘
▼
┌ A DIFFERENT PROGRAM = A NEW INSTANCE ──────────────────────────────────┐
│ Activate the template again → new name, new ID, most fields → 11 │
│ carried forward, prefilled — editing or clearing them starts fresh. │
│ The old instance keeps its own kit, untouched. THAT is the lifecycle. │
└────────────────────────────────────────────────────────────────────────┘
start_fresh reactivation mode, opened directly and prefilled from the current
instance's saved facts — no visible chooser card (frame 11).ai_usage). Copy says “AI cost only” and
“charged as used, a few cents per rewrite” — never an invented exact figure.Frames below are the current build contract — the dev team
matches them pixel for pixel; only current / being-built state lives here. Deferred ideas live under
Part II · Future at the bottom. Acceptance ids cited
(AC-* ↗) live in docs/product/assistants/shared/prd-as-program-launch-kit.md
§ Test Plan — this artifact cites ACs, never mints them.
PRD debt, stated once here so no frame has to
re-explain it. The PRD still encodes the midday model (b) and has NOT yet been updated for the
evening ruling (c) — that sync happens after Peyton signs off this mockup. Four shipped criteria are now
contradicted by this design and every affected frame is flagged
NEW (PRD debt — supersedes …) inline: AC-LIFE-01 (“activation makes zero AI
calls” — it now makes five), AC-LIFE-02 (“activated promises a capability, never a
kit” — it now promises a kit), AC-RUN-01 (the empty Pulse state — there is no empty
state) and AC-RUN-02 (the per-run confirm step — removed). Criteria whose meaning survives are
cited normally: AC-SETUP-01/02/03 (Personalize purity + the static preview),
AC-DLV-01…05 (delivery), AC-GEN-01/02/04/05/06/07/08,
AC-BILL-01/02/04/07, AC-LIFE-03 and AC-RUN-03/04. The refine surface
(frames 8/9), the rewrite-in-flight Pulse state (frame
7's third state), the activation-succeeded/no-kit recovery state (frame
6b, CTO Fork 8 / B2), the platform-fault failed-piece state (frame
10b, Peyton's partial-credit ruling), and the brand-voice hard gate (frame
4's not-ready state, Peyton's ruling) have no PRD coverage at all and each carries
its own NEW (PRD debt) criteria. Nothing here mints an id.
AssistantSummaryCard.pre.tsx's
isComingSoon prop. The card body is unchanged (title, description, price, chips, stepper all
render normally); only the Activate button dims (bg-white/10 text-white/40, disabled) and its
micro-pill swaps from “tap for details” to amber “coming soon”. No separate
coming-soon badge exists anywhere else on the card.description verbatim from this card's own assistant_templates row
(migration copy) — under ADR-035 card-per-persona, Workshop Launch Kit and its sibling Retreat Launch
Kit are separate catalog rows with their own price and copy, not a shared row with a per-run lens
variant. The Explore persona filter routes a founder to the right card.outcome_unit. One app chip, MystFlo
AI, always included — there's nothing else to connect.Give it the date, price, venue, and what they'll make — your own facts, or a facilitator's if you're the venue — and it writes the launch set in your voice: description, page copy, launch blast, IG captions, flyer copy. Pairs with your registration page: generate the kit, then fire the launch.
description, long_description and details.tldr pulled
verbatim from the PRD's Workshop Launch Kit (workshop-host lens) Catalog Copy block
(prd-as-program-launch-kit.md § Catalog Copy, 2026-07-31 fix pass) — never the retired
neutral/“All” canonical row, since this card only ever runs the workshop lens. The 4 Key
Benefit cards are the same PRD section's lens-shared set (fear-killer rubric,
playbook §Catalog Copy Standard) — target copy pending build-commit migration, not yet the literal DB
row.prd-as-program-launch-kit.md:102) still has the unfixed “ready to fire”
wording verbatim — this mockup and the PRD are meant to mirror each other exactly (T1144 drift
guard), so the PRD needs the same one-word fix in the same pass this mockup syncs back, not a second,
separate correction.outcome, one AI node where AI truly runs. Re-cut node-for-node: 01 Teach it once
(setup) → 02 Save the program's facts (setup) → 03 Tap Activate (trigger) → 04 Writes the launch kit
(ai-action) → outcome Kit ready to use (adds “or ask for a rewrite”, which the compressed
3-step version dropped entirely). Node 3's “same tap” framing matches the evening
lifecycle ruling (activation IS the write) — never the retired “write a kit from Pulse, every
time you launch” phrasing an earlier PRD revision briefly carried.These are notes, not the finished copy. Give us the facts below, share your rough draft, or both — activating writes the kit from whatever you've given us, in the voice you confirmed in your Brain.
A WhatsApp link, your Workshop Booking assistant, or your website — wherever people reach you.
No Workshop Booking for THIS program yet: ↗ Set up Workshop Booking
Workshop Booking active for THIS SAME program — shown for comparison: ⇩ Grab my Workshop Booking link — fills the field above with wa.me/15551234567?text=Book — Sunrise Yoga Retreat, replacing whatever was there.
Checked by program match, not just “any Workshop Booking assistant active” — a Workshop Booking instance for a DIFFERENT program shows “Set up Workshop Booking” too, since there's nothing matching to grab a link from.
Nothing is read or written yet — this rides along and the writer uses it when you activate. Used for this kit only; it doesn't change your Brain.
Nothing is written yet — activating writes your kit, and refines everything above into your confirmed voice.
One evening at the wheel. You'll throw, trim and glaze a mug that's fired and waiting for you two weeks later.
Weekend Pottery Intensive — Saturday, 2–6pm
No experience needed. Clay, tools, glaze and firing are all included — bring nothing
but short nails…
Doors open Saturday — Weekend Pottery Intensive. Six seats at the wheel, one afternoon. If you've been meaning to try this, here's your seat…
“Six seats. One afternoon. Clay under your nails by 2pm.” — 3 ready to post.
Weekend Pottery Intensive · Sat 2–6pm · No experience needed · Link to book below.
program_name,
price, dates_times, location and how_to_book, then
“Continue to Connect” is enabled regardless of whether program_hook,
who_its_for, what_happens or materials_or_what_youll_make carry a
value — those four are satisfiable by EITHER their field OR the shared-notes box, and a run with neither
produces sparser copy, never a pause (the C-F2 ↗ precedent, extended). The five that stay hard-required
are exactly the facts AC-GEN-02 ↗ names as un-inventable (date, price) plus the three whose
invention would misroute a real buyer — name, place, and where to book. The PRD currently declares all
8 shared-spine fields required; this is a real spec change, not a reading of it.feedback_ai_extraction_always_metered) — it is explicitly out of scope here.brain_documents or any Brain surface — the same boundary AC-GEN-04 ↗ already sets for
the program facts and the rewrite composer..composer, files landing as chips inside
it (“one job, one surface” lock, 2026-06-06). Never a second “upload references”
step, never a tab. Build reuses LaunchKitRewriteComposer.tsx, which is already exactly
this box — it needs the label, placeholder, footnote and submit control made into props so the
Personalize instance can render with no submit button and no price. Forking a second composer
component for this is the failure mode; so is dragging the Brain's ShareInline in, whose
proposal/organize pipeline writes to the Brain and must never touch this surface.price_amount (number) + price_currency (select,
USD/EUR/GBP/CAD/AUD) + price_qualifier (text) replace the single price key
(migration 20260814150200_3480_launch_kit_price_structured.sql);
ConfigFieldRenderer.tsx gained a date field type in the same PR, but
dates_times stays free text — its shape genuinely diverges between a retreat's date range and a
workshop's recurring slot ("Tue+Thu 3:30"), the same F3 finding below, untouched by this ruling.
Not applied to TMPL-EVLK01 (Event Launch Kit, added 2026-08-13, after this frame was drawn) — its
price allows "or free RSVP," a case the amount+currency+qualifier shape doesn't cleanly cover; left free
text pending a follow-up product call.ConfigFieldRenderer.tsx switches on 21 field types and none is date, date-range or
currency (number exists but is a bare numeric input); nothing in the picker library wraps a
range (src/components/ui/calendar.tsx is an unused primitive). So both controls were net-new
component work, not a config flag — price's lift was paid 2026-08-14; dates remains deferred.
Dates are the genuine candidate and are deferred, not dismissed —
F5.ConfigFieldRenderer.tsx reads field.placeholder and renders it at
placeholder:text-white/30 (genuinely dim against near-white filled text), and migration
20260807090000_3115_launch_kit_config_schema.sql already seeds an “e.g. …”
placeholder on every field for both templates. This frame drew every field pre-filled with the
worked example, so the empty state — the one that actually reads as an exam — was never depicted, which
is very likely why the tab read as bare boxes. Frames 3d / 3d
now draw first-open with the real seeded ghost text. Nothing to build here — verify against the
shipped placeholder strings rather than writing new ones..doc-preview) instead of a phone chat mock (.pv-phone).wa.me/15551234567?text=Book — <name>) and the
“generated, read-only” framing match Workshop Booking's own field verbatim
(assistant-flows/workshop-booking.html:814–815) so the two mockups describe the same
shipped field, not two different ones.These are notes, not the finished copy. Give us the facts below, share your rough draft, or both — activating writes the kit from whatever you've given us, in the voice you confirmed in your Brain.
A WhatsApp link, your Workshop Booking assistant, or your website — wherever people reach you.
Nothing is read or written yet — this rides along and the writer uses it when you activate. Used for this kit only; it doesn't change your Brain.
Fill the five facts above to continue. Everything else can wait, or ride along in your notes.
One evening at the wheel. You'll throw, trim and glaze a mug that's fired and waiting for you two weeks later.
Weekend Pottery Intensive — Saturday, 2–6pm
No experience needed. Clay, tools, glaze and firing are all included…
Doors open Saturday — Weekend Pottery Intensive. Six seats at the wheel, one afternoon…
ConfigFieldRenderer.tsx renders field.placeholder at
placeholder:text-white/30 (lines 429–430, 441–443, 466–469) — genuinely dim against
near-white filled text — and migration 20260807090000_3115_launch_kit_config_schema.sql
seeds a placeholder on every text/textarea field of both templates. skill_level correctly
has none (it's a radio). Build's job here is to check the shipped strings, not write new ones.TMPL-WMKT01's configuration_schema, not a frontend change. RTLK01's
placeholders are already correct for its persona and need no change.prd-as-on-brand-support.md's AC-GATE-01/AC-GATE-02 (all required
Brain fields satisfied and unblocked → ready=true, the wizard allows activation; any
missing → ready=false, that field routes to its Brain section) — same mechanism, applied to
this card's 2-field Brain Check instead of on-brand-support's 7.01 · Connect apps with the single
role row — label "AI Model" · badge "MystFlo AI" · status Connected, no caret — above
02 · Brain Check, matching on-brand-support.html frame 4 and lifecycle sec-5b.AiModelPicker.tsx has no provider dropdown at all — BYOK is gated behind
BYOK_AI_HIDDEN. A caret would open onto exactly one option. This assistant has
no Storage row either while coming_soon, so its Connect tab has nothing expandable at all. Master
contract + the Future picker state: `assistant-lifecycle.html` sec-5b / sec-f3.
⚠ Class-name note for whoever wires this: this file already defines its OWN
.pick-rows/.pick-row family (the lens picker — CSS-circle
.pick-radio, .pick-title, .pick-sub), which is NOT the same
vocabulary the master's Connect expansion uses (.pick-r/.pick-l/
.pick-d/.pick-free). They collide by name only — harmless today because
this Connect tab has no expansion — but do not paste the master's picker markup into this file
without renaming, and reconcile the two before anyone extracts a shared archetype.brainInheritance config for this template:
business name + brand voice only — not the full 6-category checklist other assistants carry (no
offerings/FAQs/policies dependency, since program facts come from the per-kit form, not the Brain)..bc-row/.bc-rows component verbatim from on-brand-support's
Connect tab — same “Edit in Brain →” doorway, same monochrome “Confirmed”
language..bc-st.warn
⚠ amber icon, .bc-act.amber doorway, and the “! N of M ready” amber
.bc-sum line all match assistant-lifecycle.html's own Brand Voice row
verbatim (“Brand voice ⚠ … Review in Brain →”). Two differences, both scenario-accurate,
not new status language: the sub-line reads “Not confirmed yet” rather than “Needs
review” (this founder never confirmed one, she isn't re-confirming a stale one), and the action
reads “Confirm in Brain →” rather than “Add”/“Review” — matching
the playbook's own verb for this step (the Brain arrives pre-seeded; the founder confirms it).disabled in every frame in this file until Personalize + Connect both
complete (the existing stepper convention) — that doesn't change. What's new is Connect's OWN forward
button: it goes cs-disabled (same token as the Explore card's disabled Activate) when
the gate fails, so a founder can't tab-hop around an unconfirmed voice.Takes about a minute. You'll watch the five pieces come in.
price_per_run read at runtime, never an
authored literal; a template with no debitable price can't reach this screen.debit_wallet of price_per_run settles with it. AC-LIFE-01
(“zero AI provider calls, zero debit_wallet calls”) is now false by design.AC-BILL-06: a $3.25 debit = $3.00 + 5 × $0.05 AI floor rows) — the
shown price stays $3.00, matching every other paid AI assistant on the platform, none of which
disclose AI cost, but nothing on this screen may claim that price is the whole charge.
“MystFlo AI” now states the fact plainly with no completeness word attached, the same fix
already applied to the info-panel and the Activated tick in the earlier Option C round — this row was
the one instance that round missed.About a minute. Stay on this screen.
AC-RUN-01) and no separate per-run confirm step (AC-RUN-02)..ld-step chrome ported verbatim from workshop-booking.html 6a (itself from
assistant-lifecycle.html's C2 pipeline). The 5-piece accordion sits under the active
“Writing your five pieces” step; it does not replace the loader. Every assistant's
activation reads the same — this one just has something worth watching in the middle.platform_triggered carve-out — the enum
prescribes a real activation artifact and now there is one.@media in the token block).Sunrise Yoga Retreat, written in your voice. Read it, copy what you need, and if a piece isn't right, tell it why and it'll write that one again.
AC-LIFE-02 (“states the capability … never claims a kit exists”) is now inverted
by design.Nothing was charged — the $3.00 only fires once your kit actually does. This can happen if your connection drops right as we start writing. Try again and we'll pick up from here.
Still stuck? Contact us →
price_per_run debit the original activation was supposed to settle, never a second one.These are notes, not the finished copy. Give us the facts, share your rough draft, or both — activating writes the kit in the voice you confirmed in your Brain.
A WhatsApp link, your Workshop Booking assistant, or your website — wherever people reach you.
No Workshop Booking for THIS program yet: ↗ Set up Workshop Booking
Workshop Booking active for THIS SAME program — shown for comparison: ⇩ Grab my Workshop Booking link — fills the field above with wa.me/15551234567?text=Book — Sunrise Yoga Retreat, replacing whatever was there.
Checked by program match, not just “any Workshop Booking assistant active” — a Workshop Booking instance for a DIFFERENT program shows “Set up Workshop Booking” too, since there's nothing matching to grab a link from.
Nothing is read or written yet — this rides along and the writer uses it when you activate. Used for this kit only; it doesn't change your Brain.
Nothing is written yet — activating writes your kit, and refines everything above into your confirmed voice.
venue_or_parking, this card's only optional persona field) produces sparser page copy,
never a pause.<Program type> Launch Kit) means a new persona is a new
assistant_templates row + registry entry + persona module, never a new option in a form
that no longer exists. See F0 for scope status on both.prd-as-program-launch-kit.md § Setup Contract, with the
2026-08-12 required-set amendment applied (see 3b ↗ — awaiting Peyton's
sign-off): shared-spine fields are program_name, program_hook,
who_its_for, what_happens, price, dates_times,
location, how_to_book, of which the PRD marks all 8 required and this frame
draws 5 required (program_name, price, dates_times,
location, how_to_book) + 3 satisfiable by field OR shared notes. This card's
workshop persona block is materials_or_what_youll_make (now satisfiable either way),
skill_level (a picker with a default, so never empty) + optional
venue_or_parking. The sibling Retreat Launch Kit card carries the same 8
shared-spine fields + its own retreat persona block (accommodation, meals,
travel_how_to_get_there, packing_themes, day_by_day — all 5
optional), drawn in frame 3a.↑ Same 8 shared-spine fields as frame 3 (not repeated here) — the Retreat Launch Kit sibling card's own persona block follows.
All optional — a sparser answer means sparser page copy, not a pause.
accommodation, meals,
travel_how_to_get_there, packing_themes and day_by_day are all
optional (PRD § Setup Contract, retreat block) — a sparser answer means sparser page copy, never a
pause.One evening at the wheel. You'll throw, trim and glaze a mug that's fired and waiting for you two weeks later.
Weekend Pottery Intensive — Saturday, 2–6pm
No experience needed. Clay, tools, glaze and firing are all included — bring nothing
but short nails…
Doors open Saturday — Weekend Pottery Intensive. Six seats at the wheel, one afternoon. If you've been meaning to try this, here's your seat…
“Six seats. One afternoon. Clay under your nails by 2pm.” — 3 ready to post.
Weekend Pottery Intensive · Sat 2–6pm · No experience needed · Link to book below.
Five days in the Atlas Mountains — morning practice, long open afternoons, and one long group dinner together each night.
Sunrise Yoga Retreat — Atlas Mountains, October 12–17
Five days. Five mornings of practice. Five long, unhurried afternoons with nothing on
the calendar…
Doors open Friday — Sunrise Yoga Retreat, October. Six spots, five mornings, one long table. If you've been meaning to do this for years, this is the one to book.
“Six spots. Five mornings. One long table under the stars.” — 3 ready to post.
Sunrise Yoga Retreat · 12–17 Oct · Marrakech · Link to book below.
.doc-mark "·· example, not your data ··". Never the founder's program name on this panel —
a preview that borrows their program's title reads as their output, and it isn't..pvpill is copied verbatim from on-brand-support.html — sticky bottom, keyboard and
safe-area aware in build.These are notes, not the finished copy. Give us the facts, share your rough draft, or both — activating writes the kit in the voice you confirmed in your Brain.
A WhatsApp link, your Workshop Booking assistant, or your website — wherever people reach you.
Nothing is read or written yet — this rides along and the writer uses it when you activate. Used for this kit only; it doesn't change your Brain.
Fill the five facts above to continue. Everything else can wait, or ride along in your notes.
Takes about a minute. You'll watch the five pieces come in.
AC-RUN-01's
“none yet · $0.00 spent” empty card can no longer occur..acc-status.generating in place of the composer, the identical
component frame 6a established for the original write. No new row component is
needed there.btn-primary pill alongside “Details →” — confirmed drift against the
canonical pattern every one of the master artifact's ~15 .pcard instances follows:
“quiet 'Details →' doorway”, singular (assistant-flows/assistant-lifecycle.html:1797;
archetype assistant-summary-card.md self-check #9: “the detail doorway is a quiet
'Details →' TEXT link, not an icon/kebab button” — a second pill is the same violation, just a
button instead of an icon). Removed from all three states; nothing on this card triggers a generation
any more, so there was never a “spend again” label to protect against — “Details →”
alone already opens the Pulse tab (frame 8), no new wiring concept..acc-status.generating, amber, pulsing (reduced-motion kills the pulse).
No new status language for the same “writing right now” fact.Sunrise Yoga Retreat — Atlas Mountains, October 12–17
Five days. Five mornings of practice. Five long, unhurried afternoons with nothing on the calendar. This retreat is for women who've thought about doing this for years and never quite booked it — and don't want to walk in alone.
$1,450 per person, shared room · 12–17 October 2026
Book at mysite.com/october-retreat.
Doors open Friday — Sunrise Yoga Retreat, October
Six spots, five mornings, one long table. If you've been meaning to do this for years, this is the one to book. Full details and the booking link are below.
AI cost only — charged as used, a few cents. Your $3.00 kit fee doesn't move.
Used for this rewrite only — it doesn't teach your Brain. Your voice, prices and policies stay where they are.
All 5 pieces, plain text — a new Doc in your Drive, yours to edit there. Single pieces still copy one at a time above.
Pulse tab of AssistantDetailModal.post.tsx, reached by the
Pulse card's one doorway (“Details →”, AC-RUN-01) — the same tabbed shell every other
activated assistant opens into. Post tab set is Pulse · Overview · Personalize · Connect,
Pulse first and default, no Try (R30). The kit is never a second sheet stacked on that modal, and never a
sheet that replaces it.LaunchKitReviewSheet standalone, on the strength of a code comment citing the PRD
(“§ Setup Contract — no Pulse tab exists for this surface”). That clause does not exist —
the sentence appears nowhere in docs/. The PRD says “Pulse card” throughout
(the card on the Pulse page) and names “Details →” as its one doorway — which IS the tabbed
modal. ADR-035 is scoped to card cardinality and naming and says nothing about the host. The bypass has no spec
behind it.LaunchKitReviewSheetHost's own docstring names exactly
those symptoms as the motivation for widening the bypass.assistant-lifecycle.html frames 9b/12) instead of inventing a Launch-Kit alert. Max ONE pending item.Cost here is LIFETIME, not month-to-date — kit fee + every rewrite since activation
(AC-RFN-06/07), which for a one-shot assistant is the only window that means anything. It is deliberately NOT the
Spent (month-to-date) key frame 9b's generic band carries; same slot, different window, so the two labels
must stay different. The spend sentence under the accordion stays as well — the band is the glance,
the sentence is the itemisation; that is not a one-home-per-metric break.PageSlideOver. Walked the archetype's tree honestly and both doors fail. It isn't
GO-somewhere: a kit piece is not another page's real content, it has no route, no URL and nothing to go
back to — and the archetype's 2026-07-01 lock is explicit that “a data-review-and-decide panel
is a sibling sheet, never a PageSlideOver”, which is exactly what reading-then-deciding-to-
rewrite is. It isn't DO-something either: reading is not a task you complete and dismiss. And a bottom
sheet stacked on this modal would gain zero pixels — the tab body is already the full surface
width, so the sheet would be the same measure with more ceremony (lesson
slide-metaphor-without-the-space: a new entrance is not new space), while hiding the other
four pieces a founder is usually comparing against. The generation archetype settles it outright —
self-check #6: “multi-piece results are a vertical accordion with per-piece retry/copy”.
A per-piece sheet would fail this surface's own archetype.ExamplePlaybookPanel.tsx, which
is a panel, rendered inline, not a sheet. Its read is the prose ramp
(SheetProse.tsx), a typographic contract, and that is what the expanded row now adopts:
header block → ONE hairline → prose at --fg-70 font-weight 300, real paragraph rhythm,
measure capped at 66ch, and no boxes around prose. The ROW HEAD is the header block —
piece name + description — exactly as the ramp's sticky .sheet-header band is in a real
sheet, so the body opens straight onto the single hairline and then the prose. An in-body eyebrow
repeating the piece's name was drawn in the first pass and removed on review: that is the “never
a second title” / double-spine failure the ramp names explicitly (#2498). The one surviving
eyebrow on this surface is Rewriting in frame 8b's sheet, which labels a
chip list rather than restating a title. The old body was 12px --fg-55
dense text with a stray outline button floating mid-content; the new one reads like the playbook panel
she pointed at.Copy and
the rewrite affordance sit together under a hairline, so the prose runs uninterrupted from eyebrow to
last line. Previously Copy was a .btn-outline pill wedged between the copy and the refine
line — two competing weights inside a reading surface.fix/3397-kit-content-formatting (commit 20d396d9) locks what happens INSIDE
the prose: \n\n → new paragraph, single newline → <br> in the same
block, **text** → real inline bold (raw asterisks never reach the screen), and IG's
N. markers → numbered .cap-cards. This note governs the RAMP around that
prose — eyebrow, hairline, measure, rail, action row. The two are orthogonal and both apply; the
caption cards are the one deliberate exception to “no boxes around prose”, because three
alternatives are distinct selectable objects, not one prose run. Build must land both — merging
one without the other leaves either raw asterisks in a beautiful ramp, or parsed text in the old dense
block.ready · 3 on IG captions is retired — the “3” was the only real
information in it and it now lives in the description (“Three, to post across the launch week”)..acc-meta, on the same baseline as the
name — the prose ramp's own heading-left/metadata-right grammar. rewritten just now is
recency, not status, so it does not compete with the description for the sub-line.max-width:760px inside an 1180 surface — and frames 10/10b were capped at 640px, two different widths for the same surface. All four
now use the sheet archetype's standard work column (chrome.column, 1120px, centered), with
the prose measure capped INSIDE it at 66ch so long copy never stretches (archetype self-check #13). That
alone reclaims the empty right third Peyton screenshotted..acc-rail now does. Kit-level, the band above a
full-width column is correct; piece-level, the rail beside the prose is correct..btn-caption line
under the button GROUP — never inside the label. A label that grows with state
(“the 4 finished pieces” → “the 5 finished pieces”) reflows the control every
time the data moves, and a full sentence in a pill is a paragraph you must parse before you can tap.google-resources route and hands back a URL; per-piece and whole-kit Copy work with no
connected app and no extra charge.price_per_run debit occurs.ai_usage row only; the UI states “AI cost only” before the tap and never renders
an authored per-rewrite figure.brain_documents or any Brain surface..composer / .dropzone / .chip-file, per
support.html and BrainShareSheet.tsx) retokenised to this file — build reuses
that component, it does not fork one.drive.file covers create
(_shared/providers.ts), the create-and-write helper already ships
(google-resources/index.ts, POST {type:'document', name, content}), precedent
is useBrainExport.tsx:exportToGoogleDoc. Plain text only — the helper writes one
insertText; don't draw a formatted Doc. PDF stays deferred (F4).3 separate rewrites — AI cost only, charged as used, a few cents each. Your $3.00 kit fee doesn't move.
3 separate rewrites — AI cost only, charged as used, a few cents each. Your $3.00 kit fee doesn't move.
Used for these rewrites only — it doesn't teach your Brain. Your voice, prices and policies stay where they are.
ModalWrapper presentation="sheet", nested over the detail modal:
nestedBackdrop true, broadcastCloseAll false so closing it returns to the tab
rather than the whole modal).PageSlideOver, and only for a REAL page like Brain edit or Team
saved). Adding a right-slide would mint a third direction for one surface, and it would carry the
GO-somewhere reading — this is a destination — for something that is plainly a task. I think what
the instinct is actually reaching for is “don't make the list disappear”, and the
bottom sheet answers that better: the tab recedes behind it with the selection still visible above the
sheet's top edge, so she can see what she picked while she types. If she wants the literal right-slide
after seeing this, that's a ledger change, not a build variant — say so and I'll take it back to the
archetype.price_per_run debit occurs for
any of them. Extends the existing single-piece criterion in frame 8; the backend
mode:'kit_rewrite' path is per-piece today, so this is N calls, not a new batch mode.failed, when selection mode is on, then its checkbox is disabled and its row states why
(“try again first — rewriting needs something to correct”). Retry and rewrite stay separate
verbs (frame 10's two-verb ledger); a failed piece has no text to correct.ai_usage row and its own prior-version snapshot; a partial failure leaves the succeeded
pieces rewritten and names only the failed one..composer grammar as everywhere else
(“one job, one surface”); build reuses LaunchKitRewriteComposer.tsx with the
label and submit text as props, exactly as the Personalize instance does (frame
3b) — three hosts, one component, never three components.chrome.prose.Give it the date, price, venue, and what they'll make — your own facts, or a facilitator's if you're the venue — and it writes the launch set in your voice: description, page copy, launch blast, IG captions, flyer copy. Pairs with your registration page: generate the kit, then fire the launch.
Your kit was written from these. Change the notes and ask for a rewrite on the piece that's off — the program's own facts stay put.
These don't change here — a different program is a different kit. ↗ Activate a new Launch Kit →, prefilled from this one.
Moved your booking link? Change it here, then rewrite the pieces that carry it.
Saved with this assistant and used the next time a piece is written. Nothing is read or rewritten until you ask — and it doesn't change your Brain.
Sunrise Yoga Retreat — Atlas Mountains, October 12–17
Five days. Five mornings of practice. Five long, unhurried afternoons with nothing on the calendar.
Description · Page copy · Launch blast · IG captions · Flyer
Your real kit, not a sample — the example preview belongs to setup (frame 3b), before anything was written. Read and rewrite it →
AC-LIFE-03 say a different
program is a NEW instance (“one instance, one program”). Both cannot hold. This frame draws
the second, because the Pulse card, the metrics band and the spend line are all named for ONE program —
editing the name in place would silently relabel a card whose kit was written for something else. If
the first is picked instead, the fact block becomes editable and frame 11 loses its reason to exist.One more before winter — October in the Atlas Mountains
You've been on this list a while, so you'll know the shape of it: five mornings of practice, five long afternoons, one table every night. Six spots. This is the last one before the studio closes for winter.
12–17 October · $1,450 shared room · mysite.com/october-retreat
▾ Version before this one
Launch blast rewritten — $0.02. The other four pieces weren't touched, and your $3.00 kit fee doesn't move.
All 5 pieces, plain text — Launch blast goes in as v2.
v(N+1) chip and a recency sub-line, and the untouched pieces carry
no version marker at all.v2; the
other four stay unmarked. A kit-level version number would imply the whole set was regenerated, which
would be both wrong and expensive.v2 is a fact, not a success signal (C12) —
the emerald dot on the row already carries “done”.ai_usage row. Before the tap the copy says “a few
cents”; after it, the actual number.Your 4 finished pieces are yours to use now — trying “Launch blast” again won't touch them, and it's free.
Your 4 finished pieces — Launch blast isn't in it yet.
ai_usage row but never
triggers a second run-level debit.Launch blast didn't write because of something on our side, not your input — so trying again has no 3-try cap, and it's still covered by what you already paid. Still stuck after a few tries? Contact us and we'll make it right.
Your 4 finished pieces — Launch blast isn't in it yet.
done), which already reaches the existing paid rewrite
composer (frames 8/9) through the normal path. No separate
founder-fault failure variant exists because that case doesn't occur.AC-BILL-07) and settles no additional debit — the flat $3.00 kit fee already covers it,
since settlement is per-KIT, not per-piece (decideSettlement charges the full price on ≥1
delivered piece)._shared/llm.ts already knows whether an error is transient/provider-side, but that signal
is lost before it reaches the stored error code today — a real gap, not a design omission. This frame
only draws what the founder sees once that classification exists.$3.00 when you activate it — same as the first. Edit or clear any carried-over field — that's how you start fresh, no separate step for it.
review_config vs start_fresh. Confirmed drift against the master artifact
(assistant-flows/assistant-lifecycle.html:3250, R18/R19): review_config
“stays invisible plumbing, never a card” — there is no chooser to draw for it. The single
path here is start_fresh mode, opened directly and prefilled from the current instance's
saved facts (assistant-lifecycle.html:3018–3123, §5 Change). Editing or clearing a
prefilled field IS how a founder starts fresh — that's not a second mode needing its own card.Doors open Friday — Sunrise Yoga Retreat, October
Six spots, five mornings, one long table. If you've been meaning to do this for years, this is the one to book.
AI cost only — charged as used, a few cents. Your $3.00 kit fee doesn't move.
Used for this rewrite only — it doesn't teach your Brain.
All 5 pieces, plain text — a new Doc in your Drive.
Five days in the Atlas Mountains — morning practice, long open afternoons, and one long group dinner together each night. Built for women who've never done a retreat before and don't want to arrive alone.
All 5 pieces. No Google account connected yet — connecting takes about a minute and lets you save the kit straight to a Doc from then on.
block — the price line moves under it rather than beside it. Still ONE box: the
dropzone and the file chip live inside the composer, never in a second step or a tab.3 separate rewrites — AI cost only, a few cents each.
3 separate rewrites — AI cost only, a few cents each. Your $3.00 kit fee doesn't move.
Used for these rewrites only — it doesn't teach your Brain.
Give it the date, price, venue, and what they'll make — your own facts, or a facilitator's if you're the venue — and it writes the launch set in your voice: description, page copy, launch blast, IG captions, flyer copy.
Your kit was written from these. Change the notes and ask for a rewrite on the piece that's off — the program's own facts stay put.
These don't change here — a different program is a different kit. ↗ Activate a new Launch Kit →
Saved with this assistant and used the next time a piece is written. Nothing is rewritten until you ask — and it doesn't change your Brain.
One more before winter — October in the Atlas Mountains
You've been on this list a while, so you'll know the shape of it: five mornings of practice, five long afternoons, one table every night. Six spots.
▾ Version before this one
Launch blast rewritten — $0.02. The other four weren't touched, and your $3.00 kit fee doesn't move.
v2 chip sits inline with the piece name, neutral not emerald (C12) — the row's
emerald dot already carries “done”. Untouched pieces carry no marker.Your 4 finished pieces are yours to use now — trying “Launch blast” again won't touch them, and it's free.
Your 4 finished pieces — Launch blast isn't in it yet.
Launch blast didn't write because of something on our side, not your input — no 3-try cap here, and it's still covered by what you already paid.
Your 4 finished pieces — Launch blast isn't in it yet.
LaunchKitRewriteComposer.tsx already IS this box (textarea + dropzone + file chips, files
landing inside the same box per the “one job, one surface” lock). Build generalises it in
place — label, placeholder, submitLabel,
caption, footnote as props, and an optional submit control —
then mounts it at: (1) Personalize, no submit and no price, material rides along to activation
(frame 3b); (2) a single expanded piece, inline, submit =
“Rewrite this piece” (frame 8, shipped); (3) the multi-piece bottom
sheet, submit = “Rewrite these N” (frame 8b).
Never fork a second composer, and never reach for the Brain's ShareInline —
its proposal/organize pipeline writes to brain_documents, which all three hosts are
explicitly forbidden from doing (AC-GEN-04).src/components/brain/SheetProse.tsx (SheetProseHeader /
SheetProseSection), whose canonical reference is ExamplePlaybookPanel.tsx
(do NOT refactor that file). Eyebrow → one hairline → prose, no boxes around prose, actions
in a quiet foot row, per-piece metadata in a side rail. Frame 8. Composes with —
does not replace — the content formatting contract on branch
fix/3397-kit-content-formatting..btn-caption under the button GROUP.
A scope the verb genuinely takes may stay in the label (“Rewrite these 3”); a condition on
the action may not (“— AI cost only”, “the 4 finished pieces”). No
decorative glyphs on action buttons.assistant-flows/assistant-lifecycle.html is the primary structural contract; assistant-flows/workshop-booking.html is the canonical structural reference (design-canon.md § Assistant-flow mockup structure — 8-section shape; this file retrofitted to it 2026-08-06); token block + R32 split from on-brand-support.html verbatim.prd-as-workshop-marketing-kit.md · ADR-035-engine-persona-cards.md · billing wiring migration 20260731090100_2982 ($3.00/kit, coming_soon).Items named as not-built, listed so a build agent doesn't invent
them and so they're not lost. F0 (persona-card scope) is a flag, not a deferred frame. F5 added 2026-08-12 — a real date-range control for dates_times, scoped out of the item-1 UX pass as its own backend slice.
F2 graduated to Active on 2026-08-01 — regenerating a good-but-disliked
piece is now the core of frames 8/9. Its slot here is reused by the
Brain-save bridge the new composer raises. F3 partially graduated on
2026-08-04 — the single immediately-prior version now shows as a collapsed reveal on a rewritten row
(frame 9); F3 itself narrows to what's still not built: full multi-version history,
diff view, list of every superseded draft.
Rescoped 2026-08-03 for ADR-035. Under
the retired lens-picker model this item was about a THIRD ROW in a founder-facing picker (frame
3's old “Which kind of program?” list). Card-per-persona replaces that: a
new program type is a new card — a new assistant_templates row, a registry entry, and
its own persona config/prompt module (ADR-035 §3 names it Event Launch Kit in the family roster) —
never a new row in a picker that no longer exists. Event Launch Kit is not built: only
'retreat-host' | 'workshop-host' exist in the shipped PersonaLens type, and
standing it up is gated on canonizing the still-provisional event-runner persona
(vault event-runner.md — monthly recurring ticketed events, strongest-demand new fit per the
CPO persona-fit review, 2026-08-01), not a design change. Online Course has no card and no roster
entry — no live persona exists for it (the creators vertical was retired 2026-05-31 as
ungrounded), so there is nothing to scope yet.
Duplicate-and-tweak of frame 10: once a piece's 3 retries are exhausted (AC-BILL-07), “Try again” is gone and the row reads a terminal “couldn't write this one” state with no further action — the founder keeps the other 4 pieces, and if ≥1 piece delivered the kit still settles in full. Delivery still offers the finished pieces, counted honestly. Not drawn as a full frame since it's a rare terminal edge, not the primary path.
Resolved (Peyton ruling, 2026-08-04): the partial-credit question is closed. Default is “still charged, no credit” for ANY terminal piece failure — this F1 terminal state is what that default looks like. Credit/waive applies ONLY to failures that are clearly MystFlo's fault (a platform capacity/config error, or a provider outage), never for founder-input-caused failures — research confirmed founder-fault essentially never produces a true failure today (vague or thin input still generates a charged, if weak, piece that reaches the existing paid rewrite composer, frames 8/9, through the normal path). Platform-fault failures get their own drawn treatment, frame 10b — an uncapped free retry, never counted toward the 3-try cap this F1 state describes — so a platform-fault piece should never reach THIS terminal dead-end in the first place; if it somehow does, “contact us” (frame 10b's escape hatch) is the path, not silence. This F1 state therefore only ever applies to the default, non-platform-fault case.
This slot formerly held “regenerate a
good-but-disliked piece”, which graduated to Active on 2026-08-01 — it is now frames
8/9, the refine surface. What replaces it is the bridge that
surface raises. Some of what a founder types into the rewrite composer is durable house knowledge — “we
never say 'book now', we say 'save your spot'” — and today it evaporates with the run, by design (the
per-run context boundary in 8). The deferred affordance is a quiet post-rewrite offer:
“Worth keeping? Save this to your Brain” — an opt-in door into the save-first share flow
(Brain lock, 2026-08-01), never automatic. Deferred because it needs its own rulings: what's offered versus
what's ignored, which playbook section it proposes, and the embedding charge the save incurs
(ai_usage / brain_embed, ×2.0 — sharing is a paid action, so confirm-before-charge
applies). Until it exists, the boundary line in frame 8 must stay verbatim: the
composer looks like the Brain's share door and must not be mistaken for it.
Rescoped 2026-08-01, partially graduated 2026-08-04 (CPO build-readiness review). Under the multi-kit model this was “past kits for this instance”; one instance now holds one kit, so the real gap was per-piece version history. The narrowest, highest-value slice — the SINGLE immediately-prior version, collapsed reveal — graduated to Active on frame 9: a founder who just rewrote a piece can see what it said one step back. What's still not built and stays here: no diff highlighting between versions, no v1/v2/v3 toggle across MULTIPLE rewrites, no list of every superseded draft. Only the single most-recent prior version is ever retained — a second rewrite overwrites it, so a founder now on v3 can see v2 but not v1. Deferred rather than dropped because the failure is still real past that first rewrite. This remains the strongest argument for the delivery block being in v1: until full history exists, a saved Doc or a copy IS her archive for anything more than one rewrite back, so Copy on every row is not a convenience, it's the undo.
Considered during delivery design (2026-08-01) and deliberately deferred: a print-ready PDF of the whole kit — the obvious want for flyer copy in particular. Deferred because no PDF tooling exists anywhere in the codebase, client or server, so this is a net-new dependency plus a rendering/typography pass, not a delivery toggle. Google Doc export covers the same job today (the founder prints or exports from Docs), and Docs owns the formatting problem we'd otherwise be taking on. Revisit only with a named library decision and a CTO gate.
Raised and scoped 2026-08-12 during the item-1
pass; deferred, not dismissed. dates_times is the one Personalize field with a clean
structured shape and no upside to freeform — a start and an end, optionally times. Structuring it would
give the writer unambiguous dates instead of a string it has to interpret, and would let downstream
surfaces (reminders, “before winter” framing, sorting a founder's programs) read a real date
rather than parse prose. Deferred because it is net-new component work, not a config flag:
ConfigFieldRenderer.tsx switches on 21 field types and none is a date or date range, and
src/components/ui/calendar.tsx is an unused primitive with no range wrapper — so this needs a
new field type branch, a real range component, and a configuration_schema shape change on both
templates. Medium backend lift, its own slice, and it must not ride along inside a UX pass.
SUPERSEDED 2026-08-14 (Peyton ruling, #3480): this note previously excluded a structured PRICE
control "permanently," reasoning that an amount+currency+unit picker could only hold the qualifier by
bolting on a notes field. Peyton overrode that — the qualifier is its own field
(price_qualifier, free text), not folded into the amount, so nothing is lost; see the frame 3
annotations above for the full shipped shape. Price is structured as of migration
20260814150200_3480_launch_kit_price_structured.sql. This section's DATES reasoning above is
unaffected and still current.
| Frame | Phase | Part | AC / lock cited |
|---|---|---|---|
| 1 · Explore card | Discover | Active | isComingSoon parity |
| 2 · Overview | Evaluate | Active | catalog copy |
| 3, 3a, 3b · Personalize form | Activate | Active | AC-GEN-02, AC-GEN-07, AC-SETUP-01, C-F2, D-1 |
| 3b, 3c · Preview panel | Activate | Active | AC-SETUP-01/02/03 · D-2 · R32 · Personalize/Try rule |
| 3d · Personalize, EMPTY / first open desktop + 375 new · item 1 | Activate | Active | AC-SETUP-01 · AC-GEN-02 · debt: required-set amendment 8→5 · notes-box-is-an-input · defect: TMPL-WMKT01 seeded with RETREAT placeholders |
| 4 · Connect rewritten, 2 states | Activate | Active | brainInheritance · debt: brand-voice hard gate (Peyton ruling 2026-08-04, mirrors AC-GATE-01/02) |
| 5, 5b · Try rewritten | Activate | Active | AC-GEN-01, AC-GEN-06, AC-BILL-04 · debt: supersedes AC-LIFE-01 |
| 6a · Activating — the write panel + 375 was 9 | Activate | Active | AC-GEN-01/08, AC-BILL-01, AC-RUN-03 · debt: supersedes AC-LIFE-01, AC-RUN-01/02 |
| 6 · Activated — kit ready rewritten | Activate | Active | AC-BILL-01, AC-GEN-04 · C2 pattern · debt: supersedes AC-LIFE-02 |
| 6b · Activated, no kit — recovery new | Activate | Active | AC-BILL-01 · debt: activation-succeeded, generation-never-fired (CTO Fork 8 / B2) · zero-completed-runs gate |
| 7 · Pulse post card (3 states) rewritten | Monitor | Active | AC-BILL-01/07, D4, C6, R34 · debt: supersedes AC-RUN-01; rewrite-spend line; rewrite-in-flight state |
| 8 · The kit — read, refine, deliver desktop + 375 ×2 was 10 | Monitor | Active | AC-DLV-01/02/03, AC-GEN-04 · debt: corrective rewrite · rewrite billing · per-run context boundary |
| 8b · Rewrite several desktop ×2 + 375 ×2 new · item 4 | Monitor | Active | AC-GEN-04 · debt: multi-piece corrective rewrite · N rewrites N charges · failed-piece not selectable · shared direction / separate results |
| 8c · Post Overview tab desktop + 375 new · round-2 gap | Monitor | Active | R28 · R29 · R26 · 2026-08-12 tab-shell lock (“fixing the OTHER tabs is the fix”) · debt: post-Overview never drawn for a generation assistant before the shell shipped |
| 8d · Post Personalize tab desktop + 375 new · PROPOSED | Monitor | Active | A6 edit classes (lifecycle 9c) · R32 · D2 · OPEN: identity-editable-or-not — 2026-08-01 generation lock (“edit the facts, run again”) contradicts frame 11 / AC-LIFE-03 (“one instance, one program”); this frame draws the latter, pending Peyton |
| 9 · Rewritten — v2 desktop + 375 rewritten | Monitor | Active | AC-GEN-04 · debt: version marker · unbounded refine · cost disclosure · prior-version reveal |
| 10 · Failed piece, retry desktop + 375 was 11 | Monitor | Active | AC-GEN-05, AC-BILL-02/07, AC-DLV-04, AC-RUN-04 (wizard clause superseded) |
| 10b · Failed piece, MystFlo's fault desktop + 375 new | Monitor | Active | AC-DLV-04 · debt: charged-by-default/credited-on-platform-fault (Peyton ruling 2026-08-04) · uncapped retry |
| 11 · A different program = a new instance rewritten | Next program | Active | AC-LIFE-03 · start_fresh only, prefilled (no chooser) · debt: one instance, one program |
| F0–F5 | — | Future | AC-BILL-07 · F2 rescoped to the Brain-save bridge · F3 narrowed to full multi-version history (single-prior-version reveal graduated to frame 9) |
PRD debt — the four superseded ids
(AC-LIFE-01/02, AC-RUN-01/02), AC-RUN-04's partly-superseded wizard
clause, and the six uncovered refine criteria are stated once at the top of
Part I and flagged inline on every affected frame. Nothing here mints an id.
All three previously-open coverage gaps are now closed (2026-08-03 → 2026-08-04, CPO + CTO + Peyton review rounds). (1) Closed — the Pulse card's state while a REWRITE is in flight is now drawn, frame 7's third state. (2) Closed — CTO's Fork 8 (B2) ruling named a state this mockup never had a slot for at all: activation succeeds (the instance exists, status Active) but the chained kit-generation call never fires, leaving zero completed runs and nothing charged. Frame 6b draws the recovery screen, hard-gated on zero completed runs so it can never be mistaken for a repeatable “write another kit” trigger. (3) Closed — Peyton ruled the partial-credit question: charged, no credit, by default for any terminal piece failure (frame 10, unchanged); credited only when the failure is clearly MystFlo's fault (platform capacity/config error, or a provider outage), drawn as an uncapped free retry in frame 10b, never a founder-fault case since research confirmed those essentially never produce a true failure today. F1 restates the ruling for the terminal-exhausted edge. Per the mockup ship-gate rule, a shipped state the mockup never depicted is a blocker — all three are now cleared, none an oversight.