Handbook
Milestone Plan
Each milestone must define:
Updated
Milestone shape
Each milestone must define:
- user-visible outcome,
- participating products,
- contracts touched,
- human approval boundary,
- evidence required,
- demo script,
- product boundary risks.
Milestone close criteria
A milestone is closed only when Lenses can show the relevant part of the run.
Milestone close run path
The governed spine Lenses must expose before a milestone can close with reviewable evidence.
- intentStates the milestone outcome the run is meant to deliver.
- planMaps products, contracts, and scope for the milestone work.
- reasoningProduces governed LCDL outputs without assuming orchestration control.
- approvalHolds work at the milestone's human approval boundary.
- executionCarries out bounded runner or Fleet work after approval clears.
- evidenceGathers artifacts and packets that support a human close decision.
- decisionRecords whether the milestone closes or needs more work.
intent -> plan -> reasoning -> approval -> execution -> evidence -> decisionPlatform assay
Before closing any milestone, answer:
- Is Lenses still the control plane?
- Is Blueprints still policy, not runtime state?
- Is LCDL still governed reasoning, not orchestration?
- Is Fleet still controlled execution, not planning?
- Are agents modeled as workcells?
- Is the human approval boundary explicit?
- Is the evidence enough for a human decision?
Self-Host Alpha (SELFHOST-ALPHA)
SELFHOST-ALPHA closes when Lenses can show a live-local path: .forge/runs/<frun_*>/ with approval, runner result, imported EvidencePacket, and decision state — not only static samples under sprints/selfhost-alpha/samples/. Hermes and full Fleet execution remain out of scope for this gate; the allowlisted local runner stands in for controlled execution until R4.