feat(ITC-WP-0016): establish PracticePattern language
All checks were successful
CI Smoke / host-smoke (push) Successful in 1s
CI Smoke / container-smoke (push) Successful in 1s

Assistant: codex
Assistant-Model: gpt-5.6-sol
Assistant-Session: 01a025c2-407a-7a32-b40a-f37a52f03f62
This commit is contained in:
tegwick 2026-08-21 22:22:46 +02:00
parent 5e2435aaf9
commit 149d2ced70
27 changed files with 1119 additions and 99 deletions

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"] == 68
assert payload["infospace"]["artifact_count"] == 70
def test_cli_missing_profile_uses_structured_error(capsys) -> None:

View file

@ -5,6 +5,7 @@ from info_tech_canon.service import (
generate_indexes,
generate_tree,
inspect_canon,
list_artifacts,
list_models,
list_standards,
profile_graph,
@ -24,7 +25,7 @@ def test_inspect_canon_counts_artifact_kinds() -> None:
assert payload["ok"] is True
assert payload["infospace"]["slug"] == "canon"
assert payload["infospace"]["artifact_count"] == 68
assert payload["infospace"]["artifact_count"] == 70
assert payload["infospace"]["kinds"] == {
"access-descriptor-set": 1,
"alignment-review-kit": 1,
@ -58,6 +59,8 @@ def test_inspect_canon_counts_artifact_kinds() -> None:
"native-concept-map": 1,
"pattern": 1,
"practice": 1,
"practice-pattern": 1,
"practice-pattern-scheme": 1,
"profile-alignment": 1,
"profile": 1,
"profile-artifact": 13,
@ -96,17 +99,27 @@ def test_validate_canon_passes_scaffold() -> None:
assert payload["ok"] is True
assert payload["errors"] == []
assert "warnings" in payload
assert payload["details"]["artifact_count"] == 68
assert payload["details"]["artifact_count"] == 70
def test_graph_exports_relationship_summary() -> None:
payload = artifact_graph()
assert payload["ok"] is True
assert payload["graph"]["node_count"] == 68
assert payload["graph"]["node_count"] == 70
assert payload["graph"]["edge_count"] > 15
def test_interface_deprecation_strangler_is_a_registered_practice_pattern() -> None:
payload = list_artifacts(kind="practice-pattern")
assert payload["count"] == 1
pattern = payload["artifacts"][0]
assert pattern["id"] == "practice-pattern/interface-deprecation-strangler"
assert pattern["title"] == "InterfaceDeprecationStrangler"
assert pattern["path"] == "patterns/InterfaceDeprecationStrangler.md"
def test_capability_review_joins_a_minimal_record(tmp_path) -> None:
record = {
"record_id": "test",