docs(remediation): D-38c — PR metadata failed a THIRD time on #1033; delivery-issue gap ruled
Merge-gate NO-GO with every code and CI gate verified, including the --expect-commit machine-check it
was told to exercise (9/9 JSON, exempted_steps 0, expected_commit == commit). The blocker was the body:
only "Refs #1000", no "Closes #N", and Mosaic completion requires a linked issue closed.
Third distinct metadata failure on one PR — missing commit binding, then a stale DO-NOT-MERGE body
describing a dead head, now an incomplete link. Each time the code was fine and the metadata was
unbound, stale, or incomplete. Nothing re-binds PR metadata to the head or checks it for completeness
until a gate does, and by then it costs a round trip.
The subtlety that makes it a real ruling: #1033 must NOT Closes #1000. The teardown defect stays open,
and #1000 is the exemption's own retirement trigger — auto-closing it would delete the retirement
trigger for the workaround being merged, turning a bounded exemption into a permanent one by side
effect. Hence a delivery issue distinct from the defect issue: #1034, with Closes #1034 added and
Refs #1000 kept.
Metadata-only, head never moved: verified by read-back that head is still 57cae04f, Closes #1034
present, Refs #1000 present, Closes #1000 ABSENT, review 70 still CURRENT with zero live
REQUEST_CHANGES, #1034 open. coder-mos1 stayed parked; nobody pushed.
Process gap ruled by Mos: every remediation delivery PR needs a delivery issue to Close, created at
OPEN-TIME rather than discovered at gate-time. #1032 already Closes #1019; #1033 had none.
Both provider writes went through the tea->API fallback — the same path that silently dropped #1033's
draft property at creation — so both were read back and verified by property, not by exit code.
Co-Authored-By: Claude Opus 5 (1M context) <[email protected]>
This commit is contained in:
co-authored by
Claude Opus 5
parent
553474e4c8
commit
b413bf9f88
@@ -500,6 +500,40 @@ holds the head.** `coder-mos1` was RIGHT to want it fixed and WRONG to try to se
|
||||
right again immediately after, ACKing the hold and volunteering unprompted that it held an unpushed
|
||||
local commit. That disclosure is the behaviour to reinforce.
|
||||
|
||||
### D-38c — PR metadata failed a THIRD time on the same PR, and the process gap behind it
|
||||
|
||||
The merge-gate returned **NO-GO on `#1033`** with every code and CI gate verified — including the
|
||||
machine-check Mos ordered it to exercise (`--expect-commit` at the gate: 9/9 JSON, `exempted_steps 0`,
|
||||
`expected_commit == commit`). The blocker was the body: **only `Refs #1000`, no `Closes #N`.** Mosaic
|
||||
completion requires a linked issue/task CLOSED, and the merge-gate mandate enforces it.
|
||||
|
||||
**Third distinct metadata failure on one PR:** (1) the missing commit binding, (2) the stale
|
||||
"DO NOT MERGE" body describing a dead head, (3) this. Each time the code was fine and the **metadata was
|
||||
unbound, stale, or incomplete.** PR metadata is **state**, and nothing re-binds it to the head or checks
|
||||
it for completeness until a gate does — at which point it costs a gate round trip.
|
||||
|
||||
**★ The subtlety that made this a real ruling, not a formality: `#1033` must NOT `Closes #1000`.** The
|
||||
teardown **defect stays open** — the exemption is a bounded workaround, and `#1000` is both the tracked
|
||||
provider-seam closure and the exemption's **retirement trigger**. Auto-closing it would have deleted the
|
||||
retirement trigger for the very workaround being merged, converting a bounded exemption into a permanent
|
||||
one by side effect. So a delivery issue was needed that is **not** the defect issue.
|
||||
|
||||
**Fix applied (metadata-only, head never moved):** delivery issue **#1034** created ("RM-61: CI-contract
|
||||
exemption for the #1000 ci-postgres teardown artifact, signature-scoped + discrimination-proven"),
|
||||
`Closes #1034` added to `#1033`'s body, `Refs #1000` kept. Verified by read-back: head still
|
||||
`57cae04f`, `Closes #1034` present, `Refs #1000` present, **`Closes #1000` absent**, review 70 still
|
||||
CURRENT with zero live `REQUEST_CHANGES`, `#1034` open.
|
||||
|
||||
> **★ PROCESS GAP — RULED (Mos, 2026-08-01): every remediation delivery PR needs a delivery issue to
|
||||
> `Close`, created at OPEN-TIME, not discovered at GATE-TIME.** `#1032` already `Closes #1019`; `#1033`
|
||||
> had none. Finding this at the gate costs a full re-assignment round trip for a body edit. Add to the
|
||||
> PR-open checklist alongside the pre-registered ACs.
|
||||
|
||||
**Wrapper note (D-12 recurring, watched for):** both the issue create and the body edit ran through the
|
||||
`tea` → Gitea-API **fallback** ("Tea authenticated-user validation failed"). That fallback is exactly
|
||||
what silently dropped `#1033`'s `draft` property at creation (handoff gotcha #6). Both writes were
|
||||
therefore **read back and verified by property**, not accepted on their exit codes.
|
||||
|
||||
### D-38 — a gate that certified the right RECORD for the wrong COMMIT (and the AC set that could not see it)
|
||||
|
||||
**RM-61's terminal-green verifier reported the pipeline's commit and never bound it to the PR head.**
|
||||
|
||||
Reference in New Issue
Block a user