From 116b6c308cb6609fe2bd8e71e35e225ae420cc61 Mon Sep 17 00:00:00 2001 From: Jeroen Schweitzer Date: Wed, 11 Feb 2026 18:49:49 +0100 Subject: [PATCH] docs(sprints): add Sprint 1 team briefings Per-team sprint briefings under docs/sprints/sprint-1/ for server, client, and joint tracks. Each lists assigned tickets, dependencies, key decisions to read, and implementation notes. Agents use ticket show for full details. Co-Authored-By: Claude Opus 4.6 --- docs/sprints/sprint-1/client.md | 26 ++++++++++++++++++++++++++ docs/sprints/sprint-1/joint.md | 26 ++++++++++++++++++++++++++ docs/sprints/sprint-1/server.md | 25 +++++++++++++++++++++++++ 3 files changed, 77 insertions(+) create mode 100644 docs/sprints/sprint-1/client.md create mode 100644 docs/sprints/sprint-1/joint.md create mode 100644 docs/sprints/sprint-1/server.md diff --git a/docs/sprints/sprint-1/client.md b/docs/sprints/sprint-1/client.md new file mode 100644 index 000000000..dd92c588b --- /dev/null +++ b/docs/sprints/sprint-1/client.md @@ -0,0 +1,26 @@ +# Sprint 1: Run — Client Tasks + +**Goal:** Get a player-controlled character moving on screen through working IPC bridge. + +**Branch:** `client` +**Agents:** Stig (UI), Oscar (networking) + +## Tickets + +| # | Title | Blocked by | +|---|-------|------------| +| #77 | MessagePack serialization - GDScript | #75 (done) | +| #79 | LocalBridge implementation - GDScript | #77 | + +Use `db/connectors/ticket show ` for full details. + +## Key Decisions + +- `decisions/architecture.md` — D-020 (Godot+Rust IPC, MessagePack protocol) +- `decisions/perception.md` — D-015 (camera locked to character), D-016 (monologue display) + +## Notes + +- #77 first: integrate a MessagePack library for Godot, implement encode/decode for ObserverSnapshot and PlayerInput. +- #79 depends on #77: subprocess spawn, socket connection, message send/receive. Must match the Rust side's transport (Unix socket). +- The existing SimBridge autoload trait is the integration point — LocalBridge implements it. diff --git a/docs/sprints/sprint-1/joint.md b/docs/sprints/sprint-1/joint.md new file mode 100644 index 000000000..b2a9e3fee --- /dev/null +++ b/docs/sprints/sprint-1/joint.md @@ -0,0 +1,26 @@ +# Sprint 1: Run — Joint Tasks + +**Goal:** Get a player-controlled character moving on screen through working IPC bridge. + +**Branches:** `server` + `client` (merge to main for integration) + +## Tickets + +| # | Title | Blocked by | +|---|-------|------------| +| #81 | End-to-end connection test | #78, #79 | +| #82 | Tick loop synchronization | #81 | +| #83 | Moving character proof | #82, #236 | + +Use `db/connectors/ticket show ` for full details. + +## Key Decisions + +- `decisions/architecture.md` — D-020 (IPC protocol), D-010 (deterministic sim), D-031 (tick timing) + +## Notes + +- These are strictly sequential and depend on both server and client tickets completing first. +- #81: Godot spawns Rust process, establishes connection, sends ping, receives pong. +- #82: Full game loop — client sends input, server ticks, server sends snapshot, client renders. +- #83: Sprint completion proof — arrow key press moves a sprite on screen through the full pipeline. diff --git a/docs/sprints/sprint-1/server.md b/docs/sprints/sprint-1/server.md new file mode 100644 index 000000000..27832633b --- /dev/null +++ b/docs/sprints/sprint-1/server.md @@ -0,0 +1,25 @@ +# Sprint 1: Run — Server Tasks + +**Goal:** Get a player-controlled character moving on screen through working IPC bridge. + +**Branch:** `server` +**Agents:** Dudley (simulation), Oscar (networking) + +## Tickets + +| # | Title | Blocked by | +|---|-------|------------| +| #78 | LocalBridge implementation - Rust | #76 (done) | +| #236 | Tile collision system | — | + +Use `db/connectors/ticket show ` for full details. + +## Key Decisions + +- `decisions/architecture.md` — D-020 (Godot+Rust IPC, MessagePack protocol), D-010 (deterministic sim), D-030 (testability) + +## Notes + +- #78: Unix socket on Linux, message framing, subprocess management. The Rust-side MessagePack serialization (#76) is already done — build the transport layer on top. +- #236: Walkability map with per-tile blocked/walkable flags. Movement system must check `can_move_to(tile)` before position change. Blocks the final "moving character proof" (#83). +- Both tickets can be worked in parallel — no dependency between them.