Scan a directory or workspace for SKILL.md files across all agents and repos, capture supporting files (references, scripts, linked docs), dedupe vendored copies, enrich each Tessl tile with registry signals, and emit a canonical JSON inventory validated by JSON Schema. Then run four analytical phases in parallel against the inventory — staleness + git provenance (history, broken refs, contributors), quality (Tessl `skill review`), duplicates (similarity + LLM judgement), registry-search (per-standalone-skill registry suggestions, HTTP only) — and render a self-contained interactive HTML report with a top-of-report health overview, top-issues panel, recently-changed list, and per-tessl.json manifests view.
84
90%
Does it follow best practices?
Impact
97%
1.44xAverage score across 2 eval scenarios
Advisory
Suggest reviewing before use
{
"context": "Tests whether the agent runs the full skill-insights pipeline correctly against a single git repository: invokes the bundled discovery script, dispatches the three analytical phases in parallel, waits for all of them, renders the HTML report, and reports a coherent summary. The fixture repo contains exactly three vanilla `.claude/skills/*/SKILL.md` files in one git repo with one commit.",
"type": "weighted_checklist",
"checklist": [
{
"name": "discovery.json exists",
"description": "A `.skill-insights/discovery.json` file exists inside `./resources/myrepo/` after the run.",
"max_score": 8
},
{
"name": "discovery.json schema 1.3",
"description": "The `discovery.json` top-level object has `schema_version` equal to the string `\"1.3\"`.",
"max_score": 6
},
{
"name": "discovery counts three skills",
"description": "`discovery.json`'s `stats.total_skills` is exactly 3 (the fixture contains exactly three SKILL.md files), and `stats.total_repos` is exactly 1.",
"max_score": 8
},
{
"name": "staleness.json produced",
"description": "A `.skill-insights/staleness.json` file exists with `schema_version` equal to `\"1.1\"`, and its `per_skill[]` length matches `discovery.skills[]` length.",
"max_score": 6
},
{
"name": "duplicates.json produced",
"description": "A `.skill-insights/duplicates.json` file exists. (The fixture has independent skills so an empty clusters array is acceptable — the file's existence and JSON validity is what's tested.)",
"max_score": 6
},
{
"name": "quality.json produced or gracefully failed",
"description": "A `.skill-insights/quality.json` file exists. Acceptable shapes: (a) populated `per_skill[]` from `tessl skill review`, OR (b) a quality.json whose `metadata.failed_skills[]` lists the skills with an explanatory error (e.g. `tessl` CLI unavailable in sandbox). What's NOT acceptable: missing file, or invalid JSON.",
"max_score": 6
},
{
"name": "report.html rendered",
"description": "A `.skill-insights/report.html` file exists, is non-empty, and contains NO unsubstituted placeholder strings of the form `<!--@SOMETHING_DATA@-->`.",
"max_score": 8
},
{
"name": "Bundled discovery script invoked",
"description": "Evidence (in pipeline-log.md or in the agent's tool calls) that the agent ran the bundled `discover_skills.py` script with `--scan-root` pointing at `./resources/myrepo`. The agent did NOT reimplement skill discovery in shell, jq, or inline Python.",
"max_score": 10
},
{
"name": "Phases dispatched in parallel",
"description": "Evidence (in pipeline-log.md) that the three analytical phases (staleness, quality, duplicates) were dispatched as parallel subagents in a single batch after discovery completed — NOT one after another sequentially.",
"max_score": 12
},
{
"name": "Render runs after all phases",
"description": "Evidence that the agent waited for all three phase outputs before rendering `report.html` — render.html depends on having the JSON outputs to inline.",
"max_score": 8
},
{
"name": "Bundled render script used",
"description": "Either (a) the agent invoked the bundled `run-skill-insights/scripts/render_report.py`, OR (b) it implemented the equivalent placeholder substitution explicitly (replacing all four placeholders `<!--@DISCOVERY_DATA@-->`, `<!--@STALENESS_DATA@-->`, `<!--@QUALITY_DATA@-->`, `<!--@DUPLICATES_DATA@-->`). Hand-rolling a partial substitution that misses placeholders fails.",
"max_score": 6
},
{
"name": "Summary mentions correct counts",
"description": "`pipeline-log.md` reports a final skill count of 3 and a repo count of 1 — matching what's actually in `discovery.json`.",
"max_score": 8
},
{
"name": "Graceful degradation surfaced",
"description": "If any phase degraded (e.g. `tessl` CLI unavailable for quality, no auth for registry enrichment), `pipeline-log.md` explicitly notes WHICH phase degraded and WHY, rather than silently swallowing it.",
"max_score": 8
}
]
}