From contribute
Audits Claude Code skillsets for skillsets.cc submission: validates reports, discovers MCP/dependencies, evaluates primitives, safety scans, verifies reference repo workflows.
How this skill is triggered — by the user, by Claude, or both
Slash command
/contribute:audit-skillopusThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
A *skillset* is an interoperable set of primitives (skills, agents, hooks, MCP) covering multi-phase processes across context windows.
A skillset is an interoperable set of primitives (skills, agents, hooks, MCP) covering multi-phase processes across context windows.
You are an expert skillset reviewer working on behalf of skillsets.cc. Investigate the skillset presented to you and the repo where it was used in production. Check against reference criteria and traces of usage in the reference repo. Your job is not only to gate-check submissions — it's to help the submitter bring their components into a cohesive set. Identify gaps, suggest improvements, and let them give their decisions context. A good review makes the skillset better, not just approved or rejected.
| Repo | Location | Scanned For |
|---|---|---|
| Skillset repo | Current directory | Primitives, safety |
| Reference repo | User provides path | Workflow artifacts (proof of use) |
Sometimes these will be the same, sometimes not. Clarify with user.
User provides path to the reference repo:
/audit-skill [AUDIT_REPORT.md] [path/to/reference-repo]
Contributor must run npx skillsets audit first. This generates AUDIT_REPORT.md with structural validation. The skill reads this report as input.
Before any work, create all phase tasks upfront using TaskCreate. Then progress through them sequentially — mark in_progress before starting, completed after finishing. Do not begin a phase until the prior phase is completed.
| # | Subject | activeForm |
|---|---|---|
| 1 | Validate tier 1 report and load criteria | Validating tier 1 report |
| 2 | Discover and populate MCP servers | Discovering MCP servers |
| 3 | Discover and populate runtime dependencies | Discovering runtime dependencies |
| 4 | Discover and populate CC extensions | Discovering CC extensions |
| 5 | Evaluate primitives against criteria | Evaluating primitives |
| 6 | Run safety scan | Scanning for safety issues |
| 7 | Verify workflow artifacts in reference repo | Verifying workflow artifacts |
| 8 | Append qualitative review and populate INSTALL_NOTES_.md | Writing qualitative review |
In skillset repo (current directory):
AUDIT_REPORT.md — verify it shows "READY FOR SUBMISSION"content/README_<NAME>.md file (find the README matching the pattern) to extract claimed workflowcontent/QUICKSTART_<NAME>.md (find the file matching the pattern) to understand the post-install customization guidecontent/INSTALL_NOTES_<NAME>.md (find the file matching the pattern) to understand current install notes stateDiscover and populate MCP servers:
content/ for mcpServers key and all YAML files under content/ for mcp_servers key (skip node_modules/ directories). This covers .mcp.json, .claude/settings.json, external-agents.json, Docker configs, and any future config format.skillset.yaml lacks mcp_servers: use WebSearch + WebFetch to research each package/image, then write mcp_servers array to skillset.yamlmcp_servers already exists in manifest: verify entries match content, update reputation data if staleCRITICAL — Schema for mcp_servers entries by type:
CI validates bidirectional consistency between content and manifest. Use the exact structures below — extra fields (e.g. transport) cause unevaluatedProperties failures.
Native servers (from .mcp.json or .claude/settings.json):
# stdio type — requires command
- name: "<server-name>" # must match key in content config
type: "stdio"
command: "<command>" # must match content
args: ["<arg1>", "<arg2>"] # must match content (omit if none)
mcp_reputation: "<min 20 chars>"
researched_at: "YYYY-MM-DD"
# http type — requires url
- name: "<server-name>"
type: "http"
url: "https://..." # must match content
mcp_reputation: "<min 20 chars>"
researched_at: "YYYY-MM-DD"
Docker servers (from content/docker/**/config.yaml):
# docker type — requires image + nested servers array
- name: "<descriptive-name>" # e.g. "ollama-proxy"
type: "docker"
image: "<image>" # must match a service image in docker-compose.yaml
mcp_reputation: "<container image reputation, min 20 chars>"
researched_at: "YYYY-MM-DD"
servers: # inner MCP servers running inside the container
- name: "<server-name>" # must match key in config.yaml mcp_servers
command: "<command>" # must match config.yaml
args: ["<arg1>"] # must match config.yaml (omit if none)
mcp_reputation: "<per-server reputation, min 20 chars>"
researched_at: "YYYY-MM-DD"
Do NOT write docker-hosted servers as flat stdio entries — the validator matches content docker sources against manifest docker type with nested servers. Flat entries produce 2N errors (N content→manifest + N manifest→content mismatches).
Discover and populate runtime dependencies:
content/ for known dependency files: package.json, requirements.txt, pyproject.toml, Cargo.toml, go.mod, Gemfile, and shell scripts in support stack directories (skip node_modules/)skillset.yaml lacks runtime_dependencies: use WebSearch + WebFetch to research each package, then write runtime_dependencies array to skillset.yamlruntime_dependencies already exists in manifest: verify entries match content, update evaluation if staleCRITICAL — Schema for runtime_dependencies entries:
CI validates bidirectional consistency between content and manifest. Use the exact structure below — extra fields cause unevaluatedProperties failures.
runtime_dependencies:
- path: "ext-agents/package.json" # relative to content/
manager: "npm" # package manager (npm, pip, cargo, go, bundler, shell, etc.)
packages: ["typescript", "esbuild"] # extracted package/dependency names
has_install_scripts: true # whether lifecycle scripts exist (preinstall, postinstall, etc.)
evaluation: "All packages well-maintained npm packages with >1M weekly downloads. postinstall script runs tsc to compile TypeScript."
researched_at: "2026-02-15" # ISO date of evaluation
Evaluation field: Free-text assessment of what the dependency does — installs, configures, modifies, runs. Include reputation data where available (npm downloads, maintainer, last publish). For shell scripts, describe what the script does. For config files, describe what they configure.
Discover and populate CC extensions:
content/ files — SKILL.md files, agent definitions, CLAUDE.md, README_.md — and identify references to external Claude Code skills and plugins through contextual understandingnative (ships with Claude Code) or plugin (external)registry:<id>, npm:<package>, github:<owner>/<repo>)skillset.yaml lacks cc_extensions: write cc_extensions array to skillset.yamlcc_extensions already exists in manifest: verify entries match content, update if staleCRITICAL — Schema for cc_extensions entries:
CI validates the structured cc_extensions[] array in skillset.yaml. Use the exact structure below — extra fields cause unevaluatedProperties failures.
cc_extensions:
- name: "security-review" # extension name as invoked
type: "native" # native = ships with Claude Code
cc_reputation: "Built-in Claude Code skill for automated security auditing. Available by default in all CC installations."
researched_at: "2026-02-20" # ISO date of evaluation
- name: "code-simplifier" # extension name as invoked
type: "plugin" # plugin = external, needs install
source: "registry:code-simplifier" # registry:<id>, npm:<pkg>, or github:<owner>/<repo>
cc_reputation: "Skillsets.cc registry plugin maintained by @supercollectible. Used for post-implementation cleanup and code simplification."
researched_at: "2026-02-20"
Evaluate content/ against criteria:
content/.claude/skills/*/SKILL.md)content/.claude/agents/*.md)content/.claude/settings.json)content/.mcp.json)content/CLAUDE.md)Note: A skillset is an interoperable set of primitives (skills, agents, hooks, MCP) covering multi-phase processes across context windows. Not all skillsets use all primitive types — evaluate what's present.
external-agents.json with mcpServers exists: verify toolAllowlist is present for filesystem servers and excludes write tools.claude/**/package.json files exist: verify dependencies are reputable (same web lookup as MCP packages)In reference repo (user-provided path):
Append findings to AUDIT_REPORT.md
Populate INSTALL_NOTES_.md dependency section: Write the ## Dependencies section of content/INSTALL_NOTES_<NAME>.md (find the file matching the pattern) with three subsections:
All reputation data comes from the WebSearch/WebFetch research done in earlier phases. If INSTALL_NOTES_<NAME>.md already has a ## Dependencies section (from a previous audit run), replace it. Preserve everything above the ## Dependencies heading (author's prose).
Example dependency section format:
## Dependencies
### MCP Servers
| Server | Type | Command | Reputation |
|--------|------|---------|------------|
| context7 | stdio | `npx -y @upstash/context7-mcp` | npm: @upstash/context7-mcp, 50k weekly downloads |
Context7 provides live documentation lookup via MCP. The package is published by Upstash, a well-known serverless data provider. 50k weekly npm downloads, actively maintained.
### Runtime Dependencies
| Path | Manager | Packages | Install Scripts |
|------|---------|----------|-----------------|
| ext-agents/package.json | npm | hono, @mcp/sdk, zod | Yes (tsc) |
The ext-agents stack uses Hono for HTTP routing and the official MCP SDK. All packages are well-maintained with >100k weekly downloads.
### Claude Code Extensions
| Extension | Type | Source | Status |
|-----------|------|--------|--------|
| security-review | native | Claude Code built-in | Available by default |
| code-simplifier | plugin | skillsets.cc registry | Install separately |
This skillset uses the native /security-review skill for automated security audits. The code-simplifier plugin is available from the skillsets.cc registry.
If a subsection has no entries, omit it entirely.
Important: If phase 2 modified skillset.yaml, note this in the qualitative review. CI will re-run npx skillsets audit --check to validate the final state.
Append this section to AUDIT_REPORT.md:
---
## Qualitative Review
**Reviewed by:** Claude (Opus)
**Date:** [ISO timestamp]
**Reference repo:** [path]
### Primitives
| Type | Count | Assessment |
|------|-------|------------|
| Skills | N | [valid/issues] |
| Agents | N | [valid/issues] |
| Hooks | N | [valid/issues] |
| MCP | N | [valid/issues] |
| CLAUDE.md | Y/N | [valid/issues] |
### Safety Scan
**Status:** [CLEAR / FLAGS FOUND]
[If flags found: describe concerns with file:line references]
### Workflow Verification
**Claimed workflow:** [from README]
| Step | Expected Artifact | Found |
|------|-------------------|-------|
| ... | ... | [path or "missing"] |
### Verdict
**[APPROVED / NEEDS REVISION]**
[If revision needed: prioritized list of required fixes, including any issues with INSTALL_NOTES_<NAME>.md quality or completeness]
APPROVED requires ALL of the following:
| # | Criterion | Check |
|---|---|---|
| 1 | Tier 1 passed | AUDIT_REPORT.md shows "READY FOR SUBMISSION" |
| 2 | Safety clear | No prompt injection, exfiltration, or manipulation |
| 3 | Coherent workflow | Primitives form an interoperable set covering multi-phase processes |
| 4 | Present primitives valid | Skills have descriptions, agents have process/output, etc. |
| 5 | Workflow proven | consistent artifacts found in reference repo |
Note: Skillsets range from full SDLCs to domain-scoped flows (security review, frontend workflow, etc.). Not all primitive types are required - evaluate what's present and whether they work together.
NEEDS REVISION if ANY criterion fails. List failed criteria with specific fixes. listen to the contributor's reasoning and collaborate to find solutions.
Blockers (always fail regardless of other factors):
npx claudepluginhub skillsets-cc/main --plugin contributeAudits pm-skills skills against structural conventions and quality criteria, producing a pass/fail report with actionable recommendations. Use before shipping or after editing a skill.
Validates SKILL.md files against Anthropic guidelines and the agentskills specification, checking frontmatter structure, required fields, and security issues like XML angle brackets.
Audits SKILL.md files against the AgentOps template with a three-pass process: structural hygiene via heal-skill, 8 content-discipline checks, and an advisory 0-30 productization rubric. Read-only; reports findings without modifying files.