{ "approved_map": { "abilities": [], "scope": { "confidence": 1.0, "confidence_label": "high", "description": "Self-scoping assessment target.", "id": 1, "name": "repo-scoping" } }, "artifact_id": "repo-scoping-challenger-run-1", "artifact_type": "assessment_run", "assessment": { "comparison_eligibility": "eligible", "outcome": "challenger", "rationale": [ "RREG-SELF-REG-001: Generated tree contains Route LLM Requests Across Providers as a repo-scoping capability.", "RREG-SELF-REG-002: API or CLI surface features are nested below provider routing." ], "reviewer": "self-assess", "role": "challenger", "summary": "Generated self-scoping assessment repeats known regression patterns." }, "content_chunk_summary": { "counts_by_kind": { "config": 1, "credential_config": 47, "documentation": 91, "fallback_policy": 125, "intent": 5, "interface": 255, "llm_provider": 295, "manifest": 1, "provider_registry": 208, "scope": 5, "test": 245 }, "counts_by_source_role": { "dependency_declaration": 2, "derived_scope": 5, "implementation_source": 255, "intent_summary": 5, "product_documentation": 170, "test_evidence": 841 }, "paths": [ "INTENT.md", "README.md", "SCOPE.md", "docs/abstraction-strategy.md", "docs/acceptance-policy.md", "docs/adr-dependency-graph-visualization-framework.md", "docs/adr-ep-cap-003-vocabulary-ref-guard.md", "docs/api-contract.md", "docs/characteristic-evidence-model.md", "docs/classification-strategy.md", "docs/dependency-aware-scope-propagation.md", "docs/dependency-visualization-exploration.md", "docs/migrations/trusted-auto-approval.md", "docs/operations.md", "docs/quality-criteria/README.md", "docs/quality-criteria/acceptance-quality-criteria.v1.json", "docs/schemas/quality-criteria-registry.schema.json", "docs/schemas/repo-scope-context-response.json", "docs/schemas/self-scoping-assessment.schema.json", "docs/scope-md-spec.md", "docs/self-scoping/README.md", "docs/self-scoping/assessments/repo-scoping-known-bad-2026-05-15-run-39.json", "docs/self-scoping/golden/repo-scoping-golden-profile.v1.json", "docs/self-scoping/outcomes/README.md", "docs/self-scoping/workflow.md", "docs/semantic-retrieval.md", "docs/terminology.md", "pyproject.toml", "src/repo_registry/candidate_graph/normalization.py", "src/repo_registry/cli.py", "src/repo_registry/repo_scanning/scanner.py", "src/repo_registry/web_api/__init__.py", "src/repo_registry/web_api/app.py", "src/repo_registry/web_api/schemas.py", "tests/__init__.py", "tests/expectations/llm_connect_provider_expectations.json", "tests/fixtures.py", "tests/test_acceptance_boundary.py", "tests/test_acceptance_policy_docs.py", "tests/test_agentic_review.py", "tests/test_candidate_graph.py", "tests/test_candidate_normalization.py", "tests/test_cli.py", "tests/test_content_indexing.py", "tests/test_git_ingestion.py", "tests/test_intent_bootstrap.py", "tests/test_llm_extraction.py", "tests/test_llm_extraction_mapper.py", "tests/test_quality_criteria.py", "tests/test_quality_gates.py", "tests/test_registry_service.py", "tests/test_repository_metadata.py", "tests/test_repository_scanner.py", "tests/test_scanner_coevolution.py", "tests/test_scope_context_api.py", "tests/test_scope_generator.py", "tests/test_self_scoping_artifacts.py", "tests/test_self_scoping_assessment_export.py", "tests/test_self_scoping_comparison.py", "tests/test_self_scoping_review_store.py", "tests/test_self_scoping_web_ui.py", "tests/test_storage_migrations.py", "tests/test_trusted_auto_approval_migration.py", "tests/test_web_api.py", "wiki/AbilityExtractionHeuristics.md", "workplans/RREG-WP-0003-automatic-repository-exploration.md", "workplans/RREG-WP-0004-characteristic-classification-navigation.md", "workplans/RREG-WP-0012-activity-core-context-api.md" ], "total": 1278 }, "created_at": "2026-05-15T15:10:24Z", "engine_identity": { "candidate_generator_version": "unversioned", "engine_commit": "abcb2cebbcaa448eb960c276c98a0b769fc493a2", "engine_dirty_state": "clean", "engine_release": null, "prompt_version": null, "quality_criteria_version": "repo-scoping-quality-criteria/v1", "release_binding_note": "Engine commit was captured from git.", "release_binding_status": "complete", "repo_scoping_version": "0.1.0", "scanner_version": "deterministic-v0.1" }, "execution": { "acceptance_mode": "pending_review", "analysis_run_id": 1, "candidate_source": "deterministic", "completed_at": "2026-05-15T15:10:24Z", "mode": "deterministic-only", "started_at": "2026-05-15T15:10:20Z" }, "fact_summary": { "contamination_sources": [ { "path": "src/repo_registry/candidate_graph/normalization.py", "reason": "Provider-related fact came from scanner rules, tests, fixtures, schemas, or workplan context and needs native-utility review." }, { "path": "src/repo_registry/repo_scanning/scanner.py", "reason": "Provider-related fact came from scanner rules, tests, fixtures, schemas, or workplan context and needs native-utility review." }, { "path": "src/repo_registry/web_api/schemas.py", "reason": "Provider-related fact came from scanner rules, tests, fixtures, schemas, or workplan context and needs native-utility review." }, { "path": "tests/expectations/llm_connect_provider_expectations.json", "reason": "Provider-related fact came from scanner rules, tests, fixtures, schemas, or workplan context and needs native-utility review." }, { "path": "tests/fixtures.py", "reason": "Provider-related fact came from scanner rules, tests, fixtures, schemas, or workplan context and needs native-utility review." }, { "path": "tests/test_acceptance_boundary.py", "reason": "Provider-related fact came from scanner rules, tests, fixtures, schemas, or workplan context and needs native-utility review." }, { "path": "tests/test_candidate_graph.py", "reason": "Provider-related fact came from scanner rules, tests, fixtures, schemas, or workplan context and needs native-utility review." }, { "path": "tests/test_candidate_normalization.py", "reason": "Provider-related fact came from scanner rules, tests, fixtures, schemas, or workplan context and needs native-utility review." }, { "path": "tests/test_cli.py", "reason": "Provider-related fact came from scanner rules, tests, fixtures, schemas, or workplan context and needs native-utility review." }, { "path": "tests/test_content_indexing.py", "reason": "Provider-related fact came from scanner rules, tests, fixtures, schemas, or workplan context and needs native-utility review." }, { "path": "tests/test_llm_extraction.py", "reason": "Provider-related fact came from scanner rules, tests, fixtures, schemas, or workplan context and needs native-utility review." }, { "path": "tests/test_quality_gates.py", "reason": "Provider-related fact came from scanner rules, tests, fixtures, schemas, or workplan context and needs native-utility review." }, { "path": "tests/test_registry_service.py", "reason": "Provider-related fact came from scanner rules, tests, fixtures, schemas, or workplan context and needs native-utility review." }, { "path": "tests/test_repository_scanner.py", "reason": "Provider-related fact came from scanner rules, tests, fixtures, schemas, or workplan context and needs native-utility review." }, { "path": "tests/test_scanner_coevolution.py", "reason": "Provider-related fact came from scanner rules, tests, fixtures, schemas, or workplan context and needs native-utility review." }, { "path": "tests/test_self_scoping_assessment_export.py", "reason": "Provider-related fact came from scanner rules, tests, fixtures, schemas, or workplan context and needs native-utility review." }, { "path": "tests/test_web_api.py", "reason": "Provider-related fact came from scanner rules, tests, fixtures, schemas, or workplan context and needs native-utility review." }, { "path": "workplans/RREG-WP-0003-automatic-repository-exploration.md", "reason": "Provider-related fact came from scanner rules, tests, fixtures, schemas, or workplan context and needs native-utility review." }, { "path": "workplans/RREG-WP-0004-characteristic-classification-navigation.md", "reason": "Provider-related fact came from scanner rules, tests, fixtures, schemas, or workplan context and needs native-utility review." } ], "counts_by_kind": { "config": 1, "credential_config": 13, "documentation": 25, "fallback_policy": 11, "framework": 2, "intent": 1, "interface": 136, "language": 1, "llm_provider": 50, "manifest": 1, "provider_registry": 13, "scope": 1, "test": 30 } }, "generated_tree": { "abilities": [ { "capabilities": [ { "evidence": [ { "reference": "tests/__init__.py", "source_refs": [ { "fact_id": 256, "kind": "test", "line": null, "name": "__init__.py", "path": "tests/__init__.py" } ], "status": "candidate", "strength": "strong", "type": "test" }, { "reference": "tests/expectations/llm_connect_provider_expectations.json", "source_refs": [ { "fact_id": 257, "kind": "test", "line": null, "name": "llm_connect_provider_expectations.json", "path": "tests/expectations/llm_connect_provider_expectations.json" } ], "status": "candidate", "strength": "strong", "type": "test" }, { "reference": "tests/fixtures.py", "source_refs": [ { "fact_id": 258, "kind": "test", "line": null, "name": "fixtures.py", "path": "tests/fixtures.py" } ], "status": "candidate", "strength": "strong", "type": "test" }, { "reference": "tests/test_acceptance_boundary.py", "source_refs": [ { "fact_id": 259, "kind": "test", "line": null, "name": "test_acceptance_boundary.py", "path": "tests/test_acceptance_boundary.py" } ], "status": "candidate", "strength": "strong", "type": "test" }, { "reference": "tests/test_acceptance_policy_docs.py", "source_refs": [ { "fact_id": 260, "kind": "test", "line": null, "name": "test_acceptance_policy_docs.py", "path": "tests/test_acceptance_policy_docs.py" } ], "status": "candidate", "strength": "strong", "type": "test" }, { "reference": "tests/test_agentic_review.py", "source_refs": [ { "fact_id": 261, "kind": "test", "line": null, "name": "test_agentic_review.py", "path": "tests/test_agentic_review.py" } ], "status": "candidate", "strength": "strong", "type": "test" }, { "reference": "tests/test_candidate_graph.py", "source_refs": [ { "fact_id": 262, "kind": "test", "line": null, "name": "test_candidate_graph.py", "path": "tests/test_candidate_graph.py" } ], "status": "candidate", "strength": "strong", "type": "test" }, { "reference": "tests/test_candidate_normalization.py", "source_refs": [ { "fact_id": 263, "kind": "test", "line": null, "name": "test_candidate_normalization.py", "path": "tests/test_candidate_normalization.py" } ], "status": "candidate", "strength": "strong", "type": "test" }, { "reference": "tests/test_cli.py", "source_refs": [ { "fact_id": 264, "kind": "test", "line": null, "name": "test_cli.py", "path": "tests/test_cli.py" } ], "status": "candidate", "strength": "strong", "type": "test" }, { "reference": "tests/test_content_indexing.py", "source_refs": [ { "fact_id": 265, "kind": "test", "line": null, "name": "test_content_indexing.py", "path": "tests/test_content_indexing.py" } ], "status": "candidate", "strength": "strong", "type": "test" }, { "reference": "tests/test_git_ingestion.py", "source_refs": [ { "fact_id": 266, "kind": "test", "line": null, "name": "test_git_ingestion.py", "path": "tests/test_git_ingestion.py" } ], "status": "candidate", "strength": "strong", "type": "test" }, { "reference": "tests/test_intent_bootstrap.py", "source_refs": [ { "fact_id": 267, "kind": "test", "line": null, "name": "test_intent_bootstrap.py", "path": "tests/test_intent_bootstrap.py" } ], "status": "candidate", "strength": "strong", "type": "test" }, { "reference": "tests/test_llm_extraction.py", "source_refs": [ { "fact_id": 268, "kind": "test", "line": null, "name": "test_llm_extraction.py", "path": "tests/test_llm_extraction.py" } ], "status": "candidate", "strength": "strong", "type": "test" }, { "reference": "tests/test_llm_extraction_mapper.py", "source_refs": [ { "fact_id": 269, "kind": "test", "line": null, "name": "test_llm_extraction_mapper.py", "path": "tests/test_llm_extraction_mapper.py" } ], "status": "candidate", "strength": "strong", "type": "test" }, { "reference": "tests/test_quality_criteria.py", "source_refs": [ { "fact_id": 270, "kind": "test", "line": null, "name": "test_quality_criteria.py", "path": "tests/test_quality_criteria.py" } ], "status": "candidate", "strength": "strong", "type": "test" }, { "reference": "tests/test_quality_gates.py", "source_refs": [ { "fact_id": 271, "kind": "test", "line": null, "name": "test_quality_gates.py", "path": "tests/test_quality_gates.py" } ], "status": "candidate", "strength": "strong", "type": "test" }, { "reference": "tests/test_registry_service.py", "source_refs": [ { "fact_id": 272, "kind": "test", "line": null, "name": "test_registry_service.py", "path": "tests/test_registry_service.py" } ], "status": "candidate", "strength": "strong", "type": "test" }, { "reference": "tests/test_repository_metadata.py", "source_refs": [ { "fact_id": 273, "kind": "test", "line": null, "name": "test_repository_metadata.py", "path": "tests/test_repository_metadata.py" } ], "status": "candidate", "strength": "strong", "type": "test" }, { "reference": "tests/test_repository_scanner.py", "source_refs": [ { "fact_id": 274, "kind": "test", "line": null, "name": "test_repository_scanner.py", "path": "tests/test_repository_scanner.py" } ], "status": "candidate", "strength": "strong", "type": "test" }, { "reference": "tests/test_scanner_coevolution.py", "source_refs": [ { "fact_id": 275, "kind": "test", "line": null, "name": "test_scanner_coevolution.py", "path": "tests/test_scanner_coevolution.py" } ], "status": "candidate", "strength": "strong", "type": "test" }, { "reference": "tests/test_scope_context_api.py", "source_refs": [ { "fact_id": 276, "kind": "test", "line": null, "name": "test_scope_context_api.py", "path": "tests/test_scope_context_api.py" } ], "status": "candidate", "strength": "strong", "type": "test" }, { "reference": "tests/test_scope_generator.py", "source_refs": [ { "fact_id": 277, "kind": "test", "line": null, "name": "test_scope_generator.py", "path": "tests/test_scope_generator.py" } ], "status": "candidate", "strength": "strong", "type": "test" }, { "reference": "tests/test_self_scoping_artifacts.py", "source_refs": [ { "fact_id": 278, "kind": "test", "line": null, "name": "test_self_scoping_artifacts.py", "path": "tests/test_self_scoping_artifacts.py" } ], "status": "candidate", "strength": "strong", "type": "test" }, { "reference": "tests/test_self_scoping_assessment_export.py", "source_refs": [ { "fact_id": 279, "kind": "test", "line": null, "name": "test_self_scoping_assessment_export.py", "path": "tests/test_self_scoping_assessment_export.py" } ], "status": "candidate", "strength": "strong", "type": "test" }, { "reference": "tests/test_self_scoping_comparison.py", "source_refs": [ { "fact_id": 280, "kind": "test", "line": null, "name": "test_self_scoping_comparison.py", "path": "tests/test_self_scoping_comparison.py" } ], "status": "candidate", "strength": "strong", "type": "test" }, { "reference": "tests/test_self_scoping_review_store.py", "source_refs": [ { "fact_id": 281, "kind": "test", "line": null, "name": "test_self_scoping_review_store.py", "path": "tests/test_self_scoping_review_store.py" } ], "status": "candidate", "strength": "strong", "type": "test" }, { "reference": "tests/test_self_scoping_web_ui.py", "source_refs": [ { "fact_id": 282, "kind": "test", "line": null, "name": "test_self_scoping_web_ui.py", "path": "tests/test_self_scoping_web_ui.py" } ], "status": "candidate", "strength": "strong", "type": "test" }, { "reference": "tests/test_storage_migrations.py", "source_refs": [ { "fact_id": 283, "kind": "test", "line": null, "name": "test_storage_migrations.py", "path": "tests/test_storage_migrations.py" } ], "status": "candidate", "strength": "strong", "type": "test" }, { "reference": "tests/test_trusted_auto_approval_migration.py", "source_refs": [ { "fact_id": 284, "kind": "test", "line": null, "name": "test_trusted_auto_approval_migration.py", "path": "tests/test_trusted_auto_approval_migration.py" } ], "status": "candidate", "strength": "strong", "type": "test" }, { "reference": "tests/test_web_api.py", "source_refs": [ { "fact_id": 285, "kind": "test", "line": null, "name": "test_web_api.py", "path": "tests/test_web_api.py" } ], "status": "candidate", "strength": "strong", "type": "test" }, { "reference": "INTENT.md", "source_refs": [ { "fact_id": 53, "kind": "intent", "line": null, "name": "INTENT", "path": "INTENT.md" } ], "status": "candidate", "strength": "medium", "type": "documentation" }, { "reference": "README.md", "source_refs": [ { "fact_id": 15, "kind": "documentation", "line": null, "name": "README", "path": "README.md" } ], "status": "candidate", "strength": "medium", "type": "documentation" }, { "reference": "docs/abstraction-strategy.md", "source_refs": [ { "fact_id": 16, "kind": "documentation", "line": null, "name": "abstraction-strategy.md", "path": "docs/abstraction-strategy.md" } ], "status": "candidate", "strength": "medium", "type": "documentation" }, { "reference": "docs/acceptance-policy.md", "source_refs": [ { "fact_id": 17, "kind": "documentation", "line": null, "name": "acceptance-policy.md", "path": "docs/acceptance-policy.md" } ], "status": "candidate", "strength": "medium", "type": "documentation" }, { "reference": "docs/adr-dependency-graph-visualization-framework.md", "source_refs": [ { "fact_id": 18, "kind": "documentation", "line": null, "name": "adr-dependency-graph-visualization-framework.md", "path": "docs/adr-dependency-graph-visualization-framework.md" } ], "status": "candidate", "strength": "medium", "type": "documentation" }, { "reference": "docs/adr-ep-cap-003-vocabulary-ref-guard.md", "source_refs": [ { "fact_id": 19, "kind": "documentation", "line": null, "name": "adr-ep-cap-003-vocabulary-ref-guard.md", "path": "docs/adr-ep-cap-003-vocabulary-ref-guard.md" } ], "status": "candidate", "strength": "medium", "type": "documentation" }, { "reference": "docs/api-contract.md", "source_refs": [ { "fact_id": 20, "kind": "documentation", "line": null, "name": "api-contract.md", "path": "docs/api-contract.md" } ], "status": "candidate", "strength": "medium", "type": "documentation" }, { "reference": "docs/characteristic-evidence-model.md", "source_refs": [ { "fact_id": 21, "kind": "documentation", "line": null, "name": "characteristic-evidence-model.md", "path": "docs/characteristic-evidence-model.md" } ], "status": "candidate", "strength": "medium", "type": "documentation" }, { "reference": "docs/classification-strategy.md", "source_refs": [ { "fact_id": 22, "kind": "documentation", "line": null, "name": "classification-strategy.md", "path": "docs/classification-strategy.md" } ], "status": "candidate", "strength": "medium", "type": "documentation" }, { "reference": "docs/dependency-aware-scope-propagation.md", "source_refs": [ { "fact_id": 23, "kind": "documentation", "line": null, "name": "dependency-aware-scope-propagation.md", "path": "docs/dependency-aware-scope-propagation.md" } ], "status": "candidate", "strength": "medium", "type": "documentation" }, { "reference": "docs/dependency-visualization-exploration.md", "source_refs": [ { "fact_id": 24, "kind": "documentation", "line": null, "name": "dependency-visualization-exploration.md", "path": "docs/dependency-visualization-exploration.md" } ], "status": "candidate", "strength": "medium", "type": "documentation" }, { "reference": "docs/migrations/trusted-auto-approval.md", "source_refs": [ { "fact_id": 25, "kind": "documentation", "line": null, "name": "trusted-auto-approval.md", "path": "docs/migrations/trusted-auto-approval.md" } ], "status": "candidate", "strength": "medium", "type": "documentation" }, { "reference": "docs/operations.md", "source_refs": [ { "fact_id": 26, "kind": "documentation", "line": null, "name": "operations.md", "path": "docs/operations.md" } ], "status": "candidate", "strength": "medium", "type": "documentation" }, { "reference": "docs/quality-criteria/README.md", "source_refs": [ { "fact_id": 27, "kind": "documentation", "line": null, "name": "README", "path": "docs/quality-criteria/README.md" } ], "status": "candidate", "strength": "medium", "type": "documentation" }, { "reference": "docs/quality-criteria/acceptance-quality-criteria.v1.json", "source_refs": [ { "fact_id": 28, "kind": "documentation", "line": null, "name": "acceptance-quality-criteria.v1.json", "path": "docs/quality-criteria/acceptance-quality-criteria.v1.json" } ], "status": "candidate", "strength": "medium", "type": "documentation" }, { "reference": "docs/schemas/quality-criteria-registry.schema.json", "source_refs": [ { "fact_id": 29, "kind": "documentation", "line": null, "name": "quality-criteria-registry.schema.json", "path": "docs/schemas/quality-criteria-registry.schema.json" } ], "status": "candidate", "strength": "medium", "type": "documentation" }, { "reference": "docs/schemas/repo-scope-context-response.json", "source_refs": [ { "fact_id": 30, "kind": "documentation", "line": null, "name": "repo-scope-context-response.json", "path": "docs/schemas/repo-scope-context-response.json" } ], "status": "candidate", "strength": "medium", "type": "documentation" }, { "reference": "docs/schemas/self-scoping-assessment.schema.json", "source_refs": [ { "fact_id": 31, "kind": "documentation", "line": null, "name": "self-scoping-assessment.schema.json", "path": "docs/schemas/self-scoping-assessment.schema.json" } ], "status": "candidate", "strength": "medium", "type": "documentation" }, { "reference": "docs/scope-md-spec.md", "source_refs": [ { "fact_id": 32, "kind": "documentation", "line": null, "name": "scope-md-spec.md", "path": "docs/scope-md-spec.md" } ], "status": "candidate", "strength": "medium", "type": "documentation" }, { "reference": "docs/self-scoping/README.md", "source_refs": [ { "fact_id": 33, "kind": "documentation", "line": null, "name": "README", "path": "docs/self-scoping/README.md" } ], "status": "candidate", "strength": "medium", "type": "documentation" }, { "reference": "docs/self-scoping/assessments/repo-scoping-known-bad-2026-05-15-run-39.json", "source_refs": [ { "fact_id": 34, "kind": "documentation", "line": null, "name": "repo-scoping-known-bad-2026-05-15-run-39.json", "path": "docs/self-scoping/assessments/repo-scoping-known-bad-2026-05-15-run-39.json" } ], "status": "candidate", "strength": "medium", "type": "documentation" }, { "reference": "docs/self-scoping/golden/repo-scoping-golden-profile.v1.json", "source_refs": [ { "fact_id": 35, "kind": "documentation", "line": null, "name": "repo-scoping-golden-profile.v1.json", "path": "docs/self-scoping/golden/repo-scoping-golden-profile.v1.json" } ], "status": "candidate", "strength": "medium", "type": "documentation" }, { "reference": "docs/self-scoping/outcomes/README.md", "source_refs": [ { "fact_id": 36, "kind": "documentation", "line": null, "name": "README", "path": "docs/self-scoping/outcomes/README.md" } ], "status": "candidate", "strength": "medium", "type": "documentation" }, { "reference": "docs/self-scoping/workflow.md", "source_refs": [ { "fact_id": 37, "kind": "documentation", "line": null, "name": "workflow.md", "path": "docs/self-scoping/workflow.md" } ], "status": "candidate", "strength": "medium", "type": "documentation" }, { "reference": "docs/semantic-retrieval.md", "source_refs": [ { "fact_id": 38, "kind": "documentation", "line": null, "name": "semantic-retrieval.md", "path": "docs/semantic-retrieval.md" } ], "status": "candidate", "strength": "medium", "type": "documentation" }, { "reference": "docs/terminology.md", "source_refs": [ { "fact_id": 39, "kind": "documentation", "line": null, "name": "terminology.md", "path": "docs/terminology.md" } ], "status": "candidate", "strength": "medium", "type": "documentation" } ], "features": [ { "location": "multiple files", "name": "Use Anthropic Models", "primary_class": "integration", "source_refs": [ { "fact_id": 197, "kind": "llm_provider", "line": null, "name": "Anthropic", "path": "src/repo_registry/candidate_graph/normalization.py" }, { "fact_id": 202, "kind": "llm_provider", "line": null, "name": "Anthropic", "path": "src/repo_registry/repo_scanning/scanner.py" } ], "status": "candidate", "type": "integration" }, { "location": "multiple files", "name": "Use Claude Models", "primary_class": "integration", "source_refs": [ { "fact_id": 198, "kind": "llm_provider", "line": null, "name": "Claude", "path": "src/repo_registry/candidate_graph/normalization.py" }, { "fact_id": 203, "kind": "llm_provider", "line": null, "name": "Claude", "path": "src/repo_registry/repo_scanning/scanner.py" } ], "status": "candidate", "type": "integration" }, { "location": "multiple files", "name": "Use Gemini Models", "primary_class": "integration", "source_refs": [ { "fact_id": 199, "kind": "llm_provider", "line": null, "name": "Gemini", "path": "src/repo_registry/candidate_graph/normalization.py" }, { "fact_id": 204, "kind": "llm_provider", "line": null, "name": "Gemini", "path": "src/repo_registry/repo_scanning/scanner.py" } ], "status": "candidate", "type": "integration" }, { "location": "multiple files", "name": "Use OpenAI Models", "primary_class": "integration", "source_refs": [ { "fact_id": 200, "kind": "llm_provider", "line": null, "name": "OpenAI", "path": "src/repo_registry/candidate_graph/normalization.py" }, { "fact_id": 205, "kind": "llm_provider", "line": null, "name": "OpenAI", "path": "src/repo_registry/repo_scanning/scanner.py" } ], "status": "candidate", "type": "integration" }, { "location": "multiple files", "name": "Use OpenRouter Models", "primary_class": "integration", "source_refs": [ { "fact_id": 201, "kind": "llm_provider", "line": null, "name": "OpenRouter", "path": "src/repo_registry/candidate_graph/normalization.py" }, { "fact_id": 206, "kind": "llm_provider", "line": null, "name": "OpenRouter", "path": "src/repo_registry/repo_scanning/scanner.py" }, { "fact_id": 207, "kind": "llm_provider", "line": null, "name": "OpenRouter", "path": "src/repo_registry/web_api/schemas.py" } ], "status": "candidate", "type": "integration" }, { "location": "multiple files", "name": "Configure LLM Provider Credentials", "primary_class": "configuration", "source_refs": [ { "fact_id": 2, "kind": "credential_config", "line": null, "name": "Anthropic API key", "path": "src/repo_registry/repo_scanning/scanner.py" }, { "fact_id": 3, "kind": "credential_config", "line": null, "name": "Gemini API key", "path": "src/repo_registry/repo_scanning/scanner.py" }, { "fact_id": 4, "kind": "credential_config", "line": null, "name": "Google API key", "path": "src/repo_registry/repo_scanning/scanner.py" }, { "fact_id": 5, "kind": "credential_config", "line": null, "name": "OpenAI API key", "path": "src/repo_registry/repo_scanning/scanner.py" }, { "fact_id": 6, "kind": "credential_config", "line": null, "name": "OpenRouter API key", "path": "src/repo_registry/repo_scanning/scanner.py" }, { "fact_id": 7, "kind": "credential_config", "line": null, "name": "Anthropic API key", "path": "tests/fixtures.py" }, { "fact_id": 8, "kind": "credential_config", "line": null, "name": "OpenRouter API key", "path": "tests/fixtures.py" }, { "fact_id": 9, "kind": "credential_config", "line": null, "name": "OpenRouter API key", "path": "tests/test_candidate_graph.py" }, { "fact_id": 10, "kind": "credential_config", "line": null, "name": "OpenRouter API key", "path": "tests/test_content_indexing.py" }, { "fact_id": 11, "kind": "credential_config", "line": null, "name": "Anthropic API key", "path": "tests/test_repository_scanner.py" }, { "fact_id": 12, "kind": "credential_config", "line": null, "name": "OpenRouter API key", "path": "tests/test_repository_scanner.py" }, { "fact_id": 13, "kind": "credential_config", "line": null, "name": "Anthropic API key", "path": "tests/test_scanner_coevolution.py" }, { "fact_id": 14, "kind": "credential_config", "line": null, "name": "OpenRouter API key", "path": "tests/test_scanner_coevolution.py" } ], "status": "candidate", "type": "configuration" }, { "location": "src/repo_registry/repo_scanning/scanner.py", "name": "Maintain LLM Provider Registry", "primary_class": "backend", "source_refs": [ { "fact_id": 243, "kind": "provider_registry", "line": null, "name": "LLM provider registry", "path": "src/repo_registry/repo_scanning/scanner.py" } ], "status": "candidate", "type": "backend" }, { "location": "src/repo_registry/repo_scanning/scanner.py", "name": "Apply LLM Provider Fallback Policy", "primary_class": "backend", "source_refs": [ { "fact_id": 42, "kind": "fallback_policy", "line": null, "name": "LLM provider fallback policy", "path": "src/repo_registry/repo_scanning/scanner.py" } ], "status": "candidate", "type": "backend" }, { "location": "multiple files", "name": "HTTP API surface: possible API surface, GET /health, @app.get(, +49 more", "primary_class": "API", "source_refs": [ { "fact_id": 54, "kind": "interface", "line": null, "name": "possible API surface", "path": "docs/api-contract.md" }, { "fact_id": 56, "kind": "interface", "line": null, "name": "possible API surface", "path": "src/repo_registry/web_api/__init__.py" }, { "fact_id": 57, "kind": "interface", "line": null, "name": "possible API surface", "path": "src/repo_registry/web_api/app.py" }, { "fact_id": 58, "kind": "interface", "line": 173, "name": "python route decorator", "path": "src/repo_registry/web_api/app.py" }, { "fact_id": 59, "kind": "interface", "line": 203, "name": "python route decorator", "path": "src/repo_registry/web_api/app.py" }, { "fact_id": 60, "kind": "interface", "line": 212, "name": "python route decorator", "path": "src/repo_registry/web_api/app.py" }, { "fact_id": 61, "kind": "interface", "line": 226, "name": "python route decorator", "path": "src/repo_registry/web_api/app.py" }, { "fact_id": 62, "kind": "interface", "line": 243, "name": "python route decorator", "path": "src/repo_registry/web_api/app.py" }, { "fact_id": 63, "kind": "interface", "line": 250, "name": "python route decorator", "path": "src/repo_registry/web_api/app.py" }, { "fact_id": 64, "kind": "interface", "line": 265, "name": "python route decorator", "path": "src/repo_registry/web_api/app.py" }, { "fact_id": 65, "kind": "interface", "line": 286, "name": "python route decorator", "path": "src/repo_registry/web_api/app.py" }, { "fact_id": 66, "kind": "interface", "line": 297, "name": "python route decorator", "path": "src/repo_registry/web_api/app.py" }, { "fact_id": 67, "kind": "interface", "line": 324, "name": "python route decorator", "path": "src/repo_registry/web_api/app.py" }, { "fact_id": 68, "kind": "interface", "line": 351, "name": "python route decorator", "path": "src/repo_registry/web_api/app.py" }, { "fact_id": 69, "kind": "interface", "line": 366, "name": "python route decorator", "path": "src/repo_registry/web_api/app.py" }, { "fact_id": 70, "kind": "interface", "line": 382, "name": "python route decorator", "path": "src/repo_registry/web_api/app.py" }, { "fact_id": 71, "kind": "interface", "line": 401, "name": "python route decorator", "path": "src/repo_registry/web_api/app.py" }, { "fact_id": 72, "kind": "interface", "line": 427, "name": "python route decorator", "path": "src/repo_registry/web_api/app.py" }, { "fact_id": 73, "kind": "interface", "line": 450, "name": "python route decorator", "path": "src/repo_registry/web_api/app.py" }, { "fact_id": 74, "kind": "interface", "line": 468, "name": "python route decorator", "path": "src/repo_registry/web_api/app.py" }, { "fact_id": 75, "kind": "interface", "line": 490, "name": "python route decorator", "path": "src/repo_registry/web_api/app.py" }, { "fact_id": 76, "kind": "interface", "line": 513, "name": "python route decorator", "path": "src/repo_registry/web_api/app.py" }, { "fact_id": 77, "kind": "interface", "line": 532, "name": "python route decorator", "path": "src/repo_registry/web_api/app.py" }, { "fact_id": 78, "kind": "interface", "line": 551, "name": "python route decorator", "path": "src/repo_registry/web_api/app.py" }, { "fact_id": 79, "kind": "interface", "line": 570, "name": "python route decorator", "path": "src/repo_registry/web_api/app.py" }, { "fact_id": 80, "kind": "interface", "line": 588, "name": "python route decorator", "path": "src/repo_registry/web_api/app.py" }, { "fact_id": 81, "kind": "interface", "line": 611, "name": "python route decorator", "path": "src/repo_registry/web_api/app.py" }, { "fact_id": 82, "kind": "interface", "line": 634, "name": "python route decorator", "path": "src/repo_registry/web_api/app.py" }, { "fact_id": 83, "kind": "interface", "line": 660, "name": "python route decorator", "path": "src/repo_registry/web_api/app.py" }, { "fact_id": 84, "kind": "interface", "line": 686, "name": "python route decorator", "path": "src/repo_registry/web_api/app.py" }, { "fact_id": 85, "kind": "interface", "line": 712, "name": "python route decorator", "path": "src/repo_registry/web_api/app.py" }, { "fact_id": 86, "kind": "interface", "line": 738, "name": "python route decorator", "path": "src/repo_registry/web_api/app.py" }, { "fact_id": 87, "kind": "interface", "line": 764, "name": "python route decorator", "path": "src/repo_registry/web_api/app.py" }, { "fact_id": 88, "kind": "interface", "line": 790, "name": "python route decorator", "path": "src/repo_registry/web_api/app.py" }, { "fact_id": 89, "kind": "interface", "line": 816, "name": "python route decorator", "path": "src/repo_registry/web_api/app.py" }, { "fact_id": 90, "kind": "interface", "line": 842, "name": "python route decorator", "path": "src/repo_registry/web_api/app.py" }, { "fact_id": 91, "kind": "interface", "line": 868, "name": "python route decorator", "path": "src/repo_registry/web_api/app.py" }, { "fact_id": 92, "kind": "interface", "line": 894, "name": "python route decorator", "path": "src/repo_registry/web_api/app.py" }, { "fact_id": 93, "kind": "interface", "line": 920, "name": "python route decorator", "path": "src/repo_registry/web_api/app.py" }, { "fact_id": 94, "kind": "interface", "line": 946, "name": "python route decorator", "path": "src/repo_registry/web_api/app.py" }, { "fact_id": 95, "kind": "interface", "line": 972, "name": "python route decorator", "path": "src/repo_registry/web_api/app.py" }, { "fact_id": 96, "kind": "interface", "line": 990, "name": "python route decorator", "path": "src/repo_registry/web_api/app.py" }, { "fact_id": 97, "kind": "interface", "line": 1013, "name": "python route decorator", "path": "src/repo_registry/web_api/app.py" }, { "fact_id": 98, "kind": "interface", "line": 1029, "name": "python route decorator", "path": "src/repo_registry/web_api/app.py" }, { "fact_id": 99, "kind": "interface", "line": 1047, "name": "python route decorator", "path": "src/repo_registry/web_api/app.py" }, { "fact_id": 100, "kind": "interface", "line": 1070, "name": "python route decorator", "path": "src/repo_registry/web_api/app.py" }, { "fact_id": 101, "kind": "interface", "line": 1086, "name": "python route decorator", "path": "src/repo_registry/web_api/app.py" }, { "fact_id": 102, "kind": "interface", "line": 1104, "name": "python route decorator", "path": "src/repo_registry/web_api/app.py" }, { "fact_id": 103, "kind": "interface", "line": 1127, "name": "python route decorator", "path": "src/repo_registry/web_api/app.py" }, { "fact_id": 104, "kind": "interface", "line": 1143, "name": "python route decorator", "path": "src/repo_registry/web_api/app.py" }, { "fact_id": 105, "kind": "interface", "line": 1161, "name": "python route decorator", "path": "src/repo_registry/web_api/app.py" }, { "fact_id": 106, "kind": "interface", "line": 1184, "name": "python route decorator", "path": "src/repo_registry/web_api/app.py" }, { "fact_id": 107, "kind": "interface", "line": 1200, "name": "python route decorator", "path": "src/repo_registry/web_api/app.py" }, { "fact_id": 108, "kind": "interface", "line": 1215, "name": "python route decorator", "path": "src/repo_registry/web_api/app.py" }, { "fact_id": 109, "kind": "interface", "line": 1241, "name": "python route decorator", "path": "src/repo_registry/web_api/app.py" }, { "fact_id": 110, "kind": "interface", "line": 1269, "name": "python route decorator", "path": "src/repo_registry/web_api/app.py" }, { "fact_id": 111, "kind": "interface", "line": 1287, "name": "python route decorator", "path": "src/repo_registry/web_api/app.py" }, { "fact_id": 112, "kind": "interface", "line": 1311, "name": "python route decorator", "path": "src/repo_registry/web_api/app.py" }, { "fact_id": 113, "kind": "interface", "line": 1327, "name": "python route decorator", "path": "src/repo_registry/web_api/app.py" }, { "fact_id": 114, "kind": "interface", "line": 1352, "name": "python route decorator", "path": "src/repo_registry/web_api/app.py" }, { "fact_id": 115, "kind": "interface", "line": 1378, "name": "python route decorator", "path": "src/repo_registry/web_api/app.py" }, { "fact_id": 116, "kind": "interface", "line": 1394, "name": "python route decorator", "path": "src/repo_registry/web_api/app.py" }, { "fact_id": 117, "kind": "interface", "line": 1416, "name": "python route decorator", "path": "src/repo_registry/web_api/app.py" }, { "fact_id": 118, "kind": "interface", "line": 1455, "name": "python route decorator", "path": "src/repo_registry/web_api/app.py" }, { "fact_id": 119, "kind": "interface", "line": 1478, "name": "python route decorator", "path": "src/repo_registry/web_api/app.py" }, { "fact_id": 120, "kind": "interface", "line": 1501, "name": "python route decorator", "path": "src/repo_registry/web_api/app.py" }, { "fact_id": 121, "kind": "interface", "line": 1684, "name": "python route decorator", "path": "src/repo_registry/web_api/app.py" }, { "fact_id": 122, "kind": "interface", "line": 1703, "name": "python route decorator", "path": "src/repo_registry/web_api/app.py" }, { "fact_id": 123, "kind": "interface", "line": 1718, "name": "python route decorator", "path": "src/repo_registry/web_api/app.py" }, { "fact_id": 124, "kind": "interface", "line": 1760, "name": "python route decorator", "path": "src/repo_registry/web_api/app.py" }, { "fact_id": 125, "kind": "interface", "line": 1767, "name": "python route decorator", "path": "src/repo_registry/web_api/app.py" }, { "fact_id": 126, "kind": "interface", "line": null, "name": "possible API surface", "path": "src/repo_registry/web_api/schemas.py" }, { "fact_id": 127, "kind": "interface", "line": 437, "name": "python route decorator", "path": "src/repo_registry/web_ui/views.py" }, { "fact_id": 128, "kind": "interface", "line": 442, "name": "python route decorator", "path": "src/repo_registry/web_ui/views.py" }, { "fact_id": 129, "kind": "interface", "line": 537, "name": "python route decorator", "path": "src/repo_registry/web_ui/views.py" }, { "fact_id": 130, "kind": "interface", "line": 542, "name": "python route decorator", "path": "src/repo_registry/web_ui/views.py" }, { "fact_id": 131, "kind": "interface", "line": 621, "name": "python route decorator", "path": "src/repo_registry/web_ui/views.py" }, { "fact_id": 132, "kind": "interface", "line": 652, "name": "python route decorator", "path": "src/repo_registry/web_ui/views.py" }, { "fact_id": 133, "kind": "interface", "line": 731, "name": "python route decorator", "path": "src/repo_registry/web_ui/views.py" }, { "fact_id": 134, "kind": "interface", "line": 1069, "name": "python route decorator", "path": "src/repo_registry/web_ui/views.py" }, { "fact_id": 135, "kind": "interface", "line": 1107, "name": "python route decorator", "path": "src/repo_registry/web_ui/views.py" }, { "fact_id": 136, "kind": "interface", "line": 1139, "name": "python route decorator", "path": "src/repo_registry/web_ui/views.py" }, { "fact_id": 137, "kind": "interface", "line": 1182, "name": "python route decorator", "path": "src/repo_registry/web_ui/views.py" }, { "fact_id": 138, "kind": "interface", "line": 1366, "name": "python route decorator", "path": "src/repo_registry/web_ui/views.py" }, { "fact_id": 139, "kind": "interface", "line": 1439, "name": "python route decorator", "path": "src/repo_registry/web_ui/views.py" }, { "fact_id": 140, "kind": "interface", "line": 1478, "name": "python route decorator", "path": "src/repo_registry/web_ui/views.py" }, { "fact_id": 141, "kind": "interface", "line": 1664, "name": "python route decorator", "path": "src/repo_registry/web_ui/views.py" }, { "fact_id": 142, "kind": "interface", "line": 1676, "name": "python route decorator", "path": "src/repo_registry/web_ui/views.py" }, { "fact_id": 143, "kind": "interface", "line": 1693, "name": "python route decorator", "path": "src/repo_registry/web_ui/views.py" }, { "fact_id": 144, "kind": "interface", "line": 1710, "name": "python route decorator", "path": "src/repo_registry/web_ui/views.py" }, { "fact_id": 145, "kind": "interface", "line": 1723, "name": "python route decorator", "path": "src/repo_registry/web_ui/views.py" }, { "fact_id": 146, "kind": "interface", "line": 1744, "name": "python route decorator", "path": "src/repo_registry/web_ui/views.py" }, { "fact_id": 147, "kind": "interface", "line": 1771, "name": "python route decorator", "path": "src/repo_registry/web_ui/views.py" }, { "fact_id": 148, "kind": "interface", "line": 1796, "name": "python route decorator", "path": "src/repo_registry/web_ui/views.py" }, { "fact_id": 149, "kind": "interface", "line": 1823, "name": "python route decorator", "path": "src/repo_registry/web_ui/views.py" }, { "fact_id": 150, "kind": "interface", "line": 1846, "name": "python route decorator", "path": "src/repo_registry/web_ui/views.py" }, { "fact_id": 151, "kind": "interface", "line": 1856, "name": "python route decorator", "path": "src/repo_registry/web_ui/views.py" }, { "fact_id": 152, "kind": "interface", "line": 1883, "name": "python route decorator", "path": "src/repo_registry/web_ui/views.py" }, { "fact_id": 153, "kind": "interface", "line": 1893, "name": "python route decorator", "path": "src/repo_registry/web_ui/views.py" }, { "fact_id": 154, "kind": "interface", "line": 1918, "name": "python route decorator", "path": "src/repo_registry/web_ui/views.py" }, { "fact_id": 155, "kind": "interface", "line": 1928, "name": "python route decorator", "path": "src/repo_registry/web_ui/views.py" }, { "fact_id": 156, "kind": "interface", "line": 1955, "name": "python route decorator", "path": "src/repo_registry/web_ui/views.py" }, { "fact_id": 157, "kind": "interface", "line": 1965, "name": "python route decorator", "path": "src/repo_registry/web_ui/views.py" }, { "fact_id": 158, "kind": "interface", "line": 1991, "name": "python route decorator", "path": "src/repo_registry/web_ui/views.py" }, { "fact_id": 159, "kind": "interface", "line": 2015, "name": "python route decorator", "path": "src/repo_registry/web_ui/views.py" }, { "fact_id": 160, "kind": "interface", "line": 2132, "name": "python route decorator", "path": "src/repo_registry/web_ui/views.py" }, { "fact_id": 161, "kind": "interface", "line": 2156, "name": "python route decorator", "path": "src/repo_registry/web_ui/views.py" }, { "fact_id": 162, "kind": "interface", "line": 2182, "name": "python route decorator", "path": "src/repo_registry/web_ui/views.py" }, { "fact_id": 163, "kind": "interface", "line": 2201, "name": "python route decorator", "path": "src/repo_registry/web_ui/views.py" }, { "fact_id": 164, "kind": "interface", "line": 2330, "name": "python route decorator", "path": "src/repo_registry/web_ui/views.py" }, { "fact_id": 165, "kind": "interface", "line": 2402, "name": "python route decorator", "path": "src/repo_registry/web_ui/views.py" }, { "fact_id": 166, "kind": "interface", "line": 2955, "name": "python route decorator", "path": "src/repo_registry/web_ui/views.py" }, { "fact_id": 167, "kind": "interface", "line": 2969, "name": "python route decorator", "path": "src/repo_registry/web_ui/views.py" }, { "fact_id": 168, "kind": "interface", "line": 2984, "name": "python route decorator", "path": "src/repo_registry/web_ui/views.py" }, { "fact_id": 169, "kind": "interface", "line": 3006, "name": "python route decorator", "path": "src/repo_registry/web_ui/views.py" }, { "fact_id": 170, "kind": "interface", "line": 3025, "name": "python route decorator", "path": "src/repo_registry/web_ui/views.py" }, { "fact_id": 171, "kind": "interface", "line": 3047, "name": "python route decorator", "path": "src/repo_registry/web_ui/views.py" }, { "fact_id": 172, "kind": "interface", "line": 3066, "name": "python route decorator", "path": "src/repo_registry/web_ui/views.py" }, { "fact_id": 173, "kind": "interface", "line": 3088, "name": "python route decorator", "path": "src/repo_registry/web_ui/views.py" }, { "fact_id": 174, "kind": "interface", "line": 3107, "name": "python route decorator", "path": "src/repo_registry/web_ui/views.py" }, { "fact_id": 175, "kind": "interface", "line": 3129, "name": "python route decorator", "path": "src/repo_registry/web_ui/views.py" }, { "fact_id": 176, "kind": "interface", "line": 3148, "name": "python route decorator", "path": "src/repo_registry/web_ui/views.py" }, { "fact_id": 177, "kind": "interface", "line": 3180, "name": "python route decorator", "path": "src/repo_registry/web_ui/views.py" }, { "fact_id": 178, "kind": "interface", "line": 3212, "name": "python route decorator", "path": "src/repo_registry/web_ui/views.py" }, { "fact_id": 179, "kind": "interface", "line": 3246, "name": "python route decorator", "path": "src/repo_registry/web_ui/views.py" }, { "fact_id": 180, "kind": "interface", "line": 3270, "name": "python route decorator", "path": "src/repo_registry/web_ui/views.py" }, { "fact_id": 181, "kind": "interface", "line": 3294, "name": "python route decorator", "path": "src/repo_registry/web_ui/views.py" }, { "fact_id": 182, "kind": "interface", "line": 3318, "name": "python route decorator", "path": "src/repo_registry/web_ui/views.py" }, { "fact_id": 183, "kind": "interface", "line": 3342, "name": "python route decorator", "path": "src/repo_registry/web_ui/views.py" }, { "fact_id": 184, "kind": "interface", "line": 3366, "name": "python route decorator", "path": "src/repo_registry/web_ui/views.py" }, { "fact_id": 185, "kind": "interface", "line": 3390, "name": "python route decorator", "path": "src/repo_registry/web_ui/views.py" }, { "fact_id": 187, "kind": "interface", "line": null, "name": "possible API surface", "path": "tests/test_scope_context_api.py" }, { "fact_id": 188, "kind": "interface", "line": null, "name": "possible API surface", "path": "tests/test_web_api.py" }, { "fact_id": 189, "kind": "interface", "line": null, "name": "possible API surface", "path": "workplans/RREG-WP-0012-activity-core-context-api.md" } ], "status": "candidate", "type": "API" }, { "location": "multiple files", "name": "CLI command surface: CLI command build_parser, CLI command make_service", "primary_class": "CLI", "source_refs": [ { "fact_id": 55, "kind": "interface", "line": null, "name": "possible CLI", "path": "src/repo_registry/cli.py" }, { "fact_id": 186, "kind": "interface", "line": null, "name": "possible CLI", "path": "tests/test_cli.py" } ], "status": "candidate", "type": "CLI" } ], "name": "Route LLM Requests Across Providers", "primary_class": "llm-integration", "source_refs": [ { "fact_id": 197, "kind": "llm_provider", "line": null, "name": "Anthropic", "path": "src/repo_registry/candidate_graph/normalization.py" }, { "fact_id": 198, "kind": "llm_provider", "line": null, "name": "Claude", "path": "src/repo_registry/candidate_graph/normalization.py" }, { "fact_id": 199, "kind": "llm_provider", "line": null, "name": "Gemini", "path": "src/repo_registry/candidate_graph/normalization.py" }, { "fact_id": 200, "kind": "llm_provider", "line": null, "name": "OpenAI", "path": "src/repo_registry/candidate_graph/normalization.py" }, { "fact_id": 201, "kind": "llm_provider", "line": null, "name": "OpenRouter", "path": "src/repo_registry/candidate_graph/normalization.py" }, { "fact_id": 202, "kind": "llm_provider", "line": null, "name": "Anthropic", "path": "src/repo_registry/repo_scanning/scanner.py" }, { "fact_id": 203, "kind": "llm_provider", "line": null, "name": "Claude", "path": "src/repo_registry/repo_scanning/scanner.py" }, { "fact_id": 204, "kind": "llm_provider", "line": null, "name": "Gemini", "path": "src/repo_registry/repo_scanning/scanner.py" }, { "fact_id": 205, "kind": "llm_provider", "line": null, "name": "OpenAI", "path": "src/repo_registry/repo_scanning/scanner.py" }, { "fact_id": 206, "kind": "llm_provider", "line": null, "name": "OpenRouter", "path": "src/repo_registry/repo_scanning/scanner.py" }, { "fact_id": 207, "kind": "llm_provider", "line": null, "name": "OpenRouter", "path": "src/repo_registry/web_api/schemas.py" }, { "fact_id": 2, "kind": "credential_config", "line": null, "name": "Anthropic API key", "path": "src/repo_registry/repo_scanning/scanner.py" }, { "fact_id": 3, "kind": "credential_config", "line": null, "name": "Gemini API key", "path": "src/repo_registry/repo_scanning/scanner.py" }, { "fact_id": 4, "kind": "credential_config", "line": null, "name": "Google API key", "path": "src/repo_registry/repo_scanning/scanner.py" }, { "fact_id": 5, "kind": "credential_config", "line": null, "name": "OpenAI API key", "path": "src/repo_registry/repo_scanning/scanner.py" }, { "fact_id": 6, "kind": "credential_config", "line": null, "name": "OpenRouter API key", "path": "src/repo_registry/repo_scanning/scanner.py" }, { "fact_id": 7, "kind": "credential_config", "line": null, "name": "Anthropic API key", "path": "tests/fixtures.py" }, { "fact_id": 8, "kind": "credential_config", "line": null, "name": "OpenRouter API key", "path": "tests/fixtures.py" }, { "fact_id": 9, "kind": "credential_config", "line": null, "name": "OpenRouter API key", "path": "tests/test_candidate_graph.py" }, { "fact_id": 10, "kind": "credential_config", "line": null, "name": "OpenRouter API key", "path": "tests/test_content_indexing.py" }, { "fact_id": 11, "kind": "credential_config", "line": null, "name": "Anthropic API key", "path": "tests/test_repository_scanner.py" }, { "fact_id": 12, "kind": "credential_config", "line": null, "name": "OpenRouter API key", "path": "tests/test_repository_scanner.py" }, { "fact_id": 13, "kind": "credential_config", "line": null, "name": "Anthropic API key", "path": "tests/test_scanner_coevolution.py" }, { "fact_id": 14, "kind": "credential_config", "line": null, "name": "OpenRouter API key", "path": "tests/test_scanner_coevolution.py" }, { "fact_id": 243, "kind": "provider_registry", "line": null, "name": "LLM provider registry", "path": "src/repo_registry/repo_scanning/scanner.py" }, { "fact_id": 42, "kind": "fallback_policy", "line": null, "name": "LLM provider fallback policy", "path": "src/repo_registry/repo_scanning/scanner.py" } ], "status": "candidate" } ], "name": "Support Repo Scoping", "primary_class": "repository-intelligence", "source_refs": [ { "fact_id": 53, "kind": "intent", "line": null, "name": "INTENT", "path": "INTENT.md" }, { "fact_id": 15, "kind": "documentation", "line": null, "name": "README", "path": "README.md" }, { "fact_id": 16, "kind": "documentation", "line": null, "name": "abstraction-strategy.md", "path": "docs/abstraction-strategy.md" }, { "fact_id": 17, "kind": "documentation", "line": null, "name": "acceptance-policy.md", "path": "docs/acceptance-policy.md" }, { "fact_id": 18, "kind": "documentation", "line": null, "name": "adr-dependency-graph-visualization-framework.md", "path": "docs/adr-dependency-graph-visualization-framework.md" }, { "fact_id": 19, "kind": "documentation", "line": null, "name": "adr-ep-cap-003-vocabulary-ref-guard.md", "path": "docs/adr-ep-cap-003-vocabulary-ref-guard.md" }, { "fact_id": 20, "kind": "documentation", "line": null, "name": "api-contract.md", "path": "docs/api-contract.md" }, { "fact_id": 21, "kind": "documentation", "line": null, "name": "characteristic-evidence-model.md", "path": "docs/characteristic-evidence-model.md" }, { "fact_id": 22, "kind": "documentation", "line": null, "name": "classification-strategy.md", "path": "docs/classification-strategy.md" }, { "fact_id": 23, "kind": "documentation", "line": null, "name": "dependency-aware-scope-propagation.md", "path": "docs/dependency-aware-scope-propagation.md" }, { "fact_id": 24, "kind": "documentation", "line": null, "name": "dependency-visualization-exploration.md", "path": "docs/dependency-visualization-exploration.md" }, { "fact_id": 25, "kind": "documentation", "line": null, "name": "trusted-auto-approval.md", "path": "docs/migrations/trusted-auto-approval.md" }, { "fact_id": 26, "kind": "documentation", "line": null, "name": "operations.md", "path": "docs/operations.md" }, { "fact_id": 27, "kind": "documentation", "line": null, "name": "README", "path": "docs/quality-criteria/README.md" }, { "fact_id": 28, "kind": "documentation", "line": null, "name": "acceptance-quality-criteria.v1.json", "path": "docs/quality-criteria/acceptance-quality-criteria.v1.json" }, { "fact_id": 29, "kind": "documentation", "line": null, "name": "quality-criteria-registry.schema.json", "path": "docs/schemas/quality-criteria-registry.schema.json" }, { "fact_id": 30, "kind": "documentation", "line": null, "name": "repo-scope-context-response.json", "path": "docs/schemas/repo-scope-context-response.json" }, { "fact_id": 31, "kind": "documentation", "line": null, "name": "self-scoping-assessment.schema.json", "path": "docs/schemas/self-scoping-assessment.schema.json" }, { "fact_id": 32, "kind": "documentation", "line": null, "name": "scope-md-spec.md", "path": "docs/scope-md-spec.md" }, { "fact_id": 33, "kind": "documentation", "line": null, "name": "README", "path": "docs/self-scoping/README.md" }, { "fact_id": 34, "kind": "documentation", "line": null, "name": "repo-scoping-known-bad-2026-05-15-run-39.json", "path": "docs/self-scoping/assessments/repo-scoping-known-bad-2026-05-15-run-39.json" }, { "fact_id": 35, "kind": "documentation", "line": null, "name": "repo-scoping-golden-profile.v1.json", "path": "docs/self-scoping/golden/repo-scoping-golden-profile.v1.json" }, { "fact_id": 36, "kind": "documentation", "line": null, "name": "README", "path": "docs/self-scoping/outcomes/README.md" }, { "fact_id": 37, "kind": "documentation", "line": null, "name": "workflow.md", "path": "docs/self-scoping/workflow.md" }, { "fact_id": 38, "kind": "documentation", "line": null, "name": "semantic-retrieval.md", "path": "docs/semantic-retrieval.md" }, { "fact_id": 39, "kind": "documentation", "line": null, "name": "terminology.md", "path": "docs/terminology.md" } ], "status": "candidate" } ] }, "known_regression_patterns": [ { "description": "Generated tree contains Route LLM Requests Across Providers as a repo-scoping capability.", "detection_hint": "Flag the provider-routing capability unless product intent and public implementation explicitly support it.", "id": "RREG-SELF-REG-001", "severity": "critical", "title": "LLM provider vocabulary promoted as native capability" }, { "description": "API or CLI surface features are nested below provider routing.", "detection_hint": "Flag API/CLI surface features whose parent capability is llm-integration or provider-routing.", "id": "RREG-SELF-REG-002", "severity": "high", "title": "Native API and CLI surfaces attached under false capability" } ], "notes": [ "Generated by repo-scoping self-scoping assessment exporter.", "Artifact has enough engine identity metadata for comparison." ], "quality_gate_outcomes": [ { "criteria_version": "repo-scoping-quality-criteria/v1", "criterion_id": "RREG-QC-002", "criterion_title": "Native Utility Is Repo-Owned", "element_id": 1, "element_name": "Route LLM Requests Across Providers", "element_type": "capability", "outcome": "downgraded", "reason": "Provider-routing or LLM-integration vocabulary requires explicit product evidence before it can be native utility.", "severity": "high" }, { "criteria_version": "repo-scoping-quality-criteria/v1", "criterion_id": "RREG-QC-003", "criterion_title": "Feature Fits Parent Capability", "element_id": 9, "element_name": "HTTP API surface: possible API surface, GET /health, @app.get(, +49 more", "element_type": "feature", "outcome": "requires_review", "reason": "API/CLI surface is nested below provider-routing or LLM-integration capability.", "severity": "high" }, { "criteria_version": "repo-scoping-quality-criteria/v1", "criterion_id": "RREG-QC-003", "criterion_title": "Feature Fits Parent Capability", "element_id": 10, "element_name": "CLI command surface: CLI command build_parser, CLI command make_service", "element_type": "feature", "outcome": "requires_review", "reason": "API/CLI surface is nested below provider-routing or LLM-integration capability.", "severity": "high" } ], "review_decisions": [ { "accepted_after_edits": false, "action": "quality_gate_evaluation", "analysis_run_id": 1, "created_at": "2026-05-15 15:10:24", "criteria_version": "repo-scoping-quality-criteria/v1", "criterion_ids": [ "RREG-QC-002", "RREG-QC-003" ], "decision_kind": "other", "evidence_refs": [], "id": 1, "notes": "criteria_version=repo-scoping-quality-criteria/v1; criteria=RREG-QC-002, RREG-QC-003; outcomes=downgraded:1, requires_review:2; quality_gate_outcomes=3; rationale=Deterministic quality gates flagged candidates for review without approving registry truth.", "policy_version": "", "quality_criteria_version": "repo-scoping-quality-criteria/v1", "rationale": "Deterministic quality gates flagged candidates for review without approving registry truth.", "repository_id": 1, "reviewer_id": "", "reviewer_type": "deterministic-gate" } ], "schema_version": "self-scoping-assessment/v1", "target_repository": { "dirty_state": "clean", "file_count": 136, "repo_slug": "repo-scoping", "repository_id": 1, "source": "/home/worsch/repo-scoping", "target_branch": "main", "target_commit": "abcb2cebbcaa448eb960c276c98a0b769fc493a2" } }