Completes the For-Claude-Web bundle licence migration. All 16 in-scope
files (Maintenance_Guide done in 5c386d0d + 15 here) now reference
EUPL-1.2. CLAUDE_WEB_BRIEF.md:250 "MIT or Apache license" preserved per
plan — historical project context, not an active claim.
31 token swaps applied via throwaway script + 2 full-block rewrites:
Token swaps (longest-first pattern order for atomicity):
#1. Full Apache preamble paragraph (3 paragraphs, header + URL + AS-IS
body) -> EUPL-1.2 equivalent. Normalises "License" -> "Licence"
across the body in one pass so the paragraph is internally
consistent (British spelling per EUPL official style). Applied to
12 files.
#2. "Apache License, Version 2.0, January 2004" -> "European Union
Public Licence, Version 1.2" (2 files).
#3. "Apache License, Version 2.0 (the \"License\")" variant -> EUPL
variant (covered by #1; fallback for non-preamble contexts).
#4. "Apache License, Version 2.0" -> "European Union Public Licence,
Version 1.2 (EUPL-1.2)" (non-preamble fallback).
#5. "Apache License 2.0" -> "European Union Public Licence, v. 1.2
(EUPL-1.2)" (1 file, 27027-incident "**License:** Apache License
2.0").
#6. "Apache 2.0 license" -> "EUPL-1.2 licence" (7 files x 2 each =
14 hits; all in "Additional Terms" boilerplate).
#7. "Apache 2.0 License" -> "EUPL-1.2 License" (1 file, roadmap
"**Apache 2.0 License**").
#8. "http://www.apache.org/licenses/LICENSE-2.0" -> EUPL URL
(covered by #1).
#9. "Apache 2.0" bare -> "EUPL-1.2" (1 file,
claude-code-framework-enforcement "**License**: Apache 2.0").
Full-block rewrites (technical-architecture.md, implementation-guide.md):
Both files embedded the ~55-line Apache TERMS AND CONDITIONS text
verbatim (lines 648-703 / 893-948 pre-rewrite). Simple token-swap
would have produced mislabelled "EUPL-1.2" header with Apache-specific
TERMS body below. Replaced entire block with:
**Full Licence Text:**
For the full EUPL-1.2 licence text, see:
https://interoperable-europe.ec.europa.eu/collection/eupl/eupl-text-eupl-12
The EUPL-1.2 is available in 23 official EU-language versions at
the same source.
Matches Phase A precedent (root LICENSE file c85f310f references the
canonical EUPL source rather than embedding verbatim).
Vendor-policy note (intentionally DEFERRED per plan):
"**GitHub:** https://github.com/AgenticGovernance/tractatus-framework"
references in technical-architecture L719 and similar elsewhere
are GitHub->Codeberg cleanup, tracked as a separate broader sweep.
Not bundled into this licence commit.
Commit 4/5 in the revised sequence. Plan: community repo
docs/plans/PLAN_TRACTATUS_OUT_OF_SCOPE_HYGIENE_LICENCE_20260420.md
Phase A precedent: c85f310f (root LICENSE + README + source headers)
Phase B precedent: d600f6ed (source-file header sweep)
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>