Files
settled-reach/docs/sprints/sprint-35/joint.md
T
jpmschweitzerandClaude Sonnet 4.6 521c682175 chore(meta): plan Sprint 35: Atlas
Phase 3 launch sprint. 13 tickets across server, client, copy.
Atlas generation pipeline (terrain_reference, generate_atlas.py, Gemma naming),
brand layer DB schema, Atlas implant panel (3 levels + heightmap viewer + overlays),
hand-authored templates for Lendel + 4 core systems, brand corp TOML,
brand_templates.toml (120-130 archetypes), wiki glossary, world seed wiring.

Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
2026-04-11 22:01:42 +02:00

5.1 KiB

Sprint 35: Atlas — Integration and Sprint Proof

Goal: Launch Phase 3 — build the atlas generation pipeline (terrain-aware city placement, Gemma naming), lay the brand layer DB schema, and open the Atlas implant in the client. By end of sprint, a player can open the Atlas, navigate to any inhabited body, and see a heightmap with generated city markers.


Pre-Sprint Checklist

These must be confirmed before implementation work begins:

Item Owner Status
terrain_reference column exists in bodies table server (Tyre) Verify schema before #839
markers.json schema confirmed (D-191 section 8) server+copy Align before #832 and #837 start
Gemma 2 (sr-voice binary) reachable from tooling/planet-gen/ server (Dudley) Check before #833
Copy completes #837 (hand-authored templates) before server runs #833 copy+server Coordinate timing — Gemma needs few-shot examples
brand_products schema confirmed between server (#827) and copy (#830) server+copy Avoid data duplication: tier1.toml = corp identity; brands.toml = product records

Cross-Team Dependencies

Copy #837 (hand-author Lendel + 4 systems) ──► Server #833 (Gemma naming — uses as few-shot examples)
Server #839 (terrain_reference) ──► Server #832 (generate_atlas) ──► Server #833 (Gemma naming) ──► Copy #838 (review)
Server #832/#833 data ──► Client #835 (heightmap viewer — populate markers)
Client #834 (atlas panel nav frame) ──► Client #835 ──► Client #836 (overlays)

The critical path is: #839 → #832 → #833 → #838. Copy should complete #837 in the first week so server can use those templates in the naming pass.


Sprint Completion Proof

The sprint is done when all of the following are observable:

  1. Navigation chain end-to-end: Open the Atlas implant (keyboard shortcut). Select a system from the picker. Click a planet body. See the heightmap viewer. Back-navigate to system, then to Reach map. All three levels work without error.
  2. Heightmap with markers: At least one inhabited body (Lendel or Sova) displays city markers, roads, and railroads on the heightmap. City names are non-null.
  3. City data panel: Click a city marker. A sidebar panel opens showing city name, population tier, currency zone, shadow economy zone, and gate distance. An "Economics" link is present.
  4. Economics cross-link: Click the economics link in the city data panel. The Economics Monitor opens, pre-filtered to that body's system. (Phase 2 panel, Sprint 34 deliverable — this tests cross-panel navigation.)
  5. Overlays present: The 9 MVP overlay toggles are visible in the regional view. At least 5 always-on overlays render. 4 locked overlays show greyed-out with tooltip. No errors on toggle.
  6. Brand schema in DB: brand_products, brand_inputs, system_fiscal, corp_financial_state, corp_lifecycle_events tables exist in server/data/systems.db. The 4 canonical brand corps (Calloway, VGV, thrds, Bífröst) appear as demand nodes.
  7. World seed wired: Server logs show the econ sim initialized with a non-zero seed value derived from StartupMessage.
  8. Wiki glossary live: wiki/glossary.md exists and is linked from wiki index.

Test Plan

Test Method Who
Atlas navigation (all 3 levels) Manual: open game, open Atlas, navigate down and back Hoshe
Heightmap pan/zoom + marker overlay Manual: drag, scroll, verify markers render at correct lat/lon Hoshe
City data panel fields Manual: click 3+ cities across different systems Hoshe
Economics cross-link Manual: click link, verify panel opens pre-filtered Hoshe
Overlay toggles Manual: toggle each of the 4 toggleable overlays, verify greyed state of locked Hoshe
generate_atlas.py determinism Run twice with same seed, diff output — must be identical Dudley
Brand tables in DB tooling/db/sqlite-query "SELECT COUNT(*) FROM brand_products" Dudley
Seed in server log grep "econ.*seed" server.log — must show non-zero value Dudley
TOML sync (D-182) make economy-db must pass without name-mismatch errors after #827 + #830 land Dudley

Open Questions to Resolve Early

None blocking. The Phase 3 design is fully specified in D-191. If the sr-voice batch interface needs changes to support the naming prompt format, Dudley should flag that before starting #833 (not a blocker for #832).


Notes

  • #838 (copy review of generated atlas) may not complete fully within the sprint if the generation pipeline runs late — partial completion is acceptable. Track which bodies were reviewed.
  • #836 (overlay system) is medium priority. If client time is tight, #834 and #835 are the critical deliverables — overlays can carry to Sprint 36 if needed. Check with Jeroen before deferring.
  • Sprint 36 brand tail: #828 (author 120-170 notable brands) and #829 (generate_brands pipeline) are intentionally deferred. They depend on #827 (schema) + #831 (templates) completing this sprint.