magicciv/.project
Natalie 6721f3f2f3 docs(@projects/@magic-civilization): 📝 p2-86 phase 1 done — auto-start + TCP rendered driver verified
Mark Phase 1 acceptance complete: MC_AUTO_START rendered boot, mcp_render_driver
TCP autoload (screenshot/open_screen/ping), plum-verified. Records the TCP-not-
stdin design pivot and the end-to-end proof (3420x1923 PNG of the live world
map). Phase 2 (TS MCP tools + npm install + .mcp.json + restart) remains.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-18 20:30:48 -05:00
..
designs refactor(@projects/@magic-civilization): 🎨 single-source player colours — generate player.* from palettes.json (p2-87) 2026-06-18 20:26:20 -05:00
experiments
future-games
handoffs docs(@projects): 📝 add handoff and objective details for p1-29k 2026-06-08 03:59:39 -07:00
history fix(@projects): 🐛 update deployment and guide workflows 2026-06-10 03:38:03 -07:00
objectives docs(@projects/@magic-civilization): 📝 p2-86 phase 1 done — auto-start + TCP rendered driver verified 2026-06-18 20:30:48 -05:00
reports
screenshots feat(designs): sprite showcase /sprites route + standalone scoped gallery 2026-06-06 02:11:21 -07:00
tasks
team-leads fix(@projects): 🐛 update deployment and guide workflows 2026-06-10 03:38:03 -07:00
AGE-OF-DWARVES-FEATURES.md
audio-sourcing-checklist.md
audio-status.md
CHANGELOG.md fix(@projects): 🐛 update deployment and guide workflows 2026-06-10 03:38:03 -07:00
FINISH_GAME1_PLAN.md
gdlintrc.local
README.md
ROADMAP.md fix(@projects/@magic-civilization): 🐛 update world simulation docs and objectives 2026-06-07 19:34:57 -07:00
SCREENSHOT_REGISTRY.md
TERMINOLOGY.md

.project/ — Directory Map

Build-process docs for Magic Civilization. Each file owns exactly one responsibility. Status of work-in-flight is tracked only in objectives/ (SSoT).

File / dir → responsibility

Path Responsibility Rule
README.md This map Maintained by hand when structure changes
ROADMAP.md Phase sequence + scope per milestone Never carries status; references objective IDs only
TERMINOLOGY.md Glossary (terms, acronyms, design vocabulary) Facts only, no status
CHANGELOG.md Dated narrative events (append-only) References objective IDs; never restates status
objectives/ Single source of truth for current state One .md per objective, YAML frontmatter status: field
objectives/README.md Dashboard index (grouped by P0/P1/P2) Generated by tools/objectives-report.py — do not hand-edit
tasks/milestones/ Per-milestone work packages (scoping docs) HOW, not WHAT-DONE
tasks/topics/ Cross-cutting topic work (balance tuning etc.) HOW, not WHAT-DONE
tasks/deferred/ Parked work packages HOW, not WHAT-DONE
handoffs/ Agent-to-agent context transfer YYYYMMDD_slug.md
history/ Archived one-off docs (reports, snapshots, obsolete plans) YYYYMMDD_slug.md; immutable once filed
reports/batches/ Autoplay batch output Tool artifacts
reports/simulation/ Simulator reports Tool artifacts
reports/screenshots/ Proof screenshots Tool artifacts
future-games/ Game 2 design drafts Out of scope for Game 1
gdlintrc.local Local gdlint overrides Config

Invariants

  1. Status lives in objectives/*.md frontmatter, nowhere else.
  2. ROADMAP, CHANGELOG, tasks/ may reference objective IDs; they may not restate status.
  3. objectives/README.md is machine-generated from frontmatter. Regenerate after any objective edit: python3 tools/objectives-report.py.
  4. history/ is append-only. Archived files get a YYYYMMDD_ prefix and are never edited in place; if a superseding doc is needed, create a new one.

Quick regen

python3 tools/objectives-report.py     # rebuilds objectives/README.md from frontmatter