INFORMATIVEACTIVE
Truth Source: Repository schemas and tests are authoritative.
FLOW-05: Single Agent with Confirm Required
Source of Truth: tests/golden/flows/flow-05-single-agent-confirm-required/
Purpose
Multi-round approval workflow. Validates Confirm module integration where plans require explicit approval before execution.
Scope
This evaluation scenario validates:
- Confirm module with
decisions[]array for multi-round approval - Plan
statustransitions based on Confirm decisions - Trace recording of confirmation lifecycle events
- ID binding relationships across modules
Non-Goals
This scenario does NOT evaluate:
- Single-pass approval (see FLOW-01 for happy path)
- Tool integration (see FLOW-03)
- LLM enrichment (see FLOW-04)
- Actual plan execution (focuses on confirmation semantics)
L2 Modules Exercised
| Module | Role in Flow |
|---|---|
| Context | Immutable anchor for Plan and Confirm |
| Plan | Contains execution strategy requiring approval |
| Confirm | Records approval/rejection decisions |
| Trace | Records all confirmation lifecycle events |
Key Protocol Fields
Confirm (Multi-Round)
confirm_id: UUID v4target_type: "plan"target_id: Referencesplan_idstatus: pending → rejected → approvedrequested_by_role: Who requested approvalrequested_at: When requesteddecisions[]: Array of decision recordsdecision_id: UUID v4status: "approved" | "rejected" | "cancelled"decided_by_role: Who made the decisiondecided_at: When decidedreason: Decision justification
Trace (Confirm Events)
events[]: Chronological confirmation eventsconfirm_submitted: Initial requestdecision_rejected: First rejectiondecision_approved: Final approval
- All events reference
confirm_idanddecision_id
Integration Dimensions (L3/L4)
Minimal Integration for FLOW-05:
- No Tool Integration (simple agent steps only)
- No LLM Backend (pure confirmation semantics)
- No Runtime Execution (trace contains confirmation events, not execution events)
Evidence
| Type | Location | Status |
|---|---|---|
| Golden Flow | tests/golden/flows/flow-05-single-agent-confirm-required/ | ✅ Passed |
| Input Fixtures | tests/golden/flows/flow-05-single-agent-confirm-required/input/ | Available |
| Expected Fixtures | tests/golden/flows/flow-05-single-agent-confirm-required/expected/ | Available |
Expected Behavior
- ONE Confirm object tracks full approval lifecycle
- Multiple
decisionsadded sequentially (reject, then approve) decisions[0].status: "rejected"with rejection reasondecisions[1].status: "approved"with approval notes- Trace captures: confirm_submitted, reject_decision, approve_decision
- Full audit trail via trace events
Invariants Tested
- ID bindings validated via
eq()rule:plan.context_id == context.context_idconfirm.target_id == plan.plan_idtrace.context_id == context.context_idtrace.plan_id == plan.plan_id
- Confirm
statusvalid enum - Confirm
target_typeis "plan" - Decisions array has at least 1 entry
- All
decision_idvalues UUID v4 - All
reasonfields non-empty
Protocol Invariant Milestone
FLOW-05 completion locks down Context, Plan, Confirm, and Trace minimum behavioral invariants for MPLP v1.0.
Document Status: Informative (Evaluation Scenario)
Source of Truth: tests/golden/flows/flow-05-single-agent-confirm-required/README.md