Skip to content

Licence campaign follow-through: stop the MPL-normalise sweeper re-clobbering AGPL exceptions + estate hygiene #506

Description

@hyperpolymath

Summary

The AGPL-clobber incident (estate MPL-normalise sweep #40 = 5e390d7) is only
half-fixed. We fixed the detection side — the governance body classifier now
recognises AGPL (PR #501, merged) — but the prevention side is untouched: the
normalise sweeper that did the clobbering still has no AGPL exception list, so the
next run will re-flatten the co-developed games back to MPL-2.0.

This issue tracks closing the loop and the residual licence hygiene the campaign surfaced.

Prevention (root cause — the actual "stop it happening again")

  • Locate the MPL-normalise sweeper tooling (the thing that produced sweep ci(antipattern): TS check reads .claude/CLAUDE.md exemption table #40 /
    commit 5e390d7).
  • Teach it a canonical AGPL exception allowlist: airborne-submarine-squadron,
    the-nash-equilibrium (both co-developed games), plus any repo carrying a
    [CRITICAL] agpl-license invariant. The sweeper must skip these, not flatten them.
  • Publish the allowlist as data (single source of truth) so the sweeper, the
    governance check, and humans all read the same list.

Per the estate CI/CD doctrine, prevention must be foundational, not a per-repo patch.
If the sweeper tooling lives somewhere unreachable, this is a STOP-and-chat item —
flagged here for that conversation.

Detection (done, recorded for the trail)

Residual licence hygiene (campaign remainder)

  • the-nash-equilibrium: full AGPL restoration (tracked in its own repo issue).
  • coq-jr: dangling LICENSE-AGPL / LICENSE-PMPL doc links + garbled
    "v3.0 or later (MPL-2.0)" text.
  • academic-workflow-suite: stale "Why AGPL?" heading over a now-MPL repo.
  • boj-server: stray AGPL manifest string.
  • 44 repos with no root LICENSE at all — a distinct CI/CD gap; the governance
    check errors on absence. Audit + backfill (MPL-2.0 default, AGPL for the allowlist).

References

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions