Skip to content

Commit 790a36c

Browse files
docs(licence-policy): A6 hard-exclusions + A7 multi-SPDX FP ignore-list (ledger #2/#3) (#143)
**Owner-gated licence-debt ledger — Batch A (policy-doc companion).** Records ledger rulings **#2** and **#3/§C C1-C3**; enforcement lives in rsr-template-repo `spdx-policy-guard.yml` (companion PR), so A6 is *not* docs-only. Additive — Rules 1-3 and A1-A5 unchanged. Refs LICENCE-DEBT-LEDGER-2026-05-18. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
1 parent fb7ec65 commit 790a36c

1 file changed

Lines changed: 40 additions & 0 deletions

File tree

LICENCE-POLICY.adoc

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -156,6 +156,46 @@ sentinel with `REPLACE-WITH-*`); `spdx-policy-guard.yml` hard-fails it
156156
as a real SPDX value (and surfaces A3 variants as non-failing
157157
warnings). Evidence: `LICENCE-DEBT-LEDGER-2026-05-18`.
158158

159+
=== A6 — Named hard-exclusions (enforced, not docs-only)
160+
161+
Two repos are permanently excluded from the SPDX policy guard
162+
(owner-ruled 2026-05-19). This is *enforced* in
163+
`rsr-template-repo/.github/workflows/spdx-policy-guard.yml` (a
164+
repo-name early-exit), not merely documented here:
165+
166+
* **`palimpsest-license`** — it *defines* the PMPL / PLMP / PMLP
167+
identifiers; its spec and legal text legitimately contain many SPDX
168+
strings, so scanning it produces guaranteed false positives and
169+
could corrupt the licence specification.
170+
* **`repos-monorepo`** — a 297-submodule aggregate superproject that
171+
only mirrors the standalone source repos (and harbours `007`, see
172+
A1). Every hit duplicates a source repo; licence fixes belong in the
173+
source repos only, never here.
174+
175+
=== A7 — Known multi-SPDX false positives (ignore-list)
176+
177+
A small, named set of files legitimately carry more than one SPDX
178+
*string* without being a licence contradiction — the extra strings are
179+
documentation-fenced examples, UI string-literals, or codegen-emitted
180+
headers. These are owner-ruled false positives (2026-05-19, ledger §A +
181+
§C C1–C3) and the guard reports them as a non-failing `::notice`:
182+
183+
[cols="2,2,3"]
184+
|===
185+
| File (repo-relative) | Repo | Why it is not a contradiction
186+
187+
| `PALIMPSEST.adoc` | standards | SPDX ids appear inside doc example blocks
188+
| `README.adoc` | llm-grace | PMPL references are explanatory prose, not a header
189+
| `…/App.res` | ephapax | the second id (EUPL-1.2) is a UI string-literal
190+
| `…/state-utils.scm`| wp-resurrect | the second id (AGPL) is a codegen-emitted header
191+
| `CONTRIBUTING.md` | flatracoon | extra SPDX ids are fenced documentation examples
192+
|===
193+
194+
These remain *visible* (`::notice`, not silenced) so the list can be
195+
audited and tightened. Genuine contradiction §C-C4 (zotero-voyant-export
196+
`ECHIDNA_ARCHITECTURE_UPDATE_3LANG.md`) is **not** on this list — it is
197+
a real defect tracked for an owner-directed single-file fix.
198+
159199
== See Also
160200

161201
* `PALIMPSEST.adoc` (this directory) — full narrative

0 commit comments

Comments
 (0)