CtrlK
BlogDocsLog inGet started
Tessl Logo

tessleng/skill-insights

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

1.44x
Quality

90%

Does it follow best practices?

Impact

97%

1.44x

Average score across 2 eval scenarios

SecuritybySnyk

Advisory

Suggest reviewing before use

Overview
Quality
Evals
Security
Files

quality.schema.jsonreferences/schemas/

{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://tessl.io/skill-insights/quality.schema.json",
  "title": "Skill Insights — Quality Output",
  "description": "Per-skill review scores produced by analyze-skill-quality. Scores come from `tessl skill review --json`, registry tile-quality passthrough, or are absent (failed/skipped). Tile rollup pulls registry quality where available, otherwise computed mean of per-skill review scores.",
  "type": "object",
  "additionalProperties": false,
  "required": ["schema_version", "metadata", "per_skill", "per_tile", "estate_summary", "warnings"],
  "properties": {
    "schema_version": { "type": "string", "const": "2.0" },
    "metadata": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "scanned_at", "tool_version",
        "skill_count_reviewed", "skill_count_passthrough",
        "skill_count_skipped", "skill_count_failed", "skill_count_total",
        "duration_sec", "failed_skills"
      ],
      "properties": {
        "scan_id": { "type": ["string", "null"] },
        "scanned_at": { "type": "string", "format": "date-time" },
        "tool_version": { "type": "string" },
        "skill_count_reviewed": { "type": "integer", "minimum": 0 },
        "skill_count_passthrough": { "type": "integer", "minimum": 0 },
        "skill_count_skipped": { "type": "integer", "minimum": 0 },
        "skill_count_failed": { "type": "integer", "minimum": 0 },
        "skill_count_total": { "type": "integer", "minimum": 0 },
        "duration_sec": { "type": "number", "minimum": 0 },
        "failed_skills": {
          "type": "array",
          "items": {
            "type": "object",
            "additionalProperties": false,
            "required": ["skill_id", "error"],
            "properties": {
              "skill_id": { "type": "string" },
              "error": { "type": "string" }
            }
          }
        }
      }
    },
    "per_skill": {
      "type": "array",
      "items": { "$ref": "#/$defs/PerSkillQuality" }
    },
    "per_tile": {
      "type": "array",
      "items": { "$ref": "#/$defs/PerTileQuality" }
    },
    "estate_summary": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "avg_review_score", "by_verdict",
        "skills_with_validation_failures",
        "tiles_with_registry_score", "tiles_with_computed_avg"
      ],
      "properties": {
        "avg_review_score": { "type": ["number", "null"], "minimum": 0, "maximum": 100 },
        "by_verdict": {
          "type": "object",
          "additionalProperties": false,
          "required": ["good", "acceptable", "needs_work", "poor", "unknown"],
          "properties": {
            "good": { "type": "integer", "minimum": 0 },
            "acceptable": { "type": "integer", "minimum": 0 },
            "needs_work": { "type": "integer", "minimum": 0 },
            "poor": { "type": "integer", "minimum": 0 },
            "unknown": { "type": "integer", "minimum": 0 }
          }
        },
        "skills_with_validation_failures": { "type": "integer", "minimum": 0 },
        "tiles_with_registry_score": { "type": "integer", "minimum": 0 },
        "tiles_with_computed_avg": { "type": "integer", "minimum": 0 }
      }
    },
    "warnings": { "type": "array", "items": { "type": "string" } }
  },
  "$defs": {
    "Verdict": {
      "type": "string",
      "enum": ["good", "acceptable", "needs_work", "poor", "unknown"]
    },
    "Tier": {
      "type": ["string", "null"],
      "enum": ["published_tile", "authored_tile", "github_tile", "claude_plugin", "non_tile", null]
    },
    "ReviewStatus": {
      "type": "string",
      "enum": ["reviewed", "passthrough", "skipped_max_skills", "failed"]
    },
    "PerSkillQuality": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "skill_id", "name", "repo", "primary_path",
        "tile_id", "tile_name", "tier", "is_declared",
        "review_score", "verdict",
        "validation", "description_judge", "content_judge",
        "_status"
      ],
      "properties": {
        "skill_id": { "type": "string" },
        "name": { "type": "string" },
        "repo": { "type": "string" },
        "primary_path": { "type": "string" },
        "tile_id": { "type": ["string", "null"] },
        "tile_name": { "type": ["string", "null"] },
        "tier": { "$ref": "#/$defs/Tier" },
        "is_declared": { "type": "boolean" },
        "review_score": { "type": ["integer", "null"], "minimum": 0, "maximum": 100 },
        "verdict": { "$ref": "#/$defs/Verdict" },
        "validation": {
          "anyOf": [
            { "type": "null" },
            { "$ref": "#/$defs/Validation" }
          ]
        },
        "description_judge": {
          "anyOf": [
            { "type": "null" },
            { "$ref": "#/$defs/Judge" }
          ]
        },
        "content_judge": {
          "anyOf": [
            { "type": "null" },
            { "$ref": "#/$defs/Judge" }
          ]
        },
        "_status": { "$ref": "#/$defs/ReviewStatus" },
        "_passthrough": { "type": "string", "enum": ["registry_tile_score"] },
        "_error": { "type": "string" }
      },
      "allOf": [
        {
          "description": "passthrough records carry _passthrough; reviewed/skipped/failed do not.",
          "if": { "properties": { "_status": { "const": "passthrough" } }, "required": ["_status"] },
          "then": { "required": ["_passthrough"] },
          "else": { "not": { "required": ["_passthrough"] } }
        },
        {
          "description": "failed records carry _error; other statuses do not.",
          "if": { "properties": { "_status": { "const": "failed" } }, "required": ["_status"] },
          "then": { "required": ["_error"] },
          "else": { "not": { "required": ["_error"] } }
        }
      ]
    },
    "Validation": {
      "type": "object",
      "additionalProperties": false,
      "required": ["passed", "error_count", "warning_count", "failed_checks"],
      "properties": {
        "passed": { "type": ["boolean", "null"] },
        "error_count": { "type": "integer", "minimum": 0 },
        "warning_count": { "type": "integer", "minimum": 0 },
        "failed_checks": {
          "type": "array",
          "items": {
            "type": "object",
            "additionalProperties": false,
            "required": ["name", "status", "message"],
            "properties": {
              "name": { "type": "string" },
              "status": { "type": "string", "enum": ["error", "warning"] },
              "message": { "type": "string" }
            }
          }
        }
      }
    },
    "Judge": {
      "type": "object",
      "additionalProperties": false,
      "required": ["model", "success", "normalized_score", "scores", "overall_assessment", "suggestions"],
      "properties": {
        "model": { "type": ["string", "null"] },
        "success": { "type": ["boolean", "null"] },
        "normalized_score": { "type": ["number", "null"], "minimum": 0, "maximum": 1 },
        "scores": {
          "type": "object",
          "description": "Keyed by judge dimension name (varies by judge config).",
          "additionalProperties": {
            "type": "object",
            "additionalProperties": true,
            "required": ["score"],
            "properties": {
              "score": { "type": ["number", "integer"] },
              "reasoning": { "type": "string" }
            }
          }
        },
        "overall_assessment": { "type": ["string", "null"] },
        "suggestions": {
          "type": "array",
          "items": { "type": "string" }
        }
      }
    },
    "PerTileQuality": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "tile_id", "name", "repo", "tier",
        "published_to_registry",
        "score", "score_source", "verdict", "skill_count",
        "weakest_skill_id", "strongest_skill_id"
      ],
      "properties": {
        "tile_id": { "type": "string" },
        "name": { "type": "string" },
        "repo": { "type": "string" },
        "tier": { "type": ["string", "null"], "enum": ["published_tile", "authored_tile", "github_tile", null] },
        "published_to_registry": { "type": ["boolean", "null"] },
        "score": { "type": ["integer", "null"], "minimum": 0, "maximum": 100 },
        "score_source": {
          "anyOf": [
            { "type": "null" },
            { "type": "string", "enum": ["registry", "computed_avg"] }
          ]
        },
        "verdict": { "$ref": "#/$defs/Verdict" },
        "skill_count": { "type": "integer", "minimum": 0 },
        "weakest_skill_id": { "type": ["string", "null"] },
        "strongest_skill_id": { "type": ["string", "null"] }
      }
    }
  }
}

README.md

tile.json