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.schema.json",
"title": "Skill Insights — Duplicates Output",
"description": "Final duplicate clusters and overlapping pairs produced by detect-skill-duplicates (finalize_duplicates.py). Built from per-pair LLM verdicts via union-find.",
"type": "object",
"additionalProperties": false,
"required": ["schema_version", "metadata", "clusters", "overlapping_pairs", "estate_summary", "warnings"],
"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",
"llm_calls", "failed_pairs"
],
"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" },
"llm_calls": { "type": "integer", "minimum": 0 },
"failed_pairs": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": ["skill_a", "skill_b", "reason"],
"properties": {
"skill_a": { "type": "string" },
"skill_b": { "type": "string" },
"reason": { "type": "string" }
}
}
}
}
},
"clusters": {
"type": "array",
"items": { "$ref": "#/$defs/DuplicateCluster" }
},
"overlapping_pairs": {
"type": "array",
"items": { "$ref": "#/$defs/OverlappingPair" }
},
"estate_summary": {
"type": "object",
"additionalProperties": false,
"required": [
"duplicate_clusters", "skills_in_clusters",
"overlapping_pair_count", "total_skills_implicated",
"estimated_skill_reduction_potential"
],
"properties": {
"duplicate_clusters": { "type": "integer", "minimum": 0 },
"skills_in_clusters": { "type": "integer", "minimum": 0 },
"overlapping_pair_count": { "type": "integer", "minimum": 0 },
"total_skills_implicated": { "type": "integer", "minimum": 0 },
"estimated_skill_reduction_potential": { "type": "integer", "minimum": 0 }
}
},
"warnings": { "type": "array", "items": { "type": "string" } }
},
"$defs": {
"ClusterSeverity": {
"type": "string",
"enum": ["low", "medium", "high", "critical"]
},
"PairSeverity": {
"type": "string",
"enum": ["low", "medium", "high"]
},
"DuplicateCluster": {
"type": "object",
"additionalProperties": false,
"required": [
"cluster_id", "skill_ids", "dominant_skill_id",
"verdict", "reason", "severity", "confirmed_pairs"
],
"properties": {
"cluster_id": { "type": "string", "pattern": "^cluster-\\d{3,}$" },
"skill_ids": {
"type": "array",
"items": { "type": "string" },
"minItems": 2,
"uniqueItems": true
},
"dominant_skill_id": { "type": "string" },
"verdict": { "type": "string", "const": "duplicate" },
"reason": { "type": "string" },
"severity": { "$ref": "#/$defs/ClusterSeverity" },
"confirmed_pairs": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": ["skill_a", "skill_b", "verdict", "reason", "similarity_score"],
"properties": {
"skill_a": { "type": "string" },
"skill_b": { "type": "string" },
"verdict": { "type": "string", "const": "duplicate" },
"reason": { "type": "string" },
"similarity_score": { "type": "number", "minimum": 0, "maximum": 1 }
}
}
}
}
},
"OverlappingPair": {
"type": "object",
"additionalProperties": false,
"required": ["skill_a", "skill_b", "verdict", "reason", "similarity_score", "severity"],
"properties": {
"skill_a": { "type": "string" },
"skill_b": { "type": "string" },
"verdict": { "type": "string", "const": "overlapping" },
"reason": { "type": "string" },
"similarity_score": { "type": "number", "minimum": 0, "maximum": 1 },
"severity": { "$ref": "#/$defs/PairSeverity" }
}
}
}
}