pub struct Plan {
pub schema_version: u32,
pub plan_rev: u32,
pub intent_rev: u32,
pub feature: Feature,
pub baseline: Baseline,
pub acceptance: Vec<Acceptance>,
pub chunks: Vec<Chunk>,
pub extra: Map<String, Value>,
}Expand description
A plan.json v3 document (design.md §4, §7; plan-schema.md).
Deserialization is deliberately tolerant of unknown keys (they are
captured into extra rather than failing the parse) so the structural
validator can decide their fate per the compatibility semantics above —
rejecting undeclared fields while leaving room for an allowlisted additive
optional field. Always construct through parse_and_validate_plan (or run
validate_plan after deserializing) before trusting a Plan.
Fields§
§schema_version: u32Major schema version. Readers reject unsupported majors.
plan_rev: u32Immutable revision of this plan; chunk attempts reference it.
intent_rev: u32The intent.md revision this plan targets (intent is referenced, not
embedded).
feature: FeatureFeature identity: slug + source/integration branches.
baseline: BaselineSnapshot at feat/<slug> fork; the floor + verify diff against it.
acceptance: Vec<Acceptance>Whole-feature intent gate; each item is a check or an assertion,
and at least one must be a check.
chunks: Vec<Chunk>The DAG of implementation chunks (deps form an acyclic graph).
extra: Map<String, Value>Unrecognized top-level keys, captured for the compatibility check rather than silently dropped. Serialized back out verbatim so a tolerated additive field round-trips.