diff --git a/README.md b/README.md index f632e88..489743f 100644 --- a/README.md +++ b/README.md @@ -19,6 +19,8 @@ PYTHONPATH=src python3 -m info_tech_canon inspect PYTHONPATH=src python3 -m info_tech_canon artifacts PYTHONPATH=src python3 -m info_tech_canon models PYTHONPATH=src python3 -m info_tech_canon standards +PYTHONPATH=src python3 -m info_tech_canon review-kit +PYTHONPATH=src python3 -m info_tech_canon alignment-template PYTHONPATH=src python3 -m info_tech_canon validate PYTHONPATH=src python3 -m info_tech_canon graph PYTHONPATH=src python3 -m info_tech_canon index @@ -40,6 +42,8 @@ After package installation, the same commands are available through the - `GET /artifacts?kind=model` - `GET /models` - `GET /standards` +- `GET /review-kit` +- `GET /alignment-template` - `GET /validate` - `GET /graph` - `GET /graph?format=mermaid` @@ -74,6 +78,16 @@ 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/` +- consumer alignment review kit in `agent/review-kit/` +- consumer alignment workplan template in `agent/templates/` + +## Alignment Reviews + +The consumer alignment review kit lives under `infospace/agent/review-kit/`. +It provides a repeatable workflow, model and standard selection guide, +scorecard, structured review schema, and repo-local workplan template so agents +can review consumer repositories against the canon without mixing consumer work +into this repo. ## Purpose And Demand diff --git a/infospace/agent/briefs/review-kit-alignment-model-selection-guide.md b/infospace/agent/briefs/review-kit-alignment-model-selection-guide.md new file mode 100644 index 0000000..5b74087 --- /dev/null +++ b/infospace/agent/briefs/review-kit-alignment-model-selection-guide.md @@ -0,0 +1,44 @@ +--- +id: agent-brief/review-kit-alignment-model-selection-guide +artifact_id: review-kit/alignment/model-selection-guide +source_path: agent/review-kit/model-selection-guide.yaml +source_kind: model-selection-guide +generated: true +--- + + + +# Agent Brief: Canon Model And Standard Selection Guide + +- Artifact ID: `review-kit/alignment/model-selection-guide` +- Kind: `model-selection-guide` +- Canonical path: `agent/review-kit/model-selection-guide.yaml` +- Full source: `agent/review-kit/model-selection-guide.yaml` +- Summary: Guide for choosing canon models, standards, profiles, and benchmarks: Canon Model And Standard Selection Guide. + +## Retrieval Hints + +Imports and anchors: +- `benchmark/caring/kubernetes-rbac` +- `model/access-control` +- `model/data` +- `model/devsecops` +- `model/governance` +- `model/landscape` +- `model/network` +- `model/observability` +- `model/organization` +- `model/purpose-demand-extension` +- `model/security` +- `model/task` +- `profile/small-saas` +- `standard/caring` +- `standard/tagging` + +## Owned Concepts + +- `Canon Model And Standard Selection Guide` + +## Related Distinctions + +No common distinction is anchored directly on this artifact. diff --git a/infospace/agent/briefs/review-kit-alignment-schema.md b/infospace/agent/briefs/review-kit-alignment-schema.md new file mode 100644 index 0000000..dee34f2 --- /dev/null +++ b/infospace/agent/briefs/review-kit-alignment-schema.md @@ -0,0 +1,31 @@ +--- +id: agent-brief/review-kit-alignment-schema +artifact_id: review-kit/alignment/schema +source_path: schemas/alignment-review.schema.yaml +source_kind: alignment-review-schema +generated: true +--- + + + +# Agent Brief: Consumer Alignment Review Schema + +- Artifact ID: `review-kit/alignment/schema` +- Kind: `alignment-review-schema` +- Canonical path: `schemas/alignment-review.schema.yaml` +- Full source: `schemas/alignment-review.schema.yaml` +- Summary: Schema for structured consumer repository alignment reviews: Consumer Alignment Review Schema. + +## Retrieval Hints + +Imports and anchors: +- `model/governance` +- `model/task` + +## Owned Concepts + +- `Consumer Alignment Review Schema` + +## Related Distinctions + +No common distinction is anchored directly on this artifact. diff --git a/infospace/agent/briefs/review-kit-alignment-scorecard.md b/infospace/agent/briefs/review-kit-alignment-scorecard.md new file mode 100644 index 0000000..67ee863 --- /dev/null +++ b/infospace/agent/briefs/review-kit-alignment-scorecard.md @@ -0,0 +1,31 @@ +--- +id: agent-brief/review-kit-alignment-scorecard +artifact_id: review-kit/alignment/scorecard +source_path: agent/review-kit/scorecard.yaml +source_kind: alignment-scorecard +generated: true +--- + + + +# Agent Brief: Canon Consumer Alignment Scorecard + +- Artifact ID: `review-kit/alignment/scorecard` +- Kind: `alignment-scorecard` +- Canonical path: `agent/review-kit/scorecard.yaml` +- Full source: `agent/review-kit/scorecard.yaml` +- Summary: Scorecard dimensions for canon alignment reviews: Canon Consumer Alignment Scorecard. + +## Retrieval Hints + +Imports and anchors: +- `model/governance` +- `model/task` + +## Owned Concepts + +- `Canon Consumer Alignment Scorecard` + +## Related Distinctions + +No common distinction is anchored directly on this artifact. diff --git a/infospace/agent/briefs/review-kit-alignment-workflow.md b/infospace/agent/briefs/review-kit-alignment-workflow.md new file mode 100644 index 0000000..acf5e1e --- /dev/null +++ b/infospace/agent/briefs/review-kit-alignment-workflow.md @@ -0,0 +1,32 @@ +--- +id: agent-brief/review-kit-alignment-workflow +artifact_id: review-kit/alignment/workflow +source_path: agent/review-kit/review-workflow.yaml +source_kind: alignment-review-workflow +generated: true +--- + + + +# Agent Brief: Canon Consumer Alignment Review Workflow + +- Artifact ID: `review-kit/alignment/workflow` +- Kind: `alignment-review-workflow` +- Canonical path: `agent/review-kit/review-workflow.yaml` +- Full source: `agent/review-kit/review-workflow.yaml` +- Summary: Repeatable workflow for canon alignment reviews: Canon Consumer Alignment Review Workflow. + +## Retrieval Hints + +Imports and anchors: +- `model/governance` +- `model/purpose-demand-extension` +- `model/task` + +## Owned Concepts + +- `Canon Consumer Alignment Review Workflow` + +## Related Distinctions + +No common distinction is anchored directly on this artifact. diff --git a/infospace/agent/briefs/review-kit-alignment-workplan-template.md b/infospace/agent/briefs/review-kit-alignment-workplan-template.md new file mode 100644 index 0000000..71972c8 --- /dev/null +++ b/infospace/agent/briefs/review-kit-alignment-workplan-template.md @@ -0,0 +1,31 @@ +--- +id: agent-brief/review-kit-alignment-workplan-template +artifact_id: review-kit/alignment/workplan-template +source_path: agent/templates/consumer-alignment-workplan.template.md +source_kind: consumer-workplan-template +generated: true +--- + + + +# Agent Brief: Consumer Alignment Workplan Template + +- Artifact ID: `review-kit/alignment/workplan-template` +- Kind: `consumer-workplan-template` +- Canonical path: `agent/templates/consumer-alignment-workplan.template.md` +- Full source: `agent/templates/consumer-alignment-workplan.template.md` +- Summary: Template for consumer repository alignment workplans: Consumer Alignment Workplan Template. + +## Retrieval Hints + +Imports and anchors: +- `model/purpose-demand-extension` +- `model/task` + +## Owned Concepts + +- `Consumer Alignment Workplan Template` + +## Related Distinctions + +No common distinction is anchored directly on this artifact. diff --git a/infospace/agent/briefs/review-kit-alignment.md b/infospace/agent/briefs/review-kit-alignment.md new file mode 100644 index 0000000..3ffd24b --- /dev/null +++ b/infospace/agent/briefs/review-kit-alignment.md @@ -0,0 +1,35 @@ +--- +id: agent-brief/review-kit-alignment +artifact_id: review-kit/alignment +source_path: agent/review-kit/review-kit.yaml +source_kind: alignment-review-kit +generated: true +--- + + + +# Agent Brief: Canon Consumer Alignment Review Kit + +- Artifact ID: `review-kit/alignment` +- Kind: `alignment-review-kit` +- Canonical path: `agent/review-kit/review-kit.yaml` +- Full source: `agent/review-kit/review-kit.yaml` +- Summary: Reusable kit for consumer repository alignment reviews: Canon Consumer Alignment Review Kit. + +## Retrieval Hints + +Imports and anchors: +- `benchmark/caring/kubernetes-rbac` +- `kernel/itc-core` +- `model/governance` +- `model/purpose-demand-extension` +- `model/task` +- `standard/caring` + +## Owned Concepts + +- `Canon Consumer Alignment Review Kit` + +## Related Distinctions + +No common distinction is anchored directly on this artifact. diff --git a/infospace/agent/global-agent-brief.md b/infospace/agent/global-agent-brief.md index 71ca439..eab815b 100644 --- a/infospace/agent/global-agent-brief.md +++ b/infospace/agent/global-agent-brief.md @@ -5,8 +5,8 @@ This brief summarizes the current canon service surface for agents. - Infospace slug: `canon` -- Artifact count: 54 -- Retrieval index items: 54 +- Artifact count: 60 +- Retrieval index items: 60 - Primary confidence command: `make validate` - Refresh generated indexes and views with: `make index` - Refresh agent briefs and interface templates with: `make agent-briefs` diff --git a/infospace/agent/retrieval-index.json b/infospace/agent/retrieval-index.json index b55b922..a54644e 100644 --- a/infospace/agent/retrieval-index.json +++ b/infospace/agent/retrieval-index.json @@ -43,7 +43,7 @@ } ], "infospace": "canon", - "item_count": 54, + "item_count": 60, "items": [ { "canonical_path": "standards/caring/benchmarks/kubernetes-rbac/benchmark.yaml", @@ -1444,6 +1444,272 @@ "title": "Small SaaS System Profile", "warnings": [] }, + { + "canonical_path": "agent/review-kit/review-kit.yaml", + "id": "review-kit/alignment", + "imports": [ + "benchmark/caring/kubernetes-rbac", + "kernel/itc-core", + "model/governance", + "model/purpose-demand-extension", + "model/task", + "standard/caring" + ], + "kind": "alignment-review-kit", + "owned_concepts": [ + "Canon Consumer Alignment Review Kit" + ], + "relationships": [ + { + "target": "kernel/itc-core", + "type": "conforms_to" + }, + { + "target": "model/purpose-demand-extension", + "type": "uses" + }, + { + "target": "model/governance", + "type": "uses" + }, + { + "target": "model/task", + "type": "uses" + }, + { + "target": "standard/caring", + "type": "uses" + }, + { + "target": "benchmark/caring/kubernetes-rbac", + "type": "uses" + } + ], + "source_path": "infospace/agent/review-kit/review-kit.yaml", + "summary": "Reusable kit for consumer repository alignment reviews: Canon Consumer Alignment Review Kit.", + "title": "Canon Consumer Alignment Review Kit", + "warnings": [] + }, + { + "canonical_path": "agent/review-kit/model-selection-guide.yaml", + "id": "review-kit/alignment/model-selection-guide", + "imports": [ + "benchmark/caring/kubernetes-rbac", + "model/access-control", + "model/data", + "model/devsecops", + "model/governance", + "model/landscape", + "model/network", + "model/observability", + "model/organization", + "model/purpose-demand-extension", + "model/security", + "model/task", + "profile/small-saas", + "standard/caring", + "standard/tagging" + ], + "kind": "model-selection-guide", + "owned_concepts": [ + "Canon Model And Standard Selection Guide" + ], + "relationships": [ + { + "target": "review-kit/alignment", + "type": "part_of" + }, + { + "target": "model/access-control", + "type": "uses" + }, + { + "target": "model/organization", + "type": "uses" + }, + { + "target": "model/governance", + "type": "uses" + }, + { + "target": "model/security", + "type": "uses" + }, + { + "target": "model/data", + "type": "uses" + }, + { + "target": "model/landscape", + "type": "uses" + }, + { + "target": "model/devsecops", + "type": "uses" + }, + { + "target": "model/network", + "type": "uses" + }, + { + "target": "model/observability", + "type": "uses" + }, + { + "target": "model/task", + "type": "uses" + }, + { + "target": "standard/tagging", + "type": "uses" + }, + { + "target": "standard/caring", + "type": "uses" + }, + { + "target": "model/purpose-demand-extension", + "type": "uses" + }, + { + "target": "profile/small-saas", + "type": "uses" + }, + { + "target": "benchmark/caring/kubernetes-rbac", + "type": "uses" + } + ], + "source_path": "infospace/agent/review-kit/model-selection-guide.yaml", + "summary": "Guide for choosing canon models, standards, profiles, and benchmarks: Canon Model And Standard Selection Guide.", + "title": "Canon Model And Standard Selection Guide", + "warnings": [] + }, + { + "canonical_path": "schemas/alignment-review.schema.yaml", + "id": "review-kit/alignment/schema", + "imports": [ + "model/governance", + "model/task" + ], + "kind": "alignment-review-schema", + "owned_concepts": [ + "Consumer Alignment Review Schema" + ], + "relationships": [ + { + "target": "review-kit/alignment", + "type": "part_of" + }, + { + "target": "model/governance", + "type": "uses" + }, + { + "target": "model/task", + "type": "uses" + } + ], + "source_path": "infospace/schemas/alignment-review.schema.yaml", + "summary": "Schema for structured consumer repository alignment reviews: Consumer Alignment Review Schema.", + "title": "Consumer Alignment Review Schema", + "warnings": [] + }, + { + "canonical_path": "agent/review-kit/scorecard.yaml", + "id": "review-kit/alignment/scorecard", + "imports": [ + "model/governance", + "model/task" + ], + "kind": "alignment-scorecard", + "owned_concepts": [ + "Canon Consumer Alignment Scorecard" + ], + "relationships": [ + { + "target": "review-kit/alignment", + "type": "part_of" + }, + { + "target": "model/governance", + "type": "uses" + }, + { + "target": "model/task", + "type": "uses" + } + ], + "source_path": "infospace/agent/review-kit/scorecard.yaml", + "summary": "Scorecard dimensions for canon alignment reviews: Canon Consumer Alignment Scorecard.", + "title": "Canon Consumer Alignment Scorecard", + "warnings": [] + }, + { + "canonical_path": "agent/review-kit/review-workflow.yaml", + "id": "review-kit/alignment/workflow", + "imports": [ + "model/governance", + "model/purpose-demand-extension", + "model/task" + ], + "kind": "alignment-review-workflow", + "owned_concepts": [ + "Canon Consumer Alignment Review Workflow" + ], + "relationships": [ + { + "target": "review-kit/alignment", + "type": "part_of" + }, + { + "target": "model/purpose-demand-extension", + "type": "uses" + }, + { + "target": "model/governance", + "type": "uses" + }, + { + "target": "model/task", + "type": "uses" + } + ], + "source_path": "infospace/agent/review-kit/review-workflow.yaml", + "summary": "Repeatable workflow for canon alignment reviews: Canon Consumer Alignment Review Workflow.", + "title": "Canon Consumer Alignment Review Workflow", + "warnings": [] + }, + { + "canonical_path": "agent/templates/consumer-alignment-workplan.template.md", + "id": "review-kit/alignment/workplan-template", + "imports": [ + "model/purpose-demand-extension", + "model/task" + ], + "kind": "consumer-workplan-template", + "owned_concepts": [ + "Consumer Alignment Workplan Template" + ], + "relationships": [ + { + "target": "review-kit/alignment", + "type": "part_of" + }, + { + "target": "model/task", + "type": "uses" + }, + { + "target": "model/purpose-demand-extension", + "type": "uses" + } + ], + "source_path": "infospace/agent/templates/consumer-alignment-workplan.template.md", + "summary": "Template for consumer repository alignment workplans: Consumer Alignment Workplan Template.", + "title": "Consumer Alignment Workplan Template", + "warnings": [] + }, { "canonical_path": "profiles/small-saas/artifacts/control.namespace-per-tenant.yaml", "id": "small-saas/control/namespace-per-tenant", diff --git a/infospace/agent/retrieval-index.md b/infospace/agent/retrieval-index.md index dcdd059..d6097d7 100644 --- a/infospace/agent/retrieval-index.md +++ b/infospace/agent/retrieval-index.md @@ -4,7 +4,7 @@ Schema: `info-tech-canon.retrieval-index.v1` Infospace: `canon` -Items: **54** +Items: **60** ## Common Distinctions @@ -405,6 +405,66 @@ Items: **54** - Imports and anchors: `kernel/itc-core`, `model/access-control`, `model/data`, `model/devsecops`, `model/governance`, `model/landscape`, `model/network`, `model/observability`, `model/organization`, `model/security`, `model/task`, `standard/caring`, `standard/tagging` - Owned concepts: `Small SaaS System Profile` +### Canon Consumer Alignment Review Kit + +- ID: `review-kit/alignment` +- Kind: `alignment-review-kit` +- Canonical path: `agent/review-kit/review-kit.yaml` +- Source path: `infospace/agent/review-kit/review-kit.yaml` +- Summary: Reusable kit for consumer repository alignment reviews: Canon Consumer Alignment Review Kit. +- Imports and anchors: `benchmark/caring/kubernetes-rbac`, `kernel/itc-core`, `model/governance`, `model/purpose-demand-extension`, `model/task`, `standard/caring` +- Owned concepts: `Canon Consumer Alignment Review Kit` + +### Canon Model And Standard Selection Guide + +- ID: `review-kit/alignment/model-selection-guide` +- Kind: `model-selection-guide` +- Canonical path: `agent/review-kit/model-selection-guide.yaml` +- Source path: `infospace/agent/review-kit/model-selection-guide.yaml` +- Summary: Guide for choosing canon models, standards, profiles, and benchmarks: Canon Model And Standard Selection Guide. +- Imports and anchors: `benchmark/caring/kubernetes-rbac`, `model/access-control`, `model/data`, `model/devsecops`, `model/governance`, `model/landscape`, `model/network`, `model/observability`, `model/organization`, `model/purpose-demand-extension`, `model/security`, `model/task`, `profile/small-saas`, `standard/caring`, `standard/tagging` +- Owned concepts: `Canon Model And Standard Selection Guide` + +### Consumer Alignment Review Schema + +- ID: `review-kit/alignment/schema` +- Kind: `alignment-review-schema` +- Canonical path: `schemas/alignment-review.schema.yaml` +- Source path: `infospace/schemas/alignment-review.schema.yaml` +- Summary: Schema for structured consumer repository alignment reviews: Consumer Alignment Review Schema. +- Imports and anchors: `model/governance`, `model/task` +- Owned concepts: `Consumer Alignment Review Schema` + +### Canon Consumer Alignment Scorecard + +- ID: `review-kit/alignment/scorecard` +- Kind: `alignment-scorecard` +- Canonical path: `agent/review-kit/scorecard.yaml` +- Source path: `infospace/agent/review-kit/scorecard.yaml` +- Summary: Scorecard dimensions for canon alignment reviews: Canon Consumer Alignment Scorecard. +- Imports and anchors: `model/governance`, `model/task` +- Owned concepts: `Canon Consumer Alignment Scorecard` + +### Canon Consumer Alignment Review Workflow + +- ID: `review-kit/alignment/workflow` +- Kind: `alignment-review-workflow` +- Canonical path: `agent/review-kit/review-workflow.yaml` +- Source path: `infospace/agent/review-kit/review-workflow.yaml` +- Summary: Repeatable workflow for canon alignment reviews: Canon Consumer Alignment Review Workflow. +- Imports and anchors: `model/governance`, `model/purpose-demand-extension`, `model/task` +- Owned concepts: `Canon Consumer Alignment Review Workflow` + +### Consumer Alignment Workplan Template + +- ID: `review-kit/alignment/workplan-template` +- Kind: `consumer-workplan-template` +- Canonical path: `agent/templates/consumer-alignment-workplan.template.md` +- Source path: `infospace/agent/templates/consumer-alignment-workplan.template.md` +- Summary: Template for consumer repository alignment workplans: Consumer Alignment Workplan Template. +- Imports and anchors: `model/purpose-demand-extension`, `model/task` +- Owned concepts: `Consumer Alignment Workplan Template` + ### Namespace Per Tenant Control - ID: `small-saas/control/namespace-per-tenant` diff --git a/infospace/agent/retrieval-index.yaml b/infospace/agent/retrieval-index.yaml index 3343fe3..6844aaa 100644 --- a/infospace/agent/retrieval-index.yaml +++ b/infospace/agent/retrieval-index.yaml @@ -1,6 +1,6 @@ schema: info-tech-canon.retrieval-index.v1 infospace: canon -item_count: 54 +item_count: 60 items: - id: benchmark/caring/kubernetes-rbac kind: benchmark-workspace @@ -909,6 +909,178 @@ items: - type: requires target: standard/caring warnings: [] +- id: review-kit/alignment + kind: alignment-review-kit + title: Canon Consumer Alignment Review Kit + canonical_path: agent/review-kit/review-kit.yaml + source_path: infospace/agent/review-kit/review-kit.yaml + summary: 'Reusable kit for consumer repository alignment reviews: Canon Consumer + Alignment Review Kit.' + owned_concepts: + - Canon Consumer Alignment Review Kit + imports: + - benchmark/caring/kubernetes-rbac + - kernel/itc-core + - model/governance + - model/purpose-demand-extension + - model/task + - standard/caring + relationships: + - type: conforms_to + target: kernel/itc-core + - type: uses + target: model/purpose-demand-extension + - type: uses + target: model/governance + - type: uses + target: model/task + - type: uses + target: standard/caring + - type: uses + target: benchmark/caring/kubernetes-rbac + warnings: [] +- id: review-kit/alignment/model-selection-guide + kind: model-selection-guide + title: Canon Model And Standard Selection Guide + canonical_path: agent/review-kit/model-selection-guide.yaml + source_path: infospace/agent/review-kit/model-selection-guide.yaml + summary: 'Guide for choosing canon models, standards, profiles, and benchmarks: + Canon Model And Standard Selection Guide.' + owned_concepts: + - Canon Model And Standard Selection Guide + imports: + - benchmark/caring/kubernetes-rbac + - model/access-control + - model/data + - model/devsecops + - model/governance + - model/landscape + - model/network + - model/observability + - model/organization + - model/purpose-demand-extension + - model/security + - model/task + - profile/small-saas + - standard/caring + - standard/tagging + relationships: + - type: part_of + target: review-kit/alignment + - type: uses + target: model/access-control + - type: uses + target: model/organization + - type: uses + target: model/governance + - type: uses + target: model/security + - type: uses + target: model/data + - type: uses + target: model/landscape + - type: uses + target: model/devsecops + - type: uses + target: model/network + - type: uses + target: model/observability + - type: uses + target: model/task + - type: uses + target: standard/tagging + - type: uses + target: standard/caring + - type: uses + target: model/purpose-demand-extension + - type: uses + target: profile/small-saas + - type: uses + target: benchmark/caring/kubernetes-rbac + warnings: [] +- id: review-kit/alignment/schema + kind: alignment-review-schema + title: Consumer Alignment Review Schema + canonical_path: schemas/alignment-review.schema.yaml + source_path: infospace/schemas/alignment-review.schema.yaml + summary: 'Schema for structured consumer repository alignment reviews: Consumer + Alignment Review Schema.' + owned_concepts: + - Consumer Alignment Review Schema + imports: + - model/governance + - model/task + relationships: + - type: part_of + target: review-kit/alignment + - type: uses + target: model/governance + - type: uses + target: model/task + warnings: [] +- id: review-kit/alignment/scorecard + kind: alignment-scorecard + title: Canon Consumer Alignment Scorecard + canonical_path: agent/review-kit/scorecard.yaml + source_path: infospace/agent/review-kit/scorecard.yaml + summary: 'Scorecard dimensions for canon alignment reviews: Canon Consumer Alignment + Scorecard.' + owned_concepts: + - Canon Consumer Alignment Scorecard + imports: + - model/governance + - model/task + relationships: + - type: part_of + target: review-kit/alignment + - type: uses + target: model/governance + - type: uses + target: model/task + warnings: [] +- id: review-kit/alignment/workflow + kind: alignment-review-workflow + title: Canon Consumer Alignment Review Workflow + canonical_path: agent/review-kit/review-workflow.yaml + source_path: infospace/agent/review-kit/review-workflow.yaml + summary: 'Repeatable workflow for canon alignment reviews: Canon Consumer Alignment + Review Workflow.' + owned_concepts: + - Canon Consumer Alignment Review Workflow + imports: + - model/governance + - model/purpose-demand-extension + - model/task + relationships: + - type: part_of + target: review-kit/alignment + - type: uses + target: model/purpose-demand-extension + - type: uses + target: model/governance + - type: uses + target: model/task + warnings: [] +- id: review-kit/alignment/workplan-template + kind: consumer-workplan-template + title: Consumer Alignment Workplan Template + canonical_path: agent/templates/consumer-alignment-workplan.template.md + source_path: infospace/agent/templates/consumer-alignment-workplan.template.md + summary: 'Template for consumer repository alignment workplans: Consumer Alignment + Workplan Template.' + owned_concepts: + - Consumer Alignment Workplan Template + imports: + - model/purpose-demand-extension + - model/task + relationships: + - type: part_of + target: review-kit/alignment + - type: uses + target: model/task + - type: uses + target: model/purpose-demand-extension + warnings: [] - id: small-saas/control/namespace-per-tenant kind: profile-artifact title: Namespace Per Tenant Control diff --git a/infospace/agent/review-kit/model-selection-guide.yaml b/infospace/agent/review-kit/model-selection-guide.yaml new file mode 100644 index 0000000..6b3482c --- /dev/null +++ b/infospace/agent/review-kit/model-selection-guide.yaml @@ -0,0 +1,108 @@ +id: review-kit/alignment/model-selection-guide +title: Canon Model And Standard Selection Guide +status: candidate +created_by_workplan: ITC-WP-0011 +selection_principle: Select the smallest canon surface set that explains the repository's producer scope, consumer purposes, current evidence, and intended alignment work. +surfaces: + - id: model/purpose-demand-extension + use_when: + - The review must distinguish producer intent, current scope, consumer purposes, demand signals, scope pressure, or evolution requests. + review_questions: + - What does the producer intend to provide? + - What purposes do consumers bring? + - Which gaps are future-scope requests rather than current defects? + - id: pattern/intent-scope-purposes + use_when: + - INTENT, SCOPE, and PURPOSES boundaries are unclear or mixed in repository documentation. + review_questions: + - Which statements are intent, which are current scope, and which are consumer demand? + - id: model/access-control + use_when: + - The repository defines users, principals, roles, permissions, policies, grants, authentication, authorization, or access reviews. + review_questions: + - Which subjects and principals exist? + - Which grants, entitlements, roles, or decisions are explicit? + - id: model/organization + use_when: + - The repository includes teams, tenants, organizations, responsibility, accountability, ownership, or actor relationships. + review_questions: + - Which organization roles are business responsibility rather than access roles? + - Which actors belong to which organization or tenant context? + - id: model/governance + use_when: + - The repository includes policy, controls, approvals, evidence, review decisions, exceptions, risks, or standards conformance. + review_questions: + - Which claims are approved, proposed, rejected, or under review? + - What evidence supports each governance claim? + - id: model/security + use_when: + - The repository manages threats, vulnerabilities, incidents, exposure, privilege escalation, secrets, or mitigations. + review_questions: + - Which mappings create security findings? + - Which exposures require controls or review? + - id: model/data + use_when: + - The repository handles datasets, information assets, classifications, retention, privacy, lineage, or data access. + review_questions: + - What data is governed or exposed? + - Which data classifications affect access or purpose fit? + - id: model/landscape + use_when: + - The repository describes systems, services, runtimes, platforms, dependencies, environments, or deployment topology. + review_questions: + - What systems and runtime resources does the repo own or affect? + - What is observed runtime state versus design-time declaration? + - id: model/devsecops + use_when: + - The repository contains build, deployment, CI/CD, GitOps, supply chain, release, or platform automation. + review_questions: + - Which automation changes runtime state? + - Which identities and artifacts flow through delivery pipelines? + - id: model/network + use_when: + - The repository includes reachability, ingress, egress, segmentation, service mesh, network policies, or exposure paths. + review_questions: + - What network boundary or exposure is claimed? + - Which claims need runtime or policy evidence? + - id: model/observability + use_when: + - The repository includes logs, metrics, traces, audit evidence, alerts, telemetry, or operational review. + review_questions: + - Which observations support evidence? + - Which signals prove or disprove access, scope, or runtime claims? + - id: model/task + use_when: + - Findings need to become remediation, review, refactor, migration, validation, or follow-up work. + review_questions: + - Which tasks belong in the consumer repo? + - Which tasks belong in the canon repo? + - id: standard/tagging + use_when: + - The repository uses labels, tags, taxonomy, classification, source roles, attributes, status, or mapping categories. + review_questions: + - Which tags are native labels versus canon classifications? + - Which source roles and evidence categories are needed? + - id: standard/caring + use_when: + - Access governance needs orthogonal analysis across subject, organization relation, role, scope, plane, capability, exposure, condition, lifecycle, and restriction. + review_questions: + - What is declared access versus effective access? + - Which native roles are actually capability profiles or assignments? + - id: profile/small-saas + use_when: + - The repository resembles a tenant-aware SaaS service or needs a small practical proof profile. + review_questions: + - Which small-saas artifacts are present or missing? + - Which tenant, policy, control, evidence, and task structures should be aligned? + - id: benchmark/caring/kubernetes-rbac + use_when: + - The repository includes Kubernetes RBAC, service accounts, namespaces, workload identity, secrets, or cluster access. + review_questions: + - Are namespaces being treated as tenant boundaries without evidence? + - Which workload permissions create derived or induced access? +selection_outputs: + - selected_surface_id + - reason_selected + - expected_review_questions + - required_evidence + - likely_workplan_type diff --git a/infospace/agent/review-kit/review-kit.yaml b/infospace/agent/review-kit/review-kit.yaml new file mode 100644 index 0000000..a8167da --- /dev/null +++ b/infospace/agent/review-kit/review-kit.yaml @@ -0,0 +1,35 @@ +id: review-kit/alignment +title: Canon Consumer Alignment Review Kit +status: candidate +created_by_workplan: ITC-WP-0011 +purpose: Provide a repeatable, agent-friendly process for mapping consumer repositories to InfoTechCanon and producing repo-local alignment workplans. +review_modes: + - quick-scan + - full-alignment-review + - focused-domain-review +entrypoints: + cli: + - info-tech-canon review-kit + - info-tech-canon alignment-template + api: + - GET /review-kit + - GET /alignment-template +components: + workflow: review-kit/alignment/workflow + scorecard: review-kit/alignment/scorecard + model_selection_guide: review-kit/alignment/model-selection-guide + schema: review-kit/alignment/schema + consumer_workplan_template: review-kit/alignment/workplan-template +required_outputs: + - repository_context + - selected_canon_surfaces + - mapping_findings + - scorecard + - recommended_workplans + - canon_feedback +operating_rules: + - Consumer repository changes and adoption workplans belong in the consumer repository. + - Canon pressure must be captured explicitly as proposed canon feedback, not as silent model drift. + - Evidence quality and confidence must be recorded separately from reviewer judgment. + - INTENT, SCOPE, and PURPOSES should be checked before proposing alignment work. + - Namespace, role, scope, tenant, evidence, and purpose terms must not be conflated across native systems and canon concepts. diff --git a/infospace/agent/review-kit/review-workflow.yaml b/infospace/agent/review-kit/review-workflow.yaml new file mode 100644 index 0000000..fc631e0 --- /dev/null +++ b/infospace/agent/review-kit/review-workflow.yaml @@ -0,0 +1,100 @@ +id: review-kit/alignment/workflow +title: Canon Consumer Alignment Review Workflow +status: candidate +created_by_workplan: ITC-WP-0011 +workflow_goal: Turn an unknown or partially understood repository into a source-linked canon alignment assessment and repo-local workplan proposal. +phases: + - id: intake + title: Repository Intake + purpose: Capture what the repository appears to provide before selecting canon surfaces. + inputs: + - README, INTENT, SCOPE, architecture docs, package manifests, tests, API specs, deployment files, and existing workplans. + questions: + - What producer intent does the repository declare? + - What current scope is evidenced by code, docs, tests, and deployment artifacts? + - Who are the likely consumers and what purposes do they bring? + - Which parts are owned by the repository and which are dependencies, adapters, generated assets, or examples? + outputs: + - repository_context + - initial_intent_scope_purpose_notes + - evidence_inventory + - id: surface-selection + title: Canon Surface Selection + purpose: Choose the smallest useful set of models, standards, profiles, benchmarks, and evaluation packs for the review. + inputs: + - repository_context + - model_selection_guide + - retrieval_index + questions: + - Which domain models are directly relevant? + - Which standards or benchmarks should stress-test the review? + - Which existing consumer packs already match the repository shape? + outputs: + - selected_canon_surfaces + - surface_selection_rationale + - id: mapping + title: Repository To Canon Mapping + purpose: Map observed repository concepts, entities, edges, APIs, policies, tasks, and artifacts to canon concepts. + inputs: + - selected_canon_surfaces + - evidence_inventory + questions: + - Which repository concepts map directly? + - Which concepts are partial fits or conflicts? + - Which mappings require stronger evidence? + - Which native terms must be preserved to avoid semantic flattening? + outputs: + - mapping_findings + - evidence_links + - unresolved_questions + - id: scoring + title: Fit Scorecard + purpose: Score alignment consistently enough to compare reviews and prioritize follow-up. + inputs: + - mapping_findings + - scorecard + questions: + - Where is fit strong enough to rely on? + - Which gaps block integration or reuse? + - Which conflicts risk wrong interpretation? + - Which findings are urgent, useful, or merely interesting? + outputs: + - scorecard_results + - prioritized_gaps + - risk_notes + - id: workplan-proposal + title: Consumer Workplan Proposal + purpose: Convert findings into repo-local workplans without moving consumer implementation work into the canon repo. + inputs: + - scorecard_results + - consumer_workplan_template + questions: + - What should the consumer repo change first? + - What validation should prove the alignment improved? + - Which tasks are refactors, documentation, schema changes, data migration, or governance review? + outputs: + - recommended_workplans + - proposed_tasks + - validation_plan + - id: canon-feedback + title: Canon Feedback And Pressure + purpose: Capture where the review suggests canon improvements without altering models or standards silently. + inputs: + - mapping_findings + - unresolved_questions + - scorecard_results + questions: + - Which gaps indicate the canon needs a new concept, profile, pattern, schema, or benchmark? + - Which findings should stay consumer-specific? + - Which proposed canon changes need a separate workplan? + outputs: + - canon_feedback + - proposed_canon_workplans + - open_questions +minimum_review_packet: + - repository_context + - selected_canon_surfaces + - mapping_findings + - scorecard_results + - recommended_workplans + - canon_feedback diff --git a/infospace/agent/review-kit/scorecard.yaml b/infospace/agent/review-kit/scorecard.yaml new file mode 100644 index 0000000..c43610d --- /dev/null +++ b/infospace/agent/review-kit/scorecard.yaml @@ -0,0 +1,87 @@ +id: review-kit/alignment/scorecard +title: Canon Consumer Alignment Scorecard +status: candidate +created_by_workplan: ITC-WP-0011 +rating_scale: + - id: "0" + label: absent + meaning: No useful evidence or mapping exists. + - id: "1" + label: weak + meaning: Early or ambiguous evidence exists but cannot guide implementation safely. + - id: "2" + label: partial + meaning: Useful alignment exists, with gaps or caveats that need work. + - id: "3" + label: strong + meaning: The repository maps cleanly enough for practical use. + - id: "4" + label: canonical + meaning: The repository can act as an exemplar, reusable pattern, or benchmark input. +dimensions: + - id: fit + title: Canon Fit + question: How well does the repository map to selected canon models, standards, profiles, and benchmarks? + evidence_required: + - direct mappings + - partial mappings + - unmapped native concepts + - id: gaps + title: Alignment Gaps + question: Which missing artifacts, schemas, tests, relationships, decisions, or concepts block reliable canon use? + evidence_required: + - missing surfaces + - missing validation + - missing governance or evidence + - id: conflicts + title: Semantic Conflicts + question: Which repository terms or structures conflict with canon meaning or risk flattening distinct concepts? + evidence_required: + - conflicting names + - overloaded scopes + - native terms with non-canonical meanings + - id: evidence-quality + title: Evidence Quality + question: How strong, current, and source-linked is the evidence behind each mapping or claim? + evidence_required: + - source files + - tests + - generated outputs + - review decisions + - id: implementation-priority + title: Implementation Priority + question: Which alignment work should be done first to increase practical utility? + evidence_required: + - consumer need + - blast radius + - implementation cost + - risk reduction + - id: canon-pressure + title: Canon Pressure + question: Which findings suggest the canon itself should learn, extend, or clarify something? + evidence_required: + - repeated gaps + - useful new concepts + - profile or schema pressure + - unresolved standard boundaries + - id: workplan-readiness + title: Consumer Workplan Readiness + question: Are the proposed repo-local tasks clear, scoped, testable, and anchored in evidence? + evidence_required: + - task list + - acceptance criteria + - validation path + - ownership boundary +decision_bands: + - id: ready-to-adopt + rule: Most dimensions are strong or canonical, and workplan readiness is strong. + action: Create consumer-repo adoption workplan and track residual gaps. + - id: ready-to-improve + rule: Fit is partial or strong, but gaps, conflicts, or evidence quality need work. + action: Create consumer-repo improvement workplan. + - id: needs-discovery + rule: Fit, evidence quality, or surface selection is weak. + action: Create discovery or assessment workplan before implementation. + - id: canon-feedback-needed + rule: Canon pressure is high or repeated across reviews. + action: Create or propose a canon workplan instead of changing standards inline. diff --git a/infospace/agent/templates/consumer-alignment-workplan.template.md b/infospace/agent/templates/consumer-alignment-workplan.template.md new file mode 100644 index 0000000..a49fae8 --- /dev/null +++ b/infospace/agent/templates/consumer-alignment-workplan.template.md @@ -0,0 +1,88 @@ +--- +id: "{{WORKPLAN_ID}}" +type: workplan +title: "{{TITLE}}" +domain: "{{DOMAIN}}" +repo: "{{CONSUMER_REPO}}" +status: proposed +priority: "{{PRIORITY}}" +created: "{{DATE}}" +updated: "{{DATE}}" +canon_alignment_review_id: "{{ALIGNMENT_REVIEW_ID}}" +--- + +# {{WORKPLAN_ID}} - {{TITLE}} + +## Goal + +Describe the alignment outcome this consumer repository should reach. + +## Current Fit + +- Canon surfaces reviewed: +- Existing direct fits: +- Existing partial fits: +- Evidence used: + +## Target Alignment + +- Target canon surfaces: +- Expected repository shape after this workplan: +- Interfaces, schemas, docs, or generated outputs to add or change: + +## Migration Steps + +1. Update repository artifacts that express intent, scope, purpose, or domain model. +2. Add or adjust structured mappings to canon concepts. +3. Add evidence links, tests, generated outputs, or review decisions. +4. Update consumer-facing docs and agent entrypoints. + +## Validation + +- Local validation commands: +- Canon alignment checks: +- Expected artifacts: +- Evidence that proves the work is done: + +## Open Questions + +- Questions for the consumer repo: +- Questions for InfoTechCanon: + +## Canon Feedback + +- Canon pressure: +- Proposed canon workplans: +- Findings that should remain consumer-specific: + +## Tasks + +### T01 - Establish alignment baseline + +```task +id: "{{WORKPLAN_ID}}-T01" +status: todo +priority: high +``` + +- Capture current repository evidence and direct canon mappings. + +### T02 - Implement target alignment + +```task +id: "{{WORKPLAN_ID}}-T02" +status: todo +priority: high +``` + +- Apply the agreed repo-local changes. + +### T03 - Validate and document + +```task +id: "{{WORKPLAN_ID}}-T03" +status: todo +priority: medium +``` + +- Run validation, update docs, and record canon feedback. diff --git a/infospace/artifacts/index.yaml b/infospace/artifacts/index.yaml index 89b0f08..5530d0e 100644 --- a/infospace/artifacts/index.yaml +++ b/infospace/artifacts/index.yaml @@ -334,6 +334,124 @@ artifacts: target: model/governance - type: proposes target: model/security + - id: review-kit/alignment + path: agent/review-kit/review-kit.yaml + kind: alignment-review-kit + title: Canon Consumer Alignment Review Kit + provenance: + source_path: infospace/agent/review-kit/review-kit.yaml + placement_workplan: ITC-WP-0011 + relationships: + - type: conforms_to + target: kernel/itc-core + - type: uses + target: model/purpose-demand-extension + - type: uses + target: model/governance + - type: uses + target: model/task + - type: uses + target: standard/caring + - type: uses + target: benchmark/caring/kubernetes-rbac + - id: review-kit/alignment/workflow + path: agent/review-kit/review-workflow.yaml + kind: alignment-review-workflow + title: Canon Consumer Alignment Review Workflow + provenance: + source_path: infospace/agent/review-kit/review-workflow.yaml + placement_workplan: ITC-WP-0011 + relationships: + - type: part_of + target: review-kit/alignment + - type: uses + target: model/purpose-demand-extension + - type: uses + target: model/governance + - type: uses + target: model/task + - id: review-kit/alignment/scorecard + path: agent/review-kit/scorecard.yaml + kind: alignment-scorecard + title: Canon Consumer Alignment Scorecard + provenance: + source_path: infospace/agent/review-kit/scorecard.yaml + placement_workplan: ITC-WP-0011 + relationships: + - type: part_of + target: review-kit/alignment + - type: uses + target: model/governance + - type: uses + target: model/task + - id: review-kit/alignment/model-selection-guide + path: agent/review-kit/model-selection-guide.yaml + kind: model-selection-guide + title: Canon Model And Standard Selection Guide + provenance: + source_path: infospace/agent/review-kit/model-selection-guide.yaml + placement_workplan: ITC-WP-0011 + relationships: + - type: part_of + target: review-kit/alignment + - type: uses + target: model/access-control + - type: uses + target: model/organization + - type: uses + target: model/governance + - type: uses + target: model/security + - type: uses + target: model/data + - type: uses + target: model/landscape + - type: uses + target: model/devsecops + - type: uses + target: model/network + - type: uses + target: model/observability + - type: uses + target: model/task + - type: uses + target: standard/tagging + - type: uses + target: standard/caring + - type: uses + target: model/purpose-demand-extension + - type: uses + target: profile/small-saas + - type: uses + target: benchmark/caring/kubernetes-rbac + - id: review-kit/alignment/schema + path: schemas/alignment-review.schema.yaml + kind: alignment-review-schema + title: Consumer Alignment Review Schema + provenance: + source_path: infospace/schemas/alignment-review.schema.yaml + placement_workplan: ITC-WP-0011 + relationships: + - type: part_of + target: review-kit/alignment + - type: uses + target: model/governance + - type: uses + target: model/task + - id: review-kit/alignment/workplan-template + path: agent/templates/consumer-alignment-workplan.template.md + kind: consumer-workplan-template + title: Consumer Alignment Workplan Template + provenance: + source_path: infospace/agent/templates/consumer-alignment-workplan.template.md + placement_workplan: ITC-WP-0011 + relationships: + - type: part_of + target: review-kit/alignment + - type: uses + target: model/task + - type: uses + target: model/purpose-demand-extension - id: profile/small-saas path: profiles/small-saas/profile.yaml kind: profile diff --git a/infospace/indexes/artifact-tree.yaml b/infospace/indexes/artifact-tree.yaml index 41cf6b7..3a9e967 100644 --- a/infospace/indexes/artifact-tree.yaml +++ b/infospace/indexes/artifact-tree.yaml @@ -1,5 +1,5 @@ root: infospace -file_count: 142 +file_count: 154 files: - path: README.md directory: . @@ -124,6 +124,24 @@ files: - path: agent/briefs/profile-small-saas.md directory: agent/briefs name: profile-small-saas.md +- path: agent/briefs/review-kit-alignment-model-selection-guide.md + directory: agent/briefs + name: review-kit-alignment-model-selection-guide.md +- path: agent/briefs/review-kit-alignment-schema.md + directory: agent/briefs + name: review-kit-alignment-schema.md +- path: agent/briefs/review-kit-alignment-scorecard.md + directory: agent/briefs + name: review-kit-alignment-scorecard.md +- path: agent/briefs/review-kit-alignment-workflow.md + directory: agent/briefs + name: review-kit-alignment-workflow.md +- path: agent/briefs/review-kit-alignment-workplan-template.md + directory: agent/briefs + name: review-kit-alignment-workplan-template.md +- path: agent/briefs/review-kit-alignment.md + directory: agent/briefs + name: review-kit-alignment.md - path: agent/briefs/standard-caring.md directory: agent/briefs name: standard-caring.md @@ -151,9 +169,24 @@ files: - path: agent/retrieval-index.yaml directory: agent name: retrieval-index.yaml +- path: agent/review-kit/model-selection-guide.yaml + directory: agent/review-kit + name: model-selection-guide.yaml +- path: agent/review-kit/review-kit.yaml + directory: agent/review-kit + name: review-kit.yaml +- path: agent/review-kit/review-workflow.yaml + directory: agent/review-kit + name: review-workflow.yaml +- path: agent/review-kit/scorecard.yaml + directory: agent/review-kit + name: scorecard.yaml - path: agent/templates/canon-interface-card.template.yaml directory: agent/templates name: canon-interface-card.template.yaml +- path: agent/templates/consumer-alignment-workplan.template.md + directory: agent/templates + name: consumer-alignment-workplan.template.md - path: agent/templates/consumer-brief.template.md directory: agent/templates name: consumer-brief.template.md @@ -349,6 +382,9 @@ files: - path: schemas/agent-brief.schema.yaml directory: schemas name: agent-brief.schema.yaml +- path: schemas/alignment-review.schema.yaml + directory: schemas + name: alignment-review.schema.yaml - path: schemas/assimilation.schema.yaml directory: schemas name: assimilation.schema.yaml diff --git a/infospace/indexes/concept-ownership.yaml b/infospace/indexes/concept-ownership.yaml index 367deb9..5151a9e 100644 --- a/infospace/indexes/concept-ownership.yaml +++ b/infospace/indexes/concept-ownership.yaml @@ -1,4 +1,4 @@ -concept_count: 79 +concept_count: 85 concepts: - concept: CARING Kubernetes RBAC Benchmark owner: benchmark/caring/kubernetes-rbac @@ -196,6 +196,30 @@ concepts: owner: profile/small-saas path: profiles/small-saas/profile.yaml source: artifact_title +- concept: Canon Consumer Alignment Review Kit + owner: review-kit/alignment + path: agent/review-kit/review-kit.yaml + source: artifact_title +- concept: Canon Model And Standard Selection Guide + owner: review-kit/alignment/model-selection-guide + path: agent/review-kit/model-selection-guide.yaml + source: artifact_title +- concept: Consumer Alignment Review Schema + owner: review-kit/alignment/schema + path: schemas/alignment-review.schema.yaml + source: artifact_title +- concept: Canon Consumer Alignment Scorecard + owner: review-kit/alignment/scorecard + path: agent/review-kit/scorecard.yaml + source: artifact_title +- concept: Canon Consumer Alignment Review Workflow + owner: review-kit/alignment/workflow + path: agent/review-kit/review-workflow.yaml + source: artifact_title +- concept: Consumer Alignment Workplan Template + owner: review-kit/alignment/workplan-template + path: agent/templates/consumer-alignment-workplan.template.md + source: artifact_title - concept: Namespace Per Tenant Control owner: small-saas/control/namespace-per-tenant path: profiles/small-saas/artifacts/control.namespace-per-tenant.yaml diff --git a/infospace/indexes/import-matrix.yaml b/infospace/indexes/import-matrix.yaml index e6c1086..b403d97 100644 --- a/infospace/indexes/import-matrix.yaml +++ b/infospace/indexes/import-matrix.yaml @@ -38,6 +38,12 @@ artifacts: - model/task - pattern/intent-scope-purposes - profile/small-saas +- review-kit/alignment +- review-kit/alignment/model-selection-guide +- review-kit/alignment/schema +- review-kit/alignment/scorecard +- review-kit/alignment/workflow +- review-kit/alignment/workplan-template - small-saas/control/namespace-per-tenant - small-saas/dataset/subscription-ledger - small-saas/deployment/production @@ -472,6 +478,88 @@ rows: - requires standard/tagging: - requires +- artifact: review-kit/alignment + targets: + benchmark/caring/kubernetes-rbac: + - uses + kernel/itc-core: + - conforms_to + model/governance: + - uses + model/purpose-demand-extension: + - uses + model/task: + - uses + standard/caring: + - uses +- artifact: review-kit/alignment/model-selection-guide + targets: + benchmark/caring/kubernetes-rbac: + - uses + model/access-control: + - uses + model/data: + - uses + model/devsecops: + - uses + model/governance: + - uses + model/landscape: + - uses + model/network: + - uses + model/observability: + - uses + model/organization: + - uses + model/purpose-demand-extension: + - uses + model/security: + - uses + model/task: + - uses + profile/small-saas: + - uses + review-kit/alignment: + - part_of + standard/caring: + - uses + standard/tagging: + - uses +- artifact: review-kit/alignment/schema + targets: + model/governance: + - uses + model/task: + - uses + review-kit/alignment: + - part_of +- artifact: review-kit/alignment/scorecard + targets: + model/governance: + - uses + model/task: + - uses + review-kit/alignment: + - part_of +- artifact: review-kit/alignment/workflow + targets: + model/governance: + - uses + model/purpose-demand-extension: + - uses + model/task: + - uses + review-kit/alignment: + - part_of +- artifact: review-kit/alignment/workplan-template + targets: + model/purpose-demand-extension: + - uses + model/task: + - uses + review-kit/alignment: + - part_of - artifact: small-saas/control/namespace-per-tenant targets: model/security: diff --git a/infospace/schemas/alignment-review.schema.yaml b/infospace/schemas/alignment-review.schema.yaml new file mode 100644 index 0000000..195c1f8 --- /dev/null +++ b/infospace/schemas/alignment-review.schema.yaml @@ -0,0 +1,217 @@ +$schema: https://json-schema.org/draft/2020-12/schema +$id: https://info-tech-canon.local/schemas/alignment-review.schema.yaml +title: InfoTechCanon Consumer Alignment Review +type: object +required: + - id + - title + - repository + - reviewer + - review_mode + - repository_context + - selected_canon_surfaces + - mapping_findings + - scorecard + - recommended_workplans + - canon_feedback +properties: + id: + type: string + title: + type: string + repository: + type: object + required: + - slug + - path_or_url + properties: + slug: + type: string + path_or_url: + type: string + branch: + type: string + commit: + type: string + additionalProperties: true + reviewer: + type: object + required: + - name + - reviewed_at + properties: + name: + type: string + reviewed_at: + type: string + method: + type: string + additionalProperties: true + review_mode: + enum: + - quick-scan + - full-alignment-review + - focused-domain-review + repository_context: + type: object + required: + - producer_intent + - current_scope + - consumer_purposes + - evidence_inventory + properties: + producer_intent: + type: array + items: + type: string + current_scope: + type: array + items: + type: string + consumer_purposes: + type: array + items: + type: string + evidence_inventory: + type: array + items: + type: object + required: + - source + - role + properties: + source: + type: string + role: + type: string + notes: + type: string + additionalProperties: true + additionalProperties: true + selected_canon_surfaces: + type: array + items: + type: object + required: + - id + - reason_selected + properties: + id: + type: string + reason_selected: + type: string + required_evidence: + type: array + items: + type: string + additionalProperties: true + mapping_findings: + type: array + items: + type: object + required: + - id + - source_concept + - canon_target + - fit + - evidence + properties: + id: + type: string + source_concept: + type: string + canon_target: + type: string + fit: + enum: + - direct + - partial + - conflict + - gap + - unknown + evidence: + type: array + items: + type: string + notes: + type: string + additionalProperties: true + scorecard: + type: array + items: + type: object + required: + - dimension + - rating + - rationale + properties: + dimension: + type: string + rating: + type: integer + minimum: 0 + maximum: 4 + rationale: + type: string + evidence: + type: array + items: + type: string + additionalProperties: true + recommended_workplans: + type: array + items: + type: object + required: + - id + - title + - target_repo + - priority + - rationale + properties: + id: + type: string + title: + type: string + target_repo: + type: string + priority: + enum: + - low + - medium + - high + - critical + rationale: + type: string + tasks: + type: array + items: + type: string + additionalProperties: true + canon_feedback: + type: array + items: + type: object + required: + - id + - feedback_type + - summary + properties: + id: + type: string + feedback_type: + enum: + - no-change + - open-question + - proposed-profile + - proposed-pattern + - proposed-schema + - proposed-model-change + - proposed-standard-change + - benchmark-pressure + summary: + type: string + proposed_owner: + type: string + additionalProperties: true +additionalProperties: true diff --git a/infospace/schemas/index.yaml b/infospace/schemas/index.yaml index 34bfe44..d0a65a7 100644 --- a/infospace/schemas/index.yaml +++ b/infospace/schemas/index.yaml @@ -15,3 +15,5 @@ schemas: path: agent-brief.schema.yaml - id: workplan path: workplan.schema.yaml + - id: alignment-review + path: alignment-review.schema.yaml diff --git a/infospace/validation/latest.json b/infospace/validation/latest.json index 9ce9b39..1c92efb 100644 --- a/infospace/validation/latest.json +++ b/infospace/validation/latest.json @@ -1,14 +1,14 @@ { "details": { - "artifact_count": 54, - "relationship_count": 238 + "artifact_count": 60, + "relationship_count": 273 }, "errors": [], "metrics": { "coherence_components": 1.0, "consistency_cycles": 0.0, "coverage_ratio": 1.0, - "granularity_entropy": 3.9972143235892474, + "granularity_entropy": 4.32498473489172, "redundancy_ratio": 0.0 }, "ok": true, diff --git a/infospace/views/by-concept.md b/infospace/views/by-concept.md index c0e0464..540ed67 100644 --- a/infospace/views/by-concept.md +++ b/infospace/views/by-concept.md @@ -2,7 +2,7 @@ # By Concept -Concept count: **79** +Concept count: **85** | Concept | Owner | Source | | --- | --- | --- | @@ -55,6 +55,12 @@ Concept count: **79** | 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` | +| Canon Consumer Alignment Review Kit | `review-kit/alignment` | `artifact_title` | +| Canon Model And Standard Selection Guide | `review-kit/alignment/model-selection-guide` | `artifact_title` | +| Consumer Alignment Review Schema | `review-kit/alignment/schema` | `artifact_title` | +| Canon Consumer Alignment Scorecard | `review-kit/alignment/scorecard` | `artifact_title` | +| Canon Consumer Alignment Review Workflow | `review-kit/alignment/workflow` | `artifact_title` | +| Consumer Alignment Workplan Template | `review-kit/alignment/workplan-template` | `artifact_title` | | Namespace Per Tenant Control | `small-saas/control/namespace-per-tenant` | `artifact_title` | | Subscription Ledger Dataset | `small-saas/dataset/subscription-ledger` | `artifact_title` | | Production Deployment | `small-saas/deployment/production` | `artifact_title` | diff --git a/infospace/views/by-mapping-target.md b/infospace/views/by-mapping-target.md index 00e4667..dd1a36a 100644 --- a/infospace/views/by-mapping-target.md +++ b/infospace/views/by-mapping-target.md @@ -8,6 +8,8 @@ - `benchmark/caring/kubernetes-rbac/caring-mapping` via `part_of` - `benchmark/caring/kubernetes-rbac/findings` via `part_of` - `benchmark/caring/kubernetes-rbac/native-concepts` via `part_of` +- `review-kit/alignment` via `uses` +- `review-kit/alignment/model-selection-guide` via `uses` ## `comparison/repo-scoping/report` @@ -59,6 +61,7 @@ - `model/security` via `conforms_to` - `model/task` via `conforms_to` - `profile/small-saas` via `conforms_to` +- `review-kit/alignment` via `conforms_to` - `standard/caring` via `conforms_to` - `standard/tagging` via `conforms_to` @@ -74,6 +77,7 @@ - `kernel/itc-kernel-map` via `maps` - `model/security` via `uses` - `profile/small-saas` via `requires` +- `review-kit/alignment/model-selection-guide` via `uses` - `small-saas/user/ada-admin` via `uses` - `standard/caring` via `imports` @@ -86,6 +90,7 @@ - `evaluation/user-engine/questions` via `uses` - `kernel/itc-kernel-map` via `maps` - `profile/small-saas` via `requires` +- `review-kit/alignment/model-selection-guide` via `uses` - `small-saas/dataset/subscription-ledger` via `uses` - `standard/caring` via `imports` @@ -98,6 +103,7 @@ - `conformance/railiance-fabric/mapping-expectations` via `maps` - `kernel/itc-kernel-map` via `maps` - `profile/small-saas` via `requires` +- `review-kit/alignment/model-selection-guide` via `uses` - `small-saas/deployment/production` via `uses` - `standard/caring` via `imports` @@ -124,6 +130,11 @@ - `model/purpose-demand-extension` via `extends` - `pattern/intent-scope-purposes` via `uses` - `profile/small-saas` via `requires` +- `review-kit/alignment` via `uses` +- `review-kit/alignment/model-selection-guide` via `uses` +- `review-kit/alignment/schema` via `uses` +- `review-kit/alignment/scorecard` via `uses` +- `review-kit/alignment/workflow` via `uses` - `small-saas/policy/tenant-isolation` via `uses` - `standard/caring` via `imports` @@ -143,6 +154,7 @@ - `conformance/railiance-fabric/mapping-expectations` via `maps` - `kernel/itc-kernel-map` via `maps` - `profile/small-saas` via `requires` +- `review-kit/alignment/model-selection-guide` via `uses` - `small-saas/service/billing-portal` via `uses` - `small-saas/system/billing-system` via `uses` @@ -154,6 +166,7 @@ - `conformance/railiance-fabric/mapping-expectations` via `maps` - `kernel/itc-kernel-map` via `maps` - `profile/small-saas` via `requires` +- `review-kit/alignment/model-selection-guide` via `uses` - `small-saas/deployment/production` via `uses` - `standard/caring` via `imports` @@ -165,6 +178,7 @@ - `conformance/railiance-fabric/mapping-expectations` via `maps` - `kernel/itc-kernel-map` via `maps` - `profile/small-saas` via `requires` +- `review-kit/alignment/model-selection-guide` via `uses` - `small-saas/evidence/access-review-2026-05` via `uses` - `standard/caring` via `imports` @@ -176,6 +190,7 @@ - `kernel/itc-kernel-map` via `maps` - `model/access-control` via `uses` - `profile/small-saas` via `requires` +- `review-kit/alignment/model-selection-guide` via `uses` - `small-saas/team/platform` via `uses` - `small-saas/tenant/acme` via `uses` - `small-saas/tenant/globex` via `uses` @@ -200,6 +215,10 @@ - `example/consumer-purpose-portfolio` via `illustrates` - `mapping/purpose-demand-governance-candidates` via `maps` - `pattern/intent-scope-purposes` via `implements` +- `review-kit/alignment` via `uses` +- `review-kit/alignment/model-selection-guide` via `uses` +- `review-kit/alignment/workflow` via `uses` +- `review-kit/alignment/workplan-template` via `uses` ## `model/security` @@ -216,6 +235,7 @@ - `model/devsecops` via `uses` - `model/network` via `uses` - `profile/small-saas` via `requires` +- `review-kit/alignment/model-selection-guide` via `uses` - `small-saas/control/namespace-per-tenant` via `uses` - `small-saas/incident/cross-tenant-access-attempt` via `uses` - `standard/caring` via `imports` @@ -236,6 +256,12 @@ - `model/purpose-demand-extension` via `uses` - `pattern/intent-scope-purposes` via `uses` - `profile/small-saas` via `requires` +- `review-kit/alignment` via `uses` +- `review-kit/alignment/model-selection-guide` via `uses` +- `review-kit/alignment/schema` via `uses` +- `review-kit/alignment/scorecard` via `uses` +- `review-kit/alignment/workflow` via `uses` +- `review-kit/alignment/workplan-template` via `uses` - `small-saas/task/onboard-tenant` via `uses` - `standard/caring` via `imports` - `standard/tagging` via `imports` @@ -250,6 +276,7 @@ - `evaluation/user-engine` via `evaluates` - `evaluation/user-engine/small-saas-alignment` via `evaluates` - `example/consumer-purpose-portfolio` via `uses` +- `review-kit/alignment/model-selection-guide` via `uses` - `small-saas/control/namespace-per-tenant` via `instantiates` - `small-saas/dataset/subscription-ledger` via `instantiates` - `small-saas/deployment/production` via `instantiates` @@ -264,6 +291,14 @@ - `small-saas/tenant/globex` via `instantiates` - `small-saas/user/ada-admin` via `instantiates` +## `review-kit/alignment` + +- `review-kit/alignment/model-selection-guide` via `part_of` +- `review-kit/alignment/schema` via `part_of` +- `review-kit/alignment/scorecard` via `part_of` +- `review-kit/alignment/workflow` via `part_of` +- `review-kit/alignment/workplan-template` via `part_of` + ## `small-saas/control/namespace-per-tenant` - `small-saas/deployment/production` via `implements` @@ -328,6 +363,8 @@ - `evaluation/user-engine/interface-card-expectations` via `uses` - `kernel/itc-kernel-map` via `maps` - `profile/small-saas` via `requires` +- `review-kit/alignment` via `uses` +- `review-kit/alignment/model-selection-guide` via `uses` - `small-saas/control/namespace-per-tenant` via `uses` ## `standard/tagging` @@ -337,4 +374,5 @@ - `conformance/railiance-fabric` via `uses` - `kernel/itc-kernel-map` via `maps` - `profile/small-saas` via `requires` +- `review-kit/alignment/model-selection-guide` via `uses` - `standard/caring` via `imports` diff --git a/infospace/views/import-matrix.md b/infospace/views/import-matrix.md index 356d003..044c6a0 100644 --- a/infospace/views/import-matrix.md +++ b/infospace/views/import-matrix.md @@ -2,59 +2,65 @@ # Import Matrix -| Artifact | `benchmark/caring/kubernetes-rbac` | `benchmark/caring/kubernetes-rbac/access-descriptors` | `benchmark/caring/kubernetes-rbac/caring-mapping` | `benchmark/caring/kubernetes-rbac/findings` | `benchmark/caring/kubernetes-rbac/native-concepts` | `comparison/repo-scoping/canon-benefit-analysis` | `comparison/repo-scoping/consumer-workplan-brief` | `comparison/repo-scoping/extension-candidates` | `comparison/repo-scoping/frame` | `comparison/repo-scoping/report` | `concept-catalog/purpose-demand` | `conformance/railiance-fabric` | `conformance/railiance-fabric/consumer-workplan-brief` | `conformance/railiance-fabric/entity-edge-capture-criteria` | `conformance/railiance-fabric/mapping-expectations` | `conformance/railiance-fabric/visualization-examples` | `evaluation/user-engine` | `evaluation/user-engine/consumer-workplan-brief` | `evaluation/user-engine/interface-card-expectations` | `evaluation/user-engine/questions` | `evaluation/user-engine/small-saas-alignment` | `example/consumer-purpose-portfolio` | `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` | -| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | -| `benchmark/caring/kubernetes-rbac` | | | | | | | | | | | | | | | | | | | | | | | | | | `stress_tests` | | `stress_tests` | `stress_tests` | | | `stress_tests` | `stress_tests` | | | `stress_tests` | | | | | | | | | | | | | | | | | `conforms_to` | `uses` | -| `benchmark/caring/kubernetes-rbac/access-descriptors` | `part_of` | | | | | | | | | | | | | | | | | | | | | | | | | `uses` | | `uses` | | | | | | | | `uses` | | | | | | | | | | | | | | | | | `uses` | | -| `benchmark/caring/kubernetes-rbac/caring-mapping` | `part_of` | | | | | | | | | | | | | | | | | | | | | | | | | `maps` | | | `maps` | | | | | | | `maps` | | | | | | | | | | | | | | | | | `maps` | | -| `benchmark/caring/kubernetes-rbac/findings` | `part_of` | | | | | | | | | | | | | | | | | | | | | | | | | | | | `proposes` | | | | | | | `proposes` | | | | | | | | | | | | | | | | | `proposes` | | -| `benchmark/caring/kubernetes-rbac/native-concepts` | `part_of` | | | | | | | | | | | | | | | | | | | | | | | | | `maps` | | | | | `maps` | | | | | | | | | | | | | | | | | | | | | | `maps` | | -| `comparison/repo-scoping/canon-benefit-analysis` | | | | | | | | | | `part_of` | | | | | | | | | | | | | | | | | | | `maps` | `maps` | | | | | `maps` | | `maps` | | | | | | | | | | | | | | | | | `maps` | -| `comparison/repo-scoping/consumer-workplan-brief` | | | | | | | | | | `part_of` | | | | | | | | | | | | | | | | | | | | | | | | | `uses` | | | | | | | | | | | | | | | | | | | | -| `comparison/repo-scoping/extension-candidates` | | | | | | | | | | `part_of` | | | | | | | | | | | | | | | | | | | `proposes` | `proposes` | | | | | `proposes` | | `proposes` | | | | | | | | | | | | | | | | | | -| `comparison/repo-scoping/frame` | | | | | | | | | | `part_of` | | | | | | | | | | | | | | | | | | | `uses` | | | | | | `uses` | | `uses` | | | | | | | | | | | | | | | | | | -| `comparison/repo-scoping/report` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `uses` | `uses` | | | | | `compares` | | `uses` | `uses` | | | | | | | | | | | | | | | | | -| `concept-catalog/purpose-demand` | | | | | | | | | | | | | | | | | | | | | | | `conforms_to` | | | | | | `uses` | | | | | | | | | | | | | | | | | | | | | | | | | | -| `conformance/railiance-fabric` | | | | | | | | | | | | | | | | | | | | | | | | | | | `uses` | `uses` | `uses` | | `uses` | `uses` | `uses` | | `uses` | `uses` | `uses` | | | | | | | | | | | | | | | | | `uses` | -| `conformance/railiance-fabric/consumer-workplan-brief` | | | | | | | | | | | | `part_of` | | | | | | | | | | | | | | | | | | | | | | | `uses` | | | | | | | | | | | | | | | | | | | | -| `conformance/railiance-fabric/entity-edge-capture-criteria` | | | | | | | | | | | | `part_of` | | | | | | | | | | | | | | | `uses` | `uses` | `uses` | | `uses` | `uses` | `uses` | | `uses` | `uses` | `uses` | | | | | | | | | | | | | | | | | | -| `conformance/railiance-fabric/mapping-expectations` | | | | | | | | | | | | `part_of` | | | | | | | | | | | | | | | `maps` | `maps` | `maps` | | `maps` | `maps` | `maps` | | `maps` | `maps` | | | | | | | | | | | | | | | | | | | -| `conformance/railiance-fabric/visualization-examples` | | | | | | | | | | | | `part_of` | | `illustrates` | `illustrates` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | -| `evaluation/user-engine` | | | | | | | | | | | | | | | | | | | | | | | | | | `uses` | `uses` | | `uses` | | | | | `uses` | `uses` | `uses` | `uses` | | `evaluates` | | | | | | | | | | | | | | `uses` | | -| `evaluation/user-engine/consumer-workplan-brief` | | | | | | | | | | | | | | | | | `part_of` | | | | | | | | | | | | | | | | | | `uses` | | | | | | | | | | | | | | | | | | | | -| `evaluation/user-engine/interface-card-expectations` | | | | | | | | | | | | | | | | | `part_of` | | | | | | | | | | | | | | | | | | `uses` | | | | | | | | | | | | | | | | | | `uses` | | -| `evaluation/user-engine/questions` | | | | | | | | | | | | | | | | | `part_of` | | | | | | | | | `uses` | `uses` | | `uses` | | | | | `uses` | `uses` | `uses` | `uses` | | | | | | | | | | | | | | | | | | -| `evaluation/user-engine/small-saas-alignment` | | | | | | | | | | | | | | | | | `part_of` | | | | | | | | | `uses` | | | `uses` | | | | | `uses` | | | | | `evaluates` | | | | | | | | | | | | | | | | -| `example/consumer-purpose-portfolio` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `illustrates` | | | `illustrates` | `uses` | | | | | | | | | | | | | | | | -| `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` | | | | | | | | | | | | | | | | | | +| Artifact | `benchmark/caring/kubernetes-rbac` | `benchmark/caring/kubernetes-rbac/access-descriptors` | `benchmark/caring/kubernetes-rbac/caring-mapping` | `benchmark/caring/kubernetes-rbac/findings` | `benchmark/caring/kubernetes-rbac/native-concepts` | `comparison/repo-scoping/canon-benefit-analysis` | `comparison/repo-scoping/consumer-workplan-brief` | `comparison/repo-scoping/extension-candidates` | `comparison/repo-scoping/frame` | `comparison/repo-scoping/report` | `concept-catalog/purpose-demand` | `conformance/railiance-fabric` | `conformance/railiance-fabric/consumer-workplan-brief` | `conformance/railiance-fabric/entity-edge-capture-criteria` | `conformance/railiance-fabric/mapping-expectations` | `conformance/railiance-fabric/visualization-examples` | `evaluation/user-engine` | `evaluation/user-engine/consumer-workplan-brief` | `evaluation/user-engine/interface-card-expectations` | `evaluation/user-engine/questions` | `evaluation/user-engine/small-saas-alignment` | `example/consumer-purpose-portfolio` | `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` | `review-kit/alignment` | `review-kit/alignment/model-selection-guide` | `review-kit/alignment/schema` | `review-kit/alignment/scorecard` | `review-kit/alignment/workflow` | `review-kit/alignment/workplan-template` | `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` | +| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | +| `benchmark/caring/kubernetes-rbac` | | | | | | | | | | | | | | | | | | | | | | | | | | `stress_tests` | | `stress_tests` | `stress_tests` | | | `stress_tests` | `stress_tests` | | | `stress_tests` | | | | | | | | | | | | | | | | | | | | | | | `conforms_to` | `uses` | +| `benchmark/caring/kubernetes-rbac/access-descriptors` | `part_of` | | | | | | | | | | | | | | | | | | | | | | | | | `uses` | | `uses` | | | | | | | | `uses` | | | | | | | | | | | | | | | | | | | | | | | `uses` | | +| `benchmark/caring/kubernetes-rbac/caring-mapping` | `part_of` | | | | | | | | | | | | | | | | | | | | | | | | | `maps` | | | `maps` | | | | | | | `maps` | | | | | | | | | | | | | | | | | | | | | | | `maps` | | +| `benchmark/caring/kubernetes-rbac/findings` | `part_of` | | | | | | | | | | | | | | | | | | | | | | | | | | | | `proposes` | | | | | | | `proposes` | | | | | | | | | | | | | | | | | | | | | | | `proposes` | | +| `benchmark/caring/kubernetes-rbac/native-concepts` | `part_of` | | | | | | | | | | | | | | | | | | | | | | | | | `maps` | | | | | `maps` | | | | | | | | | | | | | | | | | | | | | | | | | | | | `maps` | | +| `comparison/repo-scoping/canon-benefit-analysis` | | | | | | | | | | `part_of` | | | | | | | | | | | | | | | | | | | `maps` | `maps` | | | | | `maps` | | `maps` | | | | | | | | | | | | | | | | | | | | | | | `maps` | +| `comparison/repo-scoping/consumer-workplan-brief` | | | | | | | | | | `part_of` | | | | | | | | | | | | | | | | | | | | | | | | | `uses` | | | | | | | | | | | | | | | | | | | | | | | | | | +| `comparison/repo-scoping/extension-candidates` | | | | | | | | | | `part_of` | | | | | | | | | | | | | | | | | | | `proposes` | `proposes` | | | | | `proposes` | | `proposes` | | | | | | | | | | | | | | | | | | | | | | | | +| `comparison/repo-scoping/frame` | | | | | | | | | | `part_of` | | | | | | | | | | | | | | | | | | | `uses` | | | | | | `uses` | | `uses` | | | | | | | | | | | | | | | | | | | | | | | | +| `comparison/repo-scoping/report` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `uses` | `uses` | | | | | `compares` | | `uses` | `uses` | | | | | | | | | | | | | | | | | | | | | | | +| `concept-catalog/purpose-demand` | | | | | | | | | | | | | | | | | | | | | | | `conforms_to` | | | | | | `uses` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | +| `conformance/railiance-fabric` | | | | | | | | | | | | | | | | | | | | | | | | | | | `uses` | `uses` | `uses` | | `uses` | `uses` | `uses` | | `uses` | `uses` | `uses` | | | | | | | | | | | | | | | | | | | | | | | `uses` | +| `conformance/railiance-fabric/consumer-workplan-brief` | | | | | | | | | | | | `part_of` | | | | | | | | | | | | | | | | | | | | | | | `uses` | | | | | | | | | | | | | | | | | | | | | | | | | | +| `conformance/railiance-fabric/entity-edge-capture-criteria` | | | | | | | | | | | | `part_of` | | | | | | | | | | | | | | | `uses` | `uses` | `uses` | | `uses` | `uses` | `uses` | | `uses` | `uses` | `uses` | | | | | | | | | | | | | | | | | | | | | | | | +| `conformance/railiance-fabric/mapping-expectations` | | | | | | | | | | | | `part_of` | | | | | | | | | | | | | | | `maps` | `maps` | `maps` | | `maps` | `maps` | `maps` | | `maps` | `maps` | | | | | | | | | | | | | | | | | | | | | | | | | +| `conformance/railiance-fabric/visualization-examples` | | | | | | | | | | | | `part_of` | | `illustrates` | `illustrates` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | +| `evaluation/user-engine` | | | | | | | | | | | | | | | | | | | | | | | | | | `uses` | `uses` | | `uses` | | | | | `uses` | `uses` | `uses` | `uses` | | `evaluates` | | | | | | | | | | | | | | | | | | | | `uses` | | +| `evaluation/user-engine/consumer-workplan-brief` | | | | | | | | | | | | | | | | | `part_of` | | | | | | | | | | | | | | | | | | `uses` | | | | | | | | | | | | | | | | | | | | | | | | | | +| `evaluation/user-engine/interface-card-expectations` | | | | | | | | | | | | | | | | | `part_of` | | | | | | | | | | | | | | | | | | `uses` | | | | | | | | | | | | | | | | | | | | | | | | `uses` | | +| `evaluation/user-engine/questions` | | | | | | | | | | | | | | | | | `part_of` | | | | | | | | | `uses` | `uses` | | `uses` | | | | | `uses` | `uses` | `uses` | `uses` | | | | | | | | | | | | | | | | | | | | | | | | +| `evaluation/user-engine/small-saas-alignment` | | | | | | | | | | | | | | | | | `part_of` | | | | | | | | | `uses` | | | `uses` | | | | | `uses` | | | | | `evaluates` | | | | | | | | | | | | | | | | | | | | | | +| `example/consumer-purpose-portfolio` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `illustrates` | | | `illustrates` | `uses` | | | | | | | | | | | | | | | | | | | | | | +| `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` | +| `review-kit/alignment` | `uses` | | | | | | | | | | | | | | | | | | | | | | `conforms_to` | | | | | | `uses` | | | | | | `uses` | | `uses` | | | | | | | | | | | | | | | | | | | | | | `uses` | | +| `review-kit/alignment/model-selection-guide` | `uses` | | | | | | | | | | | | | | | | | | | | | | | | | `uses` | `uses` | `uses` | `uses` | | `uses` | `uses` | `uses` | `uses` | `uses` | `uses` | `uses` | | `uses` | `part_of` | | | | | | | | | | | | | | | | | | | `uses` | `uses` | +| `review-kit/alignment/schema` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `uses` | | | | | | | | `uses` | | | `part_of` | | | | | | | | | | | | | | | | | | | | | +| `review-kit/alignment/scorecard` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `uses` | | | | | | | | `uses` | | | `part_of` | | | | | | | | | | | | | | | | | | | | | +| `review-kit/alignment/workflow` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `uses` | | | | | | `uses` | | `uses` | | | `part_of` | | | | | | | | | | | | | | | | | | | | | +| `review-kit/alignment/workplan-template` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `uses` | | `uses` | | | `part_of` | | | | | | | | | | | | | | | | | | | | | +| `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` | | | | | | | | | | | | | | | | | | | | | | | | diff --git a/infospace/views/kernel-overview.md b/infospace/views/kernel-overview.md index 2010b87..0ca31c1 100644 --- a/infospace/views/kernel-overview.md +++ b/infospace/views/kernel-overview.md @@ -3,11 +3,15 @@ # Kernel Overview - Infospace: `canon` -- Artifacts: 54 +- Artifacts: 60 ## Artifact Kinds - `access-descriptor-set`: 1 +- `alignment-review-kit`: 1 +- `alignment-review-schema`: 1 +- `alignment-review-workflow`: 1 +- `alignment-scorecard`: 1 - `benchmark-findings`: 1 - `benchmark-workspace`: 1 - `benefit-analysis`: 1 @@ -18,6 +22,7 @@ - `concept-catalog`: 1 - `conformance-pack`: 1 - `consumer-workplan-brief`: 3 +- `consumer-workplan-template`: 1 - `evaluation-pack`: 1 - `evaluation-question-set`: 1 - `example`: 1 @@ -28,6 +33,7 @@ - `mapping-expectation`: 1 - `model`: 11 - `model-extension`: 1 +- `model-selection-guide`: 1 - `native-concept-map`: 1 - `pattern`: 1 - `profile`: 1 @@ -41,7 +47,7 @@ - `access_evidenced_by`: 1 - `changes`: 1 - `compares`: 1 -- `conforms_to`: 17 +- `conforms_to`: 18 - `constrained_by`: 1 - `deploys`: 1 - `evaluates`: 2 @@ -58,7 +64,7 @@ - `maps`: 36 - `member_of`: 1 - `owned_by`: 3 -- `part_of`: 17 +- `part_of`: 22 - `partitioned_for`: 2 - `proposes`: 7 - `represented_by`: 1 @@ -66,4 +72,4 @@ - `separates`: 2 - `serves`: 2 - `stress_tests`: 6 -- `uses`: 84 +- `uses`: 113 diff --git a/infospace/views/repository-tree.md b/infospace/views/repository-tree.md index 8fbf876..aafebc5 100644 --- a/infospace/views/repository-tree.md +++ b/infospace/views/repository-tree.md @@ -2,7 +2,7 @@ # Repository Tree -File count: **142** +File count: **154** - `README.md` - `agent/README.md` @@ -45,6 +45,12 @@ File count: **142** - `agent/briefs/model-task.md` - `agent/briefs/pattern-intent-scope-purposes.md` - `agent/briefs/profile-small-saas.md` +- `agent/briefs/review-kit-alignment-model-selection-guide.md` +- `agent/briefs/review-kit-alignment-schema.md` +- `agent/briefs/review-kit-alignment-scorecard.md` +- `agent/briefs/review-kit-alignment-workflow.md` +- `agent/briefs/review-kit-alignment-workplan-template.md` +- `agent/briefs/review-kit-alignment.md` - `agent/briefs/standard-caring.md` - `agent/briefs/standard-tagging.md` - `agent/consumer-briefs/railiance-fabric.md` @@ -54,7 +60,12 @@ File count: **142** - `agent/retrieval-index.json` - `agent/retrieval-index.md` - `agent/retrieval-index.yaml` +- `agent/review-kit/model-selection-guide.yaml` +- `agent/review-kit/review-kit.yaml` +- `agent/review-kit/review-workflow.yaml` +- `agent/review-kit/scorecard.yaml` - `agent/templates/canon-interface-card.template.yaml` +- `agent/templates/consumer-alignment-workplan.template.md` - `agent/templates/consumer-brief.template.md` - `artifacts/index.yaml` - `assimilation/README.md` @@ -120,6 +131,7 @@ File count: **142** - `reports/small-saas-profile-proof.md` - `schemas/README.md` - `schemas/agent-brief.schema.yaml` +- `schemas/alignment-review.schema.yaml` - `schemas/assimilation.schema.yaml` - `schemas/concept.schema.yaml` - `schemas/index.yaml` diff --git a/src/info_tech_canon/api.py b/src/info_tech_canon/api.py index d8df5b3..113921d 100644 --- a/src/info_tech_canon/api.py +++ b/src/info_tech_canon/api.py @@ -9,6 +9,7 @@ from urllib.parse import parse_qs, urlparse from .service import ( CanonServiceError, + alignment_template, artifact_graph, inspect_canon, list_artifacts, @@ -19,6 +20,7 @@ from .service import ( profile_inspect, profile_validate, read_view, + review_kit, validate_canon, ) @@ -84,6 +86,10 @@ def _route( return HTTPStatus.OK, list_models(root) if path == "/standards": return HTTPStatus.OK, list_standards(root) + if path == "/review-kit": + return HTTPStatus.OK, review_kit(root) + if path == "/alignment-template": + return HTTPStatus.OK, alignment_template(root) if path == "/validate": payload = validate_canon(root) return (HTTPStatus.OK if payload["ok"] else HTTPStatus.BAD_REQUEST), payload diff --git a/src/info_tech_canon/cli.py b/src/info_tech_canon/cli.py index 9bc18c9..5f03a04 100644 --- a/src/info_tech_canon/cli.py +++ b/src/info_tech_canon/cli.py @@ -10,6 +10,7 @@ from typing import Any from .api import serve from .service import ( CanonServiceError, + alignment_template, artifact_graph, generate_agent_briefs, generate_indexes, @@ -23,6 +24,7 @@ from .service import ( profile_inspect, profile_validate, read_view, + review_kit, validate_canon, write_validation_report, ) @@ -53,6 +55,18 @@ def build_parser() -> argparse.ArgumentParser: standards = sub.add_parser("standards", help="List canon standard artifacts") standards.set_defaults(handler=_standards) + review_kit_cmd = sub.add_parser( + "review-kit", + help="Read the consumer repository alignment review kit", + ) + review_kit_cmd.set_defaults(handler=_review_kit) + + alignment_template_cmd = sub.add_parser( + "alignment-template", + help="Read the consumer alignment workplan template", + ) + alignment_template_cmd.set_defaults(handler=_alignment_template) + validate = sub.add_parser("validate", help="Validate the canon infospace") validate.add_argument( "--write", @@ -145,6 +159,14 @@ def _standards(args: argparse.Namespace) -> dict[str, Any]: return list_standards(_root(args)) +def _review_kit(args: argparse.Namespace) -> dict[str, Any]: + return review_kit(_root(args)) + + +def _alignment_template(args: argparse.Namespace) -> dict[str, Any]: + return alignment_template(_root(args)) + + def _validate(args: argparse.Namespace) -> dict[str, Any]: if args.write: return write_validation_report(args.write, _root(args)) diff --git a/src/info_tech_canon/generation.py b/src/info_tech_canon/generation.py index 824cab0..8834380 100644 --- a/src/info_tech_canon/generation.py +++ b/src/info_tech_canon/generation.py @@ -11,6 +11,10 @@ import yaml GENERATED_NOTICE = "" RETRIEVAL_ARTIFACT_KINDS = { "access-descriptor-set", + "alignment-review-kit", + "alignment-review-schema", + "alignment-review-workflow", + "alignment-scorecard", "benefit-analysis", "benchmark-findings", "benchmark-workspace", @@ -21,6 +25,7 @@ RETRIEVAL_ARTIFACT_KINDS = { "concept-catalog", "conformance-pack", "consumer-workplan-brief", + "consumer-workplan-template", "evaluation-pack", "evaluation-question-set", "example", @@ -31,6 +36,7 @@ RETRIEVAL_ARTIFACT_KINDS = { "mapping-expectation", "model", "model-extension", + "model-selection-guide", "native-concept-map", "pattern", "profile-alignment", @@ -876,6 +882,14 @@ def _summary_for_artifact(artifact: Any) -> str: return f"Example artifact for the {artifact.provenance.get('profile', 'unknown')} profile: {artifact.title}." if artifact.kind == "access-descriptor-set": return f"Structured CARING access descriptor set: {artifact.title}." + if artifact.kind == "alignment-review-kit": + return f"Reusable kit for consumer repository alignment reviews: {artifact.title}." + if artifact.kind == "alignment-review-schema": + return f"Schema for structured consumer repository alignment reviews: {artifact.title}." + if artifact.kind == "alignment-review-workflow": + return f"Repeatable workflow for canon alignment reviews: {artifact.title}." + if artifact.kind == "alignment-scorecard": + return f"Scorecard dimensions for canon alignment reviews: {artifact.title}." if artifact.kind == "benefit-analysis": return f"Consumer benefit analysis against canon surfaces: {artifact.title}." if artifact.kind == "benchmark-findings": @@ -896,6 +910,8 @@ def _summary_for_artifact(artifact: Any) -> str: return f"Machine-readable canon-side conformance support pack: {artifact.title}." if artifact.kind == "consumer-workplan-brief": return f"Consumer repo workplan seed brief: {artifact.title}." + if artifact.kind == "consumer-workplan-template": + return f"Template for consumer repository alignment workplans: {artifact.title}." if artifact.kind == "evaluation-pack": return f"Machine-readable canon-side evaluation pack: {artifact.title}." if artifact.kind == "evaluation-question-set": @@ -912,6 +928,8 @@ def _summary_for_artifact(artifact: Any) -> str: return f"Expected mappings between consumer graph capture and canon surfaces: {artifact.title}." if artifact.kind == "model-extension": return f"Candidate extension to an existing canon model: {artifact.title}." + if artifact.kind == "model-selection-guide": + return f"Guide for choosing canon models, standards, profiles, and benchmarks: {artifact.title}." if artifact.kind == "native-concept-map": return f"Native source concept map for assimilation or benchmark work: {artifact.title}." if artifact.kind == "pattern": diff --git a/src/info_tech_canon/service.py b/src/info_tech_canon/service.py index 5b397c1..25ac541 100644 --- a/src/info_tech_canon/service.py +++ b/src/info_tech_canon/service.py @@ -6,6 +6,8 @@ from pathlib import Path import json from typing import Any +import yaml + from . import generation from . import profiles from .bench import ( @@ -22,6 +24,15 @@ from .validation import structural_checks REPO_ROOT = Path(__file__).resolve().parents[2] DEFAULT_INFOSPACE_ROOT = REPO_ROOT / "infospace" +REVIEW_KIT_COMPONENTS = { + "manifest": "agent/review-kit/review-kit.yaml", + "workflow": "agent/review-kit/review-workflow.yaml", + "scorecard": "agent/review-kit/scorecard.yaml", + "model_selection_guide": "agent/review-kit/model-selection-guide.yaml", + "schema": "schemas/alignment-review.schema.yaml", +} +ALIGNMENT_TEMPLATE_PATH = "agent/templates/consumer-alignment-workplan.template.md" + class CanonServiceError(Exception): def __init__( @@ -120,6 +131,45 @@ def list_standards(root: Path | str | None = None) -> dict[str, Any]: return list_artifacts(root, kind="standard") +def review_kit(root: Path | str | None = None) -> dict[str, Any]: + context = load_context(root) + components = { + name: { + "path": relative, + "content": _read_yaml_component(context.infospace_root, relative), + } + for name, relative in REVIEW_KIT_COMPONENTS.items() + } + template = alignment_template(root) + return { + "ok": True, + "review_kit": components["manifest"]["content"], + "components": components, + "template": { + "path": template["path"], + "content": template["content"], + }, + } + + +def alignment_template(root: Path | str | None = None) -> dict[str, Any]: + context = load_context(root) + path = context.infospace_root / ALIGNMENT_TEMPLATE_PATH + try: + content = path.read_text(encoding="utf-8") + except FileNotFoundError as exc: + raise CanonServiceError( + "missing_alignment_template", + "Consumer alignment workplan template not found.", + {"path": str(path)}, + ) from exc + return { + "ok": True, + "path": ALIGNMENT_TEMPLATE_PATH, + "content": content, + } + + def validate_canon(root: Path | str | None = None) -> dict[str, Any]: context = load_context(root) errors: list[dict[str, Any]] = [] @@ -311,6 +361,25 @@ def read_view(name: str, root: Path | str | None = None) -> dict[str, Any]: ) from exc +def _read_yaml_component(infospace_root: Path, relative: str) -> Any: + path = infospace_root / relative + try: + with path.open("r", encoding="utf-8") as handle: + return yaml.safe_load(handle) or {} + except FileNotFoundError as exc: + raise CanonServiceError( + "missing_review_kit_component", + f"Review kit component not found: {relative}", + {"path": str(path)}, + ) from exc + except yaml.YAMLError as exc: + raise CanonServiceError( + "invalid_review_kit_component", + f"Review kit component is not valid YAML: {relative}", + {"path": str(path), "reason": str(exc)}, + ) from exc + + def _artifact_to_dict( artifact: KnowledgeArtifact, infospace_root: Path, diff --git a/src/info_tech_canon/validation.py b/src/info_tech_canon/validation.py index a5dfa35..7d1bab1 100644 --- a/src/info_tech_canon/validation.py +++ b/src/info_tech_canon/validation.py @@ -50,10 +50,15 @@ REQUIRED_SCHEMAS = ( "interface-card.schema.yaml", "agent-brief.schema.yaml", "workplan.schema.yaml", + "alignment-review.schema.yaml", ) RETRIEVAL_BRIEF_KINDS = { "access-descriptor-set", + "alignment-review-kit", + "alignment-review-schema", + "alignment-review-workflow", + "alignment-scorecard", "benefit-analysis", "benchmark-findings", "benchmark-workspace", @@ -64,6 +69,7 @@ RETRIEVAL_BRIEF_KINDS = { "concept-catalog", "conformance-pack", "consumer-workplan-brief", + "consumer-workplan-template", "evaluation-pack", "evaluation-question-set", "example", @@ -73,6 +79,7 @@ RETRIEVAL_BRIEF_KINDS = { "mapping-expectation", "model", "model-extension", + "model-selection-guide", "native-concept-map", "pattern", "profile-alignment", @@ -282,6 +289,62 @@ CARING_K8S_REQUIRED_DESCRIPTOR_CLASSES = { "induced_access", } +ALIGNMENT_REVIEW_KIT_ARTIFACT_IDS = { + "review-kit/alignment", + "review-kit/alignment/model-selection-guide", + "review-kit/alignment/schema", + "review-kit/alignment/scorecard", + "review-kit/alignment/workflow", + "review-kit/alignment/workplan-template", +} + +ALIGNMENT_REVIEW_REQUIRED_PHASES = { + "intake", + "surface-selection", + "mapping", + "scoring", + "workplan-proposal", + "canon-feedback", +} + +ALIGNMENT_REVIEW_SCORECARD_DIMENSIONS = { + "fit", + "gaps", + "conflicts", + "evidence-quality", + "implementation-priority", + "canon-pressure", + "workplan-readiness", +} + +ALIGNMENT_REVIEW_REQUIRED_SURFACES = { + "model/purpose-demand-extension", + "pattern/intent-scope-purposes", + "model/access-control", + "model/organization", + "model/governance", + "model/security", + "model/data", + "model/landscape", + "model/devsecops", + "model/network", + "model/observability", + "model/task", + "standard/tagging", + "standard/caring", + "profile/small-saas", + "benchmark/caring/kubernetes-rbac", +} + +ALIGNMENT_REVIEW_TEMPLATE_MARKERS = { + "## Current Fit", + "## Target Alignment", + "## Migration Steps", + "## Validation", + "## Open Questions", + "## Canon Feedback", +} + def structural_checks(context: Any) -> dict[str, list[dict[str, Any]]]: errors: list[dict[str, Any]] = [] @@ -314,6 +377,11 @@ def structural_checks(context: Any) -> dict[str, list[dict[str, Any]]]: context.infospace.artifacts, errors, ) + _check_alignment_review_kit_assets( + context.infospace_root, + context.infospace.artifacts, + errors, + ) _check_optional_assets(context.infospace_root, warnings) return {"errors": errors, "warnings": warnings} @@ -578,6 +646,7 @@ def _check_agent_assets( "agent/retrieval-index.json", "agent/templates/canon-interface-card.template.yaml", "agent/templates/consumer-brief.template.md", + "agent/templates/consumer-alignment-workplan.template.md", "agent/consumer-briefs/user-engine.md", "agent/consumer-briefs/railiance-fabric.md", "agent/consumer-briefs/repo-scoping.md", @@ -1421,6 +1490,213 @@ def _check_caring_kubernetes_rbac_benchmark_assets( ) +def _check_alignment_review_kit_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(ALIGNMENT_REVIEW_KIT_ARTIFACT_IDS - artifact_ids): + errors.append( + { + "code": "missing_alignment_review_kit_artifact", + "artifact_id": artifact_id, + } + ) + + kit_root = infospace_root / "agent" / "review-kit" + manifest = _read_yaml(kit_root / "review-kit.yaml", errors) + if isinstance(manifest, dict): + components = manifest.get("components") or {} + if not isinstance(components, dict): + errors.append( + { + "code": "invalid_alignment_review_kit_components", + "path": "infospace/agent/review-kit/review-kit.yaml", + } + ) + else: + for component in ( + "workflow", + "scorecard", + "model_selection_guide", + "schema", + "consumer_workplan_template", + ): + if not components.get(component): + errors.append( + { + "code": "missing_alignment_review_kit_component", + "component": component, + } + ) + outputs = set(manifest.get("required_outputs") or []) + for output in ( + "repository_context", + "selected_canon_surfaces", + "mapping_findings", + "scorecard", + "recommended_workplans", + "canon_feedback", + ): + if output not in outputs: + errors.append( + { + "code": "missing_alignment_review_required_output", + "output": output, + } + ) + + workflow = _read_yaml(kit_root / "review-workflow.yaml", errors) + if isinstance(workflow, dict): + phases = workflow.get("phases") or [] + if not isinstance(phases, list): + errors.append( + { + "code": "invalid_alignment_review_workflow_phases", + "path": "infospace/agent/review-kit/review-workflow.yaml", + } + ) + else: + phase_ids = { + str(phase.get("id")) + for phase in phases + if isinstance(phase, dict) and phase.get("id") + } + for phase_id in sorted(ALIGNMENT_REVIEW_REQUIRED_PHASES - phase_ids): + errors.append( + { + "code": "missing_alignment_review_workflow_phase", + "phase": phase_id, + } + ) + for phase in phases: + if not isinstance(phase, dict): + continue + if not phase.get("questions"): + errors.append( + { + "code": "empty_alignment_review_phase_questions", + "phase": phase.get("id"), + } + ) + if not phase.get("outputs"): + errors.append( + { + "code": "empty_alignment_review_phase_outputs", + "phase": phase.get("id"), + } + ) + + scorecard = _read_yaml(kit_root / "scorecard.yaml", errors) + if isinstance(scorecard, dict): + dimensions = scorecard.get("dimensions") or [] + if not isinstance(dimensions, list): + errors.append( + { + "code": "invalid_alignment_review_scorecard_dimensions", + "path": "infospace/agent/review-kit/scorecard.yaml", + } + ) + else: + dimension_ids = { + str(dimension.get("id")) + for dimension in dimensions + if isinstance(dimension, dict) and dimension.get("id") + } + for dimension in sorted( + ALIGNMENT_REVIEW_SCORECARD_DIMENSIONS - dimension_ids + ): + errors.append( + { + "code": "missing_alignment_review_scorecard_dimension", + "dimension": dimension, + } + ) + + guide = _read_yaml(kit_root / "model-selection-guide.yaml", errors) + if isinstance(guide, dict): + surfaces = guide.get("surfaces") or [] + if not isinstance(surfaces, list): + errors.append( + { + "code": "invalid_alignment_review_selection_surfaces", + "path": "infospace/agent/review-kit/model-selection-guide.yaml", + } + ) + else: + surface_ids = { + str(surface.get("id")) + for surface in surfaces + if isinstance(surface, dict) and surface.get("id") + } + for surface_id in sorted(ALIGNMENT_REVIEW_REQUIRED_SURFACES - surface_ids): + errors.append( + { + "code": "missing_alignment_review_selection_surface", + "surface": surface_id, + } + ) + for surface in surfaces: + if not isinstance(surface, dict): + continue + if not surface.get("use_when"): + errors.append( + { + "code": "missing_alignment_review_surface_use_when", + "surface": surface.get("id"), + } + ) + if not surface.get("review_questions"): + errors.append( + { + "code": "missing_alignment_review_surface_questions", + "surface": surface.get("id"), + } + ) + + schema = _read_yaml(infospace_root / "schemas" / "alignment-review.schema.yaml", errors) + if isinstance(schema, dict): + required_fields = set(schema.get("required") or []) + for field in ( + "repository_context", + "selected_canon_surfaces", + "mapping_findings", + "scorecard", + "recommended_workplans", + "canon_feedback", + ): + if field not in required_fields: + errors.append( + { + "code": "missing_alignment_review_schema_required_field", + "field": field, + } + ) + + template_path = ( + infospace_root / "agent" / "templates" / "consumer-alignment-workplan.template.md" + ) + try: + template = template_path.read_text(encoding="utf-8") + except FileNotFoundError: + errors.append( + { + "code": "missing_alignment_review_workplan_template", + "path": "infospace/agent/templates/consumer-alignment-workplan.template.md", + } + ) + else: + for marker in sorted(ALIGNMENT_REVIEW_TEMPLATE_MARKERS): + if marker not in template: + errors.append( + { + "code": "missing_alignment_review_template_marker", + "marker": marker, + } + ) + + def _artifact_paths_by_path( infospace_root: Path, errors: list[dict[str, Any]], diff --git a/tests/test_api.py b/tests/test_api.py index 7a5c6c0..42bc372 100644 --- a/tests/test_api.py +++ b/tests/test_api.py @@ -20,6 +20,22 @@ def test_api_route_validate() -> None: assert payload["ok"] is True +def test_api_route_review_kit() -> None: + status, payload = _route("/review-kit", {}, None) + + assert status == HTTPStatus.OK + assert payload["ok"] is True + assert payload["review_kit"]["id"] == "review-kit/alignment" + + +def test_api_route_alignment_template() -> None: + status, payload = _route("/alignment-template", {}, None) + + assert status == HTTPStatus.OK + assert payload["ok"] is True + assert "## Current Fit" in payload["content"] + + def test_api_route_unknown_endpoint() -> None: status, payload = _route("/missing", {}, None) diff --git a/tests/test_cli.py b/tests/test_cli.py index bb091c4..b9335b1 100644 --- a/tests/test_cli.py +++ b/tests/test_cli.py @@ -11,7 +11,7 @@ def test_cli_inspect_emits_json(capsys) -> None: assert exit_code == 0 payload = json.loads(capsys.readouterr().out) assert payload["ok"] is True - assert payload["infospace"]["artifact_count"] == 54 + assert payload["infospace"]["artifact_count"] == 60 def test_cli_missing_profile_uses_structured_error(capsys) -> None: @@ -32,6 +32,25 @@ def test_cli_small_saas_profile_validate(capsys) -> None: assert payload["details"]["kinds"]["service"] == 1 +def test_cli_review_kit_emits_json(capsys) -> None: + exit_code = main(["review-kit"]) + + assert exit_code == 0 + payload = json.loads(capsys.readouterr().out) + assert payload["ok"] is True + assert payload["review_kit"]["id"] == "review-kit/alignment" + assert "workflow" in payload["components"] + + +def test_cli_alignment_template_emits_json(capsys) -> None: + exit_code = main(["alignment-template"]) + + assert exit_code == 0 + payload = json.loads(capsys.readouterr().out) + assert payload["ok"] is True + assert "## Current Fit" in payload["content"] + + def test_cli_index_generates_views(capsys, tmp_path) -> None: root = tmp_path / "infospace" shutil.copytree(DEFAULT_INFOSPACE_ROOT, root) diff --git a/tests/test_service.py b/tests/test_service.py index 0b9c957..834e897 100644 --- a/tests/test_service.py +++ b/tests/test_service.py @@ -1,4 +1,5 @@ from info_tech_canon.service import ( + alignment_template, artifact_graph, generate_agent_briefs, generate_indexes, @@ -8,6 +9,7 @@ from info_tech_canon.service import ( list_standards, profile_graph, profile_validate, + review_kit, validate_canon, ) from info_tech_canon.service import DEFAULT_INFOSPACE_ROOT @@ -19,9 +21,13 @@ def test_inspect_canon_counts_artifact_kinds() -> None: assert payload["ok"] is True assert payload["infospace"]["slug"] == "canon" - assert payload["infospace"]["artifact_count"] == 54 + assert payload["infospace"]["artifact_count"] == 60 assert payload["infospace"]["kinds"] == { "access-descriptor-set": 1, + "alignment-review-kit": 1, + "alignment-review-schema": 1, + "alignment-review-workflow": 1, + "alignment-scorecard": 1, "benefit-analysis": 1, "benchmark-findings": 1, "benchmark-workspace": 1, @@ -32,6 +38,7 @@ def test_inspect_canon_counts_artifact_kinds() -> None: "concept-catalog": 1, "conformance-pack": 1, "consumer-workplan-brief": 3, + "consumer-workplan-template": 1, "evaluation-pack": 1, "evaluation-question-set": 1, "example": 1, @@ -42,6 +49,7 @@ def test_inspect_canon_counts_artifact_kinds() -> None: "mapping-expectation": 1, "model": 11, "model-extension": 1, + "model-selection-guide": 1, "native-concept-map": 1, "pattern": 1, "profile-alignment": 1, @@ -57,20 +65,39 @@ def test_model_and_standard_lists_are_filtered() -> None: assert list_standards()["count"] == 2 +def test_review_kit_exports_workflow_and_template() -> None: + payload = review_kit() + + assert payload["ok"] is True + assert payload["review_kit"]["id"] == "review-kit/alignment" + assert payload["components"]["workflow"]["content"]["id"] == ( + "review-kit/alignment/workflow" + ) + assert "## Current Fit" in payload["template"]["content"] + + +def test_alignment_template_exports_content() -> None: + payload = alignment_template() + + assert payload["ok"] is True + assert payload["path"] == "agent/templates/consumer-alignment-workplan.template.md" + assert "{{WORKPLAN_ID}}" in payload["content"] + + def test_validate_canon_passes_scaffold() -> None: payload = validate_canon() assert payload["ok"] is True assert payload["errors"] == [] assert "warnings" in payload - assert payload["details"]["artifact_count"] == 54 + assert payload["details"]["artifact_count"] == 60 def test_graph_exports_relationship_summary() -> None: payload = artifact_graph() assert payload["ok"] is True - assert payload["graph"]["node_count"] == 54 + assert payload["graph"]["node_count"] == 60 assert payload["graph"]["edge_count"] > 15 @@ -123,6 +150,10 @@ def test_generators_write_expected_assets(tmp_path) -> None: assert ( root / "agent" / "briefs" / "benchmark-caring-kubernetes-rbac.md" ).is_file() + assert (root / "agent" / "briefs" / "review-kit-alignment.md").is_file() + assert ( + root / "agent" / "templates" / "consumer-alignment-workplan.template.md" + ).is_file() assert (root / "agent" / "briefs" / "pattern-intent-scope-purposes.md").is_file() assert ( root / "agent" / "templates" / "canon-interface-card.template.yaml" diff --git a/workplans/ITC-WP-0011-canon-consumer-alignment-review-kit.md b/workplans/ITC-WP-0011-canon-consumer-alignment-review-kit.md index 87c83c7..bfad5a3 100644 --- a/workplans/ITC-WP-0011-canon-consumer-alignment-review-kit.md +++ b/workplans/ITC-WP-0011-canon-consumer-alignment-review-kit.md @@ -4,7 +4,7 @@ type: workplan title: "Canon Consumer Alignment Review Kit" domain: canon repo: info-tech-canon -status: proposed +status: finished priority: high created: "2026-05-23" updated: "2026-05-23" @@ -46,7 +46,7 @@ and service surfaces. ```task id: ITC-WP-0011-T01 -status: todo +status: done priority: high state_hub_task_id: "0cc9582b-e0c6-4f71-a5b8-51a65a9a741b" ``` @@ -60,7 +60,7 @@ state_hub_task_id: "0cc9582b-e0c6-4f71-a5b8-51a65a9a741b" ```task id: ITC-WP-0011-T02 -status: todo +status: done priority: high state_hub_task_id: "0318d67e-0e67-4ba8-9d6f-a425959b1060" ``` @@ -73,7 +73,7 @@ state_hub_task_id: "0318d67e-0e67-4ba8-9d6f-a425959b1060" ```task id: ITC-WP-0011-T03 -status: todo +status: done priority: high state_hub_task_id: "d7074e43-02c6-4cd3-b4e7-a86271b0c2fa" ``` @@ -88,7 +88,7 @@ state_hub_task_id: "d7074e43-02c6-4cd3-b4e7-a86271b0c2fa" ```task id: ITC-WP-0011-T04 -status: todo +status: done priority: high state_hub_task_id: "fd7d60e9-cf83-41f7-84bc-ece4f66530e9" ``` @@ -101,7 +101,7 @@ state_hub_task_id: "fd7d60e9-cf83-41f7-84bc-ece4f66530e9" ```task id: ITC-WP-0011-T05 -status: todo +status: done priority: medium state_hub_task_id: "50f29030-4558-4c6b-a60b-16b7c560d153" ``` @@ -121,3 +121,20 @@ state_hub_task_id: "50f29030-4558-4c6b-a60b-16b7c560d153" into the canon repo. - Canon pressure is captured explicitly as feedback or proposed canon work, not as silent standard drift. + +## Implementation Notes + +- Added `infospace/agent/review-kit/` with a review kit manifest, workflow, + scorecard, and model/standard selection guide. +- Added `infospace/schemas/alignment-review.schema.yaml` for structured + consumer repository alignment reviews. +- Added `infospace/agent/templates/consumer-alignment-workplan.template.md` for + repo-local alignment workplans. +- Registered the review kit, schema, and template as indexed artifacts and + retrieval briefs. +- Added `review-kit` and `alignment-template` CLI commands plus `/review-kit` + and `/alignment-template` API endpoints. +- Added structural validation for required review kit artifacts, phases, + scorecard dimensions, model selection surfaces, schema fields, and template + sections. +- Regenerated agent briefs, indexes, tree views, and validation output. diff --git a/workplans/index.yaml b/workplans/index.yaml index b30195e..91afd6d 100644 --- a/workplans/index.yaml +++ b/workplans/index.yaml @@ -149,7 +149,7 @@ workplans: - id: ITC-WP-0011 title: Canon Consumer Alignment Review Kit - status: proposed + status: finished priority: high path: workplans/ITC-WP-0011-canon-consumer-alignment-review-kit.md depends_on: