Skip to content

Commit c98915a

Browse files
docs(claude-md): License Policy — Manual Only (neurophone#99 closeout) (#339)
## Summary - Top-of-file `## License Policy — Manual Only (highest-priority guardrail)` section in `.claude/CLAUDE.md`. - Quotes the verbatim owner directive 2026-06-02 + 5-way classification table. - Hard rules for agents: no licence-change PRs without owner approval, no bulk SPDX sweeps, no touching third-party headers, flag-only findings. - Canonical source pointers: memory files + hypatia rule + gitbot-fleet dispatcher gate + fix-script refusal banners. ## Why Owner directive 2026-06-02 forbids automated licence/SPDX edits. Triggered by [neurophone#99](hyperpolymath/neurophone#99) — an auto-generated PR by the Claude bot reverting PMPL-1.0-or-later → MPL-2.0 across ~140 files, closed by the owner. The CLAUDE.md guardrail makes the policy discoverable to every agent that reads project context before acting. Verbatim: > "mpl-2.0 is for my sole repos, all rights reserved is for 007, agpl-3.0-or-later is for those shared with my son, and leave other people's forked stuff alone … only palimpsest license for obvious reasons should be talking about palipsest and palimpsest plasma, and consent-aware-http, but in that case prospectively" ## Test plan - [ ] Section renders correctly at the top of `.claude/CLAUDE.md`. - [ ] Five-way classification table is intact and readable. - [ ] Cross-references to gitbot-fleet/hypatia PRs land alongside this one. Related: hyperpolymath/gitbot-fleet chore/halt-license-auto-prs, hyperpolymath/hypatia rules/license-no-auto-fix. Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
1 parent 18dd92c commit c98915a

1 file changed

Lines changed: 52 additions & 0 deletions

File tree

.claude/CLAUDE.md

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,57 @@
11
# CLAUDE.md - AI Assistant Instructions
22

3+
## License Policy — Manual Only (highest-priority guardrail)
4+
5+
**Owner directive 2026-06-02 (verbatim):**
6+
7+
> "mpl-2.0 is for my sole repos, all rights reserved is for 007,
8+
> agpl-3.0-or-later is for those shared with my son, and leave other
9+
> people's forked stuff alone … only palimpsest license for obvious
10+
> reasons should be talking about palipsest and palimpsest plasma, and
11+
> consent-aware-http, but in that case prospectively"
12+
13+
### Five-way classification (mutually exclusive, exhaustive)
14+
15+
| Category | License | Applies to |
16+
|---|---|---|
17+
| **1. Sole owner repos (default)** | `MPL-2.0` | Every repo the owner authored alone. ~all of `hyperpolymath/*` unless one of the other categories applies. |
18+
| **2. The 007 repo** | All Rights Reserved (ARR) | `hyperpolymath/007` specifically. Out-of-scope for any normalisation, scanning, or labelling. Surface to owner only. |
19+
| **3. Shared with son (Joshua)** | `AGPL-3.0-or-later` | Repos with son as co-author/maintainer. Examples: `idaptik`, `paint-type`. Permanent. |
20+
| **4. Third-party / forks** | DO NOT TOUCH | Whatever upstream chose. Never sweep, never normalise. Flag as out-of-scope if it surfaces in an audit. |
21+
| **5. Palimpsest carve-out (extremely narrow)** | `PMPL-1.0-or-later` | EXACTLY three repos: `palimpsest-license` + `palimpsest-plasma` + `consent-aware-http`. The first two retroactively; `consent-aware-http` **prospectively only** (don't flip existing content). NOWHERE ELSE. |
22+
23+
### Hard rules for agents
24+
25+
- **NEVER generate licence-change PRs without prior owner approval.** Manual,
26+
per-file, owner-only. Triggered by neurophone#99 (auto-PR reverting PMPL →
27+
MPL-2.0 across ~140 files; closed by owner 2026-06-02).
28+
- **NEVER sweep SPDX headers in bulk.** Every prior LLM sweep has scrambled
29+
identifiers, mis-licensed third-party code, or reverted owner decisions.
30+
- **NEVER touch third-party / vendored / forked licence text or headers.**
31+
Flag only — never edit.
32+
- **Findings about licence drift are FLAG-ONLY.** Hypatia / gitbot-fleet emit
33+
these as `:review` strategy, not `:auto_execute`. Downstream pipelines MUST
34+
honour the cap.
35+
- **New files an agent creates may carry the correct SPDX from birth** (that
36+
is authoring, not relicensing) — but the SPDX choice must match the repo's
37+
classification above, not a hard-coded default.
38+
39+
### Canonical sources
40+
41+
- `~/.claude/projects/.../memory/feedback_estate_license_policy_umbrella.md`
42+
canonical estate-level policy (supersedes the earlier `reference_estate_licensing_policy`).
43+
- `~/.claude/projects/.../memory/feedback_no_automated_licence_edits.md`
44+
no-sweep mandate.
45+
- `hyperpolymath/hypatia` `lib/rules/cicd_rules.ex``license_finding_strategy/0`
46+
+ `license_finding_severity_cap/1` + `license_related_finding?/1` +
47+
`owner_license_classification/0`: the canonical Elixir-side cap.
48+
- `hyperpolymath/gitbot-fleet` `scripts/dispatch-runner.sh``execute_entry()`
49+
early-exit refusal gate for any licence/SPDX recipe or category.
50+
- `hyperpolymath/gitbot-fleet` `scripts/fix-license-{hygiene,file}.sh` +
51+
`fix-missing-spdx.sh` — all three carry `exit 1` refusal banners at the top.
52+
53+
---
54+
355
## Machine-Readable Artefacts
456

557
Every Hyperpolymath repo must have `.machine_readable/` with these 6 A2ML files:

0 commit comments

Comments
 (0)