I0915 — Deployment joins the diagnostics that already exist
Add the deployment checks to the health and doctor architecture the repository already has, so that the answer to whether a deployment can succeed comes from the same diagnostic surface as every other verdict.
BLOCKED wave 5 · p0 · implementation profile · parallel safe
Blocked. This issue cannot start until I0914 is done. The status is derived from that, not declared.
Objective
Add the deployment checks to the health and doctor architecture the repository already has, so that the answer to whether a deployment can succeed comes from the same diagnostic surface as every other verdict.
Why
A second doctor framework is the defect this repository names explicitly. The existing health module already delegates each check to the engine that decides it; deployment checks belong there for the same reason.
Current state
system.health aggregates index diagnostics, benchmark coverage and projection staleness. No check knows anything about a deployment.
Desired state
The deployment checks are readable as machine-readable output and as human output, they mutate nothing, and each one delegates to the engine that already decides it.
Scope
- apps/majordomus-cli/src/deploy/doctor.rs
Out of scope
- A new diagnostics framework
- Any check that mutates the provider, the repository or the working tree
Dependencies
What waits on this
Acceptance criteria
- The checks cover the canonical object's validity, projection freshness, toolchain and tool availability, credential validity, application resolution, configuration validity, container build and non-root execution, port and health and readiness responses, absence of secret material and of local paths, size and memory budgets, machine count and resource sizing against the declared profile, and the deployed revision against the expected one
- Every check states what it observed, what it expected and the command that repairs it
- The output is available in both machine-readable and human-readable form, following the existing conventions
- Every check is read-only and safe to run against production
- No check duplicates a verdict another engine already produces
Validation
- majordomus deploy doctor
- cargo test --workspace --all-features
Evidence required
- doctor_checks
- machine_readable
- read_only
Evidence
None recorded. Every token above needs a command or an artifact behind it before this issue can be completed; narrative is refused.
Risk
Checks that need the provider's network will make the local doctor slow and flaky. Local checks and remote checks have to be separable so that the fast ones stay usable in a hook.
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/I0915.yaml. Read it back with majordomus plan show I0915.