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}