&reason.plan -- Planning-Oriented Reasoning for the [&] Protocol&reason.plan is the capability page for the &reason.plan subtype in the [&] Protocol.
It represents a reasoning surface built for:
goal decomposition into actionable steps
constrained plan generation
plan revision under feedback
outcome simulation and failure mode analysis
explicit commitment before execution
In short:
&reason.planis the protocol capability for agents that must produce, refine, and commit action sequences under constraints.
&reason.plan is a subtype of the &reason primitive.
It describes a reasoning capability that takes goals, constraints, and optional feedback and produces:
a candidate plan or set of candidate plans
a revised plan incorporating new information
a simulation of expected outcomes and failure modes
a committed plan ready for execution
Unlike a generic "LLM generates steps" approach, &reason.plan is modeled as a distinct protocol capability with explicit contracts and composition rules.
Many agent systems need more than evaluation and judgment.
They need a way to:
decompose goals into ordered steps
generate multiple candidate plans for comparison
revise plans when constraints change or feedback arrives
simulate outcomes before committing resources
commit a selected plan with clear provenance
That is the role of &reason.plan.
This capability is especially important for systems where plans must be:
inspectable
revisable
governed
simulated before execution
traceable from goal to action
Examples include:
workflow orchestration across tools and services
task decomposition for multi-step agent work
route and sequence planning under resource constraints
tool-using agents that must decide what to call and in what order
capacity and demand planning with explicit tradeoffs
The [&] Protocol organizes cognition, embodiment, and governance into six primitive families:
&memory -- what the agent knows
&reason -- how the agent decides
&time -- when things happen
&space -- where things are
&body -- how the agent is instantiated in an environment (perception, action, affordance)
&govern -- who is acting, under what rules, at what cost
&reason.plan lives under &reason and is the subtype most directly associated with:
goal decomposition
step sequencing
plan generation and revision
pre-execution simulation
It composes naturally with:
&memory.* for context and prior plan recall
&time.* for forecast and scheduling input
&space.* for spatial and resource constraints
&reason.vote for selecting among candidate plans
&reason.argument for evaluating plan tradeoffs
reason.plan different from other reasoning subtypesreason.argumentreason.plan emphasizes producing and refining action sequences
reason.argument emphasizes evaluating evidence and defending a decision
reason.votereason.plan generates candidate plans -- it creates the alternatives
reason.vote selects among alternatives -- it aggregates preferences across candidates or agents
reason.plan is explicit, typed, inspectable, and composable
implicit reasoning is often hidden inside prompts or application code
A representative contract for &reason.plan looks like this:
{
"$schema": "https://protocol.ampersandboxdesign.com/schema/v0.1.0/capability-contract.schema.json",
"capability": "&reason.plan",
"provider": "deliberatic",
"version": "0.1.0",
"description": "Planning-oriented reasoning contract for goal decomposition, constrained plan revision, outcome simulation, and plan commitment.",
"operations": {
"plan": {
"in": "goals_and_constraints",
"out": "candidate_plans",
"description": "Generate candidate plans from goals and constraints."
},
"revise": {
"in": "plan_and_feedback",
"out": "revised_plan",
"description": "Revise an existing plan based on feedback, new constraints, or changed conditions."
},
"simulate": {
"in": "candidate_plan",
"out": "simulation_result",
"description": "Simulate outcomes and failure modes for a candidate plan."
},
"commit": {
"in": "selected_plan",
"out": "committed_plan",
"description": "Commit a selected plan for execution, producing an immutable execution artifact."
}
},
"accepts_from": [
"&memory.*",
"&time.*",
"&space.*",
"goals",
"constraints",
"feedback"
],
"feeds_into": [
"&memory.*",
"&reason.vote",
"&reason.argument",
"execution",
"output"
],
"a2a_skills": [
"goal-plan-generation",
"plan-revision"
]
}
This contract says:
plan consumes goals_and_constraints and outputs candidate_plans
revise consumes plan_and_feedback and outputs revised_plan
simulate consumes candidate_plan and outputs simulation_result
commit consumes selected_plan and outputs committed_plan
It also says:
upstream inputs can come from memory, time, space, goals, constraints, or feedback
outputs can feed memory, voting, argument evaluation, execution layers, or final output
this capability may advertise A2A-facing skills such as goal-plan-generation
A typical &reason.plan pipeline looks like this:
goal
-> &memory.graph.enrich()
-> &reason.plan.plan()
-> candidate_plans
-> &reason.plan.simulate()
-> &reason.vote.select()
-> &reason.plan.commit()
-> committed_plan
Or, in a demand-capacity workflow:
demand_signal
-> &time.forecast.predict()
-> &space.fleet.enrich()
-> &reason.plan.plan()
-> candidate_plans
-> &reason.plan.revise()
-> revised_plan
-> &reason.plan.commit()
-> committed_plan
upstream capabilities gather context, forecasts, and constraints
&reason.plan generates, simulates, and refines candidate plans
selection among candidates can be delegated to &reason.vote
the committed plan can be stored, executed, or escalated
provenance can preserve the chain from goal to committed action sequence
ampersand.json usage{
"$schema": "https://protocol.ampersandboxdesign.com/schema/v0.1.0/ampersand.schema.json",
"agent": "WorkflowOrchestrator",
"version": "1.0.0",
"capabilities": {
"&reason.plan": {
"provider": "deliberatic",
"config": {
"governance": "goal-directed",
"mode": "constrained-planning"
}
}
},
"provenance": true
}
{
"$schema": "https://protocol.ampersandboxdesign.com/schema/v0.1.0/ampersand.schema.json",
"agent": "TaskDecomposer",
"version": "0.1.0",
"capabilities": {
"&reason.plan": {
"provider": "auto",
"need": "goal decomposition with constrained plan revision and outcome simulation"
}
},
"governance": {
"infer_from_goal": true
},
"provenance": true
}
A provider implementing &reason.plan might expose operations like:
planInput:
{
"goal": "deploy-v2.3-to-production",
"constraints": {
"hard": ["Zero downtime", "Must pass staging validation before cutover"],
"soft": ["Prefer blue-green over rolling if capacity allows"],
"resources": {
"max_parallel_deploys": 3,
"available_regions": ["us-east", "eu-west"]
}
},
"context": {
"current_version": "v2.2.1",
"active_incidents": 0,
"capacity_headroom": 0.35
}
}
Output:
{
"candidates": [
{
"plan_id": "plan-bg-01",
"strategy": "blue-green",
"steps": [
"provision green environment in us-east",
"deploy v2.3 to green",
"run staging validation suite",
"switch traffic to green",
"provision green environment in eu-west",
"deploy v2.3 to green",
"run staging validation suite",
"switch traffic to green",
"decommission blue environments"
],
"estimated_duration_minutes": 45,
"risk_score": 0.12
},
{
"plan_id": "plan-roll-01",
"strategy": "rolling",
"steps": [
"deploy v2.3 to us-east canary (10%)",
"validate canary health for 5 minutes",
"roll to us-east (100%)",
"deploy v2.3 to eu-west canary (10%)",
"validate canary health for 5 minutes",
"roll to eu-west (100%)"
],
"estimated_duration_minutes": 30,
"risk_score": 0.18
}
]
}
simulateInput:
{
"plan_id": "plan-bg-01",
"failure_scenarios": ["staging_validation_fails", "capacity_spike_during_cutover"]
}
Output:
{
"plan_id": "plan-bg-01",
"simulations": [
{
"scenario": "staging_validation_fails",
"outcome": "rollback to blue; no traffic impact",
"severity": "low",
"recovery_time_minutes": 5
},
{
"scenario": "capacity_spike_during_cutover",
"outcome": "both blue and green absorb load during transition; brief latency increase",
"severity": "medium",
"recovery_time_minutes": 2
}
],
"overall_resilience": 0.88
}
Use when the system must generate plans informed by temporal forecasts and spatial resource constraints.
&time.forecast -> &space.fleet -> &reason.plan
Good for:
demand-capacity planning
fleet scheduling
regional provisioning
supply chain sequencing
Use when the system should generate multiple candidate plans, then select the best one through structured comparison.
&reason.plan.plan() -> &reason.vote.select()
Good for:
multi-strategy evaluation
team or stakeholder consensus on approach
A/B deployment strategy selection
resource allocation tradeoffs
Use when planning depends on prior context, past plans, or historical outcomes.
&memory.graph -> &reason.plan
Good for:
incremental workflow refinement
learning from past execution failures
building on prior task decompositions
context-aware re-planning
Use when a generated plan should be stress-tested through evidence-weighted evaluation before revision.
&reason.plan.plan() -> &reason.argument.evaluate() -> &reason.plan.revise()
Good for:
safety-critical planning
compliance-sensitive workflows
plans with governance review gates
iterative plan hardening
Use when committed plans should be preserved for later recall, postmortem, or learning.
&reason.plan.commit() -> &memory.graph.learn
Good for:
execution audit trails
plan replay and comparison
operational learning loops
postmortem analysis
&reason.plan is a governance-sensitive capability in the protocol.
It is often the capability where:
hard constraints bound what plans may contain
soft preferences shape plan selection
simulation gates prevent commitment of high-risk plans
escalation decisions are triggered when no plan satisfies all constraints
{
"governance": {
"hard": [
"Never deploy to production without passing staging validation",
"Never exceed resource budget in a single plan step"
],
"soft": [
"Prefer reversible actions over irreversible ones",
"Prefer shorter plans when risk profiles are equivalent"
],
"escalate_when": {
"no_plan_satisfies_hard_constraints": true,
"all_candidates_exceed_risk_threshold": 0.5
}
}
}
A planning provider without explicit governance tends to generate plans that satisfy goals but violate unstated boundaries.
A planning provider with governance as data can:
generate only constraint-satisfying candidates
surface when no feasible plan exists
preserve reviewable constraint context
produce safer execution artifacts
&reason.plan should be provenance-visible.
A representative provenance record for a planning step might look like:
{
"source": "&reason.plan",
"provider": "deliberatic",
"operation": "commit",
"timestamp": "2026-03-14T14:23:07Z",
"input_hash": "sha256:7b2c...",
"output_hash": "sha256:e1d0...",
"parent_hash": "sha256:a3f8...",
"mcp_trace_id": "plan-inv-1f02..."
}
This is important because &reason.plan produces artifacts that directly drive execution:
the committed plan
the step sequence
the constraint satisfaction record
the simulation results
If you want to answer "What was the agent going to do, and why did it choose that approach?", this is usually the most important step in the chain.
The protocol is provider-agnostic, but representative providers for &reason.plan include:
deliberatic
custom workflow orchestration engines
hierarchical task network planners
constraint satisfaction planning services
domain-specific scheduling and sequencing engines
The key protocol rule is:
a provider may satisfy
&reason.planif it honors the declared contract
The capability should not collapse into a single vendor identity.
&reason.plan often accepts input from:
&memory.graph
&memory.vector
&memory.episodic
&time.forecast
&time.anomaly
&space.fleet
&space.route
Typical upstream type tokens include:
goals
constraints
feedback
context
Outputs from &reason.plan often feed into:
execution layers
&reason.vote for plan selection
&reason.argument for plan evaluation
learning memory surfaces
audit logs
A2A skill publication
dashboards and review workflows
Typical downstream type tokens include:
candidate_plans
revised_plan
simulation_result
committed_plan
output
A capability contract for &reason.plan may advertise skills like:
goal-plan-generation
plan-revision
This makes it possible to generate an A2A-style agent card that exposes not just "planning," but a more meaningful external skill surface.
Example interpretation:
an agent with &reason.plan can advertise that it can decompose goals into executable plans under constraints
another agent can delegate planning-heavy tasks to it
the published skill can still be derived from one canonical capability declaration
Use &reason.plan when deciding:
how to decompose a multi-step workflow into ordered tasks
which tools to invoke and in what sequence
how to revise a workflow when a step fails or conditions change
Use &reason.plan when deciding:
which deployment strategy to use across regions
how to sequence rollout steps under zero-downtime constraints
what the rollback path looks like if validation fails
Use &reason.plan when deciding:
which APIs to call and in what order to satisfy a user goal
how to decompose a complex request into tool invocations
when to revise the plan based on intermediate results
Use &reason.plan when deciding:
how to sequence procurement and fulfillment steps
which routes and schedules minimize cost under delivery constraints
how to re-plan when a supplier or route becomes unavailable
This removes:
type clarity
provenance structure
governance visibility
contract validation
simulation and revision as distinct steps
&reason.plan for pure evaluationIf the primary output is a judgment or ranking rather than an action sequence, reason.argument is usually the better subtype.
&reason.plan is strongest when candidates are tested against failure modes before commitment. Committing the first candidate without simulation loses a key safety benefit.
Plans generated without explicit constraints tend to be optimistic and fragile. Governance and resource constraints should be first-class inputs, not afterthoughts.
&reason.plan is aligned with several useful research and systems traditions:
hierarchical task network planning
constraint satisfaction and optimization
goal-oriented planning and decomposition
simulation-based plan evaluation
iterative plan repair and replanning
safe planning for autonomous systems
The protocol does not attempt to standardize one academic theory of planning.
Instead, it provides a practical interface for planning systems that must be:
composable
inspectable
governable
publishable
interoperable
&reason.plan is the protocol capability for goal decomposition, constrained plan generation, and pre-execution simulation.
It exists so that a system can say more than:
"this agent plans"
It can say:
what kind of planning it performs
what inputs it accepts
what outputs it produces
what it can compose with
how it supports governance
how it preserves provenance
what A2A skills it can publish
That makes &reason.plan one of the most important planning surfaces in the [&] Protocol.
capabilities/memory.graph.md
capabilities/memory.episodic.md
capabilities/time.forecast.md
capabilities/space.fleet.md
docs/capabilities/reason.md
docs/registry/reason.argument.md
docs/architecture.md
SPEC.md