flow_reviewed_writeback.json
json
sha256:8915fe406161f95c1681f9469375e7bae5b28c884f00bedbdef65e4b0cd0738d
docs(flow): commit FLOW-V0-SPEC.md hygiene for 7A-INT merge
Human
11 hours ago
| 1 | { |
| 2 | "flow": { |
| 3 | "schema": "knowtation.flow/v0", |
| 4 | "flow_id": "flow_reviewed_writeback", |
| 5 | "title": "Note \u2192 reviewed write-back", |
| 6 | "version": "0.1.0", |
| 7 | "scope": "personal", |
| 8 | "summary": "Update an existing note safely: capture the base state, then propose the edit through review with a concurrency check.", |
| 9 | "tags": ["authoring", "review", "write-back"], |
| 10 | "steps": [ |
| 11 | "flow_reviewed_writeback#1", |
| 12 | "flow_reviewed_writeback#2" |
| 13 | ], |
| 14 | "inputs": [ |
| 15 | { "name": "note_path", "type": "string", "required": true } |
| 16 | ], |
| 17 | "vault_mirror_path": "meta/flows/reviewed-writeback.md", |
| 18 | "updated": "2026-06-20T00:00:00Z", |
| 19 | "truncated": false |
| 20 | }, |
| 21 | "steps": [ |
| 22 | { |
| 23 | "schema": "knowtation.flow_step/v0", |
| 24 | "step_id": "flow_reviewed_writeback#1", |
| 25 | "flow_id": "flow_reviewed_writeback", |
| 26 | "ordinal": 1, |
| 27 | "owned_job": "Capture the current base state of the note being edited.", |
| 28 | "instruction": "Fetch the existing note and record its base_state_id so the later proposal can detect concurrent edits.", |
| 29 | "trigger": "Run when an update to an existing note is ready to be written.", |
| 30 | "when_not_to_run": "Skip if note_path does not resolve, or the note is out of the actor's writable scope.", |
| 31 | "requires": [ |
| 32 | { "kind": "vault_scope", "id": "personal" }, |
| 33 | { "kind": "tool", "id": "knowtation_cli" } |
| 34 | ], |
| 35 | "boundaries": [ |
| 36 | "Read only \u2014 do not mutate the note here", |
| 37 | "Do not fabricate a base_state_id" |
| 38 | ], |
| 39 | "skill_refs": [ |
| 40 | { "kind": "cli", "id": "knowtation get-note <note_path> --json" } |
| 41 | ], |
| 42 | "inputs": [ |
| 43 | { "name": "note_path", "from": "flow.inputs.note_path" } |
| 44 | ], |
| 45 | "outputs": [ |
| 46 | { "name": "base_state_id", "type": "string" } |
| 47 | ], |
| 48 | "output_shape": "The note's current base_state_id plus its existing body, ready for an edit proposal.", |
| 49 | "verification": { |
| 50 | "kind": "artifact_exists", |
| 51 | "evidence_required": true, |
| 52 | "description": "A base_state_id for the target note is captured and recorded." |
| 53 | }, |
| 54 | "automatable": "agent_assisted" |
| 55 | }, |
| 56 | { |
| 57 | "schema": "knowtation.flow_step/v0", |
| 58 | "step_id": "flow_reviewed_writeback#2", |
| 59 | "flow_id": "flow_reviewed_writeback", |
| 60 | "ordinal": 2, |
| 61 | "owned_job": "Propose the edit through review with a concurrency check.", |
| 62 | "instruction": "Submit the updated content as a Knowtation proposal pinned to the captured base_state_id for human approval.", |
| 63 | "trigger": "Run after the base state is captured and the updated content is ready.", |
| 64 | "when_not_to_run": "Skip if base_state_id is missing, or the note changed underneath since it was captured.", |
| 65 | "requires": [ |
| 66 | { "kind": "vault_scope", "id": "personal" }, |
| 67 | { "kind": "tool", "id": "knowtation_cli" } |
| 68 | ], |
| 69 | "boundaries": [ |
| 70 | "Never write canonical knowledge directly \u2014 route through the proposal/review tray", |
| 71 | "Always pin base_state_id so concurrent edits are detected", |
| 72 | "No secrets in the proposal body or provenance" |
| 73 | ], |
| 74 | "skill_refs": [ |
| 75 | { "kind": "cli", "id": "knowtation propose <note_path> --intent reviewed_writeback --base-state-id <base_state_id> --source agent" } |
| 76 | ], |
| 77 | "inputs": [ |
| 78 | { "name": "base_state_id", "from": "flow_reviewed_writeback#1.outputs.base_state_id" } |
| 79 | ], |
| 80 | "outputs": [ |
| 81 | { "name": "proposal_ref", "type": "string" } |
| 82 | ], |
| 83 | "output_shape": "A pending proposal id pinned to the captured base_state_id.", |
| 84 | "verification": { |
| 85 | "kind": "human_review", |
| 86 | "evidence_required": true, |
| 87 | "description": "Reviewer approves the edit via the review tray and the base_state_id concurrency check passes; approval id recorded." |
| 88 | }, |
| 89 | "automatable": "manual" |
| 90 | } |
| 91 | ] |
| 92 | } |
File History
1 commit
sha256:8915fe406161f95c1681f9469375e7bae5b28c884f00bedbdef65e4b0cd0738d
docs(flow): commit FLOW-V0-SPEC.md hygiene for 7A-INT merge
Human
11 hours ago