Add deterministic quality gate outcomes

This commit is contained in:
2026-05-15 15:37:00 +02:00
parent 7851eae42f
commit 83d5044ff4
11 changed files with 449 additions and 18 deletions

View File

@@ -4,6 +4,10 @@ from collections.abc import Sequence
from dataclasses import asdict, replace
from typing import Any
from repo_registry.acceptance import (
blocking_quality_gate_outcomes,
evaluate_candidate_capability_quality,
)
from repo_registry.core.models import (
AbilitySummary,
AnalysisRunDiff,
@@ -609,6 +613,13 @@ class RegistryService:
self,
capability: CandidateCapability,
) -> tuple[bool, str]:
gate_outcomes = evaluate_candidate_capability_quality(capability)
blocking_outcomes = blocking_quality_gate_outcomes(gate_outcomes)
if blocking_outcomes:
criteria = ", ".join(
sorted({outcome.criterion_id for outcome in blocking_outcomes})
)
return False, f"quality gates require review ({criteria})"
has_source_refs = bool(capability.source_refs) or any(
feature.source_refs for feature in capability.features
)