From f5ea4d5a875557af12e70cf605fa4695d1ba04d6 Mon Sep 17 00:00:00 2001 From: Kpa-clawbot <259247574+Kpa-clawbot@users.noreply.github.com> Date: Fri, 27 Mar 2026 15:46:07 -0700 Subject: [PATCH] =?UTF-8?q?docs:=20Merge=20decision=20inbox=20=E2=80=94=20?= =?UTF-8?q?proto=20fixture=20capture=20and=20protobuf=20architecture=20con?= =?UTF-8?q?tract?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Added decision: Proto fixture capture in CI runs against prod (stable reference) - Added decision: Protobuf API contract architecture (single source of truth for frontend/backend interfaces) - Merged 2 directives from spawn manifest processing Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- .squad/decisions.md | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/.squad/decisions.md b/.squad/decisions.md index 32d34073..cdc91e0a 100644 --- a/.squad/decisions.md +++ b/.squad/decisions.md @@ -2,6 +2,16 @@ ## Active Decisions +### 2026-03-27T22:00:00Z: Proto fixture capture in CI +**By:** Copilot (User directive) +**What:** Proto fixture capture in CI should run against prod (the stable reference), not staging. Staging may have broken code. Prod is known-good. +**Why:** Ensures fixture definitions are derived from a stable, known-good API contract. Prevents broken staging deployments from breaking proto contracts. + +### 2026-03-27T20:56:00Z: Architecture decision — Protobuf API contract +**By:** Copilot (Architecture decision) +**What:** All frontend/backend interfaces get protobuf definitions as the single source of truth. Go generates structs with JSON tags from protos. Node stays unchanged — protos are derived FROM Node's current JSON shapes. Proto definitions MUST use inheritance and composition (no repeating field definitions). Data flow: SQLite → proto struct → JSON. JSON blobs from DB deserialize against proto structs for validation. +**Why:** Eliminates the endless parity bugs between Node and Go. Compiler-enforced contract instead of agent-verified field matching. DRY — shared message types composed, not duplicated. + ### 2026-03-27T02:18:00Z: Infrastructure connection details **By:** Squad Coordinator (capturing session discoveries) **What:** Production VM connection details established this session: