pub struct Deliverable {
pub id: String,
pub owned_files: Vec<PathBuf>,
pub prerequisites: Vec<String>,
pub estimated_effort_hours: Option<f32>,
pub metadata: Value,
}Expand description
A single unit of work scheduled by the Planner.
owned_files is the load-bearing field for concurrent dispatch: the
Planner guarantees that two deliverables with overlapping owned_files
will never be returned in the same Cohort and will never both hold
active locks. This is the only mechanism the Planner uses to prevent
write-write conflicts; implementations of crate::ports::Planner
must therefore reject any plan that contains a deliverable whose
owned_files are not specified up front.
Fields§
§id: StringUnique identifier within the plan. The Planner rejects duplicate
ids at submit time with PlannerError::InvalidGraph.
owned_files: Vec<PathBuf>Exact file paths the implementer is going to write while completing
this deliverable. Disjointness across this set is the lock-contention
invariant; see crate::ports::Planner::acquire_cohort semantics.
prerequisites: Vec<String>Ids of other deliverables in the same plan that must reach
DeliverableStatus::Complete before this one becomes eligible
for acquisition.
estimated_effort_hours: Option<f32>Estimated wall-clock effort, used by critical-path math in
PlanStatus::critical_path. None means the implementation
should treat the duration as one unit when computing the longest
chain.
metadata: ValueFree-form metadata. Conventionally carries model hints, human descriptions, links to specs, etc. The Planner does not interpret this field.
Trait Implementations§
Source§impl Clone for Deliverable
impl Clone for Deliverable
Source§fn clone(&self) -> Deliverable
fn clone(&self) -> Deliverable
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more