info-tech-canon/infospace/assimilation/it-capability-canon/ASSIMILATION.md
tegwick 680ed8b4b1
All checks were successful
CI Smoke / host-smoke (push) Successful in 0s
CI Smoke / container-smoke (push) Successful in 1s
Split capability navigation domains; canon 0.2.1 (OQ-2 resolved)
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>
2026-08-15 02:43:55 +02:00

180 lines
8.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Assimilation — Information Technology Capability Canon (ITCC) v0.1
**Record:** `assimilation/it-capability-canon`
**Source:** ITCC v0.1 (`source/ITCapabilityCanonV0.1.md`, `source/capabilities.yaml`)
**Disposition:** `adapt`
**Status:** decided
**Canon version produced:** `0.2.0`
**Date:** 2026-08-14
**Practice:** [`../intake-and-assimilation-practice.md`](../intake-and-assimilation-practice.md)
---
## 1. Intake
Both files arrived in `incoming/` and were moved unmodified into `source/` as the
frozen snapshot. The source document itself (§15) asks to be reconciled with and
incorporated into InfoTechCanon, so the request is explicit rather than inferred.
## 2. Scoping
**In scope:** the capability object model, inclusion rules, exclusions, the eight
navigation domains and 41-capability baseline, capability relationship types, the
D0D7 maturity scale, the C/S/N/I/P resource model, evidence hooks, and the
capability contract shape.
**Out of scope:** the proposed CILM landscape model (§15) — the canon Landscape
Model already owns that ground; and the FinOps cost formula (§13) beyond the
resource classification itself.
## 3. Concept extraction
18 concepts extracted — see [`extracted-concepts.yaml`](extracted-concepts.yaml).
## 4. Concept comparison
See [`comparison-matrix.md`](comparison-matrix.md). Summary:
- `missing_concept`: Capability, CapabilityDomain, Provision, MaturityLevel,
QualityDimension, EvidenceHook, CapabilityContract, ResourceClass, and the
capability relationship types
- `already_covered`: Implementation, Evidence, CILM, and four of the source's
design principles (all four restate existing Core principles)
- `covered_differently`: Profile (name collision with Core §8.6), Provider
- `narrower_than_existing`: Requirement (a typed DemandSignal), quality dimensions
- `viewpoint_difference`: the entire capability baseline against the domain models
— abilities versus the structures that realize them
- `conflicting_concept`: one naming conflict only (`governance.*` prefix, OQ-2)
## 5. Gap and conflict analysis
**Primary gap filled.** The canon models landscape, data, security, delivery,
network, observability, governance, organization, task, and access, but nowhere
states *what an information system must be able to do*. The Landscape Model
defers exactly this (§11.4). Consumers hit the gap in practice: repo-scoping
already needs `Ability` / `Capability` / `Feature` distinctions.
**No definitional conflicts.** Not one source concept redefines a concept an
existing model owns. The relationship is anchoring, not overlap — which is why
the disposition is `adapt` rather than `observe`.
**Conflicts found:** (1) `Profile` name collision, resolved by renaming to
`CapabilityProfile`; (2) inconsistent `governance.*` ID prefix, unresolved and
recorded as OQ-2, blocking promotion beyond `proposed`.
**Risk.** A capability catalog is the kind of artifact that quietly becomes a
second ontology. Mitigated by PC-3: every capability must name the canon model(s)
that own the concepts it exercises.
## 6. Canon impact proposal
Eight proposals — see [`proposed-changes.md`](proposed-changes.md). All eight were
accepted; PC-6 is an accepted *rejection* (CILM not adopted). Six further items
are deferred to `ITC-WP-0014`.
## 7. Mapping and publication
[`mappings.yaml`](mappings.yaml) records 26 concept-level mappings to canonical
owners. Formal per-pair mapping artifacts under `infospace/mappings/` are deferred
to ITC-WP-0014.
Published as:
- `infospace/models/capability/InfoTechCanonCapabilityModel.md`
- `infospace/models/capability/capabilities.yaml`
---
## Decision Record
**Context.** InfoTechCanon has no owner for abstract capability. A well-formed
draft vocabulary (41 capabilities, machine-readable, explicitly written for
reconciliation with InfoTechCanon) was submitted for absorption. The Landscape
Model has deferred this ground since RC1.
**Decision.** Disposition `adapt`. Adopt the vocabulary as a new domain model,
`InfoTechCanonCapabilityModel`, restructured to canon shape: canon frontmatter and
declared ownership, imports instead of redefinitions, per-capability anchors to
owning models, `Profile` renamed to `CapabilityProfile`, `Provision` made
explicit, CILM rejected. The artifact enters at status `proposed`.
**Options considered.**
1. *`observe`* — record and change nothing. Rejected: leaves a known gap open while
consumers work around it.
2. *`map` only* — map the source to existing models without a new artifact.
Rejected: there is no artifact to map *to*; capability has no owner.
3. *`adopt` as-is* — take the document in unchanged. Rejected: it carries a name
collision on `Profile`, a competing landscape model, an implicit provision
bearer, and no anchoring to canon owners.
4. *`adapt`* — chosen.
5. *Classify as a standard rather than a model.* Deferred as OQ-1; a capability
set is a broad domain structure, which is the definition of a model here.
**Rationale.** The source passes its own inclusion rules and the canon's:
implementation-independent, reusable, demandable, providable, testable,
profileable, stable. It conflicts with nothing the canon already owns. The two
genuinely new surfaces (`commerce.*`, `intelligence.*`) extend the canon into
areas no existing model reaches. Adapting rather than adopting preserves single
canonical ownership.
**Consequences.**
- Canon version `0.2.0`; the canon gains a twelfth model and 41 capability IDs
that are treated as durable interfaces from here on.
- The Landscape Model's deferred strategy/capability concepts
(`BusinessCapability`, `ProductCapability`) now have a destination; the
Landscape §11.4 note should be revised — deferred to ITC-WP-0014.
- Capability IDs must not be renamed without migration semantics, which makes
OQ-2 blocking for promotion.
- `commerce.*` and `intelligence.*` create canon surface with no anchoring model
(OQ-5), an accepted weakness at `proposed` status.
**Review trigger.** Promotion beyond `proposed` requires: OQ-2 resolved, the
contract schema published, and at least one profile expressing a real capability
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.