Introduce identity model and reconcile upstream imports
All checks were successful
CI Smoke / host-smoke (push) Successful in 0s
CI Smoke / container-smoke (push) Successful in 1s

Assistant: codex
Assistant-Model: gpt-6-astra
Assistant-Session: 01a070b5-4994-7271-bd8b-7c3dbcedec4b
This commit is contained in:
tegwick 2026-09-05 22:11:46 +02:00
parent a2b254786e
commit 361c944325
38 changed files with 1014 additions and 123 deletions

View file

@ -11,6 +11,7 @@
| workplan | ITC-WP-ADHOC-2026-08-15 | finished | — | workplans/ADHOC-2026-08-15.md |
| workplan | INFO-WP-0019 | blocked | — | workplans/INFO-WP-0019-conformance-and-maintenance.md |
| workplan | INFO-WP-0020 | finished | — | workplans/INFO-WP-0020-shared-evidence-model.md |
| workplan | INFO-WP-0021 | finished | — | workplans/INFO-WP-0021-identity-model.md |
| workplan | ITC-WP-0001 | finished | — | workplans/ITC-WP-0001-infospace-scaffold-and-seed-placement.md |
| workplan | ITC-WP-0002 | finished | — | workplans/ITC-WP-0002-service-surface-cli-json-api.md |
| workplan | ITC-WP-0003 | finished | — | workplans/ITC-WP-0003-validation-indexes-and-generated-views.md |
@ -41,6 +42,9 @@
| task | INFO-WP-0020-T01 | done | — | workplans/INFO-WP-0020-shared-evidence-model.md |
| task | INFO-WP-0020-T02 | done | — | workplans/INFO-WP-0020-shared-evidence-model.md |
| task | INFO-WP-0020-T03 | done | — | workplans/INFO-WP-0020-shared-evidence-model.md |
| task | INFO-WP-0021-T01 | done | — | workplans/INFO-WP-0021-identity-model.md |
| task | INFO-WP-0021-T02 | done | — | workplans/INFO-WP-0021-identity-model.md |
| task | INFO-WP-0021-T03 | done | — | workplans/INFO-WP-0021-identity-model.md |
| task | ITC-WP-0001-T01 | done | — | workplans/ITC-WP-0001-infospace-scaffold-and-seed-placement.md |
| task | ITC-WP-0001-T02 | done | — | workplans/ITC-WP-0001-infospace-scaffold-and-seed-placement.md |
| task | ITC-WP-0001-T03 | done | — | workplans/ITC-WP-0001-infospace-scaffold-and-seed-placement.md |

View file

@ -1,7 +1,7 @@
repository: info-tech-canon
title: InfoTechCanon
status: service-baseline
version: 0.8.0
version: 0.9.0
description: >
An evolving, markdown-first canon for building interoperable, adaptable,
and extensible information-processing systems.
@ -61,6 +61,11 @@ models:
title: InfoTechCanonGovernanceModel
path: infospace/models/governance/InfoTechCanonGovernanceModel.md
status: RC1-seed
- id: itc-ident
title: InfoTechCanonIdentityModel
path: infospace/models/identity/InfoTechCanonIdentityModel.md
status: draft
version: 0.1.0
- id: itc-evid
title: InfoTechCanonEvidenceModel
path: infospace/models/evidence/InfoTechCanonEvidenceModel.md

View file

@ -22,6 +22,7 @@ Imports and anchors:
- `kernel/itc-core`
- `model/evidence`
- `model/governance`
- `model/identity`
- `model/organization`
## Owned Concepts

View file

@ -0,0 +1,56 @@
---
id: agent-brief/model-identity
artifact_id: model/identity
source_path: models/identity/InfoTechCanonIdentityModel.md
source_kind: model
generated: true
---
<!-- GENERATED by info_tech_canon; do not edit by hand. -->
# Agent Brief: InfoTechCanon Identity Model
- Artifact ID: `model/identity`
- Kind: `model`
- Canonical path: `models/identity/InfoTechCanonIdentityModel.md`
- Full source: `models/identity/InfoTechCanonIdentityModel.md`
- Summary: Domain model used by canon profiles and standards: InfoTechCanon Identity Model.
## Retrieval Hints
Imports and anchors:
- `kernel/itc-core`
- `model/access-control`
- `model/evidence`
- `model/organization`
## Owned Concepts
- `Account`
- `Administration Relationship`
- `Affiliation Relationship`
- `Assurance Level`
- `Claim`
- `Credential`
- `Delegation Relationship`
- `Following Relationship`
- `Identifier`
- `Identity Record`
- `InfoTechCanon Identity Model`
- `Lifecycle State`
- `Persona`
- `Profile`
- `Pseudonymous Identifier`
- `Realm`
- `Relationship`
- `Representation Relationship`
- `Scope`
- `Scoped Identifier`
- `Service Account`
- `Synonymity Assertion`
- `Tenant`
- `Trust Relationship`
## Related Distinctions
No common distinction is anchored directly on this artifact.

View file

@ -21,6 +21,7 @@ generated: true
Imports and anchors:
- `kernel/itc-core`
- `model/evidence`
- `model/identity`
## Owned Concepts

View file

@ -21,6 +21,7 @@ generated: true
Imports and anchors:
- `kernel/itc-core`
- `model/evidence`
- `model/identity`
## Owned Concepts

View file

@ -5,8 +5,8 @@
This brief summarizes the current canon service surface for agents.
- Infospace slug: `canon`
- Artifact count: 77
- Retrieval index items: 77
- Artifact count: 78
- Retrieval index items: 78
- Primary confidence command: `make validate`
- Refresh generated indexes and views with: `make index`
- Refresh agent briefs and interface templates with: `make agent-briefs`

View file

@ -60,7 +60,7 @@
}
],
"infospace": "canon",
"item_count": 77,
"item_count": 78,
"items": [
{
"canonical_path": "assimilation/emission-cadence/ASSIMILATION.md",
@ -1073,6 +1073,10 @@
"target": "model/evidence",
"type": "maps"
},
{
"target": "model/identity",
"type": "maps"
},
{
"target": "model/task",
"type": "maps"
@ -1196,6 +1200,7 @@
"kernel/itc-core",
"model/evidence",
"model/governance",
"model/identity",
"model/organization"
],
"kind": "model",
@ -1203,6 +1208,10 @@
"InfoTechCanon Access Control Model"
],
"relationships": [
{
"target": "model/identity",
"type": "uses"
},
{
"target": "model/evidence",
"type": "uses"
@ -1422,18 +1431,82 @@
"title": "InfoTechCanon Governance Model",
"warnings": []
},
{
"canonical_path": "models/identity/InfoTechCanonIdentityModel.md",
"id": "model/identity",
"imports": [
"kernel/itc-core",
"model/access-control",
"model/evidence",
"model/organization"
],
"kind": "model",
"owned_concepts": [
"Account",
"Administration Relationship",
"Affiliation Relationship",
"Assurance Level",
"Claim",
"Credential",
"Delegation Relationship",
"Following Relationship",
"Identifier",
"Identity Record",
"InfoTechCanon Identity Model",
"Lifecycle State",
"Persona",
"Profile",
"Pseudonymous Identifier",
"Realm",
"Relationship",
"Representation Relationship",
"Scope",
"Scoped Identifier",
"Service Account",
"Synonymity Assertion",
"Tenant",
"Trust Relationship"
],
"relationships": [
{
"target": "kernel/itc-core",
"type": "conforms_to"
},
{
"target": "model/organization",
"type": "uses"
},
{
"target": "model/access-control",
"type": "uses"
},
{
"target": "model/evidence",
"type": "uses"
}
],
"source_path": "../prj-canon-federation/ledger/concept-ownership.json",
"summary": "Domain model used by canon profiles and standards: InfoTechCanon Identity Model.",
"title": "InfoTechCanon Identity Model",
"warnings": []
},
{
"canonical_path": "models/information-space/InfoTechCanonInformationSpaceModel.md",
"id": "model/information-space",
"imports": [
"kernel/itc-core",
"model/evidence"
"model/evidence",
"model/identity"
],
"kind": "model",
"owned_concepts": [
"InfoTechCanon Information Space Model"
],
"relationships": [
{
"target": "model/identity",
"type": "uses"
},
{
"target": "model/evidence",
"type": "uses"
@ -1541,13 +1614,18 @@
"id": "model/organization",
"imports": [
"kernel/itc-core",
"model/evidence"
"model/evidence",
"model/identity"
],
"kind": "model",
"owned_concepts": [
"InfoTechCanon Organization Model"
],
"relationships": [
{
"target": "model/identity",
"type": "uses"
},
{
"target": "model/evidence",
"type": "uses"

View file

@ -4,7 +4,7 @@
Schema: `info-tech-canon.retrieval-index.v1`
Infospace: `canon`
Items: **77**
Items: **78**
## Common Distinctions
@ -354,7 +354,7 @@ Items: **77**
- Canonical path: `models/access-control/InfoTechCanonAccessControlModel.md`
- Source path: `seeds/InfoTechCanonAccessControlModel_RC1_seed.md`
- Summary: Domain model used by canon profiles and standards: InfoTechCanon Access Control Model.
- Imports and anchors: `kernel/itc-core`, `model/evidence`, `model/governance`, `model/organization`
- Imports and anchors: `kernel/itc-core`, `model/evidence`, `model/governance`, `model/identity`, `model/organization`
- Owned concepts: `InfoTechCanon Access Control Model`
### InfoTechCanon Capability Model
@ -407,6 +407,16 @@ Items: **77**
- Imports and anchors: `kernel/itc-core`, `model/evidence`
- Owned concepts: `InfoTechCanon Governance Model`
### InfoTechCanon Identity Model
- ID: `model/identity`
- Kind: `model`
- Canonical path: `models/identity/InfoTechCanonIdentityModel.md`
- Source path: `../prj-canon-federation/ledger/concept-ownership.json`
- Summary: Domain model used by canon profiles and standards: InfoTechCanon Identity Model.
- Imports and anchors: `kernel/itc-core`, `model/access-control`, `model/evidence`, `model/organization`
- Owned concepts: `Account`, `Administration Relationship`, `Affiliation Relationship`, `Assurance Level`, `Claim`, `Credential`, `Delegation Relationship`, `Following Relationship`, `Identifier`, `Identity Record`, `InfoTechCanon Identity Model`, `Lifecycle State`, `Persona`, `Profile`, `Pseudonymous Identifier`, `Realm`, `Relationship`, `Representation Relationship`, `Scope`, `Scoped Identifier`, `Service Account`, `Synonymity Assertion`, `Tenant`, `Trust Relationship`
### InfoTechCanon Information Space Model
- ID: `model/information-space`
@ -414,7 +424,7 @@ Items: **77**
- Canonical path: `models/information-space/InfoTechCanonInformationSpaceModel.md`
- Source path: `seeds/InfoTechCanonInformationSpaceModel_RC1_seed.md`
- Summary: Domain model used by canon profiles and standards: InfoTechCanon Information Space Model.
- Imports and anchors: `kernel/itc-core`, `model/evidence`
- Imports and anchors: `kernel/itc-core`, `model/evidence`, `model/identity`
- Owned concepts: `InfoTechCanon Information Space Model`
### InfoTechCanon Landscape Model
@ -454,7 +464,7 @@ Items: **77**
- Canonical path: `models/organization/InfoTechCanonOrganizationModel.md`
- Source path: `seeds/InfoTechCanonOrganizationModel_RC1_seed.md`
- Summary: Domain model used by canon profiles and standards: InfoTechCanon Organization Model.
- Imports and anchors: `kernel/itc-core`, `model/evidence`
- Imports and anchors: `kernel/itc-core`, `model/evidence`, `model/identity`
- Owned concepts: `InfoTechCanon Organization Model`
### InfoTechCanon Purpose And Demand Model Extension

View file

@ -1,6 +1,6 @@
schema: info-tech-canon.retrieval-index.v1
infospace: canon
item_count: 77
item_count: 78
items:
- id: assimilation/emission-cadence
kind: assimilation
@ -658,6 +658,8 @@ items:
target: model/governance
- type: maps
target: model/evidence
- type: maps
target: model/identity
- type: maps
target: model/task
- type: maps
@ -741,8 +743,11 @@ items:
- kernel/itc-core
- model/evidence
- model/governance
- model/identity
- model/organization
relationships:
- type: uses
target: model/identity
- type: uses
target: model/evidence
- type: conforms_to
@ -887,6 +892,53 @@ items:
- type: introduces
target: catalog/evidence-basis
warnings: []
- id: model/identity
kind: model
title: InfoTechCanon Identity Model
canonical_path: models/identity/InfoTechCanonIdentityModel.md
source_path: ../prj-canon-federation/ledger/concept-ownership.json
summary: 'Domain model used by canon profiles and standards: InfoTechCanon Identity
Model.'
owned_concepts:
- Account
- Administration Relationship
- Affiliation Relationship
- Assurance Level
- Claim
- Credential
- Delegation Relationship
- Following Relationship
- Identifier
- Identity Record
- InfoTechCanon Identity Model
- Lifecycle State
- Persona
- Profile
- Pseudonymous Identifier
- Realm
- Relationship
- Representation Relationship
- Scope
- Scoped Identifier
- Service Account
- Synonymity Assertion
- Tenant
- Trust Relationship
imports:
- kernel/itc-core
- model/access-control
- model/evidence
- model/organization
relationships:
- type: conforms_to
target: kernel/itc-core
- type: uses
target: model/organization
- type: uses
target: model/access-control
- type: uses
target: model/evidence
warnings: []
- id: model/information-space
kind: model
title: InfoTechCanon Information Space Model
@ -899,7 +951,10 @@ items:
imports:
- kernel/itc-core
- model/evidence
- model/identity
relationships:
- type: uses
target: model/identity
- type: uses
target: model/evidence
- type: conforms_to
@ -977,7 +1032,10 @@ items:
imports:
- kernel/itc-core
- model/evidence
- model/identity
relationships:
- type: uses
target: model/identity
- type: uses
target: model/evidence
- type: conforms_to

View file

@ -29,6 +29,8 @@ artifacts:
target: model/governance
- type: maps
target: model/evidence
- type: maps
target: model/identity
- type: maps
target: model/task
- type: maps
@ -58,6 +60,8 @@ artifacts:
placement: copied
placement_workplan: ITC-WP-0001
relationships:
- type: uses
target: model/identity
- type: uses
target: model/evidence
- type: conforms_to
@ -84,6 +88,8 @@ artifacts:
placement: copied
placement_workplan: ITC-WP-0001
relationships:
- type: uses
target: model/identity
- type: uses
target: model/evidence
- type: conforms_to
@ -103,6 +109,23 @@ artifacts:
target: kernel/itc-core
- type: introduces
target: catalog/evidence-basis
- id: model/identity
path: models/identity/InfoTechCanonIdentityModel.md
kind: model
title: InfoTechCanon Identity Model
provenance:
placement: adapted
placement_workplan: INFO-WP-0021
source_path: ../prj-canon-federation/ledger/concept-ownership.json
relationships:
- type: conforms_to
target: kernel/itc-core
- type: uses
target: model/organization
- type: uses
target: model/access-control
- type: uses
target: model/evidence
- id: model/evidence
path: models/evidence/InfoTechCanonEvidenceModel.md
kind: model
@ -221,6 +244,8 @@ artifacts:
placement: copied
placement_workplan: ITC-WP-0001
relationships:
- type: uses
target: model/identity
- type: uses
target: model/evidence
- type: conforms_to

View file

@ -1,5 +1,5 @@
root: infospace
file_count: 210
file_count: 214
files:
- path: README.md
directory: .
@ -115,6 +115,9 @@ files:
- path: agent/briefs/model-governance.md
directory: agent/briefs
name: model-governance.md
- path: agent/briefs/model-identity.md
directory: agent/briefs
name: model-identity.md
- path: agent/briefs/model-information-space.md
directory: agent/briefs
name: model-information-space.md
@ -430,6 +433,12 @@ files:
- path: models/governance/evidence-basis.yaml
directory: models/governance
name: evidence-basis.yaml
- path: models/identity/InfoTechCanonIdentityModel.md
directory: models/identity
name: InfoTechCanonIdentityModel.md
- path: models/identity/boundary-review.md
directory: models/identity
name: boundary-review.md
- path: models/information-space/InfoTechCanonInformationSpaceModel.md
directory: models/information-space
name: InfoTechCanonInformationSpaceModel.md
@ -607,6 +616,9 @@ files:
- path: validation/latest.json
directory: validation
name: latest.json
- path: validation/model-import-reviews.yaml
directory: validation
name: model-import-reviews.yaml
- path: views/README.md
directory: views
name: README.md

View file

@ -1,4 +1,4 @@
concept_count: 134
concept_count: 158
concepts:
- concept: "Assimilation \u2014 EmissionCadenceDeclaration handover"
owner: assimilation/emission-cadence
@ -224,6 +224,102 @@ concepts:
owner: model/governance
path: models/governance/InfoTechCanonGovernanceModel.md
source: artifact_title
- concept: InfoTechCanon Identity Model
owner: model/identity
path: models/identity/InfoTechCanonIdentityModel.md
source: artifact_title
- concept: Account
owner: model/identity
path: models/identity/InfoTechCanonIdentityModel.md
source: frontmatter.owned_concepts
- concept: Service Account
owner: model/identity
path: models/identity/InfoTechCanonIdentityModel.md
source: frontmatter.owned_concepts
- concept: Identity Record
owner: model/identity
path: models/identity/InfoTechCanonIdentityModel.md
source: frontmatter.owned_concepts
- concept: Identifier
owner: model/identity
path: models/identity/InfoTechCanonIdentityModel.md
source: frontmatter.owned_concepts
- concept: Scoped Identifier
owner: model/identity
path: models/identity/InfoTechCanonIdentityModel.md
source: frontmatter.owned_concepts
- concept: Credential
owner: model/identity
path: models/identity/InfoTechCanonIdentityModel.md
source: frontmatter.owned_concepts
- concept: Claim
owner: model/identity
path: models/identity/InfoTechCanonIdentityModel.md
source: frontmatter.owned_concepts
- concept: Profile
owner: model/identity
path: models/identity/InfoTechCanonIdentityModel.md
source: frontmatter.owned_concepts
- concept: Persona
owner: model/identity
path: models/identity/InfoTechCanonIdentityModel.md
source: frontmatter.owned_concepts
- concept: Scope
owner: model/identity
path: models/identity/InfoTechCanonIdentityModel.md
source: frontmatter.owned_concepts
- concept: Tenant
owner: model/identity
path: models/identity/InfoTechCanonIdentityModel.md
source: frontmatter.owned_concepts
- concept: Realm
owner: model/identity
path: models/identity/InfoTechCanonIdentityModel.md
source: frontmatter.owned_concepts
- concept: Relationship
owner: model/identity
path: models/identity/InfoTechCanonIdentityModel.md
source: frontmatter.owned_concepts
- concept: Affiliation Relationship
owner: model/identity
path: models/identity/InfoTechCanonIdentityModel.md
source: frontmatter.owned_concepts
- concept: Following Relationship
owner: model/identity
path: models/identity/InfoTechCanonIdentityModel.md
source: frontmatter.owned_concepts
- concept: Representation Relationship
owner: model/identity
path: models/identity/InfoTechCanonIdentityModel.md
source: frontmatter.owned_concepts
- concept: Delegation Relationship
owner: model/identity
path: models/identity/InfoTechCanonIdentityModel.md
source: frontmatter.owned_concepts
- concept: Administration Relationship
owner: model/identity
path: models/identity/InfoTechCanonIdentityModel.md
source: frontmatter.owned_concepts
- concept: Trust Relationship
owner: model/identity
path: models/identity/InfoTechCanonIdentityModel.md
source: frontmatter.owned_concepts
- concept: Synonymity Assertion
owner: model/identity
path: models/identity/InfoTechCanonIdentityModel.md
source: frontmatter.owned_concepts
- concept: Lifecycle State
owner: model/identity
path: models/identity/InfoTechCanonIdentityModel.md
source: frontmatter.owned_concepts
- concept: Assurance Level
owner: model/identity
path: models/identity/InfoTechCanonIdentityModel.md
source: frontmatter.owned_concepts
- concept: Pseudonymous Identifier
owner: model/identity
path: models/identity/InfoTechCanonIdentityModel.md
source: frontmatter.owned_concepts
- concept: InfoTechCanon Information Space Model
owner: model/information-space
path: models/information-space/InfoTechCanonInformationSpaceModel.md

View file

@ -38,6 +38,7 @@ artifacts:
- model/devsecops
- model/evidence
- model/governance
- model/identity
- model/information-space
- model/landscape
- model/network
@ -385,6 +386,8 @@ rows:
- maps
model/governance:
- maps
model/identity:
- maps
model/information-space:
- maps
model/landscape:
@ -429,6 +432,8 @@ rows:
- uses
model/governance:
- uses
model/identity:
- uses
model/organization:
- uses
- artifact: model/capability
@ -483,12 +488,24 @@ rows:
- conforms_to
model/evidence:
- uses
- artifact: model/identity
targets:
kernel/itc-core:
- conforms_to
model/access-control:
- uses
model/evidence:
- uses
model/organization:
- uses
- artifact: model/information-space
targets:
kernel/itc-core:
- conforms_to
model/evidence:
- uses
model/identity:
- uses
- artifact: model/landscape
targets:
kernel/itc-core:
@ -517,6 +534,8 @@ rows:
- conforms_to
model/evidence:
- uses
model/identity:
- uses
- artifact: model/purpose-demand-extension
targets:
concept-catalog/purpose-demand:

View file

@ -17,6 +17,8 @@ disciplines:
path: models/organization/InfoTechCanonOrganizationModel.md
- name: Governance Model
path: models/governance/InfoTechCanonGovernanceModel.md
- name: Identity Model
path: models/identity/InfoTechCanonIdentityModel.md
- name: Evidence Model
path: models/evidence/InfoTechCanonEvidenceModel.md
- name: Task Model

View file

@ -42,6 +42,7 @@ InfoTechCanonLandscapeModel
InfoTechCanonOrganizationModel
InfoTechCanonGovernanceModel
InfoTechCanonEvidenceModel
InfoTechCanonIdentityModel
InfoTechCanonTaskModel
InfoTechCanonTaggingStandard
InfoTechCanonAccessControlModel
@ -62,6 +63,7 @@ Core = how the canon works.
Information Space = how canon knowledge is stored, linked, retrieved, and reused.
Landscape = what systems, services, resources, and runtime entities exist.
Organization = who can act, belong, own, steward, operate, and be responsible.
Identity = scoped records, identifiers, credentials and actor-linking relationships.
Evidence = assertions, their addressable sources, and contextual strength.
Governance = how action is directed, constrained, justified, reviewed, and evidenced.
Task = what work exists and how it becomes actionable, committed, and completed.
@ -317,6 +319,10 @@ Network owns communication and reachability. Observability owns signals and runt
| Control | Governance |
| Risk | Governance |
| Exception / Waiver | Governance |
| Identifier | Identity (itc-ident); Information Space imports artifact usage |
| Delegation Relationship (Delegation) | Identity (itc-ident); Organization imports |
| Account, Identity Record, Credential, Claim, Scope, Tenant, Realm | Identity (itc-ident) |
| Assurance Level | Identity (itc-ident), distinct from governance assurance |
| Evidence | Evidence (itc-evid) |
| Evidence Source | Evidence (itc-evid) |
| Adjudication Outcome | Evidence (itc-evid) |

View file

@ -215,6 +215,12 @@ Security may analyze or test access control as a security domain.
## 3.5 Boundary with Identity and Authentication
Identity provisioning and authentication are related but distinct.
[ITC-IDENT](../identity/InfoTechCanonIdentityModel.md) owns Account, Identity Record,
Identifier, Credential, Claim, Scope, Tenant, Realm, identity relationships and
Assurance Level under ADR-006. This model imports them and retains Subject,
Principal, Relationship Tuple, CredentialReference and ResourceScope.
ResourceScope refines the general identity Scope. Protocol deployment details
remain downstream; the following list is not an unowned conceptual gap.
This standard references but does not fully own:

View file

@ -1174,6 +1174,10 @@ Audits are a specific kind of assessment with stronger independence and procedur
## 11.42 AssuranceCase
Identity Assurance Level belongs to ITC-IDENT and records separate proofing,
authentication and federation confidence dimensions. It is distinct from this
model's AssuranceCase and AssuranceConclusion (ADR-006 R2).
An **AssuranceCase** is a structured argument, supported by evidence, that a claim about governance, risk, compliance, safety, security, or quality is justified.
---

View file

@ -0,0 +1,217 @@
---
id: itc-ident:IdentityModel
title: InfoTechCanon Identity Model
short_name: ITC-IDENT
type: domain-model
standard_family: InfoTechCanon
repository_context: info-tech-canon
recommended_path: models/identity/InfoTechCanonIdentityModel.md
status: draft
version: 0.1.0
canonical_owner: InfoTechCanonIdentityModel
namespace: itc-ident
classification: model
imports:
- InfoTechCanonCore
- InfoTechCanonOrganizationModel
- InfoTechCanonAccessControlModel
- InfoTechCanonEvidenceModel
owned_concepts:
- Account
- Service Account
- Identity Record
- Identifier
- Scoped Identifier
- Credential
- Claim
- Profile
- Persona
- Scope
- Tenant
- Realm
- Relationship
- Affiliation Relationship
- Following Relationship
- Representation Relationship
- Delegation Relationship
- Administration Relationship
- Trust Relationship
- Synonymity Assertion
- Lifecycle State
- Assurance Level
- Pseudonymous Identifier
created_at: 2026-09-05
updated_at: 2026-09-05
---
# InfoTechCanon Identity Model
Draft 0.1.0 implements accepted CUST-ADR-006 decision 4 and R1/R2/R4.
It describes identity records, contextual identifiers and actor-linking
relationships, while importing actor, authorization and evidence semantics.
## 1. Imported boundary
| Owner | Imported concepts and donor aliases |
| --- | --- |
| [ITC-ORG](../organization/InfoTechCanonOrganizationModel.md) | Actor; Person (Natural Person); Agent (Artificial Agent); Organization; Group; Role; Membership (Membership Relationship); Responsibility; Authority; Ownership |
| [ITC-ACCESS](../access-control/InfoTechCanonAccessControlModel.md) | Subject (Authenticated Subject); Principal (Authorization Principal); Relationship Tuple; ResourceScope; CredentialReference |
| [ITC-EVID](../evidence/InfoTechCanonEvidenceModel.md) | Evidence; Evidence Source; Evidence strength |
Aliases map donor terminology to upstream concepts; they do not copy the donor's
competing definitions. In particular Subject follows the Access Control model,
not an identity-owned protocol definition. Organization and its social extensions
remain upstream. Community/Household publication is T12; Family is a separate seed
under T13 and is not treated as a collective actor here.
Delegation moves from Organization's live definition into the already accepted
identity ownership assignment, with Organization retaining an import at its old
anchor. Identifier similarly moves from Information Space's live generic
definition to identity; its artifact-specific conventions stay in Information
Space. The boundary review records why these are transfers, not new ownership
decisions. Draft registration is not stable promotion or consumer adoption.
## 2. Owned concepts
### 2.1 Account
**Account** — A record through which an actor obtains or maintains access to a system within a scope. A Service Account is one specialization. An Account is not the actor, a credential, an authorization principal, or a billing/CRM record.
### 2.2 Service Account
**Service Account** — An Account intended for software, workload, bot, or automation access rather than ordinary human interactive use. The account and the Agent using it remain separate.
### 2.3 Identity Record
**Identity Record** — A record that describes, binds, or organizes information about an actor within a source or scope. It is not selfhood, proof material, or necessarily a login Account.
### 2.4 Identifier
**Identifier** — A value or reference used to distinguish or refer to something within a Scope. Record the namespace or issuer context needed to interpret it. Equal values in different scopes do not establish equivalence. Artifact identifiers can additionally require stability, namespace uniqueness, machine readability and version awareness through Information Space conventions.
### 2.5 Scoped Identifier
**Scoped Identifier** — An Identifier whose meaning is intentionally limited to a relying party, sector, tenant, realm, application, namespace, or other scope. Explicit scoping does not make the identified record a different Actor.
### 2.6 Credential
**Credential** — Proof material or a mechanism used to demonstrate control, entitlement, or a Claim, such as an authenticator, certificate, or signed assertion. Evidence about verification and its addressable source are imported from ITC-EVID; a secret is not automatically an evidence assertion. A CredentialReference remains an Access Control reference to this concept. Payment instrument references and commercial mandates belong to CommerceCanon, not to login credential semantics.
### 2.7 Claim
**Claim** — A statement made by an issuer or source about an actor, account, identifier, relationship, or attribute. A Claim is not necessarily verified. When captured as Evidence for a stated interest, retain the distinct assertion and Evidence Source; the identity statement and its assessed support remain distinguishable.
### 2.8 Profile
**Profile** — Descriptive attributes or presentation for an Actor or Account in a Scope. This is an identity profile, distinct from a canon application profile and from Observabilitys runtime performance Profile.
### 2.9 Persona
**Persona** — A deliberate contextual presentation of an Actor, used to separate roles, audiences, privacy boundaries, or pseudonymous participation. Different personas do not by themselves prove different actors.
### 2.10 Scope
**Scope** — A boundary within which identifiers, meanings, relationships, accounts, policies, or lifecycle states are valid. Tenant and Realm specialize Scope; Access Control retains the narrower ResourceScope. Namespace remains an Information Space naming mechanism using scoping.
### 2.11 Tenant
**Tenant** — An administrative or isolation Scope for a system, service, platform, or application. It may be associated with an Organization or commercial party, but is not identical to either. Isolation must be implemented downstream; naming a tenant does not enforce it.
### 2.12 Realm
**Realm** — An issuer, security, or administrative namespace used by an identity system, modeled as a Scope specialization. It represents an identity/admin boundary and is not interchangeable with Tenant or Organization.
### 2.13 Relationship
**Relationship** — A typed, scoped assertion connecting an actor, account, identifier, group, or other identity-model element to another. This is the identity actor-linking taxonomy, not ownership of every graph edge or Core RelationshipDefinition. Record endpoints, type, scope, provenance, lifecycle and relevant evidence. Imported Membership and Ownership concepts must not acquire duplicate definitions under identity-specific spellings.
### 2.14 Affiliation Relationship
**Affiliation Relationship** — An association without necessarily implying membership, control, employment, or authorization. Do not infer an imported Membership merely from affiliation.
### 2.15 Following Relationship
**Following Relationship** — A directed social relationship where one actor follows, subscribes to, or observes another actor or profile. Social following is not a commercial subscription or authorization grant.
### 2.16 Representation Relationship
**Representation Relationship** — A relationship in which one actor acts or speaks on behalf of another within a scope. Representation does not by itself establish how authority was granted; reference Delegation Relationship when that is the basis.
### 2.17 Delegation Relationship
**Delegation Relationship** — A relationship in which an actor transfers or grants responsibility or authority to another actor within defined limits. This consolidates the donors bounded-authority definition with the existing Organization §10.18 definition. Delegation is its compatibility name, not a second owned concept. Actor, Responsibility and Authority are imported from Organization. Record delegator, delegate, delegated scope/authority or responsibility, validity interval, revocability and constraints. A delegation assertion does not itself grant an authorization-engine permission.
### 2.18 Administration Relationship
**Administration Relationship** — A relationship in which an actor has management authority over accounts, relationships, policies, or configuration in a Scope. Record its basis and limits; management status does not silently grant every possible access permission.
### 2.19 Trust Relationship
**Trust Relationship** — A relationship in which an actor, issuer, verifier, system, or Scope relies on another for claims, identifiers, credentials, or decisions. State the purpose and basis of reliance using imported Evidence and Evidence Source. Commercial reliance may name CommerceCanons Counterparty Assurance Gradient when available; identity does not define that gradient.
### 2.20 Synonymity Assertion
**Synonymity Assertion** — A scoped, evidenced and revocable assertion that identifiers, records, accounts, profiles, or actors refer to the same target for a stated purpose. Retain method, confidence, provenance, privacy constraints and lifecycle. A weak match is not a verified link or a destructive merge. Representation, control and acts-for relationships are not equivalence merely because a donor system stores them in the same linking table.
### 2.21 Lifecycle State
**Lifecycle State** — The current state of a record, account, relationship, credential, claim, or assertion. A records type or profile defines its applicable states and transitions; illustrative states include proposed, active, suspended, revoked, expired and superseded. Evidence may support a transition without automatically authorizing it.
### 2.22 Assurance Level
**Assurance Level** — Confidence metadata for a specified identity-proofing, authentication, or federation dimension under a named scheme and version. Keep those dimensions distinct, attach assessments to the relevant binding, credential or federation relationship, and record the supporting Evidence. A level is not a global account trust score or an authorization decision. Governance AssuranceCase/AssuranceConclusion and general Evidence strength remain separately owned.
### 2.23 Pseudonymous Identifier
**Pseudonymous Identifier** — An Identifier designed to limit correlation across contexts. Record its permitted scope and linking policy; pseudonymity does not itself guarantee anonymity. Any re-identification relationship remains separately controlled and evidenced.
## 3. Convenience terms
User and Subscriber are mapped convenience terms, not canonical root concepts.
Resolve User to the relevant Actor, Account, Subject, Principal or Profile.
Resolve Subscriber according to context: a commercial subscription holder uses
CommerceCanon roles and relationships; an identity-system usage may refer to an
Account or Person; social following uses Following Relationship. Do not force
these meanings into a single record type or infer a commercial commitment.
## 4. Carried design principles
P1 uses imported Actor as the participation root; Service Account is a record,
not an actor. P2 separates Person, Account, Identity Record, Profile, Credential,
Subject and Principal. P3 keeps Scope explicit. P4 keeps collectives distinct,
using imported Organization concepts and the accepted Family/Household split.
P5 models different relationships explicitly while respecting their owners.
P6 keeps authorization projections separate from identity records.
P7 makes synonymity a scoped, evidenced and revocable assertion.
P8 separates captured Evidence from its addressable Evidence Source.
P9 maps product terms to orthogonal concepts rather than adopting product labels.
P10 tests concrete scenarios without claiming that the original mixed corpus has
already been migrated. P11 leaves implementations downstream.
P12 separates proofing, authentication and federation assurance dimensions.
P13 prefers non-destructive linking; weak matches require review and never imply
silent merges. Commerce P14/P15 remain with CFED T06.
## 5. Worked boundary cases
| Case | Representation and acceptance constraint |
| --- | --- |
| One employee has two application logins | One imported Person may control two Accounts, each with scoped Identifiers. Do not infer identity equivalence from equal usernames. |
| A workload uses a service login | Imported Agent and Service Account remain separate; authentication yields an imported Subject/Principal projection. |
| A vendor administers a customer's tenant | Separate imported Organizations, Tenant and Administration Relationship. Commercial reliance is a CommerceCanon relationship, not implied membership. |
| An operator delegates bounded authority to an agent | One Delegation Relationship uses imported Actors/Authority and explicit limits. Organization imports this same relation; authorization enforcement remains with Access Control. |
| Two records are a probabilistic match | Preserve both records; capture a revocable Synonymity Assertion with method, purpose and evidence. A match does not authorize a merge. |
| One actor has two pseudonymous personas | Retain separate Personas and scoped identifiers; cross-context linking requires its own evidenced, privacy-constrained assertion. |
| A credential expires | Its lifecycle change does not erase the Person or necessarily close every Account. |
| A group membership is projected into an access tuple | Import Membership and Relationship Tuple; identity owns neither definition. |
## 6. Provenance
The [federation ledger](../../../../prj-canon-federation/ledger/README.md) pins the
donor glossary at `4bb474970b73d500da03b6482e84e6c256146b79`. All 23 identity-owned
concepts are represented here; User/Subscriber are convenience mappings. Donor
P1P13 are adapted to accepted boundaries, rather than copying their obsolete
Family-as-actor, Service-Account-as-actor or source/evidence conflations.
Native INFO-WP-0021 implements CFED-WP-0001-T05. T06 owns the commerce model;
T07 owns corpus distribution and T08 interface cards. Original seeds and source
research remain unchanged. See [boundary review](boundary-review.md).

View file

@ -0,0 +1,35 @@
# Identity destination boundary review — 2026-09-05
Authority: accepted CUST-ADR-006 decision 4 and R1/R2/R4; implementation review by
Codex under CFED-WP-0001-T05. No accepted owner assignment is changed.
| Overlap | Evidence | Resolution |
| --- | --- | --- |
| Delegation Relationship / Delegation | Donor: bounded authority grant. Organization §10.18: bounded responsibility or authority grant/transfer, with scope and revocation attributes. | Consolidate into identity's ledger-assigned Delegation Relationship, preserving broader incumbent semantics and the Delegation compatibility name. Organization imports at its old section anchor. Actor/Responsibility/Authority remain organization-owned. |
| Identifier | Information Space §11.37 defines a generic stable artifact/entity reference. ADR decision 4 assigns Identifier to identity. | Identity owns the general definition; Information Space retains an import and its artifact-specific recommendations. |
| Profile | Identity describes an actor/account; Observability §11.36 describes runtime performance. | Distinct qualified concepts; add disambiguation rather than transfer performance-profile ownership. |
| Relationship | Identity actor-linking assertion versus Core RelationshipDefinition and general graph mechanisms. | Scope the identity taxonomy explicitly; no universal relationship ownership claim. |
| Assurance Level | Proofing/authentication/federation confidence versus governance assurance cases. | Keep dimensions separate and retain the R2 distinction. |
| Credential | Identity proof material versus Access Control CredentialReference and Security misuse/exposure analysis. | Identity owns Credential; retain the narrower references and security analysis upstream. |
G4 review: the identity owned_concepts list contains none of Actor, Person, Agent,
Organization, Group, Role, Membership, Subject, Principal, Relationship Tuple,
ResourceScope, CredentialReference, Responsibility, Authority or Ownership.
Organization no longer defines Delegation; its retained anchor imports the single
identity definition. Thus the previously recorded delegation publication
prerequisite is resolved by executing accepted ownership, without an ADR amendment.
## Reciprocal model imports
Identity imports Actor/Authority from Organization and Subject/Principal from
Access Control. Organization imports Delegation Relationship from identity;
Access Control imports identity records and credentials. Access Control also already imports Organization. These five document
edges form one reciprocal component; their concept ownership remains disjoint.
Information Space imports Identifier but identity does not depend on that model.
The artifact graph and raw consistency_cycles metric retain this component.
validation/model-import-reviews.yaml admits only its exact five `uses` edges,
with this rationale. Added internal edges, new component members, non-import
edge types or any additional cycle fail the ordinary zero-cycle check. This is
an explicit bounded exception to document-level acyclicity, not permission for
circular concept definitions. INFO-WP-0021 owns the validation change and tests.

View file

@ -421,7 +421,6 @@ InformationSpaceEntity
├── MetadataEntity
│ ├── FrontMatter
│ ├── MetadataRecord
│ ├── Identifier
│ ├── Namespace
│ ├── Label
│ ├── Alias
@ -755,7 +754,9 @@ A **MetadataRecord** is structured data describing an artifact, section, chunk,
## 11.37 Identifier
An **Identifier** is a stable reference string for an artifact or entity.
Identifier is imported from [ITC-IDENT](../identity/InfoTechCanonIdentityModel.md).
The following are artifact-specific conventions over that imported concept,
not a second general definition.
Recommended properties:

View file

@ -874,6 +874,9 @@ An **EventCorrelationKey** links events to related traces, logs, requests, incid
## 11.36 Profile
This runtime performance Profile is distinct from ITC-IDENTs actor/account
Profile and from a canon application profile.
A **Profile** is sampled performance or resource-use data.
This concept is observability-specific and distinct from InfoTechCanon application profiles.

View file

@ -387,7 +387,6 @@ OrganizationEntity
│ ├── Membership
│ ├── Assignment
│ ├── ReportingLine
│ ├── Delegation
│ ├── Responsibility
│ ├── Accountability
│ ├── Authority
@ -768,20 +767,10 @@ Authority SHOULD be scoped.
## 10.18 Delegation
**Delegation** is a relationship in which an actor transfers or grants responsibility or authority to another actor within defined limits.
Recommended attributes:
```yaml
delegator:
delegate:
delegated_scope:
delegated_authority:
valid_from:
valid_to:
revocable:
constraints:
```
Delegation is imported from [ITC-IDENT Delegation Relationship](../identity/InfoTechCanonIdentityModel.md).
The existing name and section anchor remain compatibility entry points. Actor,
Responsibility and Authority stay organization-owned; the bounded delegation
relationship is defined once in identity under CUST-ADR-006 decision 4.
---

View file

@ -0,0 +1,10 @@
# Reciprocal imports are reviewed at concept ownership level, not hidden from
# the artifact graph. Any extra internal edge/node/type invalidates this review.
reviews:
- boundary_review: models/identity/boundary-review.md
edges:
- [model/identity, uses, model/organization]
- [model/identity, uses, model/access-control]
- [model/organization, uses, model/identity]
- [model/access-control, uses, model/identity]
- [model/access-control, uses, model/organization]

View file

@ -2,7 +2,7 @@
# By Concept
Concept count: **134**
Concept count: **158**
| Concept | Owner | Source |
| --- | --- | --- |
@ -62,6 +62,30 @@ Concept count: **134**
| Adjudication Outcome | `model/evidence` | `frontmatter.owned_concepts` |
| Evidence strength | `model/evidence` | `frontmatter.owned_concepts` |
| InfoTechCanon Governance Model | `model/governance` | `artifact_title` |
| InfoTechCanon Identity Model | `model/identity` | `artifact_title` |
| Account | `model/identity` | `frontmatter.owned_concepts` |
| Service Account | `model/identity` | `frontmatter.owned_concepts` |
| Identity Record | `model/identity` | `frontmatter.owned_concepts` |
| Identifier | `model/identity` | `frontmatter.owned_concepts` |
| Scoped Identifier | `model/identity` | `frontmatter.owned_concepts` |
| Credential | `model/identity` | `frontmatter.owned_concepts` |
| Claim | `model/identity` | `frontmatter.owned_concepts` |
| Profile | `model/identity` | `frontmatter.owned_concepts` |
| Persona | `model/identity` | `frontmatter.owned_concepts` |
| Scope | `model/identity` | `frontmatter.owned_concepts` |
| Tenant | `model/identity` | `frontmatter.owned_concepts` |
| Realm | `model/identity` | `frontmatter.owned_concepts` |
| Relationship | `model/identity` | `frontmatter.owned_concepts` |
| Affiliation Relationship | `model/identity` | `frontmatter.owned_concepts` |
| Following Relationship | `model/identity` | `frontmatter.owned_concepts` |
| Representation Relationship | `model/identity` | `frontmatter.owned_concepts` |
| Delegation Relationship | `model/identity` | `frontmatter.owned_concepts` |
| Administration Relationship | `model/identity` | `frontmatter.owned_concepts` |
| Trust Relationship | `model/identity` | `frontmatter.owned_concepts` |
| Synonymity Assertion | `model/identity` | `frontmatter.owned_concepts` |
| Lifecycle State | `model/identity` | `frontmatter.owned_concepts` |
| Assurance Level | `model/identity` | `frontmatter.owned_concepts` |
| Pseudonymous Identifier | `model/identity` | `frontmatter.owned_concepts` |
| InfoTechCanon Information Space Model | `model/information-space` | `artifact_title` |
| InfoTechCanon Landscape Model | `model/landscape` | `artifact_title` |
| InfoTechCanon Network Model | `model/network` | `artifact_title` |

View file

@ -77,6 +77,7 @@
- `model/devsecops` via `conforms_to`
- `model/evidence` via `conforms_to`
- `model/governance` via `conforms_to`
- `model/identity` via `conforms_to`
- `model/information-space` via `conforms_to`
- `model/landscape` via `conforms_to`
- `model/network` via `conforms_to`
@ -108,6 +109,7 @@
- `evaluation/user-engine/questions` via `uses`
- `evaluation/user-engine/small-saas-alignment` via `uses`
- `kernel/itc-kernel-map` via `maps`
- `model/identity` via `uses`
- `model/security` via `uses`
- `profile/small-saas` via `requires`
- `review-kit/alignment/model-selection-guide` via `uses`
@ -155,6 +157,7 @@
- `model/data` via `uses`
- `model/devsecops` via `uses`
- `model/governance` via `uses`
- `model/identity` via `uses`
- `model/information-space` via `uses`
- `model/landscape` via `uses`
- `model/network` via `uses`
@ -202,6 +205,13 @@
- `standard/emission-cadence` via `imports`
- `standard/repository-layout` via `imports`
## `model/identity`
- `kernel/itc-kernel-map` via `maps`
- `model/access-control` via `uses`
- `model/information-space` via `uses`
- `model/organization` via `uses`
## `model/information-space`
- `comparison/repo-scoping/canon-benefit-analysis` via `maps`
@ -260,6 +270,7 @@
- `evaluation/user-engine/small-saas-alignment` via `uses`
- `kernel/itc-kernel-map` via `maps`
- `model/access-control` via `uses`
- `model/identity` via `uses`
- `profile/small-saas` via `requires`
- `review-kit/alignment/model-selection-guide` via `uses`
- `small-saas/team/platform` via `uses`

View file

@ -14,7 +14,7 @@
- ID: `kernel/itc-kernel-map`
- Kind: `kernel`
- Path: `kernel/InfoTechCanonKernelMap.md`
- Relationships: 16
- Relationships: 17
## InfoTechCanon CARING Access Governance Standard

View file

@ -2,82 +2,83 @@
# Import Matrix
| Artifact | `assimilation/emission-cadence` | `assimilation/it-capability-canon` | `benchmark/caring/kubernetes-rbac` | `benchmark/caring/kubernetes-rbac/access-descriptors` | `benchmark/caring/kubernetes-rbac/caring-mapping` | `benchmark/caring/kubernetes-rbac/findings` | `benchmark/caring/kubernetes-rbac/native-concepts` | `capability-catalog/itc-cap` | `catalog/attribute-value-types` | `catalog/evidence-basis` | `comparison/repo-scoping/canon-benefit-analysis` | `comparison/repo-scoping/consumer-workplan-brief` | `comparison/repo-scoping/extension-candidates` | `comparison/repo-scoping/frame` | `comparison/repo-scoping/report` | `concept-catalog/purpose-demand` | `conformance/railiance-fabric` | `conformance/railiance-fabric/consumer-workplan-brief` | `conformance/railiance-fabric/entity-edge-capture-criteria` | `conformance/railiance-fabric/mapping-expectations` | `conformance/railiance-fabric/visualization-examples` | `evaluation/user-engine` | `evaluation/user-engine/consumer-workplan-brief` | `evaluation/user-engine/interface-card-expectations` | `evaluation/user-engine/questions` | `evaluation/user-engine/small-saas-alignment` | `example/consumer-purpose-portfolio` | `example/emission-cadence/qonto-assistant` | `kernel/itc-core` | `kernel/itc-kernel-map` | `mapping/capability-anchors` | `mapping/emission-cadence-handover` | `mapping/purpose-demand-governance-candidates` | `model/access-control` | `model/capability` | `model/data` | `model/devsecops` | `model/evidence` | `model/governance` | `model/information-space` | `model/landscape` | `model/network` | `model/observability` | `model/organization` | `model/purpose-demand-extension` | `model/security` | `model/task` | `pattern/intent-scope-purposes` | `practice-pattern/agentic-drives-functional` | `practice-pattern/interface-deprecation-strangler` | `practice/intake-and-assimilation` | `profile/small-saas` | `review-kit/alignment` | `review-kit/alignment/model-selection-guide` | `review-kit/alignment/schema` | `review-kit/alignment/scorecard` | `review-kit/alignment/workflow` | `review-kit/alignment/workplan-template` | `scheme/practice-pattern` | `small-saas/capability-requirements/production` | `small-saas/control/namespace-per-tenant` | `small-saas/dataset/subscription-ledger` | `small-saas/deployment/production` | `small-saas/evidence/access-review-2026-05` | `small-saas/incident/cross-tenant-access-attempt` | `small-saas/policy/tenant-isolation` | `small-saas/service/billing-portal` | `small-saas/system/billing-system` | `small-saas/task/onboard-tenant` | `small-saas/team/platform` | `small-saas/tenant/acme` | `small-saas/tenant/globex` | `small-saas/user/ada-admin` | `standard/caring` | `standard/emission-cadence` | `standard/repository-layout` | `standard/tagging` |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| `assimilation/emission-cadence` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `conforms_to` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| `assimilation/it-capability-canon` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `conforms_to` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| `benchmark/caring/kubernetes-rbac` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `stress_tests` | | | `stress_tests` | | `stress_tests` | | | `stress_tests` | `stress_tests` | | | `stress_tests` | | | | | | | | | | | | | | | | | | | | | | | | | | | | `conforms_to` | | | `uses` |
| `benchmark/caring/kubernetes-rbac/access-descriptors` | | | `part_of` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `uses` | | | `uses` | | | | | | | | | `uses` | | | | | | | | | | | | | | | | | | | | | | | | | | | | `uses` | | | |
| `benchmark/caring/kubernetes-rbac/caring-mapping` | | | `part_of` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `maps` | | | | | `maps` | | | | | | | `maps` | | | | | | | | | | | | | | | | | | | | | | | | | | | | `maps` | | | |
| `benchmark/caring/kubernetes-rbac/findings` | | | `part_of` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `proposes` | | | | | | | `proposes` | | | | | | | | | | | | | | | | | | | | | | | | | | | | `proposes` | | | |
| `benchmark/caring/kubernetes-rbac/native-concepts` | | | `part_of` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `maps` | | | | | | | `maps` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `maps` | | | |
| `capability-catalog/itc-cap` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| `catalog/attribute-value-types` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| `catalog/evidence-basis` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| `comparison/repo-scoping/canon-benefit-analysis` | | | | | | | | | | | | | | | `part_of` | | | | | | | | | | | | | | | | | | | | | | | | `maps` | `maps` | | | | | `maps` | | `maps` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `maps` |
| `comparison/repo-scoping/consumer-workplan-brief` | | | | | | | | | | | | | | | `part_of` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `uses` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| `comparison/repo-scoping/extension-candidates` | | | | | | | | | | | | | | | `part_of` | | | | | | | | | | | | | | | | | | | | | | | | `proposes` | `proposes` | | | | | `proposes` | | `proposes` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| `comparison/repo-scoping/frame` | | | | | | | | | | | | | | | `part_of` | | | | | | | | | | | | | | | | | | | | | | | | `uses` | | | | | | `uses` | | `uses` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| `comparison/repo-scoping/report` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `uses` | `uses` | | | | | `compares` | | `uses` | `uses` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| `concept-catalog/purpose-demand` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `conforms_to` | | | | | | | | | | `uses` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| `conformance/railiance-fabric` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `uses` | `uses` | | `uses` | | `uses` | `uses` | `uses` | | `uses` | `uses` | `uses` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `uses` |
| `conformance/railiance-fabric/consumer-workplan-brief` | | | | | | | | | | | | | | | | | `part_of` | | | | | | | | | | | | | | | | | | | | | | | | | | | | `uses` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| `conformance/railiance-fabric/entity-edge-capture-criteria` | | | | | | | | | | | | | | | | | `part_of` | | | | | | | | | | | | | | | | | | | `uses` | `uses` | | `uses` | | `uses` | `uses` | `uses` | | `uses` | `uses` | `uses` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| `conformance/railiance-fabric/mapping-expectations` | | | | | | | | | | | | | | | | | `part_of` | | | | | | | | | | | | | | | | | | | `maps` | `maps` | | `maps` | | `maps` | `maps` | `maps` | | `maps` | `maps` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| `conformance/railiance-fabric/visualization-examples` | | | | | | | | | | | | | | | | | `part_of` | | `illustrates` | `illustrates` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| `evaluation/user-engine` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `uses` | | `uses` | | | `uses` | | | | | `uses` | `uses` | `uses` | `uses` | | | | | `evaluates` | | | | | | | | | | | | | | | | | | | | | | `uses` | | | |
| `evaluation/user-engine/consumer-workplan-brief` | | | | | | | | | | | | | | | | | | | | | | `part_of` | | | | | | | | | | | | | | | | | | | | | | | `uses` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| `evaluation/user-engine/interface-card-expectations` | | | | | | | | | | | | | | | | | | | | | | `part_of` | | | | | | | | | | | | | | | | | | | | | | | `uses` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `uses` | | | |
| `evaluation/user-engine/questions` | | | | | | | | | | | | | | | | | | | | | | `part_of` | | | | | | | | | | | | `uses` | | `uses` | | | `uses` | | | | | `uses` | `uses` | `uses` | `uses` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| `evaluation/user-engine/small-saas-alignment` | | | | | | | | | | | | | | | | | | | | | | `part_of` | | | | | | | | | | | | `uses` | | | | | `uses` | | | | | `uses` | | | | | | | | `evaluates` | | | | | | | | | | | | | | | | | | | | | | | | | |
| `example/consumer-purpose-portfolio` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `illustrates` | | | `illustrates` | | | | `uses` | | | | | | | | | | | | | | | | | | | | | | | | | |
| `example/emission-cadence/qonto-assistant` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `conforms_to` | | |
| `kernel/itc-core` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| `kernel/itc-kernel-map` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `maps` | | | | | `maps` | `maps` | `maps` | `maps` | `maps` | `maps` | `maps` | `maps` | `maps` | `maps` | `maps` | | `maps` | `maps` | | | | | | | | | | | | | | | | | | | | | | | | | | | `maps` | | | `maps` |
| `mapping/capability-anchors` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| `mapping/emission-cadence-handover` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `maps` | | | | `maps` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `maps` | | |
| `mapping/purpose-demand-governance-candidates` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `maps` | | | | | | `maps` | | `uses` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| `model/access-control` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `conforms_to` | | | | | | | | | `uses` | `uses` | | | | | `uses` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| `model/capability` | | `derived_from` | | | | | | `introduces` | | `uses` | | | | | | | | | | | | | | | | | | | `conforms_to` | | `introduces` | | | | | | | `uses` | `uses` | | `uses` | | `uses` | | `uses` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| `model/data` | | | | | | | | | `introduces` | | | | | | | | | | | | | | | | | | | | `conforms_to` | | | | | | | | | `uses` | `uses` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| `model/devsecops` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `conforms_to` | | | | | | | | | `uses` | | | | | | | | `uses` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| `model/evidence` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `conforms_to` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| `model/governance` | | | | | | | | | | `introduces` | | | | | | | | | | | | | | | | | | | `conforms_to` | | | | | | | | | `uses` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| `model/information-space` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `conforms_to` | | | | | | | | | `uses` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| `model/landscape` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `conforms_to` | | | | | | | | | `uses` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| `model/network` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `conforms_to` | | | | | | | | | `uses` | | | | | | | | `uses` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| `model/observability` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `conforms_to` | | | | | | | | | `uses` | | | | | | | | | `uses` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| `model/organization` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `conforms_to` | | | | | | | | | `uses` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| `model/purpose-demand-extension` | | | | | | | | | | | | | | | | `introduces` | | | | | | | | | | | | | `conforms_to` | | | | | | | | | | `extends` | `uses` | | | | | | | `uses` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| `model/security` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `conforms_to` | | | | | `uses` | | | | `uses` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| `model/task` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `conforms_to` | | | | | | | | | `uses` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| `pattern/intent-scope-purposes` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `uses` | | | | | | `implements` | | `uses` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| `practice-pattern/agentic-drives-functional` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `uses` | | | | `uses` | | | | `uses` | | | | `uses` | | | `related_to` | | | | | | | | | `conforms_to` | | | | | | | | | | | | | | | | | | |
| `practice-pattern/interface-deprecation-strangler` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `uses` | | `uses` | | | | `uses` | | | | | | | | | | | | | | | | `conforms_to` | | | | | | | | | | | | | | | | | | |
| `practice/intake-and-assimilation` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `conforms_to` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| `profile/small-saas` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `conforms_to` | | | | | `requires` | | `requires` | `requires` | | `requires` | | `requires` | `requires` | `requires` | `requires` | | `requires` | `requires` | | | | | | | | | | | | | | | | | | | | | | | | | | | `requires` | | | `requires` |
| `review-kit/alignment` | | | `uses` | | | | | | | | | | | | | | | | | | | | | | | | | | `conforms_to` | | | | | | | | | | `uses` | | | | | | `uses` | | `uses` | | | | | | | | | | | | | | | | | | | | | | | | | | | `uses` | | | |
| `review-kit/alignment/model-selection-guide` | | | `uses` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `uses` | | `uses` | `uses` | | `uses` | | `uses` | `uses` | `uses` | `uses` | `uses` | `uses` | `uses` | | | | | `uses` | `part_of` | | | | | | | | | | | | | | | | | | | | | `uses` | | | `uses` |
| `review-kit/alignment/schema` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `uses` | | | | | | | | `uses` | | | | | | `part_of` | | | | | | | | | | | | | | | | | | | | | | | | |
| `review-kit/alignment/scorecard` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `uses` | | | | | | | | `uses` | | | | | | `part_of` | | | | | | | | | | | | | | | | | | | | | | | | |
| `review-kit/alignment/workflow` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `uses` | | | | | | `uses` | | `uses` | | | | | | `part_of` | | | | | | | | | | | | | | | | | | | | | | | | |
| `review-kit/alignment/workplan-template` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `uses` | | `uses` | | | | | | `part_of` | | | | | | | | | | | | | | | | | | | | | | | | |
| `scheme/practice-pattern` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `conforms_to` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| `small-saas/capability-requirements/production` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `uses` | | | | | | | | | | | | | | | | | `instantiates` | | | | | | | | | | | | | | | `applies_to` | | | | | | | | | | |
| `small-saas/control/namespace-per-tenant` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `uses` | | | | | | `instantiates` | | | | | | | | | | | | `evidenced_by` | | | | | | | | | | `uses` | | | |
| `small-saas/dataset/subscription-ledger` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `uses` | | | | | | | | | | | | | | | | `instantiates` | | | | | | | | | | | | | | `governed_by` | `owned_by` | | | | `partitioned_for` | `partitioned_for` | | | | | |
| `small-saas/deployment/production` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `uses` | | | | | `uses` | | | | | | | | | | `instantiates` | | | | | | | | | `implements` | | | | | | `deploys` | | | | `separates` | `separates` | | | | | |
| `small-saas/evidence/access-review-2026-05` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `uses` | | | | | | | | | `instantiates` | | | | | | | | | | | | | | | | | | | | | | | | | |
| `small-saas/incident/cross-tenant-access-attempt` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `uses` | | | | | | `instantiates` | | | | | | | | | `constrained_by` | | | `evidenced_by` | | | | | | | | | | | | | |
| `small-saas/policy/tenant-isolation` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `uses` | | | | | | | | | | | | | `instantiates` | | | | | | | | | `requires` | | | `evidenced_by` | | | | | | | | | | | | | |
| `small-saas/service/billing-portal` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `uses` | | | | | | | | | | | `instantiates` | | | | | | | | | | | | | | | | `part_of` | | `owned_by` | | | | | | | |
| `small-saas/system/billing-system` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `uses` | | | | | | | | | | | `instantiates` | | | | | | | | | | | | | | | | | | | `serves` | `serves` | | | | | |
| `small-saas/task/onboard-tenant` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `uses` | | | | | `instantiates` | | | | | | | | | | | | | | `governed_by` | | | | `owned_by` | `changes` | | | | | | |
| `small-saas/team/platform` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `uses` | | | | | | | | `instantiates` | | | | | | | | | | | | | | | | | | | | | | | | | |
| `small-saas/tenant/acme` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `uses` | | | | | | | | `instantiates` | | | | | | | | | `isolated_by` | | | | | | | | | | | | `represented_by` | | | | |
| `small-saas/tenant/globex` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `uses` | | | | | | | | `instantiates` | | | | | | | | | `isolated_by` | | | | | | | | | | | | | | | | |
| `small-saas/user/ada-admin` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `uses` | | | | | | | | | | `uses` | | | | | | | | `instantiates` | | | | | | | | | | | | `access_evidenced_by` | | `has_access_under` | | | | `member_of` | | | | | | | |
| `standard/caring` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `conforms_to` | | | | | `imports` | | `imports` | `imports` | `uses` | `imports` | | | `imports` | `imports` | `imports` | | `imports` | `imports` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `imports` |
| `standard/emission-cadence` | `derived_from` | | | | | | | | | | | | | | | | | | | | | | | | | | | | `conforms_to` | | | | | | | | | | `imports` | | | | `imports` | | | `related_to` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| `standard/repository-layout` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `conforms_to` | | | | | | | | | | `imports` | `imports` | | | | | | | `imports` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| `standard/tagging` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `conforms_to` | | | | | | | | | `uses` | | | | | | | | | `imports` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| Artifact | `assimilation/emission-cadence` | `assimilation/it-capability-canon` | `benchmark/caring/kubernetes-rbac` | `benchmark/caring/kubernetes-rbac/access-descriptors` | `benchmark/caring/kubernetes-rbac/caring-mapping` | `benchmark/caring/kubernetes-rbac/findings` | `benchmark/caring/kubernetes-rbac/native-concepts` | `capability-catalog/itc-cap` | `catalog/attribute-value-types` | `catalog/evidence-basis` | `comparison/repo-scoping/canon-benefit-analysis` | `comparison/repo-scoping/consumer-workplan-brief` | `comparison/repo-scoping/extension-candidates` | `comparison/repo-scoping/frame` | `comparison/repo-scoping/report` | `concept-catalog/purpose-demand` | `conformance/railiance-fabric` | `conformance/railiance-fabric/consumer-workplan-brief` | `conformance/railiance-fabric/entity-edge-capture-criteria` | `conformance/railiance-fabric/mapping-expectations` | `conformance/railiance-fabric/visualization-examples` | `evaluation/user-engine` | `evaluation/user-engine/consumer-workplan-brief` | `evaluation/user-engine/interface-card-expectations` | `evaluation/user-engine/questions` | `evaluation/user-engine/small-saas-alignment` | `example/consumer-purpose-portfolio` | `example/emission-cadence/qonto-assistant` | `kernel/itc-core` | `kernel/itc-kernel-map` | `mapping/capability-anchors` | `mapping/emission-cadence-handover` | `mapping/purpose-demand-governance-candidates` | `model/access-control` | `model/capability` | `model/data` | `model/devsecops` | `model/evidence` | `model/governance` | `model/identity` | `model/information-space` | `model/landscape` | `model/network` | `model/observability` | `model/organization` | `model/purpose-demand-extension` | `model/security` | `model/task` | `pattern/intent-scope-purposes` | `practice-pattern/agentic-drives-functional` | `practice-pattern/interface-deprecation-strangler` | `practice/intake-and-assimilation` | `profile/small-saas` | `review-kit/alignment` | `review-kit/alignment/model-selection-guide` | `review-kit/alignment/schema` | `review-kit/alignment/scorecard` | `review-kit/alignment/workflow` | `review-kit/alignment/workplan-template` | `scheme/practice-pattern` | `small-saas/capability-requirements/production` | `small-saas/control/namespace-per-tenant` | `small-saas/dataset/subscription-ledger` | `small-saas/deployment/production` | `small-saas/evidence/access-review-2026-05` | `small-saas/incident/cross-tenant-access-attempt` | `small-saas/policy/tenant-isolation` | `small-saas/service/billing-portal` | `small-saas/system/billing-system` | `small-saas/task/onboard-tenant` | `small-saas/team/platform` | `small-saas/tenant/acme` | `small-saas/tenant/globex` | `small-saas/user/ada-admin` | `standard/caring` | `standard/emission-cadence` | `standard/repository-layout` | `standard/tagging` |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| `assimilation/emission-cadence` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `conforms_to` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| `assimilation/it-capability-canon` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `conforms_to` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| `benchmark/caring/kubernetes-rbac` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `stress_tests` | | | `stress_tests` | | `stress_tests` | | | | `stress_tests` | `stress_tests` | | | `stress_tests` | | | | | | | | | | | | | | | | | | | | | | | | | | | | `conforms_to` | | | `uses` |
| `benchmark/caring/kubernetes-rbac/access-descriptors` | | | `part_of` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `uses` | | | `uses` | | | | | | | | | | `uses` | | | | | | | | | | | | | | | | | | | | | | | | | | | | `uses` | | | |
| `benchmark/caring/kubernetes-rbac/caring-mapping` | | | `part_of` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `maps` | | | | | `maps` | | | | | | | | `maps` | | | | | | | | | | | | | | | | | | | | | | | | | | | | `maps` | | | |
| `benchmark/caring/kubernetes-rbac/findings` | | | `part_of` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `proposes` | | | | | | | | `proposes` | | | | | | | | | | | | | | | | | | | | | | | | | | | | `proposes` | | | |
| `benchmark/caring/kubernetes-rbac/native-concepts` | | | `part_of` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `maps` | | | | | | | | `maps` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `maps` | | | |
| `capability-catalog/itc-cap` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| `catalog/attribute-value-types` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| `catalog/evidence-basis` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| `comparison/repo-scoping/canon-benefit-analysis` | | | | | | | | | | | | | | | `part_of` | | | | | | | | | | | | | | | | | | | | | | | | `maps` | | `maps` | | | | | `maps` | | `maps` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `maps` |
| `comparison/repo-scoping/consumer-workplan-brief` | | | | | | | | | | | | | | | `part_of` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `uses` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| `comparison/repo-scoping/extension-candidates` | | | | | | | | | | | | | | | `part_of` | | | | | | | | | | | | | | | | | | | | | | | | `proposes` | | `proposes` | | | | | `proposes` | | `proposes` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| `comparison/repo-scoping/frame` | | | | | | | | | | | | | | | `part_of` | | | | | | | | | | | | | | | | | | | | | | | | `uses` | | | | | | | `uses` | | `uses` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| `comparison/repo-scoping/report` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `uses` | | `uses` | | | | | `compares` | | `uses` | `uses` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| `concept-catalog/purpose-demand` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `conforms_to` | | | | | | | | | | `uses` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| `conformance/railiance-fabric` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `uses` | `uses` | | `uses` | | | `uses` | `uses` | `uses` | | `uses` | `uses` | `uses` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `uses` |
| `conformance/railiance-fabric/consumer-workplan-brief` | | | | | | | | | | | | | | | | | `part_of` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `uses` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| `conformance/railiance-fabric/entity-edge-capture-criteria` | | | | | | | | | | | | | | | | | `part_of` | | | | | | | | | | | | | | | | | | | `uses` | `uses` | | `uses` | | | `uses` | `uses` | `uses` | | `uses` | `uses` | `uses` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| `conformance/railiance-fabric/mapping-expectations` | | | | | | | | | | | | | | | | | `part_of` | | | | | | | | | | | | | | | | | | | `maps` | `maps` | | `maps` | | | `maps` | `maps` | `maps` | | `maps` | `maps` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| `conformance/railiance-fabric/visualization-examples` | | | | | | | | | | | | | | | | | `part_of` | | `illustrates` | `illustrates` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| `evaluation/user-engine` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `uses` | | `uses` | | | `uses` | | | | | | `uses` | `uses` | `uses` | `uses` | | | | | `evaluates` | | | | | | | | | | | | | | | | | | | | | | `uses` | | | |
| `evaluation/user-engine/consumer-workplan-brief` | | | | | | | | | | | | | | | | | | | | | | `part_of` | | | | | | | | | | | | | | | | | | | | | | | | `uses` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| `evaluation/user-engine/interface-card-expectations` | | | | | | | | | | | | | | | | | | | | | | `part_of` | | | | | | | | | | | | | | | | | | | | | | | | `uses` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `uses` | | | |
| `evaluation/user-engine/questions` | | | | | | | | | | | | | | | | | | | | | | `part_of` | | | | | | | | | | | | `uses` | | `uses` | | | `uses` | | | | | | `uses` | `uses` | `uses` | `uses` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| `evaluation/user-engine/small-saas-alignment` | | | | | | | | | | | | | | | | | | | | | | `part_of` | | | | | | | | | | | | `uses` | | | | | `uses` | | | | | | `uses` | | | | | | | | `evaluates` | | | | | | | | | | | | | | | | | | | | | | | | | |
| `example/consumer-purpose-portfolio` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `illustrates` | | | `illustrates` | | | | `uses` | | | | | | | | | | | | | | | | | | | | | | | | | |
| `example/emission-cadence/qonto-assistant` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `conforms_to` | | |
| `kernel/itc-core` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| `kernel/itc-kernel-map` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `maps` | | | | | `maps` | `maps` | `maps` | `maps` | `maps` | `maps` | `maps` | `maps` | `maps` | `maps` | `maps` | `maps` | | `maps` | `maps` | | | | | | | | | | | | | | | | | | | | | | | | | | | `maps` | | | `maps` |
| `mapping/capability-anchors` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| `mapping/emission-cadence-handover` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `maps` | | | | | `maps` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `maps` | | |
| `mapping/purpose-demand-governance-candidates` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `maps` | | | | | | | `maps` | | `uses` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| `model/access-control` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `conforms_to` | | | | | | | | | `uses` | `uses` | `uses` | | | | | `uses` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| `model/capability` | | `derived_from` | | | | | | `introduces` | | `uses` | | | | | | | | | | | | | | | | | | | `conforms_to` | | `introduces` | | | | | | | `uses` | `uses` | | | `uses` | | `uses` | | `uses` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| `model/data` | | | | | | | | | `introduces` | | | | | | | | | | | | | | | | | | | | `conforms_to` | | | | | | | | | `uses` | `uses` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| `model/devsecops` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `conforms_to` | | | | | | | | | `uses` | | | | | | | | | `uses` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| `model/evidence` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `conforms_to` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| `model/governance` | | | | | | | | | | `introduces` | | | | | | | | | | | | | | | | | | | `conforms_to` | | | | | | | | | `uses` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| `model/identity` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `conforms_to` | | | | | `uses` | | | | `uses` | | | | | | | `uses` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| `model/information-space` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `conforms_to` | | | | | | | | | `uses` | | `uses` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| `model/landscape` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `conforms_to` | | | | | | | | | `uses` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| `model/network` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `conforms_to` | | | | | | | | | `uses` | | | | | | | | | `uses` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| `model/observability` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `conforms_to` | | | | | | | | | `uses` | | | | | | | | | | `uses` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| `model/organization` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `conforms_to` | | | | | | | | | `uses` | | `uses` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| `model/purpose-demand-extension` | | | | | | | | | | | | | | | | `introduces` | | | | | | | | | | | | | `conforms_to` | | | | | | | | | | `extends` | | `uses` | | | | | | | `uses` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| `model/security` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `conforms_to` | | | | | `uses` | | | | `uses` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| `model/task` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `conforms_to` | | | | | | | | | `uses` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| `pattern/intent-scope-purposes` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `uses` | | | | | | | `implements` | | `uses` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| `practice-pattern/agentic-drives-functional` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `uses` | | | | `uses` | | | | | `uses` | | | | `uses` | | | `related_to` | | | | | | | | | `conforms_to` | | | | | | | | | | | | | | | | | | |
| `practice-pattern/interface-deprecation-strangler` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `uses` | | `uses` | | | | | `uses` | | | | | | | | | | | | | | | | `conforms_to` | | | | | | | | | | | | | | | | | | |
| `practice/intake-and-assimilation` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `conforms_to` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| `profile/small-saas` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `conforms_to` | | | | | `requires` | | `requires` | `requires` | | `requires` | | | `requires` | `requires` | `requires` | `requires` | | `requires` | `requires` | | | | | | | | | | | | | | | | | | | | | | | | | | | `requires` | | | `requires` |
| `review-kit/alignment` | | | `uses` | | | | | | | | | | | | | | | | | | | | | | | | | | `conforms_to` | | | | | | | | | | `uses` | | | | | | | `uses` | | `uses` | | | | | | | | | | | | | | | | | | | | | | | | | | | `uses` | | | |
| `review-kit/alignment/model-selection-guide` | | | `uses` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `uses` | | `uses` | `uses` | | `uses` | | | `uses` | `uses` | `uses` | `uses` | `uses` | `uses` | `uses` | | | | | `uses` | `part_of` | | | | | | | | | | | | | | | | | | | | | `uses` | | | `uses` |
| `review-kit/alignment/schema` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `uses` | | | | | | | | | `uses` | | | | | | `part_of` | | | | | | | | | | | | | | | | | | | | | | | | |
| `review-kit/alignment/scorecard` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `uses` | | | | | | | | | `uses` | | | | | | `part_of` | | | | | | | | | | | | | | | | | | | | | | | | |
| `review-kit/alignment/workflow` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `uses` | | | | | | | `uses` | | `uses` | | | | | | `part_of` | | | | | | | | | | | | | | | | | | | | | | | | |
| `review-kit/alignment/workplan-template` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `uses` | | `uses` | | | | | | `part_of` | | | | | | | | | | | | | | | | | | | | | | | | |
| `scheme/practice-pattern` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `conforms_to` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| `small-saas/capability-requirements/production` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `uses` | | | | | | | | | | | | | | | | | | `instantiates` | | | | | | | | | | | | | | | `applies_to` | | | | | | | | | | |
| `small-saas/control/namespace-per-tenant` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `uses` | | | | | | `instantiates` | | | | | | | | | | | | `evidenced_by` | | | | | | | | | | `uses` | | | |
| `small-saas/dataset/subscription-ledger` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `uses` | | | | | | | | | | | | | | | | | `instantiates` | | | | | | | | | | | | | | `governed_by` | `owned_by` | | | | `partitioned_for` | `partitioned_for` | | | | | |
| `small-saas/deployment/production` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `uses` | | | | | | `uses` | | | | | | | | | | `instantiates` | | | | | | | | | `implements` | | | | | | `deploys` | | | | `separates` | `separates` | | | | | |
| `small-saas/evidence/access-review-2026-05` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `uses` | | | | | | | | | `instantiates` | | | | | | | | | | | | | | | | | | | | | | | | | |
| `small-saas/incident/cross-tenant-access-attempt` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `uses` | | | | | | `instantiates` | | | | | | | | | `constrained_by` | | | `evidenced_by` | | | | | | | | | | | | | |
| `small-saas/policy/tenant-isolation` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `uses` | | | | | | | | | | | | | | `instantiates` | | | | | | | | | `requires` | | | `evidenced_by` | | | | | | | | | | | | | |
| `small-saas/service/billing-portal` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `uses` | | | | | | | | | | | `instantiates` | | | | | | | | | | | | | | | | `part_of` | | `owned_by` | | | | | | | |
| `small-saas/system/billing-system` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `uses` | | | | | | | | | | | `instantiates` | | | | | | | | | | | | | | | | | | | `serves` | `serves` | | | | | |
| `small-saas/task/onboard-tenant` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `uses` | | | | | `instantiates` | | | | | | | | | | | | | | `governed_by` | | | | `owned_by` | `changes` | | | | | | |
| `small-saas/team/platform` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `uses` | | | | | | | | `instantiates` | | | | | | | | | | | | | | | | | | | | | | | | | |
| `small-saas/tenant/acme` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `uses` | | | | | | | | `instantiates` | | | | | | | | | `isolated_by` | | | | | | | | | | | | `represented_by` | | | | |
| `small-saas/tenant/globex` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `uses` | | | | | | | | `instantiates` | | | | | | | | | `isolated_by` | | | | | | | | | | | | | | | | |
| `small-saas/user/ada-admin` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `uses` | | | | | | | | | | | `uses` | | | | | | | | `instantiates` | | | | | | | | | | | | `access_evidenced_by` | | `has_access_under` | | | | `member_of` | | | | | | | |
| `standard/caring` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `conforms_to` | | | | | `imports` | | `imports` | `imports` | `uses` | `imports` | | | | `imports` | `imports` | `imports` | | `imports` | `imports` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `imports` |
| `standard/emission-cadence` | `derived_from` | | | | | | | | | | | | | | | | | | | | | | | | | | | | `conforms_to` | | | | | | | | | | `imports` | | | | | `imports` | | | `related_to` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| `standard/repository-layout` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `conforms_to` | | | | | | | | | | `imports` | | `imports` | | | | | | | `imports` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| `standard/tagging` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `conforms_to` | | | | | | | | | `uses` | | | | | | | | | | `imports` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |

View file

@ -3,7 +3,7 @@
# Kernel Overview
- Infospace: `canon`
- Artifacts: 77
- Artifacts: 78
## Artifact Kinds
@ -33,7 +33,7 @@
- `kernel`: 2
- `mapping`: 3
- `mapping-expectation`: 1
- `model`: 13
- `model`: 14
- `model-extension`: 1
- `model-selection-guide`: 1
- `native-concept-map`: 1
@ -53,7 +53,7 @@
- `applies_to`: 1
- `changes`: 1
- `compares`: 1
- `conforms_to`: 29
- `conforms_to`: 30
- `constrained_by`: 1
- `deploys`: 1
- `derived_from`: 2
@ -68,7 +68,7 @@
- `instantiates`: 14
- `introduces`: 5
- `isolated_by`: 2
- `maps`: 41
- `maps`: 42
- `member_of`: 1
- `owned_by`: 3
- `part_of`: 22
@ -80,4 +80,4 @@
- `separates`: 2
- `serves`: 2
- `stress_tests`: 6
- `uses`: 140
- `uses`: 146

View file

@ -2,7 +2,7 @@
# Repository Tree
File count: **210**
File count: **214**
- `README.md`
- `agent/README.md`
@ -42,6 +42,7 @@ File count: **210**
- `agent/briefs/model-devsecops.md`
- `agent/briefs/model-evidence.md`
- `agent/briefs/model-governance.md`
- `agent/briefs/model-identity.md`
- `agent/briefs/model-information-space.md`
- `agent/briefs/model-landscape.md`
- `agent/briefs/model-network.md`
@ -147,6 +148,8 @@ File count: **210**
- `models/governance/InfoTechCanonGovernanceModel.md`
- `models/governance/InfoTechCanonPurposeDemandExtension.md`
- `models/governance/evidence-basis.yaml`
- `models/identity/InfoTechCanonIdentityModel.md`
- `models/identity/boundary-review.md`
- `models/information-space/InfoTechCanonInformationSpaceModel.md`
- `models/landscape/InfoTechCanonLandscapeModel.md`
- `models/network/InfoTechCanonNetworkModel.md`
@ -206,6 +209,7 @@ File count: **210**
- `standards/tagging/InfoTechCanonTaggingStandard.md`
- `validation/README.md`
- `validation/latest.json`
- `validation/model-import-reviews.yaml`
- `views/README.md`
- `views/by-concept.md`
- `views/by-mapping-target.md`

View file

@ -0,0 +1,55 @@
"""Exact reviewed model-import cycles; preserve the complete artifact graph."""
from pathlib import Path
import yaml
def reviewed_import_cycles(artifacts, root: Path) -> list[dict] | None:
"""Return reviews only when every cyclic component matches its exact edge set.
None means the ordinary zero-cycle threshold still applies. Reviews cannot
excuse new nodes, edges, relationship types, or a missing boundary rationale.
"""
path = root / "validation/model-import-reviews.yaml"
if not path.is_file():
return None
try:
payload = yaml.safe_load(path.read_text())
reviews = payload["reviews"]
if not isinstance(reviews, list):
return None
by_id = {a.id: a for a in artifacts}
edges = {(a.id, rel.get("type"), rel.get("target"))
for a in artifacts for rel in a.relationships
if rel.get("target") in by_id}
graph = {key: {target for source, _, target in edges if source == key}
for key in by_id}
reachable = {}
for node in graph:
seen, pending = set(), list(graph[node])
while pending:
target = pending.pop()
if target not in seen:
seen.add(target)
pending.extend(graph[target] - seen)
reachable[node] = seen
components = {frozenset(other for other in graph
if other in reachable[node] and node in reachable[other])
for node in graph if node in reachable[node]}
matched = []
for nodes in sorted(components, key=lambda group: sorted(group)):
actual = {edge for edge in edges if edge[0] in nodes and edge[2] in nodes}
for review in reviews:
expected = {tuple(edge) for edge in review["edges"]}
rationale = (root / review["boundary_review"]).resolve()
if (actual == expected and all(by_id[node].kind == "model" for node in nodes)
and rationale.is_relative_to(root.resolve()) and rationale.is_file()
and all(kind == "uses" for _, kind, _ in actual)):
matched.append({"nodes": sorted(nodes), "edges": sorted(actual),
"boundary_review": review["boundary_review"]})
break
else:
return None
return matched
except (KeyError, TypeError, ValueError, OSError, yaml.YAMLError):
return None

View file

@ -214,6 +214,13 @@ def validate_canon(root: Path | str | None = None) -> dict[str, Any]:
checks.metrics,
context.infospace.config.viability,
)
from .import_reviews import reviewed_import_cycles
import_reviews = reviewed_import_cycles(context.infospace.artifacts, context.infospace_root)
if import_reviews:
threshold_errors = [error for error in threshold_errors
if error.get("metric") != "consistency_cycles"]
checks.details["reviewed_model_import_cycles"] = import_reviews
checks.details["cycle_threshold_exception"] = "Exact reviewed reciprocal model imports; raw metric retained"
errors.extend(threshold_errors)
structural = structural_checks(context)
errors.extend(structural["errors"])

View file

@ -11,7 +11,7 @@ def test_cli_inspect_emits_json(capsys) -> None:
assert exit_code == 0
payload = json.loads(capsys.readouterr().out)
assert payload["ok"] is True
assert payload["infospace"]["artifact_count"] == 77
assert payload["infospace"]["artifact_count"] == 78
def test_cli_missing_profile_uses_structured_error(capsys) -> None:

View file

@ -0,0 +1,26 @@
from info_tech_canon.generation import concept_ownership
from info_tech_canon.service import load_context
def test_identity_does_not_own_its_upstream_imports():
context = load_context()
rows = concept_ownership(context)["concepts"]
owned = {r["concept"] for r in rows if r["owner"] == "model/identity" and r["source"] == "frontmatter.owned_concepts"}
assert len(owned) == 23
assert owned.isdisjoint({"Actor", "Person", "Agent", "Organization", "Group", "Role", "Membership", "Subject", "Principal", "Relationship Tuple", "Evidence", "Evidence Source", "Authority", "Responsibility", "Ownership"})
for concept in owned:
assert {r["owner"] for r in rows if r["concept"] == concept} == {"model/identity"}
def test_incumbent_definition_anchors_are_imports():
root = load_context().infospace_root
for path, concept, anchor in [
("models/organization/InfoTechCanonOrganizationModel.md", "Delegation", "## 10.18 Delegation"),
("models/information-space/InfoTechCanonInformationSpaceModel.md", "Identifier", "## 11.37 Identifier"),
]:
text = (root / path).read_text()
assert anchor in text
assert f"**{concept}** is" not in text
assert "../identity/InfoTechCanonIdentityModel.md" in text
access = (root / "models/access-control/InfoTechCanonAccessControlModel.md").read_text()
assert "ITC-IDENT" in access.split("## 3.5 Boundary with Identity and Authentication", 1)[1].split("## ", 1)[0]

View file

@ -0,0 +1,45 @@
from types import SimpleNamespace
import yaml
from info_tech_canon.import_reviews import reviewed_import_cycles
def fixture(tmp_path):
(tmp_path / "validation").mkdir()
(tmp_path / "review.md").write_text("Distinct concept owners reviewed.")
edges = [["a", "uses", "b"], ["b", "uses", "a"]]
(tmp_path / "validation/model-import-reviews.yaml").write_text(yaml.safe_dump(
{"reviews": [{"boundary_review": "review.md", "edges": edges}]}))
return [SimpleNamespace(id="a", kind="model", relationships=[{"type": "uses", "target": "b"}]),
SimpleNamespace(id="b", kind="model", relationships=[{"type": "uses", "target": "a"}])]
def test_exact_review_preserves_reciprocal_imports(tmp_path):
artifacts = fixture(tmp_path)
assert len(reviewed_import_cycles(artifacts, tmp_path)) == 1
assert artifacts[0].relationships == [{"type": "uses", "target": "b"}]
def test_new_internal_edge_or_type_is_not_excused(tmp_path):
artifacts = fixture(tmp_path)
artifacts[0].relationships.append({"type": "defines", "target": "b"})
assert reviewed_import_cycles(artifacts, tmp_path) is None
def test_new_component_member_is_not_excused(tmp_path):
artifacts = fixture(tmp_path)
artifacts[0].relationships.append({"type": "uses", "target": "c"})
artifacts.append(SimpleNamespace(id="c", kind="model", relationships=[{"type": "uses", "target": "a"}]))
assert reviewed_import_cycles(artifacts, tmp_path) is None
def test_missing_rationale_is_not_excused(tmp_path):
artifacts = fixture(tmp_path)
(tmp_path / "review.md").unlink()
assert reviewed_import_cycles(artifacts, tmp_path) is None
def test_unreviewed_second_cycle_is_not_excused(tmp_path):
artifacts = fixture(tmp_path)
artifacts.append(SimpleNamespace(id="c", kind="model", relationships=[{"type": "uses", "target": "c"}]))
assert reviewed_import_cycles(artifacts, tmp_path) is None

View file

@ -25,7 +25,7 @@ def test_inspect_canon_counts_artifact_kinds() -> None:
assert payload["ok"] is True
assert payload["infospace"]["slug"] == "canon"
assert payload["infospace"]["artifact_count"] == 77
assert payload["infospace"]["artifact_count"] == 78
assert payload["infospace"]["kinds"] == {
"access-descriptor-set": 1,
"alignment-review-kit": 1,
@ -53,7 +53,7 @@ def test_inspect_canon_counts_artifact_kinds() -> None:
"kernel": 2,
"mapping": 3,
"mapping-expectation": 1,
"model": 13,
"model": 14,
"model-extension": 1,
"model-selection-guide": 1,
"native-concept-map": 1,
@ -70,7 +70,7 @@ def test_inspect_canon_counts_artifact_kinds() -> None:
def test_model_and_standard_lists_are_filtered() -> None:
assert list_models()["count"] == 13
assert list_models()["count"] == 14
assert list_standards()["count"] == 4
@ -99,14 +99,14 @@ def test_validate_canon_passes_scaffold() -> None:
assert payload["ok"] is True
assert payload["errors"] == []
assert "warnings" in payload
assert payload["details"]["artifact_count"] == 77
assert payload["details"]["artifact_count"] == 78
def test_graph_exports_relationship_summary() -> None:
payload = artifact_graph()
assert payload["ok"] is True
assert payload["graph"]["node_count"] == 77
assert payload["graph"]["node_count"] == 78
assert payload["graph"]["edge_count"] > 15

View file

@ -0,0 +1,71 @@
---
id: INFO-WP-0021
type: workplan
title: "Identity model and upstream ownership reconciliation"
domain: infotech
repo: info-tech-canon
status: finished
owner: codex
topic_slug: canon
created: "2026-09-05"
updated: "2026-09-05"
state_hub_workstream_id: "0e35415e-af27-5710-9d18-25769dc71ec6"
---
# Identity model and upstream ownership reconciliation
Implements CFED-WP-0001-T05 from accepted ADR-006 and the federation ledger.
## Reconcile incumbent definitions
```task
id: INFO-WP-0021-T01
status: done
priority: high
state_hub_task_id: "6b907000-2be8-5dc2-8cc4-442e672bc35b"
```
Review Delegation/Identifier overlaps against accepted ownership; consolidate
into identity and retain upstream import anchors. Disambiguate Profile,
Relationship and assurance dimensions. Record boundary-review.md.
## Author and register the identity model
```task
id: INFO-WP-0021-T02
status: done
priority: high
state_hub_task_id: "a34f8f3e-70bd-5bf8-90c0-80ad047b067a"
```
Represent all 23 ledger-assigned concepts and two convenience terms; import
organization, access and evidence concepts; adapt P1P13. Register draft 0.1.0
in canon, infospace, artifact graph and kernel map. Close the Access identity gap.
## Verify ownership and retrieval
```task
id: INFO-WP-0021-T03
status: done
priority: high
state_hub_task_id: "2ae54fb7-2079-5fbc-b745-eb36a6787fc9"
```
Check exact ledger coverage, no upstream-owned concept definitions, no duplicate
Delegation/Identifier definitions, generated surfaces, service checks and source
preservation. Record project evidence and synchronize native tasks.
## Live continuation
CFED T06 owns CommerceCanon publication; T07 corpus distribution; T08 interface
cards; T12/T13 social collective and Family work. These remain live records;
no stable promotion or consumer adoption is claimed by this implementation.
## Verification — 2026-09-05
make check passes: 45 tests, generated consistency, canon and small-saas profile
validation. Exact ledger coverage: 23 owned concepts plus two convenience terms.
All 34 protected seed/finished-plan hashes unchanged; links and whitespace pass.
The exact five-edge model-import component has a documented validation exception
with regressions for unexpected edges, members, cycles and missing rationale.
See [project evidence](../../prj-canon-federation/docs/evidence/2026-09-05-identity-model.md).

View file

@ -16,6 +16,14 @@ implementation_decisions:
consumer_workplans_live_in_consumer_repos: true
workplans:
- id: INFO-WP-0021
title: Identity model and upstream ownership reconciliation
status: finished
priority: high
path: workplans/INFO-WP-0021-identity-model.md
depends_on: [INFO-WP-0020]
produces: [itc-ident, upstream identity imports]
- id: INFO-WP-0020
title: Shared evidence model and governance import boundary
status: finished