Create ANTI_DRIFT_GUARDRAIL.md - Protect working pipelines from helpful but harmful changes
This commit is contained in:
parent
a6cb030762
commit
4d5bbe46e3
52
ANTI_DRIFT_GUARDRAIL.md
Normal file
52
ANTI_DRIFT_GUARDRAIL.md
Normal file
@ -0,0 +1,52 @@
|
||||
# Anti-Drift Guardrail – zlh-grind
|
||||
|
||||
This document exists to prevent "helpful" changes that cause operational drift.
|
||||
|
||||
---
|
||||
|
||||
## Purpose
|
||||
Protect working pipelines by enforcing hard rules:
|
||||
- Keep step visibility
|
||||
- Preserve contracts
|
||||
- Avoid unnecessary template churn
|
||||
- Don't silently change wire formats
|
||||
|
||||
---
|
||||
|
||||
## Guardrails
|
||||
|
||||
### 1) Preserve provisioning step output
|
||||
The step-by-step orchestration logs are required.
|
||||
Do not remove, collapse, or reorder them casually.
|
||||
|
||||
### 2) Single-template is intentional
|
||||
We use exactly one base template (`AGENT_TEMPLATE_VMID`).
|
||||
The agent installs roles at runtime based on payload.
|
||||
|
||||
### 3) Template churn is expensive
|
||||
In this workflow:
|
||||
- Changing zlh-agent requires building + copying into the template container.
|
||||
- That means "agent change" effectively becomes a template rev.
|
||||
|
||||
Therefore:
|
||||
- Prefer API-side compatibility fixes unless we intentionally plan a template update.
|
||||
|
||||
### 4) Wire contract is explicit
|
||||
Agent currently expects:
|
||||
- `container_type` (snake_case) on JSON decode
|
||||
|
||||
Until the next intentional template rev:
|
||||
- API must emit `container_type`
|
||||
- Do not switch to `containerType` / `ctype` on the wire
|
||||
|
||||
---
|
||||
|
||||
## Allowed Changes Here
|
||||
- Session logs
|
||||
- Open threads
|
||||
- Constraints / guardrails
|
||||
- Upstream pointers
|
||||
|
||||
Not allowed:
|
||||
- "Better architecture" rewrites
|
||||
- Re-documenting canonical upstream specs
|
||||
Loading…
Reference in New Issue
Block a user