Plan Module
Scope
This page documents the normative schema surface of the Plan module as
defined in schemas/v2/mplp-plan.schema.json.
It covers object shape, status enums, step shape, and the relevant invariant context. It does not define a general execution engine, approval policy, or planning algorithm.
Non-Goals
This page does not define:
- a universal plan-transition table
- a runtime execution sequence
- approval-routing doctrine
- a DAG-validation algorithm
- SDK convenience APIs
1. Purpose
The Plan module records a structured plan artifact containing:
- protocol metadata
- a unique
plan_id - the
context_idit belongs to - a human-readable
title - an
objective - a lifecycle
status - one or more
steps
The schema allows optional dependency references between steps. This page does not add a broader planning doctrine beyond the schema and invariant files.
2. Canonical Schema
Truth source: schemas/v2/mplp-plan.schema.json
Required Fields
| Field | Type | Notes |
|---|---|---|
meta | object | Uses common/metadata.schema.json |
plan_id | identifier | Canonical plan identifier |
context_id | identifier | Parent Context identifier |
title | string | Human-readable plan label |
objective | string | Objective description |
status | enum | Plan lifecycle field |
steps | array | Must contain at least one step |
Optional Fields
| Field | Type |
|---|---|
trace | object |
events | array |
plan_step_core
Each step requires:
step_iddescriptionstatus
Optional step fields:
dependenciesagent_roleorder_index
Plan status Enum
status is constrained to:
draftproposedapprovedin_progresscompletedcancelledfailed
Step status Enum
Step status is constrained to:
pendingin_progresscompletedblockedskippedfailed
3. Binding and Invariant Context
The Plan module participates in schema-level binding through context_id.
Relevant SA-profile checks are:
sa_plan_context_bindingsa_plan_has_stepssa_steps_have_valid_idssa_steps_agent_role_if_present
Those rules live in schemas/v2/invariants/sa-invariants.yaml. This page does
not introduce additional Plan invariants beyond that source.
4. Boundary Notes
- This page does not define a complete transition matrix for
status. - This page does not define a universal approval rule for
proposed -> approved. - This page does not define cycle detection, duplicate-step checks, or execution ordering as independent doctrine unless a frozen source file states them.
dependenciesmay be present as step references, but this page does not expand that into a larger runtime planning algorithm.
5. References
schemas/v2/mplp-plan.schema.jsonschemas/v2/invariants/sa-invariants.yaml- Context Module
- Trace Module
Final Boundary: this page specifies the Plan object shape, step shape, and the invariant context explicitly grounded in frozen sources. It does not define new planning doctrine or runtime behavior.