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
chore(dispatch): refuse auto licence/SPDX fixes (neurophone#99 closeout) (#247)
## Summary
- **Refusal gate** in `scripts/dispatch-runner.sh` `execute_entry()`:
any dispatch whose `recipe_id` or `category` matches
`{license,spdx,pmpl,mpl-2,agpl,palimpsest}` is refused before any fix
script can run. Records outcome `refused_license_policy`.
- **Refusal banner** in `scripts/fix-license-hygiene.sh`,
`scripts/fix-license-file.sh`, `scripts/fix-missing-spdx.sh`: prepend
`exit 1` so any direct invocation also refuses.
## Why
Owner directive 2026-06-02 forbids automated licence/SPDX edits.
Triggered by
[neurophone#99](hyperpolymath/neurophone#99) —
an auto-generated PR by the Claude bot reverting PMPL-1.0-or-later →
MPL-2.0 across ~140 files, closed by the owner. The underlying pipeline
kept being able to fire because the dispatcher had no licence-category
early-exit and the fix scripts had no self-refusal.
Five-way classification (verbatim owner directive):
> "mpl-2.0 is for my sole repos, all rights reserved is for 007,
agpl-3.0-or-later is for those shared with my son, and leave other
people's forked stuff alone … only palimpsest license for obvious
reasons should be talking about palipsest and palimpsest plasma, and
consent-aware-http, but in that case prospectively"
## Test plan
- [ ] Smoke-test `dispatch-runner.sh --dry-run` against a synthetic
manifest entry with `category: LicenseCompliance` — should print
`REFUSED` and not call any fix script.
- [ ] Direct invocation `./scripts/fix-license-file.sh /tmp/repo
/tmp/finding.json` exits 1 with the refusal banner.
- [ ] Direct invocation `./scripts/fix-license-hygiene.sh
/tmp/finding.json` exits 1 with the refusal banner.
- [ ] Direct invocation `./scripts/fix-missing-spdx.sh /tmp/repo
/tmp/finding.json` exits 1 with the refusal banner.
Related: hyperpolymath/hypatia rules/license-no-auto-fix,
hyperpolymath/standards docs/license-no-auto-policy.
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
0 commit comments