2026-05-15 12:26:36 +02:00
{
"schema_version" : "self-scoping-golden-profile/v1" ,
"profile_id" : "repo-scoping-golden-profile-v1" ,
"repo_slug" : "repo-scoping" ,
"status" : "active" ,
"created_at" : "2026-05-15" ,
"updated_at" : "2026-05-15" ,
"curation" : {
"curator" : "codex" ,
"workplan_id" : "RREG-WP-0013" ,
"summary" : "Curated target profile for evaluating repo-scoping self-analysis quality."
} ,
"ability" : {
"name" : "Map Repositories Into Reviewable Scope Profiles" ,
"primary_class" : "repository-intelligence" ,
"attributes" : [
"capability-mapping" ,
"source-linked-review" ,
"scope-generation"
] ,
"description" : "repo-scoping turns repository source, documentation, and review decisions into source-linked maps of repository utility." ,
"expected_capabilities" : [
{
"name" : "Register And Track Repositories" ,
"primary_class" : "ingestion" ,
"attributes" : [ "metadata" , "git" , "analysis-run" ] ,
"expected_features" : [
{
"name" : "Create and update repository records" ,
"primary_class" : "api" ,
"source_paths" : [
2026-05-15 21:16:34 +02:00
"src/repo_scoping/core/service.py" ,
"src/repo_scoping/web_api/app.py" ,
"src/repo_scoping/web_ui/views.py"
2026-05-15 12:26:36 +02:00
]
} ,
{
"name" : "Resolve local or remote Git checkouts" ,
"primary_class" : "backend" ,
"source_paths" : [
2026-05-15 21:16:34 +02:00
"src/repo_scoping/repo_ingestion/git.py" ,
2026-05-15 12:26:36 +02:00
"tests/test_git_ingestion.py"
]
} ,
{
"name" : "Import repository metadata" ,
"primary_class" : "backend" ,
"source_paths" : [
2026-05-15 21:16:34 +02:00
"src/repo_scoping/repo_ingestion/metadata.py" ,
2026-05-15 12:26:36 +02:00
"tests/test_repository_metadata.py"
]
}
]
} ,
{
"name" : "Scan Repositories Into Observed Facts" ,
"primary_class" : "analysis" ,
"attributes" : [ "deterministic" , "facts" , "provenance" ] ,
"expected_features" : [
{
"name" : "Detect source languages, manifests, docs, tests, config, and interfaces" ,
"primary_class" : "backend" ,
"source_paths" : [
2026-05-15 21:16:34 +02:00
"src/repo_scoping/repo_scanning/scanner.py" ,
2026-05-15 12:26:36 +02:00
"tests/test_repository_scanner.py"
]
} ,
{
"name" : "Classify source roles for facts" ,
"primary_class" : "backend" ,
"source_paths" : [
2026-05-15 21:16:34 +02:00
"src/repo_scoping/repo_scanning/scanner.py" ,
2026-05-15 12:26:36 +02:00
"docs/characteristic-evidence-model.md"
]
} ,
{
"name" : "Preserve analysis snapshots and fact records" ,
"primary_class" : "storage" ,
"source_paths" : [
2026-05-15 21:16:34 +02:00
"src/repo_scoping/storage/sqlite.py" ,
2026-05-15 12:26:36 +02:00
"migrations/0001_initial.sql"
]
}
]
} ,
{
"name" : "Index Source Content With Provenance" ,
"primary_class" : "analysis" ,
"attributes" : [ "content-chunks" , "source-role" ] ,
"expected_features" : [
{
"name" : "Create source-linked content chunks from observed facts" ,
"primary_class" : "backend" ,
"source_paths" : [
2026-05-15 21:16:34 +02:00
"src/repo_scoping/content_indexing/extractor.py" ,
2026-05-15 12:26:36 +02:00
"tests/test_content_indexing.py"
]
} ,
{
"name" : "Carry source-role metadata into downstream generation" ,
"primary_class" : "backend" ,
"source_paths" : [
2026-05-15 21:16:34 +02:00
"src/repo_scoping/content_indexing/extractor.py" ,
"src/repo_scoping/llm_extraction/extractor.py"
2026-05-15 12:26:36 +02:00
]
}
]
} ,
{
"name" : "Generate Reviewable Candidate Characteristics" ,
"primary_class" : "analysis" ,
"attributes" : [ "candidate-graph" , "review-required" ] ,
"expected_features" : [
{
"name" : "Build candidate abilities, capabilities, features, and evidence" ,
"primary_class" : "backend" ,
"source_paths" : [
2026-05-15 21:16:34 +02:00
"src/repo_scoping/candidate_graph/generator.py" ,
"src/repo_scoping/candidate_graph/normalization.py" ,
2026-05-15 12:26:36 +02:00
"tests/test_candidate_graph.py"
]
} ,
{
"name" : "Optionally map structured LLM extraction into candidates" ,
"primary_class" : "integration" ,
"source_paths" : [
2026-05-15 21:16:34 +02:00
"src/repo_scoping/llm_extraction/extractor.py" ,
"src/repo_scoping/llm_extraction/mapper.py" ,
2026-05-15 12:26:36 +02:00
"tests/test_llm_extraction.py"
]
}
]
} ,
{
"name" : "Review And Approve Candidate Characteristics" ,
"primary_class" : "review" ,
"attributes" : [ "curation" , "approval" , "audit" ] ,
"expected_features" : [
{
"name" : "Edit, reject, merge, and relink candidate graph entries" ,
"primary_class" : "api" ,
"source_paths" : [
2026-05-15 21:16:34 +02:00
"src/repo_scoping/core/service.py" ,
"src/repo_scoping/web_api/app.py" ,
"src/repo_scoping/web_ui/views.py" ,
2026-05-15 12:26:36 +02:00
"tests/test_registry_service.py"
]
} ,
{
"name" : "Publish approved characteristic maps after review" ,
"primary_class" : "storage" ,
"source_paths" : [
2026-05-15 21:16:34 +02:00
"src/repo_scoping/core/service.py" ,
"src/repo_scoping/storage/sqlite.py"
2026-05-15 12:26:36 +02:00
]
} ,
{
"name" : "Record review decisions and expectation gaps" ,
"primary_class" : "audit" ,
"source_paths" : [
2026-05-15 21:16:34 +02:00
"src/repo_scoping/core/service.py" ,
"src/repo_scoping/web_api/schemas.py"
2026-05-15 12:26:36 +02:00
]
}
]
} ,
{
"name" : "Search Compare And Export Approved Profiles" ,
"primary_class" : "discovery" ,
"attributes" : [ "search" , "comparison" , "export" ] ,
"expected_features" : [
{
"name" : "Search approved abilities, capabilities, features, and evidence" ,
"primary_class" : "api" ,
"source_paths" : [
2026-05-15 21:16:34 +02:00
"src/repo_scoping/core/service.py" ,
"src/repo_scoping/semantic/embeddings.py" ,
2026-05-15 12:26:36 +02:00
"tests/test_registry_service.py"
]
} ,
{
"name" : "Compare repositories and identify capability gaps" ,
"primary_class" : "api" ,
"source_paths" : [
2026-05-15 21:16:34 +02:00
"src/repo_scoping/core/service.py" ,
"src/repo_scoping/web_api/app.py"
2026-05-15 12:26:36 +02:00
]
} ,
{
"name" : "Export repository profiles" ,
"primary_class" : "api" ,
"source_paths" : [
2026-05-15 21:16:34 +02:00
"src/repo_scoping/web_api/app.py" ,
2026-05-15 12:26:36 +02:00
"docs/api-contract.md"
]
}
]
} ,
{
"name" : "Generate And Maintain SCOPE.md" ,
"primary_class" : "scope-generation" ,
"attributes" : [ "scope-md" , "diff" , "validation" ] ,
"expected_features" : [
{
"name" : "Render SCOPE.md from approved characteristics" ,
"primary_class" : "backend" ,
"source_paths" : [
2026-05-15 21:16:34 +02:00
"src/repo_scoping/scope/generator.py" ,
2026-05-15 12:26:36 +02:00
"tests/test_scope_generator.py" ,
"docs/scope-md-spec.md"
]
} ,
{
"name" : "Diff, validate, and write scope files" ,
"primary_class" : "api" ,
"source_paths" : [
2026-05-15 21:16:34 +02:00
"src/repo_scoping/scope/validator.py" ,
"src/repo_scoping/web_api/app.py" ,
"src/repo_scoping/web_ui/views.py"
2026-05-15 12:26:36 +02:00
]
}
]
} ,
{
"name" : "Explore Dependency And Impact Graphs" ,
"primary_class" : "dependency-analysis" ,
"attributes" : [ "graph" , "impact" , "visualization" ] ,
"expected_features" : [
{
"name" : "Model dependencies between facts, evidence, features, capabilities, abilities, and scope" ,
"primary_class" : "backend" ,
"source_paths" : [
2026-05-15 21:16:34 +02:00
"src/repo_scoping/core/service.py" ,
2026-05-15 12:26:36 +02:00
"docs/dependency-aware-scope-propagation.md" ,
"docs/dependency-visualization-exploration.md"
]
} ,
{
"name" : "Render dependency graph views and profiles" ,
"primary_class" : "ui" ,
"source_paths" : [
2026-05-15 21:16:34 +02:00
"src/repo_scoping/web_ui/views.py" ,
2026-05-15 12:26:36 +02:00
"tests/test_web_api.py"
]
}
]
} ,
{
"name" : "Provide Scope Context To Downstream Agents" ,
"primary_class" : "coordination" ,
"attributes" : [ "activity-core" , "api-contract" ] ,
"expected_features" : [
{
"name" : "Return compact JSON scope context by repository slug" ,
"primary_class" : "api" ,
"source_paths" : [
2026-05-15 21:16:34 +02:00
"src/repo_scoping/web_api/app.py" ,
2026-05-15 12:26:36 +02:00
"docs/schemas/repo-scope-context-response.json" ,
"tests/test_scope_context_api.py"
]
}
]
}
]
} ,
"forbidden_native_capabilities" : [
{
"name" : "Route LLM Requests Across Providers" ,
"reason" : "repo-scoping may use llm-connect as optional extraction infrastructure, but provider routing is not a native repo-scoping product capability." ,
"allowed_only_if" : "Future product intent and public implementation explicitly add provider routing as repo-scoping-owned behavior."
}
] ,
"non_native_context" : [
{
"name" : "LLM provider names in scanner, normalization, schemas, tests, fixtures, docs, or workplans" ,
"classification" : "scanner-rule-or-fixture-context" ,
"expected_handling" : "May support scanner behavior facts or test coverage, but must not become native capability truth."
} ,
{
"name" : "llm-connect integration" ,
"classification" : "optional dependency / adapter consumer" ,
"expected_handling" : "May appear as optional extraction infrastructure, not as repo-scoping-owned provider routing."
} ,
{
"name" : "SCOPE.md content" ,
"classification" : "derived scope" ,
"expected_handling" : "Can be comparison or bootstrap context, not primary evidence for regenerating the same characteristic model."
}
] ,
"comparison_rules" : {
"must_have_capability_names" : [
"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"
] ,
"must_not_have_native_capability_names" : [
"Route LLM Requests Across Providers"
] ,
"known_regression_ids" : [
"RREG-SELF-REG-001" ,
"RREG-SELF-REG-002" ,
"RREG-SELF-REG-003"
]
}
}