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>
82 lines
5.7 KiB
Markdown
82 lines
5.7 KiB
Markdown
# 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.
|