|
| 1 | +# Bootstrap MVP Readiness |
| 2 | + |
| 3 | +Agent Machine is now a coherent bootstrap runtime-control substrate. It is not production-ready, but it has crossed the threshold from design notes into an executable control-plane prototype with typed contracts, deterministic renderers, governance semantics, evidence stubs, activation decisions, install surfaces, and operator quickstart coverage. |
| 4 | + |
| 5 | +## Current readiness status |
| 6 | + |
| 7 | +| Area | Status | Notes | |
| 8 | +| --- | --- | --- | |
| 9 | +| Contract schemas | Bootstrap-ready | Core schemas exist and are validated by `make validate`. | |
| 10 | +| Examples | Bootstrap-ready | Examples cover AgentMachine, AgentPod, InferenceProvider, CacheTier, receipts, evidence, policy, grants, and activation decisions. | |
| 11 | +| Renderers | Bootstrap-ready | Plan, receipt, Quadlet, and Kubernetes renderers are package-owned and wrapper-exposed. | |
| 12 | +| Deployment skeletons | Bootstrap-ready | Local Quadlet and Kubernetes/TopoLVM skeletons exist and are compared against generated outputs. | |
| 13 | +| Storage receipts | Bootstrap-ready | Local LVM and TopoLVM receipt examples exist; activation evaluation can resolve receipts from files/directories. | |
| 14 | +| Governance semantics | Bootstrap-ready | PolicyAdmission and AgentRegistryGrant semantics are validated beyond JSON Schema. | |
| 15 | +| Activation decisions | Bootstrap-ready | Activation decisions can be evaluated from AgentPod + PolicyAdmission + AgentRegistryGrant + receipts. | |
| 16 | +| CLI | Bootstrap-ready | Shell bootstrap CLI delegates render and activation evaluation to Python package CLI. | |
| 17 | +| Homebrew install | Bootstrap-ready, not fully self-contained | Formula installs package source and examples; Python render dependencies remain documented external deps. | |
| 18 | +| CI visibility | Blocked | Workflow/status queries through the connector return no runs/statuses. Tracked in Issue #2. | |
| 19 | +| Runtime activation | Not implemented | No provider is started; activation evaluation remains a decision artifact only. | |
| 20 | +| Production readiness | Blocked by design | Release gate remains open in Issue #3. | |
| 21 | + |
| 22 | +## What works structurally |
| 23 | + |
| 24 | +The current bootstrap chain is: |
| 25 | + |
| 26 | +```text |
| 27 | +AgentPod JSON |
| 28 | + -> AgentPodDeploymentPlan |
| 29 | + -> DeploymentReceipt |
| 30 | + -> Quadlet / Kubernetes render comparison |
| 31 | + -> StorageReceipt validation |
| 32 | + -> PolicyAdmission semantic validation |
| 33 | + -> AgentRegistryGrant semantic validation |
| 34 | + -> AgentPlaneRuntimeEvidence validation |
| 35 | + -> ActivationDecision evaluation |
| 36 | +``` |
| 37 | + |
| 38 | +The operator path is documented in: |
| 39 | + |
| 40 | +```text |
| 41 | +docs/quickstart.md |
| 42 | +``` |
| 43 | + |
| 44 | +The release gate is documented in: |
| 45 | + |
| 46 | +```text |
| 47 | +docs/architecture/world-class-release-gate.md |
| 48 | +``` |
| 49 | + |
| 50 | +## Canonical validation command |
| 51 | + |
| 52 | +```bash |
| 53 | +make validate |
| 54 | +``` |
| 55 | + |
| 56 | +Current validation stages: |
| 57 | + |
| 58 | +```text |
| 59 | +validate-json |
| 60 | +validate-yaml |
| 61 | +validate-quadlet |
| 62 | +validate-render |
| 63 | +validate-evidence |
| 64 | +validate-governance |
| 65 | +validate-activation |
| 66 | +validate-package |
| 67 | +validate-cli |
| 68 | +validate-formula |
| 69 | +``` |
| 70 | + |
| 71 | +## Current CLI surfaces |
| 72 | + |
| 73 | +Safe bootstrap commands: |
| 74 | + |
| 75 | +```bash |
| 76 | +agent-machine version |
| 77 | +agent-machine paths |
| 78 | +agent-machine doctor --format json |
| 79 | +agent-machine probe --format json |
| 80 | +``` |
| 81 | + |
| 82 | +Render/evidence-planning commands: |
| 83 | + |
| 84 | +```bash |
| 85 | +agent-machine render plan examples/local-podman-llama-cpp.agent-pod.json --pretty |
| 86 | +agent-machine render receipt examples/local-podman-llama-cpp.agent-pod.json --pretty |
| 87 | +agent-machine render quadlet examples/local-podman-llama-cpp.agent-pod.json --compare deploy/quadlet/agent-machine-llama-cpp.container |
| 88 | +agent-machine render k8s examples/k8s-topolvm.agent-pod.json --compare deploy/k8s/llama-cpp-topolvm-pod.yaml |
| 89 | +``` |
| 90 | + |
| 91 | +Activation evaluation command: |
| 92 | + |
| 93 | +```bash |
| 94 | +agent-machine activate evaluate \ |
| 95 | + examples/local-podman-llama-cpp.agent-pod.json \ |
| 96 | + examples/policy-admission.allowed-activation.json \ |
| 97 | + examples/agent-registry-grant.active-activation.json \ |
| 98 | + --deployment-receipt-id urn:srcos:agent-machine:deployment-receipt:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa \ |
| 99 | + --storage-receipt-dir examples \ |
| 100 | + --decided-at 2026-05-04T12:51:00Z \ |
| 101 | + --decision-id urn:srcos:agent-machine:activation-decision:local-llama-cpp-allowed \ |
| 102 | + --pretty |
| 103 | +``` |
| 104 | + |
| 105 | +## Bootstrap MVP definition |
| 106 | + |
| 107 | +The bootstrap MVP is considered structurally complete when all of the following are true: |
| 108 | + |
| 109 | +1. `make validate` passes in a real runner. |
| 110 | +2. GitHub Actions visibility is confirmed or explicitly explained. |
| 111 | +3. Homebrew direct formula installs the bootstrap CLI, package source, docs, contracts, and examples. |
| 112 | +4. `agent-machine doctor --format json` and `agent-machine probe --format json` run without render dependencies. |
| 113 | +5. Render commands fail with clear dependency remediation if `jsonschema`/`PyYAML` are absent. |
| 114 | +6. Render commands work when dependencies are present. |
| 115 | +7. Activation evaluation produces both fail-closed and allowed decision examples deterministically. |
| 116 | +8. The quickstart exercises the path without runtime mutation. |
| 117 | +9. The release gate explicitly marks production blockers. |
| 118 | + |
| 119 | +## Current blockers to bootstrap MVP completion |
| 120 | + |
| 121 | +### 1. CI visibility |
| 122 | + |
| 123 | +The repository has `.github/workflows/validate.yml`, but connector checks repeatedly return no visible workflow runs or statuses for recent commits. |
| 124 | + |
| 125 | +Tracked by: |
| 126 | + |
| 127 | +```text |
| 128 | +Issue #2: Verify GitHub Actions visibility for Agent Machine validation workflow |
| 129 | +``` |
| 130 | + |
| 131 | +### 2. Real execution proof |
| 132 | + |
| 133 | +The repo has validation commands and CI configuration, but this connector path does not prove the workflow ran. A real local or GitHub Actions execution of `make validate` is still required. |
| 134 | + |
| 135 | +### 3. Dependency packaging policy |
| 136 | + |
| 137 | +Homebrew currently documents Python render dependencies rather than packaging them as Homebrew resources. This is acceptable for bootstrap, but not release-candidate. |
| 138 | + |
| 139 | +Tracked by: |
| 140 | + |
| 141 | +```text |
| 142 | +docs/architecture/homebrew-python-dependencies.md |
| 143 | +``` |
| 144 | + |
| 145 | +## Production blockers |
| 146 | + |
| 147 | +Agent Machine is not production-ready until these release-blocking gaps are closed: |
| 148 | + |
| 149 | +- visible green CI run; |
| 150 | +- image digest pinning and provenance gate; |
| 151 | +- real Policy Fabric admission client or endpoint; |
| 152 | +- real Agent Registry grant resolver; |
| 153 | +- real AgentPlane evidence submission/staging client; |
| 154 | +- local LVM provisioning/probe implementation; |
| 155 | +- TopoLVM runtime integration beyond skeleton manifests; |
| 156 | +- provider discovery and activation implementation; |
| 157 | +- M2 Asahi host measurement and provider readiness data; |
| 158 | +- release evidence bundle with signed/provenance artifacts; |
| 159 | +- rollback, teardown, and wipe workflows. |
| 160 | + |
| 161 | +## Risk posture |
| 162 | + |
| 163 | +Current bootstrap risk is acceptable for dry-run/operator evaluation because: |
| 164 | + |
| 165 | +- activation is evaluated, not executed; |
| 166 | +- render artifacts are explicitly not authorization; |
| 167 | +- missing policy or grants fail closed; |
| 168 | +- unsafe storage receipts fail closed; |
| 169 | +- runtime directories are not automatically created; |
| 170 | +- no model provider is started; |
| 171 | +- no raw prompts, KV cache, secrets, or private memory are emitted in receipts. |
| 172 | + |
| 173 | +Production risk remains unacceptable until live policy, registry, evidence, provenance, and runtime controls are implemented. |
| 174 | + |
| 175 | +## Recommended next implementation sequence |
| 176 | + |
| 177 | +1. Confirm `make validate` in a real runner. |
| 178 | +2. Resolve GitHub Actions visibility. |
| 179 | +3. Add image digest pinning/provenance schema fields and strict renderer mode. |
| 180 | +4. Add Policy Fabric client/stub module. |
| 181 | +5. Add Agent Registry client/stub module. |
| 182 | +6. Add AgentPlane evidence staging/submission module. |
| 183 | +7. Add local LVM probe/planning commands. |
| 184 | +8. Add provider discovery commands. |
| 185 | +9. Add controlled provider activation behind ActivationDecision. |
| 186 | +10. Add release evidence bundle generation. |
0 commit comments