Accept resource-control demand: move resource classes onto provisions, let requirements carry targets and constraints, add human-effort class H with native-unit consumption. Model stays proposed.
12 KiB
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
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 D0–D7 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.
4. Concept comparison
See comparison-matrix.md. Summary:
missing_concept: Capability, CapabilityDomain, Provision, MaturityLevel, QualityDimension, EvidenceHook, CapabilityContract, ResourceClass, and the capability relationship typesalready_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), Providernarrower_than_existing: Requirement (a typed DemandSignal), quality dimensionsviewpoint_difference: the entire capability baseline against the domain models — abilities versus the structures that realize themconflicting_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. 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 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.mdinfospace/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.
observe— record and change nothing. Rejected: leaves a known gap open while consumers work around it.maponly — map the source to existing models without a new artifact. Rejected: there is no artifact to map to; capability has no owner.adoptas-is — take the document in unchanged. Rejected: it carries a name collision onProfile, a competing landscape model, an implicit provision bearer, and no anchoring to canon owners.adapt— chosen.- 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.*andintelligence.*create canon surface with no anchoring model (OQ-5), an accepted weakness atproposedstatus.
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.
- Keep as-is. Rejected: leaves a visible defect in the primary index of a model whose whole value is stable, legible identifiers.
- Renumber
governance.*tosecurity.*. Rejected: breaks two durable interfaces to fix a cosmetic issue, and would require a canon major version with migration semantics. - 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.policyandgovernance.evidencenow 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-0014T01 is complete.
Review trigger. If a third capability group emerges that spans both domains, revisit whether navigation domains should be replaced by tags.
Decision Record — Capability provision economics (demand 2026-08-15)
Date: 2026-08-15 · Canon version: 0.3.0 · Model version: ITC-CAP 0.2.0
Demand: demand/CapabilityProvisionEconomics.md (resource-control)
Context. After a completed procurement-to-control cycle, resource-control
mapped a real backup provision onto ITC-CAP v0.1.0. The catalog, evidence hooks,
and D-scale worked. Three defects did not: typical_resource_classes contradicted
§4.11 and carried almost no information; a requirement could not express profile,
quality targets, or failure-domain constraints; the class set had no human-effort
class and treated Intelligence as one more purchased input, so labour-inverted
provider selection was inexpressible.
Decision. Refine the still-proposed model in place. Do not split ITC-CAP into supply-side and demand-side canons. Do not open a separate workplan for finding C: the LAND and commerce touches are boundary clarifications, not new owning models.
- Finding A. Remove
typical_resource_classesfrom every capability contract. Consumption is declared onCapabilityProvisiononly (CAP-R8). No non-normative hint is kept — 29 of 41 entries were identical. - Finding B. Enrich
CapabilityRequirementwith optionalprofile,targetsagainst declared quality dimensions, andconstraintswith a closed predicate set. Intended targets stay on the requirement; measurement and observed SLOs stay with ITC-LAND / ITC-OBS. No new dimension vocabulary. - Finding C. Add class
H(Human Effort, native unithour, default supplyinternal, default capacityconstrained). NarrowPso it no longer absorbs human time. RecharacteriseIas the elastic purchased substitute forH, native unittoken. Declarenative_unit,supply, andcapacity_behaviouron each class; a consumption record may override the last two. Record unknown asunknown, never zero. Add quality dimensionintelligence_intensityonintelligence.*. Do not declaresubstitutes_foror an exchange rate.
Options considered.
- Leave the proposed model unchanged until promotion. Rejected: the defects
are cheapest to fix before
capability.schema.yaml(ITC-WP-0014 T02) freezes the contract shape, and before a consumer restates a real provision against it. - Split ITC-CAP into demand-side and supply-side canons. Rejected by the consumer and accepted here: the two sides agree about what exists. Splitting would replace CAP-R5's joinable id with a translation layer.
- Solve finding C only inside resource-control. Rejected: a private class set would diverge the moment a second repository reports provision economics.
- Name the new class
L(Labour). Rejected:H/Iis the contrast the class set exists to make observable;Lalso collides with Landscape in casual speech. - Fix A and B now, defer C to a new workplan. Rejected for this revision: publishing A+B without C would leave the class set still wrong and force an immediate follow-up version. C does not require a LAND or commerce model change.
Rationale. The capability layer is working. The demand is a refinement of a model that independently converged on the same backup evidence hooks the consumer had already produced. Native units preserve constraint and substitution information that currency destroys. Observing H/I substitution from a time series is cheaper and more defensible than asserting a rate the canon cannot know.
Consequences.
- Canon
0.3.0(minor: new concepts and backward-compatible extensions; no capability id changed). ITC-CAP0.1.0→0.2.0. Status remainsproposed. - New owned concept:
CapabilityConsumption. - New rules: CAP-R8, CAP-R9.
typical_resource_classesremoved from the catalog. Any consumer that read that field must stop; it was never a durable interface.- ITC-WP-0014 T02 will encode the refined contract, not the v0.1.0 one.
- Success criterion 6 of the demand (restate the backup case in canon terms) remains a consumer contribution, now against this shape.
Review trigger. First provision that needs a native unit the class table
cannot host, or a constraint predicate outside {not_in, in, equals, lte, gte}.
A full intelligence domain model remains OQ-5.