pub fn classify_shape(plan: &Plan) -> MissionShapeExpand description
Classify a plan’s shape from its validation contract alone (observable before any run happens).
AgentJudgement assertions are re-evaluated by validators and the
orchestrator against the entire, growing mission diff on every
validation pass — m-d341a7 had 2 judgement assertions over a 1074-line
doc and that alone drove 21.5M cache-read tokens across 17 judgement
turns. Missions that instead gate on a build/test/lint command bound that
cost (the command runs once, deterministically, regardless of diff size),
so any Command assertion invoking cargo/npm/pytest/go test/make wins
over an AgentJudgement signal — the code-change shape doesn’t scale
with diff size the way a judgement-only contract does.