Make profile runtime readiness explicit
Some checks failed
ci / validate (push) Has been cancelled

Assistant: codex
Assistant-Model: gpt-5.6-sol
Assistant-Session: 01a0233b-178d-7162-b92f-31a31ea8ca9b
This commit is contained in:
tegwick 2026-08-23 11:32:23 +02:00
parent a224e71555
commit cac605abd7
19 changed files with 339 additions and 41 deletions

View file

@ -71,6 +71,14 @@ def test_committed_catalog_resolves_both_constellations() -> None:
"rein-aharness",
"rein-openweights",
}
assert {
(context.profile.id, context.operational_readiness.status)
for context in contexts
} == {
("harness.agent-dev-local", "blocked"),
("harness.agent-dev-openweights-local", "blocked"),
("harness.agent-dev", "unverified"),
}
profile, descriptor = catalog.resolve(
"harness.agent-dev-openweights-local@1.0.0"
)
@ -89,6 +97,41 @@ def test_committed_catalog_resolves_both_constellations() -> None:
assert rein.budget_tokens == 60000
def test_ready_profile_requires_an_evidence_reference(tmp_path) -> None:
profiles = tmp_path / "profiles"
reins = tmp_path / "reins"
profiles.mkdir()
reins.mkdir()
_write(
profiles,
"profile.yaml",
_profile(
extra="""operational_readiness:
status: ready
reason: proof completed
owner: tests
"""
),
)
_write(reins, "rein.yaml", _rein())
with pytest.raises(ProfileError, match="ready operational status requires evidence_ref"):
ProfileCatalog(profiles, reins).profiles()
def test_undeclared_readiness_defaults_to_unverified(tmp_path) -> None:
profiles = tmp_path / "profiles"
reins = tmp_path / "reins"
profiles.mkdir()
reins.mkdir()
_write(profiles, "profile.yaml", _profile())
_write(reins, "rein.yaml", _rein())
context = ProfileCatalog(profiles, reins).resolve_context("harness.test@1.0.0")
assert context.operational_readiness.status == "unverified"
assert context.operational_readiness.reason == "no operational proof declared"
def test_unknown_profile_fails_closed() -> None:
with pytest.raises(UnknownProfileError, match="unknown harness profile"):
ProfileCatalog().resolve("harness.missing@1.0.0")