generated from coulomb/repo-seed
Add purpose and demand model extension
This commit is contained in:
@@ -74,3 +74,11 @@ Agent-facing retrieval assets live under `infospace/agent/`:
|
||||
- per-artifact briefs in `agent/briefs/`
|
||||
- consumer brief templates in `agent/consumer-briefs/`
|
||||
- Canon Interface Card template in `agent/templates/`
|
||||
|
||||
## Purpose And Demand
|
||||
|
||||
The PURPOSES candidate model is registered as a governance extension at
|
||||
`infospace/models/governance/InfoTechCanonPurposeDemandExtension.md`. It defines
|
||||
consumer purposes, demand signals, purpose fit, scope pressure, and evolution
|
||||
requests so consumer demand can inform repo governance without silently changing
|
||||
producer scope.
|
||||
|
||||
31
infospace/agent/briefs/concept-catalog-purpose-demand.md
Normal file
31
infospace/agent/briefs/concept-catalog-purpose-demand.md
Normal file
@@ -0,0 +1,31 @@
|
||||
---
|
||||
id: agent-brief/concept-catalog-purpose-demand
|
||||
artifact_id: concept-catalog/purpose-demand
|
||||
source_path: concepts/purpose-demand.yaml
|
||||
source_kind: concept-catalog
|
||||
generated: true
|
||||
---
|
||||
|
||||
<!-- GENERATED by info_tech_canon; do not edit by hand. -->
|
||||
|
||||
# Agent Brief: Purpose And Consumer Demand Concept Catalog
|
||||
|
||||
- Artifact ID: `concept-catalog/purpose-demand`
|
||||
- Kind: `concept-catalog`
|
||||
- Canonical path: `concepts/purpose-demand.yaml`
|
||||
- Full source: `concepts/purpose-demand.yaml`
|
||||
- Summary: Structured candidate concept catalog: Purpose And Consumer Demand Concept Catalog.
|
||||
|
||||
## Retrieval Hints
|
||||
|
||||
Imports and anchors:
|
||||
- `kernel/itc-core`
|
||||
- `model/governance`
|
||||
|
||||
## Owned Concepts
|
||||
|
||||
- `Purpose And Consumer Demand Concept Catalog`
|
||||
|
||||
## Related Distinctions
|
||||
|
||||
No common distinction is anchored directly on this artifact.
|
||||
30
infospace/agent/briefs/example-consumer-purpose-portfolio.md
Normal file
30
infospace/agent/briefs/example-consumer-purpose-portfolio.md
Normal file
@@ -0,0 +1,30 @@
|
||||
---
|
||||
id: agent-brief/example-consumer-purpose-portfolio
|
||||
artifact_id: example/consumer-purpose-portfolio
|
||||
source_path: examples/consumer-purpose-portfolio.yaml
|
||||
source_kind: example
|
||||
generated: true
|
||||
---
|
||||
|
||||
<!-- GENERATED by info_tech_canon; do not edit by hand. -->
|
||||
|
||||
# Agent Brief: Canon-Side Consumer Purpose Portfolio
|
||||
|
||||
- Artifact ID: `example/consumer-purpose-portfolio`
|
||||
- Kind: `example`
|
||||
- Canonical path: `examples/consumer-purpose-portfolio.yaml`
|
||||
- Full source: `examples/consumer-purpose-portfolio.yaml`
|
||||
- Summary: Canon-side example artifact: Canon-Side Consumer Purpose Portfolio.
|
||||
|
||||
## Retrieval Hints
|
||||
|
||||
Imports and anchors:
|
||||
- `profile/small-saas`
|
||||
|
||||
## Owned Concepts
|
||||
|
||||
- `Canon-Side Consumer Purpose Portfolio`
|
||||
|
||||
## Related Distinctions
|
||||
|
||||
No common distinction is anchored directly on this artifact.
|
||||
@@ -26,4 +26,4 @@ No imports or anchors recorded.
|
||||
|
||||
## 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.
|
||||
- **Intent vs Scope vs Purpose**: Intent captures why a producer or consumer exists, scope bounds producer ownership and promises, and purpose captures consumer demand anchored in consumer intent.
|
||||
|
||||
@@ -0,0 +1,30 @@
|
||||
---
|
||||
id: agent-brief/mapping-purpose-demand-governance-candidates
|
||||
artifact_id: mapping/purpose-demand-governance-candidates
|
||||
source_path: mappings/purpose-demand-governance-candidates.yaml
|
||||
source_kind: mapping
|
||||
generated: true
|
||||
---
|
||||
|
||||
<!-- GENERATED by info_tech_canon; do not edit by hand. -->
|
||||
|
||||
# Agent Brief: Purpose Demand Governance Extension Candidates
|
||||
|
||||
- Artifact ID: `mapping/purpose-demand-governance-candidates`
|
||||
- Kind: `mapping`
|
||||
- Canonical path: `mappings/purpose-demand-governance-candidates.yaml`
|
||||
- Full source: `mappings/purpose-demand-governance-candidates.yaml`
|
||||
- Summary: Mapping artifact connecting canon surfaces: Purpose Demand Governance Extension Candidates.
|
||||
|
||||
## Retrieval Hints
|
||||
|
||||
Imports and anchors:
|
||||
- `model/task`
|
||||
|
||||
## Owned Concepts
|
||||
|
||||
- `Purpose Demand Governance Extension Candidates`
|
||||
|
||||
## Related Distinctions
|
||||
|
||||
No common distinction is anchored directly on this artifact.
|
||||
@@ -28,4 +28,3 @@ Imports and anchors:
|
||||
## 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.
|
||||
|
||||
41
infospace/agent/briefs/model-purpose-demand-extension.md
Normal file
41
infospace/agent/briefs/model-purpose-demand-extension.md
Normal file
@@ -0,0 +1,41 @@
|
||||
---
|
||||
id: agent-brief/model-purpose-demand-extension
|
||||
artifact_id: model/purpose-demand-extension
|
||||
source_path: models/governance/InfoTechCanonPurposeDemandExtension.md
|
||||
source_kind: model-extension
|
||||
generated: true
|
||||
---
|
||||
|
||||
<!-- GENERATED by info_tech_canon; do not edit by hand. -->
|
||||
|
||||
# Agent Brief: InfoTechCanon Purpose And Demand Model Extension
|
||||
|
||||
- Artifact ID: `model/purpose-demand-extension`
|
||||
- Kind: `model-extension`
|
||||
- Canonical path: `models/governance/InfoTechCanonPurposeDemandExtension.md`
|
||||
- Full source: `models/governance/InfoTechCanonPurposeDemandExtension.md`
|
||||
- Summary: Candidate extension to an existing canon model: InfoTechCanon Purpose And Demand Model Extension.
|
||||
|
||||
## Retrieval Hints
|
||||
|
||||
Imports and anchors:
|
||||
- `kernel/itc-core`
|
||||
- `model/information-space`
|
||||
- `model/task`
|
||||
|
||||
## Owned Concepts
|
||||
|
||||
- `ConsumerNeed`
|
||||
- `ConsumerPurpose`
|
||||
- `DemandSignal`
|
||||
- `EvolutionRequest`
|
||||
- `InfoTechCanon Purpose And Demand Model Extension`
|
||||
- `ProducerCapability`
|
||||
- `Purpose`
|
||||
- `PurposeFit`
|
||||
- `ScopePressure`
|
||||
- `UseCase`
|
||||
|
||||
## Related Distinctions
|
||||
|
||||
- **Intent vs Scope vs Purpose**: Intent captures why a producer or consumer exists, scope bounds producer ownership and promises, and purpose captures consumer demand anchored in consumer intent.
|
||||
32
infospace/agent/briefs/pattern-intent-scope-purposes.md
Normal file
32
infospace/agent/briefs/pattern-intent-scope-purposes.md
Normal file
@@ -0,0 +1,32 @@
|
||||
---
|
||||
id: agent-brief/pattern-intent-scope-purposes
|
||||
artifact_id: pattern/intent-scope-purposes
|
||||
source_path: patterns/intent-scope-purposes.md
|
||||
source_kind: pattern
|
||||
generated: true
|
||||
---
|
||||
|
||||
<!-- GENERATED by info_tech_canon; do not edit by hand. -->
|
||||
|
||||
# Agent Brief: Intent Scope Purposes Pattern
|
||||
|
||||
- Artifact ID: `pattern/intent-scope-purposes`
|
||||
- Kind: `pattern`
|
||||
- Canonical path: `patterns/intent-scope-purposes.md`
|
||||
- Full source: `patterns/intent-scope-purposes.md`
|
||||
- Summary: Reusable canon pattern: Intent Scope Purposes Pattern.
|
||||
|
||||
## Retrieval Hints
|
||||
|
||||
Imports and anchors:
|
||||
- `model/governance`
|
||||
- `model/task`
|
||||
|
||||
## Owned Concepts
|
||||
|
||||
- `Intent Scope Purposes Pattern`
|
||||
- `IntentScopePurposePattern`
|
||||
|
||||
## Related Distinctions
|
||||
|
||||
- **Intent vs Scope vs Purpose**: Intent captures why a producer or consumer exists, scope bounds producer ownership and promises, and purpose captures consumer demand anchored in consumer intent.
|
||||
@@ -39,4 +39,4 @@ Imports and anchors:
|
||||
|
||||
## 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.
|
||||
- **Intent vs Scope vs Purpose**: Intent captures why a producer or consumer exists, scope bounds producer ownership and promises, and purpose captures consumer demand anchored in consumer intent.
|
||||
|
||||
@@ -16,6 +16,9 @@ Use the canon to make captured entities and edges cleaner for conformance and vi
|
||||
|
||||
- `agent/retrieval-index.md`
|
||||
- `agent/templates/canon-interface-card.template.yaml`
|
||||
- `models/governance/InfoTechCanonPurposeDemandExtension.md`
|
||||
- `patterns/intent-scope-purposes.md`
|
||||
- `examples/consumer-purpose-portfolio.yaml`
|
||||
- `profiles/small-saas/profile.yaml`
|
||||
- `views/by-concept.md`
|
||||
|
||||
|
||||
@@ -16,6 +16,9 @@ Compare repo-scoping concepts with canon INTENT, SCOPE, PURPOSES, and interface-
|
||||
|
||||
- `agent/retrieval-index.md`
|
||||
- `agent/templates/canon-interface-card.template.yaml`
|
||||
- `models/governance/InfoTechCanonPurposeDemandExtension.md`
|
||||
- `patterns/intent-scope-purposes.md`
|
||||
- `examples/consumer-purpose-portfolio.yaml`
|
||||
- `profiles/small-saas/profile.yaml`
|
||||
- `views/by-concept.md`
|
||||
|
||||
|
||||
@@ -16,6 +16,9 @@ Evaluate user-management concepts, roles, access traces, profile claims, and gov
|
||||
|
||||
- `agent/retrieval-index.md`
|
||||
- `agent/templates/canon-interface-card.template.yaml`
|
||||
- `models/governance/InfoTechCanonPurposeDemandExtension.md`
|
||||
- `patterns/intent-scope-purposes.md`
|
||||
- `examples/consumer-purpose-portfolio.yaml`
|
||||
- `profiles/small-saas/profile.yaml`
|
||||
- `views/by-concept.md`
|
||||
|
||||
|
||||
@@ -5,8 +5,8 @@
|
||||
This brief summarizes the current canon service surface for agents.
|
||||
|
||||
- Infospace slug: `canon`
|
||||
- Artifact count: 29
|
||||
- Retrieval index items: 29
|
||||
- Artifact count: 34
|
||||
- Retrieval index items: 34
|
||||
- Primary confidence command: `make validate`
|
||||
- Refresh generated indexes and views with: `make index`
|
||||
- Refresh agent briefs and interface templates with: `make agent-briefs`
|
||||
@@ -32,7 +32,7 @@ This brief summarizes the current canon service surface for agents.
|
||||
- **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.
|
||||
- **Intent vs Scope vs Purpose**: Intent captures why a producer or consumer exists, scope bounds producer ownership and promises, and purpose captures consumer demand anchored in consumer intent.
|
||||
|
||||
## Consumption Notes
|
||||
|
||||
|
||||
@@ -34,16 +34,72 @@
|
||||
"id": "intent-scope-purpose",
|
||||
"source_artifacts": [
|
||||
"kernel/itc-core",
|
||||
"model/governance",
|
||||
"model/purpose-demand-extension",
|
||||
"pattern/intent-scope-purposes",
|
||||
"profile/small-saas"
|
||||
],
|
||||
"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.",
|
||||
"summary": "Intent captures why a producer or consumer exists, scope bounds producer ownership and promises, and purpose captures consumer demand anchored in consumer intent.",
|
||||
"title": "Intent vs Scope vs Purpose"
|
||||
}
|
||||
],
|
||||
"infospace": "canon",
|
||||
"item_count": 29,
|
||||
"item_count": 34,
|
||||
"items": [
|
||||
{
|
||||
"canonical_path": "concepts/purpose-demand.yaml",
|
||||
"id": "concept-catalog/purpose-demand",
|
||||
"imports": [
|
||||
"kernel/itc-core",
|
||||
"model/governance"
|
||||
],
|
||||
"kind": "concept-catalog",
|
||||
"owned_concepts": [
|
||||
"Purpose And Consumer Demand Concept Catalog"
|
||||
],
|
||||
"relationships": [
|
||||
{
|
||||
"target": "kernel/itc-core",
|
||||
"type": "conforms_to"
|
||||
},
|
||||
{
|
||||
"target": "model/governance",
|
||||
"type": "uses"
|
||||
}
|
||||
],
|
||||
"source_path": "infospace/concepts/purpose-demand.yaml",
|
||||
"summary": "Structured candidate concept catalog: Purpose And Consumer Demand Concept Catalog.",
|
||||
"title": "Purpose And Consumer Demand Concept Catalog",
|
||||
"warnings": []
|
||||
},
|
||||
{
|
||||
"canonical_path": "examples/consumer-purpose-portfolio.yaml",
|
||||
"id": "example/consumer-purpose-portfolio",
|
||||
"imports": [
|
||||
"profile/small-saas"
|
||||
],
|
||||
"kind": "example",
|
||||
"owned_concepts": [
|
||||
"Canon-Side Consumer Purpose Portfolio"
|
||||
],
|
||||
"relationships": [
|
||||
{
|
||||
"target": "model/purpose-demand-extension",
|
||||
"type": "illustrates"
|
||||
},
|
||||
{
|
||||
"target": "pattern/intent-scope-purposes",
|
||||
"type": "illustrates"
|
||||
},
|
||||
{
|
||||
"target": "profile/small-saas",
|
||||
"type": "uses"
|
||||
}
|
||||
],
|
||||
"source_path": "infospace/examples/consumer-purpose-portfolio.yaml",
|
||||
"summary": "Canon-side example artifact: Canon-Side Consumer Purpose Portfolio.",
|
||||
"title": "Canon-Side Consumer Purpose Portfolio",
|
||||
"warnings": []
|
||||
},
|
||||
{
|
||||
"canonical_path": "kernel/InfoTechCanonCore.md",
|
||||
"id": "kernel/itc-core",
|
||||
@@ -129,6 +185,35 @@
|
||||
"title": "InfoTechCanon Kernel Map",
|
||||
"warnings": []
|
||||
},
|
||||
{
|
||||
"canonical_path": "mappings/purpose-demand-governance-candidates.yaml",
|
||||
"id": "mapping/purpose-demand-governance-candidates",
|
||||
"imports": [
|
||||
"model/task"
|
||||
],
|
||||
"kind": "mapping",
|
||||
"owned_concepts": [
|
||||
"Purpose Demand Governance Extension Candidates"
|
||||
],
|
||||
"relationships": [
|
||||
{
|
||||
"target": "model/purpose-demand-extension",
|
||||
"type": "maps"
|
||||
},
|
||||
{
|
||||
"target": "model/governance",
|
||||
"type": "maps"
|
||||
},
|
||||
{
|
||||
"target": "model/task",
|
||||
"type": "uses"
|
||||
}
|
||||
],
|
||||
"source_path": "infospace/mappings/purpose-demand-governance-candidates.yaml",
|
||||
"summary": "Mapping artifact connecting canon surfaces: Purpose Demand Governance Extension Candidates.",
|
||||
"title": "Purpose Demand Governance Extension Candidates",
|
||||
"warnings": []
|
||||
},
|
||||
{
|
||||
"canonical_path": "models/access-control/InfoTechCanonAccessControlModel.md",
|
||||
"id": "model/access-control",
|
||||
@@ -348,6 +433,54 @@
|
||||
"title": "InfoTechCanon Organization Model",
|
||||
"warnings": []
|
||||
},
|
||||
{
|
||||
"canonical_path": "models/governance/InfoTechCanonPurposeDemandExtension.md",
|
||||
"id": "model/purpose-demand-extension",
|
||||
"imports": [
|
||||
"kernel/itc-core",
|
||||
"model/information-space",
|
||||
"model/task"
|
||||
],
|
||||
"kind": "model-extension",
|
||||
"owned_concepts": [
|
||||
"ConsumerNeed",
|
||||
"ConsumerPurpose",
|
||||
"DemandSignal",
|
||||
"EvolutionRequest",
|
||||
"InfoTechCanon Purpose And Demand Model Extension",
|
||||
"ProducerCapability",
|
||||
"Purpose",
|
||||
"PurposeFit",
|
||||
"ScopePressure",
|
||||
"UseCase"
|
||||
],
|
||||
"relationships": [
|
||||
{
|
||||
"target": "kernel/itc-core",
|
||||
"type": "conforms_to"
|
||||
},
|
||||
{
|
||||
"target": "model/governance",
|
||||
"type": "extends"
|
||||
},
|
||||
{
|
||||
"target": "model/information-space",
|
||||
"type": "uses"
|
||||
},
|
||||
{
|
||||
"target": "model/task",
|
||||
"type": "uses"
|
||||
},
|
||||
{
|
||||
"target": "concept-catalog/purpose-demand",
|
||||
"type": "introduces"
|
||||
}
|
||||
],
|
||||
"source_path": "infospace/models/governance/InfoTechCanonPurposeDemandExtension.md",
|
||||
"summary": "Candidate extension to an existing canon model: InfoTechCanon Purpose And Demand Model Extension.",
|
||||
"title": "InfoTechCanon Purpose And Demand Model Extension",
|
||||
"warnings": []
|
||||
},
|
||||
{
|
||||
"canonical_path": "models/security/InfoTechCanonSecurityModel.md",
|
||||
"id": "model/security",
|
||||
@@ -395,6 +528,37 @@
|
||||
"title": "InfoTechCanon Task Model",
|
||||
"warnings": []
|
||||
},
|
||||
{
|
||||
"canonical_path": "patterns/intent-scope-purposes.md",
|
||||
"id": "pattern/intent-scope-purposes",
|
||||
"imports": [
|
||||
"model/governance",
|
||||
"model/task"
|
||||
],
|
||||
"kind": "pattern",
|
||||
"owned_concepts": [
|
||||
"Intent Scope Purposes Pattern",
|
||||
"IntentScopePurposePattern"
|
||||
],
|
||||
"relationships": [
|
||||
{
|
||||
"target": "model/purpose-demand-extension",
|
||||
"type": "implements"
|
||||
},
|
||||
{
|
||||
"target": "model/governance",
|
||||
"type": "uses"
|
||||
},
|
||||
{
|
||||
"target": "model/task",
|
||||
"type": "uses"
|
||||
}
|
||||
],
|
||||
"source_path": "infospace/patterns/intent-scope-purposes.md",
|
||||
"summary": "Reusable canon pattern: Intent Scope Purposes Pattern.",
|
||||
"title": "Intent Scope Purposes Pattern",
|
||||
"warnings": []
|
||||
},
|
||||
{
|
||||
"canonical_path": "profiles/small-saas/profile.yaml",
|
||||
"id": "profile/small-saas",
|
||||
|
||||
@@ -4,17 +4,37 @@
|
||||
|
||||
Schema: `info-tech-canon.retrieval-index.v1`
|
||||
Infospace: `canon`
|
||||
Items: **29**
|
||||
Items: **34**
|
||||
|
||||
## 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`
|
||||
- **Intent vs Scope vs Purpose**: Intent captures why a producer or consumer exists, scope bounds producer ownership and promises, and purpose captures consumer demand anchored in consumer intent. Sources: `kernel/itc-core`, `model/purpose-demand-extension`, `pattern/intent-scope-purposes`, `profile/small-saas`
|
||||
|
||||
## Items
|
||||
|
||||
### Purpose And Consumer Demand Concept Catalog
|
||||
|
||||
- ID: `concept-catalog/purpose-demand`
|
||||
- Kind: `concept-catalog`
|
||||
- Canonical path: `concepts/purpose-demand.yaml`
|
||||
- Source path: `infospace/concepts/purpose-demand.yaml`
|
||||
- Summary: Structured candidate concept catalog: Purpose And Consumer Demand Concept Catalog.
|
||||
- Imports and anchors: `kernel/itc-core`, `model/governance`
|
||||
- Owned concepts: `Purpose And Consumer Demand Concept Catalog`
|
||||
|
||||
### Canon-Side Consumer Purpose Portfolio
|
||||
|
||||
- ID: `example/consumer-purpose-portfolio`
|
||||
- Kind: `example`
|
||||
- Canonical path: `examples/consumer-purpose-portfolio.yaml`
|
||||
- Source path: `infospace/examples/consumer-purpose-portfolio.yaml`
|
||||
- Summary: Canon-side example artifact: Canon-Side Consumer Purpose Portfolio.
|
||||
- Imports and anchors: `profile/small-saas`
|
||||
- Owned concepts: `Canon-Side Consumer Purpose Portfolio`
|
||||
|
||||
### InfoTechCanon Core
|
||||
|
||||
- ID: `kernel/itc-core`
|
||||
@@ -35,6 +55,16 @@ Items: **29**
|
||||
- Imports and anchors: none
|
||||
- Owned concepts: `InfoTechCanon Kernel Map`
|
||||
|
||||
### Purpose Demand Governance Extension Candidates
|
||||
|
||||
- ID: `mapping/purpose-demand-governance-candidates`
|
||||
- Kind: `mapping`
|
||||
- Canonical path: `mappings/purpose-demand-governance-candidates.yaml`
|
||||
- Source path: `infospace/mappings/purpose-demand-governance-candidates.yaml`
|
||||
- Summary: Mapping artifact connecting canon surfaces: Purpose Demand Governance Extension Candidates.
|
||||
- Imports and anchors: `model/task`
|
||||
- Owned concepts: `Purpose Demand Governance Extension Candidates`
|
||||
|
||||
### InfoTechCanon Access Control Model
|
||||
|
||||
- ID: `model/access-control`
|
||||
@@ -125,6 +155,16 @@ Items: **29**
|
||||
- Imports and anchors: `kernel/itc-core`
|
||||
- Owned concepts: `InfoTechCanon Organization Model`
|
||||
|
||||
### InfoTechCanon Purpose And Demand Model Extension
|
||||
|
||||
- ID: `model/purpose-demand-extension`
|
||||
- Kind: `model-extension`
|
||||
- Canonical path: `models/governance/InfoTechCanonPurposeDemandExtension.md`
|
||||
- Source path: `infospace/models/governance/InfoTechCanonPurposeDemandExtension.md`
|
||||
- Summary: Candidate extension to an existing canon model: InfoTechCanon Purpose And Demand Model Extension.
|
||||
- Imports and anchors: `kernel/itc-core`, `model/information-space`, `model/task`
|
||||
- Owned concepts: `ConsumerNeed`, `ConsumerPurpose`, `DemandSignal`, `EvolutionRequest`, `InfoTechCanon Purpose And Demand Model Extension`, `ProducerCapability`, `Purpose`, `PurposeFit`, `ScopePressure`, `UseCase`
|
||||
|
||||
### InfoTechCanon Security Model
|
||||
|
||||
- ID: `model/security`
|
||||
@@ -145,6 +185,16 @@ Items: **29**
|
||||
- Imports and anchors: `kernel/itc-core`
|
||||
- Owned concepts: `InfoTechCanon Task Model`
|
||||
|
||||
### Intent Scope Purposes Pattern
|
||||
|
||||
- ID: `pattern/intent-scope-purposes`
|
||||
- Kind: `pattern`
|
||||
- Canonical path: `patterns/intent-scope-purposes.md`
|
||||
- Source path: `infospace/patterns/intent-scope-purposes.md`
|
||||
- Summary: Reusable canon pattern: Intent Scope Purposes Pattern.
|
||||
- Imports and anchors: `model/governance`, `model/task`
|
||||
- Owned concepts: `Intent Scope Purposes Pattern`, `IntentScopePurposePattern`
|
||||
|
||||
### Small SaaS System Profile
|
||||
|
||||
- ID: `profile/small-saas`
|
||||
|
||||
@@ -1,7 +1,43 @@
|
||||
schema: info-tech-canon.retrieval-index.v1
|
||||
infospace: canon
|
||||
item_count: 29
|
||||
item_count: 34
|
||||
items:
|
||||
- id: concept-catalog/purpose-demand
|
||||
kind: concept-catalog
|
||||
title: Purpose And Consumer Demand Concept Catalog
|
||||
canonical_path: concepts/purpose-demand.yaml
|
||||
source_path: infospace/concepts/purpose-demand.yaml
|
||||
summary: 'Structured candidate concept catalog: Purpose And Consumer Demand Concept
|
||||
Catalog.'
|
||||
owned_concepts:
|
||||
- Purpose And Consumer Demand Concept Catalog
|
||||
imports:
|
||||
- kernel/itc-core
|
||||
- model/governance
|
||||
relationships:
|
||||
- type: conforms_to
|
||||
target: kernel/itc-core
|
||||
- type: uses
|
||||
target: model/governance
|
||||
warnings: []
|
||||
- id: example/consumer-purpose-portfolio
|
||||
kind: example
|
||||
title: Canon-Side Consumer Purpose Portfolio
|
||||
canonical_path: examples/consumer-purpose-portfolio.yaml
|
||||
source_path: infospace/examples/consumer-purpose-portfolio.yaml
|
||||
summary: 'Canon-side example artifact: Canon-Side Consumer Purpose Portfolio.'
|
||||
owned_concepts:
|
||||
- Canon-Side Consumer Purpose Portfolio
|
||||
imports:
|
||||
- profile/small-saas
|
||||
relationships:
|
||||
- type: illustrates
|
||||
target: model/purpose-demand-extension
|
||||
- type: illustrates
|
||||
target: pattern/intent-scope-purposes
|
||||
- type: uses
|
||||
target: profile/small-saas
|
||||
warnings: []
|
||||
- id: kernel/itc-core
|
||||
kind: kernel
|
||||
title: InfoTechCanon Core
|
||||
@@ -54,6 +90,25 @@ items:
|
||||
- type: maps
|
||||
target: standard/caring
|
||||
warnings: []
|
||||
- id: mapping/purpose-demand-governance-candidates
|
||||
kind: mapping
|
||||
title: Purpose Demand Governance Extension Candidates
|
||||
canonical_path: mappings/purpose-demand-governance-candidates.yaml
|
||||
source_path: infospace/mappings/purpose-demand-governance-candidates.yaml
|
||||
summary: 'Mapping artifact connecting canon surfaces: Purpose Demand Governance
|
||||
Extension Candidates.'
|
||||
owned_concepts:
|
||||
- Purpose Demand Governance Extension Candidates
|
||||
imports:
|
||||
- model/task
|
||||
relationships:
|
||||
- type: maps
|
||||
target: model/purpose-demand-extension
|
||||
- type: maps
|
||||
target: model/governance
|
||||
- type: uses
|
||||
target: model/task
|
||||
warnings: []
|
||||
- id: model/access-control
|
||||
kind: model
|
||||
title: InfoTechCanon Access Control Model
|
||||
@@ -207,6 +262,40 @@ items:
|
||||
- type: conforms_to
|
||||
target: kernel/itc-core
|
||||
warnings: []
|
||||
- id: model/purpose-demand-extension
|
||||
kind: model-extension
|
||||
title: InfoTechCanon Purpose And Demand Model Extension
|
||||
canonical_path: models/governance/InfoTechCanonPurposeDemandExtension.md
|
||||
source_path: infospace/models/governance/InfoTechCanonPurposeDemandExtension.md
|
||||
summary: 'Candidate extension to an existing canon model: InfoTechCanon Purpose
|
||||
And Demand Model Extension.'
|
||||
owned_concepts:
|
||||
- ConsumerNeed
|
||||
- ConsumerPurpose
|
||||
- DemandSignal
|
||||
- EvolutionRequest
|
||||
- InfoTechCanon Purpose And Demand Model Extension
|
||||
- ProducerCapability
|
||||
- Purpose
|
||||
- PurposeFit
|
||||
- ScopePressure
|
||||
- UseCase
|
||||
imports:
|
||||
- kernel/itc-core
|
||||
- model/information-space
|
||||
- model/task
|
||||
relationships:
|
||||
- type: conforms_to
|
||||
target: kernel/itc-core
|
||||
- type: extends
|
||||
target: model/governance
|
||||
- type: uses
|
||||
target: model/information-space
|
||||
- type: uses
|
||||
target: model/task
|
||||
- type: introduces
|
||||
target: concept-catalog/purpose-demand
|
||||
warnings: []
|
||||
- id: model/security
|
||||
kind: model
|
||||
title: InfoTechCanon Security Model
|
||||
@@ -240,6 +329,26 @@ items:
|
||||
- type: conforms_to
|
||||
target: kernel/itc-core
|
||||
warnings: []
|
||||
- id: pattern/intent-scope-purposes
|
||||
kind: pattern
|
||||
title: Intent Scope Purposes Pattern
|
||||
canonical_path: patterns/intent-scope-purposes.md
|
||||
source_path: infospace/patterns/intent-scope-purposes.md
|
||||
summary: 'Reusable canon pattern: Intent Scope Purposes Pattern.'
|
||||
owned_concepts:
|
||||
- Intent Scope Purposes Pattern
|
||||
- IntentScopePurposePattern
|
||||
imports:
|
||||
- model/governance
|
||||
- model/task
|
||||
relationships:
|
||||
- type: implements
|
||||
target: model/purpose-demand-extension
|
||||
- type: uses
|
||||
target: model/governance
|
||||
- type: uses
|
||||
target: model/task
|
||||
warnings: []
|
||||
- id: profile/small-saas
|
||||
kind: profile
|
||||
title: Small SaaS System Profile
|
||||
@@ -665,9 +774,11 @@ common_distinctions:
|
||||
- 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.
|
||||
summary: Intent captures why a producer or consumer exists, scope bounds producer
|
||||
ownership and promises, and purpose captures consumer demand anchored in consumer
|
||||
intent.
|
||||
source_artifacts:
|
||||
- kernel/itc-core
|
||||
- model/governance
|
||||
- model/purpose-demand-extension
|
||||
- pattern/intent-scope-purposes
|
||||
- profile/small-saas
|
||||
|
||||
@@ -7,7 +7,11 @@ consumer:
|
||||
owner: ''
|
||||
intent: ''
|
||||
scope: ''
|
||||
purposes: []
|
||||
purposes:
|
||||
- id: ''
|
||||
use_case: ''
|
||||
consumer_need: ''
|
||||
demand_signals: []
|
||||
canon_surfaces:
|
||||
implemented_profiles: []
|
||||
consumed_artifacts: []
|
||||
@@ -19,6 +23,11 @@ validation_expectations:
|
||||
commands: []
|
||||
evidence_required: []
|
||||
known_gaps: []
|
||||
purpose_fit:
|
||||
state: ''
|
||||
matched_capabilities: []
|
||||
scope_pressure: ''
|
||||
recommended_disposition: ''
|
||||
consumer_needs:
|
||||
current: []
|
||||
requested_extensions: []
|
||||
|
||||
@@ -13,6 +13,8 @@ generated: true
|
||||
- Intent:
|
||||
- Scope:
|
||||
- Purposes:
|
||||
- Use cases:
|
||||
- Demand signals:
|
||||
|
||||
## Canon Surfaces
|
||||
|
||||
@@ -26,3 +28,10 @@ generated: true
|
||||
- Commands:
|
||||
- Evidence:
|
||||
- Known gaps:
|
||||
|
||||
## Purpose Fit
|
||||
|
||||
- State:
|
||||
- Matched producer capabilities:
|
||||
- Scope pressure:
|
||||
- Requested evolution:
|
||||
|
||||
@@ -89,6 +89,24 @@ artifacts:
|
||||
relationships:
|
||||
- type: conforms_to
|
||||
target: kernel/itc-core
|
||||
- id: model/purpose-demand-extension
|
||||
path: models/governance/InfoTechCanonPurposeDemandExtension.md
|
||||
kind: model-extension
|
||||
title: InfoTechCanon Purpose And Demand Model Extension
|
||||
provenance:
|
||||
source_path: infospace/models/governance/InfoTechCanonPurposeDemandExtension.md
|
||||
placement_workplan: ITC-WP-0006
|
||||
relationships:
|
||||
- type: conforms_to
|
||||
target: kernel/itc-core
|
||||
- type: extends
|
||||
target: model/governance
|
||||
- type: uses
|
||||
target: model/information-space
|
||||
- type: uses
|
||||
target: model/task
|
||||
- type: introduces
|
||||
target: concept-catalog/purpose-demand
|
||||
- id: model/task
|
||||
path: models/task/InfoTechCanonTaskModel.md
|
||||
kind: model
|
||||
@@ -259,6 +277,60 @@ artifacts:
|
||||
target: standard/tagging
|
||||
- type: requires
|
||||
target: standard/caring
|
||||
- id: concept-catalog/purpose-demand
|
||||
path: concepts/purpose-demand.yaml
|
||||
kind: concept-catalog
|
||||
title: Purpose And Consumer Demand Concept Catalog
|
||||
provenance:
|
||||
source_path: infospace/concepts/purpose-demand.yaml
|
||||
placement_workplan: ITC-WP-0006
|
||||
relationships:
|
||||
- type: conforms_to
|
||||
target: kernel/itc-core
|
||||
- type: uses
|
||||
target: model/governance
|
||||
- id: pattern/intent-scope-purposes
|
||||
path: patterns/intent-scope-purposes.md
|
||||
kind: pattern
|
||||
title: Intent Scope Purposes Pattern
|
||||
provenance:
|
||||
source_path: infospace/patterns/intent-scope-purposes.md
|
||||
placement_workplan: ITC-WP-0006
|
||||
relationships:
|
||||
- type: implements
|
||||
target: model/purpose-demand-extension
|
||||
- type: uses
|
||||
target: model/governance
|
||||
- type: uses
|
||||
target: model/task
|
||||
- id: mapping/purpose-demand-governance-candidates
|
||||
path: mappings/purpose-demand-governance-candidates.yaml
|
||||
kind: mapping
|
||||
title: Purpose Demand Governance Extension Candidates
|
||||
provenance:
|
||||
source_path: infospace/mappings/purpose-demand-governance-candidates.yaml
|
||||
placement_workplan: ITC-WP-0006
|
||||
relationships:
|
||||
- type: maps
|
||||
target: model/purpose-demand-extension
|
||||
- type: maps
|
||||
target: model/governance
|
||||
- type: uses
|
||||
target: model/task
|
||||
- id: example/consumer-purpose-portfolio
|
||||
path: examples/consumer-purpose-portfolio.yaml
|
||||
kind: example
|
||||
title: Canon-Side Consumer Purpose Portfolio
|
||||
provenance:
|
||||
source_path: infospace/examples/consumer-purpose-portfolio.yaml
|
||||
placement_workplan: ITC-WP-0006
|
||||
relationships:
|
||||
- type: illustrates
|
||||
target: model/purpose-demand-extension
|
||||
- type: illustrates
|
||||
target: pattern/intent-scope-purposes
|
||||
- type: uses
|
||||
target: profile/small-saas
|
||||
- id: small-saas/service/billing-portal
|
||||
path: profiles/small-saas/artifacts/service.billing-portal.yaml
|
||||
kind: profile-artifact
|
||||
|
||||
67
infospace/concepts/purpose-demand.yaml
Normal file
67
infospace/concepts/purpose-demand.yaml
Normal file
@@ -0,0 +1,67 @@
|
||||
id: concept-catalog/purpose-demand
|
||||
title: Purpose And Consumer Demand Concept Catalog
|
||||
owner: model/purpose-demand-extension
|
||||
status: candidate
|
||||
version: "0.1"
|
||||
concepts:
|
||||
- id: purpose
|
||||
title: Purpose
|
||||
proposed_owner: kernel/itc-core
|
||||
definition: Generic reason or use-value orientation for an actor, artifact, capability, or repo in a context.
|
||||
- id: consumer-purpose
|
||||
title: ConsumerPurpose
|
||||
proposed_owner: model/information-space
|
||||
definition: Declared purpose from a consumer of a producer repo, artifact, profile, service, or canon surface.
|
||||
- id: use-case
|
||||
title: UseCase
|
||||
proposed_owner: model/information-space
|
||||
definition: Bounded scenario in which a consumer applies a producer capability to satisfy a purpose.
|
||||
- id: demand-signal
|
||||
title: DemandSignal
|
||||
proposed_owner: model/information-space
|
||||
definition: Traceable observation indicating consumer need, use, friction, request, value, or preference.
|
||||
- id: consumer-need
|
||||
title: ConsumerNeed
|
||||
proposed_owner: model/information-space
|
||||
definition: Need expressed or inferred from a consumer purpose and demand signals.
|
||||
- id: producer-capability
|
||||
title: ProducerCapability
|
||||
proposed_owner: model/governance
|
||||
definition: Capability, profile, interface, artifact, or service the producer can intentionally provide or promise.
|
||||
- id: purpose-fit
|
||||
title: PurposeFit
|
||||
proposed_owner: model/governance
|
||||
definition: Evaluation of how well producer scope and capabilities satisfy a consumer purpose.
|
||||
- id: scope-pressure
|
||||
title: ScopePressure
|
||||
proposed_owner: model/governance
|
||||
definition: Pressure on producer scope caused by unmet, repeated, high-value, or strategically aligned consumer purposes.
|
||||
- id: evolution-request
|
||||
title: EvolutionRequest
|
||||
proposed_owner: model/task
|
||||
definition: Proposed change to producer artifacts, interfaces, profiles, standards, or scope created in response to purpose pressure.
|
||||
relationships:
|
||||
- source: ConsumerPurpose
|
||||
type: anchored_in
|
||||
target: ConsumerIntent
|
||||
- source: ConsumerPurpose
|
||||
type: expresses
|
||||
target: UseCase
|
||||
- source: UseCase
|
||||
type: creates
|
||||
target: DemandSignal
|
||||
- source: DemandSignal
|
||||
type: indicates
|
||||
target: ConsumerNeed
|
||||
- source: ProducerCapability
|
||||
type: satisfies
|
||||
target: ConsumerNeed
|
||||
- source: PurposeFit
|
||||
type: evaluates
|
||||
target: ConsumerPurpose
|
||||
- source: ScopePressure
|
||||
type: arises_from
|
||||
target: PurposeFit
|
||||
- source: EvolutionRequest
|
||||
type: responds_to
|
||||
target: ScopePressure
|
||||
67
infospace/examples/consumer-purpose-portfolio.yaml
Normal file
67
infospace/examples/consumer-purpose-portfolio.yaml
Normal file
@@ -0,0 +1,67 @@
|
||||
id: example/consumer-purpose-portfolio
|
||||
title: Canon-Side Consumer Purpose Portfolio
|
||||
status: candidate
|
||||
model: model/purpose-demand-extension
|
||||
pattern: pattern/intent-scope-purposes
|
||||
consumers:
|
||||
- id: user-engine
|
||||
title: User Engine Evaluation
|
||||
consumer_intent: Evaluate user-management capabilities against the canon before integrating user management as a producer capability.
|
||||
consumer_scope: User identity, account lifecycle, roles, access decisions, tenancy boundaries, and governance evidence.
|
||||
purposes:
|
||||
- id: user-engine/user-management-evaluation
|
||||
use_case: Compare user-engine entities and access behavior with InfoTechCanon models and small-saas profile expectations.
|
||||
consumer_need: Clear distinctions among Actor, Subject, Principal, Organization Role, AccessRole, policy, control, and evidence.
|
||||
demand_signals:
|
||||
- Needs conformance questions before integration starts.
|
||||
- Needs source-linked concepts for user, role, tenant, access, and evidence records.
|
||||
producer_capabilities_used:
|
||||
- profile/small-saas
|
||||
- model/organization
|
||||
- model/access-control
|
||||
- model/governance
|
||||
- standard/caring
|
||||
purpose_fit: fits_with_profile
|
||||
scope_pressure: Add evaluation pack and conformance questions after PURPOSES vocabulary is accepted.
|
||||
evolution_requests:
|
||||
- Create canon-side user-management evaluation pack.
|
||||
- id: railiance-fabric
|
||||
title: Railiance Fabric Refactoring Support
|
||||
consumer_intent: Refactor captured entities and edges so the fabric conforms to and informs the canon.
|
||||
consumer_scope: Entity capture, edge semantics, provenance, visualization utility, and governance of extracted relationships.
|
||||
purposes:
|
||||
- id: railiance-fabric/entity-edge-cleanliness
|
||||
use_case: Use canon concepts to classify fabric nodes and edges for cleaner visualization and better practical meaning.
|
||||
consumer_need: Stable concept ownership, relationship semantics, and examples for entity and edge capture.
|
||||
demand_signals:
|
||||
- Needs cleaner capture of entities and edges for visualization.
|
||||
- Needs relationship types that can be traced to canon models.
|
||||
producer_capabilities_used:
|
||||
- model/information-space
|
||||
- model/governance
|
||||
- model/task
|
||||
- standard/tagging
|
||||
purpose_fit: partial_fit
|
||||
scope_pressure: Add mapping examples and relationship expectations for visualization-oriented captures.
|
||||
evolution_requests:
|
||||
- Create fabric entity and edge capture criteria.
|
||||
- id: repo-scoping
|
||||
title: Repo Scoping Comparison
|
||||
consumer_intent: Compare repo-scoping concepts with the canon and identify extensions that maximize scoping utility.
|
||||
consumer_scope: Repository intent, scope, domain, consumer demand, governance, and interface-card semantics.
|
||||
purposes:
|
||||
- id: repo-scoping/intent-scope-purposes-alignment
|
||||
use_case: Use INTENT, SCOPE, and PURPOSES to improve repo scoping and feed canon extension candidates back to InfoTechCanon.
|
||||
consumer_need: Explicit fit between repo intent, current scope, consumer purposes, and governance decisions.
|
||||
demand_signals:
|
||||
- Needs canon vocabulary for PURPOSES as consumer demand.
|
||||
- Needs interface card fields that repo-scoping can produce or consume.
|
||||
producer_capabilities_used:
|
||||
- kernel/itc-core
|
||||
- model/purpose-demand-extension
|
||||
- pattern/intent-scope-purposes
|
||||
- agent/templates/canon-interface-card.template.yaml
|
||||
purpose_fit: gap
|
||||
scope_pressure: Extend interface cards and governance vocabulary around PURPOSES.
|
||||
evolution_requests:
|
||||
- Compare repo-scoping with canon purpose and demand model.
|
||||
@@ -1,5 +1,5 @@
|
||||
root: infospace
|
||||
file_count: 91
|
||||
file_count: 101
|
||||
files:
|
||||
- path: README.md
|
||||
directory: .
|
||||
@@ -7,12 +7,21 @@ files:
|
||||
- path: agent/README.md
|
||||
directory: agent
|
||||
name: README.md
|
||||
- path: agent/briefs/concept-catalog-purpose-demand.md
|
||||
directory: agent/briefs
|
||||
name: concept-catalog-purpose-demand.md
|
||||
- path: agent/briefs/example-consumer-purpose-portfolio.md
|
||||
directory: agent/briefs
|
||||
name: example-consumer-purpose-portfolio.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/mapping-purpose-demand-governance-candidates.md
|
||||
directory: agent/briefs
|
||||
name: mapping-purpose-demand-governance-candidates.md
|
||||
- path: agent/briefs/model-access-control.md
|
||||
directory: agent/briefs
|
||||
name: model-access-control.md
|
||||
@@ -40,12 +49,18 @@ files:
|
||||
- path: agent/briefs/model-organization.md
|
||||
directory: agent/briefs
|
||||
name: model-organization.md
|
||||
- path: agent/briefs/model-purpose-demand-extension.md
|
||||
directory: agent/briefs
|
||||
name: model-purpose-demand-extension.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/pattern-intent-scope-purposes.md
|
||||
directory: agent/briefs
|
||||
name: pattern-intent-scope-purposes.md
|
||||
- path: agent/briefs/profile-small-saas.md
|
||||
directory: agent/briefs
|
||||
name: profile-small-saas.md
|
||||
@@ -88,9 +103,15 @@ files:
|
||||
- path: assimilation/README.md
|
||||
directory: assimilation
|
||||
name: README.md
|
||||
- path: concepts/purpose-demand.yaml
|
||||
directory: concepts
|
||||
name: purpose-demand.yaml
|
||||
- path: examples/README.md
|
||||
directory: examples
|
||||
name: README.md
|
||||
- path: examples/consumer-purpose-portfolio.yaml
|
||||
directory: examples
|
||||
name: consumer-purpose-portfolio.yaml
|
||||
- path: examples/small-saas/README.md
|
||||
directory: examples/small-saas
|
||||
name: README.md
|
||||
@@ -121,6 +142,9 @@ files:
|
||||
- path: mappings/README.md
|
||||
directory: mappings
|
||||
name: README.md
|
||||
- path: mappings/purpose-demand-governance-candidates.yaml
|
||||
directory: mappings
|
||||
name: purpose-demand-governance-candidates.yaml
|
||||
- path: models/access-control/InfoTechCanonAccessControlModel.md
|
||||
directory: models/access-control
|
||||
name: InfoTechCanonAccessControlModel.md
|
||||
@@ -133,6 +157,9 @@ files:
|
||||
- path: models/governance/InfoTechCanonGovernanceModel.md
|
||||
directory: models/governance
|
||||
name: InfoTechCanonGovernanceModel.md
|
||||
- path: models/governance/InfoTechCanonPurposeDemandExtension.md
|
||||
directory: models/governance
|
||||
name: InfoTechCanonPurposeDemandExtension.md
|
||||
- path: models/information-space/InfoTechCanonInformationSpaceModel.md
|
||||
directory: models/information-space
|
||||
name: InfoTechCanonInformationSpaceModel.md
|
||||
@@ -157,6 +184,9 @@ files:
|
||||
- path: patterns/README.md
|
||||
directory: patterns
|
||||
name: README.md
|
||||
- path: patterns/intent-scope-purposes.md
|
||||
directory: patterns
|
||||
name: intent-scope-purposes.md
|
||||
- path: profiles/README.md
|
||||
directory: profiles
|
||||
name: README.md
|
||||
|
||||
@@ -1,5 +1,13 @@
|
||||
concept_count: 44
|
||||
concept_count: 59
|
||||
concepts:
|
||||
- concept: Purpose And Consumer Demand Concept Catalog
|
||||
owner: concept-catalog/purpose-demand
|
||||
path: concepts/purpose-demand.yaml
|
||||
source: artifact_title
|
||||
- concept: Canon-Side Consumer Purpose Portfolio
|
||||
owner: example/consumer-purpose-portfolio
|
||||
path: examples/consumer-purpose-portfolio.yaml
|
||||
source: artifact_title
|
||||
- concept: InfoTechCanon Core
|
||||
owner: kernel/itc-core
|
||||
path: kernel/InfoTechCanonCore.md
|
||||
@@ -8,6 +16,10 @@ concepts:
|
||||
owner: kernel/itc-kernel-map
|
||||
path: kernel/InfoTechCanonKernelMap.md
|
||||
source: artifact_title
|
||||
- concept: Purpose Demand Governance Extension Candidates
|
||||
owner: mapping/purpose-demand-governance-candidates
|
||||
path: mappings/purpose-demand-governance-candidates.yaml
|
||||
source: artifact_title
|
||||
- concept: InfoTechCanon Access Control Model
|
||||
owner: model/access-control
|
||||
path: models/access-control/InfoTechCanonAccessControlModel.md
|
||||
@@ -44,6 +56,46 @@ concepts:
|
||||
owner: model/organization
|
||||
path: models/organization/InfoTechCanonOrganizationModel.md
|
||||
source: artifact_title
|
||||
- concept: InfoTechCanon Purpose And Demand Model Extension
|
||||
owner: model/purpose-demand-extension
|
||||
path: models/governance/InfoTechCanonPurposeDemandExtension.md
|
||||
source: artifact_title
|
||||
- concept: Purpose
|
||||
owner: model/purpose-demand-extension
|
||||
path: models/governance/InfoTechCanonPurposeDemandExtension.md
|
||||
source: frontmatter.owned_concepts
|
||||
- concept: ConsumerPurpose
|
||||
owner: model/purpose-demand-extension
|
||||
path: models/governance/InfoTechCanonPurposeDemandExtension.md
|
||||
source: frontmatter.owned_concepts
|
||||
- concept: UseCase
|
||||
owner: model/purpose-demand-extension
|
||||
path: models/governance/InfoTechCanonPurposeDemandExtension.md
|
||||
source: frontmatter.owned_concepts
|
||||
- concept: DemandSignal
|
||||
owner: model/purpose-demand-extension
|
||||
path: models/governance/InfoTechCanonPurposeDemandExtension.md
|
||||
source: frontmatter.owned_concepts
|
||||
- concept: ConsumerNeed
|
||||
owner: model/purpose-demand-extension
|
||||
path: models/governance/InfoTechCanonPurposeDemandExtension.md
|
||||
source: frontmatter.owned_concepts
|
||||
- concept: ProducerCapability
|
||||
owner: model/purpose-demand-extension
|
||||
path: models/governance/InfoTechCanonPurposeDemandExtension.md
|
||||
source: frontmatter.owned_concepts
|
||||
- concept: PurposeFit
|
||||
owner: model/purpose-demand-extension
|
||||
path: models/governance/InfoTechCanonPurposeDemandExtension.md
|
||||
source: frontmatter.owned_concepts
|
||||
- concept: ScopePressure
|
||||
owner: model/purpose-demand-extension
|
||||
path: models/governance/InfoTechCanonPurposeDemandExtension.md
|
||||
source: frontmatter.owned_concepts
|
||||
- concept: EvolutionRequest
|
||||
owner: model/purpose-demand-extension
|
||||
path: models/governance/InfoTechCanonPurposeDemandExtension.md
|
||||
source: frontmatter.owned_concepts
|
||||
- concept: InfoTechCanon Security Model
|
||||
owner: model/security
|
||||
path: models/security/InfoTechCanonSecurityModel.md
|
||||
@@ -52,6 +104,14 @@ concepts:
|
||||
owner: model/task
|
||||
path: models/task/InfoTechCanonTaskModel.md
|
||||
source: artifact_title
|
||||
- concept: Intent Scope Purposes Pattern
|
||||
owner: pattern/intent-scope-purposes
|
||||
path: patterns/intent-scope-purposes.md
|
||||
source: artifact_title
|
||||
- concept: IntentScopePurposePattern
|
||||
owner: pattern/intent-scope-purposes
|
||||
path: patterns/intent-scope-purposes.md
|
||||
source: frontmatter.owned_concepts
|
||||
- concept: Small SaaS System Profile
|
||||
owner: profile/small-saas
|
||||
path: profiles/small-saas/profile.yaml
|
||||
|
||||
@@ -1,6 +1,9 @@
|
||||
artifacts:
|
||||
- concept-catalog/purpose-demand
|
||||
- example/consumer-purpose-portfolio
|
||||
- kernel/itc-core
|
||||
- kernel/itc-kernel-map
|
||||
- mapping/purpose-demand-governance-candidates
|
||||
- model/access-control
|
||||
- model/data
|
||||
- model/devsecops
|
||||
@@ -10,8 +13,10 @@ artifacts:
|
||||
- model/network
|
||||
- model/observability
|
||||
- model/organization
|
||||
- model/purpose-demand-extension
|
||||
- model/security
|
||||
- model/task
|
||||
- pattern/intent-scope-purposes
|
||||
- profile/small-saas
|
||||
- small-saas/control/namespace-per-tenant
|
||||
- small-saas/dataset/subscription-ledger
|
||||
@@ -29,6 +34,20 @@ artifacts:
|
||||
- standard/caring
|
||||
- standard/tagging
|
||||
rows:
|
||||
- artifact: concept-catalog/purpose-demand
|
||||
targets:
|
||||
kernel/itc-core:
|
||||
- conforms_to
|
||||
model/governance:
|
||||
- uses
|
||||
- artifact: example/consumer-purpose-portfolio
|
||||
targets:
|
||||
model/purpose-demand-extension:
|
||||
- illustrates
|
||||
pattern/intent-scope-purposes:
|
||||
- illustrates
|
||||
profile/small-saas:
|
||||
- uses
|
||||
- artifact: kernel/itc-core
|
||||
targets: {}
|
||||
- artifact: kernel/itc-kernel-map
|
||||
@@ -61,6 +80,14 @@ rows:
|
||||
- maps
|
||||
standard/tagging:
|
||||
- maps
|
||||
- artifact: mapping/purpose-demand-governance-candidates
|
||||
targets:
|
||||
model/governance:
|
||||
- maps
|
||||
model/purpose-demand-extension:
|
||||
- maps
|
||||
model/task:
|
||||
- uses
|
||||
- artifact: model/access-control
|
||||
targets:
|
||||
kernel/itc-core:
|
||||
@@ -109,6 +136,18 @@ rows:
|
||||
targets:
|
||||
kernel/itc-core:
|
||||
- conforms_to
|
||||
- artifact: model/purpose-demand-extension
|
||||
targets:
|
||||
concept-catalog/purpose-demand:
|
||||
- introduces
|
||||
kernel/itc-core:
|
||||
- conforms_to
|
||||
model/governance:
|
||||
- extends
|
||||
model/information-space:
|
||||
- uses
|
||||
model/task:
|
||||
- uses
|
||||
- artifact: model/security
|
||||
targets:
|
||||
kernel/itc-core:
|
||||
@@ -119,6 +158,14 @@ rows:
|
||||
targets:
|
||||
kernel/itc-core:
|
||||
- conforms_to
|
||||
- artifact: pattern/intent-scope-purposes
|
||||
targets:
|
||||
model/governance:
|
||||
- uses
|
||||
model/purpose-demand-extension:
|
||||
- implements
|
||||
model/task:
|
||||
- uses
|
||||
- artifact: profile/small-saas
|
||||
targets:
|
||||
kernel/itc-core:
|
||||
|
||||
76
infospace/mappings/purpose-demand-governance-candidates.yaml
Normal file
76
infospace/mappings/purpose-demand-governance-candidates.yaml
Normal file
@@ -0,0 +1,76 @@
|
||||
id: mapping/purpose-demand-governance-candidates
|
||||
title: Purpose Demand Governance Extension Candidates
|
||||
source: model/purpose-demand-extension
|
||||
target: model/governance
|
||||
mapping_type: model-extension-candidates
|
||||
confidence: candidate
|
||||
concept_mappings:
|
||||
- concept: PurposeFit
|
||||
governance_surface: Review
|
||||
decision_need: Decide whether a consumer purpose fits current scope, needs mapping, creates a gap, conflicts, or is out of scope.
|
||||
evidence_required:
|
||||
- consumer purpose
|
||||
- matched canon artifacts
|
||||
- matched concepts
|
||||
- gap or conflict statement
|
||||
- concept: ScopePressure
|
||||
governance_surface: Decision
|
||||
decision_need: Decide whether demand pressure should extend scope, adapt a profile, create a mapping, add an interface field, defer, or reject.
|
||||
evidence_required:
|
||||
- purpose fit result
|
||||
- demand signal strength
|
||||
- producer intent alignment
|
||||
- expected consumer value
|
||||
- owner and review date
|
||||
- concept: ProducerCapability
|
||||
governance_surface: Policy
|
||||
decision_need: Decide whether a capability is promised, experimental, deprecated, unsupported, or intentionally excluded.
|
||||
evidence_required:
|
||||
- scope statement
|
||||
- capability owner
|
||||
- supporting artifacts
|
||||
- validation expectations
|
||||
- concept: EvolutionRequest
|
||||
governance_surface: ChangeControl
|
||||
decision_need: Decide whether pressure becomes task work, profile change, interface change, mapping, standard candidate, or explicit rejection.
|
||||
evidence_required:
|
||||
- requested change
|
||||
- affected artifacts
|
||||
- intended consumer outcome
|
||||
- decision authority
|
||||
- acceptance criteria
|
||||
decision_states:
|
||||
purpose_triage:
|
||||
- accepted_for_analysis
|
||||
- needs_clarification
|
||||
- out_of_scope
|
||||
- duplicate
|
||||
- parked
|
||||
- rejected
|
||||
purpose_fit:
|
||||
- fits_current_scope
|
||||
- fits_with_mapping
|
||||
- fits_with_profile
|
||||
- partial_fit
|
||||
- gap
|
||||
- conflict
|
||||
- out_of_scope
|
||||
- unknown
|
||||
scope_pressure:
|
||||
- extend_scope
|
||||
- adapt_profile
|
||||
- add_mapping
|
||||
- add_interface_field
|
||||
- add_standard_candidate
|
||||
- create_task
|
||||
- defer
|
||||
- reject
|
||||
task_bridge:
|
||||
accepted_pressure_creates: EvolutionRequest
|
||||
evolution_request_may_create:
|
||||
- Task
|
||||
- BacklogItem
|
||||
- ReviewTask
|
||||
- ChangeTask
|
||||
- MappingTask
|
||||
- ProfileChangeTask
|
||||
@@ -0,0 +1,218 @@
|
||||
---
|
||||
id: model/purpose-demand-extension
|
||||
title: InfoTechCanon Purpose And Demand Model Extension
|
||||
type: model-extension
|
||||
status: candidate
|
||||
version: "0.1"
|
||||
extends:
|
||||
- model/governance
|
||||
uses:
|
||||
- kernel/itc-core
|
||||
- model/information-space
|
||||
- model/task
|
||||
owned_concepts:
|
||||
- Purpose
|
||||
- ConsumerPurpose
|
||||
- UseCase
|
||||
- DemandSignal
|
||||
- ConsumerNeed
|
||||
- ProducerCapability
|
||||
- PurposeFit
|
||||
- ScopePressure
|
||||
- EvolutionRequest
|
||||
---
|
||||
|
||||
# InfoTechCanon Purpose And Demand Model Extension
|
||||
|
||||
## 1. Purpose
|
||||
|
||||
This candidate extension defines the PURPOSES concept family for repos and
|
||||
infospaces that need to learn what consumers use, need, want, and value from
|
||||
the producer.
|
||||
|
||||
The extension keeps three ideas distinct:
|
||||
|
||||
```text
|
||||
INTENT
|
||||
Why a producer or consumer exists and what it is trying to become.
|
||||
|
||||
SCOPE
|
||||
What the producer currently includes, excludes, owns, and promises.
|
||||
|
||||
PURPOSES
|
||||
What consumers use, need, want, or value from the producer, anchored in the
|
||||
consumers' own intent.
|
||||
```
|
||||
|
||||
PURPOSES are not a replacement for producer intent or scope. They are a
|
||||
consumer demand surface that can inform governance, profiles, interfaces, and
|
||||
roadmap work.
|
||||
|
||||
## 2. Position in InfoTechCanon
|
||||
|
||||
Purpose and demand currently cross several existing model boundaries:
|
||||
|
||||
```text
|
||||
Core
|
||||
Owns generic canon primitives such as Concept, Standard, Profile, Mapping,
|
||||
Conformance, and canonical ownership.
|
||||
|
||||
Governance
|
||||
Owns decisions, decision rights, evidence, acceptance, deferral, rejection,
|
||||
change control, and the evaluation of scope pressure.
|
||||
|
||||
Information Space
|
||||
Owns how consumer purposes, interface cards, briefs, mappings, evidence
|
||||
references, and retrieval assets are captured and reused.
|
||||
|
||||
Task
|
||||
Owns work items created from accepted evolution requests, including backlog,
|
||||
readiness, commitment, progress, and completion evidence.
|
||||
```
|
||||
|
||||
This extension is intentionally registered as a candidate model extension until
|
||||
the concepts are exercised by the first consumer evaluations.
|
||||
|
||||
## 3. Concept Proposal
|
||||
|
||||
| Concept | Proposed permanent owner | Definition | Notes |
|
||||
| --- | --- | --- | --- |
|
||||
| Purpose | Core | A reason or use-value orientation that explains why an actor, artifact, capability, or repo matters in a context. | Generic enough to become a core concept, but introduced here as a candidate. |
|
||||
| ConsumerPurpose | Information Space | A declared purpose from a consumer of a producer repo, artifact, profile, service, or canon surface. | Captured through interface cards, consumer briefs, mappings, and evidence references. |
|
||||
| UseCase | Information Space | A bounded scenario in which a consumer applies a producer capability to satisfy a purpose. | Should remain distinct from Task; tasks implement changes, use cases describe demand. |
|
||||
| DemandSignal | Information Space | A traceable observation that indicates consumer need, use, friction, request, value, or preference. | Examples include evaluation gaps, repeated questions, integration attempts, issues, and usage evidence. |
|
||||
| ConsumerNeed | Information Space | A need expressed or inferred from a consumer purpose and one or more demand signals. | Needs may be current, anticipated, or exploratory. |
|
||||
| ProducerCapability | Governance | A capability, profile, interface, artifact, or service the producer can intentionally provide or promise. | Governance decides whether it is promised, experimental, deprecated, or out of scope. |
|
||||
| PurposeFit | Governance | An evaluation of how well producer scope and capabilities satisfy a consumer purpose. | Requires rationale and evidence because it can drive scope change. |
|
||||
| ScopePressure | Governance | Pressure on producer scope caused by unmet, repeated, high-value, or strategically aligned consumer purposes. | Should not automatically expand scope; it triggers governance review. |
|
||||
| EvolutionRequest | Task | A proposed change to producer artifacts, interfaces, profiles, standards, or scope created in response to purpose pressure. | Becomes Task work only after triage and commitment. |
|
||||
|
||||
## 4. Core Relationships
|
||||
|
||||
```text
|
||||
ConsumerPurpose anchored_in ConsumerIntent
|
||||
ConsumerPurpose expresses UseCase
|
||||
UseCase creates DemandSignal
|
||||
DemandSignal indicates ConsumerNeed
|
||||
ProducerCapability satisfies ConsumerNeed
|
||||
PurposeFit evaluates ConsumerPurpose against ProducerCapability and Scope
|
||||
ScopePressure arises_from PurposeFit or DemandSignal
|
||||
EvolutionRequest responds_to ScopePressure
|
||||
Decision accepts / rejects / defers EvolutionRequest
|
||||
Task implements accepted EvolutionRequest
|
||||
Evidence supports PurposeFit and Decision
|
||||
```
|
||||
|
||||
## 5. Governance Extension Candidates
|
||||
|
||||
Governance should gain three reviewable decision surfaces.
|
||||
|
||||
### 5.1 Consumer Purpose Triage
|
||||
|
||||
Purpose triage decides whether a declared consumer purpose is:
|
||||
|
||||
```text
|
||||
accepted_for_analysis
|
||||
needs_clarification
|
||||
out_of_scope
|
||||
duplicate
|
||||
parked
|
||||
rejected
|
||||
```
|
||||
|
||||
Required evidence:
|
||||
|
||||
```text
|
||||
consumer identity
|
||||
consumer intent
|
||||
declared purpose
|
||||
use case
|
||||
scope touched
|
||||
source artifact or interface card
|
||||
date captured
|
||||
owner for follow-up
|
||||
```
|
||||
|
||||
### 5.2 Purpose Fit Review
|
||||
|
||||
Purpose fit review evaluates whether the canon currently satisfies the
|
||||
consumer purpose.
|
||||
|
||||
Fit states:
|
||||
|
||||
```text
|
||||
fits_current_scope
|
||||
fits_with_mapping
|
||||
fits_with_profile
|
||||
partial_fit
|
||||
gap
|
||||
conflict
|
||||
out_of_scope
|
||||
unknown
|
||||
```
|
||||
|
||||
Required evidence:
|
||||
|
||||
```text
|
||||
matched canon artifacts
|
||||
matched concepts
|
||||
gaps or ambiguity
|
||||
consumer impact
|
||||
producer impact
|
||||
recommended disposition
|
||||
```
|
||||
|
||||
### 5.3 Scope Pressure Decision
|
||||
|
||||
Scope pressure decision decides whether repeated or high-value purposes should
|
||||
change the producer.
|
||||
|
||||
Outcomes:
|
||||
|
||||
```text
|
||||
extend_scope
|
||||
adapt_profile
|
||||
add_mapping
|
||||
add_interface_field
|
||||
add_standard_candidate
|
||||
create_task
|
||||
defer
|
||||
reject
|
||||
```
|
||||
|
||||
Required evidence:
|
||||
|
||||
```text
|
||||
purpose fit result
|
||||
demand signal strength
|
||||
alignment with producer intent
|
||||
cost or complexity
|
||||
affected owner
|
||||
decision authority
|
||||
review date
|
||||
```
|
||||
|
||||
## 6. Boundaries
|
||||
|
||||
Purpose is not Policy. A purpose can inform policy, but policy remains a
|
||||
governance directive.
|
||||
|
||||
Purpose is not Scope. Purpose can pressure scope, but scope remains the
|
||||
producer's current boundary and promise.
|
||||
|
||||
Purpose is not Task. Purpose can create work, but task semantics begin when
|
||||
work is captured, triaged, committed, assigned, and executed.
|
||||
|
||||
Purpose is not Capability. A consumer may need something the producer does not
|
||||
yet provide, does not want to provide, or should explicitly reject.
|
||||
|
||||
## 7. First Consumer Evaluation Use
|
||||
|
||||
The first evaluations should use the purpose model to capture:
|
||||
|
||||
- what user-engine needs from the canon before user-management integration,
|
||||
- what railiance-fabric needs for clean entity and edge capture,
|
||||
- what repo-scoping needs from INTENT, SCOPE, PURPOSES, and interface cards.
|
||||
|
||||
Those evaluations should create consumer-side workplans in the consumer repos.
|
||||
This repo owns the canon-side model, examples, and acceptance vocabulary.
|
||||
118
infospace/patterns/intent-scope-purposes.md
Normal file
118
infospace/patterns/intent-scope-purposes.md
Normal file
@@ -0,0 +1,118 @@
|
||||
---
|
||||
id: pattern/intent-scope-purposes
|
||||
title: Intent Scope Purposes Pattern
|
||||
type: pattern
|
||||
status: candidate
|
||||
version: "0.1"
|
||||
uses:
|
||||
- model/purpose-demand-extension
|
||||
- model/governance
|
||||
- model/task
|
||||
owned_concepts:
|
||||
- IntentScopePurposePattern
|
||||
---
|
||||
|
||||
# Intent Scope Purposes Pattern
|
||||
|
||||
## Context
|
||||
|
||||
A producer repo or infospace has its own reason to exist and a current boundary
|
||||
of ownership. Consumers arrive with their own intents and use cases. Without a
|
||||
purpose layer, the producer either ignores consumer demand or silently expands
|
||||
scope through accidental commitments.
|
||||
|
||||
## Problem
|
||||
|
||||
Intent, scope, and purpose are often collapsed:
|
||||
|
||||
```text
|
||||
consumer asks for something
|
||||
producer treats it as a requirement
|
||||
scope expands without governance
|
||||
tasks appear without a decision trail
|
||||
```
|
||||
|
||||
This makes repos less clean over time and hides why interfaces or standards are
|
||||
evolving.
|
||||
|
||||
## Solution
|
||||
|
||||
Keep the three planes explicit.
|
||||
|
||||
```text
|
||||
ProducerIntent
|
||||
explains why the producer exists.
|
||||
|
||||
ProducerScope
|
||||
declares what the producer currently owns, excludes, and promises.
|
||||
|
||||
ConsumerPurpose
|
||||
declares what a consumer wants to use, need, or value from the producer,
|
||||
anchored in the consumer's own intent.
|
||||
```
|
||||
|
||||
Then connect them through reviewable fit and change decisions.
|
||||
|
||||
```text
|
||||
ConsumerIntent
|
||||
-> ConsumerPurpose
|
||||
-> UseCase
|
||||
-> DemandSignal
|
||||
-> PurposeFit
|
||||
-> ScopePressure
|
||||
-> EvolutionRequest
|
||||
-> GovernanceDecision
|
||||
-> Task / ProfileChange / InterfaceChange / Mapping
|
||||
```
|
||||
|
||||
## Pattern Rules
|
||||
|
||||
1. A ConsumerPurpose MUST identify the consumer and the consumer intent it is
|
||||
anchored in.
|
||||
2. A ConsumerPurpose SHOULD identify one or more use cases and demand signals.
|
||||
3. A PurposeFit MUST distinguish current fit, fit through mapping, partial fit,
|
||||
gap, conflict, and out-of-scope demand.
|
||||
4. ScopePressure MUST NOT change producer scope by itself.
|
||||
5. An EvolutionRequest SHOULD identify whether it proposes a task, mapping,
|
||||
profile change, interface change, standard candidate, or explicit rejection.
|
||||
6. Governance decisions SHOULD carry rationale and evidence.
|
||||
|
||||
## Resulting Moves
|
||||
|
||||
The pattern supports four clean moves:
|
||||
|
||||
```text
|
||||
Learn
|
||||
Capture consumer purpose and demand signals.
|
||||
|
||||
Evaluate
|
||||
Compare purpose with producer scope and capabilities.
|
||||
|
||||
Govern
|
||||
Accept, reject, defer, map, or convert pressure into an evolution request.
|
||||
|
||||
Implement
|
||||
Create task work, profile changes, interface changes, mappings, or standards
|
||||
only after the governance decision is explicit.
|
||||
```
|
||||
|
||||
## Practical Interface
|
||||
|
||||
Consumer-facing interface cards should carry:
|
||||
|
||||
```text
|
||||
consumer intent
|
||||
consumer scope
|
||||
consumer purposes
|
||||
use cases
|
||||
demand signals
|
||||
needed concepts
|
||||
producer capabilities used
|
||||
purpose fit result
|
||||
scope pressure
|
||||
requested extensions
|
||||
evidence references
|
||||
```
|
||||
|
||||
This gives the producer a memory of why consumers use it and what they ask it
|
||||
to become.
|
||||
@@ -1,30 +1,18 @@
|
||||
{
|
||||
"details": {
|
||||
"artifact_count": 29,
|
||||
"relationship_count": 113
|
||||
"artifact_count": 34,
|
||||
"relationship_count": 129
|
||||
},
|
||||
"errors": [],
|
||||
"metrics": {
|
||||
"coherence_components": 1.0,
|
||||
"consistency_cycles": 0.0,
|
||||
"coverage_ratio": 1.0,
|
||||
"granularity_entropy": 1.7490339557881076,
|
||||
"granularity_entropy": 2.4357138959313844,
|
||||
"redundancy_ratio": 0.0
|
||||
},
|
||||
"ok": true,
|
||||
"warnings": [
|
||||
{
|
||||
"code": "missing_optional_concepts_dir",
|
||||
"path": "infospace/concepts"
|
||||
},
|
||||
{
|
||||
"code": "empty_optional_collection",
|
||||
"path": "infospace/patterns"
|
||||
},
|
||||
{
|
||||
"code": "empty_optional_collection",
|
||||
"path": "infospace/mappings"
|
||||
},
|
||||
{
|
||||
"code": "empty_optional_collection",
|
||||
"path": "infospace/assimilation"
|
||||
|
||||
@@ -2,12 +2,15 @@
|
||||
|
||||
# By Concept
|
||||
|
||||
Concept count: **44**
|
||||
Concept count: **59**
|
||||
|
||||
| Concept | Owner | Source |
|
||||
| --- | --- | --- |
|
||||
| Purpose And Consumer Demand Concept Catalog | `concept-catalog/purpose-demand` | `artifact_title` |
|
||||
| Canon-Side Consumer Purpose Portfolio | `example/consumer-purpose-portfolio` | `artifact_title` |
|
||||
| InfoTechCanon Core | `kernel/itc-core` | `artifact_title` |
|
||||
| InfoTechCanon Kernel Map | `kernel/itc-kernel-map` | `artifact_title` |
|
||||
| Purpose Demand Governance Extension Candidates | `mapping/purpose-demand-governance-candidates` | `artifact_title` |
|
||||
| InfoTechCanon Access Control Model | `model/access-control` | `artifact_title` |
|
||||
| InfoTechCanon Data Model | `model/data` | `artifact_title` |
|
||||
| InfoTechCanon DevSecOps Model | `model/devsecops` | `artifact_title` |
|
||||
@@ -17,8 +20,20 @@ Concept count: **44**
|
||||
| InfoTechCanon Network Model | `model/network` | `artifact_title` |
|
||||
| InfoTechCanon Observability Model | `model/observability` | `artifact_title` |
|
||||
| InfoTechCanon Organization Model | `model/organization` | `artifact_title` |
|
||||
| InfoTechCanon Purpose And Demand Model Extension | `model/purpose-demand-extension` | `artifact_title` |
|
||||
| Purpose | `model/purpose-demand-extension` | `frontmatter.owned_concepts` |
|
||||
| ConsumerPurpose | `model/purpose-demand-extension` | `frontmatter.owned_concepts` |
|
||||
| UseCase | `model/purpose-demand-extension` | `frontmatter.owned_concepts` |
|
||||
| DemandSignal | `model/purpose-demand-extension` | `frontmatter.owned_concepts` |
|
||||
| ConsumerNeed | `model/purpose-demand-extension` | `frontmatter.owned_concepts` |
|
||||
| ProducerCapability | `model/purpose-demand-extension` | `frontmatter.owned_concepts` |
|
||||
| PurposeFit | `model/purpose-demand-extension` | `frontmatter.owned_concepts` |
|
||||
| ScopePressure | `model/purpose-demand-extension` | `frontmatter.owned_concepts` |
|
||||
| EvolutionRequest | `model/purpose-demand-extension` | `frontmatter.owned_concepts` |
|
||||
| InfoTechCanon Security Model | `model/security` | `artifact_title` |
|
||||
| InfoTechCanon Task Model | `model/task` | `artifact_title` |
|
||||
| Intent Scope Purposes Pattern | `pattern/intent-scope-purposes` | `artifact_title` |
|
||||
| IntentScopePurposePattern | `pattern/intent-scope-purposes` | `frontmatter.owned_concepts` |
|
||||
| Small SaaS System Profile | `profile/small-saas` | `artifact_title` |
|
||||
| Namespace Per Tenant Control | `small-saas/control/namespace-per-tenant` | `artifact_title` |
|
||||
| Subscription Ledger Dataset | `small-saas/dataset/subscription-ledger` | `artifact_title` |
|
||||
|
||||
@@ -2,8 +2,13 @@
|
||||
|
||||
# By Mapping Target
|
||||
|
||||
## `concept-catalog/purpose-demand`
|
||||
|
||||
- `model/purpose-demand-extension` via `introduces`
|
||||
|
||||
## `kernel/itc-core`
|
||||
|
||||
- `concept-catalog/purpose-demand` via `conforms_to`
|
||||
- `kernel/itc-kernel-map` via `maps`
|
||||
- `model/access-control` via `conforms_to`
|
||||
- `model/data` via `conforms_to`
|
||||
@@ -14,6 +19,7 @@
|
||||
- `model/network` via `conforms_to`
|
||||
- `model/observability` via `conforms_to`
|
||||
- `model/organization` via `conforms_to`
|
||||
- `model/purpose-demand-extension` via `conforms_to`
|
||||
- `model/security` via `conforms_to`
|
||||
- `model/task` via `conforms_to`
|
||||
- `profile/small-saas` via `conforms_to`
|
||||
@@ -44,9 +50,13 @@
|
||||
|
||||
## `model/governance`
|
||||
|
||||
- `concept-catalog/purpose-demand` via `uses`
|
||||
- `kernel/itc-kernel-map` via `maps`
|
||||
- `mapping/purpose-demand-governance-candidates` via `maps`
|
||||
- `model/access-control` via `uses`
|
||||
- `model/data` via `uses`
|
||||
- `model/purpose-demand-extension` via `extends`
|
||||
- `pattern/intent-scope-purposes` via `uses`
|
||||
- `profile/small-saas` via `requires`
|
||||
- `small-saas/policy/tenant-isolation` via `uses`
|
||||
- `standard/caring` via `imports`
|
||||
@@ -54,6 +64,7 @@
|
||||
## `model/information-space`
|
||||
|
||||
- `kernel/itc-kernel-map` via `maps`
|
||||
- `model/purpose-demand-extension` via `uses`
|
||||
|
||||
## `model/landscape`
|
||||
|
||||
@@ -87,6 +98,12 @@
|
||||
- `small-saas/user/ada-admin` via `uses`
|
||||
- `standard/caring` via `imports`
|
||||
|
||||
## `model/purpose-demand-extension`
|
||||
|
||||
- `example/consumer-purpose-portfolio` via `illustrates`
|
||||
- `mapping/purpose-demand-governance-candidates` via `maps`
|
||||
- `pattern/intent-scope-purposes` via `implements`
|
||||
|
||||
## `model/security`
|
||||
|
||||
- `kernel/itc-kernel-map` via `maps`
|
||||
@@ -100,14 +117,22 @@
|
||||
## `model/task`
|
||||
|
||||
- `kernel/itc-kernel-map` via `maps`
|
||||
- `mapping/purpose-demand-governance-candidates` via `uses`
|
||||
- `model/observability` via `uses`
|
||||
- `model/purpose-demand-extension` via `uses`
|
||||
- `pattern/intent-scope-purposes` via `uses`
|
||||
- `profile/small-saas` via `requires`
|
||||
- `small-saas/task/onboard-tenant` via `uses`
|
||||
- `standard/caring` via `imports`
|
||||
- `standard/tagging` via `imports`
|
||||
|
||||
## `pattern/intent-scope-purposes`
|
||||
|
||||
- `example/consumer-purpose-portfolio` via `illustrates`
|
||||
|
||||
## `profile/small-saas`
|
||||
|
||||
- `example/consumer-purpose-portfolio` via `uses`
|
||||
- `small-saas/control/namespace-per-tenant` via `instantiates`
|
||||
- `small-saas/dataset/subscription-ledger` via `instantiates`
|
||||
- `small-saas/deployment/production` via `instantiates`
|
||||
|
||||
@@ -2,34 +2,39 @@
|
||||
|
||||
# Import Matrix
|
||||
|
||||
| Artifact | `kernel/itc-core` | `kernel/itc-kernel-map` | `model/access-control` | `model/data` | `model/devsecops` | `model/governance` | `model/information-space` | `model/landscape` | `model/network` | `model/observability` | `model/organization` | `model/security` | `model/task` | `profile/small-saas` | `small-saas/control/namespace-per-tenant` | `small-saas/dataset/subscription-ledger` | `small-saas/deployment/production` | `small-saas/evidence/access-review-2026-05` | `small-saas/incident/cross-tenant-access-attempt` | `small-saas/policy/tenant-isolation` | `small-saas/service/billing-portal` | `small-saas/system/billing-system` | `small-saas/task/onboard-tenant` | `small-saas/team/platform` | `small-saas/tenant/acme` | `small-saas/tenant/globex` | `small-saas/user/ada-admin` | `standard/caring` | `standard/tagging` |
|
||||
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
|
||||
| `kernel/itc-core` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
|
||||
| `kernel/itc-kernel-map` | `maps` | | `maps` | `maps` | `maps` | `maps` | `maps` | `maps` | `maps` | `maps` | `maps` | `maps` | `maps` | | | | | | | | | | | | | | | `maps` | `maps` |
|
||||
| `model/access-control` | `conforms_to` | | | | | `uses` | | | | | `uses` | | | | | | | | | | | | | | | | | | |
|
||||
| `model/data` | `conforms_to` | | | | | `uses` | | | | | | | | | | | | | | | | | | | | | | | |
|
||||
| `model/devsecops` | `conforms_to` | | | | | | | | | | | `uses` | | | | | | | | | | | | | | | | | |
|
||||
| `model/governance` | `conforms_to` | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
|
||||
| `model/information-space` | `conforms_to` | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
|
||||
| `model/landscape` | `conforms_to` | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
|
||||
| `model/network` | `conforms_to` | | | | | | | | | | | `uses` | | | | | | | | | | | | | | | | | |
|
||||
| `model/observability` | `conforms_to` | | | | | | | | | | | | `uses` | | | | | | | | | | | | | | | | |
|
||||
| `model/organization` | `conforms_to` | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
|
||||
| `model/security` | `conforms_to` | | `uses` | | | | | | | | | | | | | | | | | | | | | | | | | | |
|
||||
| `model/task` | `conforms_to` | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
|
||||
| `profile/small-saas` | `conforms_to` | | `requires` | `requires` | `requires` | `requires` | | `requires` | `requires` | `requires` | `requires` | `requires` | `requires` | | | | | | | | | | | | | | | `requires` | `requires` |
|
||||
| `small-saas/control/namespace-per-tenant` | | | | | | | | | | | | `uses` | | `instantiates` | | | | `evidenced_by` | | | | | | | | | | `uses` | |
|
||||
| `small-saas/dataset/subscription-ledger` | | | | `uses` | | | | | | | | | | `instantiates` | | | | | | `governed_by` | `owned_by` | | | | `partitioned_for` | `partitioned_for` | | | |
|
||||
| `small-saas/deployment/production` | | | | | `uses` | | | | `uses` | | | | | `instantiates` | `implements` | | | | | | `deploys` | | | | `separates` | `separates` | | | |
|
||||
| `small-saas/evidence/access-review-2026-05` | | | | | | | | | | `uses` | | | | `instantiates` | | | | | | | | | | | | | | | |
|
||||
| `small-saas/incident/cross-tenant-access-attempt` | | | | | | | | | | | | `uses` | | `instantiates` | `constrained_by` | | | `evidenced_by` | | | | | | | | | | | |
|
||||
| `small-saas/policy/tenant-isolation` | | | | | | `uses` | | | | | | | | `instantiates` | `requires` | | | `evidenced_by` | | | | | | | | | | | |
|
||||
| `small-saas/service/billing-portal` | | | | | | | | `uses` | | | | | | `instantiates` | | | | | | | | `part_of` | | `owned_by` | | | | | |
|
||||
| `small-saas/system/billing-system` | | | | | | | | `uses` | | | | | | `instantiates` | | | | | | | | | | | `serves` | `serves` | | | |
|
||||
| `small-saas/task/onboard-tenant` | | | | | | | | | | | | | `uses` | `instantiates` | | | | | | `governed_by` | | | | `owned_by` | `changes` | | | | |
|
||||
| `small-saas/team/platform` | | | | | | | | | | | `uses` | | | `instantiates` | | | | | | | | | | | | | | | |
|
||||
| `small-saas/tenant/acme` | | | | | | | | | | | `uses` | | | `instantiates` | `isolated_by` | | | | | | | | | | | | `represented_by` | | |
|
||||
| `small-saas/tenant/globex` | | | | | | | | | | | `uses` | | | `instantiates` | `isolated_by` | | | | | | | | | | | | | | |
|
||||
| `small-saas/user/ada-admin` | | | `uses` | | | | | | | | `uses` | | | `instantiates` | | | | `access_evidenced_by` | | `has_access_under` | | | | `member_of` | | | | | |
|
||||
| `standard/caring` | `conforms_to` | | `imports` | `imports` | `imports` | `imports` | | | `imports` | `imports` | `imports` | `imports` | `imports` | | | | | | | | | | | | | | | | `imports` |
|
||||
| `standard/tagging` | `conforms_to` | | | | | | | | | | | | `imports` | | | | | | | | | | | | | | | | |
|
||||
| Artifact | `concept-catalog/purpose-demand` | `example/consumer-purpose-portfolio` | `kernel/itc-core` | `kernel/itc-kernel-map` | `mapping/purpose-demand-governance-candidates` | `model/access-control` | `model/data` | `model/devsecops` | `model/governance` | `model/information-space` | `model/landscape` | `model/network` | `model/observability` | `model/organization` | `model/purpose-demand-extension` | `model/security` | `model/task` | `pattern/intent-scope-purposes` | `profile/small-saas` | `small-saas/control/namespace-per-tenant` | `small-saas/dataset/subscription-ledger` | `small-saas/deployment/production` | `small-saas/evidence/access-review-2026-05` | `small-saas/incident/cross-tenant-access-attempt` | `small-saas/policy/tenant-isolation` | `small-saas/service/billing-portal` | `small-saas/system/billing-system` | `small-saas/task/onboard-tenant` | `small-saas/team/platform` | `small-saas/tenant/acme` | `small-saas/tenant/globex` | `small-saas/user/ada-admin` | `standard/caring` | `standard/tagging` |
|
||||
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
|
||||
| `concept-catalog/purpose-demand` | | | `conforms_to` | | | | | | `uses` | | | | | | | | | | | | | | | | | | | | | | | | | |
|
||||
| `example/consumer-purpose-portfolio` | | | | | | | | | | | | | | | `illustrates` | | | `illustrates` | `uses` | | | | | | | | | | | | | | | |
|
||||
| `kernel/itc-core` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
|
||||
| `kernel/itc-kernel-map` | | | `maps` | | | `maps` | `maps` | `maps` | `maps` | `maps` | `maps` | `maps` | `maps` | `maps` | | `maps` | `maps` | | | | | | | | | | | | | | | | `maps` | `maps` |
|
||||
| `mapping/purpose-demand-governance-candidates` | | | | | | | | | `maps` | | | | | | `maps` | | `uses` | | | | | | | | | | | | | | | | | |
|
||||
| `model/access-control` | | | `conforms_to` | | | | | | `uses` | | | | | `uses` | | | | | | | | | | | | | | | | | | | | |
|
||||
| `model/data` | | | `conforms_to` | | | | | | `uses` | | | | | | | | | | | | | | | | | | | | | | | | | |
|
||||
| `model/devsecops` | | | `conforms_to` | | | | | | | | | | | | | `uses` | | | | | | | | | | | | | | | | | | |
|
||||
| `model/governance` | | | `conforms_to` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
|
||||
| `model/information-space` | | | `conforms_to` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
|
||||
| `model/landscape` | | | `conforms_to` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
|
||||
| `model/network` | | | `conforms_to` | | | | | | | | | | | | | `uses` | | | | | | | | | | | | | | | | | | |
|
||||
| `model/observability` | | | `conforms_to` | | | | | | | | | | | | | | `uses` | | | | | | | | | | | | | | | | | |
|
||||
| `model/organization` | | | `conforms_to` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
|
||||
| `model/purpose-demand-extension` | `introduces` | | `conforms_to` | | | | | | `extends` | `uses` | | | | | | | `uses` | | | | | | | | | | | | | | | | | |
|
||||
| `model/security` | | | `conforms_to` | | | `uses` | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
|
||||
| `model/task` | | | `conforms_to` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
|
||||
| `pattern/intent-scope-purposes` | | | | | | | | | `uses` | | | | | | `implements` | | `uses` | | | | | | | | | | | | | | | | | |
|
||||
| `profile/small-saas` | | | `conforms_to` | | | `requires` | `requires` | `requires` | `requires` | | `requires` | `requires` | `requires` | `requires` | | `requires` | `requires` | | | | | | | | | | | | | | | | `requires` | `requires` |
|
||||
| `small-saas/control/namespace-per-tenant` | | | | | | | | | | | | | | | | `uses` | | | `instantiates` | | | | `evidenced_by` | | | | | | | | | | `uses` | |
|
||||
| `small-saas/dataset/subscription-ledger` | | | | | | | `uses` | | | | | | | | | | | | `instantiates` | | | | | | `governed_by` | `owned_by` | | | | `partitioned_for` | `partitioned_for` | | | |
|
||||
| `small-saas/deployment/production` | | | | | | | | `uses` | | | | `uses` | | | | | | | `instantiates` | `implements` | | | | | | `deploys` | | | | `separates` | `separates` | | | |
|
||||
| `small-saas/evidence/access-review-2026-05` | | | | | | | | | | | | | `uses` | | | | | | `instantiates` | | | | | | | | | | | | | | | |
|
||||
| `small-saas/incident/cross-tenant-access-attempt` | | | | | | | | | | | | | | | | `uses` | | | `instantiates` | `constrained_by` | | | `evidenced_by` | | | | | | | | | | | |
|
||||
| `small-saas/policy/tenant-isolation` | | | | | | | | | `uses` | | | | | | | | | | `instantiates` | `requires` | | | `evidenced_by` | | | | | | | | | | | |
|
||||
| `small-saas/service/billing-portal` | | | | | | | | | | | `uses` | | | | | | | | `instantiates` | | | | | | | | `part_of` | | `owned_by` | | | | | |
|
||||
| `small-saas/system/billing-system` | | | | | | | | | | | `uses` | | | | | | | | `instantiates` | | | | | | | | | | | `serves` | `serves` | | | |
|
||||
| `small-saas/task/onboard-tenant` | | | | | | | | | | | | | | | | | `uses` | | `instantiates` | | | | | | `governed_by` | | | | `owned_by` | `changes` | | | | |
|
||||
| `small-saas/team/platform` | | | | | | | | | | | | | | `uses` | | | | | `instantiates` | | | | | | | | | | | | | | | |
|
||||
| `small-saas/tenant/acme` | | | | | | | | | | | | | | `uses` | | | | | `instantiates` | `isolated_by` | | | | | | | | | | | | `represented_by` | | |
|
||||
| `small-saas/tenant/globex` | | | | | | | | | | | | | | `uses` | | | | | `instantiates` | `isolated_by` | | | | | | | | | | | | | | |
|
||||
| `small-saas/user/ada-admin` | | | | | | `uses` | | | | | | | | `uses` | | | | | `instantiates` | | | | `access_evidenced_by` | | `has_access_under` | | | | `member_of` | | | | | |
|
||||
| `standard/caring` | | | `conforms_to` | | | `imports` | `imports` | `imports` | `imports` | | | `imports` | `imports` | `imports` | | `imports` | `imports` | | | | | | | | | | | | | | | | | `imports` |
|
||||
| `standard/tagging` | | | `conforms_to` | | | | | | | | | | | | | | `imports` | | | | | | | | | | | | | | | | | |
|
||||
|
||||
@@ -3,12 +3,17 @@
|
||||
# Kernel Overview
|
||||
|
||||
- Infospace: `canon`
|
||||
- Artifacts: 29
|
||||
- Artifacts: 34
|
||||
|
||||
## Artifact Kinds
|
||||
|
||||
- `concept-catalog`: 1
|
||||
- `example`: 1
|
||||
- `kernel`: 2
|
||||
- `mapping`: 1
|
||||
- `model`: 11
|
||||
- `model-extension`: 1
|
||||
- `pattern`: 1
|
||||
- `profile`: 1
|
||||
- `profile-artifact`: 13
|
||||
- `standard`: 2
|
||||
@@ -17,17 +22,20 @@
|
||||
|
||||
- `access_evidenced_by`: 1
|
||||
- `changes`: 1
|
||||
- `conforms_to`: 14
|
||||
- `conforms_to`: 16
|
||||
- `constrained_by`: 1
|
||||
- `deploys`: 1
|
||||
- `evidenced_by`: 3
|
||||
- `extends`: 1
|
||||
- `governed_by`: 2
|
||||
- `has_access_under`: 1
|
||||
- `implements`: 1
|
||||
- `illustrates`: 2
|
||||
- `implements`: 2
|
||||
- `imports`: 11
|
||||
- `instantiates`: 13
|
||||
- `introduces`: 1
|
||||
- `isolated_by`: 2
|
||||
- `maps`: 14
|
||||
- `maps`: 16
|
||||
- `member_of`: 1
|
||||
- `owned_by`: 3
|
||||
- `part_of`: 1
|
||||
@@ -36,4 +44,4 @@
|
||||
- `requires`: 13
|
||||
- `separates`: 2
|
||||
- `serves`: 2
|
||||
- `uses`: 23
|
||||
- `uses`: 30
|
||||
|
||||
@@ -2,12 +2,15 @@
|
||||
|
||||
# Repository Tree
|
||||
|
||||
File count: **91**
|
||||
File count: **101**
|
||||
|
||||
- `README.md`
|
||||
- `agent/README.md`
|
||||
- `agent/briefs/concept-catalog-purpose-demand.md`
|
||||
- `agent/briefs/example-consumer-purpose-portfolio.md`
|
||||
- `agent/briefs/kernel-itc-core.md`
|
||||
- `agent/briefs/kernel-itc-kernel-map.md`
|
||||
- `agent/briefs/mapping-purpose-demand-governance-candidates.md`
|
||||
- `agent/briefs/model-access-control.md`
|
||||
- `agent/briefs/model-data.md`
|
||||
- `agent/briefs/model-devsecops.md`
|
||||
@@ -17,8 +20,10 @@ File count: **91**
|
||||
- `agent/briefs/model-network.md`
|
||||
- `agent/briefs/model-observability.md`
|
||||
- `agent/briefs/model-organization.md`
|
||||
- `agent/briefs/model-purpose-demand-extension.md`
|
||||
- `agent/briefs/model-security.md`
|
||||
- `agent/briefs/model-task.md`
|
||||
- `agent/briefs/pattern-intent-scope-purposes.md`
|
||||
- `agent/briefs/profile-small-saas.md`
|
||||
- `agent/briefs/standard-caring.md`
|
||||
- `agent/briefs/standard-tagging.md`
|
||||
@@ -33,7 +38,9 @@ File count: **91**
|
||||
- `agent/templates/consumer-brief.template.md`
|
||||
- `artifacts/index.yaml`
|
||||
- `assimilation/README.md`
|
||||
- `concepts/purpose-demand.yaml`
|
||||
- `examples/README.md`
|
||||
- `examples/consumer-purpose-portfolio.yaml`
|
||||
- `examples/small-saas/README.md`
|
||||
- `examples/small-saas/demo-commands.yaml`
|
||||
- `indexes/README.md`
|
||||
@@ -44,10 +51,12 @@ File count: **91**
|
||||
- `kernel/InfoTechCanonCore.md`
|
||||
- `kernel/InfoTechCanonKernelMap.md`
|
||||
- `mappings/README.md`
|
||||
- `mappings/purpose-demand-governance-candidates.yaml`
|
||||
- `models/access-control/InfoTechCanonAccessControlModel.md`
|
||||
- `models/data/InfoTechCanonDataModel.md`
|
||||
- `models/devsecops/InfoTechCanonDevSecOpsModel.md`
|
||||
- `models/governance/InfoTechCanonGovernanceModel.md`
|
||||
- `models/governance/InfoTechCanonPurposeDemandExtension.md`
|
||||
- `models/information-space/InfoTechCanonInformationSpaceModel.md`
|
||||
- `models/landscape/InfoTechCanonLandscapeModel.md`
|
||||
- `models/network/InfoTechCanonNetworkModel.md`
|
||||
@@ -56,6 +65,7 @@ File count: **91**
|
||||
- `models/security/InfoTechCanonSecurityModel.md`
|
||||
- `models/task/InfoTechCanonTaskModel.md`
|
||||
- `patterns/README.md`
|
||||
- `patterns/intent-scope-purposes.md`
|
||||
- `profiles/README.md`
|
||||
- `profiles/small-saas/artifacts/control.namespace-per-tenant.yaml`
|
||||
- `profiles/small-saas/artifacts/dataset.subscription-ledger.yaml`
|
||||
|
||||
@@ -9,7 +9,17 @@ import yaml
|
||||
|
||||
|
||||
GENERATED_NOTICE = "<!-- GENERATED by info_tech_canon; do not edit by hand. -->"
|
||||
RETRIEVAL_ARTIFACT_KINDS = {"kernel", "model", "standard", "profile"}
|
||||
RETRIEVAL_ARTIFACT_KINDS = {
|
||||
"concept-catalog",
|
||||
"example",
|
||||
"kernel",
|
||||
"mapping",
|
||||
"model",
|
||||
"model-extension",
|
||||
"pattern",
|
||||
"profile",
|
||||
"standard",
|
||||
}
|
||||
CONSUMER_BRIEF_IDS = ("user-engine", "railiance-fabric", "repo-scoping")
|
||||
COMMON_DISTINCTIONS = [
|
||||
{
|
||||
@@ -45,10 +55,11 @@ COMMON_DISTINCTIONS = [
|
||||
{
|
||||
"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.",
|
||||
"summary": "Intent captures why a producer or consumer exists, scope bounds producer ownership and promises, and purpose captures consumer demand anchored in consumer intent.",
|
||||
"source_artifacts": [
|
||||
"kernel/itc-core",
|
||||
"model/governance",
|
||||
"model/purpose-demand-extension",
|
||||
"pattern/intent-scope-purposes",
|
||||
"profile/small-saas",
|
||||
],
|
||||
},
|
||||
@@ -634,7 +645,14 @@ def interface_card_template() -> dict[str, Any]:
|
||||
"owner": "",
|
||||
"intent": "",
|
||||
"scope": "",
|
||||
"purposes": [],
|
||||
"purposes": [
|
||||
{
|
||||
"id": "",
|
||||
"use_case": "",
|
||||
"consumer_need": "",
|
||||
"demand_signals": [],
|
||||
}
|
||||
],
|
||||
},
|
||||
"canon_surfaces": {
|
||||
"implemented_profiles": [],
|
||||
@@ -649,6 +667,12 @@ def interface_card_template() -> dict[str, Any]:
|
||||
"evidence_required": [],
|
||||
"known_gaps": [],
|
||||
},
|
||||
"purpose_fit": {
|
||||
"state": "",
|
||||
"matched_capabilities": [],
|
||||
"scope_pressure": "",
|
||||
"recommended_disposition": "",
|
||||
},
|
||||
"consumer_needs": {
|
||||
"current": [],
|
||||
"requested_extensions": [],
|
||||
@@ -674,6 +698,8 @@ def _render_consumer_brief_template() -> str:
|
||||
"- Intent:",
|
||||
"- Scope:",
|
||||
"- Purposes:",
|
||||
"- Use cases:",
|
||||
"- Demand signals:",
|
||||
"",
|
||||
"## Canon Surfaces",
|
||||
"",
|
||||
@@ -687,6 +713,13 @@ def _render_consumer_brief_template() -> str:
|
||||
"- Commands:",
|
||||
"- Evidence:",
|
||||
"- Known gaps:",
|
||||
"",
|
||||
"## Purpose Fit",
|
||||
"",
|
||||
"- State:",
|
||||
"- Matched producer capabilities:",
|
||||
"- Scope pressure:",
|
||||
"- Requested evolution:",
|
||||
]
|
||||
return "\n".join(lines).rstrip() + "\n"
|
||||
|
||||
@@ -721,6 +754,9 @@ def _render_consumer_brief(consumer_id: str) -> str:
|
||||
"",
|
||||
"- `agent/retrieval-index.md`",
|
||||
"- `agent/templates/canon-interface-card.template.yaml`",
|
||||
"- `models/governance/InfoTechCanonPurposeDemandExtension.md`",
|
||||
"- `patterns/intent-scope-purposes.md`",
|
||||
"- `examples/consumer-purpose-portfolio.yaml`",
|
||||
"- `profiles/small-saas/profile.yaml`",
|
||||
"- `views/by-concept.md`",
|
||||
"",
|
||||
@@ -788,6 +824,16 @@ def _safe_id(value: str) -> str:
|
||||
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 == "concept-catalog":
|
||||
return f"Structured candidate concept catalog: {artifact.title}."
|
||||
if artifact.kind == "example":
|
||||
return f"Canon-side example artifact: {artifact.title}."
|
||||
if artifact.kind == "mapping":
|
||||
return f"Mapping artifact connecting canon surfaces: {artifact.title}."
|
||||
if artifact.kind == "model-extension":
|
||||
return f"Candidate extension to an existing canon model: {artifact.title}."
|
||||
if artifact.kind == "pattern":
|
||||
return f"Reusable canon pattern: {artifact.title}."
|
||||
if artifact.kind == "profile":
|
||||
return f"Profile that constrains canon artifacts for a practical implementation slice: {artifact.title}."
|
||||
if artifact.kind == "kernel":
|
||||
|
||||
@@ -52,6 +52,44 @@ REQUIRED_SCHEMAS = (
|
||||
"workplan.schema.yaml",
|
||||
)
|
||||
|
||||
RETRIEVAL_BRIEF_KINDS = {
|
||||
"concept-catalog",
|
||||
"example",
|
||||
"kernel",
|
||||
"mapping",
|
||||
"model",
|
||||
"model-extension",
|
||||
"pattern",
|
||||
"profile",
|
||||
"standard",
|
||||
}
|
||||
|
||||
PURPOSE_REQUIRED_ARTIFACT_IDS = {
|
||||
"concept-catalog/purpose-demand",
|
||||
"example/consumer-purpose-portfolio",
|
||||
"mapping/purpose-demand-governance-candidates",
|
||||
"model/purpose-demand-extension",
|
||||
"pattern/intent-scope-purposes",
|
||||
}
|
||||
|
||||
PURPOSE_REQUIRED_CONCEPTS = {
|
||||
"Purpose",
|
||||
"ConsumerPurpose",
|
||||
"UseCase",
|
||||
"DemandSignal",
|
||||
"ConsumerNeed",
|
||||
"ProducerCapability",
|
||||
"PurposeFit",
|
||||
"ScopePressure",
|
||||
"EvolutionRequest",
|
||||
}
|
||||
|
||||
PURPOSE_REQUIRED_CONSUMERS = {
|
||||
"user-engine",
|
||||
"railiance-fabric",
|
||||
"repo-scoping",
|
||||
}
|
||||
|
||||
|
||||
def structural_checks(context: Any) -> dict[str, list[dict[str, Any]]]:
|
||||
errors: list[dict[str, Any]] = []
|
||||
@@ -63,6 +101,7 @@ def structural_checks(context: Any) -> dict[str, list[dict[str, Any]]]:
|
||||
_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_purpose_demand_assets(context.infospace_root, context.infospace.artifacts, errors)
|
||||
_check_optional_assets(context.infospace_root, warnings)
|
||||
|
||||
return {"errors": errors, "warnings": warnings}
|
||||
@@ -370,7 +409,7 @@ def _check_agent_assets(
|
||||
required_brief_artifacts = [
|
||||
artifact
|
||||
for artifact in artifacts
|
||||
if artifact.kind in {"kernel", "model", "standard", "profile"}
|
||||
if artifact.kind in RETRIEVAL_BRIEF_KINDS
|
||||
]
|
||||
for artifact in required_brief_artifacts:
|
||||
relative = Path("agent") / "briefs" / f"{_safe_id(artifact.id)}.md"
|
||||
@@ -406,6 +445,83 @@ def _check_agent_assets(
|
||||
)
|
||||
|
||||
|
||||
def _check_purpose_demand_assets(
|
||||
infospace_root: Path,
|
||||
artifacts: list[Any],
|
||||
errors: list[dict[str, Any]],
|
||||
) -> None:
|
||||
artifact_ids = {artifact.id for artifact in artifacts}
|
||||
for artifact_id in sorted(PURPOSE_REQUIRED_ARTIFACT_IDS - artifact_ids):
|
||||
errors.append(
|
||||
{
|
||||
"code": "missing_purpose_demand_artifact",
|
||||
"artifact_id": artifact_id,
|
||||
}
|
||||
)
|
||||
|
||||
extension_path = (
|
||||
infospace_root
|
||||
/ "models"
|
||||
/ "governance"
|
||||
/ "InfoTechCanonPurposeDemandExtension.md"
|
||||
)
|
||||
frontmatter = _read_markdown_frontmatter(extension_path, errors)
|
||||
owned_concepts = set(frontmatter.get("owned_concepts") or [])
|
||||
for concept in sorted(PURPOSE_REQUIRED_CONCEPTS - owned_concepts):
|
||||
errors.append(
|
||||
{
|
||||
"code": "missing_purpose_demand_owned_concept",
|
||||
"concept": concept,
|
||||
"path": str(extension_path),
|
||||
}
|
||||
)
|
||||
|
||||
concept_catalog = _read_yaml(infospace_root / "concepts" / "purpose-demand.yaml", errors)
|
||||
if isinstance(concept_catalog, dict):
|
||||
concepts = concept_catalog.get("concepts") or []
|
||||
catalog_titles = {
|
||||
str(concept.get("title"))
|
||||
for concept in concepts
|
||||
if isinstance(concept, dict) and concept.get("title")
|
||||
}
|
||||
for concept in sorted(PURPOSE_REQUIRED_CONCEPTS - catalog_titles):
|
||||
errors.append(
|
||||
{
|
||||
"code": "missing_purpose_demand_catalog_concept",
|
||||
"concept": concept,
|
||||
"path": "infospace/concepts/purpose-demand.yaml",
|
||||
}
|
||||
)
|
||||
|
||||
examples = _read_yaml(infospace_root / "examples" / "consumer-purpose-portfolio.yaml", errors)
|
||||
if isinstance(examples, dict):
|
||||
consumers = examples.get("consumers") or []
|
||||
consumer_ids = {
|
||||
str(consumer.get("id"))
|
||||
for consumer in consumers
|
||||
if isinstance(consumer, dict) and consumer.get("id")
|
||||
}
|
||||
for consumer_id in sorted(PURPOSE_REQUIRED_CONSUMERS - consumer_ids):
|
||||
errors.append(
|
||||
{
|
||||
"code": "missing_consumer_purpose_example",
|
||||
"consumer": consumer_id,
|
||||
"path": "infospace/examples/consumer-purpose-portfolio.yaml",
|
||||
}
|
||||
)
|
||||
for consumer in consumers:
|
||||
if not isinstance(consumer, dict):
|
||||
continue
|
||||
if not consumer.get("purposes"):
|
||||
errors.append(
|
||||
{
|
||||
"code": "consumer_purpose_example_without_purposes",
|
||||
"consumer": consumer.get("id"),
|
||||
"path": "infospace/examples/consumer-purpose-portfolio.yaml",
|
||||
}
|
||||
)
|
||||
|
||||
|
||||
def _artifact_paths_by_path(
|
||||
infospace_root: Path,
|
||||
errors: list[dict[str, Any]],
|
||||
|
||||
@@ -11,7 +11,7 @@ def test_cli_inspect_emits_json(capsys) -> None:
|
||||
assert exit_code == 0
|
||||
payload = json.loads(capsys.readouterr().out)
|
||||
assert payload["ok"] is True
|
||||
assert payload["infospace"]["artifact_count"] == 29
|
||||
assert payload["infospace"]["artifact_count"] == 34
|
||||
|
||||
|
||||
def test_cli_missing_profile_uses_structured_error(capsys) -> None:
|
||||
|
||||
@@ -19,10 +19,15 @@ def test_inspect_canon_counts_artifact_kinds() -> None:
|
||||
|
||||
assert payload["ok"] is True
|
||||
assert payload["infospace"]["slug"] == "canon"
|
||||
assert payload["infospace"]["artifact_count"] == 29
|
||||
assert payload["infospace"]["artifact_count"] == 34
|
||||
assert payload["infospace"]["kinds"] == {
|
||||
"concept-catalog": 1,
|
||||
"example": 1,
|
||||
"kernel": 2,
|
||||
"mapping": 1,
|
||||
"model": 11,
|
||||
"model-extension": 1,
|
||||
"pattern": 1,
|
||||
"profile": 1,
|
||||
"profile-artifact": 13,
|
||||
"standard": 2,
|
||||
@@ -40,14 +45,14 @@ def test_validate_canon_passes_scaffold() -> None:
|
||||
assert payload["ok"] is True
|
||||
assert payload["errors"] == []
|
||||
assert "warnings" in payload
|
||||
assert payload["details"]["artifact_count"] == 29
|
||||
assert payload["details"]["artifact_count"] == 34
|
||||
|
||||
|
||||
def test_graph_exports_relationship_summary() -> None:
|
||||
payload = artifact_graph()
|
||||
|
||||
assert payload["ok"] is True
|
||||
assert payload["graph"]["node_count"] == 29
|
||||
assert payload["graph"]["node_count"] == 34
|
||||
assert payload["graph"]["edge_count"] > 15
|
||||
|
||||
|
||||
@@ -87,6 +92,10 @@ def test_generators_write_expected_assets(tmp_path) -> None:
|
||||
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" / "briefs" / "model-purpose-demand-extension.md"
|
||||
).is_file()
|
||||
assert (root / "agent" / "briefs" / "pattern-intent-scope-purposes.md").is_file()
|
||||
assert (
|
||||
root / "agent" / "templates" / "canon-interface-card.template.yaml"
|
||||
).is_file()
|
||||
|
||||
@@ -4,7 +4,7 @@ type: workplan
|
||||
title: "Purpose And Demand Model Extension"
|
||||
domain: canon
|
||||
repo: info-tech-canon
|
||||
status: proposed
|
||||
status: finished
|
||||
priority: high
|
||||
created: "2026-05-23"
|
||||
updated: "2026-05-23"
|
||||
@@ -47,7 +47,7 @@ PURPOSES
|
||||
|
||||
```task
|
||||
id: ITC-WP-0006-T01
|
||||
status: todo
|
||||
status: done
|
||||
priority: high
|
||||
state_hub_task_id: "654ce87f-2967-4998-8528-3ec6db31ff1c"
|
||||
```
|
||||
@@ -68,7 +68,7 @@ state_hub_task_id: "654ce87f-2967-4998-8528-3ec6db31ff1c"
|
||||
|
||||
```task
|
||||
id: ITC-WP-0006-T02
|
||||
status: todo
|
||||
status: done
|
||||
priority: high
|
||||
state_hub_task_id: "9fb752da-3daa-4f7b-96d4-3887673e68c2"
|
||||
```
|
||||
@@ -82,7 +82,7 @@ state_hub_task_id: "9fb752da-3daa-4f7b-96d4-3887673e68c2"
|
||||
|
||||
```task
|
||||
id: ITC-WP-0006-T03
|
||||
status: todo
|
||||
status: done
|
||||
priority: high
|
||||
state_hub_task_id: "f2ec2951-fe90-48c6-acf2-35e0b7183513"
|
||||
```
|
||||
@@ -96,7 +96,7 @@ state_hub_task_id: "f2ec2951-fe90-48c6-acf2-35e0b7183513"
|
||||
|
||||
```task
|
||||
id: ITC-WP-0006-T04
|
||||
status: todo
|
||||
status: done
|
||||
priority: medium
|
||||
state_hub_task_id: "5cfd80ee-3b04-4389-862b-d7913e953076"
|
||||
```
|
||||
@@ -110,3 +110,14 @@ state_hub_task_id: "5cfd80ee-3b04-4389-862b-d7913e953076"
|
||||
- PURPOSES is defined enough to use in the first consumer evaluations.
|
||||
- The relation between INTENT, SCOPE, and PURPOSES is explicit.
|
||||
- Governance model extension candidates are documented for review.
|
||||
|
||||
## Implementation Notes
|
||||
|
||||
- Added a candidate Purpose and Demand model extension under Governance.
|
||||
- Added a structured concept catalog for Purpose, ConsumerPurpose, UseCase,
|
||||
DemandSignal, ConsumerNeed, ProducerCapability, PurposeFit, ScopePressure,
|
||||
and EvolutionRequest.
|
||||
- Added the INTENT/SCOPE/PURPOSES pattern and governance extension mapping.
|
||||
- Added canon-side examples for user-engine, railiance-fabric, and repo-scoping.
|
||||
- Extended validation and retrieval generation so the new PURPOSES assets are
|
||||
indexed, briefed, and checked.
|
||||
|
||||
@@ -83,7 +83,7 @@ workplans:
|
||||
|
||||
- id: ITC-WP-0006
|
||||
title: Purpose And Demand Model Extension
|
||||
status: proposed
|
||||
status: finished
|
||||
priority: high
|
||||
path: workplans/ITC-WP-0006-purpose-and-demand-model.md
|
||||
depends_on:
|
||||
|
||||
Reference in New Issue
Block a user