Sprint goal: close Phase 3 Atlas (unified nav chain, brand corps, content refinement) and establish Phase 4 foundations (bookmark system, location-culture resolution, character creation skeleton). 15 tickets assigned across server (7), client (5), copy (3). Briefings written for all four teams. DB backup updated. Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
5.7 KiB
Sprint 36: Forge — Joint / Cross-Team Coordination
Sprint goal: Close Phase 3 Atlas (unified nav chain, brand corps, content refinement) and establish Phase 4 foundations (bookmark system, location-culture resolution, character creation skeleton).
Pre-Sprint: Schema and Architecture Alignment
These items must be resolved before dependent implementation starts:
| Item | Owner | Needed by |
|---|---|---|
Bookmark struct shape — what fields does BookmarkDefinition expose to the client? |
Tyre (arch) | #618 (client) |
| Location-culture API shape — function signature and return type for culture resolution | Tyre (arch) | #680 (client) |
Brand TOML schema — exact field names for brands.toml entries |
Tyre or Dudley (server) | #828 (copy) |
| Confirm brand_products table is in place from #827 before #829 runs | Dudley (server) | #829 (server) |
Cross-Team Dependencies
#614 (server: bookmark system) → #618 (client: CK3 character creation)
#679 (server: location-culture resolution) → #680 (client: location picker)
#827 (server: brand DB schema) → #829 (server: generate_brands pipeline)
#828 (copy: notable brand corps authored) → #829 (server: pipeline reads templates)
#842 (server: audit NPC orphans) → #848 (server: retire NPC system)
Integration Points
Atlas unification (#844)
star_map.gd(client/ui/star_map.gd) registers asimplant/map/starchart.atlas_panel.gd(client/ui/implant/atlas_panel.gd) registers asimplant/map/atlas.- Unified target: single
implant/mapHudGroups registration, single key binding. - After merge:
main.gdmust route the single toggle to the unified panel. Checkclient/scripts/main.gdfor existing KEY_M / KEY_A bindings before removing them.
Character creation extension (#618 + #680)
- Both tickets extend
client/ui/character_creation.gd— coordinate to avoid conflicts. - #618 adds Skills and Bookmark tabs. #680 adds the location picker as a sub-component of the Bookmark tab.
- Recommended order: #618 lands first with Bookmark tab stub; #680 fills in the location picker once #679 is done.
- The
creation_confirmedsignal emitsCharacterVisualDescriptor. The descriptor type or a wrapper will need to carrybookmark_idandstarting_locationfields — agree on this shape before either ticket writes code.
Brand pipeline coordination (#828 + #829)
- #829 reads
brand_templates.toml(authored Sprint 35) and generates minor brands. - #828 authors notable brands directly — these are hand-written entries in
brands.toml, not generated. - Copy team (#828) must confirm the exact TOML schema with server team before bulk writing. Server team must not change the schema after copy starts authoring.
NPC cleanup (#842 + #848)
server/src/simulation/mod.rscurrently referencesnpc::vision,npc::awareness, and other modules.- #842 audits what is safe to remove. #848 does the removal. Assign both to the same agent or run #842 first and hand off a confirmed safe-delete list to #848.
- Do NOT remove
server/src/npc/blueprint.rswithout checking if it is used by any active non-scrapped system.
Sprint Completion Proof
The sprint is complete when all of the following are observable:
-
Atlas unification (#844): A single key binding opens the implant/map panel at the hop-ring (Reach) view. Navigating into a system and drilling to a planet heightmap works in one continuous session without switching HudGroups apps.
-
Character creation foundations (#618, #614): The character creation screen shows a "Bookmark" tab with at least the tycoon bookmark listed. Selecting it does not crash. The "Skills" tab is present as a stub.
-
Location picker (#680, #679): The Bookmark tab includes a location picker. Selecting a starting location resolves to a culture tag visible in the UI (even if just logged to console).
-
Brand pipeline (#829, #827, #828): Running the generate_brands binary against the DB produces rows in the brand_products table. At least 120 notable brand entries are present in
brands.toml. -
Atlas content (#838, #849): All 273 inhabited bodies have reviewed markers.json files committed. Core systems (Gateway, Lendel, Van Maanen's Star) pass a visual sanity check (cities not in water, names corridor-appropriate).
-
NPC cleanup (#842, #848):
server/src/npc/contains only code that is actively used.content/global/is removed (if it existed). CI compiles clean. -
Tooling (#722, #724, #726, #636):
tooling/db/ticket --helpprints usage. Loading screen shows version.cargo deny checkpasses with the new config.cargo auditshows no critical advisories after bincode migration.
Phase Marker
Sprint 36 closes Phase 3 (planetary maps and Atlas of the Reach). The atlas content is complete, the nav chain is unified, and the brand pipeline is seeded.
Sprint 36 also opens Phase 4 foundations: bookmark definition (#614) and location-culture resolution (#679) are the first Phase 4 server primitives. Phase 4 focus (player control scheme) begins in Sprint 37.
Test Plan Alignment
- #844: visual test — open atlas, navigate from Reach → system → planet → heightmap in one session. Verify no double-registration in HudGroups.
- #618/#680: functional test — create a character with a bookmark selected, reach the main game loop (even if empty).
- #829:
cargo testinserver/src/bin/for the generate_brands binary. Run against test DB, verify row count. - #842/#848:
cargo buildandcargo testmust pass after removal. No regressions in existing server tests. - #726:
cargo deny checkmust pass CI. Run locally before PR. - #636:
cargo testafter bincode bump. Focus onserver/src/bridge/serialization tests.