I0925 — Every deployment rule is a check that runs
State the durable deployment constraints as project rules in the repository's rule system, and give each one an executable check that CI runs.
BLOCKED wave 6 · p0 · deep-work profile · parallel safe
Blocked. This issue cannot start until I0915 is done. The status is derived from that, not declared.
Objective
State the durable deployment constraints as project rules in the repository's rule system, and give each one an executable check that CI runs.
Why
The repository's own rule says a rule is a doctrine with enforcement. Deployment constraints written only as prose would be advice, and advice does not survive the first hurried change to a resource envelope.
Current state
Project rules exist for benchmarkable commands, derived files, hot paths, scope declaration, shared-server resilience and more, each with a check. None concerns deployment.
Desired state
Each deployment rule exists as a rule object with a check that executes, and a violation is refused rather than reported in a document nobody reads.
Scope
- .ai/repo/rules/project
Out of scope
- A rule with no executable check
- Restating an existing rule that already covers the constraint
Dependencies
What waits on this
Acceptance criteria
- Deployment configuration originates from the canonical object, and editing a generated provider artifact by hand is refused by a check
- Generated deployment artifacts must match the canonical object, and CI fails on drift
- Secrets must not enter generated artifacts, source control, build arguments, layers, documentation or the UI, and a check enforces it
- The production runtime image must contain only runtime dependencies and must run non-root, and a check enforces both
- Deployment documentation and UI must derive from the authoritative data, and a check enforces it
- A deployment must expose and test the canonical health and readiness behaviour, and a check enforces it
- The declared cost profile must stay resource-bounded, and a change to the envelope is visible in review because a check names it
- Each rule reuses an existing rule where one already covers the constraint rather than adding a near-duplicate
Validation
- bin/majordomus doctor
- bash test/run.sh
Evidence required
- rules_authored
- checks_execute
- ci_runs_them
Evidence
None recorded. Every token above needs a command or an artifact behind it before this issue can be completed; narrative is refused.
Risk
Seven new rules is a lot of doctrine for one subsystem. Any constraint an existing rule already covers should be referenced rather than restated.
Timeline
- started
- —
- verified
- —
- completed
- —
Those three fields, the evidence above and the state of the dependencies are all the status is made of. There is no status field to disagree with them.
Canonical record: .ai/repo/project/issues/I0925.yaml. Read it back with majordomus plan show I0925.