- 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>
48 lines
4.4 KiB
Markdown
48 lines
4.4 KiB
Markdown
# Round 1 Summary — Judge's Synthesis
|
|
|
|
## What Round 1 Answered
|
|
|
|
### Q1: Does RFC 0053's trait boundary fully resolve the supersession question?
|
|
**Partially.** Croissant showed the trait resolves supersession *conditionally* — only if trait methods are bounded to O(1) partition reads. Strudel countered that 9 weeks of DynamoDB development will shape the trait with DynamoDB workarounds, silently making the decision. Galette grounded both arguments: the trait doesn't exist in code yet (30+ direct `rusqlite::Connection` calls), making this a debate about a foundation that hasn't been built.
|
|
|
|
### Q2: Should the schema be redesigned around event streams?
|
|
**Narrowed.** Strudel scoped the claim from "redesign everything" to "redesign only the refs table." The other 13 entity types map cleanly to DynamoDB's partition model. Muffin argued event-sourcing strengthens the relational case (SQL views for materialization), while Cannoli countered that at actual volumes (~100 items per dialogue), full partition load + in-memory assembly makes the refs table's graph traversal trivially cheap.
|
|
|
|
### Q3: What's the concrete rollback plan?
|
|
**Resolved.** Macaron resolved MACARON-T01: RFC 0053's single-active-backend factory pattern provides rollback — revert config to SQLite, no split-brain. Tartlet raised a deeper version: the *encryption* rollback is the hard problem, because migrating encrypted, hash-chained data between backends breaks the audit chain at the migration boundary.
|
|
|
|
### Q4: Serverless or containerized?
|
|
**Implicitly answered.** Cannoli identified RFC 0058's architecture as implicitly serverless. Muffin conceded: if serverless, DynamoDB's operational model wins on deployment even as it loses on query expressiveness.
|
|
|
|
### Q5: Can GSIs solve graph traversal?
|
|
**No.** Muffin and Eclair showed that GSIs solve single-hop adjacency but not transitive closure (4-hop verdict assembly). Cannoli's counter: at actual volumes, you don't need the GSI — load the whole partition and traverse in memory.
|
|
|
|
## What Round 1 Surfaced
|
|
|
|
### The Prerequisite Problem (Galette)
|
|
The most consequential R1 finding: RFC 0053's trait boundary is the *mechanism* every camp depends on, but it doesn't exist in code. `alignment_db.rs` has 30+ direct `rusqlite::Connection` call sites. The entire supersession debate is premature until this foundation is built — and building it costs the same regardless of which backend wins.
|
|
|
|
### The Encryption Portability Gap (Tartlet)
|
|
The second critical finding: RFC 0058's AES-256-GCM envelope uses `pk||sk` in the AAD binding. If pk/sk are DynamoDB key structures, the encryption envelope is *implicitly coupled* to DynamoDB. No RFC specifies whether the envelope format is backend-portable.
|
|
|
|
### The Denormalization Calcification Risk (Eclair, Strudel)
|
|
The trait hides which database answers the query, but it does not hide which database *shaped the schema*. DynamoDB-specific denormalized fields (verdict arrays, pre-computed ref chains) live in the domain model, not behind the trait. A future backend swap would require maintaining dead denormalization logic.
|
|
|
|
## Emerging Resolution
|
|
|
|
The dialogue is converging toward a pragmatic sequence rather than an architectural winner:
|
|
|
|
1. **Build the trait first** — RFC 0053's `DialogueStore` trait must exist in code before any backend debate is load-bearing (Galette)
|
|
2. **Design the trait from domain patterns, not backend workarounds** — Strudel, Croissant
|
|
3. **Add a trait governance gate** — each new method must demonstrate O(1)-partition-read implementability (Croissant)
|
|
4. **Specify encryption envelope portability** — decouple AAD binding from DynamoDB key structure (Tartlet)
|
|
5. **Ship DynamoDB behind the trait** — RFC 0058 proceeds, but behind the abstraction (Macaron, Cannoli)
|
|
6. **Redesign refs table specifically** — per-entity adjacency lists vs separate refs table (Strudel)
|
|
7. **Let production data drive any future swap** — not speculation (Macaron, Cannoli)
|
|
|
|
## Open Questions for Round 2
|
|
|
|
1. Can the denormalization cluster (3 tensions) be resolved by Strudel's refs-table-only redesign + Cannoli's in-memory assembly pattern?
|
|
2. What does the trait governance gate concretely look like? An RFC? An ADR? A review checklist?
|
|
3. Is encryption envelope portability a pre-condition for shipping RFC 0058, or can it be addressed in a follow-up RFC?
|
|
4. Does the prerequisite inversion (GALETTE R1-T01) change the *conclusion* or just the *sequencing*?
|