info-tech-canon/CHANGELOG.md
tegwick d453e17952
All checks were successful
CI Smoke / host-smoke (push) Successful in 0s
CI Smoke / container-smoke (push) Successful in 1s
Canon 0.6.0 freeze: ITC-CAP draft, AVT catalog, joinable review
Finish ITC-WP-0013 (AttributeValueType under ITC-DATA) and ITC-WP-0014
T02/T03/T05/T06/T07. Capability contract schemas, live-catalog review
CLI, landscape/kernel-map pointers. Sit on this version.
2026-08-15 19:42:30 +02:00

307 lines
14 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.

# Changelog — InfoTechCanon
Canon versions and their change notes. Entries follow the ChangeRecord shape of
`InfoTechCanonCore` §8.13: what changed, rationale, whether it is breaking, and
what produced it.
Versioning of `canon.yaml → version`:
- **patch** — editorial or generated-output changes; no concept change
- **minor** — new artifact, new concepts, backward-compatible extension
- **major** — a concept is removed, renamed, or its ownership moves
Canonical identifiers are durable interfaces; any break requires migration
semantics.
---
## 0.6.0 — 2026-08-15
### Frozen — ITC-CAP draft; AttributeValueType catalog; joinable review
**Change.** Canon 0.6.0 is the freeze cut.
- **ITC-CAP** promoted from `proposed` to `draft`. Contract schemas
published: `capability.schema.yaml` (catalog) and
`capability-record.schema.yaml` (requirement/provision records).
`make validate` enforces CAP-R8 on the catalog.
- **Capability-review surface:** `info-tech-canon capability-review PATH`
and `GET /capability-review?path=` join a consumer record to the live
catalog (OQ-6 / ITC-WP-0014 T06).
- **Mappings:** `infospace/mappings/capability-anchors.yaml` formalizes
the assimilation mappings (T03).
- **Landscape §11.4** and **Kernel Map §4.14** now point at ITC-CAP (T05).
- **AttributeValueType** catalog under ITC-DATA
(`models/data/attribute-value-types.yaml`) from
`demand/AttributeValueTypes.md` (ITC-WP-0013). citation-evidence
alignment note published.
ITC-WP-0013 and ITC-WP-0014 are finished. T04 (small-saas illustration)
remains optional and does not block the freeze.
**Rationale.** One consumer cycle has refined the capability model; a
second consumer needed a closed capture-type catalog. Further shape
change of ITC-CAP needs a new minor. 0.6.0 is the version to sit on.
**Breaking:** no capability id or AttributeValueType id invented as a
break. New catalogs and schemas only.
**Validation.** `make validate` 0 errors / 0 warnings; `make test` 23 passed.
---
## 0.5.0 — 2026-08-15
### Added — Provision-to-provision relationships (`uses_provisions`)
**Change.** A `CapabilityProvision` may name the provisions it relies on
under `uses_provisions`. Each entry is a catalog capability, a consumer
landscape `provider` reference, and a `relation` of `depends_on` or
`may_use` — the existing capability-to-capability vocabulary, not a new
one. A `depends_on` entry MUST be declared between those capabilities in
the catalog; a `may_use` entry SHOULD. Using another capability is not
consuming class `P` (CAP-R11).
`data.backup` gains catalog `may_use: security.secrets`, from the
resource-control restatement. Maturity is not derived or capped across
the dependency.
EvidenceBasis tiers are refined in the same cut: `invoiced` and
`measured` remain peers (`observed`); `quoted` sits below them for
propagation and still counts as evidenced for decision grades. The
consumer found that a strict list order made an invoice outrank a
measurement.
**Rationale.** The catalog can say `data.backup depends_on data.object`;
a provision could not say *which* object provision satisfies that for
it. The leftover was a `consumes:P` row for OpenBao credential custody —
the wrong kind, and the start of `P` widening again after finding C
narrowed it. Filed as `demand/ProvisionRelationships.md`.
**Breaking:** no capability id changed. New optional field on the
still-proposed provision record. Consumers who wrote `relation: uses`
should spell it `may_use`.
**Records.** `ADHOC-2026-08-15` T03; demand accepted.
**Validation.** `make validate` 0 errors / 0 warnings; `make test` 22 passed.
---
## 0.4.0 — 2026-08-15
### Changed — Joinable consumer proof counts for ITC-CAP promotion
**Change.** ITC-CAP §10.3 no longer requires a canon Profile as the only
form of "a real capability requirement set with evidence." A consumer
record that validates against the live catalog and is cited from
`feedback/` is a proof. Operational facts stay in the consumer repo; the
join is the capability id.
**Met by** resource-control `data/capability/platform-audit-storage.json`
(commit `13c2b82`), cited in
`feedback/2026-08-15-resource-control-cap-restatement.md`. Requirement
`data.backup` D5 is `below_requirement` at provision D4; all four backup
hooks are measured. ITC-WP-0014 T11 done; T04 (small-saas illustration)
no longer blocks T07.
**Rationale.** A fictional in-repo example is a weaker proof than a
joinable provision that already fails or passes against this catalog.
**Breaking:** no.
### Added — EvidenceBasis (ITC-GOV), required on CapabilityConsumption
**Change.** ITC-GOV gains `EvidenceBasis`: a closed vocabulary for how a
quantity was obtained, in **tiers** rather than a total order
(`evidenced`: invoiced / measured / quoted; then `projected`; then
`judgement`: estimated / assumed; then `unknown`). A derived value
resolves to the weakest *tier* among its inputs. Unknown-is-not-zero.
Optional `proxy_for` / `observed_at`. Decision grades (`evidenced` /
`projected` / `indicative` / `insufficient`). Catalog:
`infospace/models/governance/evidence-basis.yaml`. ITC-CAP 0.3.0 imports
it; CAP-R10 requires `basis` on every consumption row.
**Rationale.** Native units without a basis still let an assumed hour and
a measured gigabyte sit in one list as the same kind of knowledge. The
consumer's first application graded a €29.14/month provider comparison
`indicative`. A private scale would diverge the moment a second
repository reports provision economics — the same argument accepted for
class `H`.
**Ownership.** ITC-GOV Evidence, not a CAP-only dialect. `invoiced` names
a fin-hub booked fact; this canon does not originate booked costs. Not
the OQ-3 state qualifier.
**Breaking:** no capability id changed. New required field on consumption
records of the still-proposed capability model.
**Records.** `demand/EvidenceBasis.md`; `ITC-WP-0015` finished.
**Validation.** `make validate` 0 errors / 0 warnings; `make test` 22 passed.
---
## 0.3.0 — 2026-08-15
### Changed — Capability provision economics (requirement targets, native-unit consumption, class `H`)
**Change.** The still-proposed Capability Model (`ITC-CAP`) moves from `0.1.0` to
`0.2.0` in response to consumer demand `demand/CapabilityProvisionEconomics.md`
(resource-control, a completed procurement-to-control cycle).
- **Contracts** no longer declare `typical_resource_classes`. Resource
consumption attaches to a provision only (new CAP-R8), matching the rule §4.11
already stated.
- **CapabilityRequirement** may select a profile, assert intended quality
targets against the capability's declared dimensions, and state placement
constraints with a closed predicate set (`not_in`, `in`, `equals`, `lte`,
`gte`). Measurement remains with ITC-LAND / ITC-OBS (new CAP-R9).
- **Resource classes** gain `H` (Human Effort, native unit `hour`, default
supply `internal`, default capacity `constrained`). `P` is narrowed to
purchased platform and enabling services and no longer absorbs human time.
`I` is recharacterised as the elastic purchased substitute for `H`, native
unit `token`. Every class declares `native_unit`, `supply`, and
`capacity_behaviour`; a consumption record may override the last two.
- **CapabilityConsumption** is a new owned concept: one native-unit row on a
provision. Unknown is recorded as `unknown`, never as zero. Currency is not a
class. No `substitutes_for` relation and no H↔I exchange rate.
- Quality dimension `intelligence_intensity` is declared on all five
`intelligence.*` capabilities.
**Rationale.** The catalog, evidence hooks, and D-scale independently matched
the consumer's backup evidence. The three defects were cheapest to fix before
`capability.schema.yaml` freezes the contract and before the consumer restates
the real provision. Splitting ITC-CAP into demand-side and supply-side canons
was considered and rejected: both sides agree about what exists.
**Breaking:** no capability id, anchor, profile (except the new dimension on
`intelligence.*`), evidence hook, or relationship type changed.
`typical_resource_classes` is removed from the catalog; it was never a durable
interface.
**Records.** Decision record in
`assimilation/it-capability-canon/ASSIMILATION.md`; OQ-5 notes a partial fire;
`ITC-WP-0014` T08T10 done.
**Validation.** `make validate` 0 errors / 0 warnings; `make test` 22 passed.
---
## 0.2.1 — 2026-08-15
### Changed — Capability navigation domains split (OQ-2 resolved)
**Change.** The `security` navigation domain ("Security & Governance") is split
into `security` (`security.secrets`, `security.keys`, `security.policy`,
`security.vulnerability`) and `governance` (`governance.evidence`,
`governance.lifecycle`). The baseline is now **41 capabilities across 9
navigation domains**.
**Rationale.** Four capabilities in the domain used the `security.` prefix while
two used `governance.`. Capability ids are durable interfaces (CAP-R5), so the
mismatch could not be corrected later without migration semantics, and it blocked
promotion of ITC-CAP beyond `proposed`. Navigation domains are declared
`navigation_only: true` and carry no semantics, so splitting one is a
table-of-contents change.
**Options rejected.** Keeping the mismatch (leaves a defect in the model's primary
index); renumbering `governance.*` to `security.*` (breaks two durable interfaces
for a cosmetic gain, requiring a major version).
**Breaking:** no. **No capability id, anchor, profile, quality dimension, evidence
hook, or relationship changed.** Artifact count, schemas, and consumers are
unaffected.
**Records.** Decision record in
`infospace/assimilation/it-capability-canon/ASSIMILATION.md`; OQ-2 closed in
`open-questions.md`; `ITC-WP-0014` T01 done.
**Validation.** `make validate` 0 errors / 0 warnings; `make test` 22 passed.
---
## 0.2.0 — 2026-08-14
### Added — InfoTechCanon Capability Model (`ITC-CAP`)
**Change.** The canon gains a twelfth domain model,
`infospace/models/capability/InfoTechCanonCapabilityModel.md`, with its
machine-readable baseline at `infospace/models/capability/capabilities.yaml`:
41 capabilities across 8 navigation domains, the D0D7 provision maturity scale,
the C/S/N/I/P resource classes, capability relationship types, and admission
rules.
New canonical concepts: `Capability`, `CapabilityDomain`, `CapabilityProfile`,
`CapabilityContract`, `CapabilityRequirement`, `CapabilityProvider`,
`CapabilityProvision`, `CapabilityMaturityLevel`, `CapabilityQualityDimension`,
`CapabilityEvidenceHook`, `CapabilityResourceClass`, `CapabilityInclusionRule`.
**Rationale.** The canon modelled landscape, data, security, delivery, network,
observability, governance, organization, task, and access — but never *what an
information system must be able to do*. The Landscape Model deferred this ground
explicitly (§11.4). Consumers were already working around the gap.
**Source and disposition.** Adapted from the Information Technology Capability
Canon (ITCC) v0.1 under assimilation `assimilation/it-capability-canon`,
disposition `adapt`. Changes made on adoption:
- `Profile` renamed to `CapabilityProfile` — the name collided with the canon
`Profile` artifact type (Core §8.6);
- `CapabilityProvision` made explicit, so maturity has a defined bearer;
- per-capability `anchors` added, naming the canon model(s) owning the concepts
each capability exercises (guards Core §6.2 and §6.3);
- `CapabilityRequirement` bound to the Purpose and Demand extension as a typed
`DemandSignal` rather than a parallel vocabulary;
- the source's proposed CILM landscape model **rejected** — the Landscape Model
already owns that ground;
- capability definitions held only in YAML; the Markdown does not restate them.
**Breaking:** no. No existing canonical concept was removed, renamed, or moved.
**Artifact status.** The model enters at `proposed`. Promotion requires
resolution of open question OQ-2 (the `governance.*` id prefix), a published
contract schema, formal mapping artifacts, and one profile expressing a real
requirement set with evidence — tracked in `ITC-WP-0014`.
**Known weakness.** Seven capabilities (`commerce.*` except `entitlement`, and
four `intelligence.*`) are unanchored — new canon surface with no owning model
(OQ-5). Accepted at `proposed` status.
### Added — Intake and Assimilation Practice
`infospace/assimilation/intake-and-assimilation-practice.md` defines the
repository-wide procedure for absorbing new concepts and terminology: the
`incoming/` drop zone, frozen source snapshots, the Minimal Assimilation Profile,
the disposition gate, canon transformation and registration, and the resulting
canon version with change notes. `incoming/README.md` documents the drop zone.
**Rationale.** Inputs previously had no defined path from arrival to canon,
risking the copy-paste assimilation Core §29.6 warns against.
### Changed
- `canon.yaml` — version `0.1.0-scaffold``0.2.0`; `itc-cap` registered under
`models:` with assimilation provenance.
- `infospace/artifacts/index.yaml` — registered `model/capability`,
`capability-catalog/itc-cap`, `assimilation/it-capability-canon`,
`practice/intake-and-assimilation` (65 artifacts, up from 61).
- `infospace/infospace.yaml` — Capability Model added to disciplines.
- Regenerated agent briefs, retrieval indexes, and views.
- `tests/` — artifact and model counts updated to match the registered canon.
- `workplans/index.yaml` — registered `ITC-WP-0014`, and `ITC-WP-0013` which was
missing from the registry.
### Validation
`make validate` passes with 0 errors and 0 warnings (65 artifacts, 286
relationships, 0 consistency cycles, coverage 1.0, redundancy 0.0).
`make test` passes (22 tests).
---
## 0.1.0-scaffold
Seed kernel: kernel documents, eleven domain models, three standards, the
infospace scaffold, service surface (CLI / JSON / API), generated views and
agent briefs. See `workplans/` ITC-WP-0001 through ITC-WP-0012 for the history.