Canon 0.4.0: joinable consumer proof and EvidenceBasis
All checks were successful
CI Smoke / host-smoke (push) Successful in 0s
CI Smoke / container-smoke (push) Successful in 1s

§10.3 now accepts a consumer record that validates against the live
catalog; resource-control's backup restatement is that proof. ITC-GOV
gains EvidenceBasis in tiers (invoiced and measured are peers) and
ITC-CAP requires it on every consumption row (CAP-R10).
This commit is contained in:
tegwick 2026-08-15 19:14:11 +02:00
parent ce17dc4d4d
commit f2d216af53
29 changed files with 605 additions and 127 deletions

View file

@ -7,7 +7,7 @@ standard_family: InfoTechCanon
repository_context: info-tech-canon
recommended_path: models/capability/InfoTechCanonCapabilityModel.md
status: proposed
version: 0.2.0
version: 0.3.0
source_version: "0.1"
source_body: Information Technology Capability Canon (ITCC)
source_file: infospace/assimilation/it-capability-canon/source/ITCapabilityCanonV0.1.md
@ -55,7 +55,7 @@ updated_at: 2026-08-15
**Short Name:** `ITC-CAP`
**Document Status:** Proposed (assimilated, not yet promoted)
**Version:** 0.2.0
**Version:** 0.3.0
**Document Type:** InfoTechCanon Domain Model
**Machine-readable catalog:** `models/capability/capabilities.yaml`
**Provenance:** adapted from ITCC v0.1 — see `assimilation/it-capability-canon`
@ -253,21 +253,30 @@ provision:
- class: S
quantity: {value: 50, unit: GB}
period: month
basis: measured
- class: H
quantity: {value: 1.0, unit: hour}
period: month
supply: internal
basis: assumed
- class: P
quantity: {value: 1, unit: unit}
period: month
supply: external
basis: quoted
- class: I
quantity: unknown
basis: unknown
```
Unknown consumption MUST be recorded as `unknown`, never as zero. Zero means
"measured and none"; unknown means "not yet measured or not applicable."
Every consumption row MUST declare an **EvidenceBasis** (ITC-GOV): how the
quantity was obtained. The closed scale, propagation rule, and decision
grades are owned there; this model imports them. A row with basis `unknown`
MUST NOT carry a quantity. A row with any other basis MUST carry a quantity.
A provision MAY override a class's default `supply` and `capacity_behaviour`
(for example contracted operator time recorded as `H` with `supply: external`).
@ -374,6 +383,10 @@ The canon does **not** declare a `substitutes_for` relation or an exchange rate
between classes. If `H` and `I` appear on the same provision in native units,
substitution is observable from the time series.
A consumption row without a basis is invalid. Collapsing `measured` and
`assumed` into one number is the same defect as collapsing hours and tokens
into currency: it destroys the information a decision actually rests on.
---
# 5. Normative Rules
@ -417,6 +430,13 @@ native unit. Unknown MUST be recorded as `unknown`, never as zero.
MUST be declared on the required capability. A target is an intended value, not
a measurement.
**CAP-R10** A CapabilityConsumption MUST declare `basis` from the ITC-GOV
EvidenceBasis catalog. Basis `unknown` MUST NOT carry a quantity; any other
basis MUST. A derived value MUST name its inputs; its effective basis is the
weakest *tier* among those inputs (ITC-GOV). Members of the same tier do not
rank against each other. Evidence items on a provision SHOULD declare a basis
on the same scale.
---
# 6. Admission Rules
@ -499,7 +519,7 @@ model. This is accepted at `proposed` status and tracked as OQ-5.
| Model | Boundary |
|---|---|
| ITC-LAND | Owns services, technologies, runtime resources, and *observed* SLOs. ITC-CAP names abilities and *intended* requirement targets; ITC-LAND names the things that provide and implement them. `BusinessCapability` / `ProductCapability` in ITC-LAND §11 should resolve to references here. |
| ITC-GOV | Owns policy, control, evidence, assurance. ITC-CAP names capability evidence *hooks*, not evidence semantics. Capability requirements are typed demand signals from the Purpose and Demand extension. |
| ITC-GOV | Owns policy, control, evidence, assurance, and **EvidenceBasis** (how a quantity was obtained). ITC-CAP names capability evidence *hooks*, not evidence semantics. A `CapabilityConsumption` MUST declare an EvidenceBasis. Capability requirements are typed demand signals from the Purpose and Demand extension. |
| ITC-ACCESS | Owns subject, principal, permission, grant, decision. `identity.*` capabilities are abilities over those mechanisms. |
| CARING | Access-governance analysis. May import `identity.*` ids; ITC-CAP takes no position on access-governance analysis. |
| ITC-OBS | Owns telemetry, SLO measurement, health — the source of measured maturity evidence. |
@ -518,8 +538,22 @@ This model enters the canon at status `proposed`. Promotion requires:
0.2.1**: the Security & Governance navigation domain was split into `security`
and `governance`, aligning every id with its domain and changing no id;
2. publication of `capability.schema.yaml` validating contracts;
3. at least one canon Profile expressing a real capability requirement set with
evidence;
3. at least one **joinable proof** that a real capability requirement set has
been expressed with provisions and evidence. A proof is either:
- a canon Profile containing such a set, or
- a consumer record that validates against the live catalog (capability
ids, profiles, quality dimensions, evidence hooks, resource classes,
native units, and constraint predicates) and is cited from this
repository as PurposeFit evidence under `feedback/`.
Operational facts stay in the consumer repo. The join is the capability
id (CAP-R5). A fictional in-repo example is a weaker proof than a
consumer record that already fails or passes against this catalog.
**Met 2026-08-15** by resource-control
`data/capability/platform-audit-storage.json` (commit `13c2b82`), cited
in `feedback/2026-08-15-resource-control-cap-restatement.md`.
4. formal mapping artifacts under `infospace/mappings/` for each anchor.
Tracked in `ITC-WP-0014`.
@ -544,3 +578,7 @@ the contract onto the provision; requirements gained profile, targets, and
constraints; class `H` added; `P` narrowed; `I` recharacterised; consumption
records use native units. See the decision record in
`assimilation/it-capability-canon/ASSIMILATION.md`.
Version 0.3.0 (canon 0.4.0) accepts a consumer record that validates against
the live catalog as a promotion proof (§10.3), and requires EvidenceBasis on
every consumption row (CAP-R10). EvidenceBasis is owned by ITC-GOV.