pub struct VerificationContract {
pub contract_id: String,
pub phases: Vec<MilestonePhase>,
}Expand description
One verification contract: an ordered cascade of phases the operation must pass in sequence.
A skeleton, deliberately. The kernel owns exactly two things about a contract — the order
its phases run in, and what passing a phase unlocks — because both are kernel decisions: the
order decides which EvaluateMilestone is published next, and the unlocks mutate the capability
table, which is the operation’s authority surface. Everything else about a contract — the
acceptance criteria, the evidence, the verifier and the I/O that runs it — stays host-side
(§5.2, adjudication §5m item 3). A bare Vec<String> of ids could not express the first two,
so the phase cascade had no canonical producer at all and EvaluateMilestone was unreachable
from the wire (Task 12 SPEC-ISSUE-4); a full contract type would have moved criteria ownership
into core. This is the line between them.
Fields§
§contract_id: StringLogical id. Unique within the operation, and the value
LogicalAgentSpec::verification_contract_id resolves
against.
phases: Vec<MilestonePhase>Trait Implementations§
Source§impl Clone for VerificationContract
impl Clone for VerificationContract
Source§fn clone(&self) -> VerificationContract
fn clone(&self) -> VerificationContract
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more