INHERIT v2 Apache core covers the asset-catalogue domain. Rich’s 2026-04-22 decisions D1-D6 after scope-analysis of ~/testatetech/code-ll/ (Josh’s LegacyLists v1 build on v6.6) revealed the mega-spec v1.0 was succession-legal-centric and under-scoped asset-catalogue by 3,000-4,000 LOC canonical.

The 6 decisions

  • D1 — Asset-catalogue placement: v2 Apache core. Matches v6.6 precedent + FHIR analogue + cross-brand sharing need (MFI deceased’s estate; IW wills with asset references; LL catalogue + sell; MFI-from-LL upsell). NOT InheritKit.
  • D2 — v6.6 schemas as template: yes, inspired-by. v2 schemas are fresh artefacts under clean-break; v6.6 asset.json / asset-collection.json / space.json / valuation.json / common/*.json are read-only reference material.
  • D3 — Non-IHT tax regimes: out-of-scope Phase 1. VAT Margin Scheme (second-hand dealers), DAC7 (EU marketplace operator), non-estate CGT — all brand-specific implementation. Phase-3+ can revisit.
  • D4 — Dealer / marketplace infrastructure: InheritKit AGPL + commercial with explicit three-role naming. Three roles = collector, dealer, public (commercial-tier). Orthogonal to legal-tier roles (testator / beneficiary / executor / etc.).
  • D5 — LL → MFI-v2 data bridge: LL export-format-migrated to v2 by MFI launch. LL internals stay on v6.6 through MLP 2-4 (Josh’s independent track unchanged). LL implements ~1-2 week v6.6 → v2 export adapter. Full LL-to-v2 internal migration remains Year-2+ conditional per brand-architecture §6.4.
  • D6 — Phase-1 LOC envelope: ~32,000 canonical / ~85,000 total. Up from 28,500 / 76,000. Timeline extends 10-11mo → 14-18mo (matches obj #3 refine).

14 v2 core Apache canonical primitives (current as of Thu 23 April 2026T17:30)

Evolution: 11 primitives at scope-spec §1 (D1-D6 lock, 2026-04-22) → 12 via A-4 → 13 via A-11 → 14 via A-20 (RoleInstance, 2026-04-23T17:30) → patched by A-20.1 (Role+RoleInstance coupled pair, 2026-04-23T18:15; count remains 14) → A-22 supersedes A-20.1 Role equivClass with rdfs:subClassOf (2026-04-23T22:15; count still 14; iv-3 per-target matrix) → Shape X FULL LOCK 2026-04-23T23:15 via A-23 (OMG Commons Classifiers 4-layer stack); count unchanged; see project_shape_x_full_lock_2026_04_23 for full structural detail.

  1. Asset (16-category taxonomy; subcategory guidance — Shape X angle-(i) lock: 9 top-level classes under prov:Entity)
  2. Liability (A-4, 2026-04-23) — money owed BY estate; parallel to Asset; Open Banking AIS-surfaced credit-card/loan/mortgage/overdraft/tax-debt. Distinct from Receivable (money owed TO estate, which is a 9th top-level Asset class per Shape X).
  3. AssetCollection
  4. Space (65+ space types)
  5. Valuation (IHTA statutory-value-types enum: ProbateValue / OpenMarketValue / DateOfDeathValue / AgriculturalValue / BusinessPropertyValue / etc.)
  6. Provenance (record + per-field)
  7. Completeness
  8. Visibility (access-level × field-redaction orthogonal)
  9. OwnerIntent (keep / may_sell / donate / bequeath / undecided)
  10. Identifier + ExternalLink
  11. Media
  12. AuditLog (canonical event schema)
  13. Organisation (A-11, 2026-04-23) — 10-enum legalEntityType, DID/didMethod, lifeState (6-enum), history arrays (name / address / relationship), identifiers (Companies House / LEI / VAT / SRA / FCA / CQC), hasOrganisationRole → OrganisationRole SKOS facet, FIBO fibo-be-le-lp:LegalEntity alignment. Cross-brand: Josh’s LL v1 confirmed coverage only with Organisation promoted to Core.
  14. Role + RoleInstance coupled pair (A-20 + A-20.1 patch, 2026-04-23T18:15) — one coupled canonical primitive (TWO classes, ONE count); structurally inseparable. Two-class split per A-20.1: inherit-fnd:Role = the role-type concept (all domain-role subclasses rdfs:subClassOf this); inherit-fnd:RoleInstance = the reified bitemporal instance rdfs:subClassOf inherit-fnd:Role, carries hasRoleType / hasBearer / hasValidTimeStart+End / hasAssertionTimeStart+End / hasEvidentialBasis. hasBornRole object-property links bearer → RoleInstance (OWL 2 punning). FINAL Day-1 alignment axioms (A-22 iv-3 per-target matrix supersedes A-20.1 equivClass with rdfs:subClassOf): inherit-fnd:Role rdfs:subClassOf cmns-rlcmp:Role (OMG Commons https://www.omg.org/spec/Commons/RolesAndCompositions/Role, version 20250801, maturity “Release”; subClassOf NOT equivClass per Beverley et al. 2025 Nature pattern + FIBO CI hygiene test + Agent 1 4-test rationale) + inherit-fnd:Role rdfs:subClassOf bfo:RealizableEntity (INHERIT-authored — cmns-rlcmp:Role has no BFO parent) + inherit-fnd:Role skos:closeMatch dolce:Role. A-20 original fibo-fnd-rel-rel:Role was a non-existent IRI — superseded by A-20.1. Resolves Shape-X angle-(ii) boundary questions Q1 (RealProperty↔Agricultural via AgriculturalPurposeRole), Q3 (Business↔Financial shares via BusinessInterestRole), Q5 (Coinbase-custody via PlatformCustodianRole). Domain-role subclasses (all rdfs:subClassOf inherit-fnd:Role) authored per-module: AgriculturalPurposeRole + BusinessInterestRole + PlatformCustodianRole (Assets); TrusteeRole + BeneficialOwnerRole + SettlorRole + ProtectorRole (Trusts); AgentRole + AttorneyRole + DonorRole (Delegation); DealerRole + AuctionHouseRole (Catalogue); ExecutorRole + AdministratorRole + PersonalRepresentativeRole (Probate).

Plus 5 cross-module primitives (not separately counted in canonical-14): Capacity (A-3); Person (A-9 with lifeState / deathEvent / history refinements); 3 SRI-3 health primitives (HealthIdentityMap / HealthConsentEnvelope / HealthDelegationTransition per A-15). Total = 19 effective Core primitives.

What’s InheritKit, not v2 core

Three-role user model (collector / dealer / public — orthogonal to legal-roles). Dealer organisation hierarchy. Offer state machine. Escrow coordination abstraction (Stripe Connect is implementation). Wishlist / match-notification engine. Valuation methodology plugins (AI / comparables / expert / probate). Import / export flows. Commercial primitives (freemium, invite-code, waiting-list, subscription billing).

How to apply

  • When designing any v2 data type: check first if it’s asset-catalogue-adjacent. If yes, place in Apache core per D1. v6.6 schema shapes are the inspired-by template per D2.
  • When scoping any marketplace / dealer / matching feature: place in InheritKit per D4. Use three-role naming explicitly (collector / dealer / public) — orthogonal to legal-role axis.
  • When estimating v2 LOC: baseline is now ~32,000 canonical / ~85,000 total Phase 1. Not 28,500 / 76,000.
  • When pitching v2 to partners / investors: v2 is both “succession-legal standard” AND “asset-catalogue data standard”. Not just the former.
  • When building LL-related features or discussing MFI launch: remember D5 — LL export adapter is a Phase-1 prerequisite for MFI launch. Josh’s independent track still runs on v6.6 internally; only the export format migrates to v2.
  • When someone asks about VAT Margin Scheme / DAC7: out-of-scope for Phase 1 per D3. Brand-specific tax module. Revisit Phase-3+ if cross-brand demand emerges.

Do NOT

  • Place asset-catalogue data types in InheritKit. They’re core Apache per D1 — MFI + IW + LL all need them.
  • Design InheritKit as “LL-only”. Marketplace infrastructure is cross-brand-shared (MFI trustees may need dealer-facing disposal flows; IW may reference LL-like asset catalogues).
  • Skip the three-role naming when discussing Q5 admin-surface architecture. The commercial-role axis (collector / dealer / public) is orthogonal to the legal-role axis (testator / beneficiary / executor / etc.).
  • Import v6.6 schemas at runtime. Clean-break preserved per feedback_v2_clean_break_from_v6_6.md.
  • Quote the 28,500 LOC figure for Phase 1 — superseded. Use ~32,000 canonical.

Cross-references

  • docs/superpowers/specs/2026-04-22-inherit-v2-asset-catalogue-scope.md v1.0 — original scope spec with 11 primitives enumerated (superseded on count by v1.12 amendments A-4 + A-11 + A-20 → 14 primitives).
  • docs/superpowers/specs/2026-04-22-inherit-v2-architecture-proposal.md v1.12 §“Core primitives (v1.12 expansion)” — 14 canonical primitives + 5 cross-module; §“Organisation primitive (A-11)”; §“RoleInstance primitive (A-20)”.
  • docs/superpowers/scoping/2026-04-23-v1-12-amendments.md — A-4 Liability (12th), A-11 Organisation (13th), A-20 RoleInstance (14th) full amendment bodies + rationale.
  • ~/off-github/library/projects/inherit/class-boundaries-research-2026-04-23.md v1.0 — library-grounded research note underpinning A-20 promotion (Keet + Hitzler + Allemang + Johnston + Barlow).
  • docs/superpowers/specs/2026-04-21-ambiguity-5-dual-admin-surface.md v1.2+ — three-role naming added.
  • Memory feedback_v2_clean_break_from_v6_6.md — clean-break discipline reference (D2 relies on this).
  • Memory feedback_v2_apache_deferred_until_public_release.md — primitive promotion is soft Apache-intended during build; irrevocable at public release.
  • ~/testatetech/code-ll/docs/superpowers/specs/2026-04-11-inherit-v6-adoption-design.md v1.0 — LL’s v6.6 adoption design, template for v2 asset-catalogue patterns.