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
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://tessl.io/skill-insights/duplicates-prompts-index.schema.json",
"title": "Skill Insights — Duplicate Prompts Index",
"description": "Manifest produced by prepare_duplicates.py at <prompts_dir>/index.json. Lists every candidate pair that was selected for LLM judgement, plus pre-screen scores. The handoff contract between prepare_duplicates and finalize_duplicates (and the per-pair subagents that fill in verdicts).",
"type": "object",
"additionalProperties": false,
"required": ["schema_version", "metadata", "items"],
"properties": {
"schema_version": { "type": "string", "const": "1.0" },
"metadata": {
"type": "object",
"additionalProperties": false,
"required": [
"scanned_at", "tool_version",
"skill_count",
"candidate_pairs_generated", "candidate_pairs_evaluated",
"max_pairs_cap", "allow_cross_repo", "prompts_dir"
],
"properties": {
"scan_id": { "type": ["string", "null"] },
"scanned_at": { "type": "string", "format": "date-time" },
"tool_version": { "type": "string" },
"skill_count": { "type": "integer", "minimum": 0 },
"candidate_pairs_generated": { "type": "integer", "minimum": 0 },
"candidate_pairs_evaluated": { "type": "integer", "minimum": 0 },
"max_pairs_cap": { "type": ["integer", "null"], "minimum": 0 },
"allow_cross_repo": { "type": "boolean" },
"prompts_dir": { "type": "string" }
}
},
"items": {
"type": "array",
"items": { "$ref": "#/$defs/PromptIndexItem" }
}
},
"$defs": {
"SkillSummary": {
"type": "object",
"additionalProperties": false,
"required": ["skill_id", "name", "repo", "primary_path", "agent_harnesses"],
"properties": {
"skill_id": { "type": "string" },
"name": { "type": "string" },
"repo": { "type": "string" },
"primary_path": { "type": "string" },
"agent_harnesses": {
"type": "array",
"items": { "type": "string" }
},
"tile_id": { "type": ["string", "null"] },
"owning_package": {
"anyOf": [
{ "type": "null" },
{ "type": "object", "additionalProperties": true }
]
}
}
},
"PromptIndexItem": {
"type": "object",
"additionalProperties": false,
"required": [
"idx", "pair_id",
"skill_a", "skill_b",
"similarity_score",
"name_desc_jaccard", "body_jaccard", "same_name", "both_active",
"prompt_filename", "prompt_path", "verdict_filename"
],
"properties": {
"idx": { "type": "integer", "minimum": 0 },
"pair_id": { "type": "string", "pattern": "^p\\d{3,}$" },
"skill_a": { "$ref": "#/$defs/SkillSummary" },
"skill_b": { "$ref": "#/$defs/SkillSummary" },
"similarity_score": { "type": "number", "minimum": 0, "maximum": 1 },
"name_desc_jaccard": { "type": "number", "minimum": 0, "maximum": 1 },
"body_jaccard": { "type": "number", "minimum": 0, "maximum": 1 },
"same_name": { "type": "boolean" },
"both_active": { "type": "boolean" },
"prompt_filename": { "type": "string" },
"prompt_path": { "type": "string" },
"verdict_filename": { "type": "string" }
}
}
}
}