Dev demo campaign: a full, living test campaign on dev, extended by every lane #821

Closed
opened 2026-09-26 00:33:17 +00:00 by claude-bot · 2 comments
Collaborator

What. A committed, re-runnable seed that populates dev with one rich campaign for reviewing the redesign against realistic data. Requested by the owner on 2026-09-25, during the lanes 1–4 review pause.

What the owner asked for:

  • At least 20 played, hour-long sessions, plus upcoming sessions in every state.
  • 8 players and the GM. The owner's own dev account is one of the players; everyone else is invented.
  • Party loot, gold and custom items.
  • At least 100 wiki articles.
  • Quests: completed, in progress, and rumors.
  • Discussions, XP, and lines and veils.
  • At least 5 entries, of different types, for every feature that exists.
  • Features not built yet are added to the seed when their lane builds them.

Approach:

  • The seed is fiction only: The Amberwake Accord, from the prototype. The cast comes from the prototype pages, with .invalid emails.
  • It lives outside app/, so it is never in the image. It runs inside the backend container on dev against the live database.
  • Ids are deterministic (uuid5) and dates are relative to the run, so upcoming stays upcoming. --reset rebuilds the campaign.
  • Nothing outbound. Email, the bot or Discord, Celery and the AI are tripwired during the seed. Dev has real people's accounts, and none of them is touched.
  • Transcripts are scripted scenes, expanded deterministically to an hour. No audio is committed.
  • A coverage table in the seed's README lists every feature as either seeded, or not built yet with its lane. The build plan's working agreements gain a rule: a lane that adds a feature extends the demo seed in the same series. Each of lanes 5–11 (#731–#737) gets a note naming what it must add.
  • Dev's database is backed up before the first run.

Refs #366.

**What.** A committed, re-runnable seed that populates dev with one rich campaign for reviewing the redesign against realistic data. Requested by the owner on 2026-09-25, during the lanes 1–4 review pause. **What the owner asked for:** - At least 20 played, hour-long sessions, plus upcoming sessions in every state. - 8 players and the GM. The owner's own dev account is one of the players; everyone else is invented. - Party loot, gold and custom items. - At least 100 wiki articles. - Quests: completed, in progress, and rumors. - Discussions, XP, and lines and veils. - **At least 5 entries, of different types, for every feature that exists.** - **Features not built yet are added to the seed when their lane builds them.** **Approach:** - The seed is fiction only: The Amberwake Accord, from the prototype. The cast comes from the prototype pages, with `.invalid` emails. - It lives outside `app/`, so it is never in the image. It runs inside the backend container on dev against the live database. - Ids are deterministic (uuid5) and dates are relative to the run, so upcoming stays upcoming. `--reset` rebuilds the campaign. - **Nothing outbound.** Email, the bot or Discord, Celery and the AI are tripwired during the seed. Dev has real people's accounts, and none of them is touched. - Transcripts are scripted scenes, expanded deterministically to an hour. No audio is committed. - A coverage table in the seed's README lists every feature as either seeded, or not built yet with its lane. The build plan's working agreements gain a rule: a lane that adds a feature extends the demo seed in the same series. Each of lanes 5–11 (#731–#737) gets a note naming what it must add. - Dev's database is backed up before the first run. Refs #366.
Author
Collaborator

Phase 1 is done on build/demo-seed (ebf577e2, not pushed yet). It adds the engine in webapp/backend/demo/, BIBLE.md, the format spec in CONTENT.md, a README coverage table, the build plan §7 rule and tests/test_demo_seed.py (6 passing).

The two campaigns:

  • The Amberwake Accord: Dana runs it; the owner's account plays Hollis Fenwright.
  • The Tuesday Tide: the owner owns it and plays in it; Dana is its GM. This is the D93 check.

What's seeded:

  • 21 played hour-long sessions.
  • Upcoming sessions in every state: a vote with a tie and clashes, pencilled in, confirmed, at risk, cancelled, and a series.
  • Session 23 awaiting review, with star and wish open for the owner.
  • Items waiting on the owner.
  • 34 loot items across 5 kinds, including custom ones; gold in gp and sp; XP; 29 quests including rumoured ones; the shelf, NPCs, milestones, arcs and notifications.
  • Sample content packs, good and broken.

Nothing goes out. 14 tripwires are armed for the whole run, with zero attempts in every run. Reminders and the at-risk check are pre-marked, so nothing fires afterwards either.

Not built yet (in the README's coverage table): discussions and lines and veils (lane 7), wiki blocks, maps, quest objectives and the calendar (lane 8), table mode's screen (lane 5), whole-campaign planning (lane 6), character sheets (lane 11).

Phase 2 is under way: five writers are producing 96 wiki articles and 18 session scripts.

**Phase 1 is done** on `build/demo-seed` (`ebf577e2`, not pushed yet). It adds the engine in `webapp/backend/demo/`, `BIBLE.md`, the format spec in `CONTENT.md`, a README coverage table, the build plan §7 rule and `tests/test_demo_seed.py` (6 passing). **The two campaigns:** - **The Amberwake Accord:** Dana runs it; the owner's account plays Hollis Fenwright. - **The Tuesday Tide:** the owner owns it and plays in it; Dana is its GM. This is the D93 check. **What's seeded:** - 21 played hour-long sessions. - Upcoming sessions in every state: a vote with a tie and clashes, pencilled in, confirmed, at risk, cancelled, and a series. - Session 23 awaiting review, with star and wish open for the owner. - Items waiting on the owner. - 34 loot items across 5 kinds, including custom ones; gold in gp and sp; XP; 29 quests including rumoured ones; the shelf, NPCs, milestones, arcs and notifications. - Sample content packs, good and broken. **Nothing goes out.** 14 tripwires are armed for the whole run, with zero attempts in every run. Reminders and the at-risk check are pre-marked, so nothing fires afterwards either. **Not built yet** (in the README's coverage table): discussions and lines and veils (lane 7), wiki blocks, maps, quest objectives and the calendar (lane 8), table mode's screen (lane 5), whole-campaign planning (lane 6), character sheets (lane 11). **Phase 2 is under way:** five writers are producing 96 wiki articles and 18 session scripts.
Author
Collaborator

Done: #822 merged, and the seed has been run on dev (2026-09-26 02:06 UTC).

Before the run:

  • Dev's database was backed up to ~/backups/qb-dev-pre-demo-seed-20260926.dump (custom format, 68 tables of data, verified).
  • A --dry-run against the live database built everything and rolled back cleanly.

The run:

  • Committed: 106 wiki articles, 21 scripts, 7,257 transcript segments; tripwires 14 armed, 0 attempts.
  • The seed code was mounted from a git archive of main in /tmp/qb-demo. Dev's checkout was not touched and no containers were rebuilt.

Checked afterwards:

  • The Amberwake Accord has 21 completed sessions, 2 confirmed, 2 proposed (the vote and the pencilled-in session) and 3 cancelled. The Tuesday Tide has 4 sessions.
  • The worker and beat logs over the next 4 minutes show only routine polls that sent nothing, and notification_deliveries is 0.
  • No existing user or campaign changed.

Re-running on dev (from the dev repo, after pulling main): docker compose run --rm --no-deps -v "$PWD/webapp/backend/demo:/app/demo:ro" backend python -m demo.seed --member-user-id <owner's dev account> --reset. The star-and-wish prompt stays open for about 11.5 hours or more after a run.

Future lanes extend the seed under build plan §7. The README's coverage table lists what's still to come.

**Done: #822 merged, and the seed has been run on dev (2026-09-26 02:06 UTC).** **Before the run:** - Dev's database was backed up to `~/backups/qb-dev-pre-demo-seed-20260926.dump` (custom format, 68 tables of data, verified). - A `--dry-run` against the live database built everything and rolled back cleanly. **The run:** - Committed: 106 wiki articles, 21 scripts, 7,257 transcript segments; tripwires 14 armed, 0 attempts. - The seed code was mounted from a `git archive` of main in `/tmp/qb-demo`. Dev's checkout was not touched and no containers were rebuilt. **Checked afterwards:** - The Amberwake Accord has 21 completed sessions, 2 confirmed, 2 proposed (the vote and the pencilled-in session) and 3 cancelled. The Tuesday Tide has 4 sessions. - The worker and beat logs over the next 4 minutes show only routine polls that sent nothing, and `notification_deliveries` is 0. - No existing user or campaign changed. **Re-running** on dev (from the dev repo, after pulling main): `docker compose run --rm --no-deps -v "$PWD/webapp/backend/demo:/app/demo:ro" backend python -m demo.seed --member-user-id <owner's dev account> --reset`. The star-and-wish prompt stays open for about 11.5 hours or more after a run. **Future lanes** extend the seed under build plan §7. The README's coverage table lists what's still to come.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
rbrooks/Quest-Board#821
No description provided.