docs flow feat/flow-projection-pilot #9 / 18
aaronrene · 2 days ago · Jun 20, 2026 · Diff

docs(flow): 7A-L1a authoring write-back contract (canonical)

Freeze the Live Flow authoring write-back contract: propose-as-proposal facade over the existing /proposals lifecycle (SD-4), scope×role write authority (deny-by-default), base_version+base_state_id (flowst1_) optimistic concurrency, import path, gating (FLOW_AUTHORING_WRITES OFF), error taxonomy, and the seven-tier test matrix. Contract only — no impl, no route, no OpenAPI edit, no posture flip. Next: 7A-L1b (Auto impl).

sha256:d7740f3a38e30e57e3b8cff816c27259bd80245cda73b001fe43841f7dda7379 sha
+28 symbols
sha256:dc0ad0f16b2d4f85f1fc6a7f037b2fb99835aa8d26813284925391c7839f68ab snapshot
+28
symbols added
0
dead code introduced
Semantic Changes 28 symbols
+ Flow Authoring Write-Back — Canonical Contract (Phase 7A, Step 7A-L1a) section Flow Authoring Write-Back — Canonical Contract (Phase 7A, Step 7A-L1a) L1–318
+ Design decision (recorded as SD-4) section 0. Design decision (recorded as SD-4) L72–92
+ Surfaces (triple-exposed, identical contract) section 1. Surfaces (triple-exposed, identical contract) L92–148
+ 1 Request — flow_propose (new or edit) section 1.1 Request — flow_propose (new or edit) L108–128
+ code[jsonc] variable variable code[jsonc] L110–119
+ flow_proposal/v0 section 1.2 Response — knowtation.flow_proposal/v0 L128–148
+ code[jsonc] variable variable code[jsonc] L130–143
+ table section table L98–103
+ Write-authority model (scope × role, server-side, deny-by-default) section 2. Write-authority model (scope × role, server-side, deny-by-default) L148–169
+ table@L153 section table@L153 L153–158
+ table@L159 section table@L159 L159–166
+ Review-before-write lifecycle (reuses /proposals) section 3. Review-before-write lifecycle (reuses /proposals) L169–202
+ code variable variable code L174–191
+ table section table L192–199
+ Optimistic concurrency — base_version + base_state_id section 4. Optimistic concurrency — base_version + base_state_id L202–225
+ table section table L207–215
+ Import (portable bundle → scope-checked proposal) import section 5. Import (portable bundle → scope-checked proposal) L225–240
+ table section table L230–237
+ Posture / gating (default off) section 6. Posture / gating (default off) L240–251
+ table section table L242–247
+ 1 Error taxonomy (opaque codes; no scope/id/secret leak) section 6.1 Error taxonomy (opaque codes; no scope/id/secret leak) L251–260
+ Seven-tier test matrix (what each tier proves — design only) section 7. Seven-tier test matrix (what each tier proves — design only) L260–279
+ table section table L267–276
+ Acceptance (7A-L1a) section 8. Acceptance (7A-L1a) L279–294
+ Handoff notes (for 7A-L1b — Auto) section Handoff notes (for 7A-L1b — Auto) L305–318
+ Non-goals (7A-L1) section Non-goals (7A-L1) L294–305
+ Simple summary section Simple summary L36–50
+ Technical summary section Technical summary L50–72

0 comments

No comments yet. Be the first to start the discussion.

To add a comment, use the Muse CLI: muse hub commit comment sha256:d7740f3a38e30e57e3b8cff816c27259bd80245cda73b001fe43841f7dda7379 --body "your comment"