Add user-engine evaluation readiness pack

This commit is contained in:
2026-05-23 05:18:54 +02:00
parent cab14fdd7e
commit 4e4cec6555
34 changed files with 1597 additions and 61 deletions

View File

@@ -82,3 +82,10 @@ The PURPOSES candidate model is registered as a governance extension at
consumer purposes, demand signals, purpose fit, scope pressure, and evolution
requests so consumer demand can inform repo governance without silently changing
producer scope.
## Evaluations
Canon-side evaluation packs live under `infospace/evaluations/`. The first pack
is `user-engine`, which prepares pre-integration assessment of a user-management
capability against Organization, Access Control, Governance, Data, Security,
Task, PURPOSES, CARING, and the `small-saas` profile.

View File

@@ -0,0 +1,30 @@
---
id: agent-brief/evaluation-user-engine-consumer-workplan-brief
artifact_id: evaluation/user-engine/consumer-workplan-brief
source_path: evaluations/user-engine/consumer-workplan-brief.md
source_kind: consumer-workplan-brief
generated: true
---
<!-- GENERATED by info_tech_canon; do not edit by hand. -->
# Agent Brief: User Engine Consumer Workplan Brief
- Artifact ID: `evaluation/user-engine/consumer-workplan-brief`
- Kind: `consumer-workplan-brief`
- Canonical path: `evaluations/user-engine/consumer-workplan-brief.md`
- Full source: `evaluations/user-engine/consumer-workplan-brief.md`
- Summary: Consumer repo workplan seed brief: User Engine Consumer Workplan Brief.
## Retrieval Hints
Imports and anchors:
- `model/purpose-demand-extension`
## Owned Concepts
- `User Engine Consumer Workplan Brief`
## Related Distinctions
No common distinction is anchored directly on this artifact.

View File

@@ -0,0 +1,31 @@
---
id: agent-brief/evaluation-user-engine-interface-card-expectations
artifact_id: evaluation/user-engine/interface-card-expectations
source_path: evaluations/user-engine/interface-card-expectations.yaml
source_kind: interface-card-expectation
generated: true
---
<!-- GENERATED by info_tech_canon; do not edit by hand. -->
# Agent Brief: User Engine Canon Interface Card Expectations
- Artifact ID: `evaluation/user-engine/interface-card-expectations`
- Kind: `interface-card-expectation`
- Canonical path: `evaluations/user-engine/interface-card-expectations.yaml`
- Full source: `evaluations/user-engine/interface-card-expectations.yaml`
- Summary: Expected Canon Interface Card fields and mappings: User Engine Canon Interface Card Expectations.
## Retrieval Hints
Imports and anchors:
- `model/purpose-demand-extension`
- `standard/caring`
## Owned Concepts
- `User Engine Canon Interface Card Expectations`
## Related Distinctions
No common distinction is anchored directly on this artifact.

View File

@@ -0,0 +1,36 @@
---
id: agent-brief/evaluation-user-engine-questions
artifact_id: evaluation/user-engine/questions
source_path: evaluations/user-engine/questions.yaml
source_kind: evaluation-question-set
generated: true
---
<!-- GENERATED by info_tech_canon; do not edit by hand. -->
# Agent Brief: User Engine Canon Evaluation Questions
- Artifact ID: `evaluation/user-engine/questions`
- Kind: `evaluation-question-set`
- Canonical path: `evaluations/user-engine/questions.yaml`
- Full source: `evaluations/user-engine/questions.yaml`
- Summary: Structured canon evaluation question set: User Engine Canon Evaluation Questions.
## Retrieval Hints
Imports and anchors:
- `model/access-control`
- `model/data`
- `model/governance`
- `model/organization`
- `model/purpose-demand-extension`
- `model/security`
- `model/task`
## Owned Concepts
- `User Engine Canon Evaluation Questions`
## Related Distinctions
No common distinction is anchored directly on this artifact.

View File

@@ -0,0 +1,32 @@
---
id: agent-brief/evaluation-user-engine-small-saas-alignment
artifact_id: evaluation/user-engine/small-saas-alignment
source_path: evaluations/user-engine/small-saas-alignment.yaml
source_kind: profile-alignment
generated: true
---
<!-- GENERATED by info_tech_canon; do not edit by hand. -->
# Agent Brief: User Engine Small SaaS Alignment Lens
- Artifact ID: `evaluation/user-engine/small-saas-alignment`
- Kind: `profile-alignment`
- Canonical path: `evaluations/user-engine/small-saas-alignment.yaml`
- Full source: `evaluations/user-engine/small-saas-alignment.yaml`
- Summary: Profile-specific evaluation alignment artifact: User Engine Small SaaS Alignment Lens.
## Retrieval Hints
Imports and anchors:
- `model/access-control`
- `model/governance`
- `model/organization`
## Owned Concepts
- `User Engine Small SaaS Alignment Lens`
## Related Distinctions
No common distinction is anchored directly on this artifact.

View File

@@ -0,0 +1,37 @@
---
id: agent-brief/evaluation-user-engine
artifact_id: evaluation/user-engine
source_path: evaluations/user-engine/evaluation-pack.yaml
source_kind: evaluation-pack
generated: true
---
<!-- GENERATED by info_tech_canon; do not edit by hand. -->
# Agent Brief: User Engine Canon Evaluation Pack
- Artifact ID: `evaluation/user-engine`
- Kind: `evaluation-pack`
- Canonical path: `evaluations/user-engine/evaluation-pack.yaml`
- Full source: `evaluations/user-engine/evaluation-pack.yaml`
- Summary: Machine-readable canon-side evaluation pack: User Engine Canon Evaluation Pack.
## Retrieval Hints
Imports and anchors:
- `model/access-control`
- `model/data`
- `model/governance`
- `model/organization`
- `model/purpose-demand-extension`
- `model/security`
- `model/task`
- `standard/caring`
## Owned Concepts
- `User Engine Canon Evaluation Pack`
## Related Distinctions
No common distinction is anchored directly on this artifact.

View File

@@ -18,6 +18,7 @@ Use the canon to make captured entities and edges cleaner for conformance and vi
- `agent/templates/canon-interface-card.template.yaml`
- `models/governance/InfoTechCanonPurposeDemandExtension.md`
- `patterns/intent-scope-purposes.md`
- `evaluations/user-engine/evaluation-pack.yaml`
- `examples/consumer-purpose-portfolio.yaml`
- `profiles/small-saas/profile.yaml`
- `views/by-concept.md`

View File

@@ -18,6 +18,7 @@ Compare repo-scoping concepts with canon INTENT, SCOPE, PURPOSES, and interface-
- `agent/templates/canon-interface-card.template.yaml`
- `models/governance/InfoTechCanonPurposeDemandExtension.md`
- `patterns/intent-scope-purposes.md`
- `evaluations/user-engine/evaluation-pack.yaml`
- `examples/consumer-purpose-portfolio.yaml`
- `profiles/small-saas/profile.yaml`
- `views/by-concept.md`

View File

@@ -18,6 +18,7 @@ Evaluate user-management concepts, roles, access traces, profile claims, and gov
- `agent/templates/canon-interface-card.template.yaml`
- `models/governance/InfoTechCanonPurposeDemandExtension.md`
- `patterns/intent-scope-purposes.md`
- `evaluations/user-engine/evaluation-pack.yaml`
- `examples/consumer-purpose-portfolio.yaml`
- `profiles/small-saas/profile.yaml`
- `views/by-concept.md`

View File

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

View File

@@ -43,7 +43,7 @@
}
],
"infospace": "canon",
"item_count": 34,
"item_count": 39,
"items": [
{
"canonical_path": "concepts/purpose-demand.yaml",
@@ -71,6 +71,215 @@
"title": "Purpose And Consumer Demand Concept Catalog",
"warnings": []
},
{
"canonical_path": "evaluations/user-engine/evaluation-pack.yaml",
"id": "evaluation/user-engine",
"imports": [
"model/access-control",
"model/data",
"model/governance",
"model/organization",
"model/purpose-demand-extension",
"model/security",
"model/task",
"standard/caring"
],
"kind": "evaluation-pack",
"owned_concepts": [
"User Engine Canon Evaluation Pack"
],
"relationships": [
{
"target": "profile/small-saas",
"type": "evaluates"
},
{
"target": "model/organization",
"type": "uses"
},
{
"target": "model/access-control",
"type": "uses"
},
{
"target": "model/governance",
"type": "uses"
},
{
"target": "model/data",
"type": "uses"
},
{
"target": "model/security",
"type": "uses"
},
{
"target": "model/task",
"type": "uses"
},
{
"target": "model/purpose-demand-extension",
"type": "uses"
},
{
"target": "standard/caring",
"type": "uses"
}
],
"source_path": "infospace/evaluations/user-engine/evaluation-pack.yaml",
"summary": "Machine-readable canon-side evaluation pack: User Engine Canon Evaluation Pack.",
"title": "User Engine Canon Evaluation Pack",
"warnings": []
},
{
"canonical_path": "evaluations/user-engine/consumer-workplan-brief.md",
"id": "evaluation/user-engine/consumer-workplan-brief",
"imports": [
"model/purpose-demand-extension"
],
"kind": "consumer-workplan-brief",
"owned_concepts": [
"User Engine Consumer Workplan Brief"
],
"relationships": [
{
"target": "evaluation/user-engine",
"type": "part_of"
},
{
"target": "model/purpose-demand-extension",
"type": "uses"
}
],
"source_path": "infospace/evaluations/user-engine/consumer-workplan-brief.md",
"summary": "Consumer repo workplan seed brief: User Engine Consumer Workplan Brief.",
"title": "User Engine Consumer Workplan Brief",
"warnings": []
},
{
"canonical_path": "evaluations/user-engine/interface-card-expectations.yaml",
"id": "evaluation/user-engine/interface-card-expectations",
"imports": [
"model/purpose-demand-extension",
"standard/caring"
],
"kind": "interface-card-expectation",
"owned_concepts": [
"User Engine Canon Interface Card Expectations"
],
"relationships": [
{
"target": "evaluation/user-engine",
"type": "part_of"
},
{
"target": "model/purpose-demand-extension",
"type": "uses"
},
{
"target": "standard/caring",
"type": "uses"
}
],
"source_path": "infospace/evaluations/user-engine/interface-card-expectations.yaml",
"summary": "Expected Canon Interface Card fields and mappings: User Engine Canon Interface Card Expectations.",
"title": "User Engine Canon Interface Card Expectations",
"warnings": []
},
{
"canonical_path": "evaluations/user-engine/questions.yaml",
"id": "evaluation/user-engine/questions",
"imports": [
"model/access-control",
"model/data",
"model/governance",
"model/organization",
"model/purpose-demand-extension",
"model/security",
"model/task"
],
"kind": "evaluation-question-set",
"owned_concepts": [
"User Engine Canon Evaluation Questions"
],
"relationships": [
{
"target": "evaluation/user-engine",
"type": "part_of"
},
{
"target": "model/organization",
"type": "uses"
},
{
"target": "model/access-control",
"type": "uses"
},
{
"target": "model/governance",
"type": "uses"
},
{
"target": "model/data",
"type": "uses"
},
{
"target": "model/security",
"type": "uses"
},
{
"target": "model/task",
"type": "uses"
},
{
"target": "model/purpose-demand-extension",
"type": "uses"
}
],
"source_path": "infospace/evaluations/user-engine/questions.yaml",
"summary": "Structured canon evaluation question set: User Engine Canon Evaluation Questions.",
"title": "User Engine Canon Evaluation Questions",
"warnings": []
},
{
"canonical_path": "evaluations/user-engine/small-saas-alignment.yaml",
"id": "evaluation/user-engine/small-saas-alignment",
"imports": [
"model/access-control",
"model/governance",
"model/organization"
],
"kind": "profile-alignment",
"owned_concepts": [
"User Engine Small SaaS Alignment Lens"
],
"relationships": [
{
"target": "evaluation/user-engine",
"type": "part_of"
},
{
"target": "profile/small-saas",
"type": "evaluates"
},
{
"target": "model/organization",
"type": "uses"
},
{
"target": "model/access-control",
"type": "uses"
},
{
"target": "model/governance",
"type": "uses"
}
],
"source_path": "infospace/evaluations/user-engine/small-saas-alignment.yaml",
"summary": "Profile-specific evaluation alignment artifact: User Engine Small SaaS Alignment Lens.",
"title": "User Engine Small SaaS Alignment Lens",
"warnings": []
},
{
"canonical_path": "examples/consumer-purpose-portfolio.yaml",
"id": "example/consumer-purpose-portfolio",

View File

@@ -4,7 +4,7 @@
Schema: `info-tech-canon.retrieval-index.v1`
Infospace: `canon`
Items: **34**
Items: **39**
## Common Distinctions
@@ -25,6 +25,56 @@ Items: **34**
- Imports and anchors: `kernel/itc-core`, `model/governance`
- Owned concepts: `Purpose And Consumer Demand Concept Catalog`
### User Engine Canon Evaluation Pack
- ID: `evaluation/user-engine`
- Kind: `evaluation-pack`
- Canonical path: `evaluations/user-engine/evaluation-pack.yaml`
- Source path: `infospace/evaluations/user-engine/evaluation-pack.yaml`
- Summary: Machine-readable canon-side evaluation pack: User Engine Canon Evaluation Pack.
- Imports and anchors: `model/access-control`, `model/data`, `model/governance`, `model/organization`, `model/purpose-demand-extension`, `model/security`, `model/task`, `standard/caring`
- Owned concepts: `User Engine Canon Evaluation Pack`
### User Engine Consumer Workplan Brief
- ID: `evaluation/user-engine/consumer-workplan-brief`
- Kind: `consumer-workplan-brief`
- Canonical path: `evaluations/user-engine/consumer-workplan-brief.md`
- Source path: `infospace/evaluations/user-engine/consumer-workplan-brief.md`
- Summary: Consumer repo workplan seed brief: User Engine Consumer Workplan Brief.
- Imports and anchors: `model/purpose-demand-extension`
- Owned concepts: `User Engine Consumer Workplan Brief`
### User Engine Canon Interface Card Expectations
- ID: `evaluation/user-engine/interface-card-expectations`
- Kind: `interface-card-expectation`
- Canonical path: `evaluations/user-engine/interface-card-expectations.yaml`
- Source path: `infospace/evaluations/user-engine/interface-card-expectations.yaml`
- Summary: Expected Canon Interface Card fields and mappings: User Engine Canon Interface Card Expectations.
- Imports and anchors: `model/purpose-demand-extension`, `standard/caring`
- Owned concepts: `User Engine Canon Interface Card Expectations`
### User Engine Canon Evaluation Questions
- ID: `evaluation/user-engine/questions`
- Kind: `evaluation-question-set`
- Canonical path: `evaluations/user-engine/questions.yaml`
- Source path: `infospace/evaluations/user-engine/questions.yaml`
- Summary: Structured canon evaluation question set: User Engine Canon Evaluation Questions.
- Imports and anchors: `model/access-control`, `model/data`, `model/governance`, `model/organization`, `model/purpose-demand-extension`, `model/security`, `model/task`
- Owned concepts: `User Engine Canon Evaluation Questions`
### User Engine Small SaaS Alignment Lens
- ID: `evaluation/user-engine/small-saas-alignment`
- Kind: `profile-alignment`
- Canonical path: `evaluations/user-engine/small-saas-alignment.yaml`
- Source path: `infospace/evaluations/user-engine/small-saas-alignment.yaml`
- Summary: Profile-specific evaluation alignment artifact: User Engine Small SaaS Alignment Lens.
- Imports and anchors: `model/access-control`, `model/governance`, `model/organization`
- Owned concepts: `User Engine Small SaaS Alignment Lens`
### Canon-Side Consumer Purpose Portfolio
- ID: `example/consumer-purpose-portfolio`

View File

@@ -1,6 +1,6 @@
schema: info-tech-canon.retrieval-index.v1
infospace: canon
item_count: 34
item_count: 39
items:
- id: concept-catalog/purpose-demand
kind: concept-catalog
@@ -20,6 +20,140 @@ items:
- type: uses
target: model/governance
warnings: []
- id: evaluation/user-engine
kind: evaluation-pack
title: User Engine Canon Evaluation Pack
canonical_path: evaluations/user-engine/evaluation-pack.yaml
source_path: infospace/evaluations/user-engine/evaluation-pack.yaml
summary: 'Machine-readable canon-side evaluation pack: User Engine Canon Evaluation
Pack.'
owned_concepts:
- User Engine Canon Evaluation Pack
imports:
- model/access-control
- model/data
- model/governance
- model/organization
- model/purpose-demand-extension
- model/security
- model/task
- standard/caring
relationships:
- type: evaluates
target: profile/small-saas
- type: uses
target: model/organization
- type: uses
target: model/access-control
- type: uses
target: model/governance
- type: uses
target: model/data
- type: uses
target: model/security
- type: uses
target: model/task
- type: uses
target: model/purpose-demand-extension
- type: uses
target: standard/caring
warnings: []
- id: evaluation/user-engine/consumer-workplan-brief
kind: consumer-workplan-brief
title: User Engine Consumer Workplan Brief
canonical_path: evaluations/user-engine/consumer-workplan-brief.md
source_path: infospace/evaluations/user-engine/consumer-workplan-brief.md
summary: 'Consumer repo workplan seed brief: User Engine Consumer Workplan Brief.'
owned_concepts:
- User Engine Consumer Workplan Brief
imports:
- model/purpose-demand-extension
relationships:
- type: part_of
target: evaluation/user-engine
- type: uses
target: model/purpose-demand-extension
warnings: []
- id: evaluation/user-engine/interface-card-expectations
kind: interface-card-expectation
title: User Engine Canon Interface Card Expectations
canonical_path: evaluations/user-engine/interface-card-expectations.yaml
source_path: infospace/evaluations/user-engine/interface-card-expectations.yaml
summary: 'Expected Canon Interface Card fields and mappings: User Engine Canon Interface
Card Expectations.'
owned_concepts:
- User Engine Canon Interface Card Expectations
imports:
- model/purpose-demand-extension
- standard/caring
relationships:
- type: part_of
target: evaluation/user-engine
- type: uses
target: model/purpose-demand-extension
- type: uses
target: standard/caring
warnings: []
- id: evaluation/user-engine/questions
kind: evaluation-question-set
title: User Engine Canon Evaluation Questions
canonical_path: evaluations/user-engine/questions.yaml
source_path: infospace/evaluations/user-engine/questions.yaml
summary: 'Structured canon evaluation question set: User Engine Canon Evaluation
Questions.'
owned_concepts:
- User Engine Canon Evaluation Questions
imports:
- model/access-control
- model/data
- model/governance
- model/organization
- model/purpose-demand-extension
- model/security
- model/task
relationships:
- type: part_of
target: evaluation/user-engine
- type: uses
target: model/organization
- type: uses
target: model/access-control
- type: uses
target: model/governance
- type: uses
target: model/data
- type: uses
target: model/security
- type: uses
target: model/task
- type: uses
target: model/purpose-demand-extension
warnings: []
- id: evaluation/user-engine/small-saas-alignment
kind: profile-alignment
title: User Engine Small SaaS Alignment Lens
canonical_path: evaluations/user-engine/small-saas-alignment.yaml
source_path: infospace/evaluations/user-engine/small-saas-alignment.yaml
summary: 'Profile-specific evaluation alignment artifact: User Engine Small SaaS
Alignment Lens.'
owned_concepts:
- User Engine Small SaaS Alignment Lens
imports:
- model/access-control
- model/governance
- model/organization
relationships:
- type: part_of
target: evaluation/user-engine
- type: evaluates
target: profile/small-saas
- type: uses
target: model/organization
- type: uses
target: model/access-control
- type: uses
target: model/governance
warnings: []
- id: example/consumer-purpose-portfolio
kind: example
title: Canon-Side Consumer Purpose Portfolio

View File

@@ -331,6 +331,100 @@ artifacts:
target: pattern/intent-scope-purposes
- type: uses
target: profile/small-saas
- id: evaluation/user-engine
path: evaluations/user-engine/evaluation-pack.yaml
kind: evaluation-pack
title: User Engine Canon Evaluation Pack
provenance:
source_path: infospace/evaluations/user-engine/evaluation-pack.yaml
placement_workplan: ITC-WP-0007
relationships:
- type: evaluates
target: profile/small-saas
- type: uses
target: model/organization
- type: uses
target: model/access-control
- type: uses
target: model/governance
- type: uses
target: model/data
- type: uses
target: model/security
- type: uses
target: model/task
- type: uses
target: model/purpose-demand-extension
- type: uses
target: standard/caring
- id: evaluation/user-engine/questions
path: evaluations/user-engine/questions.yaml
kind: evaluation-question-set
title: User Engine Canon Evaluation Questions
provenance:
source_path: infospace/evaluations/user-engine/questions.yaml
placement_workplan: ITC-WP-0007
relationships:
- type: part_of
target: evaluation/user-engine
- type: uses
target: model/organization
- type: uses
target: model/access-control
- type: uses
target: model/governance
- type: uses
target: model/data
- type: uses
target: model/security
- type: uses
target: model/task
- type: uses
target: model/purpose-demand-extension
- id: evaluation/user-engine/interface-card-expectations
path: evaluations/user-engine/interface-card-expectations.yaml
kind: interface-card-expectation
title: User Engine Canon Interface Card Expectations
provenance:
source_path: infospace/evaluations/user-engine/interface-card-expectations.yaml
placement_workplan: ITC-WP-0007
relationships:
- type: part_of
target: evaluation/user-engine
- type: uses
target: model/purpose-demand-extension
- type: uses
target: standard/caring
- id: evaluation/user-engine/small-saas-alignment
path: evaluations/user-engine/small-saas-alignment.yaml
kind: profile-alignment
title: User Engine Small SaaS Alignment Lens
provenance:
source_path: infospace/evaluations/user-engine/small-saas-alignment.yaml
placement_workplan: ITC-WP-0007
relationships:
- type: part_of
target: evaluation/user-engine
- type: evaluates
target: profile/small-saas
- type: uses
target: model/organization
- type: uses
target: model/access-control
- type: uses
target: model/governance
- id: evaluation/user-engine/consumer-workplan-brief
path: evaluations/user-engine/consumer-workplan-brief.md
kind: consumer-workplan-brief
title: User Engine Consumer Workplan Brief
provenance:
source_path: infospace/evaluations/user-engine/consumer-workplan-brief.md
placement_workplan: ITC-WP-0007
relationships:
- type: part_of
target: evaluation/user-engine
- type: uses
target: model/purpose-demand-extension
- id: small-saas/service/billing-portal
path: profiles/small-saas/artifacts/service.billing-portal.yaml
kind: profile-artifact

View File

@@ -0,0 +1,61 @@
---
id: evaluation/user-engine/consumer-workplan-brief
title: User Engine Consumer Workplan Brief
status: candidate
consumer: user-engine
evaluation_pack: evaluation/user-engine
---
# User Engine Consumer Workplan Brief
## Purpose
Use this brief as the seed for a user-engine repo workplan. The adoption and
implementation workplan belongs in the user-engine repository, not in
InfoTechCanon.
## Goal
Evaluate user-engine against InfoTechCanon before integration as the
user-management capability.
## Canon Inputs
- `infospace/evaluations/user-engine/evaluation-pack.yaml`
- `infospace/evaluations/user-engine/questions.yaml`
- `infospace/evaluations/user-engine/interface-card-expectations.yaml`
- `infospace/evaluations/user-engine/small-saas-alignment.yaml`
- `infospace/agent/templates/canon-interface-card.template.yaml`
- `infospace/examples/consumer-purpose-portfolio.yaml`
## Workplan Tasks For User Engine
1. Complete a Canon Interface Card for user-engine.
2. Export or describe entity mappings for user, account, actor, subject,
principal, tenant, team, role, access role, policy, control, evidence, and
lifecycle work.
3. Export or describe edge mappings for membership, tenant scope,
authentication, subject evaluation, role assignment, policy governance,
control implementation, evidence, and task creation.
4. Answer the canon evaluation question set by domain.
5. Evaluate small-saas alignment using Ada Admin, Acme, Globex, tenant
isolation policy, namespace-per-tenant control, and access review evidence.
6. Record purpose fit, gaps, scope pressure, and requested evolution.
## Expected Outputs
- completed interface card,
- answered question set,
- entity and edge mapping export,
- evidence bundle or explicit evidence gaps,
- small-saas alignment notes,
- list of user-engine changes,
- list of canon evolution requests.
## Non-Goals
- Do not change InfoTechCanon from the user-engine workplan without a canon-side
evolution request.
- Do not treat this evaluation as integration approval.
- Do not collapse implementation-specific names into canon concepts without a
mapping and rationale.

View File

@@ -0,0 +1,65 @@
id: evaluation/user-engine
title: User Engine Canon Evaluation Pack
status: candidate
consumer: user-engine
purpose: Evaluate user-engine against InfoTechCanon before integration as the user-management capability.
created_by_workplan: ITC-WP-0007
evaluation_mode: pre-integration
canon_anchors:
- model/organization
- model/access-control
- model/governance
- model/data
- model/security
- model/task
- model/purpose-demand-extension
- profile/small-saas
- standard/caring
pack_components:
questions: evaluations/user-engine/questions.yaml
interface_card_expectations: evaluations/user-engine/interface-card-expectations.yaml
small_saas_alignment: evaluations/user-engine/small-saas-alignment.yaml
consumer_workplan_brief: evaluations/user-engine/consumer-workplan-brief.md
evaluation_surfaces:
- user identity and account lifecycle
- actor, subject, and principal distinctions
- organization roles and access roles
- tenant, team, and membership boundaries
- permission and entitlement traces
- policy, control, evidence, and access review traces
- data handled by user management
- security controls around credentials, sessions, and privileged access
- tasks created by onboarding, review, remediation, and deprovisioning
- consumer purpose, demand signal, purpose fit, and scope pressure
readiness_gates:
- id: gate/user-management-core
title: Core user-management concepts are mapped.
required: true
expects:
- User, Account, Actor, Subject, Principal, Team, Tenant, Role, AccessRole, Policy, Control, Evidence.
- id: gate/access-trace
title: Access grants are traceable to scope, policy, control, and evidence.
required: true
expects:
- Each privileged grant identifies role, subject or principal, resource scope, tenant boundary, governing policy, and evidence.
- id: gate/governance-evidence
title: Governance evidence exists before integration.
required: true
expects:
- Access review, exception, approval, and remediation records are available or explicitly marked as gaps.
- id: gate/purpose-fit
title: Consumer purpose and producer fit are explicit.
required: true
expects:
- user-engine declares intent, scope, purposes, demand signals, current fit, and requested evolution.
output_expectations:
- completed Canon Interface Card for user-engine
- answered evaluation question set
- entity and edge mapping export
- small-saas alignment notes
- evidence bundle or explicit evidence gaps
- consumer-side workplan created in the user-engine repo
non_goals:
- Refactor user-engine in this repo.
- Decide user-engine implementation details in this repo.
- Treat evaluation success as automatic integration approval.

View File

@@ -0,0 +1,148 @@
id: evaluation/user-engine/interface-card-expectations
title: User Engine Canon Interface Card Expectations
status: candidate
consumer: user-engine
evaluation_pack: evaluation/user-engine
expected_consumer_fields:
repo: user-engine
domain: user-management
intent: Evaluate and later integrate user-management capability against InfoTechCanon.
scope:
- user identity
- accounts
- tenants
- teams
- memberships
- roles
- access decisions
- access reviews
- governance evidence
purposes:
- id: user-engine/user-management-evaluation
use_case: Compare user-engine entities and access behavior with InfoTechCanon models and small-saas profile expectations.
consumer_need: Clear distinction among identities, actors, principals, subjects, roles, grants, policies, controls, evidence, and lifecycle work.
demand_signals:
- user-engine will be assessed before integration.
- user-engine needs a canon-side conformance question set.
expected_canon_surfaces:
implemented_profiles:
- profile/small-saas
consumed_artifacts:
- model/organization
- model/access-control
- model/governance
- model/data
- model/security
- model/task
- model/purpose-demand-extension
- standard/caring
consumed_concepts:
- Actor
- Subject
- Principal
- User
- Team
- Tenant
- Organization Role
- AccessRole
- Permission
- Entitlement
- ResourceScope
- Policy
- Control
- Evidence
- AccessReview
- ConsumerPurpose
- PurposeFit
- EvolutionRequest
expected_entities:
- id: user
canon_anchor: model/organization
expectation: Represents a human or service user without collapsing into authenticated principal.
- id: account
canon_anchor: model/access-control
expectation: Represents login or system account bound to a user, actor, or principal.
- id: principal
canon_anchor: model/access-control
expectation: Represents authenticated identity used in an authorization decision.
- id: subject
canon_anchor: model/access-control
expectation: Represents entity evaluated by policy, possibly a user, principal, group, or service account.
- id: tenant
canon_anchor: model/organization
expectation: Represents customer or organization boundary used for membership, data, and access scope.
- id: team
canon_anchor: model/organization
expectation: Represents operational group, not an access role.
- id: organization-role
canon_anchor: model/organization
expectation: Represents responsibility or position.
- id: access-role
canon_anchor: model/access-control
expectation: Represents permission bundle or access capability.
- id: policy
canon_anchor: model/governance
expectation: Governs access or lifecycle behavior.
- id: control
canon_anchor: model/security
expectation: Implements or enforces a policy or objective.
- id: evidence
canon_anchor: model/observability
expectation: Supports review, control, access, or integration claims.
expected_edges:
- type: member_of
source: user
target: team
expectation: User or actor belongs to team.
- type: belongs_to_tenant
source: user
target: tenant
expectation: User or account is scoped to a tenant when applicable.
- type: authenticates_as
source: account
target: principal
expectation: Account produces or binds authenticated principal.
- type: evaluated_as
source: principal
target: subject
expectation: Principal is evaluated as policy subject.
- type: assigned_role
source: subject
target: access-role
expectation: Subject receives access role within explicit scope.
- type: scoped_to
source: access-role
target: tenant
expectation: Access role or grant declares resource or tenant scope.
- type: governed_by
source: access-grant
target: policy
expectation: Grant traces to policy or rule.
- type: implemented_by
source: policy
target: control
expectation: Policy is enforced by a control.
- type: evidenced_by
source: access-grant
target: evidence
expectation: Grant, review, or control has evidence.
- type: creates_task
source: evaluation-gap
target: task
expectation: Gap creates work only after triage and commitment.
evidence_required:
- completed Canon Interface Card
- entity and edge mapping export
- access grant trace
- tenant-scoped role or permission example
- access review example
- policy/control/evidence trace
- data object inventory for user-management data
- user lifecycle task or request examples
- explicit integration gaps and requested evolution
validation_expectations:
commands:
- PYTHONPATH=src python3 -m info_tech_canon validate
- PYTHONPATH=src python3 -m info_tech_canon profile validate small-saas
known_gaps_allowed: true
gap_rule: A gap is acceptable only when recorded with purpose fit state, owner, and proposed disposition.

View File

@@ -0,0 +1,135 @@
id: evaluation/user-engine/questions
title: User Engine Canon Evaluation Questions
status: candidate
consumer: user-engine
evaluation_pack: evaluation/user-engine
question_domains:
- id: organization
title: Organization
canon_anchors:
- model/organization
- profile/small-saas
questions:
- id: org-001
question: Which user-engine records map to Person, User, Actor, Agent, Team, Tenant, Role, Membership, Assignment, Responsibility, Authority, and Accountability?
expected_evidence:
- entity mapping table
- examples for human users and service users
- id: org-002
question: How does user-engine distinguish Actor, Subject, and Principal in authentication and authorization contexts?
expected_evidence:
- concept mapping
- access-decision trace
- id: org-003
question: How are tenant membership, team membership, ownership, and delegated administration represented?
expected_evidence:
- tenant/team membership export
- owner or administrator assignment records
- id: access-control
title: Access Control
canon_anchors:
- model/access-control
- standard/caring
- profile/small-saas
questions:
- id: ac-001
question: Which user-engine concepts map to AccessRole, Permission, Entitlement, ResourceScope, RoleBinding, AuthorizationDecision, and AccessPolicy?
expected_evidence:
- entity mapping table
- role and permission examples
- id: ac-002
question: Can every privileged access grant identify subject or principal, access role, resource scope, tenant boundary, governing policy, and evidence?
expected_evidence:
- grant trace
- tenant-scoped role binding example
- id: ac-003
question: How are Organization Role, AccessRole, and CARING canonical role kept distinct?
expected_evidence:
- distinction notes
- CARING role classification examples
- id: governance
title: Governance
canon_anchors:
- model/governance
- standard/caring
questions:
- id: gov-001
question: Which user-engine records carry policy, control, review, approval, exception, waiver, evidence, and decision semantics?
expected_evidence:
- governance mapping table
- review and approval examples
- id: gov-002
question: What evidence shows that access grants are reviewed, approved, remediated, or expired?
expected_evidence:
- access review records
- remediation or exception records
- id: gov-003
question: Who has decision rights for accepting, rejecting, or deferring integration gaps?
expected_evidence:
- decision authority statement
- accountable owner
- id: data
title: Data
canon_anchors:
- model/data
- profile/small-saas
questions:
- id: data-001
question: Which user-engine data objects contain identity, account, tenant, membership, role, permission, credential, or audit data?
expected_evidence:
- data object inventory
- processing purpose notes
- id: data-002
question: How are tenant partitioning, retention, residency, lineage, and processing purpose represented for user-management data?
expected_evidence:
- data boundary description
- tenant partition example
- id: security
title: Security
canon_anchors:
- model/security
- model/access-control
- profile/small-saas
questions:
- id: sec-001
question: How does user-engine represent credentials, sessions, privileged access, MFA or equivalent assurance, and secret handling boundaries?
expected_evidence:
- security concept mapping
- privileged access scenario
- id: sec-002
question: Which incidents, findings, or alerts can be linked to users, principals, tenants, controls, and evidence?
expected_evidence:
- incident linkage example
- finding or alert export
- id: task
title: Task
canon_anchors:
- model/task
- profile/small-saas
questions:
- id: task-001
question: Which onboarding, access request, review, remediation, deprovisioning, and integration-gap items map to WorkItem, Task, Request, ReviewTask, ApprovalTask, RemediationTask, or ChangeTask?
expected_evidence:
- lifecycle task examples
- task state mapping
- id: task-002
question: How does user-engine distinguish captured requests from committed implementation or remediation tasks?
expected_evidence:
- task commitment mapping
- backlog or issue examples
- id: purposes
title: PURPOSES
canon_anchors:
- model/purpose-demand-extension
- pattern/intent-scope-purposes
questions:
- id: pur-001
question: What consumer intent, scope, purposes, use cases, demand signals, and consumer needs does user-engine declare for canon integration?
expected_evidence:
- completed Canon Interface Card
- consumer purpose statement
- id: pur-002
question: Which purpose fit state applies to user-engine now, and which gaps create scope pressure or evolution requests for InfoTechCanon?
expected_evidence:
- purpose fit review
- requested evolution list

View File

@@ -0,0 +1,58 @@
id: evaluation/user-engine/small-saas-alignment
title: User Engine Small SaaS Alignment Lens
status: candidate
consumer: user-engine
evaluation_pack: evaluation/user-engine
profile: profile/small-saas
alignment_goal: Use small-saas as the concrete tenant-aware SaaS lens for user-management evaluation.
profile_requirements:
- required_concept: tenant
small_saas_artifacts:
- small-saas/tenant/acme
- small-saas/tenant/globex
user_engine_expectation: User-engine can represent tenant boundaries and bind users, accounts, roles, and evidence to them.
- required_concept: user
small_saas_artifacts:
- small-saas/user/ada-admin
user_engine_expectation: User-engine can map users separately from accounts, principals, subjects, and access grants.
- required_concept: team
small_saas_artifacts:
- small-saas/team/platform
user_engine_expectation: User-engine can represent team membership without treating teams as permission bundles.
- required_concept: policy
small_saas_artifacts:
- small-saas/policy/tenant-isolation
user_engine_expectation: User-engine access behavior can trace to governing policy.
- required_concept: control
small_saas_artifacts:
- small-saas/control/namespace-per-tenant
user_engine_expectation: User-engine can show which controls enforce tenant isolation or access boundaries.
- required_concept: evidence
small_saas_artifacts:
- small-saas/evidence/access-review-2026-05
user_engine_expectation: User-engine can provide or link evidence for access reviews and privileged grants.
- required_concept: task
small_saas_artifacts:
- small-saas/task/onboard-tenant
user_engine_expectation: User-engine can identify onboarding, access request, review, remediation, and deprovisioning work.
- required_concept: incident
small_saas_artifacts:
- small-saas/incident/cross-tenant-access-attempt
user_engine_expectation: User-engine can link access incidents or findings to users, principals, tenants, controls, and evidence.
conformance_questions:
- Can Ada Admin's tenant-admin grant for Acme be represented with user, subject, principal, role, tenant scope, policy, and evidence?
- Can Globex remain isolated from Ada Admin unless an explicit grant, scope, and evidence record exists?
- Can tenant isolation policy connect to control evidence and review records?
- Can onboarding a tenant create trackable work without implying that every request is already committed?
- Can any integration gap become an EvolutionRequest instead of an undocumented scope change?
pass_conditions:
- All required small-saas user-management artifacts have matching user-engine entities or explicit gaps.
- Access grants carry tenant scope, role, governing policy, and evidence.
- User, team, tenant, organization role, access role, subject, and principal are not collapsed into one concept.
- Evidence gaps are explicit and produce review or remediation work.
- PURPOSES fields identify current purpose fit and requested evolution.
failure_conditions:
- User-engine cannot distinguish organization roles from access roles.
- User-engine cannot trace privileged access to tenant scope and evidence.
- User-engine treats consumer demand as automatic producer scope.
- User-engine cannot produce a mapping export or completed interface card.

View File

@@ -1,5 +1,5 @@
root: infospace
file_count: 101
file_count: 111
files:
- path: README.md
directory: .
@@ -10,6 +10,21 @@ files:
- path: agent/briefs/concept-catalog-purpose-demand.md
directory: agent/briefs
name: concept-catalog-purpose-demand.md
- path: agent/briefs/evaluation-user-engine-consumer-workplan-brief.md
directory: agent/briefs
name: evaluation-user-engine-consumer-workplan-brief.md
- path: agent/briefs/evaluation-user-engine-interface-card-expectations.md
directory: agent/briefs
name: evaluation-user-engine-interface-card-expectations.md
- path: agent/briefs/evaluation-user-engine-questions.md
directory: agent/briefs
name: evaluation-user-engine-questions.md
- path: agent/briefs/evaluation-user-engine-small-saas-alignment.md
directory: agent/briefs
name: evaluation-user-engine-small-saas-alignment.md
- path: agent/briefs/evaluation-user-engine.md
directory: agent/briefs
name: evaluation-user-engine.md
- path: agent/briefs/example-consumer-purpose-portfolio.md
directory: agent/briefs
name: example-consumer-purpose-portfolio.md
@@ -106,6 +121,21 @@ files:
- path: concepts/purpose-demand.yaml
directory: concepts
name: purpose-demand.yaml
- path: evaluations/user-engine/consumer-workplan-brief.md
directory: evaluations/user-engine
name: consumer-workplan-brief.md
- path: evaluations/user-engine/evaluation-pack.yaml
directory: evaluations/user-engine
name: evaluation-pack.yaml
- path: evaluations/user-engine/interface-card-expectations.yaml
directory: evaluations/user-engine
name: interface-card-expectations.yaml
- path: evaluations/user-engine/questions.yaml
directory: evaluations/user-engine
name: questions.yaml
- path: evaluations/user-engine/small-saas-alignment.yaml
directory: evaluations/user-engine
name: small-saas-alignment.yaml
- path: examples/README.md
directory: examples
name: README.md

View File

@@ -1,9 +1,29 @@
concept_count: 59
concept_count: 64
concepts:
- concept: Purpose And Consumer Demand Concept Catalog
owner: concept-catalog/purpose-demand
path: concepts/purpose-demand.yaml
source: artifact_title
- concept: User Engine Canon Evaluation Pack
owner: evaluation/user-engine
path: evaluations/user-engine/evaluation-pack.yaml
source: artifact_title
- concept: User Engine Consumer Workplan Brief
owner: evaluation/user-engine/consumer-workplan-brief
path: evaluations/user-engine/consumer-workplan-brief.md
source: artifact_title
- concept: User Engine Canon Interface Card Expectations
owner: evaluation/user-engine/interface-card-expectations
path: evaluations/user-engine/interface-card-expectations.yaml
source: artifact_title
- concept: User Engine Canon Evaluation Questions
owner: evaluation/user-engine/questions
path: evaluations/user-engine/questions.yaml
source: artifact_title
- concept: User Engine Small SaaS Alignment Lens
owner: evaluation/user-engine/small-saas-alignment
path: evaluations/user-engine/small-saas-alignment.yaml
source: artifact_title
- concept: Canon-Side Consumer Purpose Portfolio
owner: example/consumer-purpose-portfolio
path: examples/consumer-purpose-portfolio.yaml

View File

@@ -1,5 +1,10 @@
artifacts:
- concept-catalog/purpose-demand
- 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
@@ -40,6 +45,70 @@ rows:
- conforms_to
model/governance:
- uses
- artifact: evaluation/user-engine
targets:
model/access-control:
- uses
model/data:
- uses
model/governance:
- uses
model/organization:
- uses
model/purpose-demand-extension:
- uses
model/security:
- uses
model/task:
- uses
profile/small-saas:
- evaluates
standard/caring:
- uses
- artifact: evaluation/user-engine/consumer-workplan-brief
targets:
evaluation/user-engine:
- part_of
model/purpose-demand-extension:
- uses
- artifact: evaluation/user-engine/interface-card-expectations
targets:
evaluation/user-engine:
- part_of
model/purpose-demand-extension:
- uses
standard/caring:
- uses
- artifact: evaluation/user-engine/questions
targets:
evaluation/user-engine:
- part_of
model/access-control:
- uses
model/data:
- uses
model/governance:
- uses
model/organization:
- uses
model/purpose-demand-extension:
- uses
model/security:
- uses
model/task:
- uses
- artifact: evaluation/user-engine/small-saas-alignment
targets:
evaluation/user-engine:
- part_of
model/access-control:
- uses
model/governance:
- uses
model/organization:
- uses
profile/small-saas:
- evaluates
- artifact: example/consumer-purpose-portfolio
targets:
model/purpose-demand-extension:

View File

@@ -1,14 +1,14 @@
{
"details": {
"artifact_count": 34,
"relationship_count": 129
"artifact_count": 39,
"relationship_count": 156
},
"errors": [],
"metrics": {
"coherence_components": 1.0,
"consistency_cycles": 0.0,
"coverage_ratio": 1.0,
"granularity_entropy": 2.4357138959313844,
"granularity_entropy": 2.9736210870457236,
"redundancy_ratio": 0.0
},
"ok": true,

View File

@@ -2,11 +2,16 @@
# By Concept
Concept count: **59**
Concept count: **64**
| Concept | Owner | Source |
| --- | --- | --- |
| Purpose And Consumer Demand Concept Catalog | `concept-catalog/purpose-demand` | `artifact_title` |
| User Engine Canon Evaluation Pack | `evaluation/user-engine` | `artifact_title` |
| User Engine Consumer Workplan Brief | `evaluation/user-engine/consumer-workplan-brief` | `artifact_title` |
| User Engine Canon Interface Card Expectations | `evaluation/user-engine/interface-card-expectations` | `artifact_title` |
| User Engine Canon Evaluation Questions | `evaluation/user-engine/questions` | `artifact_title` |
| User Engine Small SaaS Alignment Lens | `evaluation/user-engine/small-saas-alignment` | `artifact_title` |
| Canon-Side Consumer Purpose Portfolio | `example/consumer-purpose-portfolio` | `artifact_title` |
| InfoTechCanon Core | `kernel/itc-core` | `artifact_title` |
| InfoTechCanon Kernel Map | `kernel/itc-kernel-map` | `artifact_title` |

View File

@@ -6,6 +6,13 @@
- `model/purpose-demand-extension` via `introduces`
## `evaluation/user-engine`
- `evaluation/user-engine/consumer-workplan-brief` via `part_of`
- `evaluation/user-engine/interface-card-expectations` via `part_of`
- `evaluation/user-engine/questions` via `part_of`
- `evaluation/user-engine/small-saas-alignment` via `part_of`
## `kernel/itc-core`
- `concept-catalog/purpose-demand` via `conforms_to`
@@ -28,6 +35,9 @@
## `model/access-control`
- `evaluation/user-engine` via `uses`
- `evaluation/user-engine/questions` via `uses`
- `evaluation/user-engine/small-saas-alignment` via `uses`
- `kernel/itc-kernel-map` via `maps`
- `model/security` via `uses`
- `profile/small-saas` via `requires`
@@ -36,6 +46,8 @@
## `model/data`
- `evaluation/user-engine` via `uses`
- `evaluation/user-engine/questions` via `uses`
- `kernel/itc-kernel-map` via `maps`
- `profile/small-saas` via `requires`
- `small-saas/dataset/subscription-ledger` via `uses`
@@ -51,6 +63,9 @@
## `model/governance`
- `concept-catalog/purpose-demand` via `uses`
- `evaluation/user-engine` via `uses`
- `evaluation/user-engine/questions` via `uses`
- `evaluation/user-engine/small-saas-alignment` via `uses`
- `kernel/itc-kernel-map` via `maps`
- `mapping/purpose-demand-governance-candidates` via `maps`
- `model/access-control` via `uses`
@@ -89,6 +104,9 @@
## `model/organization`
- `evaluation/user-engine` via `uses`
- `evaluation/user-engine/questions` via `uses`
- `evaluation/user-engine/small-saas-alignment` via `uses`
- `kernel/itc-kernel-map` via `maps`
- `model/access-control` via `uses`
- `profile/small-saas` via `requires`
@@ -100,12 +118,18 @@
## `model/purpose-demand-extension`
- `evaluation/user-engine` via `uses`
- `evaluation/user-engine/consumer-workplan-brief` via `uses`
- `evaluation/user-engine/interface-card-expectations` via `uses`
- `evaluation/user-engine/questions` via `uses`
- `example/consumer-purpose-portfolio` via `illustrates`
- `mapping/purpose-demand-governance-candidates` via `maps`
- `pattern/intent-scope-purposes` via `implements`
## `model/security`
- `evaluation/user-engine` via `uses`
- `evaluation/user-engine/questions` via `uses`
- `kernel/itc-kernel-map` via `maps`
- `model/devsecops` via `uses`
- `model/network` via `uses`
@@ -116,6 +140,8 @@
## `model/task`
- `evaluation/user-engine` via `uses`
- `evaluation/user-engine/questions` via `uses`
- `kernel/itc-kernel-map` via `maps`
- `mapping/purpose-demand-governance-candidates` via `uses`
- `model/observability` via `uses`
@@ -132,6 +158,8 @@
## `profile/small-saas`
- `evaluation/user-engine` via `evaluates`
- `evaluation/user-engine/small-saas-alignment` via `evaluates`
- `example/consumer-purpose-portfolio` via `uses`
- `small-saas/control/namespace-per-tenant` via `instantiates`
- `small-saas/dataset/subscription-ledger` via `instantiates`
@@ -202,6 +230,8 @@
## `standard/caring`
- `evaluation/user-engine` via `uses`
- `evaluation/user-engine/interface-card-expectations` via `uses`
- `kernel/itc-kernel-map` via `maps`
- `profile/small-saas` via `requires`
- `small-saas/control/namespace-per-tenant` via `uses`

View File

@@ -2,39 +2,44 @@
# Import Matrix
| Artifact | `concept-catalog/purpose-demand` | `example/consumer-purpose-portfolio` | `kernel/itc-core` | `kernel/itc-kernel-map` | `mapping/purpose-demand-governance-candidates` | `model/access-control` | `model/data` | `model/devsecops` | `model/governance` | `model/information-space` | `model/landscape` | `model/network` | `model/observability` | `model/organization` | `model/purpose-demand-extension` | `model/security` | `model/task` | `pattern/intent-scope-purposes` | `profile/small-saas` | `small-saas/control/namespace-per-tenant` | `small-saas/dataset/subscription-ledger` | `small-saas/deployment/production` | `small-saas/evidence/access-review-2026-05` | `small-saas/incident/cross-tenant-access-attempt` | `small-saas/policy/tenant-isolation` | `small-saas/service/billing-portal` | `small-saas/system/billing-system` | `small-saas/task/onboard-tenant` | `small-saas/team/platform` | `small-saas/tenant/acme` | `small-saas/tenant/globex` | `small-saas/user/ada-admin` | `standard/caring` | `standard/tagging` |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| `concept-catalog/purpose-demand` | | | `conforms_to` | | | | | | `uses` | | | | | | | | | | | | | | | | | | | | | | | | | |
| `example/consumer-purpose-portfolio` | | | | | | | | | | | | | | | `illustrates` | | | `illustrates` | `uses` | | | | | | | | | | | | | | | |
| `kernel/itc-core` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| `kernel/itc-kernel-map` | | | `maps` | | | `maps` | `maps` | `maps` | `maps` | `maps` | `maps` | `maps` | `maps` | `maps` | | `maps` | `maps` | | | | | | | | | | | | | | | | `maps` | `maps` |
| `mapping/purpose-demand-governance-candidates` | | | | | | | | | `maps` | | | | | | `maps` | | `uses` | | | | | | | | | | | | | | | | | |
| `model/access-control` | | | `conforms_to` | | | | | | `uses` | | | | | `uses` | | | | | | | | | | | | | | | | | | | | |
| `model/data` | | | `conforms_to` | | | | | | `uses` | | | | | | | | | | | | | | | | | | | | | | | | | |
| `model/devsecops` | | | `conforms_to` | | | | | | | | | | | | | `uses` | | | | | | | | | | | | | | | | | | |
| `model/governance` | | | `conforms_to` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| `model/information-space` | | | `conforms_to` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| `model/landscape` | | | `conforms_to` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| `model/network` | | | `conforms_to` | | | | | | | | | | | | | `uses` | | | | | | | | | | | | | | | | | | |
| `model/observability` | | | `conforms_to` | | | | | | | | | | | | | | `uses` | | | | | | | | | | | | | | | | | |
| `model/organization` | | | `conforms_to` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| `model/purpose-demand-extension` | `introduces` | | `conforms_to` | | | | | | `extends` | `uses` | | | | | | | `uses` | | | | | | | | | | | | | | | | | |
| `model/security` | | | `conforms_to` | | | `uses` | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| `model/task` | | | `conforms_to` | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| `pattern/intent-scope-purposes` | | | | | | | | | `uses` | | | | | | `implements` | | `uses` | | | | | | | | | | | | | | | | | |
| `profile/small-saas` | | | `conforms_to` | | | `requires` | `requires` | `requires` | `requires` | | `requires` | `requires` | `requires` | `requires` | | `requires` | `requires` | | | | | | | | | | | | | | | | `requires` | `requires` |
| `small-saas/control/namespace-per-tenant` | | | | | | | | | | | | | | | | `uses` | | | `instantiates` | | | | `evidenced_by` | | | | | | | | | | `uses` | |
| `small-saas/dataset/subscription-ledger` | | | | | | | `uses` | | | | | | | | | | | | `instantiates` | | | | | | `governed_by` | `owned_by` | | | | `partitioned_for` | `partitioned_for` | | | |
| `small-saas/deployment/production` | | | | | | | | `uses` | | | | `uses` | | | | | | | `instantiates` | `implements` | | | | | | `deploys` | | | | `separates` | `separates` | | | |
| `small-saas/evidence/access-review-2026-05` | | | | | | | | | | | | | `uses` | | | | | | `instantiates` | | | | | | | | | | | | | | | |
| `small-saas/incident/cross-tenant-access-attempt` | | | | | | | | | | | | | | | | `uses` | | | `instantiates` | `constrained_by` | | | `evidenced_by` | | | | | | | | | | | |
| `small-saas/policy/tenant-isolation` | | | | | | | | | `uses` | | | | | | | | | | `instantiates` | `requires` | | | `evidenced_by` | | | | | | | | | | | |
| `small-saas/service/billing-portal` | | | | | | | | | | | `uses` | | | | | | | | `instantiates` | | | | | | | | `part_of` | | `owned_by` | | | | | |
| `small-saas/system/billing-system` | | | | | | | | | | | `uses` | | | | | | | | `instantiates` | | | | | | | | | | | `serves` | `serves` | | | |
| `small-saas/task/onboard-tenant` | | | | | | | | | | | | | | | | | `uses` | | `instantiates` | | | | | | `governed_by` | | | | `owned_by` | `changes` | | | | |
| `small-saas/team/platform` | | | | | | | | | | | | | | `uses` | | | | | `instantiates` | | | | | | | | | | | | | | | |
| `small-saas/tenant/acme` | | | | | | | | | | | | | | `uses` | | | | | `instantiates` | `isolated_by` | | | | | | | | | | | | `represented_by` | | |
| `small-saas/tenant/globex` | | | | | | | | | | | | | | `uses` | | | | | `instantiates` | `isolated_by` | | | | | | | | | | | | | | |
| `small-saas/user/ada-admin` | | | | | | `uses` | | | | | | | | `uses` | | | | | `instantiates` | | | | `access_evidenced_by` | | `has_access_under` | | | | `member_of` | | | | | |
| `standard/caring` | | | `conforms_to` | | | `imports` | `imports` | `imports` | `imports` | | | `imports` | `imports` | `imports` | | `imports` | `imports` | | | | | | | | | | | | | | | | | `imports` |
| `standard/tagging` | | | `conforms_to` | | | | | | | | | | | | | | `imports` | | | | | | | | | | | | | | | | | |
| Artifact | `concept-catalog/purpose-demand` | `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` |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| `concept-catalog/purpose-demand` | | | | | | | | `conforms_to` | | | | | | `uses` | | | | | | | | | | | | | | | | | | | | | | | | | |
| `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` | | | | | | | | | | | | | | | | | |

View File

@@ -3,18 +3,23 @@
# Kernel Overview
- Infospace: `canon`
- Artifacts: 34
- Artifacts: 39
## Artifact Kinds
- `concept-catalog`: 1
- `consumer-workplan-brief`: 1
- `evaluation-pack`: 1
- `evaluation-question-set`: 1
- `example`: 1
- `interface-card-expectation`: 1
- `kernel`: 2
- `mapping`: 1
- `model`: 11
- `model-extension`: 1
- `pattern`: 1
- `profile`: 1
- `profile-alignment`: 1
- `profile-artifact`: 13
- `standard`: 2
@@ -25,6 +30,7 @@
- `conforms_to`: 16
- `constrained_by`: 1
- `deploys`: 1
- `evaluates`: 2
- `evidenced_by`: 3
- `extends`: 1
- `governed_by`: 2
@@ -38,10 +44,10 @@
- `maps`: 16
- `member_of`: 1
- `owned_by`: 3
- `part_of`: 1
- `part_of`: 5
- `partitioned_for`: 2
- `represented_by`: 1
- `requires`: 13
- `separates`: 2
- `serves`: 2
- `uses`: 30
- `uses`: 51

View File

@@ -2,11 +2,16 @@
# Repository Tree
File count: **101**
File count: **111**
- `README.md`
- `agent/README.md`
- `agent/briefs/concept-catalog-purpose-demand.md`
- `agent/briefs/evaluation-user-engine-consumer-workplan-brief.md`
- `agent/briefs/evaluation-user-engine-interface-card-expectations.md`
- `agent/briefs/evaluation-user-engine-questions.md`
- `agent/briefs/evaluation-user-engine-small-saas-alignment.md`
- `agent/briefs/evaluation-user-engine.md`
- `agent/briefs/example-consumer-purpose-portfolio.md`
- `agent/briefs/kernel-itc-core.md`
- `agent/briefs/kernel-itc-kernel-map.md`
@@ -39,6 +44,11 @@ File count: **101**
- `artifacts/index.yaml`
- `assimilation/README.md`
- `concepts/purpose-demand.yaml`
- `evaluations/user-engine/consumer-workplan-brief.md`
- `evaluations/user-engine/evaluation-pack.yaml`
- `evaluations/user-engine/interface-card-expectations.yaml`
- `evaluations/user-engine/questions.yaml`
- `evaluations/user-engine/small-saas-alignment.yaml`
- `examples/README.md`
- `examples/consumer-purpose-portfolio.yaml`
- `examples/small-saas/README.md`

View File

@@ -11,12 +11,17 @@ import yaml
GENERATED_NOTICE = "<!-- GENERATED by info_tech_canon; do not edit by hand. -->"
RETRIEVAL_ARTIFACT_KINDS = {
"concept-catalog",
"consumer-workplan-brief",
"evaluation-pack",
"evaluation-question-set",
"example",
"interface-card-expectation",
"kernel",
"mapping",
"model",
"model-extension",
"pattern",
"profile-alignment",
"profile",
"standard",
}
@@ -756,6 +761,7 @@ def _render_consumer_brief(consumer_id: str) -> str:
"- `agent/templates/canon-interface-card.template.yaml`",
"- `models/governance/InfoTechCanonPurposeDemandExtension.md`",
"- `patterns/intent-scope-purposes.md`",
"- `evaluations/user-engine/evaluation-pack.yaml`",
"- `examples/consumer-purpose-portfolio.yaml`",
"- `profiles/small-saas/profile.yaml`",
"- `views/by-concept.md`",
@@ -826,14 +832,24 @@ def _summary_for_artifact(artifact: Any) -> str:
return f"Example artifact for the {artifact.provenance.get('profile', 'unknown')} profile: {artifact.title}."
if artifact.kind == "concept-catalog":
return f"Structured candidate concept catalog: {artifact.title}."
if artifact.kind == "consumer-workplan-brief":
return f"Consumer repo workplan seed brief: {artifact.title}."
if artifact.kind == "evaluation-pack":
return f"Machine-readable canon-side evaluation pack: {artifact.title}."
if artifact.kind == "evaluation-question-set":
return f"Structured canon evaluation question set: {artifact.title}."
if artifact.kind == "example":
return f"Canon-side example artifact: {artifact.title}."
if artifact.kind == "interface-card-expectation":
return f"Expected Canon Interface Card fields and mappings: {artifact.title}."
if artifact.kind == "mapping":
return f"Mapping artifact connecting canon surfaces: {artifact.title}."
if artifact.kind == "model-extension":
return f"Candidate extension to an existing canon model: {artifact.title}."
if artifact.kind == "pattern":
return f"Reusable canon pattern: {artifact.title}."
if artifact.kind == "profile-alignment":
return f"Profile-specific evaluation alignment artifact: {artifact.title}."
if artifact.kind == "profile":
return f"Profile that constrains canon artifacts for a practical implementation slice: {artifact.title}."
if artifact.kind == "kernel":

View File

@@ -54,12 +54,17 @@ REQUIRED_SCHEMAS = (
RETRIEVAL_BRIEF_KINDS = {
"concept-catalog",
"consumer-workplan-brief",
"evaluation-pack",
"evaluation-question-set",
"example",
"interface-card-expectation",
"kernel",
"mapping",
"model",
"model-extension",
"pattern",
"profile-alignment",
"profile",
"standard",
}
@@ -90,6 +95,50 @@ PURPOSE_REQUIRED_CONSUMERS = {
"repo-scoping",
}
USER_ENGINE_EVALUATION_ARTIFACT_IDS = {
"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",
}
USER_ENGINE_QUESTION_DOMAINS = {
"access-control",
"data",
"governance",
"organization",
"purposes",
"security",
"task",
}
USER_ENGINE_REQUIRED_ENTITY_IDS = {
"access-role",
"account",
"control",
"evidence",
"organization-role",
"policy",
"principal",
"subject",
"team",
"tenant",
"user",
}
USER_ENGINE_REQUIRED_EDGE_TYPES = {
"assigned_role",
"authenticates_as",
"belongs_to_tenant",
"evidenced_by",
"evaluated_as",
"governed_by",
"implemented_by",
"member_of",
"scoped_to",
}
def structural_checks(context: Any) -> dict[str, list[dict[str, Any]]]:
errors: list[dict[str, Any]] = []
@@ -102,6 +151,11 @@ def structural_checks(context: Any) -> dict[str, list[dict[str, Any]]]:
_check_artifact_index(context.repo_root, context.infospace_root, errors)
_check_agent_assets(context.infospace_root, context.infospace.artifacts, errors)
_check_purpose_demand_assets(context.infospace_root, context.infospace.artifacts, errors)
_check_user_engine_evaluation_assets(
context.infospace_root,
context.infospace.artifacts,
errors,
)
_check_optional_assets(context.infospace_root, warnings)
return {"errors": errors, "warnings": warnings}
@@ -522,6 +576,149 @@ def _check_purpose_demand_assets(
)
def _check_user_engine_evaluation_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(USER_ENGINE_EVALUATION_ARTIFACT_IDS - artifact_ids):
errors.append(
{
"code": "missing_user_engine_evaluation_artifact",
"artifact_id": artifact_id,
}
)
pack = _read_yaml(
infospace_root / "evaluations" / "user-engine" / "evaluation-pack.yaml",
errors,
)
if isinstance(pack, dict):
components = pack.get("pack_components") or {}
if not isinstance(components, dict):
errors.append(
{
"code": "invalid_user_engine_pack_components",
"path": "infospace/evaluations/user-engine/evaluation-pack.yaml",
}
)
else:
for component in (
"questions",
"interface_card_expectations",
"small_saas_alignment",
"consumer_workplan_brief",
):
if not components.get(component):
errors.append(
{
"code": "missing_user_engine_pack_component",
"component": component,
}
)
questions = _read_yaml(
infospace_root / "evaluations" / "user-engine" / "questions.yaml",
errors,
)
if isinstance(questions, dict):
domains = questions.get("question_domains") or []
domain_ids = {
str(domain.get("id"))
for domain in domains
if isinstance(domain, dict) and domain.get("id")
}
for domain_id in sorted(USER_ENGINE_QUESTION_DOMAINS - domain_ids):
errors.append(
{
"code": "missing_user_engine_question_domain",
"domain": domain_id,
}
)
for domain in domains:
if isinstance(domain, dict) and not domain.get("questions"):
errors.append(
{
"code": "empty_user_engine_question_domain",
"domain": domain.get("id"),
}
)
expectations = _read_yaml(
infospace_root
/ "evaluations"
/ "user-engine"
/ "interface-card-expectations.yaml",
errors,
)
if isinstance(expectations, dict):
entity_ids = {
str(entity.get("id"))
for entity in expectations.get("expected_entities") or []
if isinstance(entity, dict) and entity.get("id")
}
for entity_id in sorted(USER_ENGINE_REQUIRED_ENTITY_IDS - entity_ids):
errors.append(
{
"code": "missing_user_engine_expected_entity",
"entity": entity_id,
}
)
edge_types = {
str(edge.get("type"))
for edge in expectations.get("expected_edges") or []
if isinstance(edge, dict) and edge.get("type")
}
for edge_type in sorted(USER_ENGINE_REQUIRED_EDGE_TYPES - edge_types):
errors.append(
{
"code": "missing_user_engine_expected_edge",
"edge": edge_type,
}
)
evidence = expectations.get("evidence_required") or []
if not isinstance(evidence, list) or not evidence:
errors.append(
{
"code": "missing_user_engine_evidence_expectations",
"path": "infospace/evaluations/user-engine/interface-card-expectations.yaml",
}
)
alignment = _read_yaml(
infospace_root
/ "evaluations"
/ "user-engine"
/ "small-saas-alignment.yaml",
errors,
)
if isinstance(alignment, dict):
if alignment.get("profile") != "profile/small-saas":
errors.append(
{
"code": "invalid_user_engine_alignment_profile",
"value": alignment.get("profile"),
}
)
if not alignment.get("profile_requirements"):
errors.append(
{
"code": "missing_user_engine_profile_requirements",
"path": "infospace/evaluations/user-engine/small-saas-alignment.yaml",
}
)
brief_path = infospace_root / "evaluations" / "user-engine" / "consumer-workplan-brief.md"
if not brief_path.is_file():
errors.append(
{
"code": "missing_user_engine_consumer_workplan_brief",
"path": "infospace/evaluations/user-engine/consumer-workplan-brief.md",
}
)
def _artifact_paths_by_path(
infospace_root: Path,
errors: list[dict[str, Any]],

View File

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

View File

@@ -19,15 +19,20 @@ def test_inspect_canon_counts_artifact_kinds() -> None:
assert payload["ok"] is True
assert payload["infospace"]["slug"] == "canon"
assert payload["infospace"]["artifact_count"] == 34
assert payload["infospace"]["artifact_count"] == 39
assert payload["infospace"]["kinds"] == {
"concept-catalog": 1,
"consumer-workplan-brief": 1,
"evaluation-pack": 1,
"evaluation-question-set": 1,
"example": 1,
"interface-card-expectation": 1,
"kernel": 2,
"mapping": 1,
"model": 11,
"model-extension": 1,
"pattern": 1,
"profile-alignment": 1,
"profile": 1,
"profile-artifact": 13,
"standard": 2,
@@ -45,14 +50,14 @@ def test_validate_canon_passes_scaffold() -> None:
assert payload["ok"] is True
assert payload["errors"] == []
assert "warnings" in payload
assert payload["details"]["artifact_count"] == 34
assert payload["details"]["artifact_count"] == 39
def test_graph_exports_relationship_summary() -> None:
payload = artifact_graph()
assert payload["ok"] is True
assert payload["graph"]["node_count"] == 34
assert payload["graph"]["node_count"] == 39
assert payload["graph"]["edge_count"] > 15
@@ -95,6 +100,7 @@ def test_generators_write_expected_assets(tmp_path) -> None:
assert (
root / "agent" / "briefs" / "model-purpose-demand-extension.md"
).is_file()
assert (root / "agent" / "briefs" / "evaluation-user-engine.md").is_file()
assert (root / "agent" / "briefs" / "pattern-intent-scope-purposes.md").is_file()
assert (
root / "agent" / "templates" / "canon-interface-card.template.yaml"

View File

@@ -4,7 +4,7 @@ type: workplan
title: "User Engine Evaluation Readiness"
domain: canon
repo: info-tech-canon
status: proposed
status: finished
priority: high
created: "2026-05-23"
updated: "2026-05-23"
@@ -35,7 +35,7 @@ governance expectations, and integration boundaries.
```task
id: ITC-WP-0007-T01
status: todo
status: done
priority: high
state_hub_task_id: "17d5792f-7452-4179-b346-f8c976fbe2eb"
```
@@ -48,7 +48,7 @@ state_hub_task_id: "17d5792f-7452-4179-b346-f8c976fbe2eb"
```task
id: ITC-WP-0007-T02
status: todo
status: done
priority: high
state_hub_task_id: "d44c6608-14d8-44cc-80a8-9959296da286"
```
@@ -61,7 +61,7 @@ state_hub_task_id: "d44c6608-14d8-44cc-80a8-9959296da286"
```task
id: ITC-WP-0007-T03
status: todo
status: done
priority: medium
state_hub_task_id: "fa1e3da2-1990-4945-8d53-140ad4bedcbf"
```
@@ -73,7 +73,7 @@ state_hub_task_id: "fa1e3da2-1990-4945-8d53-140ad4bedcbf"
```task
id: ITC-WP-0007-T04
status: todo
status: done
priority: medium
state_hub_task_id: "ffcd728f-b5eb-4449-945b-1a3f8a9640de"
```
@@ -91,3 +91,15 @@ state_hub_task_id: "ffcd728f-b5eb-4449-945b-1a3f8a9640de"
- InfoTechCanon can evaluate user-engine before integration work begins.
- The evaluation pack is machine-readable enough for CLI/API use.
- A consumer workplan brief exists for user-engine.
## Implementation Notes
- Added a machine-readable user-engine evaluation pack under
`infospace/evaluations/user-engine/`.
- Added domain question coverage for Organization, Access Control, Governance,
Data, Security, Task, and PURPOSES.
- Added Canon Interface Card expectations, required entity and edge mappings,
evidence expectations, and small-saas alignment checks.
- Added a consumer workplan brief for the user-engine repo.
- Extended validation and retrieval generation so user-engine evaluation assets
are indexed, briefed, and checked.

View File

@@ -95,7 +95,7 @@ workplans:
- id: ITC-WP-0007
title: User Engine Evaluation Readiness
status: proposed
status: finished
priority: high
path: workplans/ITC-WP-0007-user-engine-evaluation-readiness.md
depends_on: