diff --git a/WORK-RECORDS.md b/WORK-RECORDS.md index f9e6462..6eb9e7a 100644 --- a/WORK-RECORDS.md +++ b/WORK-RECORDS.md @@ -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 | diff --git a/canon.yaml b/canon.yaml index 699a320..8c5b0ac 100644 --- a/canon.yaml +++ b/canon.yaml @@ -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 diff --git a/infospace/agent/briefs/model-access-control.md b/infospace/agent/briefs/model-access-control.md index 8627509..ef6d471 100644 --- a/infospace/agent/briefs/model-access-control.md +++ b/infospace/agent/briefs/model-access-control.md @@ -22,6 +22,7 @@ Imports and anchors: - `kernel/itc-core` - `model/evidence` - `model/governance` +- `model/identity` - `model/organization` ## Owned Concepts diff --git a/infospace/agent/briefs/model-identity.md b/infospace/agent/briefs/model-identity.md new file mode 100644 index 0000000..38282d4 --- /dev/null +++ b/infospace/agent/briefs/model-identity.md @@ -0,0 +1,56 @@ +--- +id: agent-brief/model-identity +artifact_id: model/identity +source_path: models/identity/InfoTechCanonIdentityModel.md +source_kind: model +generated: true +--- + + + +# 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. diff --git a/infospace/agent/briefs/model-information-space.md b/infospace/agent/briefs/model-information-space.md index f9e9901..5507e2c 100644 --- a/infospace/agent/briefs/model-information-space.md +++ b/infospace/agent/briefs/model-information-space.md @@ -21,6 +21,7 @@ generated: true Imports and anchors: - `kernel/itc-core` - `model/evidence` +- `model/identity` ## Owned Concepts diff --git a/infospace/agent/briefs/model-organization.md b/infospace/agent/briefs/model-organization.md index 3fead0a..9629d6c 100644 --- a/infospace/agent/briefs/model-organization.md +++ b/infospace/agent/briefs/model-organization.md @@ -21,6 +21,7 @@ generated: true Imports and anchors: - `kernel/itc-core` - `model/evidence` +- `model/identity` ## Owned Concepts diff --git a/infospace/agent/global-agent-brief.md b/infospace/agent/global-agent-brief.md index 2564c96..0956267 100644 --- a/infospace/agent/global-agent-brief.md +++ b/infospace/agent/global-agent-brief.md @@ -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` diff --git a/infospace/agent/retrieval-index.json b/infospace/agent/retrieval-index.json index d835742..3929177 100644 --- a/infospace/agent/retrieval-index.json +++ b/infospace/agent/retrieval-index.json @@ -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" diff --git a/infospace/agent/retrieval-index.md b/infospace/agent/retrieval-index.md index 51490df..bef2849 100644 --- a/infospace/agent/retrieval-index.md +++ b/infospace/agent/retrieval-index.md @@ -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 diff --git a/infospace/agent/retrieval-index.yaml b/infospace/agent/retrieval-index.yaml index e31d016..db29879 100644 --- a/infospace/agent/retrieval-index.yaml +++ b/infospace/agent/retrieval-index.yaml @@ -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 diff --git a/infospace/artifacts/index.yaml b/infospace/artifacts/index.yaml index f62a266..b8d0962 100644 --- a/infospace/artifacts/index.yaml +++ b/infospace/artifacts/index.yaml @@ -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 diff --git a/infospace/indexes/artifact-tree.yaml b/infospace/indexes/artifact-tree.yaml index 40889b6..72114af 100644 --- a/infospace/indexes/artifact-tree.yaml +++ b/infospace/indexes/artifact-tree.yaml @@ -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 diff --git a/infospace/indexes/concept-ownership.yaml b/infospace/indexes/concept-ownership.yaml index 49abbd9..f94d600 100644 --- a/infospace/indexes/concept-ownership.yaml +++ b/infospace/indexes/concept-ownership.yaml @@ -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 diff --git a/infospace/indexes/import-matrix.yaml b/infospace/indexes/import-matrix.yaml index 906dc62..a581ed9 100644 --- a/infospace/indexes/import-matrix.yaml +++ b/infospace/indexes/import-matrix.yaml @@ -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: diff --git a/infospace/infospace.yaml b/infospace/infospace.yaml index 243bbba..1f51380 100644 --- a/infospace/infospace.yaml +++ b/infospace/infospace.yaml @@ -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 diff --git a/infospace/kernel/InfoTechCanonKernelMap.md b/infospace/kernel/InfoTechCanonKernelMap.md index 98784bf..81fb55d 100644 --- a/infospace/kernel/InfoTechCanonKernelMap.md +++ b/infospace/kernel/InfoTechCanonKernelMap.md @@ -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) | diff --git a/infospace/models/access-control/InfoTechCanonAccessControlModel.md b/infospace/models/access-control/InfoTechCanonAccessControlModel.md index 9746c0e..4a7eeaa 100644 --- a/infospace/models/access-control/InfoTechCanonAccessControlModel.md +++ b/infospace/models/access-control/InfoTechCanonAccessControlModel.md @@ -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: diff --git a/infospace/models/governance/InfoTechCanonGovernanceModel.md b/infospace/models/governance/InfoTechCanonGovernanceModel.md index 3d6f7f7..73033fd 100644 --- a/infospace/models/governance/InfoTechCanonGovernanceModel.md +++ b/infospace/models/governance/InfoTechCanonGovernanceModel.md @@ -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. --- diff --git a/infospace/models/identity/InfoTechCanonIdentityModel.md b/infospace/models/identity/InfoTechCanonIdentityModel.md new file mode 100644 index 0000000..d0cfc3e --- /dev/null +++ b/infospace/models/identity/InfoTechCanonIdentityModel.md @@ -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 Observability’s 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 donor’s 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 CommerceCanon’s 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 record’s 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 +P1–P13 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). diff --git a/infospace/models/identity/boundary-review.md b/infospace/models/identity/boundary-review.md new file mode 100644 index 0000000..c7b22c7 --- /dev/null +++ b/infospace/models/identity/boundary-review.md @@ -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. diff --git a/infospace/models/information-space/InfoTechCanonInformationSpaceModel.md b/infospace/models/information-space/InfoTechCanonInformationSpaceModel.md index ec019d1..79ed3bf 100644 --- a/infospace/models/information-space/InfoTechCanonInformationSpaceModel.md +++ b/infospace/models/information-space/InfoTechCanonInformationSpaceModel.md @@ -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: diff --git a/infospace/models/observability/InfoTechCanonObservabilityModel.md b/infospace/models/observability/InfoTechCanonObservabilityModel.md index 29e13ea..fec3cd6 100644 --- a/infospace/models/observability/InfoTechCanonObservabilityModel.md +++ b/infospace/models/observability/InfoTechCanonObservabilityModel.md @@ -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-IDENT’s 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. diff --git a/infospace/models/organization/InfoTechCanonOrganizationModel.md b/infospace/models/organization/InfoTechCanonOrganizationModel.md index fda87e4..f0f9902 100644 --- a/infospace/models/organization/InfoTechCanonOrganizationModel.md +++ b/infospace/models/organization/InfoTechCanonOrganizationModel.md @@ -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. --- diff --git a/infospace/validation/model-import-reviews.yaml b/infospace/validation/model-import-reviews.yaml new file mode 100644 index 0000000..59ef112 --- /dev/null +++ b/infospace/validation/model-import-reviews.yaml @@ -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] diff --git a/infospace/views/by-concept.md b/infospace/views/by-concept.md index dabbaf1..39534b1 100644 --- a/infospace/views/by-concept.md +++ b/infospace/views/by-concept.md @@ -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` | diff --git a/infospace/views/by-mapping-target.md b/infospace/views/by-mapping-target.md index 7e01289..bed603d 100644 --- a/infospace/views/by-mapping-target.md +++ b/infospace/views/by-mapping-target.md @@ -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` diff --git a/infospace/views/by-standard.md b/infospace/views/by-standard.md index 1960f31..3c8d19e 100644 --- a/infospace/views/by-standard.md +++ b/infospace/views/by-standard.md @@ -14,7 +14,7 @@ - ID: `kernel/itc-kernel-map` - Kind: `kernel` - Path: `kernel/InfoTechCanonKernelMap.md` -- Relationships: 16 +- Relationships: 17 ## InfoTechCanon CARING Access Governance Standard diff --git a/infospace/views/import-matrix.md b/infospace/views/import-matrix.md index 0f5f941..9bda1d3 100644 --- a/infospace/views/import-matrix.md +++ b/infospace/views/import-matrix.md @@ -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` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | diff --git a/infospace/views/kernel-overview.md b/infospace/views/kernel-overview.md index 244718f..c4f09ac 100644 --- a/infospace/views/kernel-overview.md +++ b/infospace/views/kernel-overview.md @@ -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 diff --git a/infospace/views/repository-tree.md b/infospace/views/repository-tree.md index 109937f..e75785d 100644 --- a/infospace/views/repository-tree.md +++ b/infospace/views/repository-tree.md @@ -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` diff --git a/src/info_tech_canon/import_reviews.py b/src/info_tech_canon/import_reviews.py new file mode 100644 index 0000000..6d49704 --- /dev/null +++ b/src/info_tech_canon/import_reviews.py @@ -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 diff --git a/src/info_tech_canon/service.py b/src/info_tech_canon/service.py index 7741be7..e9d78c2 100644 --- a/src/info_tech_canon/service.py +++ b/src/info_tech_canon/service.py @@ -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"]) diff --git a/tests/test_cli.py b/tests/test_cli.py index cb88abf..361e02c 100644 --- a/tests/test_cli.py +++ b/tests/test_cli.py @@ -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: diff --git a/tests/test_identity_boundary.py b/tests/test_identity_boundary.py new file mode 100644 index 0000000..aa8f7b1 --- /dev/null +++ b/tests/test_identity_boundary.py @@ -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] diff --git a/tests/test_import_reviews.py b/tests/test_import_reviews.py new file mode 100644 index 0000000..1990cec --- /dev/null +++ b/tests/test_import_reviews.py @@ -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 diff --git a/tests/test_service.py b/tests/test_service.py index c7437fa..283a64a 100644 --- a/tests/test_service.py +++ b/tests/test_service.py @@ -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 diff --git a/workplans/INFO-WP-0021-identity-model.md b/workplans/INFO-WP-0021-identity-model.md new file mode 100644 index 0000000..c9bef3e --- /dev/null +++ b/workplans/INFO-WP-0021-identity-model.md @@ -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 P1–P13. 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). diff --git a/workplans/index.yaml b/workplans/index.yaml index 0de0c45..be177c8 100644 --- a/workplans/index.yaml +++ b/workplans/index.yaml @@ -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