@@ -15,6 +15,18 @@ independent backup mount/device: hmmm
1515human SSH/OS Login recovery path: hmmm
1616```
1717
18+ ## Bounded agent contact
19+
20+ Before replacing repeated human SSH with model-side operations, establish the separate
21+ read-only ` vm-mcp ` contact described in [ ` VM_CONTACT.md ` ] ( VM_CONTACT.md ) . The runtime
22+ comes from an exact canonical ` The-Interdependency/skill-lib ` commit and must not take
23+ ownership of ` /srv/stack ` , expose a public listener, inherit SSH keys, or start with a
24+ writable shell.
25+
26+ Initial contact is observation-only. Keep human SSH/OS Login/IAP as bootstrap and
27+ break-glass access. A later write surface must be a named, reviewed stack operation,
28+ not a generic privileged shell.
29+
1830## Intended privilege boundary
1931
2032``` text
@@ -156,6 +168,8 @@ systemctl list-timers stack-orchestrator-backup.timer
156168Deployment is not complete until all of these are observed on the VM:
157169
158170``` text
171+ [ ] human bootstrap/recovery path remains available
172+ [ ] read-only vm-mcp contact is loopback/private-tunnel only, non-root, shell disabled
159173[ ] PostgreSQL version/state and local auth boundary observed
160174[ ] stackctl db migrate succeeds
161175[ ] worker runs as non-root stackorchestrator
@@ -170,12 +184,12 @@ Deployment is not complete until all of these are observed on the VM:
170184[ ] backup creates validated local + independent copies
171185[ ] backup mirror is a distinct mounted filesystem/device
172186[ ] restore drill succeeds against disposable database
173- [ ] human bootstrap/recovery path remains available
174187```
175188
176189## hmmm
177190
178191The concrete VM distribution, PostgreSQL installation/auth state, storage mount, service
179192account state, and end-to-end deployment results remain unobserved here. PostgreSQL
180193integration tests and backup/restore acceptance therefore remain live VM gates rather
181- than being represented as passed.
194+ than being represented as passed. ` VM_CONTACT.md ` defines the bounded path for turning
195+ those unknowns into observable evidence without exporting SSH credentials to the model.
0 commit comments