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
A 2026-05-30 estate-wide grep shows 12,223 files still carry `SPDX-License-Identifier: PMPL-1.0-or-later` (predecessor estate licence) vs 55,245 files on the target `SPDX-License-Identifier: MPL-2.0`. `MPL-1.0` is already at zero — that conversion completed.
Per estate language policy
Per [[feedback_estate_lang_policy_2026_05_25]] memory:
MPL-1.0/PMPL-1.0 → MPL-2.0
PMPL-1.0 is the predecessor estate licence; MPL-2.0 is the target.
Top hotspots by repo
Repo
PMPL-1.0 files
Notes
iser-tools
1,517
Likely all estate-authored
.claude (worktrees?)
1,310
Probably ephemeral worktree shadows
v-ecosystem
1,159
Vendored upstream V-lang — exempt
rescript-ecosystem
882
Vendored upstream ReScript — exempt
.github (workflows)
845
Mostly workflow files
asdf-augmenters
820
Estate-authored
asdf-plugin-collection
706
Estate-authored
docs (various)
495
Documentation
verification-ecosystem
453
Estate-authored
a2ml
325
Estate-authored
k9-svc
293
Estate-authored
affinescript-ecosystem
272
Estate-authored
...
...
...
Standards repo itself: 2,382 PMPL-1.0 vs 350 MPL-2.0 — the canonical-policy repo is itself ~87% on the predecessor licence.
Scope considerations
Vendored exclusions: v-ecosystem, rescript-ecosystem, hyperpolymath-archive/*, linguist, repos-monorepo — these are upstream forks and should keep their original headers per upstream-fidelity policy.
Realistic remaining scope: ~8,000 files across ~40 estate-authored repos.
Bulk-replace tractability: Mechanical sed substitution; per-PR scope = per-repo would be ~40 PRs.
Recommended approach
Phase 1 — standards itself
Convert standards' own files (2,032 estimated after carve-outs). Single large PR or 3-4 smaller PRs split by directory (workflows/, docs/, scripts/, lib/). Establishes the pattern.
Phase 2 — top-10 hotspots
Per-repo PRs for iser-tools, asdf-augmenters, asdf-plugin-collection, verification-ecosystem, a2ml, k9-svc, affinescript-ecosystem, container-stack, etc. Mechanical sed -i 's|PMPL-1.0-or-later|MPL-2.0|' plus header-only MPL-1.0 variants.
Phase 3 — long-tail
Subagent fan-out across remaining repos, paced for rate-limit. ~6-8 hours total.
Out of scope
Code-level licence changes (just SPDX headers)
Upstream-vendored content
Files where PMPL is INTENTIONAL (none currently identified)
Owner decision needed
(a) Approve Phase 1 (standards itself) now
(b) Defer — PMPL-1.0-or-later is contractually equivalent to MPL-2.0 in practice; cosmetic
(c) Trigger full sweep — would consume ~6-8 hours of CI/Actions budget
Status sweep 2026-05-30 — refresh + reality check.
Count refresh
Re-ran inventory against current estate:
Metric
At filing
2026-05-30 (now)
Δ
PMPL-1.0 files
~12,223
~21,108
+8,885
MPL-2.0 files
55,245
(not re-measured)
n/a
MPL-1.0 (word-boundary, excl. PMPL substrings)
0
0 estate-authored
0
The PMPL-1.0 count grew, not shrank — likely from the in-flight CLAUDE.md docs flip (65-PR background script per memory) propagating fresh PMPL-1.0 stamps before this sweep approves. The MPL-1.0 conversion claim in the body remains accurate (only matches are license/PMPL-1.0.txt filename hits, not estate-authored content).
The "Phase 1 — standards itself" candidate (2,032 files at filing → ~3,822 now) has had only the 25-file workflow precursor merged. Owner decision (a/b/c) still pending.
Owner-decision options (re-stated for clarity)
(a) Approve Phase 1 (standards itself) now — pattern-establishing, ~3,800-file PR or 3-4 split PRs.
(b) Defer — PMPL-1.0-or-later is contractually equivalent to MPL-2.0; cosmetic-only.
(c) Trigger full sweep — ~21,000 files, ~6-8 hours of Actions budget, ~40 PRs.
This is a genuinely-open campaign awaiting owner decision, not a stale-claim closure candidate. Keeping open. No per-phase sub-issues exist yet — they'd be filed once option (a) or (c) is approved.
Cross-ref: also note [[feedback_echidna_license_docs_mpl_intentional.md]] memory — echidna's CLAUDE.md+FAQ.md AGPL reconciliation PR #149 was reverted 2026-05-30, so echidna docs intentionally stay MPL-2.0 despite AGPL LICENSE; do not sweep that repo's SPDX headers unprompted.
Original (2026-05-30) audit's "vendored exclusions" assumption was wrong for v-ecosystem and rescript-ecosystem — both are owner-authored ecosystem subdirs, not upstream vendored.
Actual correct exclusions discovered during execution:
Closing as completed/superseded after stale-open audit. The 2026-06-02 close-out records all 30 campaign PRs merged, approximately 14,000 source headers reconciled with category-aware licensing, and the going-forward detector/recipe handed to hyperpolymath/hypatia#423 (with gitbot-fleet#256 wiring). The issue’s own final recommendation was to close as superseded by that automation.
Activity
hyperpolymath commentedon May 30, 2026
Status sweep 2026-05-30 — refresh + reality check.
Count refresh
Re-ran inventory against current estate:
The PMPL-1.0 count grew, not shrank — likely from the in-flight
CLAUDE.mddocs flip (65-PR background script per memory) propagating fresh PMPL-1.0 stamps before this sweep approves. The MPL-1.0 conversion claim in the body remains accurate (only matches arelicense/PMPL-1.0.txtfilename hits, not estate-authored content).Progress since filing
The "Phase 1 — standards itself" candidate (2,032 files at filing → ~3,822 now) has had only the 25-file workflow precursor merged. Owner decision (a/b/c) still pending.
Owner-decision options (re-stated for clarity)
This is a genuinely-open campaign awaiting owner decision, not a stale-claim closure candidate. Keeping open. No per-phase sub-issues exist yet — they'd be filed once option (a) or (c) is approved.
Cross-ref: also note
[[feedback_echidna_license_docs_mpl_intentional.md]]memory — echidna's CLAUDE.md+FAQ.md AGPL reconciliation PR #149 was reverted 2026-05-30, so echidna docs intentionally stay MPL-2.0 despite AGPL LICENSE; do not sweep that repo's SPDX headers unprompted.hyperpolymath commentedon Jun 2, 2026
Status update — 2026-06-02 sweep complete
This campaign is largely complete. Sweep executed across 28 repos with category-aware targets (sole-owner → MPL-2.0, son-shared → AGPL-3.0-or-later, palimpsest carve-out kept PMPL, third-party/fork excluded).
Total swept: ~14,000 files across 28 repos
Per-repo PR table
Audit correction vs original framing
Original (2026-05-30) audit's "vendored exclusions" assumption was wrong for
v-ecosystemandrescript-ecosystem— both are owner-authored ecosystem subdirs, not upstream vendored.Actual correct exclusions discovered during execution:
.gitmodules) — e.g.,v-ecosystem/v-{graphql,grpc,rest}/,satellites/*,julia-ecosystem/,scaffoldia/rescript-tea/,affinescript-vite/(precautionary skip pending fork-vs-local classification)idaptik-rescript13-staging/(son-shared idaptik content)cadre-router/,cadre-tea-router/,rescript-evangeliser/,rattlescript/under dev-ecosystemconsent-aware-http/(special hybrid; see standards#350)Newly-confirmed AGPL category-3 repos (son-shared)
standards(this repo)rattlescriptvcl-utThese join previously-confirmed
idaptik,burble. All carryAGPL-3.0-or-later, not MPL-2.0.New deliverables
docs/LICENSE-POLICY.md(standards#349) — canonical estate policy referencerecipe-fix-pmpl-drift.json+fix-pmpl-drift.sh(hypatia#423) — auto-classifier for future driftMEMORY.md(estate-license-policy-umbrella + per-repo AGPL confirmations + consent-aware-http hybrid)consent-aware-http special handling (standards#350)
Per owner directive 2026-06-02, consent-aware-http uses a hybrid licensing model:
MPL-2.0CC-BY-4.0(IETF-compatible)PMPL-2.0-or-laterfor cultural/ethical/post-quantum framing (NOT applied as SPDX)Known deferred work
reposystemPhase 2 — 7 sub-projects (scaffoldia, recon-silly-ation, bitfuckit, gui, git-morph, contractiles, stateful-artefacts) need standalone-vs-local classificationpanll— owner-managed per memory, never sweep without explicit per-touch greenlightllm-grace#2— owner-manual file-by-file (199 files) per its own issue bodyechidnabot#83— owner-manual (2 trivial edits) per its own issue bodySuggested next state
Once the ~50 draft PRs above land, this campaign is closeable. Suggest one of:
🤖 Generated with Claude Code
hyperpolymath commentedon Jun 2, 2026
Campaign CLOSED — 2026-06-02 19:50Z
All 30 PRs across this campaign are now MERGED to main. Final tally:
Newly-confirmed category-3 (AGPL-3.0-or-later, son-shared) repos
Added to memory + estate-license-policy-umbrella table:
standards(this repo)rattlescriptvcl-utJoin previously-confirmed:
idaptik,burble.Suggested closure
Close this issue as SUPERSEDED-BY hypatia#423 (going-forward automation now in place; any new drift gets auto-routed via the recipe + script).
🤖 Generated with Claude Code
hyperpolymath commentedon Aug 24, 2026
Closing as completed/superseded after stale-open audit. The 2026-06-02 close-out records all 30 campaign PRs merged, approximately 14,000 source headers reconciled with category-aware licensing, and the going-forward detector/recipe handed to hyperpolymath/hypatia#423 (with gitbot-fleet#256 wiring). The issue’s own final recommendation was to close as superseded by that automation.