Game Design · Build plan
Game Plan of Attack#
Status: Active. Locked 2026-07-10. Team: James (creative director, joke pass, final say) and Claude (engineering, first-draft content, tooling).
The Slate#
| Project | Role | Status |
|---|---|---|
| The Permit Desk | The commercial game. See design.md | Active, primary |
| Jerry's Board | Free site toy tied to episodes (IDEA-104) | Active, secondary |
| B.A.R.R.Y.: Warranty Void (IDEA-107) | Candidate second game | Backlog, do not start |
| Last Call | Retired 2026-07-10 | Closed, do not revive |
Rule: no new game work enters the slate until The Permit Desk v1 ships. New ideas go to ideas.md and stay there.
Workstream A: The Permit Desk#
Milestone 1: Content spec and Day 1 on paper#
- Define the document YAML schema (fields, tells, citations, outcomes)
- Write the starting code book (five entries)
- Write all of Day 1: memo, five documents, consequence scene
- Exit test: James reads Day 1 as plain text and it is already funny
Milestone 2: Vertical slice (playable Day 1 in a browser)#
- Flutter project setup, portrait web build, local preview
- Document renderer driven entirely by the YAML data
- Code book panel, approve and deny verbs, deny-requires-citation
- Day loop: memo, queue, verdicts, end-of-day scene, autosave
- Exit test: a non-gamer plays Day 1 with zero instructions
Milestone 3: Systems complete#
- Flag verb and Heather memo responses
- Code book amendments per day, including hostile amendments
- Hidden tracks (Collective progress, resistance knowledge) and their hooks into daily flavor and document selection
- Days 2 and 3 content, since the demo needs them anyway
- Exit test: playing days 1 to 3 twice with opposite stamping styles produces visibly different flavor
Milestone 4: Content complete#
- Days 4 through 10 written and wired (about forty documents total)
- Both ending variants
- Music and sound pass (stamps, paper, ambient counter)
- Exit test: full playthrough, both endings reachable, no dead reading
Milestone 5: Web demo launch#
- Days 1 to 3 build embedded on hopsandhavoc.com via the existing publish.sh flow, with a story cross-link in both directions
- Feedback round with real readers before mobile work
Milestone 6: Mobile release#
- iOS and Android premium builds, store listings, screenshots
- Whatever the feedback round demanded, and nothing else
Working agreement#
- Claude drafts documents in batches; James does the joke pass and kills weak ones. A killed document is replaced, not argued for.
- Engineering sessions end with a working web build, however small.
- Scope questions are settled by the design doc's "Not in v1" list. If it is on the list, the answer is no until v1 ships.
Workstream B: Jerry's Board#
Secondary. Plain HTML and JS on the reading site, no Flutter. Built in the gaps, never at the cost of a Permit Desk milestone.
- One hardcoded board for Story 1 (pin, string, one load-bearing clue)
- Board-as-data so each new story ships a board the way episodes ship now, through build_site.py
- Publish and link from the story pages
Risks Worth Naming#
- Idea drift. The historical failure mode. Mitigation is this file: the slate table is the contract, and reopening it is an explicit decision, not a conversation drift.
- Forty documents is real writing. About an episode and a half of prose volume, but in joke-dense form. Mitigation: content is data from day one, drafted in batches, and Milestone 1 proves the voice before any code.
- Flutter web text rendering. Document-heavy UI needs a check early in Milestone 2, not late. If crisp text on web proves painful, the fallback is plain web tech for the demo and Flutter for mobile only, sharing the YAML content.