Skip to content

fix(license): revert #81 + sweep stray PMPL→MPL stamps (corrects mis-merge)#102

Merged
hyperpolymath merged 2 commits into
mainfrom
fix/revert-pmpl-normalization-restore-mpl
Jun 2, 2026
Merged

fix(license): revert #81 + sweep stray PMPL→MPL stamps (corrects mis-merge)#102
hyperpolymath merged 2 commits into
mainfrom
fix/revert-pmpl-normalization-restore-mpl

Conversation

@hyperpolymath

Copy link
Copy Markdown
Owner

Summary

Restores neurophone to MPL-2.0 throughout, per the canonical estate license policy (owner directive 2026-06-02, [memory: feedback_estate_license_policy_umbrella]).

Two commits:

  1. Revert chore(license): normalize SPDX headers to PMPL-1.0-or-later #81chore(license): normalize SPDX headers to PMPL-1.0-or-later was admin-merged in the 2026-06-02 estate sweep by mistake. It went the wrong direction (MPL→PMPL) and also conflated SPDX changes with adding new docs/proofs scaffolding. The revert restores: pre-chore(license): normalize SPDX headers to PMPL-1.0-or-later #81 LICENSE text + LICENSES/MPL-2.0.txt + NOTICE + 19 SPDX flips.
  2. Sweep stray PMPL→MPL — flips the remaining 118 files that already had SPDX-License-Identifier: PMPL-1.0-or-later from before chore(license): normalize SPDX headers to PMPL-1.0-or-later #81 (canonical-memory-documented drift across .kt, AndroidManifest, .sh hooks, .machine_readable/, .github/workflows/, crates). Also normalises 1 invalid MPL-2.0-or-later identifier (CONTRIBUTING.adoc) to MPL-2.0.

Why

Per the canonical 5-way license matrix (estate-license-policy-umbrella memory):

Category License Applies to
Sole owner repos (default) MPL-2.0 neurophone falls here
007 All Rights Reserved
Shared with son AGPL-3.0-or-later
Third-party / forks LEAVE ALONE
Palimpsest carve-out PMPL-1.0-or-later palimpsest-license + palimpsest-plasma + consent-aware-http only

PMPL in neurophone violates the matrix. Owner directive 2026-06-02 reinforced this explicitly.

Excluded from sweep

  • LICENSES/PMPL-1.0-or-later.txt — the PMPL license-text file itself (legitimate reference, restored by revert)
  • NOTICE — governance prose, restored to pre-chore(license): normalize SPDX headers to PMPL-1.0-or-later #81 state by revert
  • PALIMPSEST.adoc — concept doc retained (only its own SPDX header swept to MPL-2.0)

Cost of mis-merge — what was lost (and how to recover)

Reverting #81 also dropped 4 new docs + proofs/ scaffolding that the PR had bundled in:

  • `docs/architecture.adoc` (149 lines)
  • `docs/build.adoc` (72 lines)
  • `docs/installation.adoc` (113 lines)
  • `docs/usage.adoc` (41 lines)
  • `proofs/README.adoc` + `proofs/dafny/README.adoc` + `proofs/lean/README.adoc` + `proofs/tla/Lifecycle.tla`

These can be reintroduced cleanly in a separate, license-free PR after this lands. They were not retained in this PR to keep scope tight (license correction only).

Test plan

  • grep `SPDX-License-Identifier:.*PMPL` returns only `LICENSES/PMPL-1.0-or-later.txt` + `NOTICE` (legitimate)
  • grep `SPDX-License-Identifier:.*MPL.*or-later` returns nothing (invalid id eliminated)
  • CI green (governance / licence consistency should now pass)

🤖 Generated with Claude Code

hyperpolymath and others added 2 commits June 2, 2026 11:33
Per the 2026-06-02 owner directive reinforcing the canonical estate license
policy (feedback_estate_license_policy_umbrella memory):

  PMPL-1.0-or-later is reserved EXCLUSIVELY for the three palimpsest
  carve-out repos: palimpsest-license, palimpsest-plasma, consent-aware-http
  (latter prospectively only).

Neurophone is an owner-sole repo and per the canonical 5-way matrix MUST
be MPL-2.0 throughout. This commit completes the cleanup begun by the
prior revert of #81 (which had gone the WRONG direction, normalising MPL
TO PMPL).

Scope of this commit:
- 117 files with SPDX-License-Identifier: PMPL-1.0-or-later → MPL-2.0
- 1 file (CONTRIBUTING.adoc) with invalid 'MPL-2.0-or-later' → 'MPL-2.0'

Excluded from sweep (legitimate references retained):
- LICENSES/PMPL-1.0-or-later.txt (the license-text file itself)
- NOTICE (governance prose, restored to pre-#81 state by the revert commit)
- PALIMPSEST.adoc (concept doc retained; only its own SPDX header swept)

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Signed-off-by: hyperpolymath <6759885+hyperpolymath@users.noreply.github.com>
@hyperpolymath
hyperpolymath enabled auto-merge (squash) June 2, 2026 10:37
@hyperpolymath
hyperpolymath merged commit 635ce58 into main Jun 2, 2026
25 of 27 checks passed
@hyperpolymath
hyperpolymath deleted the fix/revert-pmpl-normalization-restore-mpl branch June 2, 2026 10:39
hyperpolymath added a commit that referenced this pull request Jun 2, 2026
… PMPL.txt (#118)

## Summary

Completes the PMPL→MPL-2.0 cleanup started in #102.

After #102 landed, PR #106 added 5 new property-test files with stray
\`PMPL-1.0-or-later\` SPDX headers — same drift pattern. Also NOTICE
still asserted PMPL governance with the OLD "MPL is just a compat shim"
framing that the 2026-06-02 owner directive explicitly supersedes.

## Changes (8 files)

- 5 .rs property-test files: SPDX header \`PMPL-1.0-or-later\` →
\`MPL-2.0\`
  - \`crates/lsm/tests/proptest_numeric.rs\`
  - \`crates/lsm/tests/proptest_bounds.rs\`
  - \`crates/sensors/tests/proptest_numeric.rs\`
  - \`crates/esn/tests/proptest_numeric.rs\`
  - \`crates/bridge/tests/proptest_soundness.rs\`
- \`proofs/affine/README.adoc\`: same SPDX fix
- \`NOTICE\`: rewritten to plain MPL-2.0 statement (drops Palimpsest
narrative + the misleading "MPL is just a compat shim" claim)
- \`LICENSES/PMPL-1.0-or-later.txt\`: deleted (orphan after this commit)

## Verification

\`\`\`
grep -rln 'SPDX-License-Identifier:.*PMPL\|MPL.*or-later' . 
→ zero matches outside .git/
\`\`\`

## Test plan

- [ ] Governance / Licence consistency green
- [ ] No CI regression vs pre-PR baseline

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Signed-off-by: hyperpolymath <6759885+hyperpolymath@users.noreply.github.com>
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
hyperpolymath added a commit to hyperpolymath/developer-ecosystem that referenced this pull request Jun 2, 2026
…nfra) (#103)

## Summary

First in a series of per-subdir PRs to bring developer-ecosystem source
SPDX into alignment with the canonical 2026-06-02 estate license policy
(sole-owner repos default `MPL-2.0`).

Repo state today:
- LICENSE: MPL-2.0 ✓
- deno.json: `license: "MPL-2.0"` ✓
- Source SPDX: **11,758 files still carry legacy `PMPL-1.0-or-later`
SPDX stamps** from the pre-#77 owner-carve-out era — that policy was
superseded by the 2026-06-02 directive.

## Phase 1 scope (this PR)

**69 files** flipped `PMPL-1.0-or-later` → `MPL-2.0`:

| Area | Files |
|---|---|
| Repo root | 20 |
| `.github/` | 9 |
| `.machine_readable/` | 29 |
| `docs/`, `tests/`, `hooks/`, `contractiles/`, `ffi/`, `.well-known/`,
`shellstate/` | 15 |

## Explicitly EXCLUDED from this PR

To stay scoped + reviewable, this PR does NOT touch:

- **Submodule subtrees**: `v-ecosystem/v-{graphql,grpc,rest}/`,
`satellites/*`, `julia-ecosystem/`, `scaffoldia/` — separate repos, get
their own PRs.
- **`rescript-ecosystem/rescript-tea/`** — possible upstream
ReScript-Tea fork. Estate policy: leave third-party alone.
- **`rescript-ecosystem/idaptik-rescript13-staging/`** — AGPL
inheritance from son-shared idaptik repo.
- **`affinescript-ecosystem/affinescript-vite/`** — possible upstream
fork.
- **All other top-level subdirs** — `iser-tools/`,
`rescript-ecosystem/`, `asdf-augmenters/`, `affinescript-ecosystem/`,
and ~20 smaller sub-ecosystems — each gets its own per-subdir PR.

## Pattern this PR follows

Same shape as `hyperpolymath/neurophone#102` (the canonical PMPL→MPL
fix), just narrower scope.

## Verification

```sh
# In Phase 1 scope:
grep -rl 'SPDX-License-Identifier: PMPL-1.0-or-later' <phase-1-paths>
# returns: 0 files

grep -rl 'SPDX-License-Identifier: MPL-2.0$' <phase-1-paths>
# returns: 68 files (PALIMPSEST.adoc retains 1 PMPL string in prose, correctly)
```

## Why draft

License sweep aftermath; owner sight on the per-subdir approach before
extending to Phase 2/3 PRs.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
hyperpolymath added a commit to hyperpolymath/standards that referenced this pull request Jun 2, 2026
…#344)

## Summary

First in a per-subdir series for standards PMPL→**AGPL-3.0-or-later**
source-SPDX alignment.

**Note the direction**: standards is category 3 (son-shared per
[[standards-agpl-intentional]]), so source SPDX flips to
`AGPL-3.0-or-later`, **not** MPL-2.0 (which is the sole-owner default
for repos like dev-ecosystem and neurophone).

## Repo state confirmed

- Root LICENSE: AGPL-3.0-or-later ✓
- Source SPDX: 3,553 files carry `PMPL-1.0-or-later` from legacy
carve-out era
- consent-aware-http subdir has its own special hybrid (MPL-2.0 source +
CC-BY-4.0 spec + PMPL-2.0-or-later reference) — EXCLUDED from this PR

## Phase 1 scope (this PR)

**700 files** flipped `PMPL-1.0-or-later` → `AGPL-3.0-or-later`:

| Area | Files |
|---|---|
| Repo root | 28 |
| `docs/` | 319 |
| `.machine_readable/` | 57 |
| ~30 small subdirs with no own LICENSE (meta-a2ml,
session-management-standards, agentic-a2ml, anchor-a2ml,
k9-coordination-protocol, standards-update, scripts, state-a2ml,
ecosystem-a2ml, playbook-a2ml, neurosym-a2ml,
toolchain-readiness-grades, overlay-protocol, a2ml-templates,
.verisimdb, inline-annotations, hooks, launcher, contractiles,
adoption-readiness-grades, panll-panels, hypatia-rules,
foundations-readiness-grades, component-readiness-grades,
publication-pre-flight, ensaid-config, ai-instruction, tasks, standards,
release-pre-flight, tools, testing-and-benchmarking, .meta,
immaculate-guide, .github, accessibility) | ~296 |

## Explicitly EXCLUDED

| Path | Reason | Files |
|---|---|---|
| `a2ml/` | Own PMPL LICENSE — Phase 2 (LICENSE+SPDX to AGPL combined) |
1,171 |
| `k9-svc/` | Own PMPL LICENSE — Phase 2 | 1,160 |
| `rhodium-standard-repositories/` | Own PMPL LICENSE — Phase 2 | 122 |
| `0-ai-gatekeeper-protocol/` | Own PMPL LICENSE — Phase 2 | 107 |
| `lol/` | Own PMPL LICENSE — Phase 2 | 105 |
| `avow-protocol/` | Own PMPL LICENSE + check-in copy of standalone
`hyperpolymath/avow-protocol` — skip (fix in standalone) | 90 |
| `axel-protocol/` | Own PMPL LICENSE — Phase 2 | 49 |
| `consent-aware-http/` | **Special hybrid** licensing (MPL-2.0 src +
CC-BY-4.0 spec + PMPL-2.0-or-later ref) per owner directive 2026-06-02 |
39 |
| `outreach/` | Own LICENSE — Phase 2 review | 10 |

## Pattern this PR follows

- `hyperpolymath/neurophone#102` for SPDX-flip mechanics
- `hyperpolymath/developer-ecosystem#103/#105` for per-subdir scoping
- **First time** the destination is AGPL not MPL — be aware

## Verification

```sh
grep -rl 'SPDX-License-Identifier: PMPL-1.0-or-later' <phase-1-paths>
# returns: 0 files
```

## Why draft

License sweep + first-of-kind AGPL destination; owner sight before
merge.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
hyperpolymath added a commit that referenced this pull request Jun 2, 2026
…affolding (follow-up to #102) (#120)

## Summary

Restores the 8 docs+proofs files that PR #81 added but #102 had to drop
while reverting #81's wrong-direction license change. Per #102's PR
body:

> "Reverting #81 also dropped 4 new docs + proofs/ scaffolding... These
can be reintroduced cleanly in a separate, license-free PR after this
lands."

This is that PR.

## Files (all NEW, no edits to existing content)

| File | Purpose |
|---|---|
| `docs/architecture.adoc` | LSM/ESN/bridge architecture (149 lines) |
| `docs/build.adoc` | Build instructions (72 lines) |
| `docs/installation.adoc` | Installation guide pointed-to by README
(113 lines) |
| `docs/usage.adoc` | Usage docs (41 lines) |
| `proofs/README.adoc` | Proof corpus index |
| `proofs/dafny/README.adoc` | Dafny/F* proofs subdirectory |
| `proofs/lean/README.adoc` | Lean/Coq proofs subdirectory |
| `proofs/tla/Lifecycle.tla` | TLA+ lifecycle obligation 2.1 (issue #84)
|

## Licensing

All 8 files carry \`SPDX-License-Identifier: MPL-2.0\` per the canonical
estate license policy (neurophone = sole-owner repo). #81 had originally
added these with PMPL stamps; this PR adds them with the correct MPL-2.0
SPDX from the start.

## Verification

\`\`\`sh
grep -r 'SPDX-License-Identifier' docs/architecture.adoc docs/build.adoc
\\
  docs/installation.adoc docs/usage.adoc proofs/
\`\`\`

All 8 files report \`MPL-2.0\`.

## Test plan

- [ ] CI green (no new SPDX violations)
- [ ] Files render correctly (asciidoctor + TLA+ syntax)
- [ ] \`docs/installation.adoc\` link from README.adoc resolves

## Why draft

License sweep aftermath; owner sight on docs reintroduction before
flipping to ready.

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
hyperpolymath added a commit to hyperpolymath/developer-ecosystem that referenced this pull request Jun 2, 2026
#104)

## Summary

Phase 2 of the developer-ecosystem PMPL→MPL-2.0 sweep (Phase 1 = #103).
This PR covers the `iser-tools/` subtree as a single batch per the
per-subdir scoping plan.

## Scope

**5,039 files** flipped `SPDX-License-Identifier: PMPL-1.0-or-later` →
`MPL-2.0` across 23 `*iser/` subdirs:

| Subdir | Files |
|---|---|
| `iser-tools/nimiser/` | 225 |
| `iser-tools/ponyiser/`, `iser-tools/otpiser/`,
`iser-tools/oblibeniser/`, `iser-tools/iseriser/`,
`iser-tools/idrisiser/` | 222 each |
| `iser-tools/wokelangiser/`, `iser-tools/mylangiser/`,
`iser-tools/lustreiser/`, `iser-tools/julianiser/` | 221 each |
| `iser-tools/tlaiser/`, `iser-tools/halideiser/` | 220 each |
| `iser-tools/phronesiser/` | 219 |
| `iser-tools/ephapaxiser/`, `iser-tools/chapeliser/`,
`iser-tools/bqniser/` | 217 each |
| `iser-tools/eclexiaiser/`, `iser-tools/dafniser/`,
`iser-tools/betlangiser/`, `iser-tools/atsiser/`,
`iser-tools/anvomidaviser/` | 216 each |
| `iser-tools/futharkiser/`, `iser-tools/alloyiser/` | 215 each |

## Verification

- Each `iser-tools/*/LICENSE` is already MPL-2.0 ✓ — only the
source-file SPDX stamps were drifting.
- These are check-in copies (NOT git submodules — verified, no
`.gitmodules` entries for `iser-tools/`).
- `grep -rl 'SPDX-License-Identifier: PMPL-1.0-or-later' iser-tools/`
returns **0 files** post-sweep.

## Coordination note

The standalone `hyperpolymath/*iser` repos (`nimiser`, `ponyiser`,
`idrisiser`, `iseriser`, `anvomidaviser`, `otpiser`, etc.) exist as
separate repos in the org and **all still have PMPL source SPDX drift
today**. Each will need its own equivalent flip PR (separate work). If
`iser-tools/` is auto-regenerated from those, the changes here will
revert on next sync — flag for owner: which is the source of truth?

## Why draft

Single PR with 5,039 files changed (uniform SPDX header flip); owner
sight on diff size before merge.

## Same pattern as

- `hyperpolymath/neurophone#102` (canonical PMPL→MPL fix)
- `#103` (Phase 1: root + small infra)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
hyperpolymath added a commit that referenced this pull request Jun 6, 2026
## Consolidation: fix the one real CI red + a stale licence badge

### `rust-ci` — the only foundational CI failure on `main`
`rust-ci.yml` pinned the estate reusable at SHA `cc5a372…`, which is
**stale** (the `standards` rust-ci-reusable moved). The run failed at
**startup with 0 jobs** on `main` — not a Rust code failure (the
workspace is green locally and via #106). Re-pinned to `@main`, matching
the working `governance.yml`. Once `standards` publishes a verified SHA,
this should be re-pinned (ideally by estate propagation).

### README licence badge
The top badge still read **`License: PMPL-1.0`**; the repo is
**MPL-2.0** (`Cargo.toml`, `LICENSE`, all SPDX headers, post-#102/#118).
Corrected to MPL-2.0. The *Palimpsest philosophy* badge is intentional
estate identity and left untouched.

### Context / non-goals
- The two perpetual Kotlin reds are already resolved on `main`
(carve-out #105 + `.hypatia-baseline.json`); `Language Policy` and
`Governance` are green.
- Other reds (Instant Sync, Mirror, Scorecard) are
infrastructure/external-forge/token issues, out of scope here.
- Other PMPL/Palimpsest *philosophy* mentions (`PALIMPSEST.adoc`,
citations, governance audit) are deliberate and untouched —
licence/philosophy is owner territory.

Merging once CI (esp. `rust-ci`) is green.

https://claude.ai/code/session_01Gu1JFCZHuBtBhAWPr4sMQw

---
_Generated by [Claude
Code](https://claude.ai/code/session_01Gu1JFCZHuBtBhAWPr4sMQw)_

---------

Co-authored-by: Claude <noreply@anthropic.com>
hyperpolymath added a commit that referenced this pull request Jul 1, 2026
…OVERNANCE.adoc (#160)

## Summary

Documentation-correctness + RSR-compliance follow-up (after merged
#158).

- **chore(licence): PMPL-1.0 → MPL-2.0 drift correction
(owner-approved).** neurophone
is a sole-owner MPL-2.0 repo (licence reverted from PMPL in #102/#118
per HANDOVER),
but several *functional* declarations still read PMPL. Corrected README
badge/body,
`META.a2ml`/`stapeln.toml` licence fields, `AGENTIC.a2ml`,
`0-AI-MANIFEST.a2ml`,
`QUICKSTART-MAINTAINER.adoc`, `llm-warmup-{dev,user}.md`. **Deliberately
not touched**
(owner territory): `PALIMPSEST.adoc`, `docs/CITATIONS.adoc`,
`docs/governance/*`,
`LICENSES/*.txt`, and the README Palimpsest-*philosophy* badge. Docs
stay CC-BY-SA-4.0.
- **docs: refresh stale `.claude/CLAUDE.md` language policy** — drop the
removed
Python/SaltStack allowance and the Nix fallback (Guix-only);
Rust→Rust/SPARK; add
  Zig/Idris2; add ReScript/V-lang/ATS2/Nix/Makefiles to BANNED.
- **docs: correct `STATE.a2ml`** — the neural crates were mislabelled
"stub" but carry
real code + property suites; neurophone-android is now the full JNI
surface. Records
160 tests, clippy/fmt/TLC clean, a `[proofs]` block, and honest external
`[blockers]`.
- **docs: dedup CONTRIBUTING** — removed the 402-byte `.adoc` stub
(estate keeps the
  GitHub-required `.md`; nothing referenced the `.adoc`).
- **docs(rsr): add `GOVERNANCE.adoc`** (was missing at root) and mark
the JNI surface
  audit as implemented by #110.

No code changes; docs/config only. (Prior branch verification stands:
160 tests, clippy
`-D warnings` clean, fmt clean.)

## FLAGS (unchanged)
- `gossamer` + `conative-gating` remain 403-blocked → #83 / #103 staged.
- Owner fills the Trustfile `{{PLACEHOLDER}}` crypto at signing time.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

https://claude.ai/code/session_0172RBMz3qYjb1ttzD2i7RNh

---
_Generated by [Claude
Code](https://claude.ai/code/session_0172RBMz3qYjb1ttzD2i7RNh)_

---------

Co-authored-by: Claude <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant