pub struct ProcedureStep {
pub description: String,
pub tool: Option<String>,
pub intent: Option<String>,
pub tool_hint: Option<String>,
pub id: Option<String>,
pub depends_on: Vec<String>,
pub command: Option<String>,
pub on_failure: FailureAction,
pub retry: Option<RetryConfig>,
pub timeout_secs: Option<u64>,
pub needs_approval: bool,
}Fields§
§description: String§tool: Option<String>Literal tool name. Pre-M6b behaviour: hard binding. Post-M6b: treated
as a hint when intent is also set; otherwise still a hard binding.
intent: Option<String>What the step is trying to accomplish. Free-form string, no central
taxonomy. Resolved at inject time against the agent’s MCP inventory.
When set, the resolver prefers a tool whose name matches a glob in
mcp_requirements over the literal tool field.
tool_hint: Option<String>Preferred tool name pattern (glob). Used as a tiebreaker among
resolver candidates. Falls back to literal tool, then to any
mcp_requirements match for the intent.
id: Option<String>Stable step id for depends_on references. When omitted, executors
assign the zero-based step index as the id at load time (not serialized).
depends_on: Vec<String>Step ids this step depends on. Empty = root step. Step order derives from the dependency topology, never from list position (v2 decision #1).
command: Option<String>Shell command (command-mode step), run via sh -c with exit-code
gating. Intent-mode steps leave this None — in pure CLI runs they are
printed as instructions and marked skipped in the ledger (decision #2).
on_failure: FailureAction§retry: Option<RetryConfig>§timeout_secs: Option<u64>§needs_approval: boolPause for human approval before running. TTY: prompt and wait.
Non-TTY: auto-skip and mark skipped_approval in the ledger; --yes
auto-approves (v2 decision #5). Wired by the P3 executor.
Trait Implementations§
Source§impl Clone for ProcedureStep
impl Clone for ProcedureStep
Source§fn clone(&self) -> ProcedureStep
fn clone(&self) -> ProcedureStep
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for ProcedureStep
impl Debug for ProcedureStep
Source§impl Default for ProcedureStep
impl Default for ProcedureStep
Source§fn default() -> ProcedureStep
fn default() -> ProcedureStep
Source§impl<'de> Deserialize<'de> for ProcedureStep
impl<'de> Deserialize<'de> for ProcedureStep
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Source§impl JsonSchema for ProcedureStep
impl JsonSchema for ProcedureStep
Source§fn schema_id() -> Cow<'static, str>
fn schema_id() -> Cow<'static, str>
Source§fn json_schema(generator: &mut SchemaGenerator) -> Schema
fn json_schema(generator: &mut SchemaGenerator) -> Schema
Source§fn inline_schema() -> bool
fn inline_schema() -> bool
$ref keyword. Read more