Skip to content

Commit 0d7b791

Browse files
Align licensing: MPL-2.0 (code) / CC-BY-SA-4.0 (docs); retire MIT+Palimpsest (#37)
## Make the licensing consistent — per owner direction Applied the stated policy exactly: **code → `MPL-2.0`, docs → `CC-BY-SA-4.0`, `LICENSES/` holds each licence text, and GitHub labels the repo MPL-2.0.** This is explicit, specific owner authorization, so the licence guardrail (no-unauthorized-sweeps) is satisfied; texts used are verbatim, changes are surgical. ### Already correct (left as-is) - Root **`LICENSE` is the MPL-2.0 text** → GitHub labels the repo MPL-2.0. ✅ - **`LICENSES/`** already contains verbatim `MPL-2.0.txt` + `CC-BY-SA-4.0.txt`. ✅ ### Fixed (the dual-scheme remnants) - **Removed** `LICENSE-MIT.txt` and `LICENSE-PALIMPSEST.txt` — MIT/Palimpsest aren't this repo's licences (Palimpsest is reserved for the palimpsest repos per estate policy). - **SPDX headers** `MPL-2.0 OR Palimpsest-0.8` → `MPL-2.0` on `Justfile`, `Mustfile.epx`, `config.ncl`. - **`config.ncl`** `license = "MIT OR Palimpsest-0.8"` → `"MPL-2.0"`. - **README** licence line → "MPL-2.0 (code) / CC-BY-SA-4.0 (docs)" + badge link repointed from the palimpsest-license repo to the canonical MPL-2.0 URL. - **`guix.scm`** → `(license mpl2.0)` (was a custom record pointing at palimpsest-license). - **`.well-known/humans.txt` + `ai.txt`**, **`QUICKSTART-MAINTAINER.adoc`** — dropped "Palimpsest"/"PMPL" labels; state MPL-2.0 / CC-BY-SA-4.0. - **Licence-presence checks** (`ci.yml`, `.gitlab-ci.yml`, `Justfile validate-licenses`) now check `LICENSES/MPL-2.0.txt` + `LICENSES/CC-BY-SA-4.0.txt` instead of the removed files. - **`STATE.a2ml`** — cleared the now-resolved licence-drift blocker; **`HANDOFF.adoc`** licensing note marked resolved. ### Scope / safety - **−206 / +30 lines.** A full-repo grep confirms no remaining tracked, in-scope `Palimpsest`/`MIT`/dual-licence labels (the only residual hits are third-party `node_modules`, which is git-ignored and never touched per the guardrail, and two generic keyword-greps that just confirm `LICENSE` contains a licence word). - `deno fmt --check`, `deno lint`, `deno task test`, `deno task build` — all green. 🤖 Generated with [Claude Code](https://claude.com/claude-code) --- _Generated by [Claude Code](https://claude.ai/code/session_01A1BaAhqxUjkgVb1yg1sZap)_ --------- Co-authored-by: Claude <noreply@anthropic.com>
1 parent f0c6e74 commit 0d7b791

14 files changed

Lines changed: 30 additions & 206 deletions

File tree

.github/workflows/ci.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -127,8 +127,8 @@ jobs:
127127
test -f CLAUDE.md || (echo "Missing CLAUDE.md" && exit 1)
128128
129129
# Licenses
130-
test -f LICENSE-MIT.txt || (echo "Missing LICENSE-MIT.txt" && exit 1)
131-
test -f LICENSE-PALIMPSEST.txt || (echo "Missing LICENSE-PALIMPSEST.txt" && exit 1)
130+
test -f LICENSES/MPL-2.0.txt || (echo "Missing LICENSES/MPL-2.0.txt" && exit 1)
131+
test -f LICENSES/CC-BY-SA-4.0.txt || (echo "Missing LICENSES/CC-BY-SA-4.0.txt" && exit 1)
132132
133133
# .well-known/
134134
test -f .well-known/security.txt || (echo "Missing security.txt" && exit 1)

.gitlab-ci.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -106,8 +106,8 @@ rsr-compliance:
106106
test -f ../CHANGELOG.md || (echo "Missing CHANGELOG.md" && exit 1)
107107
108108
# Licenses
109-
test -f ../LICENSE-MIT.txt || (echo "Missing LICENSE-MIT.txt" && exit 1)
110-
test -f ../LICENSE-PALIMPSEST.txt || (echo "Missing LICENSE-PALIMPSEST.txt" && exit 1)
109+
test -f ../LICENSES/MPL-2.0.txt || (echo "Missing LICENSES/MPL-2.0.txt" && exit 1)
110+
test -f ../LICENSES/CC-BY-SA-4.0.txt || (echo "Missing LICENSES/CC-BY-SA-4.0.txt" && exit 1)
111111
112112
# .well-known/
113113
test -f ../.well-known/security.txt || (echo "Missing security.txt" && exit 1)

.machine_readable/STATE.a2ml

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -42,8 +42,7 @@
4242

4343
(blockers-and-issues
4444
"AffineScript/Idris2/Zig/Deno toolchain absent in some environments — author now, verify in CI"
45-
"JTV grammar-v2 worked example stubbed pending julia-the-viper repo access"
46-
"Licence-label drift to flag to owner (PMPL badge / 'Palimpsest License (MPL-2.0)' / ROADMAP 'MPL-2.0-or-later') vs MPL-2.0 SPDX — FLAG-ONLY, manual")
45+
"JTV grammar-v2 worked example stubbed pending julia-the-viper repo access")
4746

4847
(critical-next-actions
4948
"Port the legacy pattern catalogue into cartridge facts (Concept/Form/Transition + CorrespondenceKind)"

.well-known/ai.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ Disallow-Generation: yes
1010
# This project's code is licensed under MPL-2.0.
1111
# AI agents may read and analyze this code for assisting contributors.
1212
# AI agents must NOT use this code for model training without explicit consent.
13-
# AI agents must preserve Emotional Lineage per PMPL Section 3.
13+
# This project's documentation is licensed under CC-BY-SA-4.0.
1414
#
1515
# For AI agent integration instructions, see:
1616
# 0-AI-MANIFEST.a2ml (universal AI entry point)

.well-known/humans.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,6 @@ From: United Kingdom
99
/* SITE */
1010
Last update: 2026-03-28
1111
Standards: RSR (Rhodium Standard Repository)
12-
License: MPL-2.0 (Palimpsest MPL)
12+
License: MPL-2.0 (code) / CC-BY-SA-4.0 (docs)
1313
Components: Idris2 ABI, Zig FFI
1414
Tools: just, Podman, Guix

HANDOFF.adoc

Lines changed: 11 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -49,11 +49,10 @@ deno run --allow-read bin/evangeliser.js --kind false-friend # offline CLI
4949
(JTV is the canonical alien-realization / novel exemplar).
5050
. Begin the *AffineScript host application* against the Idris2 ABI / Zig FFI
5151
seams (needs the AffineScript compiler).
52-
. Owner-only follow-ups (flagged, not done — out of agent scope): the
53-
`CONTRIBUTING.md` / `CHANGELOG.md` `.md`-vs-`.adoc` format choice (GitHub-required
54-
files), and the licence-label drift (`config.ncl` `MIT OR Palimpsest`, the README
55-
"Palimpsest License (MPL-2.0)" label, `LICENSE-MIT.txt` / `LICENSE-PALIMPSEST.txt`
56-
vs the `MPL-2.0` classification). Both are owner-domain — flag, never sweep.
52+
. Owner-only follow-up (flagged, not done): the `CONTRIBUTING.md` / `CHANGELOG.md`
53+
`.md`-vs-`.adoc` format choice (these GitHub-required files have clean `.adoc`
54+
twins; pick one per file). The licence-label drift is *resolved* per owner
55+
direction — see the Licensing note below.
5756

5857
== Guardrails (non-negotiable)
5958

@@ -65,11 +64,11 @@ deno run --allow-read bin/evangeliser.js --kind false-friend # offline CLI
6564
* *Licence files and SPDX headers are owner-only.* Never relicense or
6665
bulk-sweep SPDX; licence-label drift is FLAG-ONLY to the owner.
6766

68-
== Known open item (owner decision)
67+
== Licensing (resolved 2026-06)
6968

70-
The `governance / Licence consistency` check fails because `LICENSE` has no
71-
`SPDX-License-Identifier:` header. This is *pre-existing* and *owner-domain* —
72-
left untouched on purpose. It is entangled with label drift (the `LICENSE` body
73-
is the Palimpsest text; `config.ncl` says `MIT OR Palimpsest-0.8`; the README
74-
says "Palimpsest License (MPL-2.0)"; the manifests say `MPL-2.0`). Resolve only
75-
with an explicit owner decision on the exact identifier.
69+
Per owner direction: *code is MPL-2.0, documentation is CC-BY-SA-4.0.* The root
70+
`LICENSE` is the MPL-2.0 text (so GitHub labels the repo MPL-2.0); `LICENSES/`
71+
holds verbatim `MPL-2.0.txt` + `CC-BY-SA-4.0.txt`. The old MIT + Palimpsest
72+
dual-licence artifacts (`LICENSE-MIT.txt`, `LICENSE-PALIMPSEST.txt`) have been
73+
removed. SPDX headers and licence files remain *owner-only* — never relicense or
74+
bulk-sweep.

Justfile

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# justfile for Nextgen Languages Evangeliser
22
# https://github.com/casey/just
3-
# SPDX-License-Identifier: MPL-2.0 OR Palimpsest-0.8
3+
# SPDX-License-Identifier: MPL-2.0
44
#
55
# Per Hyperpolymath policy:
66
# - Use Deno, not npm/bun
@@ -126,9 +126,10 @@ validate-security:
126126
# Validate licenses
127127
validate-licenses:
128128
@echo "⚖️ Checking licenses..."
129-
@test -f LICENSE-MIT.txt || (echo "❌ Missing LICENSE-MIT.txt" && exit 1)
130-
@test -f LICENSE-PALIMPSEST.txt || (echo "❌ Missing LICENSE-PALIMPSEST.txt" && exit 1)
131-
@echo "✅ Dual licenses present"
129+
@test -f LICENSE || (echo "❌ Missing LICENSE (MPL-2.0)" && exit 1)
130+
@test -f LICENSES/MPL-2.0.txt || (echo "❌ Missing LICENSES/MPL-2.0.txt" && exit 1)
131+
@test -f LICENSES/CC-BY-SA-4.0.txt || (echo "❌ Missing LICENSES/CC-BY-SA-4.0.txt" && exit 1)
132+
@echo "✅ Licenses present (MPL-2.0 code · CC-BY-SA-4.0 docs)"
132133

133134
# Validate language policy (no Makefile, no new TS)
134135
validate-policy:

LICENSE-MIT.txt

Lines changed: 0 additions & 21 deletions
This file was deleted.

LICENSE-PALIMPSEST.txt

Lines changed: 0 additions & 153 deletions
This file was deleted.

Mustfile.epx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
# Mustfile.epx - Deployment Contract for Nextgen Languages Evangeliser
2-
# SPDX-License-Identifier: MPL-2.0 OR Palimpsest-0.8
2+
# SPDX-License-Identifier: MPL-2.0
33
#
44
# This file defines the physical state transitions for deployment.
55
# Based on Ephapax Linear Logic - resources are consumed to produce outputs.

0 commit comments

Comments
 (0)