p2-74 cluster 2 (HUD panels + notifications), overlays sub-cluster. Final 6 HUD scripts onto ThemeAssets.color() tokens; completes the cluster-2 fence. - hotkey_sheet: dim → background.overlay; panel → background.panel/border.panel; title/key labels → text.title; group headers → accent.gold; descriptions → text.primary; footer → text.muted; empty rows → text.disabled. - overlay_panel: panel → background.panel/border.divider; active-lens font → semantic.positive; view-center label → text.muted. - chronicle_panel: backdrop scrim → background.overlay. - comms_renderer: dev heartbeat strip → background.hud/border.divider; per-event toast accents → accent.gold/goldResource, semantic.positive/negative/warning, player.purple (first-contact, sighting, blackout, new-capital, vision share, heartbeat sent/missed, envelope tap) — semantic, not inline RGB. - debug_menu: dev panel → background.panel/semantic.diplomacy; button styleboxes → button.bgHover/bgPressed/background.raised + border.panel/focus; font → text.button/buttonHover; find label → text.secondary. - tutorial_overlay: dim → background.overlay; panel → background.panel/border.panel; title → text.title; counter → text.muted; body → text.primary; action badge → semantic.positive (done) / semantic.warning (required). Visual-only; no logic change (Rail 3). 0 inline Color() remain across the entire cluster-2 fence (named hud panels + notifications). All edited scripts compile with autoloads present (GATE_OK). Proof: hotkey_sheet_proof.tscn captured on apricot (headless weston) shows the themed purple panel, gold border/title, gold group headers, primary-text descriptions, and the muted "(no bindings yet)" empty row. .project/screenshots/p2-74-cluster2-hotkey-sheet.png Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| designs | ||
| experiments | ||
| future-games | ||
| handoffs | ||
| history | ||
| objectives | ||
| reports | ||
| screenshots | ||
| tasks | ||
| team-leads | ||
| AGE-OF-DWARVES-FEATURES.md | ||
| audio-sourcing-checklist.md | ||
| audio-status.md | ||
| CHANGELOG.md | ||
| FINISH_GAME1_PLAN.md | ||
| gdlintrc.local | ||
| README.md | ||
| ROADMAP.md | ||
| 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
- Status lives in
objectives/*.mdfrontmatter, nowhere else. - ROADMAP, CHANGELOG, tasks/ may reference objective IDs; they may not restate status.
objectives/README.mdis machine-generated from frontmatter. Regenerate after any objective edit:python3 tools/objectives-report.py.history/is append-only. Archived files get aYYYYMMDD_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