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:
mos-dt-0
2026-08-01 09:47:33 -05:00
co-authored by Claude Opus 5
parent 553474e4c8
commit b413bf9f88
2 changed files with 45 additions and 11 deletions
+11 -11
View File
@@ -16,21 +16,21 @@
## In-flight
| Task | Owner | State |
| ------------------- | ------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- |
| RM-01 checkout | — | **MERGED** `f58b3699` (#1027) |
| RM-03 queue guard | **Jason** | **GO** @ `78ec47cd` (cmt 20392) — HELD FOR OWNER MERGE. Head unmoved; GO commit-bound, VOID if it moves — **do not push #1032** |
| RM-02 registry ★key | — | **BLOCKED on RM-61.** Complete @ `f9746b23`, head FROZEN, 2 live REQUEST_CHANGES. `ci-postgres` FAIL on #2187 **and** #2188 |
| RM-61 CI exemption | **MOS** | **GATE-READY @ `57cae04f`**review **70 APPROVED**, CI **#2194 9/9** incl `clone`, TS1TS12 all PASS. **Mos assigns the gate + merges.** Head FROZEN |
| RM-59 / RM-60 | Jason (infra) | tracked deps; RM-60 option **B** |
| #1023 queue attempt | Jason | SUPERSEDED-PENDING-JASON — live REQUEST_CHANGES, do **not** merge |
| Task | Owner | State |
| ------------------- | ------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| RM-01 checkout | — | **MERGED** `f58b3699` (#1027) |
| RM-03 queue guard | **Jason** | **GO** @ `78ec47cd` (cmt 20392) — HELD FOR OWNER MERGE. Head unmoved; GO commit-bound, VOID if it moves — **do not push #1032** |
| RM-02 registry ★key | — | **BLOCKED on RM-61.** Complete @ `f9746b23`, head FROZEN, 2 live REQUEST_CHANGES. `ci-postgres` FAIL on #2187 **and** #2188 |
| RM-61 CI exemption | **MOS** | **NO-GO cleared @ `57cae04f`**gate flagged missing `Closes`; delivery issue **#1034** filed + linked, head NEVER moved, review 70 still CURRENT. **Re-gate requested** |
| RM-59 / RM-60 | Jason (infra) | tracked deps; RM-60 option **B** |
| #1023 queue attempt | Jason | SUPERSEDED-PENDING-JASON — live REQUEST_CHANGES, do **not** merge |
### For the incoming orchestrator — read this before acting
1. **Nothing is waiting on you that is urgent.** RM-03 waits on Jason; RM-61 is gate-ready and waits on
Mos; RM-02 unblocks once RM-61 merges. Read the record before touching any lane.
2. **`docs/remediation/TASKS.md` is authoritative**, not the newest voice in a chat. It holds 41 findings
(D-1…D-6 in `BOARD-LEDGER.md`, D-7…D-41 in TASKS.md), every ruling with its rationale, and the
2. **`docs/remediation/TASKS.md` is authoritative**, not the newest voice in a chat. It holds 42 findings
(D-1…D-6 in `BOARD-LEDGER.md`, D-7…D-41 + D-38c in TASKS.md), every ruling with its rationale, and the
requirements each finding placed on RM-02/RM-34/RM-50/RM-55.
3. **`MISSION.md` carries five first-class principles**, all earned by live failures — observe the
property not the proxy · pre-registration prevents retrofitting and nothing else · never ship an
@@ -91,7 +91,7 @@ board is one of the six stale restatements below.
## Decisions log — full record in [`TASKS.md`](./TASKS.md)
All 41 findings (D-1…D-6 in `BOARD-LEDGER.md`, D-7…D-41 in `TASKS.md`) and every ruling with its
All 42 findings (D-1…D-6 in `BOARD-LEDGER.md`, D-7…D-41 + D-38c in `TASKS.md`) and every ruling with its
rationale live there. **Not duplicated here** — a second copy is a second thing to go stale, which this
board had done three times in one night (gate list, capability registry, DECISION-1 status), and three
more times by the next rotation seam (RM-61 "building", "nothing implemented yet", DECISION-1/2/3
+34
View File
@@ -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.**