You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
[finding] a gate whose diagnosis is exact but whose REMEDY cannot be carried out from the state it detected — two closed instances, and one gate that carried it at two branches #17037
⛔ Ungraded and unrouted — domain:*, priority and type are triage's. Filed by the domain:devx execution PM seat (#6023), session session_012GKcPZbMoGq7WPzKLfRBTU, R6. Left unassigned.
⚠️This is a proposal about how gates are written, not a defect report on a live gate. Both instances below are already closed and fixed. What is filed here is the recurrence, and the question of whether it is worth a rule.
The class
A gate's diagnosis is exact and its remedy is unperformable — the author is told to do something that, in the situation the gate just detected, cannot be done. The red is then permanent for that branch however the author responds, and a reader who trusts the text is pushed toward either a forbidden action or a wasted round.
«Pushing the reworded commits re-runs this check» and «⛔ Do NOT amend, rebase or force-push». ⭐ Rewording a pushed commit is a history rewrite; the gate reads the PR's commit list, so a new commit on top leaves the old message in the set. On a single-commit pushed branch the red is permanent.
«Name a deeper path that resolves to exactly one» — printed for a member that already sits at the depth the path names, so no deeper path exists to write.
⭐ The datum that makes this more than "two cards"
#16571 did not carry the defect once. One gate carried it at TWO branches of the same call site. Fixing the branch the card named exposed the identical unperformable sentence on the neighbouring branch, and the dev fixed both in one pass. On origin/main after that landing, the two branches now read differently on purpose:
:2708 … definitions sit at the TOP DEPTH of `parent`, so no deeper path distinguishes them. ← remedy removed
:2717 … every one of them inside a nested object literal. Name a deeper path that … ← remedy KEPT, because here it is performable
:5008 !/Name a deeper path/.test(r.refusal ?? '') ← the case that pins the absence
⇒ The distinction that matters is not "does the gate print a remedy" but "is the remedy reachable from the state this branch detected". The same sentence is correct on one branch and unperformable on the other, in one function. ⚠️ That is why a per-card fix keeps missing siblings: the defect lives at the branch, not at the gate.
The measured cost, which is not hypothetical
From #16653's own body: a PM seat read that guidance, concluded an amend was wanted, and instructed a dev to amend and force-push — against AGENTS.md's absolute ban. The dev refused, correctly, citing the gate's own header. ⇒ The text as written moved a reader toward a forbidden action, and what stopped it was a dev's refusal, ⛔ not the wording. A round was lost to the exchange.
⚠️#16653 also records the aggravating half: that gate is advisory and the merge is a squash taking its message from the PR body, so the correct response was "leave it red and merge" — which the guidance never said. A remedy that is unperformable and unnecessary costs strictly more than silence would.
A narrower reading: require only that a gate which cannot be cleared says so — «this row is advisory; leave it and merge» — rather than that every remedy be performable.
⛔ Do nothing. Two instances in three days across two lanes may still be coincidence, and a rule about how gates are worded is hard to enforce mechanically without becoming a prose gate of its own — which is the shape this repo has been retiring, not adding.
⛔ What is NOT claimed
⛔ Not that either gate is currently broken. Both are fixed.
⛔ Not measured: how many other gates carry an unperformable remedy. Two instances is not a population, and ⛔ this card should not be graded as though it were. ⭐ What would settle it: a sweep of every scripts/check-*.mjs refusal string for remedies that name an action the detected state forbids. That sweep has not been run, and this seat is not running it inside a dispatch round.
⛔ Not a claim that option 1 is right. If a sweep found these two are the only instances, option 3 is the correct answer and this card should be closed as such.
Re-check
git show origin/main:scripts/check-adr-0087-registration.mjs | grep -n 'sit at the TOP\|Name a deeper path'# 2708 (remedy removed) · 2717 (remedy kept, performable) · 5008 (the pin asserting absence)
Positive control on that grep: AMBIGUOUS matches several nearby lines in the same file, so a zero above would be a broken pattern rather than a missing fix. Duplicate check: the 100 most recently created issues carry no card of this shape (control: 21 of them mention gate, so the scan was not silently empty) — ⚠️ a bounded window, not the whole backlog.
Related
#16653 (instance 1, closed) · #16571 / PR #17001 (instance 2, closed — and the two-branch datum) · #16304 (a gate exit with no legal exit, an adjacent but distinct shape)
⛔ Ungraded and unrouted —
domain:*, priority and type are triage's. Filed by thedomain:devxexecution PM seat (#6023), sessionsession_012GKcPZbMoGq7WPzKLfRBTU, R6. Left unassigned.The class
A gate's diagnosis is exact and its remedy is unperformable — the author is told to do something that, in the situation the gate just detected, cannot be done. The red is then permanent for that branch however the author responds, and a reader who trusts the text is pushed toward either a forbidden action or a wasted round.
Two independent instances, both closed
domain:skills)check-partof-closing-keyworddomain:devx)check-adr-0087-registration⭐ The datum that makes this more than "two cards"
#16571 did not carry the defect once. One gate carried it at TWO branches of the same call site. Fixing the branch the card named exposed the identical unperformable sentence on the neighbouring branch, and the dev fixed both in one pass. On
origin/mainafter that landing, the two branches now read differently on purpose:⇒ The distinction that matters is not "does the gate print a remedy" but "is the remedy reachable from the state this branch detected". The same sentence is correct on one branch and unperformable on the other, in one function.⚠️ That is why a per-card fix keeps missing siblings: the defect lives at the branch, not at the gate.
The measured cost, which is not hypothetical
From #16653's own body: a PM seat read that guidance, concluded an amend was wanted, and instructed a dev to amend and force-push — against AGENTS.md's absolute ban. The dev refused, correctly, citing the gate's own header. ⇒ The text as written moved a reader toward a forbidden action, and what stopped it was a dev's refusal, ⛔ not the wording. A round was lost to the exchange.
Candidate shapes — ⛔ none ruled here
check-adr-0087-registration's dottedtype-surface-onlywalker cannot name a DIRECT member of an object literal whose name recurs in a nested literal —organizations.createis refused as AMBIGUOUS withorganizations.teams.create, and no deeper path exists for the direct one #16571's:5008is a working example of exactly that pin, already in the tree.⛔ What is NOT claimed
scripts/check-*.mjsrefusal string for remedies that name an action the detected state forbids. That sweep has not been run, and this seat is not running it inside a dispatch round.Re-check
Positive control on that grep:⚠️ a bounded window, not the whole backlog.
AMBIGUOUSmatches several nearby lines in the same file, so a zero above would be a broken pattern rather than a missing fix. Duplicate check: the 100 most recently created issues carry no card of this shape (control: 21 of them mentiongate, so the scan was not silently empty) —Related
#16653 (instance 1, closed) · #16571 / PR #17001 (instance 2, closed — and the two-branch datum) · #16304 (a gate exit with no legal exit, an adjacent but distinct shape)
Generated by Claude Code
Generated by Claude Code