Canon 0.6.0 freeze: ITC-CAP draft, AVT catalog, joinable review
All checks were successful
CI Smoke / host-smoke (push) Successful in 0s
CI Smoke / container-smoke (push) Successful in 1s

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.
This commit is contained in:
tegwick 2026-08-15 19:42:30 +02:00
parent 7805560a60
commit d453e17952
44 changed files with 1485 additions and 137 deletions

View file

@ -0,0 +1,36 @@
$schema: https://json-schema.org/draft/2020-12/schema
$id: https://info-tech-canon.local/schemas/attribute-value-type.schema.yaml
title: InfoTechCanon Attribute Value Type Catalog
type: object
required:
- canon
- types
properties:
canon:
type: object
required: [id, version, owner]
types:
type: array
minItems: 1
items:
type: object
required: [id, status, kind, wire]
properties:
id:
type: string
pattern: "^[a-z][a-z0-9-]*$"
status:
enum: [current, reserved]
kind:
enum: [scalar, quantity, choice]
wire:
enum: [string, object, array, boolean]
representation:
type: string
requires_codelist:
type: [boolean, string]
aliases:
type: array
items:
type: string
additionalProperties: true

View file

@ -0,0 +1,118 @@
$schema: https://json-schema.org/draft/2020-12/schema
$id: https://info-tech-canon.local/schemas/capability-record.schema.yaml
title: InfoTechCanon Capability Requirement and Provision Record
description: >
Shape of a consumer capability case (requirement set + provisions).
Validated against the live catalog by the capability-review surface.
ITC-CAP 0.4.0 / CAP-R8R11.
type: object
required:
- requires
properties:
requires:
type: array
items:
$ref: "#/$defs/requirement"
provisions:
type: array
items:
$ref: "#/$defs/provision"
additionalProperties: true
$defs:
quantity:
type: object
properties:
value: {}
unit:
type: string
requirement:
type: object
required: [capability]
properties:
capability:
type: string
profile:
type: string
minimum_maturity:
type: string
pattern: "^D[0-7]$"
targets:
type: object
additionalProperties:
type: object
constraints:
type: array
items:
type: object
required: [dimension, predicate]
properties:
dimension:
type: string
predicate:
enum: [not_in, in, equals, lte, gte]
of:
type: array
provision:
type: object
required: [provider, capability, maturity]
properties:
provider:
type: string
capability:
type: string
profile:
type: string
environment:
type: string
maturity:
type: string
pattern: "^D[0-7]$"
uses_provisions:
type: array
items:
type: object
required: [capability, provider, relation]
properties:
capability:
type: string
provider:
type: string
relation:
enum: [depends_on, may_use]
consumes:
type: array
items:
type: object
required: [class, quantity, basis]
properties:
class:
type: string
pattern: "^[A-Z]$"
quantity:
$ref: "#/$defs/quantity"
basis:
enum:
- invoiced
- measured
- quoted
- derived
- projected
- estimated
- assumed
- unknown
supply:
enum: [internal, external]
period:
type: string
gap:
type: string
evidence:
type: array
items:
type: object
required: [hook]
properties:
hook:
type: string
basis:
type: string

View file

@ -0,0 +1,114 @@
$schema: https://json-schema.org/draft/2020-12/schema
$id: https://info-tech-canon.local/schemas/capability.schema.yaml
title: InfoTechCanon Capability Catalog (ITC-CAP 0.4.0)
description: >
Contract for capabilities.yaml. Encodes ITC-CAP 0.4.0 — no
typical_resource_classes; resource classes carry native_unit, supply,
and capacity_behaviour. Requirement and provision records are validated
separately by the capability-review surface.
type: object
required:
- canon
- resource_classes
- maturity_levels
- domains
properties:
canon:
type: object
required: [id, version]
properties:
id:
const: itc-cap
version:
type: string
status:
type: string
canon_version:
type: string
resource_classes:
type: array
minItems: 1
items:
type: object
required: [id, name, native_unit, supply, capacity_behaviour]
properties:
id:
type: string
pattern: "^[A-Z]$"
name:
type: string
native_unit:
type: string
supply:
enum: [internal, external]
capacity_behaviour:
enum: [elastic, constrained]
additionalProperties: true
maturity_levels:
type: array
minItems: 8
items:
type: object
required: [id, name]
properties:
id:
type: string
pattern: "^D[0-7]$"
applies_to:
const: capability_provision
relationship_types:
type: array
domains:
type: array
minItems: 1
items:
type: object
required: [id, name, capabilities]
properties:
navigation_only:
type: boolean
capabilities:
type: array
items:
$ref: "#/$defs/capability"
additionalProperties: true
$defs:
capability:
type: object
required: [id, name, purpose]
properties:
id:
type: string
pattern: "^[a-z]+\\.[a-z0-9-]+$"
name:
type: string
purpose:
type: string
anchors:
type: array
items:
type: string
profiles:
type: array
items:
type: string
quality_dimensions:
type: array
items:
type: string
evidence_hooks:
type: array
items:
type: string
depends_on:
type: array
items:
type: string
may_use:
type: array
items:
type: string
typical_resource_classes:
not: {}
description: Forbidden. Consumption attaches to a provision (CAP-R8).
additionalProperties: true

View file

@ -17,3 +17,9 @@ schemas:
path: workplan.schema.yaml
- id: alignment-review
path: alignment-review.schema.yaml
- id: capability
path: capability.schema.yaml
- id: capability-record
path: capability-record.schema.yaml
- id: attribute-value-type
path: attribute-value-type.schema.yaml