Filed by the domain:services execution PM seat from three measured failures in one shift (2026-09-15).
The reading
| check run |
PR |
conclusion |
output.title |
output.summary |
output.text |
104248043139 |
#18252 |
failure |
null |
0 bytes |
0 bytes |
104256964001 |
#18260 |
failure |
null |
0 bytes |
0 bytes |
104257790209 |
#18261 |
failure |
null |
0 bytes |
0 bytes |
GET /repos/{o}/{r}/actions/jobs/{id}/logs also returned nothing readable on this seat's token.
Why that is a defect and not a cosmetic gap
Those three failures had two different causes, and nothing in the check run says which:
⇒ From the API the two are the same event. Diagnosing each one required LOCAL instrumentation: importing readClause2Line from scripts/pm/check-clause2-carriers.mjs and running it against the live PR body, plus listing the PR's files. ⛔ A reviewer without that habit sees only "Check Changeset ✗".
⭐ The near-miss case is the sharper one, because the remedy is invisible: the body LOOKS like it declares. Two of three PRs this shift wrote the heading form, and both authors believed they had declared. check-clause2-carriers --pair N exits 0 on both of them, correctly — it reads the CARD's claim comment and the needs:contract-review dual label carrier, and reads nothing from the PR body — so the two gates disagree by design and the disagreement reads like a contradiction until someone measures it.
What a fix would look like (⛔ not prescribed — the surface is not this seat's)
The refusal already knows its reason; the cheapest correct change is to say it. A near-miss in particular can name the offending line and the remedy ("the declaration must stand on its own line; ## Clause-②: no — … is a heading"), which is information the reader already computes and then discards.
⚠️ The gate is scripts/check-changeset-no-major.mjs, run from .github/workflows/pr-automation.yml. ⛔ This seat does not edit either surface, which is why this is a card and not a PR.
Neighbouring facts, measured this shift and worth keeping with it
Dedupe words: check-changeset-no-major empty-output near-miss Clause-② check-run
⛔ Ungraded, and ⛔ no domain: label: the surface is scripts/ + .github/workflows/, which is not this seat's to route. Grading and routing are triage's.
Generated by Claude Code
Filed by the
domain:servicesexecution PM seat from three measured failures in one shift (2026-09-15).The reading
output.titleoutput.summaryoutput.text104248043139null104256964001null104257790209nullGET /repos/{o}/{r}/actions/jobs/{id}/logsalso returned nothing readable on this seat's token.Why that is a defect and not a cosmetic gap
Those three failures had two different causes, and nothing in the check run says which:
subflowandmaproll a COMPLETED child's contained failures into the run-levelfailed(#16314) #18261 — theClause-②declaration in the PR body was written as a markdown HEADING (## Clause-②: no — …).readClause2Lineclassifies that as{"kind":"near-miss","reason":"spelling"}, distinct fromnull(absent) and fromdeclared. The gate knows it is a near-miss and says nothing.packages/**/src/**, with noskip-changesetlabel either.⇒ From the API the two are the same event. Diagnosing each one required LOCAL instrumentation: importing
readClause2Linefromscripts/pm/check-clause2-carriers.mjsand running it against the live PR body, plus listing the PR's files. ⛔ A reviewer without that habit sees only "Check Changeset ✗".⭐ The near-miss case is the sharper one, because the remedy is invisible: the body LOOKS like it declares. Two of three PRs this shift wrote the heading form, and both authors believed they had declared.
check-clause2-carriers --pair Nexits 0 on both of them, correctly — it reads the CARD's claim comment and theneeds:contract-reviewdual label carrier, and reads nothing from the PR body — so the two gates disagree by design and the disagreement reads like a contradiction until someone measures it.What a fix would look like (⛔ not prescribed — the surface is not this seat's)
The refusal already knows its reason; the cheapest correct change is to say it. A
near-missin particular can name the offending line and the remedy ("the declaration must stand on its own line;## Clause-②: no — …is a heading"), which is information the reader already computes and then discards.scripts/check-changeset-no-major.mjs, run from.github/workflows/pr-automation.yml. ⛔ This seat does not edit either surface, which is why this is a card and not a PR.Neighbouring facts, measured this shift and worth keeping with it
editedtrigger on that workflow works: a body edit alone re-fires the job and turned fix(approvals): isOverrideActor resolves TENANT-admin standing from the ADR-0095 rung, never from a position name #18252 green without any push (04:03:32Z failure → 04:10:44Z success on the SAME head783180eba). The workflow's own header already documents this as its purpose.PATCHof a PR body appends its own footer block under one already present, leaving two, while REST create does not — recorded separately as [finding] platform reading: the PR-BODY create and edit cells disagree on footer appending over the same REST channel #18254.Dedupe words:
check-changeset-no-majorempty-outputnear-missClause-②check-run⛔ Ungraded, and ⛔ no
domain:label: the surface isscripts/+.github/workflows/, which is not this seat's to route. Grading and routing are triage's.Generated by Claude Code