KB-6F34

Branch E — DOT Action Map

7 min read Revision 1
mowui-handoffdotaction-mapdieu-35catalogdot-spec-only2026-05-29

Branch E — DOT Action Map

Every UI action → exactly one DOT. No UI action writes raw SQL or Directus items to design columns. DOT_SPEC_ONLY = specified in Phase 1 doc 03 / v1 but not yet registered in dot_iu_command_catalog (catalog currently 54; the 6 read dot_mow_design_* were rehearsed GREEN but rolled back). Read DOTs registerable post-EXTEND; mutating DOTs deferred behind fn implementation + approval.

Legend: R/M read|mutate · Gate required gate · Appr approval needed · payload→response · UI-after.


1. Navigation / read actions (canvas)

UI action DOT R/M Gate Appr Payload → Response UI after success / fail
Load tier dot_mow_canvas_get_nodes R none no {tier,parent_id,filters,page}CanvasNode[] (child_preview≤3, rollup traffic_light) render grid / error banner+retry · DOT_SPEC_ONLY (new canvas read DOT)
Get context dot_mow_canvas_get_context R none no {node_id}CanvasContext set breadcrumb+tabs / banner · DOT_SPEC_ONLY
Drill down dot_mow_canvas_drill_down R none no {from_node_id,from_tier}{context, nodes[]} descend one tier / banner · DOT_SPEC_ONLY
Open task card dot_mot_get_task_card R none no {task_type_id,instance_id?} → TaskCardData (MOIT/MOUT/guide) open Surface 2 / banner · DOT_SPEC_ONLY
Open design dot_mow_design_get R none no {workflow_id} → header+steps open Surface 3 · registerable P1
List designs dot_mow_design_list R none no {filters}v_mow_design_workflow rows render list · registerable P1
Render tree dot_mow_design_render_tree R none no {workflow_id} → DAG (steps+relations+condition refs) draw Standard Process View · registerable P1
Audit health dot_mow_design_audit R none no {workflow_id,range} → change history history panel · registerable P1
Validate design dot_mow_design_validate R none no {workflow_id} → findings (doc-06 checks) 🟢/🟡/🔴 badge + findings · registerable P1
Health rollup dot_mow_design_health R none no {workflow_id?} → health JSON traffic-light + Control-Tower metrics · registerable P1
View gate dot_iu_gate_verify_closed R none no {} → gate JSON (all_safe…) cockpit gate light · live

2. Proposal / Kaizen actions

UI action DOT R/M Gate Appr Payload → Response UI after
Propose change ("Đề xuất cải tiến") dot_mow_design_propose_change M none (queue insert) no (draft) {workflow_id, target_node_id, target_tier, change_type:add|edit|delete|reorder, proposed_data{title,order_index,parent_id}, reason, iu_ref}{proposal_id, status:draft} inline "✓ Đã gửi" + proposal_count++ / toast error · may reuse workflow_change_requests; registerable as mutating
Add step dot_mow_design_propose_change (change_type=add/add_step) → on approval applied by activate M structure_ops (on apply) council on activate add-step proposal proposal queued / error · structural-apply DOT DOT_SPEC_ONLY
Remove step dot_mow_design_propose_change (change_type=delete) M structure_ops (on apply) council delete proposal + warn-box impact count queued / error · DOT_SPEC_ONLY apply
Reorder step dot_mow_design_propose_change (change_type=reorder) M structure_ops (on apply) council {order_index} change queued / error · DOT_SPEC_ONLY (reorder not built in prototype)

add/remove/reorder are proposals first (never direct mutation). The structural apply (after approval) is a deferred mutating DOT family; flagged DOT_SPEC_ONLY until fn + approval exist.

3. Binding actions (designer, MOW owner)

UI action DOT R/M Gate Appr Payload → Response UI after
Bind design IU dot_mow_design_bind_iu M structure_ops (design) no {workflow_id, design_iu_ref} → set header IU chip resolves / error · deferred-mutating
Bind step IU dot_mow_design_bind_step_iu M structure_ops no {step_id, step_iu_ref, guide_iu_ref?} → set step 🟡→🟢 / error · deferred-mutating
Bind DOT dot_mow_design_bind_dot M structure_ops no {step_id, dot_ref} → set dot chip resolves / error · deferred-mutating
Bind event dot_mow_design_bind_event M structure_ops no {step_id, event_domain, event_type} → set composite event chip resolves / error · deferred-mutating

All binds are idempotent set-to-value (re-run = no-op); reversible (re-bind prior/NULL).

4. Freeze / lifecycle (MOW owner + council)

UI action DOT R/M Gate Appr Payload → Response UI after
Freeze workflow dot_mow_design_freeze M structure_ops no (owner) {workflow_id, reason, by} → freeze_active=true banner "frozen", mutate buttons disabled / error · deferred-mutating
Unfreeze workflow dot_mow_design_unfreeze M structure_ops no (owner) {workflow_id, by} → clear banner cleared / error · deferred-mutating
Activate design dot_mow_design_activate M structure_ops + approval GOV-COUNCIL ≥2 {workflow_id, version, apr_id} → bump active_design_version, flip status version chip bumps, audit row / disabled+explained for non-council · deferred-mutating
Rollback design dot_mow_design_rollback M structure_ops + approval GOV-COUNCIL ≥2 {workflow_id, to_version, apr_id} → forward-only version-pin version pinned, freeze optional / error · deferred-mutating
Approve / Reject proposal (NOT a DOT) writes apr_approvals M human/council only decision row proposal advances / backend rejects agent decision (Điều 32)

5. Catalog readiness snapshot

  • Registerable now (post-EXTEND, read subset): dot_mow_design_list/get/health/validate/render_tree/audit — rehearsed GREEN (54→60→54).
  • DOT_SPEC_ONLY (new canvas read DOTs, need fns): dot_mow_canvas_get_nodes/get_context/drill_down, dot_mot_get_task_card.
  • Deferred-mutating (need fn + approval): dot_mow_design_bind_iu/bind_step_iu/bind_dot/bind_event/freeze/unfreeze/propose_change/activate/rollback (+ structural add/remove/reorder apply).

6. DOT action map verdict

Complete. All 14 campaign-listed actions (propose/add/remove/reorder/bind-IU/bind-DOT/bind-event/freeze/unfreeze/validate/activate/rollback/render/audit) plus 4 canvas-nav reads are mapped with R/M, gate, approval, payload, response, and UI-after-success/fail. Unbuilt/unregistered DOTs explicitly flagged DOT_SPEC_ONLY. No DOT executes runtime; activation/rollback are council-owned + approval-gated; agent is forbidden to self-approve.

Back to Knowledge Hub knowledge/dev/reports/architecture/mow-unified-canvas-master-ui-handoff-pack-2026-05-29/05-dot-action-map.md