Milestone Plan

Each milestone must define:

Updated

Milestone shape

Each milestone must define:

  1. user-visible outcome,
  2. participating products,
  3. contracts touched,
  4. human approval boundary,
  5. evidence required,
  6. demo script,
  7. 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.

  1. intentStates the milestone outcome the run is meant to deliver.
  2. planMaps products, contracts, and scope for the milestone work.
  3. reasoningProduces governed LCDL outputs without assuming orchestration control.
  4. approvalHolds work at the milestone's human approval boundary.
  5. executionCarries out bounded runner or Fleet work after approval clears.
  6. evidenceGathers artifacts and packets that support a human close decision.
  7. decisionRecords whether the milestone closes or needs more work.

Platform assay

Before closing any milestone, answer:

  1. Is Lenses still the control plane?
  2. Is Blueprints still policy, not runtime state?
  3. Is LCDL still governed reasoning, not orchestration?
  4. Is Fleet still controlled execution, not planning?
  5. Are agents modeled as workcells?
  6. Is the human approval boundary explicit?
  7. 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.