Skip to content

feat(questionnaires): F9.4 demo-content seed + F9.2 operational runbook#57

Merged
JohnD-EE merged 1 commit into
mainfrom
feat/F9.4-demo-seed-and-F9.2-runbook
Jun 9, 2026
Merged

feat(questionnaires): F9.4 demo-content seed + F9.2 operational runbook#57
JohnD-EE merged 1 commit into
mainfrom
feat/F9.4-demo-seed-and-F9.2-runbook

Conversation

@JohnD-EE

@JohnD-EE JohnD-EE commented Jun 9, 2026

Copy link
Copy Markdown
Contributor

Summary

Two P9 deliverables on one branch (F9.4 built first so the F9.2 runbook can exercise it).

F9.4 — Demo content seed (DEMO-ONLY)

A one-command seed (prisma/seeds/app-questionnaire/025-demo-content.ts) that takes a fresh DB from nothing to something demo-able, no admin clicks:

  • Populates a believable "Northwind Logistics (Demo)" demo client (branded: CTA/accent colors, logo, welcome copy) plus a fully launched, attributed sample questionnaire.
  • Env-gated, off by default — no-ops unless LOAD_DEMO_CONTENT=1, so it can never load in production. The gate lives inside run() so the runner still stamps SeedHistory on the no-op.
  • Idempotent — re-running finds-and-replaces the demo questionnaire (keyed on a stable title) and upserts the client by slug; no duplicates.
  • Reuses the real persistence seam — writes the section/slot graph through writeGraph (the same path the ingestion route uses), not hand-rolled inserts.
  • Fork-clean — the whole file is marked DEMO-ONLY; a fork strips it via grep -rl "DEMO-ONLY". Nothing imports it (glob-discovered), so deletion is clean.

F9.2 — Operational runbook

.context/app/questionnaire/runbook.md — a road-tested "spin up a demo client end-to-end" walkthrough taking a presenter from a fresh checkout to a respondent answering the first question: seeded fast path → branding → content (clone-first, upload-and-extract as alternative) → launch → invite → first session → reset. Cross-linked from demo-clients.md (the demo hub). Documentation only — no runtime capability.

Housekeeping

  • Document LOAD_DEMO_CONTENT in .env.example (with the "didn't appear? clear SeedHistory" gotcha).
  • Mark P0–P9 feature trackers done and refresh development-plan.md status.
  • Add F9.2/F9.4 trackers (f9.2.md, f9.4.md).

Test plan

  • npm run type-check passes.
  • LOAD_DEMO_CONTENT=1 npm run db:seed on a fresh DB → Northwind demo client + launched questionnaire appear; re-seed produces no duplicates.
  • npm run db:seed without the flag → no-op (no demo content).
  • Walk the runbook end-to-end against the seeded content.

🤖 Generated with Claude Code

F9.4 — env-gated, DEMO-ONLY seed (025-demo-content.ts) that populates a
"Northwind Logistics" demo client plus a fully launched, attributed sample
questionnaire on a fresh DB. No-ops unless LOAD_DEMO_CONTENT=1, so it never
loads in production; idempotent on re-seed; writes through the real ingestion
writeGraph seam rather than hand-rolled inserts. A fork strips it via the
DEMO-ONLY marker.

F9.2 — operational runbook (runbook.md) taking a presenter from fresh checkout
to a respondent answering the first question: seeded fast path, branding,
content (clone-first), launch, invite, first session, reset. Cross-linked from
demo-clients.md.

Also: mark P0–P9 feature trackers done, document LOAD_DEMO_CONTENT in
.env.example, refresh development-plan status.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@JohnD-EE JohnD-EE merged commit 0666091 into main Jun 9, 2026
14 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant