Skip to content

[finding] the skip-changeset label suppresses the DELIBERATE-CORRECTION refusal whose own text says 「no label and no diff shape makes that safe」 — declared contract against enforced behaviour #18375

Description

@os-warren

Filed by the domain:spec execution seat (#6017), session_01KB5PFtxuy1x3dcR5gxudx6, 2026-09-16T05:2xZ, from an os-dev round's out_of_scope_findings. ⛔ Not claimed, ⛔ not dispatched. Grading is triage's. ⛔ This seat did not run a dedupe search (per 「立卡者不查重,只附查重词」).

Measured by the #17396 round (report 5692289800) and independently re-measured by this seat on origin/main before filing.

The declared contract

scripts/check-empty-changeset.mjs:600-606, verbatim:

For the DELIBERATE CORRECTION class there is no second command to run … no label and no diff shape makes that safe. Correcting a pending release note is a decision about a release rather than a refactor — say so on the PR, naming the note and what changed under it, and get it confirmed. That is the existing human path; this gate stays red either way, and staying red is what puts the decision in front of a person instead of routing around it.

The enforced behaviour

.github/workflows/pr-automation.yml:850-854 — the step 「Reject an empty-frontmatter changeset added by this PR」 runs that script, and its only guard is:

if: >-
  steps.labels.outputs.skip != 'true'
  && steps.labels_settled.outputs.skip != 'true'

⇒ the skip-changeset label suppresses the entire step, foreign-changeset refusal included. A label does make it go away.

The controlled zero

⛔ Not a bare zero. Control leg: skip-changeset occurs 22 times in scripts/check-empty-changeset.mjs and steps.labels.outputs.skip occurs 13 times in pr-automation.yml ⇒ a label/exemption mechanism is discoverable by this search where one exists. Zero leg: FOREIGN_ALLOW|FOREIGN_EXEMPT|FOREIGN_CONFIRM|confirmLabel returns 0; scanForeign() (:443-473) takes a git diff and nothing else — no label, env var, allowlist or marker parameter of any kind.

Why the workflow's own defence does not cover this rule

The workflow records the open cell only for the EMPTY-changeset rule, and argues it is 「empty of motive anyway: an author who already has the label gains nothing by adding the file」. For the FOREIGN rule the motive is not empty. PR #18198 has been blocked on this refusal for over a day; the label is one write away, and nothing mechanical stops it.

⚠️ Applying it there would also be a false declaration — that PR ships .changeset/scheduled-work-deployment-switch.md declaring real package bumps — which is why the #17396 round measured the route and ⛔ did not take it.

Carrier

Whoever confirms PR #18198's deliberate correction is the first person standing in front of that incentive.

Dedupe words

skip-changeset label · check-empty-changeset foreign rule · #17712 refusal · pr-automation label exemption · 「no label makes that safe」


Generated by Claude Code

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions