diff --git a/docs/remediation/TASKS.md b/docs/remediation/TASKS.md index 6d737813..305e3eba 100644 --- a/docs/remediation/TASKS.md +++ b/docs/remediation/TASKS.md @@ -93,6 +93,33 @@ and must not be cited as merge evidence. Rely on reviewer clearance + real CI. Three independent live instances in a single session — format gate, agent context reset, queue guard — is the class confirmed, not anecdote. +### D-21 — a service step reports FAIL under an overall-success pipeline (normalised red) + +Observed on pipelines **#2170** and **#2175** (not on #2158, #2167, or the manual #2171): the +`ci-postgres` **service** step reports **FAIL** (`pods "wp-svc-…-ci-postgres" not found`) while the +pipeline's overall status is **success** and all eight functional steps are `OK`. + +Most likely mechanism: the service pod is reachable during the run and has been reaped by the time its +terminal state is collected. Supporting evidence that the database really was available — the `test` +step runs `pnpm --filter @mosaicstack/db run db:migrate` behind a `pg_isready` loop written to fail fast +if Postgres never comes up, and that step passed. + +**Severity is low; the pattern is not.** A red that is _routinely_ present and _routinely_ correct to +ignore trains every operator and every agent to discount reds — and the discounting generalises to reds +that matter. This mission already has six instances of a green that meant nothing (D-5, D-6, D-10); +**a FAIL that means nothing is the same defect with the sign flipped.** Both erode the signal that gates +exist to carry. + +Not chased further because it is CI-infrastructure behaviour rather than repository code, and both +merges it touched had every functional step green with the overall status successful. **Recorded rather +than normalised**, which is the whole point: the first time this is waved through without a note is the +moment it becomes background noise. + +**Requirement on RM-55 (conformance harness):** treat a non-terminal-success sub-step under an +overall-success pipeline as a **reportable anomaly**, not a cosmetic artifact — and make the CI contract +state explicitly which steps are permitted to fail without failing the pipeline. An implicit allowance +is indistinguishable from a bug. + ### D-20 — the orchestrator's own documentation overclaimed, and a reviewer disproved it empirically `rev-974` blocked PR #1027 a second time. **The defect was not in the code — it was in this file**, at