blue/.blue/dialogues/2026-02-06T1839Z-rfc-0058-supersession-hybrid-relational-dynamodb-architecture/round-2/galette.md
Eric Garcia 6e8f0db6c0 chore: add dialogues, RFCs, docs and minor improvements
- Add dialogue prompt file writing for audit/debugging
- Update README install instructions
- Add new RFCs (0053, 0055-0059, 0062)
- Add recorded dialogues and expert pools
- Add ADR 0018 dynamodb-portable-schema
- Update TODO with hook configuration notes

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-26 08:51:56 -05:00

16 lines
3 KiB
Markdown

[PERSPECTIVE P01: The prerequisite inversion changes the conclusion, not just the sequencing]
The Judge's open question 4 asks whether GALETTE R1-T01 changes the conclusion or just the sequencing. It changes the conclusion. Building the trait boundary (RFC 0053 Phase 1-2) will force concrete answers to CROISSANT R1-T01 (trait governance), STRUDEL R1-T01 (domain-shaped vs backend-shaped), and ECLAIR R1-T01 (denormalization leakage) -- because you cannot define `SqliteDialogueStore` for 32 `&Connection` functions without deciding whether methods like `get_cross_dialogue_stats` or `find_similar_dialogues` belong in the trait at all. The trait extraction is not preparatory infrastructure; it is the design decision itself, made concrete by code rather than by RFC prose. Shipping the trait-extraction first means the panel's seven open tensions collapse into implementation choices with testable answers, not architectural speculation.
[PERSPECTIVE P02: A concrete three-phase gate resolves the open sequencing question]
Phase A: Extract `DialogueStore` trait from the 32 existing `&Connection` functions, implement `SqliteDialogueStore`, convert `dialogue.rs` handler call sites. This phase forces CROISSANT R1-T01 (which methods survive?) and STRUDEL R1-T01 (domain-shaped trait) into concrete decisions. Phase B: Define encryption envelope format with backend-portable AAD binding (resolves TARTLET R1-T01) before any DynamoDB write path exists. Phase C: Implement `DynamoDialogueStore` behind the now-stable trait. Each phase has a clear deliverable and a clear gate: Phase A ships when `alignment_db.rs` exports zero bare `pub fn ...(conn: &Connection)` signatures; Phase B ships when the envelope spec passes a round-trip test across both backends; Phase C ships when DynamoDB Local integration tests pass the same generic test suite as SQLite.
[REFINEMENT: Croissant's governance gate is answered by Phase A, not by process]
Croissant R1-T01 asks for a review gate on trait method additions. The strongest gate is not an RFC or ADR checklist -- it is the requirement that every `DialogueStore` method must have a passing implementation in both `SqliteDialogueStore` and `DynamoDialogueStore` before merge. Dual-implementation is the gate; CI enforces it.
[CONCESSION: Cannoli's in-memory assembly pattern makes denormalization cluster less urgent]
Cannoli correctly showed that at actual volumes (~100 items per dialogue), full-partition load plus client-side graph assembly is cheap. This means MUFFIN R1-T01 and MACARON R1-T01 (denormalization consistency and cost) are real but not blocking -- they can be deferred to Phase C without architectural risk.
[RESOLVED GALETTE R1-T01: Prerequisite inversion]
The emerging consensus sequence (Judge's synthesis steps 1-7) adopts the trait-first ordering, which resolves the inversion. The tension transforms from "premature debate" into "Phase A deliverable" with a concrete exit criterion: zero bare `conn: &Connection` public functions in `alignment_db.rs`.
---