Filed by the domain:devx @ objectui execution seat (#5748), PM session session_012CZgmFFzqA9cX8tBMhvpFe, R30. Found while reviewing PR #6315 (card #6245), where the same gap was measured on performance-budget.yml and is being closed there. This card is the other instance; ⛔ it is deliberately not being fixed as a rider on that PR.
Measured on origin/main @ 090927f4f
29 workflow files; 7 carry a paths: filter. For each, does the filter include the workflow's own path?
| workflow | self-included |
|---|
half-state-patrol.yml | ✅ |
hook-selftests.yml | ✅ |
node-esm-load-gate.yml | ✅ |
published-dist-gate.yml | ✅ |
spec-range-floors.yml | ✅ |
changeset-guard.yml | ❌ this card |
performance-budget.yml | ❌ closing in PR #6315 |
5 of 7 self-include. That makes self-inclusion the repo's convention for a path-filtered gate, and changeset-guard.yml an exception to it rather than a considered choice — though it may turn out to be one, which is why this is a finding and not a queued fix.
Why it is worth recording
A path-filtered gate that omits its own path cannot be exercised by the pull request that changes it. The edit lands on main unrun, and the first execution happens on someone else's PR — one that touched the gate's watched paths and has nothing to do with the change. If the edit was wrong, that PR sees a red required context on a diff that did not cause it.
⚠️ The failure lands on a third party, and it lands looking like their problem. That is what makes it worth closing even though nothing is broken today.
Measured live on PR #6315: it changes performance-budget.yml and its check list has 25 checks with Bundle Analysis absent — the gate's own change, invisible to the gate.
What this card is not
⛔ Not a claim that changeset-guard.yml's current filter is wrong. Its watched paths may be deliberate, and a changeset guard is cheap enough that the reasoning could differ from the bundle gate's. What the card asserts is narrower and measured: it is one of two exceptions to a 5-of-7 convention, and nobody has recorded why.
Whoever picks it up should check whether the omission is intentional (say so in the file if it is) or an oversight (add the path, and confirm the gate then runs on its own PR).
The 22 workflows with no paths: filter at all are out of scope — they run on everything, so the gap cannot arise.
Related: #6245 / PR #6315 (the instance being closed, with the same measurement).
Filed by the
domain:devx@ objectui execution seat (#5748), PM sessionsession_012CZgmFFzqA9cX8tBMhvpFe, R30. Found while reviewing PR #6315 (card #6245), where the same gap was measured onperformance-budget.ymland is being closed there. This card is the other instance; ⛔ it is deliberately not being fixed as a rider on that PR.Measured on
origin/main@090927f4f29 workflow files; 7 carry a
paths:filter. For each, does the filter include the workflow's own path?half-state-patrol.ymlhook-selftests.ymlnode-esm-load-gate.ymlpublished-dist-gate.ymlspec-range-floors.ymlchangeset-guard.ymlperformance-budget.yml5 of 7 self-include. That makes self-inclusion the repo's convention for a path-filtered gate, and
changeset-guard.ymlan exception to it rather than a considered choice — though it may turn out to be one, which is why this is a finding and not a queued fix.Why it is worth recording
A path-filtered gate that omits its own path cannot be exercised by the pull request that changes it. The edit lands on
mainunrun, and the first execution happens on someone else's PR — one that touched the gate's watched paths and has nothing to do with the change. If the edit was wrong, that PR sees a red required context on a diff that did not cause it.Measured live on PR #6315: it changes
performance-budget.ymland its check list has 25 checks withBundle Analysisabsent — the gate's own change, invisible to the gate.What this card is not
⛔ Not a claim that
changeset-guard.yml's current filter is wrong. Its watched paths may be deliberate, and a changeset guard is cheap enough that the reasoning could differ from the bundle gate's. What the card asserts is narrower and measured: it is one of two exceptions to a 5-of-7 convention, and nobody has recorded why.Whoever picks it up should check whether the omission is intentional (say so in the file if it is) or an oversight (add the path, and confirm the gate then runs on its own PR).
The 22 workflows with no
paths:filter at all are out of scope — they run on everything, so the gap cannot arise.Related: #6245 / PR #6315 (the instance being closed, with the same measurement).