forked from mosaicstack/stack
docs(remediation): bank D-21 — a FAIL that means nothing is a green that means nothing, sign-flipped
ci-postgres reports FAIL under an overall-success pipeline on #2170 and #2175 while all eight functional steps pass. Most likely a service-pod teardown artifact; the test step's pg_isready fail-fast guard passed, so the database was available during the run. Low severity, but the pattern matters: a red that is routinely present and routinely correct to ignore trains operators and agents to discount reds, and the discounting generalises. Six instances of a meaningless green are already banked; a meaningless FAIL is the same erosion with the sign flipped. Recorded rather than normalised — the first time it is waved through without a note is when it becomes background noise. RM-55: treat a non-terminal-success sub-step under an overall-success pipeline as a reportable anomaly, and make the CI contract state which steps may fail without failing the pipeline. An implicit allowance is indistinguishable from a bug. Co-Authored-By: Claude Opus 5 (1M context) <[email protected]>
This commit is contained in:
co-authored by
Claude Opus 5
parent
8a795df0ce
commit
e85a088f85
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user