from repo_scoping.acceptance import ( active_quality_criteria_version, criteria_registry_markdown, load_quality_criteria, ) def test_quality_criteria_registry_is_versioned_and_reviewable(): registry = load_quality_criteria() assert registry.schema_version == "quality-criteria-registry/v1" assert registry.criteria_version == "repo-scoping-quality-criteria/v1" assert registry.status == "active" assert {criterion.id for criterion in registry.criteria} == { "RREG-QC-001", "RREG-QC-002", "RREG-QC-003", "RREG-QC-004", "RREG-QC-005", "RREG-QC-006", "RREG-QC-007", "RREG-QC-008", } for criterion in registry.criteria: assert criterion.description assert criterion.severity in {"low", "medium", "high", "critical"} assert criterion.deterministic_action in { "pass", "requires_review", "downgraded", "rejected", "invalidated", "merged", "flagged", } assert criterion.deterministic_action != "approve" assert criterion.deterministic_action_when assert criterion.reviewer_guidance def test_quality_criteria_markdown_lists_transparent_review_guidance(): registry = load_quality_criteria() markdown = criteria_registry_markdown(registry) assert "# Quality Criteria Registry" in markdown assert "RREG-QC-002: Native Utility Is Repo-Owned" in markdown assert "Deterministic action: `downgraded`" in markdown assert "Reviewer guidance:" in markdown def test_active_quality_criteria_version_matches_registry(): assert active_quality_criteria_version() == "repo-scoping-quality-criteria/v1"