Introduce shared evidence model and governance imports
Assistant: codex Assistant-Model: gpt-6-astra Assistant-Session: 01a070b5-4994-7271-bd8b-7c3dbcedec4b
This commit is contained in:
parent
305a4d6bd8
commit
a2b254786e
54 changed files with 854 additions and 177 deletions
|
|
@ -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"] == 76
|
||||
assert payload["infospace"]["artifact_count"] == 77
|
||||
|
||||
|
||||
def test_cli_missing_profile_uses_structured_error(capsys) -> None:
|
||||
|
|
|
|||
28
tests/test_evidence_boundary.py
Normal file
28
tests/test_evidence_boundary.py
Normal file
|
|
@ -0,0 +1,28 @@
|
|||
import re
|
||||
|
||||
from info_tech_canon.generation import concept_ownership
|
||||
from info_tech_canon.service import load_context
|
||||
|
||||
|
||||
def test_shared_evidence_has_one_retrievable_owner():
|
||||
context = load_context()
|
||||
concepts = concept_ownership(context)["concepts"]
|
||||
for name in ["Evidence", "Evidence Source", "Adjudication Outcome", "Evidence strength"]:
|
||||
assert {item["owner"] for item in concepts if item["concept"] == name} == {"model/evidence"}
|
||||
artifacts = {item.id: item for item in context.infospace.artifacts}
|
||||
assert "model/evidence" in artifacts
|
||||
assert "model/evidence" in (context.infospace_root / "artifacts/index.yaml").read_text()
|
||||
|
||||
|
||||
def test_live_governance_ownership_lists_do_not_reclaim_evidence():
|
||||
root = load_context().infospace_root
|
||||
for path in [*(root / "models").rglob("*.md"), *(root / "standards").rglob("*.md")]:
|
||||
text = path.read_text()
|
||||
for clause in re.findall(r"Governance owns([^.\n]*)", text, re.I):
|
||||
owned_clause = re.split(r"\band imports\b", clause, flags=re.I)[0]
|
||||
assert not re.search(r"\bevidence\b", owned_clause, re.I), str(path)
|
||||
for block in re.findall(r"(?:The )?Governance Model owns[^\n]*:\n\n```[^\n]*\n(.*?)```", text, re.S):
|
||||
assert "Evidence" not in block.splitlines(), str(path)
|
||||
gov = (root / "models/governance/InfoTechCanonGovernanceModel.md").read_text()
|
||||
assert "**Evidence** is" not in gov
|
||||
assert "itc-evid:Evidence (assertion drawn_from itc-evid:Evidence Source)" in gov
|
||||
|
|
@ -25,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"] == 76
|
||||
assert payload["infospace"]["artifact_count"] == 77
|
||||
assert payload["infospace"]["kinds"] == {
|
||||
"access-descriptor-set": 1,
|
||||
"alignment-review-kit": 1,
|
||||
|
|
@ -53,7 +53,7 @@ def test_inspect_canon_counts_artifact_kinds() -> None:
|
|||
"kernel": 2,
|
||||
"mapping": 3,
|
||||
"mapping-expectation": 1,
|
||||
"model": 12,
|
||||
"model": 13,
|
||||
"model-extension": 1,
|
||||
"model-selection-guide": 1,
|
||||
"native-concept-map": 1,
|
||||
|
|
@ -70,7 +70,7 @@ def test_inspect_canon_counts_artifact_kinds() -> None:
|
|||
|
||||
|
||||
def test_model_and_standard_lists_are_filtered() -> None:
|
||||
assert list_models()["count"] == 12
|
||||
assert list_models()["count"] == 13
|
||||
assert list_standards()["count"] == 4
|
||||
|
||||
|
||||
|
|
@ -99,14 +99,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"] == 76
|
||||
assert payload["details"]["artifact_count"] == 77
|
||||
|
||||
|
||||
def test_graph_exports_relationship_summary() -> None:
|
||||
payload = artifact_graph()
|
||||
|
||||
assert payload["ok"] is True
|
||||
assert payload["graph"]["node_count"] == 76
|
||||
assert payload["graph"]["node_count"] == 77
|
||||
assert payload["graph"]["edge_count"] > 15
|
||||
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue