Handbook
Self-Host Alpha close assay (prompt 28)
Post-implementation closure checklist. Ready for selfhost-alpha implementation is satisfied when all items below are true.
Gates
| Gate | Evidence |
|---|---|
| M1 static chain | sprints/selfhost-alpha/samples/ + validate_selfhost_chain.py green via check_foundation |
| Local runner contract | schemas/local_runner_*.v1.schema.json, scripts/selfhost_runner.py allowlist + approval gate + events.ndjson |
| Run store | docs/selfhost-run-store.md; layout under .forge/runs/<frun_*>/ |
| Evidence import | scripts/selfhost_import_evidence.py merges LocalRunnerResult into EvidencePacket / ForgeRun |
| Lenses | API + Studio page + docs (lenses-selfhost-handoff.md, http-api-and-routes.md) |
| E2E | vertical-demo.md — foundation run + gap-register run |
| Roadmap | SELFHOST-ALPHA called out in roadmap / milestone docs; M2-lenses-control-plane/charge.md scopes M2-lite vs SELFHOST |
Assay answers (short)
- ForgeRun from sample — Yes:
sprints/selfhost-alpha/samplesand fixtures underfixtures/frun_*. - Full chain representation — Yes: static JSON set + README; LCDL/Fleet placeholders explicit.
- Lenses ingest — Yes: forge-runs list/read + Studio UI.
- Safe local without Fleet — Yes: allowlisted actions only; no raw shell.
- Whitelisted EvidencePacket — Yes: importer updates packet + pointers.
- Human approval — Yes:
forge.approval_request.v1must beapprovedand gate matching action. - Sparks from evidence — Yes: sample
follow_on_sparks; gap-run sparks for Architecture/BA; importer spark on import. - Alpha out of scope — Hermes automation, arbitrary repo writes, non-allowlisted commands.
Recommendation
Manual self-hosting available now for foundation checks and gap-register generation on a local forge-platform tree with Lenses visibility.