skill-quality-auditor

command module
v0.26.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 14, 2026 License: MIT Imports: 1 Imported by: 0

README

skill-quality-auditor

CI golangci-lint Go Version

skill-quality-auditor

AI agent skills promise expert guidance, but how do you know they're any good? skill-auditor scores SKILL.md files against a 9-dimension quality framework and produces concrete diagnostics to make them better. Think of it as a linter with opinions: it catches structural issues, gaps in guidance, missing evals, and anti-patterns before your users do.

Quick Start

# Install (one line)
curl -fsSL https://raw.githubusercontent.com/pantheon-org/skill-quality-auditor/main/scripts/install.sh | sh

# Evaluate a skill
skill-auditor evaluate path/to/skill
Skill: skill-full
Grade: B+ (123/140)

Dimensions:
  Knowledge Delta              20/20
  Mindset + Procedures          7/15
  Anti-Pattern Quality          9/15
  Specification Compliance     16/15
  Progressive Disclosure       15/15
  Freedom Calibration          13/15
  Pattern Recognition          10/10
  Practical Usability          15/15
  Eval Validation              18/20

Warnings:
  [D2]  no precondition signals detected
  [D2]  no postcondition signals detected
  [D7]  no negative anchors in description, skill may over-trigger

Each warning links to a dimension doc with scoring criteria and targeted remediation advice.

Install

Method Command
install.sh (Linux / macOS) one-liner in Quick Start
mise mise use github:pantheon-org/skill-quality-auditor
Go go install github.com/pantheon-org/skill-quality-auditor@latest

Set INSTALL_DIR=~/.local/bin or VERSION=v1.2.3 to customise the install.sh download.

Once installed, run skill-auditor update (or mise upgrade skill-auditor) to get the latest release.

Prerequisites: Pre-built binaries need no runtime. To build from source you need Go 1.25+.

Usage

skill-auditor <command> [<args>] [flags]

Command What it does
evaluate <skill> Score one skill
batch <skill1> [skill2 ...] Score several skills (--fail-below for CI gating)
duplication [dir] Detect overlapping skills via Jaccard similarity
aggregate --family <prefix> Plan consolidation for a skill family
remediate <skill> Generate step-by-step fix recommendations
trend Compare score deltas across stored audits
validate Check file conventions (artifacts), review reports (review), and context frontmatter at a given path against the JSON schemas (context <path>)
analyze <skill> Extract TF-IDF keywords and structural patterns
eval <skill> Run evals/ scenarios (structural gate by default; LLM-judged with a provider key)
init Install the auditor skill into your agent environment
update Self-update the binary (install.sh installs only)
prune Remove old audit snapshots, keeping N per skill
version Print the version and, for release builds, the release date
Common flags
Flag Available on
-j / --json analyze, batch, duplication, trend, remediate, aggregate
-m / --markdown evaluate, analyze, batch, duplication, trend
-s / --store evaluate, analyze, batch, duplication, trend
-r / --repo-root most commands
-n / --dry-run aggregate, remediate, prune, init
-c / --config <path> global, overrides the D1/D6/analysis-quality scoring pattern lists
--no-user-config global, ignore any config file and score with the embedded/built-in patterns only

--json and --markdown are mutually exclusive. Default format: JSON for evaluate/analyze/batch/remediate/aggregate, Markdown for duplication/trend. Run any command with --help for the full flag reference.

-c/--config and --no-user-config are persistent flags accepted by every scoring command; skill-auditor eval ignores both and always scores against the embedded config, so CI results stay reproducible. See Configuring scoring patterns for the full 5-tier precedence chain and the per-OS default config path.

skill-auditor evaluate path/to/skill              # JSON (default)
skill-auditor evaluate path/to/skill -m            # Markdown
skill-auditor batch skills/skill-a skills/skill-b --json
skill-auditor duplication --store                  # persist for trend

Scoring Dimensions

ID Dimension Max What a low score signals
D1 Knowledge Delta 20 Content restates what the model already knows, no expert uplift
D2 Mindset & Procedures 15 Missing mental models or step-by-step guidance the agent needs
D3 Anti-Pattern Coverage 15 Common failure modes not called out, agent will repeat them
D4 Specification Compliance 15 Frontmatter, structure, or naming deviates from the tile spec
D5 Progressive Disclosure 15 Detail is front-loaded; references not used for depth
D6 Freedom Calibration 15 Skill is either too prescriptive or too vague for the task
D7 Pattern Recognition 10 No trigger conditions, agent won't know when to activate
D8 Practical Usability 15 Examples absent or unrealistic; hard to apply in practice
D9 Eval Validation 20 No evals, quality claims are unverifiable

Total: 140 pts. Grade bands: A+ ≥133, A ≥126, B+ ≥119, B ≥112, C+ ≥105, C ≥98, D ≥91, F <91.

See cmd/assets/references/quality-thresholds-scoring.md for the full rubric. Each dimension has a dedicated doc: D1 · D2 · D3 · D4 · D5 · D6 · D7 · D8 · D9

CI Integration

- name: Audit skills
  run: |
    skill-auditor batch skills/ --fail-below B --store
    skill-auditor duplication   # exits 2 on Critical pairs
    skill-auditor validate artifacts
    skill-auditor eval skills/my-skill --fail-below 0   # structural gate, no LLM key needed

--fail-below accepts any grade (A+ through F) for batch, or a percentage score for eval. duplication exits with code 2 (not 1) on Critical (>35%) pairs so it can be distinguished from a command error in pipeline logic. eval runs in structural-only mode (schema consistency, no semantic grading) unless an LLM provider key is set in the environment, see docs/architecture/eval-runner.md.

Full workflow example, mirroring this repo's own skill-quality.yml:

jobs:
  skill-quality:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Install
        run: curl -fsSL https://raw.githubusercontent.com/pantheon-org/skill-quality-auditor/main/scripts/install.sh | sh
      - name: Batch audit
        run: skill-auditor batch skills/ --fail-below B --store
      - name: Duplication check
        run: skill-auditor duplication
      - name: Artifact validation
        run: skill-auditor validate artifacts
      - name: Structural eval gate
        run: skill-auditor eval skills/my-skill --fail-below 0

Repository layout

.
├── main.go               CLI entrypoint
├── cmd/                  Cobra command implementations
├── cmd/assets/           Skill source, SKILL.md, tile.json, evals, schemas
├── agents/               Agent registry (supported init targets)
├── scorer/               D1–D9 dimension scorers
├── analysis/             TF-IDF extraction + pattern detectors
├── duplication/          Jaccard similarity engine
├── reporter/             Output formatters and audit persistence
├── docs/                 Per-dimension scoring docs and ADRs
├── internal/             Shared utilities (tokenizer)
├── scripts/              install.sh
└── testdata/             Fixture skills for unit tests

Contributing

See CONTRIBUTING.md for the development workflow, commit conventions, and pre-commit hook setup. All tests must pass (go test ./...) before pushing.

License

MIT, see LICENSE for the full text.

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis
Package agents provides the canonical registry of supported agent clients derived from https://github.com/vercel-labs/skills#supported-agents.
Package agents provides the canonical registry of supported agent clients derived from https://github.com/vercel-labs/skills#supported-agents.
internal
llmclient
Package llmclient provides a provider-agnostic abstraction over LLM chat completion APIs (Anthropic, OpenAI, Gemini, Mistral, Cerebras, and OpenAI-compatible gateways such as Ollama and vLLM).
Package llmclient provides a provider-agnostic abstraction over LLM chat completion APIs (Anthropic, OpenAI, Gemini, Mistral, Cerebras, and OpenAI-compatible gateways such as Ollama and vLLM).
patternconfig
Package patternconfig loads the scoring pattern lists (D1 knowledge-delta signals, D6 when-not-to-use phrases, and analysis quality word lists) from an embedded YAML config, falling back to built-in defaults if the config is missing or malformed.
Package patternconfig loads the scoring pattern lists (D1 knowledge-delta signals, D6 when-not-to-use phrases, and analysis quality word lists) from an embedded YAML config, falling back to built-in defaults if the config is missing or malformed.
This file owns aggregation plan formatting: building and rendering the markdown consolidation plan for a skill family.
This file owns aggregation plan formatting: building and rendering the markdown consolidation plan for a skill family.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL