Split capability navigation domains; canon 0.2.1 (OQ-2 resolved)
All checks were successful
CI Smoke / host-smoke (push) Successful in 0s
CI Smoke / container-smoke (push) Successful in 1s

Security & Governance splits into `security` (secrets, keys, policy,
vulnerability) and `governance` (evidence, lifecycle). Every capability id
is unchanged — domains are navigation_only, so this is a table-of-contents
change, not a concept change.

- capabilities.yaml: 41 capabilities across 9 domains
- ITC-CAP §8 catalog table and promotion gate updated
- OQ-2 closed; decision record added to ASSIMILATION.md
- canon 0.2.0 -> 0.2.1 (patch) + CHANGELOG entry
- ITC-WP-0014 T01 done, workplan active

make validate: ok. make test: 22 passed.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
tegwick 2026-08-15 02:43:55 +02:00
parent b92359845b
commit 680ed8b4b1
8 changed files with 101 additions and 19 deletions

View file

@ -136,3 +136,45 @@ requirement set with evidence.
**Supersession.** None. A later ITCC revision arrives as a new intake with a new
`source_version`, never as an edit to this frozen snapshot.
---
## Decision Record — OQ-2, capability identifier prefix
**Date:** 2026-08-15 · **Canon version:** 0.2.1
**Context.** Four capabilities in navigation domain `security` used the
`security.` prefix while two used `governance.` (`governance.evidence`,
`governance.lifecycle`). Capability ids are durable interfaces (CAP-R5), so the
inconsistency could not simply be corrected later without migration semantics.
This blocked promotion beyond `proposed`.
**Decision.** Split the "Security & Governance" navigation domain into two
domains, `security` (4 capabilities) and `governance` (2). Every capability id is
unchanged; each now sits in the domain its prefix names. The baseline becomes 41
capabilities across 9 navigation domains.
**Options considered.**
1. *Keep as-is.* Rejected: leaves a visible defect in the primary index of a model
whose whole value is stable, legible identifiers.
2. *Renumber `governance.*` to `security.*`.* Rejected: breaks two durable
interfaces to fix a cosmetic issue, and would require a canon major version
with migration semantics.
3. *Split the navigation domain.* Chosen.
**Rationale.** Domains are declared `navigation_only: true` and carry no
semantics (§4.2, Core §6.4 *Network Before Tree*), so splitting one costs nothing
structurally. It is the only option that removes the inconsistency without
touching an id.
**Consequences.**
- Canon `0.2.1` (patch: no concept added, removed, renamed, or reassigned).
- `security.policy` and `governance.evidence` now appear in different sections of
the catalog index despite being frequently co-used — an accepted navigation
cost, and the reason option 1 was defensible.
- OQ-2 no longer blocks promotion; `ITC-WP-0014` T01 is complete.
**Review trigger.** If a third capability group emerges that spans both domains,
revisit whether navigation domains should be replaced by tags.

View file

@ -6,19 +6,17 @@ Resolved for now as a **model** (broad domain structure). If capability contract
later grow enforcement rules and conformance levels for consumers, part of it may
split into a standard. **Review trigger:** first consumer conformance request.
## OQ-2 — The `governance.*` prefix inside the Security & Governance domain
## OQ-2 — The `governance.*` prefix inside the Security & Governance domain — **RESOLVED 2026-08-15 (canon 0.2.1)**
Six capabilities sit in navigation domain `security` but two use a `governance.`
Six capabilities sat in navigation domain `security` but two used a `governance.`
ID prefix (`governance.evidence`, `governance.lifecycle`). Options:
1. keep as-is — IDs are durable interfaces and already drafted;
2. renumber to `security.*` — consistent prefixes, but breaks IDs;
3. split the navigation domain into `security` and `governance`.
Capability IDs are durable interfaces, so this must be settled **before**
promotion beyond `proposed`. Preference: option 3 — it preserves every ID and
removes the inconsistency. **Owner:** canon owner. **Blocks:** promotion to
`draft`/`release-candidate`.
**Decision: option 3.** See the OQ-2 decision record in
[`ASSIMILATION.md`](ASSIMILATION.md). No longer blocks promotion.
## OQ-3 — Should the intended/declared/applied/observed/assessed state qualifier be canon-wide?