generated from coulomb/repo-seed
Add retrieval agent briefs and interface cards
This commit is contained in:
10
README.md
10
README.md
@@ -64,3 +64,13 @@ The first executable profile proof is `small-saas`. It lives under
|
||||
`infospace/profiles/small-saas/` and includes connected example artifacts for a
|
||||
tenant-aware SaaS service: service, system, tenants, user, team, dataset,
|
||||
deployment, task, policy, control, evidence, and incident.
|
||||
|
||||
## Agent Retrieval
|
||||
|
||||
Agent-facing retrieval assets live under `infospace/agent/`:
|
||||
|
||||
- `global-agent-brief.md`
|
||||
- `retrieval-index.md`, `retrieval-index.yaml`, and `retrieval-index.json`
|
||||
- per-artifact briefs in `agent/briefs/`
|
||||
- consumer brief templates in `agent/consumer-briefs/`
|
||||
- Canon Interface Card template in `agent/templates/`
|
||||
|
||||
29
infospace/agent/briefs/kernel-itc-core.md
Normal file
29
infospace/agent/briefs/kernel-itc-core.md
Normal file
@@ -0,0 +1,29 @@
|
||||
---
|
||||
id: agent-brief/kernel-itc-core
|
||||
artifact_id: kernel/itc-core
|
||||
source_path: kernel/InfoTechCanonCore.md
|
||||
source_kind: kernel
|
||||
generated: true
|
||||
---
|
||||
|
||||
<!-- GENERATED by info_tech_canon; do not edit by hand. -->
|
||||
|
||||
# Agent Brief: InfoTechCanon Core
|
||||
|
||||
- Artifact ID: `kernel/itc-core`
|
||||
- Kind: `kernel`
|
||||
- Canonical path: `kernel/InfoTechCanonCore.md`
|
||||
- Full source: `kernel/InfoTechCanonCore.md`
|
||||
- Summary: Kernel artifact that defines canon structure or integration: InfoTechCanon Core.
|
||||
|
||||
## Retrieval Hints
|
||||
|
||||
No imports or anchors recorded.
|
||||
|
||||
## Owned Concepts
|
||||
|
||||
- `InfoTechCanon Core`
|
||||
|
||||
## Related Distinctions
|
||||
|
||||
- **Intent vs Scope vs Purpose**: Intent captures why an actor wants something, scope bounds what is included, and purpose captures consumer demand or use case pressure on the repo.
|
||||
29
infospace/agent/briefs/kernel-itc-kernel-map.md
Normal file
29
infospace/agent/briefs/kernel-itc-kernel-map.md
Normal file
@@ -0,0 +1,29 @@
|
||||
---
|
||||
id: agent-brief/kernel-itc-kernel-map
|
||||
artifact_id: kernel/itc-kernel-map
|
||||
source_path: kernel/InfoTechCanonKernelMap.md
|
||||
source_kind: kernel
|
||||
generated: true
|
||||
---
|
||||
|
||||
<!-- GENERATED by info_tech_canon; do not edit by hand. -->
|
||||
|
||||
# Agent Brief: InfoTechCanon Kernel Map
|
||||
|
||||
- Artifact ID: `kernel/itc-kernel-map`
|
||||
- Kind: `kernel`
|
||||
- Canonical path: `kernel/InfoTechCanonKernelMap.md`
|
||||
- Full source: `kernel/InfoTechCanonKernelMap.md`
|
||||
- Summary: Kernel artifact that defines canon structure or integration: InfoTechCanon Kernel Map.
|
||||
|
||||
## Retrieval Hints
|
||||
|
||||
No imports or anchors recorded.
|
||||
|
||||
## Owned Concepts
|
||||
|
||||
- `InfoTechCanon Kernel Map`
|
||||
|
||||
## Related Distinctions
|
||||
|
||||
No common distinction is anchored directly on this artifact.
|
||||
33
infospace/agent/briefs/model-access-control.md
Normal file
33
infospace/agent/briefs/model-access-control.md
Normal file
@@ -0,0 +1,33 @@
|
||||
---
|
||||
id: agent-brief/model-access-control
|
||||
artifact_id: model/access-control
|
||||
source_path: models/access-control/InfoTechCanonAccessControlModel.md
|
||||
source_kind: model
|
||||
generated: true
|
||||
---
|
||||
|
||||
<!-- GENERATED by info_tech_canon; do not edit by hand. -->
|
||||
|
||||
# Agent Brief: InfoTechCanon Access Control Model
|
||||
|
||||
- Artifact ID: `model/access-control`
|
||||
- Kind: `model`
|
||||
- Canonical path: `models/access-control/InfoTechCanonAccessControlModel.md`
|
||||
- Full source: `models/access-control/InfoTechCanonAccessControlModel.md`
|
||||
- Summary: Domain model used by canon profiles and standards: InfoTechCanon Access Control Model.
|
||||
|
||||
## Retrieval Hints
|
||||
|
||||
Imports and anchors:
|
||||
- `kernel/itc-core`
|
||||
- `model/governance`
|
||||
- `model/organization`
|
||||
|
||||
## Owned Concepts
|
||||
|
||||
- `InfoTechCanon Access Control Model`
|
||||
|
||||
## Related Distinctions
|
||||
|
||||
- **Actor vs Subject vs Principal**: Use actor for the acting entity in a context, subject for the entity a policy evaluates, and principal for the authenticated identity bound to access decisions.
|
||||
- **Organization Role vs AccessRole vs CARING role**: Organization roles describe responsibility or position; access roles describe permissions; CARING roles classify access-governance needs and analysis.
|
||||
31
infospace/agent/briefs/model-data.md
Normal file
31
infospace/agent/briefs/model-data.md
Normal file
@@ -0,0 +1,31 @@
|
||||
---
|
||||
id: agent-brief/model-data
|
||||
artifact_id: model/data
|
||||
source_path: models/data/InfoTechCanonDataModel.md
|
||||
source_kind: model
|
||||
generated: true
|
||||
---
|
||||
|
||||
<!-- GENERATED by info_tech_canon; do not edit by hand. -->
|
||||
|
||||
# Agent Brief: InfoTechCanon Data Model
|
||||
|
||||
- Artifact ID: `model/data`
|
||||
- Kind: `model`
|
||||
- Canonical path: `models/data/InfoTechCanonDataModel.md`
|
||||
- Full source: `models/data/InfoTechCanonDataModel.md`
|
||||
- Summary: Domain model used by canon profiles and standards: InfoTechCanon Data Model.
|
||||
|
||||
## Retrieval Hints
|
||||
|
||||
Imports and anchors:
|
||||
- `kernel/itc-core`
|
||||
- `model/governance`
|
||||
|
||||
## Owned Concepts
|
||||
|
||||
- `InfoTechCanon Data Model`
|
||||
|
||||
## Related Distinctions
|
||||
|
||||
No common distinction is anchored directly on this artifact.
|
||||
31
infospace/agent/briefs/model-devsecops.md
Normal file
31
infospace/agent/briefs/model-devsecops.md
Normal file
@@ -0,0 +1,31 @@
|
||||
---
|
||||
id: agent-brief/model-devsecops
|
||||
artifact_id: model/devsecops
|
||||
source_path: models/devsecops/InfoTechCanonDevSecOpsModel.md
|
||||
source_kind: model
|
||||
generated: true
|
||||
---
|
||||
|
||||
<!-- GENERATED by info_tech_canon; do not edit by hand. -->
|
||||
|
||||
# Agent Brief: InfoTechCanon DevSecOps Model
|
||||
|
||||
- Artifact ID: `model/devsecops`
|
||||
- Kind: `model`
|
||||
- Canonical path: `models/devsecops/InfoTechCanonDevSecOpsModel.md`
|
||||
- Full source: `models/devsecops/InfoTechCanonDevSecOpsModel.md`
|
||||
- Summary: Domain model used by canon profiles and standards: InfoTechCanon DevSecOps Model.
|
||||
|
||||
## Retrieval Hints
|
||||
|
||||
Imports and anchors:
|
||||
- `kernel/itc-core`
|
||||
- `model/security`
|
||||
|
||||
## Owned Concepts
|
||||
|
||||
- `InfoTechCanon DevSecOps Model`
|
||||
|
||||
## Related Distinctions
|
||||
|
||||
No common distinction is anchored directly on this artifact.
|
||||
31
infospace/agent/briefs/model-governance.md
Normal file
31
infospace/agent/briefs/model-governance.md
Normal file
@@ -0,0 +1,31 @@
|
||||
---
|
||||
id: agent-brief/model-governance
|
||||
artifact_id: model/governance
|
||||
source_path: models/governance/InfoTechCanonGovernanceModel.md
|
||||
source_kind: model
|
||||
generated: true
|
||||
---
|
||||
|
||||
<!-- GENERATED by info_tech_canon; do not edit by hand. -->
|
||||
|
||||
# Agent Brief: InfoTechCanon Governance Model
|
||||
|
||||
- Artifact ID: `model/governance`
|
||||
- Kind: `model`
|
||||
- Canonical path: `models/governance/InfoTechCanonGovernanceModel.md`
|
||||
- Full source: `models/governance/InfoTechCanonGovernanceModel.md`
|
||||
- Summary: Domain model used by canon profiles and standards: InfoTechCanon Governance Model.
|
||||
|
||||
## Retrieval Hints
|
||||
|
||||
Imports and anchors:
|
||||
- `kernel/itc-core`
|
||||
|
||||
## Owned Concepts
|
||||
|
||||
- `InfoTechCanon Governance Model`
|
||||
|
||||
## Related Distinctions
|
||||
|
||||
- **Policy vs Control vs Evidence**: Policy states intent or rule, control implements or enforces that rule, and evidence records why the claim should be trusted.
|
||||
- **Intent vs Scope vs Purpose**: Intent captures why an actor wants something, scope bounds what is included, and purpose captures consumer demand or use case pressure on the repo.
|
||||
30
infospace/agent/briefs/model-information-space.md
Normal file
30
infospace/agent/briefs/model-information-space.md
Normal file
@@ -0,0 +1,30 @@
|
||||
---
|
||||
id: agent-brief/model-information-space
|
||||
artifact_id: model/information-space
|
||||
source_path: models/information-space/InfoTechCanonInformationSpaceModel.md
|
||||
source_kind: model
|
||||
generated: true
|
||||
---
|
||||
|
||||
<!-- GENERATED by info_tech_canon; do not edit by hand. -->
|
||||
|
||||
# Agent Brief: InfoTechCanon Information Space Model
|
||||
|
||||
- Artifact ID: `model/information-space`
|
||||
- Kind: `model`
|
||||
- Canonical path: `models/information-space/InfoTechCanonInformationSpaceModel.md`
|
||||
- Full source: `models/information-space/InfoTechCanonInformationSpaceModel.md`
|
||||
- Summary: Domain model used by canon profiles and standards: InfoTechCanon Information Space Model.
|
||||
|
||||
## Retrieval Hints
|
||||
|
||||
Imports and anchors:
|
||||
- `kernel/itc-core`
|
||||
|
||||
## Owned Concepts
|
||||
|
||||
- `InfoTechCanon Information Space Model`
|
||||
|
||||
## Related Distinctions
|
||||
|
||||
No common distinction is anchored directly on this artifact.
|
||||
30
infospace/agent/briefs/model-landscape.md
Normal file
30
infospace/agent/briefs/model-landscape.md
Normal file
@@ -0,0 +1,30 @@
|
||||
---
|
||||
id: agent-brief/model-landscape
|
||||
artifact_id: model/landscape
|
||||
source_path: models/landscape/InfoTechCanonLandscapeModel.md
|
||||
source_kind: model
|
||||
generated: true
|
||||
---
|
||||
|
||||
<!-- GENERATED by info_tech_canon; do not edit by hand. -->
|
||||
|
||||
# Agent Brief: InfoTechCanon Landscape Model
|
||||
|
||||
- Artifact ID: `model/landscape`
|
||||
- Kind: `model`
|
||||
- Canonical path: `models/landscape/InfoTechCanonLandscapeModel.md`
|
||||
- Full source: `models/landscape/InfoTechCanonLandscapeModel.md`
|
||||
- Summary: Domain model used by canon profiles and standards: InfoTechCanon Landscape Model.
|
||||
|
||||
## Retrieval Hints
|
||||
|
||||
Imports and anchors:
|
||||
- `kernel/itc-core`
|
||||
|
||||
## Owned Concepts
|
||||
|
||||
- `InfoTechCanon Landscape Model`
|
||||
|
||||
## Related Distinctions
|
||||
|
||||
No common distinction is anchored directly on this artifact.
|
||||
31
infospace/agent/briefs/model-network.md
Normal file
31
infospace/agent/briefs/model-network.md
Normal file
@@ -0,0 +1,31 @@
|
||||
---
|
||||
id: agent-brief/model-network
|
||||
artifact_id: model/network
|
||||
source_path: models/network/InfoTechCanonNetworkModel.md
|
||||
source_kind: model
|
||||
generated: true
|
||||
---
|
||||
|
||||
<!-- GENERATED by info_tech_canon; do not edit by hand. -->
|
||||
|
||||
# Agent Brief: InfoTechCanon Network Model
|
||||
|
||||
- Artifact ID: `model/network`
|
||||
- Kind: `model`
|
||||
- Canonical path: `models/network/InfoTechCanonNetworkModel.md`
|
||||
- Full source: `models/network/InfoTechCanonNetworkModel.md`
|
||||
- Summary: Domain model used by canon profiles and standards: InfoTechCanon Network Model.
|
||||
|
||||
## Retrieval Hints
|
||||
|
||||
Imports and anchors:
|
||||
- `kernel/itc-core`
|
||||
- `model/security`
|
||||
|
||||
## Owned Concepts
|
||||
|
||||
- `InfoTechCanon Network Model`
|
||||
|
||||
## Related Distinctions
|
||||
|
||||
No common distinction is anchored directly on this artifact.
|
||||
31
infospace/agent/briefs/model-observability.md
Normal file
31
infospace/agent/briefs/model-observability.md
Normal file
@@ -0,0 +1,31 @@
|
||||
---
|
||||
id: agent-brief/model-observability
|
||||
artifact_id: model/observability
|
||||
source_path: models/observability/InfoTechCanonObservabilityModel.md
|
||||
source_kind: model
|
||||
generated: true
|
||||
---
|
||||
|
||||
<!-- GENERATED by info_tech_canon; do not edit by hand. -->
|
||||
|
||||
# Agent Brief: InfoTechCanon Observability Model
|
||||
|
||||
- Artifact ID: `model/observability`
|
||||
- Kind: `model`
|
||||
- Canonical path: `models/observability/InfoTechCanonObservabilityModel.md`
|
||||
- Full source: `models/observability/InfoTechCanonObservabilityModel.md`
|
||||
- Summary: Domain model used by canon profiles and standards: InfoTechCanon Observability Model.
|
||||
|
||||
## Retrieval Hints
|
||||
|
||||
Imports and anchors:
|
||||
- `kernel/itc-core`
|
||||
- `model/task`
|
||||
|
||||
## Owned Concepts
|
||||
|
||||
- `InfoTechCanon Observability Model`
|
||||
|
||||
## Related Distinctions
|
||||
|
||||
- **Policy vs Control vs Evidence**: Policy states intent or rule, control implements or enforces that rule, and evidence records why the claim should be trusted.
|
||||
31
infospace/agent/briefs/model-organization.md
Normal file
31
infospace/agent/briefs/model-organization.md
Normal file
@@ -0,0 +1,31 @@
|
||||
---
|
||||
id: agent-brief/model-organization
|
||||
artifact_id: model/organization
|
||||
source_path: models/organization/InfoTechCanonOrganizationModel.md
|
||||
source_kind: model
|
||||
generated: true
|
||||
---
|
||||
|
||||
<!-- GENERATED by info_tech_canon; do not edit by hand. -->
|
||||
|
||||
# Agent Brief: InfoTechCanon Organization Model
|
||||
|
||||
- Artifact ID: `model/organization`
|
||||
- Kind: `model`
|
||||
- Canonical path: `models/organization/InfoTechCanonOrganizationModel.md`
|
||||
- Full source: `models/organization/InfoTechCanonOrganizationModel.md`
|
||||
- Summary: Domain model used by canon profiles and standards: InfoTechCanon Organization Model.
|
||||
|
||||
## Retrieval Hints
|
||||
|
||||
Imports and anchors:
|
||||
- `kernel/itc-core`
|
||||
|
||||
## Owned Concepts
|
||||
|
||||
- `InfoTechCanon Organization Model`
|
||||
|
||||
## Related Distinctions
|
||||
|
||||
- **Actor vs Subject vs Principal**: Use actor for the acting entity in a context, subject for the entity a policy evaluates, and principal for the authenticated identity bound to access decisions.
|
||||
- **Organization Role vs AccessRole vs CARING role**: Organization roles describe responsibility or position; access roles describe permissions; CARING roles classify access-governance needs and analysis.
|
||||
31
infospace/agent/briefs/model-security.md
Normal file
31
infospace/agent/briefs/model-security.md
Normal file
@@ -0,0 +1,31 @@
|
||||
---
|
||||
id: agent-brief/model-security
|
||||
artifact_id: model/security
|
||||
source_path: models/security/InfoTechCanonSecurityModel.md
|
||||
source_kind: model
|
||||
generated: true
|
||||
---
|
||||
|
||||
<!-- GENERATED by info_tech_canon; do not edit by hand. -->
|
||||
|
||||
# Agent Brief: InfoTechCanon Security Model
|
||||
|
||||
- Artifact ID: `model/security`
|
||||
- Kind: `model`
|
||||
- Canonical path: `models/security/InfoTechCanonSecurityModel.md`
|
||||
- Full source: `models/security/InfoTechCanonSecurityModel.md`
|
||||
- Summary: Domain model used by canon profiles and standards: InfoTechCanon Security Model.
|
||||
|
||||
## Retrieval Hints
|
||||
|
||||
Imports and anchors:
|
||||
- `kernel/itc-core`
|
||||
- `model/access-control`
|
||||
|
||||
## Owned Concepts
|
||||
|
||||
- `InfoTechCanon Security Model`
|
||||
|
||||
## Related Distinctions
|
||||
|
||||
- **Policy vs Control vs Evidence**: Policy states intent or rule, control implements or enforces that rule, and evidence records why the claim should be trusted.
|
||||
30
infospace/agent/briefs/model-task.md
Normal file
30
infospace/agent/briefs/model-task.md
Normal file
@@ -0,0 +1,30 @@
|
||||
---
|
||||
id: agent-brief/model-task
|
||||
artifact_id: model/task
|
||||
source_path: models/task/InfoTechCanonTaskModel.md
|
||||
source_kind: model
|
||||
generated: true
|
||||
---
|
||||
|
||||
<!-- GENERATED by info_tech_canon; do not edit by hand. -->
|
||||
|
||||
# Agent Brief: InfoTechCanon Task Model
|
||||
|
||||
- Artifact ID: `model/task`
|
||||
- Kind: `model`
|
||||
- Canonical path: `models/task/InfoTechCanonTaskModel.md`
|
||||
- Full source: `models/task/InfoTechCanonTaskModel.md`
|
||||
- Summary: Domain model used by canon profiles and standards: InfoTechCanon Task Model.
|
||||
|
||||
## Retrieval Hints
|
||||
|
||||
Imports and anchors:
|
||||
- `kernel/itc-core`
|
||||
|
||||
## Owned Concepts
|
||||
|
||||
- `InfoTechCanon Task Model`
|
||||
|
||||
## Related Distinctions
|
||||
|
||||
No common distinction is anchored directly on this artifact.
|
||||
42
infospace/agent/briefs/profile-small-saas.md
Normal file
42
infospace/agent/briefs/profile-small-saas.md
Normal file
@@ -0,0 +1,42 @@
|
||||
---
|
||||
id: agent-brief/profile-small-saas
|
||||
artifact_id: profile/small-saas
|
||||
source_path: profiles/small-saas/profile.yaml
|
||||
source_kind: profile
|
||||
generated: true
|
||||
---
|
||||
|
||||
<!-- GENERATED by info_tech_canon; do not edit by hand. -->
|
||||
|
||||
# Agent Brief: Small SaaS System Profile
|
||||
|
||||
- Artifact ID: `profile/small-saas`
|
||||
- Kind: `profile`
|
||||
- Canonical path: `profiles/small-saas/profile.yaml`
|
||||
- Full source: `profiles/small-saas/profile.yaml`
|
||||
- Summary: Profile that constrains canon artifacts for a practical implementation slice: Small SaaS System Profile.
|
||||
|
||||
## Retrieval Hints
|
||||
|
||||
Imports and anchors:
|
||||
- `kernel/itc-core`
|
||||
- `model/access-control`
|
||||
- `model/data`
|
||||
- `model/devsecops`
|
||||
- `model/governance`
|
||||
- `model/landscape`
|
||||
- `model/network`
|
||||
- `model/observability`
|
||||
- `model/organization`
|
||||
- `model/security`
|
||||
- `model/task`
|
||||
- `standard/caring`
|
||||
- `standard/tagging`
|
||||
|
||||
## Owned Concepts
|
||||
|
||||
- `Small SaaS System Profile`
|
||||
|
||||
## Related Distinctions
|
||||
|
||||
- **Intent vs Scope vs Purpose**: Intent captures why an actor wants something, scope bounds what is included, and purpose captures consumer demand or use case pressure on the repo.
|
||||
56
infospace/agent/briefs/standard-caring.md
Normal file
56
infospace/agent/briefs/standard-caring.md
Normal file
@@ -0,0 +1,56 @@
|
||||
---
|
||||
id: agent-brief/standard-caring
|
||||
artifact_id: standard/caring
|
||||
source_path: standards/caring/InfoTechCanonCaringAccessGovernanceStandard.md
|
||||
source_kind: standard
|
||||
generated: true
|
||||
---
|
||||
|
||||
<!-- GENERATED by info_tech_canon; do not edit by hand. -->
|
||||
|
||||
# Agent Brief: InfoTechCanon CARING Access Governance Standard
|
||||
|
||||
- Artifact ID: `standard/caring`
|
||||
- Kind: `standard`
|
||||
- Canonical path: `standards/caring/InfoTechCanonCaringAccessGovernanceStandard.md`
|
||||
- Full source: `standards/caring/InfoTechCanonCaringAccessGovernanceStandard.md`
|
||||
- Summary: Cross-cutting canon standard: InfoTechCanon CARING Access Governance Standard.
|
||||
|
||||
## Retrieval Hints
|
||||
|
||||
Imports and anchors:
|
||||
- `kernel/itc-core`
|
||||
- `model/access-control`
|
||||
- `model/data`
|
||||
- `model/devsecops`
|
||||
- `model/governance`
|
||||
- `model/network`
|
||||
- `model/observability`
|
||||
- `model/organization`
|
||||
- `model/security`
|
||||
- `model/task`
|
||||
- `standard/tagging`
|
||||
|
||||
## Owned Concepts
|
||||
|
||||
- `CARINGAccessDescriptor`
|
||||
- `CARINGAnalysisFitnessTest`
|
||||
- `CARINGAnalysisProcedure`
|
||||
- `CARINGCanonicalRole`
|
||||
- `CARINGCapabilityProfile`
|
||||
- `CARINGDeclaredAccessMap`
|
||||
- `CARINGDerivedCapability`
|
||||
- `CARINGEffectiveAccessMap`
|
||||
- `CARINGExposureEvent`
|
||||
- `CARINGExposureMode`
|
||||
- `CARINGInducedAccess`
|
||||
- `CARINGOrganizationRelation`
|
||||
- `CARINGPlane`
|
||||
- `CARINGRedesignProcedure`
|
||||
- `CARINGRestrictionPrecedence`
|
||||
- `InfoTechCanon CARING Access Governance Standard`
|
||||
|
||||
## Related Distinctions
|
||||
|
||||
- **Actor vs Subject vs Principal**: Use actor for the acting entity in a context, subject for the entity a policy evaluates, and principal for the authenticated identity bound to access decisions.
|
||||
- **Organization Role vs AccessRole vs CARING role**: Organization roles describe responsibility or position; access roles describe permissions; CARING roles classify access-governance needs and analysis.
|
||||
31
infospace/agent/briefs/standard-tagging.md
Normal file
31
infospace/agent/briefs/standard-tagging.md
Normal file
@@ -0,0 +1,31 @@
|
||||
---
|
||||
id: agent-brief/standard-tagging
|
||||
artifact_id: standard/tagging
|
||||
source_path: standards/tagging/InfoTechCanonTaggingStandard.md
|
||||
source_kind: standard
|
||||
generated: true
|
||||
---
|
||||
|
||||
<!-- GENERATED by info_tech_canon; do not edit by hand. -->
|
||||
|
||||
# Agent Brief: InfoTechCanon Tagging Standard
|
||||
|
||||
- Artifact ID: `standard/tagging`
|
||||
- Kind: `standard`
|
||||
- Canonical path: `standards/tagging/InfoTechCanonTaggingStandard.md`
|
||||
- Full source: `standards/tagging/InfoTechCanonTaggingStandard.md`
|
||||
- Summary: Cross-cutting canon standard: InfoTechCanon Tagging Standard.
|
||||
|
||||
## Retrieval Hints
|
||||
|
||||
Imports and anchors:
|
||||
- `kernel/itc-core`
|
||||
- `model/task`
|
||||
|
||||
## Owned Concepts
|
||||
|
||||
- `InfoTechCanon Tagging Standard`
|
||||
|
||||
## Related Distinctions
|
||||
|
||||
No common distinction is anchored directly on this artifact.
|
||||
24
infospace/agent/consumer-briefs/railiance-fabric.md
Normal file
24
infospace/agent/consumer-briefs/railiance-fabric.md
Normal file
@@ -0,0 +1,24 @@
|
||||
---
|
||||
id: consumer-brief/railiance-fabric
|
||||
consumer: railiance-fabric
|
||||
generated: true
|
||||
---
|
||||
|
||||
<!-- GENERATED by info_tech_canon; do not edit by hand. -->
|
||||
|
||||
# Railiance Fabric Canon Consumer Brief
|
||||
|
||||
## Purpose
|
||||
|
||||
Use the canon to make captured entities and edges cleaner for conformance and visualization.
|
||||
|
||||
## Starting Points
|
||||
|
||||
- `agent/retrieval-index.md`
|
||||
- `agent/templates/canon-interface-card.template.yaml`
|
||||
- `profiles/small-saas/profile.yaml`
|
||||
- `views/by-concept.md`
|
||||
|
||||
## Workplan Boundary
|
||||
|
||||
Adoption and repo-specific implementation workplans belong in the consumer repository.
|
||||
24
infospace/agent/consumer-briefs/repo-scoping.md
Normal file
24
infospace/agent/consumer-briefs/repo-scoping.md
Normal file
@@ -0,0 +1,24 @@
|
||||
---
|
||||
id: consumer-brief/repo-scoping
|
||||
consumer: repo-scoping
|
||||
generated: true
|
||||
---
|
||||
|
||||
<!-- GENERATED by info_tech_canon; do not edit by hand. -->
|
||||
|
||||
# Repo Scoping Canon Consumer Brief
|
||||
|
||||
## Purpose
|
||||
|
||||
Compare repo-scoping concepts with canon INTENT, SCOPE, PURPOSES, and interface-card expectations.
|
||||
|
||||
## Starting Points
|
||||
|
||||
- `agent/retrieval-index.md`
|
||||
- `agent/templates/canon-interface-card.template.yaml`
|
||||
- `profiles/small-saas/profile.yaml`
|
||||
- `views/by-concept.md`
|
||||
|
||||
## Workplan Boundary
|
||||
|
||||
Adoption and repo-specific implementation workplans belong in the consumer repository.
|
||||
24
infospace/agent/consumer-briefs/user-engine.md
Normal file
24
infospace/agent/consumer-briefs/user-engine.md
Normal file
@@ -0,0 +1,24 @@
|
||||
---
|
||||
id: consumer-brief/user-engine
|
||||
consumer: user-engine
|
||||
generated: true
|
||||
---
|
||||
|
||||
<!-- GENERATED by info_tech_canon; do not edit by hand. -->
|
||||
|
||||
# User Engine Canon Consumer Brief
|
||||
|
||||
## Purpose
|
||||
|
||||
Evaluate user-management concepts, roles, access traces, profile claims, and governance evidence against the canon before integration.
|
||||
|
||||
## Starting Points
|
||||
|
||||
- `agent/retrieval-index.md`
|
||||
- `agent/templates/canon-interface-card.template.yaml`
|
||||
- `profiles/small-saas/profile.yaml`
|
||||
- `views/by-concept.md`
|
||||
|
||||
## Workplan Boundary
|
||||
|
||||
Adoption and repo-specific implementation workplans belong in the consumer repository.
|
||||
@@ -6,8 +6,10 @@ This brief summarizes the current canon service surface for agents.
|
||||
|
||||
- Infospace slug: `canon`
|
||||
- Artifact count: 29
|
||||
- Retrieval index items: 29
|
||||
- Primary confidence command: `make validate`
|
||||
- Refresh generated indexes and views with: `make index`
|
||||
- Refresh agent briefs and interface templates with: `make agent-briefs`
|
||||
|
||||
## Useful Commands
|
||||
|
||||
@@ -15,6 +17,22 @@ This brief summarizes the current canon service surface for agents.
|
||||
- `PYTHONPATH=src python3 -m info_tech_canon validate`
|
||||
- `PYTHONPATH=src python3 -m info_tech_canon graph`
|
||||
- `PYTHONPATH=src python3 -m info_tech_canon index`
|
||||
- `PYTHONPATH=src python3 -m info_tech_canon profile validate small-saas`
|
||||
|
||||
## Retrieval Entry Points
|
||||
|
||||
- `agent/retrieval-index.md`
|
||||
- `agent/retrieval-index.yaml`
|
||||
- `agent/retrieval-index.json`
|
||||
- `agent/briefs/` for per-artifact briefs
|
||||
- `agent/templates/canon-interface-card.template.yaml`
|
||||
|
||||
## Common Distinctions
|
||||
|
||||
- **Actor vs Subject vs Principal**: Use actor for the acting entity in a context, subject for the entity a policy evaluates, and principal for the authenticated identity bound to access decisions.
|
||||
- **Organization Role vs AccessRole vs CARING role**: Organization roles describe responsibility or position; access roles describe permissions; CARING roles classify access-governance needs and analysis.
|
||||
- **Policy vs Control vs Evidence**: Policy states intent or rule, control implements or enforces that rule, and evidence records why the claim should be trusted.
|
||||
- **Intent vs Scope vs Purpose**: Intent captures why an actor wants something, scope bounds what is included, and purpose captures consumer demand or use case pressure on the repo.
|
||||
|
||||
## Consumption Notes
|
||||
|
||||
|
||||
1038
infospace/agent/retrieval-index.json
Normal file
1038
infospace/agent/retrieval-index.json
Normal file
File diff suppressed because it is too large
Load Diff
306
infospace/agent/retrieval-index.md
Normal file
306
infospace/agent/retrieval-index.md
Normal file
@@ -0,0 +1,306 @@
|
||||
<!-- GENERATED by info_tech_canon; do not edit by hand. -->
|
||||
|
||||
# Retrieval Index
|
||||
|
||||
Schema: `info-tech-canon.retrieval-index.v1`
|
||||
Infospace: `canon`
|
||||
Items: **29**
|
||||
|
||||
## Common Distinctions
|
||||
|
||||
- **Actor vs Subject vs Principal**: Use actor for the acting entity in a context, subject for the entity a policy evaluates, and principal for the authenticated identity bound to access decisions. Sources: `model/organization`, `model/access-control`, `standard/caring`
|
||||
- **Organization Role vs AccessRole vs CARING role**: Organization roles describe responsibility or position; access roles describe permissions; CARING roles classify access-governance needs and analysis. Sources: `model/organization`, `model/access-control`, `standard/caring`
|
||||
- **Policy vs Control vs Evidence**: Policy states intent or rule, control implements or enforces that rule, and evidence records why the claim should be trusted. Sources: `model/governance`, `model/security`, `model/observability`
|
||||
- **Intent vs Scope vs Purpose**: Intent captures why an actor wants something, scope bounds what is included, and purpose captures consumer demand or use case pressure on the repo. Sources: `kernel/itc-core`, `model/governance`, `profile/small-saas`
|
||||
|
||||
## Items
|
||||
|
||||
### InfoTechCanon Core
|
||||
|
||||
- ID: `kernel/itc-core`
|
||||
- Kind: `kernel`
|
||||
- Canonical path: `kernel/InfoTechCanonCore.md`
|
||||
- Source path: `seeds/InfoTechCanonCore_RC1_seed.md`
|
||||
- Summary: Kernel artifact that defines canon structure or integration: InfoTechCanon Core.
|
||||
- Imports and anchors: none
|
||||
- Owned concepts: `InfoTechCanon Core`
|
||||
|
||||
### InfoTechCanon Kernel Map
|
||||
|
||||
- ID: `kernel/itc-kernel-map`
|
||||
- Kind: `kernel`
|
||||
- Canonical path: `kernel/InfoTechCanonKernelMap.md`
|
||||
- Source path: `seeds/InfoTechCanonKernelMap_RC1.md`
|
||||
- Summary: Kernel artifact that defines canon structure or integration: InfoTechCanon Kernel Map.
|
||||
- Imports and anchors: none
|
||||
- Owned concepts: `InfoTechCanon Kernel Map`
|
||||
|
||||
### InfoTechCanon Access Control Model
|
||||
|
||||
- ID: `model/access-control`
|
||||
- Kind: `model`
|
||||
- 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/governance`, `model/organization`
|
||||
- Owned concepts: `InfoTechCanon Access Control Model`
|
||||
|
||||
### InfoTechCanon Data Model
|
||||
|
||||
- ID: `model/data`
|
||||
- Kind: `model`
|
||||
- Canonical path: `models/data/InfoTechCanonDataModel.md`
|
||||
- Source path: `seeds/InfoTechCanonDataModel_RC1_seed.md`
|
||||
- Summary: Domain model used by canon profiles and standards: InfoTechCanon Data Model.
|
||||
- Imports and anchors: `kernel/itc-core`, `model/governance`
|
||||
- Owned concepts: `InfoTechCanon Data Model`
|
||||
|
||||
### InfoTechCanon DevSecOps Model
|
||||
|
||||
- ID: `model/devsecops`
|
||||
- Kind: `model`
|
||||
- Canonical path: `models/devsecops/InfoTechCanonDevSecOpsModel.md`
|
||||
- Source path: `seeds/InfoTechCanonDevSecOpsModel_RC1_seed.md`
|
||||
- Summary: Domain model used by canon profiles and standards: InfoTechCanon DevSecOps Model.
|
||||
- Imports and anchors: `kernel/itc-core`, `model/security`
|
||||
- Owned concepts: `InfoTechCanon DevSecOps Model`
|
||||
|
||||
### InfoTechCanon Governance Model
|
||||
|
||||
- ID: `model/governance`
|
||||
- Kind: `model`
|
||||
- Canonical path: `models/governance/InfoTechCanonGovernanceModel.md`
|
||||
- Source path: `seeds/InfoTechCanonGovernanceModel_RC1_seed.md`
|
||||
- Summary: Domain model used by canon profiles and standards: InfoTechCanon Governance Model.
|
||||
- Imports and anchors: `kernel/itc-core`
|
||||
- Owned concepts: `InfoTechCanon Governance Model`
|
||||
|
||||
### InfoTechCanon Information Space Model
|
||||
|
||||
- ID: `model/information-space`
|
||||
- Kind: `model`
|
||||
- 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`
|
||||
- Owned concepts: `InfoTechCanon Information Space Model`
|
||||
|
||||
### InfoTechCanon Landscape Model
|
||||
|
||||
- ID: `model/landscape`
|
||||
- Kind: `model`
|
||||
- Canonical path: `models/landscape/InfoTechCanonLandscapeModel.md`
|
||||
- Source path: `seeds/InfoTechCanonLandscapeModel_RC1_seed.md`
|
||||
- Summary: Domain model used by canon profiles and standards: InfoTechCanon Landscape Model.
|
||||
- Imports and anchors: `kernel/itc-core`
|
||||
- Owned concepts: `InfoTechCanon Landscape Model`
|
||||
|
||||
### InfoTechCanon Network Model
|
||||
|
||||
- ID: `model/network`
|
||||
- Kind: `model`
|
||||
- Canonical path: `models/network/InfoTechCanonNetworkModel.md`
|
||||
- Source path: `seeds/InfoTechCanonNetworkModel_RC1_seed.md`
|
||||
- Summary: Domain model used by canon profiles and standards: InfoTechCanon Network Model.
|
||||
- Imports and anchors: `kernel/itc-core`, `model/security`
|
||||
- Owned concepts: `InfoTechCanon Network Model`
|
||||
|
||||
### InfoTechCanon Observability Model
|
||||
|
||||
- ID: `model/observability`
|
||||
- Kind: `model`
|
||||
- Canonical path: `models/observability/InfoTechCanonObservabilityModel.md`
|
||||
- Source path: `seeds/InfoTechCanonObservabilityModel_RC1_seed.md`
|
||||
- Summary: Domain model used by canon profiles and standards: InfoTechCanon Observability Model.
|
||||
- Imports and anchors: `kernel/itc-core`, `model/task`
|
||||
- Owned concepts: `InfoTechCanon Observability Model`
|
||||
|
||||
### InfoTechCanon Organization Model
|
||||
|
||||
- ID: `model/organization`
|
||||
- Kind: `model`
|
||||
- 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`
|
||||
- Owned concepts: `InfoTechCanon Organization Model`
|
||||
|
||||
### InfoTechCanon Security Model
|
||||
|
||||
- ID: `model/security`
|
||||
- Kind: `model`
|
||||
- Canonical path: `models/security/InfoTechCanonSecurityModel.md`
|
||||
- Source path: `seeds/InfoTechCanonSecurityModel_RC1_seed.md`
|
||||
- Summary: Domain model used by canon profiles and standards: InfoTechCanon Security Model.
|
||||
- Imports and anchors: `kernel/itc-core`, `model/access-control`
|
||||
- Owned concepts: `InfoTechCanon Security Model`
|
||||
|
||||
### InfoTechCanon Task Model
|
||||
|
||||
- ID: `model/task`
|
||||
- Kind: `model`
|
||||
- Canonical path: `models/task/InfoTechCanonTaskModel.md`
|
||||
- Source path: `seeds/InfoTechCanonTaskModel_RC1_seed.md`
|
||||
- Summary: Domain model used by canon profiles and standards: InfoTechCanon Task Model.
|
||||
- Imports and anchors: `kernel/itc-core`
|
||||
- Owned concepts: `InfoTechCanon Task Model`
|
||||
|
||||
### Small SaaS System Profile
|
||||
|
||||
- ID: `profile/small-saas`
|
||||
- Kind: `profile`
|
||||
- Canonical path: `profiles/small-saas/profile.yaml`
|
||||
- Source path: `infospace/profiles/small-saas/profile.yaml`
|
||||
- Summary: Profile that constrains canon artifacts for a practical implementation slice: Small SaaS System Profile.
|
||||
- Imports and anchors: `kernel/itc-core`, `model/access-control`, `model/data`, `model/devsecops`, `model/governance`, `model/landscape`, `model/network`, `model/observability`, `model/organization`, `model/security`, `model/task`, `standard/caring`, `standard/tagging`
|
||||
- Owned concepts: `Small SaaS System Profile`
|
||||
|
||||
### Namespace Per Tenant Control
|
||||
|
||||
- ID: `small-saas/control/namespace-per-tenant`
|
||||
- Kind: `profile-artifact`
|
||||
- Canonical path: `profiles/small-saas/artifacts/control.namespace-per-tenant.yaml`
|
||||
- Source path: `profiles/small-saas/artifacts/control.namespace-per-tenant.yaml`
|
||||
- Summary: Example artifact for the small-saas profile: Namespace Per Tenant Control.
|
||||
- Imports and anchors: `model/security`, `standard/caring`
|
||||
- Owned concepts: `Namespace Per Tenant Control`
|
||||
|
||||
### Subscription Ledger Dataset
|
||||
|
||||
- ID: `small-saas/dataset/subscription-ledger`
|
||||
- Kind: `profile-artifact`
|
||||
- Canonical path: `profiles/small-saas/artifacts/dataset.subscription-ledger.yaml`
|
||||
- Source path: `profiles/small-saas/artifacts/dataset.subscription-ledger.yaml`
|
||||
- Summary: Example artifact for the small-saas profile: Subscription Ledger Dataset.
|
||||
- Imports and anchors: `model/data`
|
||||
- Owned concepts: `Subscription Ledger Dataset`
|
||||
|
||||
### Production Deployment
|
||||
|
||||
- ID: `small-saas/deployment/production`
|
||||
- Kind: `profile-artifact`
|
||||
- Canonical path: `profiles/small-saas/artifacts/deployment.production.yaml`
|
||||
- Source path: `profiles/small-saas/artifacts/deployment.production.yaml`
|
||||
- Summary: Example artifact for the small-saas profile: Production Deployment.
|
||||
- Imports and anchors: `model/devsecops`, `model/network`
|
||||
- Owned concepts: `Production Deployment`
|
||||
|
||||
### Access Review 2026-05
|
||||
|
||||
- ID: `small-saas/evidence/access-review-2026-05`
|
||||
- Kind: `profile-artifact`
|
||||
- Canonical path: `profiles/small-saas/artifacts/evidence.access-review-2026-05.yaml`
|
||||
- Source path: `profiles/small-saas/artifacts/evidence.access-review-2026-05.yaml`
|
||||
- Summary: Example artifact for the small-saas profile: Access Review 2026-05.
|
||||
- Imports and anchors: `model/observability`
|
||||
- Owned concepts: `Access Review 2026-05`
|
||||
|
||||
### Cross-Tenant Access Attempt
|
||||
|
||||
- ID: `small-saas/incident/cross-tenant-access-attempt`
|
||||
- Kind: `profile-artifact`
|
||||
- Canonical path: `profiles/small-saas/artifacts/incident.cross-tenant-access-attempt.yaml`
|
||||
- Source path: `profiles/small-saas/artifacts/incident.cross-tenant-access-attempt.yaml`
|
||||
- Summary: Example artifact for the small-saas profile: Cross-Tenant Access Attempt.
|
||||
- Imports and anchors: `model/security`
|
||||
- Owned concepts: `Cross-Tenant Access Attempt`
|
||||
|
||||
### Tenant Isolation Policy
|
||||
|
||||
- ID: `small-saas/policy/tenant-isolation`
|
||||
- Kind: `profile-artifact`
|
||||
- Canonical path: `profiles/small-saas/artifacts/policy.tenant-isolation.yaml`
|
||||
- Source path: `profiles/small-saas/artifacts/policy.tenant-isolation.yaml`
|
||||
- Summary: Example artifact for the small-saas profile: Tenant Isolation Policy.
|
||||
- Imports and anchors: `model/governance`, `small-saas/control/namespace-per-tenant`
|
||||
- Owned concepts: `Tenant Isolation Policy`
|
||||
|
||||
### Billing Portal Service
|
||||
|
||||
- ID: `small-saas/service/billing-portal`
|
||||
- Kind: `profile-artifact`
|
||||
- Canonical path: `profiles/small-saas/artifacts/service.billing-portal.yaml`
|
||||
- Source path: `profiles/small-saas/artifacts/service.billing-portal.yaml`
|
||||
- Summary: Example artifact for the small-saas profile: Billing Portal Service.
|
||||
- Imports and anchors: `model/landscape`
|
||||
- Owned concepts: `Billing Portal Service`
|
||||
|
||||
### Small SaaS Billing System
|
||||
|
||||
- ID: `small-saas/system/billing-system`
|
||||
- Kind: `profile-artifact`
|
||||
- Canonical path: `profiles/small-saas/artifacts/system.billing-system.yaml`
|
||||
- Source path: `profiles/small-saas/artifacts/system.billing-system.yaml`
|
||||
- Summary: Example artifact for the small-saas profile: Small SaaS Billing System.
|
||||
- Imports and anchors: `model/landscape`
|
||||
- Owned concepts: `Small SaaS Billing System`
|
||||
|
||||
### Onboard Tenant
|
||||
|
||||
- ID: `small-saas/task/onboard-tenant`
|
||||
- Kind: `profile-artifact`
|
||||
- Canonical path: `profiles/small-saas/artifacts/task.onboard-tenant.yaml`
|
||||
- Source path: `profiles/small-saas/artifacts/task.onboard-tenant.yaml`
|
||||
- Summary: Example artifact for the small-saas profile: Onboard Tenant.
|
||||
- Imports and anchors: `model/task`
|
||||
- Owned concepts: `Onboard Tenant`
|
||||
|
||||
### Platform Team
|
||||
|
||||
- ID: `small-saas/team/platform`
|
||||
- Kind: `profile-artifact`
|
||||
- Canonical path: `profiles/small-saas/artifacts/team.platform.yaml`
|
||||
- Source path: `profiles/small-saas/artifacts/team.platform.yaml`
|
||||
- Summary: Example artifact for the small-saas profile: Platform Team.
|
||||
- Imports and anchors: `model/organization`
|
||||
- Owned concepts: `Platform Team`
|
||||
|
||||
### Acme Tenant
|
||||
|
||||
- ID: `small-saas/tenant/acme`
|
||||
- Kind: `profile-artifact`
|
||||
- Canonical path: `profiles/small-saas/artifacts/tenant.acme.yaml`
|
||||
- Source path: `profiles/small-saas/artifacts/tenant.acme.yaml`
|
||||
- Summary: Example artifact for the small-saas profile: Acme Tenant.
|
||||
- Imports and anchors: `model/organization`
|
||||
- Owned concepts: `Acme Tenant`
|
||||
|
||||
### Globex Tenant
|
||||
|
||||
- ID: `small-saas/tenant/globex`
|
||||
- Kind: `profile-artifact`
|
||||
- Canonical path: `profiles/small-saas/artifacts/tenant.globex.yaml`
|
||||
- Source path: `profiles/small-saas/artifacts/tenant.globex.yaml`
|
||||
- Summary: Example artifact for the small-saas profile: Globex Tenant.
|
||||
- Imports and anchors: `model/organization`
|
||||
- Owned concepts: `Globex Tenant`
|
||||
|
||||
### Ada Admin
|
||||
|
||||
- ID: `small-saas/user/ada-admin`
|
||||
- Kind: `profile-artifact`
|
||||
- Canonical path: `profiles/small-saas/artifacts/user.ada-admin.yaml`
|
||||
- Source path: `profiles/small-saas/artifacts/user.ada-admin.yaml`
|
||||
- Summary: Example artifact for the small-saas profile: Ada Admin.
|
||||
- Imports and anchors: `model/access-control`, `model/organization`
|
||||
- Owned concepts: `Ada Admin`
|
||||
|
||||
### InfoTechCanon CARING Access Governance Standard
|
||||
|
||||
- ID: `standard/caring`
|
||||
- Kind: `standard`
|
||||
- Canonical path: `standards/caring/InfoTechCanonCaringAccessGovernanceStandard.md`
|
||||
- Source path: `seeds/InfoTechCanonCaringAccessGovernanceStandard.md`
|
||||
- Summary: Cross-cutting canon standard: InfoTechCanon CARING Access Governance Standard.
|
||||
- Imports and anchors: `kernel/itc-core`, `model/access-control`, `model/data`, `model/devsecops`, `model/governance`, `model/network`, `model/observability`, `model/organization`, `model/security`, `model/task`, `standard/tagging`
|
||||
- Owned concepts: `CARINGAccessDescriptor`, `CARINGAnalysisFitnessTest`, `CARINGAnalysisProcedure`, `CARINGCanonicalRole`, `CARINGCapabilityProfile`, `CARINGDeclaredAccessMap`, `CARINGDerivedCapability`, `CARINGEffectiveAccessMap`, `CARINGExposureEvent`, `CARINGExposureMode`, `CARINGInducedAccess`, `CARINGOrganizationRelation`, `CARINGPlane`, `CARINGRedesignProcedure`, `CARINGRestrictionPrecedence`, `InfoTechCanon CARING Access Governance Standard`
|
||||
|
||||
### InfoTechCanon Tagging Standard
|
||||
|
||||
- ID: `standard/tagging`
|
||||
- Kind: `standard`
|
||||
- Canonical path: `standards/tagging/InfoTechCanonTaggingStandard.md`
|
||||
- Source path: `seeds/InfoTechCanonTaggingStandard_RC1_seed.md`
|
||||
- Summary: Cross-cutting canon standard: InfoTechCanon Tagging Standard.
|
||||
- Imports and anchors: `kernel/itc-core`, `model/task`
|
||||
- Owned concepts: `InfoTechCanon Tagging Standard`
|
||||
673
infospace/agent/retrieval-index.yaml
Normal file
673
infospace/agent/retrieval-index.yaml
Normal file
@@ -0,0 +1,673 @@
|
||||
schema: info-tech-canon.retrieval-index.v1
|
||||
infospace: canon
|
||||
item_count: 29
|
||||
items:
|
||||
- id: kernel/itc-core
|
||||
kind: kernel
|
||||
title: InfoTechCanon Core
|
||||
canonical_path: kernel/InfoTechCanonCore.md
|
||||
source_path: seeds/InfoTechCanonCore_RC1_seed.md
|
||||
summary: 'Kernel artifact that defines canon structure or integration: InfoTechCanon
|
||||
Core.'
|
||||
owned_concepts:
|
||||
- InfoTechCanon Core
|
||||
imports: []
|
||||
relationships: []
|
||||
warnings: []
|
||||
- id: kernel/itc-kernel-map
|
||||
kind: kernel
|
||||
title: InfoTechCanon Kernel Map
|
||||
canonical_path: kernel/InfoTechCanonKernelMap.md
|
||||
source_path: seeds/InfoTechCanonKernelMap_RC1.md
|
||||
summary: 'Kernel artifact that defines canon structure or integration: InfoTechCanon
|
||||
Kernel Map.'
|
||||
owned_concepts:
|
||||
- InfoTechCanon Kernel Map
|
||||
imports: []
|
||||
relationships:
|
||||
- type: maps
|
||||
target: kernel/itc-core
|
||||
- type: maps
|
||||
target: model/information-space
|
||||
- type: maps
|
||||
target: model/landscape
|
||||
- type: maps
|
||||
target: model/organization
|
||||
- type: maps
|
||||
target: model/governance
|
||||
- type: maps
|
||||
target: model/task
|
||||
- type: maps
|
||||
target: model/access-control
|
||||
- type: maps
|
||||
target: model/security
|
||||
- type: maps
|
||||
target: model/data
|
||||
- type: maps
|
||||
target: model/devsecops
|
||||
- type: maps
|
||||
target: model/network
|
||||
- type: maps
|
||||
target: model/observability
|
||||
- type: maps
|
||||
target: standard/tagging
|
||||
- type: maps
|
||||
target: standard/caring
|
||||
warnings: []
|
||||
- id: model/access-control
|
||||
kind: model
|
||||
title: InfoTechCanon Access Control Model
|
||||
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.'
|
||||
owned_concepts:
|
||||
- InfoTechCanon Access Control Model
|
||||
imports:
|
||||
- kernel/itc-core
|
||||
- model/governance
|
||||
- model/organization
|
||||
relationships:
|
||||
- type: conforms_to
|
||||
target: kernel/itc-core
|
||||
- type: uses
|
||||
target: model/organization
|
||||
- type: uses
|
||||
target: model/governance
|
||||
warnings: []
|
||||
- id: model/data
|
||||
kind: model
|
||||
title: InfoTechCanon Data Model
|
||||
canonical_path: models/data/InfoTechCanonDataModel.md
|
||||
source_path: seeds/InfoTechCanonDataModel_RC1_seed.md
|
||||
summary: 'Domain model used by canon profiles and standards: InfoTechCanon Data
|
||||
Model.'
|
||||
owned_concepts:
|
||||
- InfoTechCanon Data Model
|
||||
imports:
|
||||
- kernel/itc-core
|
||||
- model/governance
|
||||
relationships:
|
||||
- type: conforms_to
|
||||
target: kernel/itc-core
|
||||
- type: uses
|
||||
target: model/governance
|
||||
warnings: []
|
||||
- id: model/devsecops
|
||||
kind: model
|
||||
title: InfoTechCanon DevSecOps Model
|
||||
canonical_path: models/devsecops/InfoTechCanonDevSecOpsModel.md
|
||||
source_path: seeds/InfoTechCanonDevSecOpsModel_RC1_seed.md
|
||||
summary: 'Domain model used by canon profiles and standards: InfoTechCanon DevSecOps
|
||||
Model.'
|
||||
owned_concepts:
|
||||
- InfoTechCanon DevSecOps Model
|
||||
imports:
|
||||
- kernel/itc-core
|
||||
- model/security
|
||||
relationships:
|
||||
- type: conforms_to
|
||||
target: kernel/itc-core
|
||||
- type: uses
|
||||
target: model/security
|
||||
warnings: []
|
||||
- id: model/governance
|
||||
kind: model
|
||||
title: InfoTechCanon Governance Model
|
||||
canonical_path: models/governance/InfoTechCanonGovernanceModel.md
|
||||
source_path: seeds/InfoTechCanonGovernanceModel_RC1_seed.md
|
||||
summary: 'Domain model used by canon profiles and standards: InfoTechCanon Governance
|
||||
Model.'
|
||||
owned_concepts:
|
||||
- InfoTechCanon Governance Model
|
||||
imports:
|
||||
- kernel/itc-core
|
||||
relationships:
|
||||
- type: conforms_to
|
||||
target: kernel/itc-core
|
||||
warnings: []
|
||||
- id: model/information-space
|
||||
kind: model
|
||||
title: InfoTechCanon Information Space Model
|
||||
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.'
|
||||
owned_concepts:
|
||||
- InfoTechCanon Information Space Model
|
||||
imports:
|
||||
- kernel/itc-core
|
||||
relationships:
|
||||
- type: conforms_to
|
||||
target: kernel/itc-core
|
||||
warnings: []
|
||||
- id: model/landscape
|
||||
kind: model
|
||||
title: InfoTechCanon Landscape Model
|
||||
canonical_path: models/landscape/InfoTechCanonLandscapeModel.md
|
||||
source_path: seeds/InfoTechCanonLandscapeModel_RC1_seed.md
|
||||
summary: 'Domain model used by canon profiles and standards: InfoTechCanon Landscape
|
||||
Model.'
|
||||
owned_concepts:
|
||||
- InfoTechCanon Landscape Model
|
||||
imports:
|
||||
- kernel/itc-core
|
||||
relationships:
|
||||
- type: conforms_to
|
||||
target: kernel/itc-core
|
||||
warnings: []
|
||||
- id: model/network
|
||||
kind: model
|
||||
title: InfoTechCanon Network Model
|
||||
canonical_path: models/network/InfoTechCanonNetworkModel.md
|
||||
source_path: seeds/InfoTechCanonNetworkModel_RC1_seed.md
|
||||
summary: 'Domain model used by canon profiles and standards: InfoTechCanon Network
|
||||
Model.'
|
||||
owned_concepts:
|
||||
- InfoTechCanon Network Model
|
||||
imports:
|
||||
- kernel/itc-core
|
||||
- model/security
|
||||
relationships:
|
||||
- type: conforms_to
|
||||
target: kernel/itc-core
|
||||
- type: uses
|
||||
target: model/security
|
||||
warnings: []
|
||||
- id: model/observability
|
||||
kind: model
|
||||
title: InfoTechCanon Observability Model
|
||||
canonical_path: models/observability/InfoTechCanonObservabilityModel.md
|
||||
source_path: seeds/InfoTechCanonObservabilityModel_RC1_seed.md
|
||||
summary: 'Domain model used by canon profiles and standards: InfoTechCanon Observability
|
||||
Model.'
|
||||
owned_concepts:
|
||||
- InfoTechCanon Observability Model
|
||||
imports:
|
||||
- kernel/itc-core
|
||||
- model/task
|
||||
relationships:
|
||||
- type: conforms_to
|
||||
target: kernel/itc-core
|
||||
- type: uses
|
||||
target: model/task
|
||||
warnings: []
|
||||
- id: model/organization
|
||||
kind: model
|
||||
title: InfoTechCanon Organization Model
|
||||
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.'
|
||||
owned_concepts:
|
||||
- InfoTechCanon Organization Model
|
||||
imports:
|
||||
- kernel/itc-core
|
||||
relationships:
|
||||
- type: conforms_to
|
||||
target: kernel/itc-core
|
||||
warnings: []
|
||||
- id: model/security
|
||||
kind: model
|
||||
title: InfoTechCanon Security Model
|
||||
canonical_path: models/security/InfoTechCanonSecurityModel.md
|
||||
source_path: seeds/InfoTechCanonSecurityModel_RC1_seed.md
|
||||
summary: 'Domain model used by canon profiles and standards: InfoTechCanon Security
|
||||
Model.'
|
||||
owned_concepts:
|
||||
- InfoTechCanon Security Model
|
||||
imports:
|
||||
- kernel/itc-core
|
||||
- model/access-control
|
||||
relationships:
|
||||
- type: conforms_to
|
||||
target: kernel/itc-core
|
||||
- type: uses
|
||||
target: model/access-control
|
||||
warnings: []
|
||||
- id: model/task
|
||||
kind: model
|
||||
title: InfoTechCanon Task Model
|
||||
canonical_path: models/task/InfoTechCanonTaskModel.md
|
||||
source_path: seeds/InfoTechCanonTaskModel_RC1_seed.md
|
||||
summary: 'Domain model used by canon profiles and standards: InfoTechCanon Task
|
||||
Model.'
|
||||
owned_concepts:
|
||||
- InfoTechCanon Task Model
|
||||
imports:
|
||||
- kernel/itc-core
|
||||
relationships:
|
||||
- type: conforms_to
|
||||
target: kernel/itc-core
|
||||
warnings: []
|
||||
- id: profile/small-saas
|
||||
kind: profile
|
||||
title: Small SaaS System Profile
|
||||
canonical_path: profiles/small-saas/profile.yaml
|
||||
source_path: infospace/profiles/small-saas/profile.yaml
|
||||
summary: 'Profile that constrains canon artifacts for a practical implementation
|
||||
slice: Small SaaS System Profile.'
|
||||
owned_concepts:
|
||||
- Small SaaS System Profile
|
||||
imports:
|
||||
- kernel/itc-core
|
||||
- model/access-control
|
||||
- model/data
|
||||
- model/devsecops
|
||||
- model/governance
|
||||
- model/landscape
|
||||
- model/network
|
||||
- model/observability
|
||||
- model/organization
|
||||
- model/security
|
||||
- model/task
|
||||
- standard/caring
|
||||
- standard/tagging
|
||||
relationships:
|
||||
- type: conforms_to
|
||||
target: kernel/itc-core
|
||||
- type: requires
|
||||
target: model/landscape
|
||||
- type: requires
|
||||
target: model/organization
|
||||
- type: requires
|
||||
target: model/governance
|
||||
- type: requires
|
||||
target: model/access-control
|
||||
- type: requires
|
||||
target: model/security
|
||||
- type: requires
|
||||
target: model/data
|
||||
- type: requires
|
||||
target: model/devsecops
|
||||
- type: requires
|
||||
target: model/network
|
||||
- type: requires
|
||||
target: model/observability
|
||||
- type: requires
|
||||
target: model/task
|
||||
- type: requires
|
||||
target: standard/tagging
|
||||
- type: requires
|
||||
target: standard/caring
|
||||
warnings: []
|
||||
- id: small-saas/control/namespace-per-tenant
|
||||
kind: profile-artifact
|
||||
title: Namespace Per Tenant Control
|
||||
canonical_path: profiles/small-saas/artifacts/control.namespace-per-tenant.yaml
|
||||
source_path: profiles/small-saas/artifacts/control.namespace-per-tenant.yaml
|
||||
summary: 'Example artifact for the small-saas profile: Namespace Per Tenant Control.'
|
||||
owned_concepts:
|
||||
- Namespace Per Tenant Control
|
||||
imports:
|
||||
- model/security
|
||||
- standard/caring
|
||||
relationships:
|
||||
- type: instantiates
|
||||
target: profile/small-saas
|
||||
- type: uses
|
||||
target: model/security
|
||||
- type: uses
|
||||
target: standard/caring
|
||||
- type: evidenced_by
|
||||
target: small-saas/evidence/access-review-2026-05
|
||||
warnings: []
|
||||
- id: small-saas/dataset/subscription-ledger
|
||||
kind: profile-artifact
|
||||
title: Subscription Ledger Dataset
|
||||
canonical_path: profiles/small-saas/artifacts/dataset.subscription-ledger.yaml
|
||||
source_path: profiles/small-saas/artifacts/dataset.subscription-ledger.yaml
|
||||
summary: 'Example artifact for the small-saas profile: Subscription Ledger Dataset.'
|
||||
owned_concepts:
|
||||
- Subscription Ledger Dataset
|
||||
imports:
|
||||
- model/data
|
||||
relationships:
|
||||
- type: instantiates
|
||||
target: profile/small-saas
|
||||
- type: uses
|
||||
target: model/data
|
||||
- type: owned_by
|
||||
target: small-saas/service/billing-portal
|
||||
- type: partitioned_for
|
||||
target: small-saas/tenant/acme
|
||||
- type: partitioned_for
|
||||
target: small-saas/tenant/globex
|
||||
- type: governed_by
|
||||
target: small-saas/policy/tenant-isolation
|
||||
warnings: []
|
||||
- id: small-saas/deployment/production
|
||||
kind: profile-artifact
|
||||
title: Production Deployment
|
||||
canonical_path: profiles/small-saas/artifacts/deployment.production.yaml
|
||||
source_path: profiles/small-saas/artifacts/deployment.production.yaml
|
||||
summary: 'Example artifact for the small-saas profile: Production Deployment.'
|
||||
owned_concepts:
|
||||
- Production Deployment
|
||||
imports:
|
||||
- model/devsecops
|
||||
- model/network
|
||||
relationships:
|
||||
- type: instantiates
|
||||
target: profile/small-saas
|
||||
- type: uses
|
||||
target: model/devsecops
|
||||
- type: uses
|
||||
target: model/network
|
||||
- type: deploys
|
||||
target: small-saas/service/billing-portal
|
||||
- type: separates
|
||||
target: small-saas/tenant/acme
|
||||
- type: separates
|
||||
target: small-saas/tenant/globex
|
||||
- type: implements
|
||||
target: small-saas/control/namespace-per-tenant
|
||||
warnings: []
|
||||
- id: small-saas/evidence/access-review-2026-05
|
||||
kind: profile-artifact
|
||||
title: Access Review 2026-05
|
||||
canonical_path: profiles/small-saas/artifacts/evidence.access-review-2026-05.yaml
|
||||
source_path: profiles/small-saas/artifacts/evidence.access-review-2026-05.yaml
|
||||
summary: 'Example artifact for the small-saas profile: Access Review 2026-05.'
|
||||
owned_concepts:
|
||||
- Access Review 2026-05
|
||||
imports:
|
||||
- model/observability
|
||||
relationships:
|
||||
- type: instantiates
|
||||
target: profile/small-saas
|
||||
- type: uses
|
||||
target: model/observability
|
||||
warnings: []
|
||||
- id: small-saas/incident/cross-tenant-access-attempt
|
||||
kind: profile-artifact
|
||||
title: Cross-Tenant Access Attempt
|
||||
canonical_path: profiles/small-saas/artifacts/incident.cross-tenant-access-attempt.yaml
|
||||
source_path: profiles/small-saas/artifacts/incident.cross-tenant-access-attempt.yaml
|
||||
summary: 'Example artifact for the small-saas profile: Cross-Tenant Access Attempt.'
|
||||
owned_concepts:
|
||||
- Cross-Tenant Access Attempt
|
||||
imports:
|
||||
- model/security
|
||||
relationships:
|
||||
- type: instantiates
|
||||
target: profile/small-saas
|
||||
- type: uses
|
||||
target: model/security
|
||||
- type: constrained_by
|
||||
target: small-saas/control/namespace-per-tenant
|
||||
- type: evidenced_by
|
||||
target: small-saas/evidence/access-review-2026-05
|
||||
warnings: []
|
||||
- id: small-saas/policy/tenant-isolation
|
||||
kind: profile-artifact
|
||||
title: Tenant Isolation Policy
|
||||
canonical_path: profiles/small-saas/artifacts/policy.tenant-isolation.yaml
|
||||
source_path: profiles/small-saas/artifacts/policy.tenant-isolation.yaml
|
||||
summary: 'Example artifact for the small-saas profile: Tenant Isolation Policy.'
|
||||
owned_concepts:
|
||||
- Tenant Isolation Policy
|
||||
imports:
|
||||
- model/governance
|
||||
- small-saas/control/namespace-per-tenant
|
||||
relationships:
|
||||
- type: instantiates
|
||||
target: profile/small-saas
|
||||
- type: uses
|
||||
target: model/governance
|
||||
- type: requires
|
||||
target: small-saas/control/namespace-per-tenant
|
||||
- type: evidenced_by
|
||||
target: small-saas/evidence/access-review-2026-05
|
||||
warnings: []
|
||||
- id: small-saas/service/billing-portal
|
||||
kind: profile-artifact
|
||||
title: Billing Portal Service
|
||||
canonical_path: profiles/small-saas/artifacts/service.billing-portal.yaml
|
||||
source_path: profiles/small-saas/artifacts/service.billing-portal.yaml
|
||||
summary: 'Example artifact for the small-saas profile: Billing Portal Service.'
|
||||
owned_concepts:
|
||||
- Billing Portal Service
|
||||
imports:
|
||||
- model/landscape
|
||||
relationships:
|
||||
- type: instantiates
|
||||
target: profile/small-saas
|
||||
- type: uses
|
||||
target: model/landscape
|
||||
- type: part_of
|
||||
target: small-saas/system/billing-system
|
||||
- type: owned_by
|
||||
target: small-saas/team/platform
|
||||
warnings: []
|
||||
- id: small-saas/system/billing-system
|
||||
kind: profile-artifact
|
||||
title: Small SaaS Billing System
|
||||
canonical_path: profiles/small-saas/artifacts/system.billing-system.yaml
|
||||
source_path: profiles/small-saas/artifacts/system.billing-system.yaml
|
||||
summary: 'Example artifact for the small-saas profile: Small SaaS Billing System.'
|
||||
owned_concepts:
|
||||
- Small SaaS Billing System
|
||||
imports:
|
||||
- model/landscape
|
||||
relationships:
|
||||
- type: instantiates
|
||||
target: profile/small-saas
|
||||
- type: uses
|
||||
target: model/landscape
|
||||
- type: serves
|
||||
target: small-saas/tenant/acme
|
||||
- type: serves
|
||||
target: small-saas/tenant/globex
|
||||
warnings: []
|
||||
- id: small-saas/task/onboard-tenant
|
||||
kind: profile-artifact
|
||||
title: Onboard Tenant
|
||||
canonical_path: profiles/small-saas/artifacts/task.onboard-tenant.yaml
|
||||
source_path: profiles/small-saas/artifacts/task.onboard-tenant.yaml
|
||||
summary: 'Example artifact for the small-saas profile: Onboard Tenant.'
|
||||
owned_concepts:
|
||||
- Onboard Tenant
|
||||
imports:
|
||||
- model/task
|
||||
relationships:
|
||||
- type: instantiates
|
||||
target: profile/small-saas
|
||||
- type: uses
|
||||
target: model/task
|
||||
- type: owned_by
|
||||
target: small-saas/team/platform
|
||||
- type: changes
|
||||
target: small-saas/tenant/acme
|
||||
- type: governed_by
|
||||
target: small-saas/policy/tenant-isolation
|
||||
warnings: []
|
||||
- id: small-saas/team/platform
|
||||
kind: profile-artifact
|
||||
title: Platform Team
|
||||
canonical_path: profiles/small-saas/artifacts/team.platform.yaml
|
||||
source_path: profiles/small-saas/artifacts/team.platform.yaml
|
||||
summary: 'Example artifact for the small-saas profile: Platform Team.'
|
||||
owned_concepts:
|
||||
- Platform Team
|
||||
imports:
|
||||
- model/organization
|
||||
relationships:
|
||||
- type: instantiates
|
||||
target: profile/small-saas
|
||||
- type: uses
|
||||
target: model/organization
|
||||
warnings: []
|
||||
- id: small-saas/tenant/acme
|
||||
kind: profile-artifact
|
||||
title: Acme Tenant
|
||||
canonical_path: profiles/small-saas/artifacts/tenant.acme.yaml
|
||||
source_path: profiles/small-saas/artifacts/tenant.acme.yaml
|
||||
summary: 'Example artifact for the small-saas profile: Acme Tenant.'
|
||||
owned_concepts:
|
||||
- Acme Tenant
|
||||
imports:
|
||||
- model/organization
|
||||
relationships:
|
||||
- type: instantiates
|
||||
target: profile/small-saas
|
||||
- type: uses
|
||||
target: model/organization
|
||||
- type: represented_by
|
||||
target: small-saas/user/ada-admin
|
||||
- type: isolated_by
|
||||
target: small-saas/control/namespace-per-tenant
|
||||
warnings: []
|
||||
- id: small-saas/tenant/globex
|
||||
kind: profile-artifact
|
||||
title: Globex Tenant
|
||||
canonical_path: profiles/small-saas/artifacts/tenant.globex.yaml
|
||||
source_path: profiles/small-saas/artifacts/tenant.globex.yaml
|
||||
summary: 'Example artifact for the small-saas profile: Globex Tenant.'
|
||||
owned_concepts:
|
||||
- Globex Tenant
|
||||
imports:
|
||||
- model/organization
|
||||
relationships:
|
||||
- type: instantiates
|
||||
target: profile/small-saas
|
||||
- type: uses
|
||||
target: model/organization
|
||||
- type: isolated_by
|
||||
target: small-saas/control/namespace-per-tenant
|
||||
warnings: []
|
||||
- id: small-saas/user/ada-admin
|
||||
kind: profile-artifact
|
||||
title: Ada Admin
|
||||
canonical_path: profiles/small-saas/artifacts/user.ada-admin.yaml
|
||||
source_path: profiles/small-saas/artifacts/user.ada-admin.yaml
|
||||
summary: 'Example artifact for the small-saas profile: Ada Admin.'
|
||||
owned_concepts:
|
||||
- Ada Admin
|
||||
imports:
|
||||
- model/access-control
|
||||
- model/organization
|
||||
relationships:
|
||||
- type: instantiates
|
||||
target: profile/small-saas
|
||||
- type: uses
|
||||
target: model/organization
|
||||
- type: uses
|
||||
target: model/access-control
|
||||
- type: member_of
|
||||
target: small-saas/team/platform
|
||||
- type: has_access_under
|
||||
target: small-saas/policy/tenant-isolation
|
||||
- type: access_evidenced_by
|
||||
target: small-saas/evidence/access-review-2026-05
|
||||
warnings: []
|
||||
- id: standard/caring
|
||||
kind: standard
|
||||
title: InfoTechCanon CARING Access Governance Standard
|
||||
canonical_path: standards/caring/InfoTechCanonCaringAccessGovernanceStandard.md
|
||||
source_path: seeds/InfoTechCanonCaringAccessGovernanceStandard.md
|
||||
summary: 'Cross-cutting canon standard: InfoTechCanon CARING Access Governance Standard.'
|
||||
owned_concepts:
|
||||
- CARINGAccessDescriptor
|
||||
- CARINGAnalysisFitnessTest
|
||||
- CARINGAnalysisProcedure
|
||||
- CARINGCanonicalRole
|
||||
- CARINGCapabilityProfile
|
||||
- CARINGDeclaredAccessMap
|
||||
- CARINGDerivedCapability
|
||||
- CARINGEffectiveAccessMap
|
||||
- CARINGExposureEvent
|
||||
- CARINGExposureMode
|
||||
- CARINGInducedAccess
|
||||
- CARINGOrganizationRelation
|
||||
- CARINGPlane
|
||||
- CARINGRedesignProcedure
|
||||
- CARINGRestrictionPrecedence
|
||||
- InfoTechCanon CARING Access Governance Standard
|
||||
imports:
|
||||
- kernel/itc-core
|
||||
- model/access-control
|
||||
- model/data
|
||||
- model/devsecops
|
||||
- model/governance
|
||||
- model/network
|
||||
- model/observability
|
||||
- model/organization
|
||||
- model/security
|
||||
- model/task
|
||||
- standard/tagging
|
||||
relationships:
|
||||
- type: conforms_to
|
||||
target: kernel/itc-core
|
||||
- type: imports
|
||||
target: model/organization
|
||||
- type: imports
|
||||
target: model/governance
|
||||
- type: imports
|
||||
target: model/access-control
|
||||
- type: imports
|
||||
target: model/security
|
||||
- type: imports
|
||||
target: model/data
|
||||
- type: imports
|
||||
target: model/devsecops
|
||||
- type: imports
|
||||
target: model/network
|
||||
- type: imports
|
||||
target: model/observability
|
||||
- type: imports
|
||||
target: model/task
|
||||
- type: imports
|
||||
target: standard/tagging
|
||||
warnings: []
|
||||
- id: standard/tagging
|
||||
kind: standard
|
||||
title: InfoTechCanon Tagging Standard
|
||||
canonical_path: standards/tagging/InfoTechCanonTaggingStandard.md
|
||||
source_path: seeds/InfoTechCanonTaggingStandard_RC1_seed.md
|
||||
summary: 'Cross-cutting canon standard: InfoTechCanon Tagging Standard.'
|
||||
owned_concepts:
|
||||
- InfoTechCanon Tagging Standard
|
||||
imports:
|
||||
- kernel/itc-core
|
||||
- model/task
|
||||
relationships:
|
||||
- type: conforms_to
|
||||
target: kernel/itc-core
|
||||
- type: imports
|
||||
target: model/task
|
||||
warnings: []
|
||||
common_distinctions:
|
||||
- id: actor-subject-principal
|
||||
title: Actor vs Subject vs Principal
|
||||
summary: Use actor for the acting entity in a context, subject for the entity a
|
||||
policy evaluates, and principal for the authenticated identity bound to access
|
||||
decisions.
|
||||
source_artifacts:
|
||||
- model/organization
|
||||
- model/access-control
|
||||
- standard/caring
|
||||
- id: organization-role-access-role-caring-role
|
||||
title: Organization Role vs AccessRole vs CARING role
|
||||
summary: Organization roles describe responsibility or position; access roles describe
|
||||
permissions; CARING roles classify access-governance needs and analysis.
|
||||
source_artifacts:
|
||||
- model/organization
|
||||
- model/access-control
|
||||
- standard/caring
|
||||
- id: policy-control-evidence
|
||||
title: Policy vs Control vs Evidence
|
||||
summary: Policy states intent or rule, control implements or enforces that rule,
|
||||
and evidence records why the claim should be trusted.
|
||||
source_artifacts:
|
||||
- model/governance
|
||||
- model/security
|
||||
- model/observability
|
||||
- id: intent-scope-purpose
|
||||
title: Intent vs Scope vs Purpose
|
||||
summary: Intent captures why an actor wants something, scope bounds what is included,
|
||||
and purpose captures consumer demand or use case pressure on the repo.
|
||||
source_artifacts:
|
||||
- kernel/itc-core
|
||||
- model/governance
|
||||
- profile/small-saas
|
||||
25
infospace/agent/templates/canon-interface-card.template.yaml
Normal file
25
infospace/agent/templates/canon-interface-card.template.yaml
Normal file
@@ -0,0 +1,25 @@
|
||||
schema: info-tech-canon.interface-card.v1
|
||||
id: consumer-repo/interface-card
|
||||
title: Consumer Repo Canon Interface Card
|
||||
consumer:
|
||||
repo: ''
|
||||
domain: ''
|
||||
owner: ''
|
||||
intent: ''
|
||||
scope: ''
|
||||
purposes: []
|
||||
canon_surfaces:
|
||||
implemented_profiles: []
|
||||
consumed_artifacts: []
|
||||
owned_concepts: []
|
||||
produced_concepts: []
|
||||
consumed_concepts: []
|
||||
mappings: []
|
||||
validation_expectations:
|
||||
commands: []
|
||||
evidence_required: []
|
||||
known_gaps: []
|
||||
consumer_needs:
|
||||
current: []
|
||||
requested_extensions: []
|
||||
feedback: []
|
||||
28
infospace/agent/templates/consumer-brief.template.md
Normal file
28
infospace/agent/templates/consumer-brief.template.md
Normal file
@@ -0,0 +1,28 @@
|
||||
---
|
||||
id: consumer-brief/template
|
||||
consumer: TBD
|
||||
generated: true
|
||||
---
|
||||
|
||||
<!-- GENERATED by info_tech_canon; do not edit by hand. -->
|
||||
|
||||
# Consumer Brief Template
|
||||
|
||||
## Consumer Intent
|
||||
|
||||
- Intent:
|
||||
- Scope:
|
||||
- Purposes:
|
||||
|
||||
## Canon Surfaces
|
||||
|
||||
- Implemented profiles:
|
||||
- Consumed standards:
|
||||
- Produced concepts:
|
||||
- Consumed concepts:
|
||||
|
||||
## Validation Expectations
|
||||
|
||||
- Commands:
|
||||
- Evidence:
|
||||
- Known gaps:
|
||||
@@ -1,5 +1,5 @@
|
||||
root: infospace
|
||||
file_count: 67
|
||||
file_count: 91
|
||||
files:
|
||||
- path: README.md
|
||||
directory: .
|
||||
@@ -7,9 +7,81 @@ files:
|
||||
- path: agent/README.md
|
||||
directory: agent
|
||||
name: README.md
|
||||
- path: agent/briefs/kernel-itc-core.md
|
||||
directory: agent/briefs
|
||||
name: kernel-itc-core.md
|
||||
- path: agent/briefs/kernel-itc-kernel-map.md
|
||||
directory: agent/briefs
|
||||
name: kernel-itc-kernel-map.md
|
||||
- path: agent/briefs/model-access-control.md
|
||||
directory: agent/briefs
|
||||
name: model-access-control.md
|
||||
- path: agent/briefs/model-data.md
|
||||
directory: agent/briefs
|
||||
name: model-data.md
|
||||
- path: agent/briefs/model-devsecops.md
|
||||
directory: agent/briefs
|
||||
name: model-devsecops.md
|
||||
- path: agent/briefs/model-governance.md
|
||||
directory: agent/briefs
|
||||
name: model-governance.md
|
||||
- path: agent/briefs/model-information-space.md
|
||||
directory: agent/briefs
|
||||
name: model-information-space.md
|
||||
- path: agent/briefs/model-landscape.md
|
||||
directory: agent/briefs
|
||||
name: model-landscape.md
|
||||
- path: agent/briefs/model-network.md
|
||||
directory: agent/briefs
|
||||
name: model-network.md
|
||||
- path: agent/briefs/model-observability.md
|
||||
directory: agent/briefs
|
||||
name: model-observability.md
|
||||
- path: agent/briefs/model-organization.md
|
||||
directory: agent/briefs
|
||||
name: model-organization.md
|
||||
- path: agent/briefs/model-security.md
|
||||
directory: agent/briefs
|
||||
name: model-security.md
|
||||
- path: agent/briefs/model-task.md
|
||||
directory: agent/briefs
|
||||
name: model-task.md
|
||||
- path: agent/briefs/profile-small-saas.md
|
||||
directory: agent/briefs
|
||||
name: profile-small-saas.md
|
||||
- path: agent/briefs/standard-caring.md
|
||||
directory: agent/briefs
|
||||
name: standard-caring.md
|
||||
- path: agent/briefs/standard-tagging.md
|
||||
directory: agent/briefs
|
||||
name: standard-tagging.md
|
||||
- path: agent/consumer-briefs/railiance-fabric.md
|
||||
directory: agent/consumer-briefs
|
||||
name: railiance-fabric.md
|
||||
- path: agent/consumer-briefs/repo-scoping.md
|
||||
directory: agent/consumer-briefs
|
||||
name: repo-scoping.md
|
||||
- path: agent/consumer-briefs/user-engine.md
|
||||
directory: agent/consumer-briefs
|
||||
name: user-engine.md
|
||||
- path: agent/global-agent-brief.md
|
||||
directory: agent
|
||||
name: global-agent-brief.md
|
||||
- path: agent/retrieval-index.json
|
||||
directory: agent
|
||||
name: retrieval-index.json
|
||||
- path: agent/retrieval-index.md
|
||||
directory: agent
|
||||
name: retrieval-index.md
|
||||
- path: agent/retrieval-index.yaml
|
||||
directory: agent
|
||||
name: retrieval-index.yaml
|
||||
- path: agent/templates/canon-interface-card.template.yaml
|
||||
directory: agent/templates
|
||||
name: canon-interface-card.template.yaml
|
||||
- path: agent/templates/consumer-brief.template.md
|
||||
directory: agent/templates
|
||||
name: consumer-brief.template.md
|
||||
- path: artifacts/index.yaml
|
||||
directory: artifacts
|
||||
name: index.yaml
|
||||
|
||||
@@ -2,11 +2,35 @@
|
||||
|
||||
# Repository Tree
|
||||
|
||||
File count: **67**
|
||||
File count: **91**
|
||||
|
||||
- `README.md`
|
||||
- `agent/README.md`
|
||||
- `agent/briefs/kernel-itc-core.md`
|
||||
- `agent/briefs/kernel-itc-kernel-map.md`
|
||||
- `agent/briefs/model-access-control.md`
|
||||
- `agent/briefs/model-data.md`
|
||||
- `agent/briefs/model-devsecops.md`
|
||||
- `agent/briefs/model-governance.md`
|
||||
- `agent/briefs/model-information-space.md`
|
||||
- `agent/briefs/model-landscape.md`
|
||||
- `agent/briefs/model-network.md`
|
||||
- `agent/briefs/model-observability.md`
|
||||
- `agent/briefs/model-organization.md`
|
||||
- `agent/briefs/model-security.md`
|
||||
- `agent/briefs/model-task.md`
|
||||
- `agent/briefs/profile-small-saas.md`
|
||||
- `agent/briefs/standard-caring.md`
|
||||
- `agent/briefs/standard-tagging.md`
|
||||
- `agent/consumer-briefs/railiance-fabric.md`
|
||||
- `agent/consumer-briefs/repo-scoping.md`
|
||||
- `agent/consumer-briefs/user-engine.md`
|
||||
- `agent/global-agent-brief.md`
|
||||
- `agent/retrieval-index.json`
|
||||
- `agent/retrieval-index.md`
|
||||
- `agent/retrieval-index.yaml`
|
||||
- `agent/templates/canon-interface-card.template.yaml`
|
||||
- `agent/templates/consumer-brief.template.md`
|
||||
- `artifacts/index.yaml`
|
||||
- `assimilation/README.md`
|
||||
- `examples/README.md`
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
from __future__ import annotations
|
||||
|
||||
from collections import defaultdict
|
||||
import json
|
||||
from pathlib import Path
|
||||
from typing import Any
|
||||
|
||||
@@ -8,6 +9,50 @@ import yaml
|
||||
|
||||
|
||||
GENERATED_NOTICE = "<!-- GENERATED by info_tech_canon; do not edit by hand. -->"
|
||||
RETRIEVAL_ARTIFACT_KINDS = {"kernel", "model", "standard", "profile"}
|
||||
CONSUMER_BRIEF_IDS = ("user-engine", "railiance-fabric", "repo-scoping")
|
||||
COMMON_DISTINCTIONS = [
|
||||
{
|
||||
"id": "actor-subject-principal",
|
||||
"title": "Actor vs Subject vs Principal",
|
||||
"summary": "Use actor for the acting entity in a context, subject for the entity a policy evaluates, and principal for the authenticated identity bound to access decisions.",
|
||||
"source_artifacts": [
|
||||
"model/organization",
|
||||
"model/access-control",
|
||||
"standard/caring",
|
||||
],
|
||||
},
|
||||
{
|
||||
"id": "organization-role-access-role-caring-role",
|
||||
"title": "Organization Role vs AccessRole vs CARING role",
|
||||
"summary": "Organization roles describe responsibility or position; access roles describe permissions; CARING roles classify access-governance needs and analysis.",
|
||||
"source_artifacts": [
|
||||
"model/organization",
|
||||
"model/access-control",
|
||||
"standard/caring",
|
||||
],
|
||||
},
|
||||
{
|
||||
"id": "policy-control-evidence",
|
||||
"title": "Policy vs Control vs Evidence",
|
||||
"summary": "Policy states intent or rule, control implements or enforces that rule, and evidence records why the claim should be trusted.",
|
||||
"source_artifacts": [
|
||||
"model/governance",
|
||||
"model/security",
|
||||
"model/observability",
|
||||
],
|
||||
},
|
||||
{
|
||||
"id": "intent-scope-purpose",
|
||||
"title": "Intent vs Scope vs Purpose",
|
||||
"summary": "Intent captures why an actor wants something, scope bounds what is included, and purpose captures consumer demand or use case pressure on the repo.",
|
||||
"source_artifacts": [
|
||||
"kernel/itc-core",
|
||||
"model/governance",
|
||||
"profile/small-saas",
|
||||
],
|
||||
},
|
||||
]
|
||||
|
||||
|
||||
def generate_indexes(context: Any) -> dict[str, Any]:
|
||||
@@ -86,12 +131,48 @@ def generate_tree(context: Any) -> dict[str, Any]:
|
||||
|
||||
|
||||
def generate_agent_briefs(context: Any) -> dict[str, Any]:
|
||||
retrieval = retrieval_index(context)
|
||||
files = [
|
||||
_write_text(
|
||||
context.infospace_root / "agent" / "global-agent-brief.md",
|
||||
_render_global_agent_brief(context),
|
||||
)
|
||||
_render_global_agent_brief(context, retrieval),
|
||||
),
|
||||
_write_text(
|
||||
context.infospace_root / "agent" / "retrieval-index.md",
|
||||
_render_retrieval_index_markdown(retrieval),
|
||||
),
|
||||
_write_yaml(
|
||||
context.infospace_root / "agent" / "retrieval-index.yaml",
|
||||
retrieval,
|
||||
),
|
||||
_write_json(
|
||||
context.infospace_root / "agent" / "retrieval-index.json",
|
||||
retrieval,
|
||||
),
|
||||
_write_yaml(
|
||||
context.infospace_root / "agent" / "templates" / "canon-interface-card.template.yaml",
|
||||
interface_card_template(),
|
||||
),
|
||||
_write_text(
|
||||
context.infospace_root / "agent" / "templates" / "consumer-brief.template.md",
|
||||
_render_consumer_brief_template(),
|
||||
),
|
||||
]
|
||||
for artifact in sorted(context.infospace.artifacts, key=lambda item: item.id):
|
||||
if artifact.kind in RETRIEVAL_ARTIFACT_KINDS:
|
||||
files.append(
|
||||
_write_text(
|
||||
context.infospace_root / "agent" / "briefs" / f"{_safe_id(artifact.id)}.md",
|
||||
_render_artifact_agent_brief(context, artifact, retrieval),
|
||||
)
|
||||
)
|
||||
for consumer_id in CONSUMER_BRIEF_IDS:
|
||||
files.append(
|
||||
_write_text(
|
||||
context.infospace_root / "agent" / "consumer-briefs" / f"{consumer_id}.md",
|
||||
_render_consumer_brief(consumer_id),
|
||||
)
|
||||
)
|
||||
return _result("agent-briefs", files)
|
||||
|
||||
|
||||
@@ -211,6 +292,61 @@ def artifact_tree(context: Any) -> dict[str, Any]:
|
||||
return {"root": "infospace", "file_count": len(files), "files": files}
|
||||
|
||||
|
||||
def retrieval_index(context: Any) -> dict[str, Any]:
|
||||
ownership = concept_ownership(context)
|
||||
concepts_by_owner: dict[str, list[str]] = defaultdict(list)
|
||||
for concept in ownership["concepts"]:
|
||||
concepts_by_owner[str(concept["owner"])].append(str(concept["concept"]))
|
||||
|
||||
items = []
|
||||
for artifact in sorted(context.infospace.artifacts, key=lambda item: item.id):
|
||||
relationships = [
|
||||
{
|
||||
"type": str(relationship.get("type") or "related"),
|
||||
"target": str(relationship.get("target") or ""),
|
||||
}
|
||||
for relationship in artifact.relationships
|
||||
]
|
||||
imports = [
|
||||
item["target"]
|
||||
for item in relationships
|
||||
if item["type"] in {"imports", "requires", "uses", "conforms_to"}
|
||||
]
|
||||
warnings = []
|
||||
source_path = str(artifact.provenance.get("source_path") or artifact.path)
|
||||
if not (context.repo_root / source_path).is_file() and not (
|
||||
context.infospace_root / source_path
|
||||
).is_file():
|
||||
warnings.append(
|
||||
{
|
||||
"code": "source_path_not_file",
|
||||
"source_path": source_path,
|
||||
}
|
||||
)
|
||||
items.append(
|
||||
{
|
||||
"id": artifact.id,
|
||||
"kind": artifact.kind,
|
||||
"title": artifact.title,
|
||||
"canonical_path": artifact.path,
|
||||
"source_path": source_path,
|
||||
"summary": _summary_for_artifact(artifact),
|
||||
"owned_concepts": sorted(set(concepts_by_owner.get(artifact.id, []))),
|
||||
"imports": sorted(set(imports)),
|
||||
"relationships": relationships,
|
||||
"warnings": warnings,
|
||||
}
|
||||
)
|
||||
|
||||
return {
|
||||
"schema": "info-tech-canon.retrieval-index.v1",
|
||||
"infospace": context.infospace.config.slug,
|
||||
"item_count": len(items),
|
||||
"items": items,
|
||||
"common_distinctions": COMMON_DISTINCTIONS,
|
||||
}
|
||||
|
||||
|
||||
def _render_by_standard(context: Any) -> str:
|
||||
lines = _heading("By Standard")
|
||||
standards = [
|
||||
@@ -348,7 +484,7 @@ def _render_repository_tree(tree: dict[str, Any]) -> str:
|
||||
return "\n".join(lines).rstrip() + "\n"
|
||||
|
||||
|
||||
def _render_global_agent_brief(context: Any) -> str:
|
||||
def _render_global_agent_brief(context: Any, retrieval: dict[str, Any]) -> str:
|
||||
lines = _heading("Global Agent Brief")
|
||||
lines.extend(
|
||||
[
|
||||
@@ -356,8 +492,10 @@ def _render_global_agent_brief(context: Any) -> str:
|
||||
"",
|
||||
f"- Infospace slug: `{context.infospace.config.slug}`",
|
||||
f"- Artifact count: {len(context.infospace.artifacts)}",
|
||||
f"- Retrieval index items: {retrieval['item_count']}",
|
||||
"- Primary confidence command: `make validate`",
|
||||
"- Refresh generated indexes and views with: `make index`",
|
||||
"- Refresh agent briefs and interface templates with: `make agent-briefs`",
|
||||
"",
|
||||
"## Useful Commands",
|
||||
"",
|
||||
@@ -365,6 +503,24 @@ def _render_global_agent_brief(context: Any) -> str:
|
||||
"- `PYTHONPATH=src python3 -m info_tech_canon validate`",
|
||||
"- `PYTHONPATH=src python3 -m info_tech_canon graph`",
|
||||
"- `PYTHONPATH=src python3 -m info_tech_canon index`",
|
||||
"- `PYTHONPATH=src python3 -m info_tech_canon profile validate small-saas`",
|
||||
"",
|
||||
"## Retrieval Entry Points",
|
||||
"",
|
||||
"- `agent/retrieval-index.md`",
|
||||
"- `agent/retrieval-index.yaml`",
|
||||
"- `agent/retrieval-index.json`",
|
||||
"- `agent/briefs/` for per-artifact briefs",
|
||||
"- `agent/templates/canon-interface-card.template.yaml`",
|
||||
"",
|
||||
"## Common Distinctions",
|
||||
"",
|
||||
]
|
||||
)
|
||||
for distinction in retrieval["common_distinctions"]:
|
||||
lines.append(f"- **{distinction['title']}**: {distinction['summary']}")
|
||||
lines.extend(
|
||||
[
|
||||
"",
|
||||
"## Consumption Notes",
|
||||
"",
|
||||
@@ -376,6 +532,205 @@ def _render_global_agent_brief(context: Any) -> str:
|
||||
return "\n".join(lines).rstrip() + "\n"
|
||||
|
||||
|
||||
def _render_retrieval_index_markdown(retrieval: dict[str, Any]) -> str:
|
||||
lines = _heading("Retrieval Index")
|
||||
lines.extend(
|
||||
[
|
||||
f"Schema: `{retrieval['schema']}`",
|
||||
f"Infospace: `{retrieval['infospace']}`",
|
||||
f"Items: **{retrieval['item_count']}**",
|
||||
"",
|
||||
"## Common Distinctions",
|
||||
"",
|
||||
]
|
||||
)
|
||||
for distinction in retrieval["common_distinctions"]:
|
||||
sources = ", ".join(f"`{item}`" for item in distinction["source_artifacts"])
|
||||
lines.append(f"- **{distinction['title']}**: {distinction['summary']} Sources: {sources}")
|
||||
lines.extend(["", "## Items", ""])
|
||||
for item in retrieval["items"]:
|
||||
imports = ", ".join(f"`{target}`" for target in item["imports"]) or "none"
|
||||
concepts = ", ".join(f"`{concept}`" for concept in item["owned_concepts"]) or "none"
|
||||
lines.extend(
|
||||
[
|
||||
f"### {item['title']}",
|
||||
"",
|
||||
f"- ID: `{item['id']}`",
|
||||
f"- Kind: `{item['kind']}`",
|
||||
f"- Canonical path: `{item['canonical_path']}`",
|
||||
f"- Source path: `{item['source_path']}`",
|
||||
f"- Summary: {item['summary']}",
|
||||
f"- Imports and anchors: {imports}",
|
||||
f"- Owned concepts: {concepts}",
|
||||
"",
|
||||
]
|
||||
)
|
||||
return "\n".join(lines).rstrip() + "\n"
|
||||
|
||||
|
||||
def _render_artifact_agent_brief(
|
||||
context: Any,
|
||||
artifact: Any,
|
||||
retrieval: dict[str, Any],
|
||||
) -> str:
|
||||
item = next(entry for entry in retrieval["items"] if entry["id"] == artifact.id)
|
||||
frontmatter = {
|
||||
"id": f"agent-brief/{_safe_id(artifact.id)}",
|
||||
"artifact_id": artifact.id,
|
||||
"source_path": artifact.path,
|
||||
"source_kind": artifact.kind,
|
||||
"generated": True,
|
||||
}
|
||||
lines = [
|
||||
"---",
|
||||
yaml.safe_dump(frontmatter, sort_keys=False).strip(),
|
||||
"---",
|
||||
"",
|
||||
GENERATED_NOTICE,
|
||||
"",
|
||||
f"# Agent Brief: {artifact.title}",
|
||||
"",
|
||||
f"- Artifact ID: `{artifact.id}`",
|
||||
f"- Kind: `{artifact.kind}`",
|
||||
f"- Canonical path: `{artifact.path}`",
|
||||
f"- Full source: `{artifact.path}`",
|
||||
f"- Summary: {item['summary']}",
|
||||
"",
|
||||
"## Retrieval Hints",
|
||||
"",
|
||||
]
|
||||
if item["imports"]:
|
||||
lines.append("Imports and anchors:")
|
||||
lines.extend(f"- `{target}`" for target in item["imports"])
|
||||
else:
|
||||
lines.append("No imports or anchors recorded.")
|
||||
lines.extend(["", "## Owned Concepts", ""])
|
||||
if item["owned_concepts"]:
|
||||
lines.extend(f"- `{concept}`" for concept in item["owned_concepts"])
|
||||
else:
|
||||
lines.append("No owned concepts recorded yet.")
|
||||
lines.extend(["", "## Related Distinctions", ""])
|
||||
related = [
|
||||
distinction
|
||||
for distinction in retrieval["common_distinctions"]
|
||||
if artifact.id in distinction["source_artifacts"]
|
||||
]
|
||||
if related:
|
||||
for distinction in related:
|
||||
lines.append(f"- **{distinction['title']}**: {distinction['summary']}")
|
||||
else:
|
||||
lines.append("No common distinction is anchored directly on this artifact.")
|
||||
return "\n".join(lines).rstrip() + "\n"
|
||||
|
||||
|
||||
def interface_card_template() -> dict[str, Any]:
|
||||
return {
|
||||
"schema": "info-tech-canon.interface-card.v1",
|
||||
"id": "consumer-repo/interface-card",
|
||||
"title": "Consumer Repo Canon Interface Card",
|
||||
"consumer": {
|
||||
"repo": "",
|
||||
"domain": "",
|
||||
"owner": "",
|
||||
"intent": "",
|
||||
"scope": "",
|
||||
"purposes": [],
|
||||
},
|
||||
"canon_surfaces": {
|
||||
"implemented_profiles": [],
|
||||
"consumed_artifacts": [],
|
||||
"owned_concepts": [],
|
||||
"produced_concepts": [],
|
||||
"consumed_concepts": [],
|
||||
"mappings": [],
|
||||
},
|
||||
"validation_expectations": {
|
||||
"commands": [],
|
||||
"evidence_required": [],
|
||||
"known_gaps": [],
|
||||
},
|
||||
"consumer_needs": {
|
||||
"current": [],
|
||||
"requested_extensions": [],
|
||||
"feedback": [],
|
||||
},
|
||||
}
|
||||
|
||||
|
||||
def _render_consumer_brief_template() -> str:
|
||||
lines = [
|
||||
"---",
|
||||
"id: consumer-brief/template",
|
||||
"consumer: TBD",
|
||||
"generated: true",
|
||||
"---",
|
||||
"",
|
||||
GENERATED_NOTICE,
|
||||
"",
|
||||
"# Consumer Brief Template",
|
||||
"",
|
||||
"## Consumer Intent",
|
||||
"",
|
||||
"- Intent:",
|
||||
"- Scope:",
|
||||
"- Purposes:",
|
||||
"",
|
||||
"## Canon Surfaces",
|
||||
"",
|
||||
"- Implemented profiles:",
|
||||
"- Consumed standards:",
|
||||
"- Produced concepts:",
|
||||
"- Consumed concepts:",
|
||||
"",
|
||||
"## Validation Expectations",
|
||||
"",
|
||||
"- Commands:",
|
||||
"- Evidence:",
|
||||
"- Known gaps:",
|
||||
]
|
||||
return "\n".join(lines).rstrip() + "\n"
|
||||
|
||||
|
||||
def _render_consumer_brief(consumer_id: str) -> str:
|
||||
titles = {
|
||||
"user-engine": "User Engine Canon Consumer Brief",
|
||||
"railiance-fabric": "Railiance Fabric Canon Consumer Brief",
|
||||
"repo-scoping": "Repo Scoping Canon Consumer Brief",
|
||||
}
|
||||
purposes = {
|
||||
"user-engine": "Evaluate user-management concepts, roles, access traces, profile claims, and governance evidence against the canon before integration.",
|
||||
"railiance-fabric": "Use the canon to make captured entities and edges cleaner for conformance and visualization.",
|
||||
"repo-scoping": "Compare repo-scoping concepts with canon INTENT, SCOPE, PURPOSES, and interface-card expectations.",
|
||||
}
|
||||
lines = [
|
||||
"---",
|
||||
f"id: consumer-brief/{consumer_id}",
|
||||
f"consumer: {consumer_id}",
|
||||
"generated: true",
|
||||
"---",
|
||||
"",
|
||||
GENERATED_NOTICE,
|
||||
"",
|
||||
f"# {titles[consumer_id]}",
|
||||
"",
|
||||
"## Purpose",
|
||||
"",
|
||||
purposes[consumer_id],
|
||||
"",
|
||||
"## Starting Points",
|
||||
"",
|
||||
"- `agent/retrieval-index.md`",
|
||||
"- `agent/templates/canon-interface-card.template.yaml`",
|
||||
"- `profiles/small-saas/profile.yaml`",
|
||||
"- `views/by-concept.md`",
|
||||
"",
|
||||
"## Workplan Boundary",
|
||||
"",
|
||||
"Adoption and repo-specific implementation workplans belong in the consumer repository.",
|
||||
]
|
||||
return "\n".join(lines).rstrip() + "\n"
|
||||
|
||||
|
||||
def _heading(title: str) -> list[str]:
|
||||
return [GENERATED_NOTICE, "", f"# {title}", ""]
|
||||
|
||||
@@ -395,6 +750,12 @@ def _write_yaml(path: Path, data: dict[str, Any]) -> dict[str, Any]:
|
||||
return _write_text(path, content)
|
||||
|
||||
|
||||
def _write_json(path: Path, data: dict[str, Any]) -> dict[str, Any]:
|
||||
path.parent.mkdir(parents=True, exist_ok=True)
|
||||
content = json.dumps(data, indent=2, sort_keys=True) + "\n"
|
||||
return _write_text(path, content)
|
||||
|
||||
|
||||
def _result(kind: str, files: list[dict[str, Any]]) -> dict[str, Any]:
|
||||
return {
|
||||
"ok": True,
|
||||
@@ -420,6 +781,24 @@ def _normalize_concept(value: str) -> str:
|
||||
return "-".join(value.lower().replace("_", "-").split())
|
||||
|
||||
|
||||
def _safe_id(value: str) -> str:
|
||||
return value.replace("/", "-").replace("_", "-")
|
||||
|
||||
|
||||
def _summary_for_artifact(artifact: Any) -> str:
|
||||
if artifact.kind == "profile-artifact":
|
||||
return f"Example artifact for the {artifact.provenance.get('profile', 'unknown')} profile: {artifact.title}."
|
||||
if artifact.kind == "profile":
|
||||
return f"Profile that constrains canon artifacts for a practical implementation slice: {artifact.title}."
|
||||
if artifact.kind == "kernel":
|
||||
return f"Kernel artifact that defines canon structure or integration: {artifact.title}."
|
||||
if artifact.kind == "model":
|
||||
return f"Domain model used by canon profiles and standards: {artifact.title}."
|
||||
if artifact.kind == "standard":
|
||||
return f"Cross-cutting canon standard: {artifact.title}."
|
||||
return f"Canon artifact: {artifact.title}."
|
||||
|
||||
|
||||
def _is_generated(path: Path) -> bool:
|
||||
try:
|
||||
return path.read_text(encoding="utf-8").startswith(GENERATED_NOTICE)
|
||||
|
||||
@@ -62,6 +62,7 @@ def structural_checks(context: Any) -> dict[str, list[dict[str, Any]]]:
|
||||
_check_required_schemas(context.infospace_root, errors)
|
||||
_check_canon_paths(context.repo_root, context.infospace_root, errors)
|
||||
_check_artifact_index(context.repo_root, context.infospace_root, errors)
|
||||
_check_agent_assets(context.infospace_root, context.infospace.artifacts, errors)
|
||||
_check_optional_assets(context.infospace_root, warnings)
|
||||
|
||||
return {"errors": errors, "warnings": warnings}
|
||||
@@ -314,6 +315,97 @@ def _check_optional_assets(
|
||||
)
|
||||
|
||||
|
||||
def _check_agent_assets(
|
||||
infospace_root: Path,
|
||||
artifacts: list[Any],
|
||||
errors: list[dict[str, Any]],
|
||||
) -> None:
|
||||
required_files = (
|
||||
"agent/global-agent-brief.md",
|
||||
"agent/retrieval-index.md",
|
||||
"agent/retrieval-index.yaml",
|
||||
"agent/retrieval-index.json",
|
||||
"agent/templates/canon-interface-card.template.yaml",
|
||||
"agent/templates/consumer-brief.template.md",
|
||||
"agent/consumer-briefs/user-engine.md",
|
||||
"agent/consumer-briefs/railiance-fabric.md",
|
||||
"agent/consumer-briefs/repo-scoping.md",
|
||||
)
|
||||
for relative in required_files:
|
||||
if not (infospace_root / relative).is_file():
|
||||
errors.append(
|
||||
{
|
||||
"code": "missing_agent_asset",
|
||||
"path": str(Path("infospace") / relative),
|
||||
}
|
||||
)
|
||||
|
||||
retrieval_index = _read_yaml(infospace_root / "agent" / "retrieval-index.yaml", errors)
|
||||
artifact_ids = {artifact.id for artifact in artifacts}
|
||||
if isinstance(retrieval_index, dict):
|
||||
items = retrieval_index.get("items") or []
|
||||
if not isinstance(items, list):
|
||||
errors.append(
|
||||
{
|
||||
"code": "invalid_retrieval_index",
|
||||
"path": "infospace/agent/retrieval-index.yaml",
|
||||
"message": "Expected items list.",
|
||||
}
|
||||
)
|
||||
else:
|
||||
indexed_ids = {
|
||||
str(item.get("id"))
|
||||
for item in items
|
||||
if isinstance(item, dict) and item.get("id")
|
||||
}
|
||||
missing = sorted(artifact_ids - indexed_ids)
|
||||
for artifact_id in missing:
|
||||
errors.append(
|
||||
{
|
||||
"code": "artifact_missing_from_retrieval_index",
|
||||
"artifact_id": artifact_id,
|
||||
}
|
||||
)
|
||||
|
||||
required_brief_artifacts = [
|
||||
artifact
|
||||
for artifact in artifacts
|
||||
if artifact.kind in {"kernel", "model", "standard", "profile"}
|
||||
]
|
||||
for artifact in required_brief_artifacts:
|
||||
relative = Path("agent") / "briefs" / f"{_safe_id(artifact.id)}.md"
|
||||
brief_path = infospace_root / relative
|
||||
if not brief_path.is_file():
|
||||
errors.append(
|
||||
{
|
||||
"code": "missing_agent_brief",
|
||||
"artifact_id": artifact.id,
|
||||
"path": str(Path("infospace") / relative),
|
||||
}
|
||||
)
|
||||
continue
|
||||
frontmatter = _read_markdown_frontmatter(brief_path, errors)
|
||||
if frontmatter.get("artifact_id") != artifact.id:
|
||||
errors.append(
|
||||
{
|
||||
"code": "agent_brief_artifact_mismatch",
|
||||
"artifact_id": artifact.id,
|
||||
"path": str(Path("infospace") / relative),
|
||||
"value": frontmatter.get("artifact_id"),
|
||||
}
|
||||
)
|
||||
if frontmatter.get("source_path") != artifact.path:
|
||||
errors.append(
|
||||
{
|
||||
"code": "agent_brief_source_path_mismatch",
|
||||
"artifact_id": artifact.id,
|
||||
"path": str(Path("infospace") / relative),
|
||||
"value": frontmatter.get("source_path"),
|
||||
"expected": artifact.path,
|
||||
}
|
||||
)
|
||||
|
||||
|
||||
def _artifact_paths_by_path(
|
||||
infospace_root: Path,
|
||||
errors: list[dict[str, Any]],
|
||||
@@ -348,6 +440,33 @@ def _read_yaml(path: Path, errors: list[dict[str, Any]]) -> Any:
|
||||
return None
|
||||
|
||||
|
||||
def _read_markdown_frontmatter(path: Path, errors: list[dict[str, Any]]) -> dict[str, Any]:
|
||||
try:
|
||||
text = path.read_text(encoding="utf-8")
|
||||
except FileNotFoundError:
|
||||
errors.append({"code": "missing_markdown", "path": str(path)})
|
||||
return {}
|
||||
if not text.startswith("---\n"):
|
||||
errors.append({"code": "missing_markdown_frontmatter", "path": str(path)})
|
||||
return {}
|
||||
end = text.find("\n---\n", 4)
|
||||
if end == -1:
|
||||
errors.append({"code": "invalid_markdown_frontmatter", "path": str(path)})
|
||||
return {}
|
||||
try:
|
||||
data = yaml.safe_load(text[4:end]) or {}
|
||||
except yaml.YAMLError as exc:
|
||||
errors.append(
|
||||
{
|
||||
"code": "invalid_markdown_frontmatter_yaml",
|
||||
"path": str(path),
|
||||
"message": str(exc),
|
||||
}
|
||||
)
|
||||
return {}
|
||||
return data if isinstance(data, dict) else {}
|
||||
|
||||
|
||||
def _strip_infospace_prefix(path: str) -> str:
|
||||
prefix = "infospace/"
|
||||
return path[len(prefix) :] if path.startswith(prefix) else path
|
||||
@@ -358,3 +477,7 @@ def _has_substantive_files(directory: Path) -> bool:
|
||||
if path.is_file() and path.name != "README.md":
|
||||
return True
|
||||
return False
|
||||
|
||||
|
||||
def _safe_id(value: str) -> str:
|
||||
return value.replace("/", "-").replace("_", "-")
|
||||
|
||||
@@ -83,3 +83,11 @@ def test_generators_write_expected_assets(tmp_path) -> None:
|
||||
encoding="utf-8"
|
||||
).startswith("<!-- GENERATED")
|
||||
assert (root / "agent" / "global-agent-brief.md").is_file()
|
||||
assert (root / "agent" / "retrieval-index.md").is_file()
|
||||
assert (root / "agent" / "retrieval-index.yaml").is_file()
|
||||
assert (root / "agent" / "retrieval-index.json").is_file()
|
||||
assert (root / "agent" / "briefs" / "model-access-control.md").is_file()
|
||||
assert (
|
||||
root / "agent" / "templates" / "canon-interface-card.template.yaml"
|
||||
).is_file()
|
||||
assert (root / "agent" / "consumer-briefs" / "user-engine.md").is_file()
|
||||
|
||||
@@ -4,7 +4,7 @@ type: workplan
|
||||
title: "Retrieval Agent Briefs And Interface Cards"
|
||||
domain: canon
|
||||
repo: info-tech-canon
|
||||
status: proposed
|
||||
status: finished
|
||||
priority: medium
|
||||
created: "2026-05-23"
|
||||
updated: "2026-05-23"
|
||||
@@ -33,7 +33,7 @@ AccessRole vs CARING role, Policy vs Control vs Evidence, and similar rules.
|
||||
|
||||
```task
|
||||
id: ITC-WP-0005-T01
|
||||
status: todo
|
||||
status: done
|
||||
priority: high
|
||||
state_hub_task_id: "3e509e68-2f6d-43fb-a4da-a0289f38960c"
|
||||
```
|
||||
@@ -46,7 +46,7 @@ state_hub_task_id: "3e509e68-2f6d-43fb-a4da-a0289f38960c"
|
||||
|
||||
```task
|
||||
id: ITC-WP-0005-T02
|
||||
status: todo
|
||||
status: done
|
||||
priority: high
|
||||
state_hub_task_id: "12f350a2-d6d2-402e-820a-5ef86478a562"
|
||||
```
|
||||
@@ -59,7 +59,7 @@ state_hub_task_id: "12f350a2-d6d2-402e-820a-5ef86478a562"
|
||||
|
||||
```task
|
||||
id: ITC-WP-0005-T03
|
||||
status: todo
|
||||
status: done
|
||||
priority: medium
|
||||
state_hub_task_id: "12c17aeb-1da2-4a6f-b71d-cc8614a53394"
|
||||
```
|
||||
@@ -72,7 +72,7 @@ state_hub_task_id: "12c17aeb-1da2-4a6f-b71d-cc8614a53394"
|
||||
|
||||
```task
|
||||
id: ITC-WP-0005-T04
|
||||
status: todo
|
||||
status: done
|
||||
priority: medium
|
||||
state_hub_task_id: "c504ffe6-1a4c-4ce6-85b4-4c455edaa461"
|
||||
```
|
||||
@@ -85,3 +85,12 @@ state_hub_task_id: "c504ffe6-1a4c-4ce6-85b4-4c455edaa461"
|
||||
- Agents can start from compact briefs and retrieve full standards when needed.
|
||||
- Interface Card templates are ready for first consumers.
|
||||
- The retrieval index is generated and validated.
|
||||
|
||||
## Implementation Notes
|
||||
|
||||
- Added generated global and per-artifact agent briefs under `infospace/agent/`.
|
||||
- Added generated retrieval indexes in Markdown, YAML, and JSON.
|
||||
- Added Canon Interface Card and consumer brief templates for user-engine,
|
||||
railiance-fabric, and repo-scoping.
|
||||
- Extended structural validation so retrieval assets and source-linked briefs are
|
||||
required for kernel, model, standard, and profile artifacts.
|
||||
|
||||
@@ -70,7 +70,7 @@ workplans:
|
||||
|
||||
- id: ITC-WP-0005
|
||||
title: Retrieval Agent Briefs And Interface Cards
|
||||
status: proposed
|
||||
status: finished
|
||||
priority: medium
|
||||
path: workplans/ITC-WP-0005-retrieval-agent-briefs-and-interface-cards.md
|
||||
depends_on:
|
||||
|
||||
Reference in New Issue
Block a user