# Changelog

33 releases, newest first. Full history for SkillCheck from v1.0 to v3.30.0.

This file is generated from the same release data that renders the
timeline at https://getskillcheck.com/changelog, which is built in the
browser and therefore invisible without JavaScript.

## v3.30.0 — Aug 2026 (major) [Pro]

**Check skills from anywhere**

- **New command: `skillcheck serve`.** It starts a small web server with one job: you send it a skill, it sends back the problems and a 0 to 100 score. It takes a raw SKILL.md file or a link to a GitHub repository, and answers in JSON. Anything that can make a web request can now run SkillCheck: an n8n workflow, a CI pipeline, a script, your phone.
- **Whole repositories in one go.** Send a repo link and SkillCheck finds every SKILL.md inside it (in the repo root, `.claude/skills/`, and `skills/`) and checks them all, up to 20 files. The repo scores what its weakest skill scores, because a repo is only as good as its worst skill.
- **The MCP server works over the network now.** Start it with `skillcheck-mcp --http` and Claude, or any other MCP client, can reach it from another machine. If you run it locally today, nothing changes. There is also a new tool, `skillcheck_check_repo`, which does the whole-repository check from inside Claude.
- **Two ways to lock a shared server.** `--token` sets a password you invent. `--license-auth` goes further: every caller must present their own SkillCheck license key, so a server you host gives Pro results only to people who bought Pro. Everyone else gets a polite refusal and a link to the store. Lock the server before you put it on the internet.
- **Careful downloading.** When SkillCheck fetches skills from GitHub, it checks that the repo name looks like a real repo name and refuses to follow any link that leads away from GitHub's own servers.

## v3.29.0 — Aug 2026 [Pro]

**A sturdier MCP server**

- **New foundation, same behavior.** The MCP server now runs on Anthropic's official Go toolkit and speaks the newest version of the protocol. Tool names, inputs, and outputs are unchanged, so everything you have set up keeps working.
- **A crashing check can no longer take the server down.** If one check fails badly, that call returns an error message and the server keeps serving.
- **Fewer needless requests.** Claude now remembers the server's tool list for an hour instead of asking for it again on every message.

## v3.28.1 — Jul 2026 [Pro]

**Correct license activation instructions**

- **If your license key did not work, this is why.** The README bundled inside every Pro download told you to set a key shaped like `SK_PRO_XXXXXXXXXXXX`. Lemon Squeezy issues plain UUIDs, so a real key looks like `38b1460a-5104-4067-a91d-77b872934d51` instead. The key you were sent was always the right one; the instructions were wrong.
- The download now shows a real key, says where to find yours, and lists what to check if a key you know is good gets rejected.
- **No binary change.** Nothing in the program itself changed between 3.28.0 and 3.28.1. If you are already running 3.28.0 there is no reason to update.

## v3.28.0 — Jul 2026 (major) [Pro]

**Four more anti-slop patterns**

- **Knowledge-cutoff disclaimers**: "as of my last knowledge update", "not widely documented", "in the provided sources". A skill that says this is reporting a gap it never searched for, and it reads like a sourced finding when it is a guess.
- **Chat-UI citation artifacts**: leftover render markup pasted out of a chat window, like `oaicite`, `[cite: 1]` or `contentReference`. This is the first Category 5 pattern rated Critical rather than Warning, because unlike every other one it has no legitimate use. It is evidence the text was pasted, not a matter of taste.
- **Assistant correspondence**: "Would you like me to", "is there anything else", "I hope this message finds you well". Chat pleasantries that were never edited out.
- **Copula inflation**: "operates as a", "boasts a", "represents a significant", "marks the first". The second half of the copula check, which previously caught only "serves as a" and friends.
- **What it deliberately does not flag**: bracketed placeholders like `[Your Topic]`, because a real skill uses those as template slots in its usage examples. Also words like robust, enhance and align with, which are ordinary writing. A checker that fires on correct work teaches you to ignore it.

Source: [Wikipedia: Signs of AI writing](https://en.wikipedia.org/wiki/Wikipedia:Signs_of_AI_writing).

## v3.27.0 — Jul 2026 (major) [Pro]

**Anti-slop cluster-mining patterns**

- **AI vocabulary check (5.4)**: flags statistically AI-lifted words (delve, tapestry, testament to, pivotal, seamless, ever-evolving). One word family stays a Suggestion, because "leverage the API" alone is honest prose. Two or more distinct families in the same skill escalate every hit to Warning: the co-occurrence is the signal.
- **Significance inflation**: "stands as a testament to", "a pivotal moment", "setting the stage for", "deeply rooted" and friends now warn. State the fact; skip the monument framing.
- **Cross-sentence antithesis**: "It's not about speed. It's about reliability." used to pass clean because only the comma form was caught. Both split-sentence forms and "less about X, more about Y" now warn.
- **Cliché lists**: corporate jargon (move the needle, paradigm shift, circle back), internet memes models strip-mine (hits different, chef's kiss, rent-free), and false-agency phrases (the data tells us, the decision emerges) join the slop patterns.
- **Provenance**: mined from a benchmark of four community anti-slop repos (humanizer, deslop-text, stop-slop, taste-skill) against SkillCheck's existing patterns. Only the families SkillCheck genuinely lacked were adopted; overlaps were deduplicated, not double-reported.

## v3.26.0 — Jul 2026 (major) [Pro]

**Reference-aware checks expand to composability, observability, knowledge density**

- **Three more categories follow your references**: the v3.25.0 reference-following behavior now also applies to Cat 17 input/output contracts, Cat 18 confidence and structured-output signals, and all six Cat 22 knowledge-density Pro checks.
- **Interface sections count from references**: a `## Interface` header in `references/interface.md` satisfies the dedicated-section check, so the contract can live one file away from a lean SKILL.md.
- **Honest line numbers**: examples found in references are labelled with their source file, so they can't be mistaken for SKILL.md line numbers.
- **Structural checks stay put**: the artifact-mismatch check, the complexity threshold, and the hollow-content check deliberately keep per-SKILL.md behavior; a short SKILL.md with a huge reference file is still short, and skills without references score exactly as before.

## v3.25.0 — Jun 2026 (major) [Free, Pro]

**Reference-aware checks**

- **Reference-aware checks**: content checks (like "does the skill include examples?") now also read the files a skill links to in its `references/` folder.
- **What it fixes**: keep your SKILL.md short and move the detail into `references/examples.md`, and the checker follows the link and looks there instead of falsely reporting examples missing. It rewards a lean SKILL.md with the detail one file away.
- **Fewer false positives**: the ambiguous-term check no longer flags words inside inline code, so a skill that documents a vague phrase as an example (in backticks) is not penalised for quoting it.

## v3.24.0 — Jun 2026 (major) [Free, Pro]

**Cat 28: Restraint**

- New **Restraint** check: when a skill tells the agent to keep things simple, does it also remind it to never skip validation, security, or accessibility?
- **The trap it catches**: "do less" advice is good, right up until it quietly drops a safety guard. A skill that says "keep it minimal" with no safety note can push the agent to skip checks it should never skip.
- **Free warning**: the skill says "keep it minimal" / "don't over-build" / "use the simplest thing that works" but never says to always keep validation, security, and accessibility.
- **Pro strength**: the skill tells the agent to keep things simple *and* to always keep validation, security, and accessibility. That is the pattern that removes needless code without dropping a guard.
- Careful not to misfire: a casual "simple" is not a "keep it minimal" instruction, and just mentioning "security" somewhere is not the same as telling the agent to keep it.
- The free browser checker, the SkillCheck-Free Skill, and the Cursor rule all got this check too.

Inspired by the [ponytail "lazy senior dev" skill](https://github.com/DietrichGebert/ponytail), whose tests showed "do less" prompts cut code but sometimes dropped a safety guard.

## v3.23.0 — Jun 2026 [Free, Pro]

**Fewer false positives**

- **Frontmatter XML check** no longer trips on placeholders. A description that documents a path like `/error_tracking/`, or uses a YAML folded block (`description: >`), used to be flagged as if it contained markup. The check now looks for a real tag and leaves plain `` tokens alone.
- **Reviewer-pattern check** no longer mislabels action skills. A skill that creates, downloads, or formats something was often misread as a reviewer and told to add pass/fail criteria it did not need. The classifier now asks for real verdict language (pass/fail, a rubric, scoring against criteria) before expecting that section.
- Both fixes came out of an 84-skill external corpus where these two checks were the largest sources of false positives.

Found by running SkillCheck against the PostHog ai-plugin skill corpus.

## v3.22.0 — Jun 2026 (major) [Pro]

**Cat 27: Repo Maturity**

- New **Repo Maturity** check: it reads a skill's git history to answer what the SKILL.md text can't, is anyone actually using this skill, or was it written once and abandoned?
- **The write-once smell**: a skill with a single commit, authored in one sitting and never revisited, gets flagged. Roughly one in three popular published skills have exactly one commit.
- Three signals: how many commits touch the skill, how recently it changed, and whether those commits are spread across different days. A skill the author relies on accretes fixes over time; a demo does not.
- Scored in its own lane, so it never drags the quality score. A one-commit skill can still be excellent; this measures whether it is lived-in, not whether it is good.
- Fail-safe: outside a git repo, on a shallow clone, or for a browser upload, it stays quiet instead of guessing.
- **Pro only**: the free browser checker has no access to git history, so this runs in the CLI and the MCP server.

Source: [Show Us Your (Agent) Skills (Vanishing Gradients)](https://github.com/hugobowne/show-us-your-agent-skills).

## v3.21.0 — Jun 2026 (major) [Free, Pro]

**Cat 26: OWASP Agentic Top 10**

- New **owasp** subcommand: checks a skill against the OWASP Top 10 for Agentic Applications (2026), a standard list of ways an AI agent can be attacked or go wrong
- **8 checks, free and local**: it flags a skill that asks for broad tool access, lets a caller act as another user, installs unpinned dependencies, runs arbitrary code, loops with no stop condition, deletes or sends with no confirmation, disables its own safeguards, or takes consequential actions with no audit trail. Runs in the CLI, the browser, and CI with no AI model and no license.
- **--strict --evidence** CI gate: writes a baseline and fails the build if a new risk appears, with a SHA-256 stamp so the baseline cannot be quietly edited
- **--mcp-aware**: also reads an MCP server's tool list, so the access and identity checks have more to work with than the skill text alone
- Skills that are not agents (a plain text formatter, say) are reported as not-applicable instead of getting a misleading zero
- **Pro grader**: for the deeper intent-based risks (goal hijacking, memory poisoning, and more), SkillCheck builds an evidence-loaded rubric and your own AI agent judges it. No API key and no model ship in the binary; it runs on whatever AI already calls SkillCheck.
- Local-only by design; no skill content leaves your machine

26 categories. Source: [OWASP Top 10 for Agentic Applications (2026)](https://genai.owasp.org/resource/owasp-top-10-for-agentic-applications-for-2026/).

## v3.20.0 — Apr 2026 (major) [Free, Pro]

**Cat 23 + 24: MCP servers & plugin manifests**

### Cat 23: Agent Integration Readiness (MCP servers)

- **check-mcp** CLI: validates an MCP server's `tools/list` response
- **23.1 Free**: tool-count thresholds (>20 high, >40 strong) and 1:1 CRUD-API mirror smell
- **23.1-23.4 Pro**: code-orchestration strength, identity-override critical, annotation completeness, CLI-literacy in descriptions
- Schema-floor lock against `modelcontextprotocol/servers` reference shape

### Cat 24: Skill Marketplace Governance (plugin manifests)

- **check-plugin** CLI: validates `.claude-plugin/plugin.json`
- **24.1-24.6 Free**: name format, semver, required fields, command collision, layout
- **24.4-24.5 Pro**: change-gate evals pointer, maintainers field, deprecation block format
- Schema-floor lock against `anthropics/knowledge-work-plugins` reference
- Empirical benchmark: 21/21 reference plugins pass clean; 0/21 declare maintainers or evals

### Cat 25: Memory Governance (design)

- Six primitives from Anthropic Managed Agents memory release: scoped permissions, audit logs, rollback, redaction, concurrent access, observable session events
- Two-stage activation rule: skills not declaring memory usage report "not applicable" rather than scoring zero
- Implementation pending first-party memory-using exemplar skills

### Browser validator

- Three-tab input selector (SKILL.md, plugin.json, tools/list) on validate.getskillcheck.com
- All checks run client-side via WebAssembly

Sources: [Anthropic Production MCP patterns](https://claude.com/blog/building-agents-that-reach-production-systems-with-mcp), [Sam Morrow's four axes](https://youtu.be/ideYDMJKujE), [knowledge-work-plugins](https://github.com/anthropics/knowledge-work-plugins), [Anthropic Managed Agents memory](https://claude.com/blog/claude-managed-agents-memory).

## v3.19.0 — Apr 2026 [Pro]

**Anti-Slop Expansion (Pro)**

- **5.3 Verb inflation**: flags "serves as a", "stands as a", "functions as a" when "is" or "has" works
- **5.3 Promotional adjectives**: catches vibrant, groundbreaking, cutting-edge, and 5 more travel-brochure words in skill text
- **5.3 Vague attributions**: detects "experts say", "industry reports suggest" without named sources

115 total checks across 22 categories.

## v3.18.0 — Apr 2026 [Free, Pro]

**Knowledge Density (Free + Pro)**

- **22.7 Hollow content detection** (Free): flags gotchas/troubleshooting sections with 3+ generic filler phrases and no concrete knowledge signals
- **22.1-22.6 Density strengths** (Pro): rewards specific thresholds, consequence explanations, experience markers, debugging sequences, decision logic, and concrete code references
- Code block, frontmatter, and table header exclusion for all density scanning
- Based on anti-distill classifier inversion: six categories of high-value tacit knowledge

112 total checks across 22 categories. Sources: [Hasan et al.: MCP Tool Descriptions Are Smelly!](https://arxiv.org/abs/2602.14878), [Wang et al.: From Docs to Descriptions](https://arxiv.org/abs/2602.18914), [Glama: Tool Description Quality Score](https://glama.ai/blog/2026-04-03-tool-description-quality-score-tdqs).

## v3.17.0 — Apr 2026 [Pro]

**Eval Kit Generation (Pro SKILL.md)**

- **21.1-21.3 Should-trigger prompts**: generates explicit, implicit, and contextual test prompts from the skill's description and trigger words
- **21.4 Negative control prompts**: generates should-NOT-trigger prompts from trigger collision data and boundary sections; names which skill each negative belongs to
- New Phase 5 in validation pipeline appends Eval Kit to every Pro report
- Copy-pasteable prompts for manual skill verification in Claude Code

109 checks across 21 categories. Sources: [OpenAI eval-skills methodology](https://developers.openai.com/blog/eval-skills).

## v3.16.0 — Apr 2026 [Pro]

**GitHub Actions Integration (Pro)**

- **Reusable composite action**: validate skills in CI with `uses: olgasafonova/skillcheck@v3`
- Configurable fail thresholds: `critical`, `warning`, or `none`
- Structured outputs: score, grade, result, critical/warning/suggestion counts
- Pro license support via GitHub secrets

105 total checks across 20 categories. Sources: [OpenAI: Testing Agent Skills with Evals](https://developers.openai.com/blog/eval-skills), [Google: 5 Agent Skill Design Patterns](https://x.com/GoogleCloudTech/status/2033953579824758855).

## v3.15.0 — Mar 2026 [Free, Pro]

**Design patterns, artifact contracts, trigger collisions**

### Design Pattern Classification (Free + Pro)

- **19.1 Pattern detection** (Free): classifies skills as Reviewer, Generator, Inversion, Pipeline, or Tool Wrapper based on the Google ADK taxonomy
- **19.2-19.7 Pattern deep checks** (Pro): validates pattern-specific requirements; criteria for Reviewers, output specs for Generators, question frameworks for Inversion, stage docs for Pipelines, API boundaries for Tool Wrappers

### Artifact Contract Validation (Pro)

- **17.6-17.9**: validates `produces`/`consumes` frontmatter fields, artifact metadata documentation, and discovery patterns
- Flags undeclared artifact type references in body text (with code block exclusion to prevent false positives)

### Trigger Collision Detection (Pro)

- **20.1-20.4**: cross-skill directory scan using Jaccard similarity on trigger word sets; flags overlaps at 50% (warning) and 85% (critical)
- **20.5-20.7**: artifact pipeline validation; detects orphan producers and missing consumers across skill directories
- Runs automatically during `skillcheck scan`

105 total checks across 20 categories. Sources: Google ADK skill design patterns, Anthropic skill taxonomy.

## v3.14.0 — Mar 2026 [Free, Pro]

**Description triggers, railroading, gotchas**

### New Free Tier Checks

- **4.8 Description trigger style**: flags descriptions that read as capability summaries instead of trigger conditions
- **4.9 Railroading detection**: catches 5+ prescriptive phrases that reduce Claude's adaptability
- **8.9 Gotchas section**: recognizes gotchas/pitfalls/caveats documentation as a quality strength

### New Pro Tier Checks

- **10.7 Setup/config handling**: flags skills referencing credentials without handling missing-config case
- **10.8 Data storage path safety**: warns about persistent data stored inside skill directory (won't survive upgrades)

87 total checks. Source: Anthropic's internal skill design insights.

## v3.13.0 — Mar 2026 [Free]

**New Frontmatter Fields**

- `effort` field validation (low, medium, high)
- `maxTurns` field validation with runaway detection (>100)
- `disallowedTools` validation with allowed-tools overlap detection
- Model aliases accepted: `opus`, `sonnet`, `haiku`
- Spec version updated to 2026-03-20

## v3.12.0 — Mar 2026 [Free, Pro]

**Skill Discovery**

- `skillcheck discover` CLI command and `skillcheck_discover` MCP tool
- Multi-platform scanning: Claude Code, Cursor, Windsurf, Codex CLI
- Scans CLAUDE.md, .cursorrules, AGENTS.md, custom commands, hooks
- Confidence scoring (HIGH/MEDIUM/LOW) per candidate
- Platform auto-detection with per-candidate tagging
- Redundancy detection across config files
- Free: see candidates. Pro (`--generate`): auto-create SKILL.md files

## v3.11.0 — Mar 2026 [Free, Pro]

**Anti-Pattern Detection**

- 4.7-desc-workflow-steps (Free): flags descriptions that summarize workflow steps
- 12.5-no-exit-criteria: phased skills missing exit criteria per phase
- 12.6-unbounded-iteration: catches unbounded "for each" loops
- 15.6-subagent-no-return-format: subagent prompt checks
- 12.7-verbosity-detection: flags unnecessary explanations of well-known concepts
- 12.8-feedback-loop-detection: flags quality-critical skills lacking verify steps
- Skipped checks shown as "not applicable" instead of silently omitted
- Accurate passed count: "Passed: N / M applicable"

## v3.10.0 — Mar 2026 (major) [Pro]

**Agent Readiness (L0-L3)**

- 6 new validation pillars with 28 checks (prefixes 13-18, Pro tier)
- Reference Integrity: dangling references, excessive count, organization
- Eval Readiness: success criteria, input/output examples, binary verdicts
- Orchestration Safety: budget caps, phase boundaries, human checkpoints
- Autonomy Design: stop conditions, safety guardrails, rollback, idempotency
- Composability: input/output contracts, mode awareness, interface sections
- Observability: progress reporting, confidence levels, phase boundaries
- L0-L3 maturity scoring for agent-ready skills
- WASM web validator at validate.getskillcheck.com
- 82 total checks across 18 categories

Source: [Anthropic: Lessons from Building Claude Code](https://www.linkedin.com/pulse/lessons-from-building-claude-code-how-we-use-skills-thariq-shihipar-iclmc/).

## v3.9.0 — Mar 2026 [Free]

**Claude Code v2.1.69-71 Sync**

- New tools in KnownTools: CronCreate, CronDelete, CronList, EnterWorktree
- Quality check 8.8-uses-skill-dir-var for `${CLAUDE_SKILL_DIR}`
- Example XML block tracking in ambiguous term and wisdom checks
- Description severity softened from required to recommended
- Version moved from top-level to metadata block

## v3.8.0 — Mar 2026 [Free]

**Wisdom Detection & Format Lint**

- 4.6-wisdom-platitude (Free): detects generic advice that wastes tokens
- 2.8-anti-pattern-format (Free): flags prose anti-pattern docs, suggests tables
- Progressive disclosure via references/ directory

## v3.7.0 — Mar 2026 [Free]

**Progressive Disclosure & Skill Sync**

- SKILL.md uses references/ for context-efficient loading
- Version sync across CLI, MCP server, and web server

## v3.6.0 — Feb 2026 [Free]

**Anthropic Guide Alignment**

- Aligned with "The Complete Guide to Building Skills for Claude" (Anthropic, Feb 2026)
- 4.4-body-misplaced-routing: flags "When to Use" sections in body
- Routing trigger content moved to description field

## v3.5.0 — Feb 2026 [Free]

**Community Patterns**

- Checks informed by scanning 1434 community skills
- scan command for batch validation of skill repositories
- report command for HTML validation reports

## v3.4.0 — Jan 2026 [Free, Pro]

**Quality Patterns (Strengths)**

- SkillCheck now recognizes positive patterns, not just issues
- Free: example section, error handling, trigger phrases, output format
- Pro: negative triggers, boundary conditions, version pinning

## v3.3.0 — Jan 2026 [Free]

**Description & Claude Code Fields**

- 4.4-desc-use-when: suggests "Use when..." description format
- 4.5-desc-no-triggers: warns when descriptions lack trigger phrases
- Claude Code frontmatter validation: model, context, agent, hooks

## v3.1.0 — Jan 2026 [Pro]

**Configuration & Plugins**

- YAML configuration via .skillcheck.yaml
- Plugin system for custom checks
- Audit logging for compliance
- Custom rules with pattern matching

## v3.0.0 — Dec 2025 (major) [Free]

**Knowledge Source Architecture**

- SKILL.md contains complete validation knowledge (no MCP dependency)
- Architecture rewrite: skill file is the source of truth

## v2.0.0 — Dec 2025 (major) [Free]

**agentskills Spec Alignment**

- Aligned with official agentskills specification
- Breaking: version field no longer required, allowed-tools format changed

## v1.0.0 — Dec 2025 (major) [Free]

**Initial Release**

- CLI tool for validating Claude Code skills
- MCP server for Claude Code integration
- Web server with API endpoint

Sources: [Anthropic: Claude Code Best Practices](https://www.anthropic.com/engineering/claude-code-best-practices), [MCP Best Practices](https://modelcontextprotocol.io), [W3C: WCAG 2.2](https://www.w3.org/TR/WCAG22/).
