Skip to content

docs(adr): 0004-octad-ontology — concerns octad is canonical#92

Merged
hyperpolymath merged 1 commit into
mainfrom
docs/adr-0004-octad-ontology
May 14, 2026
Merged

docs(adr): 0004-octad-ontology — concerns octad is canonical#92
hyperpolymath merged 1 commit into
mainfrom
docs/adr-0004-octad-ontology

Conversation

@hyperpolymath
Copy link
Copy Markdown
Owner

Summary

Per V-L1-A1: two octads with the same name lived in the repo (modalities in README, concerns in code). ADR-0004 picks concerns as canonical — Data · Metadata · Provenance · Lineage · Constraints · AccessControl · Temporal · Simulation.

Rationale:

  1. Codebase has committed to concerns across abi::, manifest::, codegen::, tier1::, CLI, manifest schema, ADR-0003 drift categories.
  2. Each concern is a question the system answers; modalities answer the same questions obliquely.
  3. ADR-0003's drift categories are themselves concerns-shaped — drift is symptoms of Constraints violation across modalities, not the reverse.

Modalities aren't deleted — they're demoted to Tier 2 overlays (Tier2Config { graph, vector, tensor, semantic, document, spatial }). Storage shapes you can project into; not the top-level identity.

README's "Eight Modalities" primary table is updated to the concerns octad in this PR, with a pointer to ADR-0004 and a note that modalities live as Tier 2. The broader README rewrite (recasting the eight drift categories as Constraints-violations-across-modalities) is left to V-L1-A2 (#20), which this ADR unblocks.

Closes

Test plan

  • docs/decisions/0004-octad-ontology.adoc with status / context / decision / alternatives considered / consequences / follow-ups / cross-references
  • README primary table now lists the concerns octad
  • Modalities framing referenced with explanatory pointer to Tier 2
  • Cross-references to ADR-0001, ADR-0003, V-L1-B1

Doc-only; no code changes.

Closes #19.

Two different "octads" lived in the repo: the **modalities octad**
(graph/vector/tensor/…) in the README, and the **concerns octad**
(data/metadata/provenance/…) in code, manifest, CLI, and ADR-0003.
A reader couldn't answer "what does an octad-augmented entity look
like?" without picking one. Both had Temporal and Provenance entries
with different meanings.

ADR-0004 picks the **concerns** octad as canonical:

  Data · Metadata · Provenance · Lineage · Constraints ·
  AccessControl · Temporal · Simulation

Rationale:

  1. The codebase has already committed to it across `abi::`,
     `manifest::`, `codegen::`, `tier1::`, CLI, manifest schema, and
     ADR-0003's drift categories. Reversing would touch every
     module.
  2. Each concern is a question the system answers ("when did this
     change?", "who saw this?"). Modalities answer the same
     questions only obliquely.
  3. ADR-0003's drift categories are themselves concerns-shaped —
     structural/semantic/statistical/referential drift are
     violations of the *Constraints* concern across modalities.
     Inverting the relationship makes the catalogue harder to
     motivate.

The modalities octad isn't deleted — it's demoted to Tier 2
*overlays* (`Tier2Config { graph, vector, tensor, semantic,
document, spatial }`). Storage shapes you can additionally project
into; not the top-level identity.

Also updates README's "Eight Modalities" primary table to the
concerns octad with explanatory pointer to the ADR. The earlier
section's broader rewrite (recasting the eight drift categories
as symptoms-of-Constraints-violation) is left to V-L1-A2 (#20).

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
@hyperpolymath hyperpolymath merged commit 4749646 into main May 14, 2026
16 of 18 checks passed
@hyperpolymath hyperpolymath deleted the docs/adr-0004-octad-ontology branch May 14, 2026 20:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

V-L1-A1: pick canonical octad — modalities vs concerns (ADR-0001)

1 participant