Rich’s directive (2026-04-22, during fix-list + repo-creation review)
“I don’t want to put Apache 2.0 licence on Inherit v2 until it is released as an open standard in several years: we can say that it is ‘intended to be put on an Apache 2.0 licence when the code is confirmed’. This is because I want to reserve the right to move code out of our provisional inherit v2, and into inheritkit. For instance, i don’t want to pay a penalty if claude inadvertently puts a feature in inherit, that should be in inheritkit!”
The rule
During the build period (now through public open-standard release):
- Code in
testatetech/code-inherit-v2lives in the PRIVATE repo (already created 2026-04-22T07:20 UTC PRIVATE) - LICENSE file (if present) carries “Apache 2.0 INTENDED upon public release” aspirational marker — NOT a binding Apache grant
- NPM package metadata + Rust Cargo.toml
licensefields carry similar aspirational framing (e.g.license: "Apache-2.0 (intended; not yet binding)"or similar — exact mechanism TBD per tooling constraints) - Code can move FREELY between
code-inherit-v2andcode-inheritkitduring the build. No Apache-irrevocability penalty during build.
At public open-standard release (target 2028-2030 aligned with ISO/JTC 1 submission per project_inherit_international_iso_intent):
- LICENSE file becomes an actual Apache 2.0 grant — IRREVOCABLE to the world from that moment
- Any content in
code-inherit-v2at release-time is Apache-committed - Before public release happens, Rich reviews content one final time + moves anything commercial-sensitive to
code-inheritkit
Why
- Reserves right to re-classify content between “standard” (Apache) and “practice” (AGPL+commercial InheritKit) without Apache-irrevocability penalty during build.
- Penalty-protection against inadvertent mis-placement. If a feature is written by AI or by Rich in v2 that SHOULD be in InheritKit (close-call content per lean-to-InheritKit default), reversing the placement is free during build. Under Apache-from-Day-1 it would be impossible.
- Consistent with existing v6.6 discipline (
inherit-governance-charter.mdv2.1 +2026-04-16-ew-schema-audit.mdv1.2 both already frame “first public release = Apache becomes irrevocable to the world”). This memo extends the same discipline to v2. - Compounds with lean-to-InheritKit second reversal (
project_schema_vs_inheritkit_bias.md2026-04-22). Both directives serve the same strategic intent: protect commercial moat + reserve architectural flexibility during the ~30-48 month build.
Operational consequences
What stays Apache-intended during build
- The 7 modules in
code-inherit-v2(Core + Wills + Trusts + Probate + Assets + Catalogue + Delegation) — labelled “intended Apache 2.0 upon public release” - JSON Schema artefacts, JSON-LD contexts, SHACL shapes, OWL 2 DL ontologies, Catala rule modules, registry.json — all labelled aspirational Apache until release
What is AGPL+commercial from Day 1
- The 7 InheritKit crates in
code-inheritkit(@inheritkit/core,@inheritkit/wills,@inheritkit/trusts,@inheritkit/probate,@inheritkit/assets,@inheritkit/catalogue,@inheritkit/delegation) — AGPL-3.0 + commercial from Day 1 (not deferred — the AGPL+commercial commitment is what InheritKit IS) - Plus cross-cutting
@inheritkit/tax-{gb-eng,gb-sct,ch}crates
Content-type licensing in Q5 ε admin-surface
Content rows with licence: apache-2.0 metadata are INTENDED Apache during build, not binding. When v2 ships publicly, those rows’ Apache grant becomes binding. Rows with licence: agpl-3.0-dual-commercial metadata are binding AGPL from Day 1 (InheritKit side).
Sourcemeta interaction
Already resolved: Sourcemeta contract is cancellable with 30 days notice per project_inherit_architecture_mandate. Apache-deferred discipline composes cleanly — during build, v2 is private + Apache-intended; at public release, v2 becomes public + Apache-binding. Sourcemeta contract state is orthogonal.
First-public-release moment — what triggers it
Single release event: INHERIT v2 becomes publicly accessible (repo made public OR ISO submission OR NPM/Cargo publication OR v2 website launch — whichever happens first). Before that event, Rich reviews final content + re-classifies anything borderline per lean-to-InheritKit default. Apache commitment is the outcome of that final review, not assumed.
Relationship to ISO/JTC 1 target
- Target window: 2028-2030 per
project_inherit_international_iso_intent. - OASIS TC submission happens BEFORE ISO — OASIS submission is typically when content becomes public-binding-Apache.
- Timing coincidence: Phase-1 build (30-48 months from 2026-04-22) lands ~Oct 2028 - Apr 2030 = inside ISO window. Apache commitment + ISO submission can coincide.
Agents / research-programme implications
Z4-LICENCE + Z18-GOVERNANCE + Z24-MODULARITY must apply this discipline:
- Z4-LICENCE: treat Apache-for-INHERIT as aspirational-until-release; AGPL+commercial-for-InheritKit as binding Day 1
- Z18-GOVERNANCE: include “Apache-commitment-timing” as governance design parameter (coincides with OASIS submission; Apache is irrevocable only from that point)
- Z24-MODULARITY: per-module licensing line in cascade recommendations notes provisional-Apache for v2 modules vs committed-AGPL for InheritKit modules
Do NOT apply during build
- Do NOT publish
code-inherit-v2publicly. PRIVATE only during build. - Do NOT add
LICENSE-APACHE-2.0file as-if-binding. UseLICENSE.mdwith “intended Apache 2.0 upon release” language. - Do NOT treat any v2 content as Apache-irrevocable during build. Freely movable to InheritKit.
- Do NOT assume Apache grant when quoting v2 content in specs / documentation; cite as “INHERIT v2 (provisional Apache 2.0 intended upon release)”.
Rich-approval gate (pre-public-release)
Before any public release event happens, Rich executes a final review session to:
- Walk every v2 module and confirm: is this content still correctly Apache? Or should it move to InheritKit before we commit?
- For borderline content, apply lean-to-InheritKit default — move to InheritKit when in doubt.
- After the review, execute the public release action (making repo public OR publishing NPM/Cargo OR submitting to OASIS) — which becomes the Apache commitment moment.
This gate is a richard-task flagged when Phase-1 build nears completion; not a now-task.