Files
settled-reach/docs/sprints/sprint-36/joint.md
T
jpmschweitzerandClaude Sonnet 4.6 25bb54bc43 chore(meta): plan Sprint 36: Forge
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>
2026-04-19 11:08:15 +02:00

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 as implant/map/starchart.
  • atlas_panel.gd (client/ui/implant/atlas_panel.gd) registers as implant/map/atlas.
  • Unified target: single implant/map HudGroups registration, single key binding.
  • After merge: main.gd must route the single toggle to the unified panel. Check client/scripts/main.gd for 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_confirmed signal emits CharacterVisualDescriptor. The descriptor type or a wrapper will need to carry bookmark_id and starting_location fields — 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.rs currently references npc::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.rs without 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:

  1. 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.

  2. 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.

  3. 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).

  4. 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.

  5. 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).

  6. NPC cleanup (#842, #848): server/src/npc/ contains only code that is actively used. content/global/ is removed (if it existed). CI compiles clean.

  7. Tooling (#722, #724, #726, #636): tooling/db/ticket --help prints usage. Loading screen shows version. cargo deny check passes with the new config. cargo audit shows 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 test in server/src/bin/ for the generate_brands binary. Run against test DB, verify row count.
  • #842/#848: cargo build and cargo test must pass after removal. No regressions in existing server tests.
  • #726: cargo deny check must pass CI. Run locally before PR.
  • #636: cargo test after bincode bump. Focus on server/src/bridge/ serialization tests.