| name | repo_scanner |
| display_name | Repo Scanner |
| description | Meta-specialist that auto-discovers and scaffolds new specialists from trending GitHub repos |
| version | 1.0.0 |
| source_repo | jeremylongshore/oss-agent-lab |
| license | MIT |
| tier | core |
| capabilities | ["auto_scaffold","repo_analysis","specialist_generation"] |
| allowed_tools | ["scan_repo","scaffold_specialist","evaluate_score"] |
| output_formats | ["python_api","cli","mcp_server","agent_skill","rest_api"] |
Repo Scanner Specialist
Overview
A meta-specialist that IS the OSS Agent Lab repository acting on itself. It
consumes the Capability Scoring Engine's signal pipeline to evaluate whether a
candidate GitHub repo is worth wrapping as a new specialist, then
auto-scaffolds the directory skeleton when the score crosses the threshold.
Wraps jeremylongshore/oss-agent-lab.
Capabilities
- auto_scaffold: Materialise a new specialist directory from the
_template
skeleton when a repo's composite score reaches >= 80.
- repo_analysis: Analyse structural signals (Python presence, tests, README,
licence) and infer likely capabilities from repo naming conventions.
- specialist_generation: Orchestrate the full scan → score → scaffold pipeline
and surface a unified result with provenance metadata.
Tools
| Tool | Description | Side Effects |
|---|
scan_repo | Structural analysis: name suggestion, detected capabilities, has_python/tests/readme, recommendation | None |
evaluate_score | Composite capability score (0-100) with action and signal breakdown | None |
scaffold_specialist | Copy _template/ into agents/specialists/<name>/ | Creates files on disk |
Parameters
All parameters are passed via request.intent.parameters:
| Parameter | Type | Default | Description |
|---|
repo | str | (query text) | GitHub repo in owner/name format |
name | str | (from scan) | Override for the scaffolded specialist directory name |
Usage
Python API
from agents.specialists.repo_scanner.agent import RepoScannerSpecialist
oss_agent_lab.contracts Intent, Query, SpecialistRequest
specialist = RepoScannerSpecialist()
request = SpecialistRequest(
intent=Intent(
action=,
domain=,
confidence=,
parameters={: },
),
query=Query(user_input=),
specialist_name=,
)
response = specialist.execute(request)
(response.result[][])
(response.result.get())