[Backlog] Campaign templates and cloning #125
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Context / Motivation
Research/product brief. GMs starting a new campaign (or a one-shot) redo the same setup: scheduling modes, reminder offsets, timezone, wiki category skeleton, recurring arc structures. Cloning an existing campaign's structure without its history turns that into one click.
Spec (starting sketch)
Implementation rides the existing export/import machinery:
export_campaign(webapp/backend/app/routers/campaigns.py:2580,EXPORT_SCHEMA_VERSION = "7"at:2566, complete losslessdata.json) andimport_campaign(services/import_service.py:71,SUPPORTED_SCHEMA_VERSIONSat:40). Add a "structure-only" export flavor (query param or export option) that emits the same schema with history stripped, then clone = structure-only export → import in one server-side action.Structure-only contents:
reminder_offsets_minutes,timezone, notification config (minus guild/channel ids — prompt to re-link Discord)planned/ unresolved, no session links)"One-shot mode" preset: a built-in template selectable at campaign create — single tentative session, minimal ceremony (reminders trimmed to 24h, no arcs/threads), naming prompt.
UI: "Clone campaign" on the campaign settings page (GM) and "Start from template" on campaign create.
Out of scope
Open questions
EXPORT_SCHEMA_VERSION, or ride the same version with a"structure_only": trueflag indata.json? (Leaning flag — importers ignore missing history naturally.)Acceptance criteria (for when this is pulled)
References
webapp/backend/app/routers/campaigns.py:2566(EXPORT_SCHEMA_VERSION),:2580(export_campaign, covered tables enumerated at:2598-2731)webapp/backend/app/services/import_service.py:40(SUPPORTED_SCHEMA_VERSIONS),:71(import_campaign)Filed from the July 2026 full-project review.