Add self-scoping baseline workplans and artifacts

This commit is contained in:
2026-05-15 12:26:36 +02:00
parent a6e1e2f16a
commit 90bae27237
7 changed files with 1592 additions and 0 deletions

View File

@@ -0,0 +1,112 @@
import json
from pathlib import Path
ROOT = Path(__file__).resolve().parents[1]
SCHEMA_PATH = ROOT / "docs" / "schemas" / "self-scoping-assessment.schema.json"
KNOWN_BAD_PATH = (
ROOT
/ "docs"
/ "self-scoping"
/ "assessments"
/ "repo-scoping-known-bad-2026-05-15-run-39.json"
)
GOLDEN_PROFILE_PATH = (
ROOT
/ "docs"
/ "self-scoping"
/ "golden"
/ "repo-scoping-golden-profile.v1.json"
)
def load_json(path: Path) -> dict:
return json.loads(path.read_text(encoding="utf-8"))
def test_self_scoping_assessment_schema_requires_release_binding_metadata():
schema = load_json(SCHEMA_PATH)
required = set(schema["required"])
engine_required = set(schema["$defs"]["engineIdentity"]["required"])
assert {
"target_repository",
"engine_identity",
"execution",
"assessment",
"fact_summary",
"generated_tree",
"known_regression_patterns",
} <= required
assert {
"repo_scoping_version",
"engine_commit",
"engine_release",
"engine_dirty_state",
"scanner_version",
"candidate_generator_version",
"quality_criteria_version",
"prompt_version",
"release_binding_status",
} <= engine_required
assert schema["$defs"]["engineIdentity"]["properties"]["release_binding_status"][
"enum"
] == ["complete", "historical_incomplete", "unbound"]
def test_known_bad_self_scoping_artifact_captures_rejected_regression_seed():
artifact = load_json(KNOWN_BAD_PATH)
assert artifact["schema_version"] == "self-scoping-assessment/v1"
assert artifact["artifact_id"] == "repo-scoping-known-bad-2026-05-15-run-39"
assert artifact["target_repository"]["repo_slug"] == "repo-scoping"
assert artifact["execution"]["analysis_run_id"] == 39
assert artifact["assessment"]["role"] == "negative_regression_seed"
assert artifact["assessment"]["outcome"] == "rejected"
assert (
artifact["engine_identity"]["release_binding_status"]
== "historical_incomplete"
)
capability_names = {
capability["name"]
for ability in artifact["generated_tree"]["abilities"]
for capability in ability["capabilities"]
}
regression_ids = {item["id"] for item in artifact["known_regression_patterns"]}
assert "Route LLM Requests Across Providers" in capability_names
assert {"RREG-SELF-REG-001", "RREG-SELF-REG-002", "RREG-SELF-REG-003"} <= regression_ids
assert artifact["fact_summary"]["counts_by_kind"]["llm_provider"] == 41
def test_golden_profile_names_expected_native_capabilities_and_forbidden_false_positive():
profile = load_json(GOLDEN_PROFILE_PATH)
expected_capability_names = {
capability["name"]
for capability in profile["ability"]["expected_capabilities"]
}
forbidden_names = {
capability["name"] for capability in profile["forbidden_native_capabilities"]
}
assert profile["schema_version"] == "self-scoping-golden-profile/v1"
assert profile["repo_slug"] == "repo-scoping"
assert {
"Register And Track Repositories",
"Scan Repositories Into Observed Facts",
"Index Source Content With Provenance",
"Generate Reviewable Candidate Characteristics",
"Review And Approve Candidate Characteristics",
"Search Compare And Export Approved Profiles",
"Generate And Maintain SCOPE.md",
"Explore Dependency And Impact Graphs",
"Provide Scope Context To Downstream Agents",
} <= expected_capability_names
assert "Route LLM Requests Across Providers" in forbidden_names
assert profile["comparison_rules"]["must_not_have_native_capability_names"] == [
"Route LLM Requests Across Providers"
]