Skip to main content

dpm_model/
instructions.rs

1use serde::{Deserialize, Serialize};
2
3/// Author-supplied procedure and scope for an executable task, not execution authorization.
4#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
5#[serde(deny_unknown_fields)]
6pub struct WorkInstructions {
7    /// Ordered actions; their array order defines the suggested procedure.
8    pub steps: Vec<ExecutionStep>,
9    /// Deliverables and changes permitted by this contract.
10    pub in_scope: Vec<String>,
11    /// Explicit exclusions to prevent unapproved scope expansion.
12    pub out_of_scope: Vec<String>,
13    /// Checks and evidence to collect against the task's acceptance criteria.
14    pub verification: Vec<String>,
15}
16
17/// One inspectable action and the observable result it should produce.
18#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
19#[serde(deny_unknown_fields)]
20pub struct ExecutionStep {
21    /// Concrete action for the worker.
22    pub action: String,
23    /// Observable output used to assess completion of this step.
24    pub expected_result: String,
25}