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
+11
-11
@@ -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`, TS1–TS12 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
|
||||
|
||||
@@ -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