review-skills
Audit all skills available in the current project context for conflicts, quality issues, and replicable patterns. Use when user wants to review skills, audit skills, check skill quality, find conflicting or overlapping skills, improve skill descriptions, check what skills are installed, or mentions "review-skills". Always use this skill when the user wants to understand the health or completeness of their skill setup.
- License 许可
- MIT
- 最近更新
- 2026-11-11
- Stars
- ★ 0
- Forks
- 0
01 前言 Front Matter
- name
- review-skills
- description
- Audit all skills available in the current project context for conflicts, quality issues, and replicable patterns. Use when user wants to review skills, audit skills, check skill quality, find conflicting or overlapping skills, improve skill descriptions, check what skills are installed, or mentions "review-skills". Always use this skill when the user wants to understand the health or completeness of their skill setup.
- disable-model-invocation
- true
03 SKILL.md 正文
Review Skills
Audit every skill available in the current project context and produce a structured report covering conflicts, quality issues, and patterns worth spreading.
Process
1. Discover skills in scope
Locate the installed skills first — do not assume a location, check which ones exist. Installed skills live in different places depending on how they were installed, and scanning a single hardcoded path is how this audit silently reports zero skills:
for d in ~/.agents/skills ~/.claude/skills "$PWD/.claude/skills"; do
[ -d "$d" ] && printf '%s: %s skills\n' "$d" "$(find "$d" -maxdepth 2 -name SKILL.md | wc -l)"
done
~/.agents/skills/— installed vianpx skills add, flat, one directory per skill. Usually the real set.~/.claude/skills/— global skills<cwd>/.claude/skills/— project-local skills installed into this project- Plugins: read
~/.claude/settings.jsonforenabledPlugins, then find their SKILL.md files under~/.claude/plugins/cache/
If ~/.agents/.skill-lock.json exists, read it. It records each installed skill's source and skillPath in its origin repo, which lets you spot two problems a directory listing cannot: entries whose skillPath no longer exists upstream (the skill was renamed or moved, so npx skills update can no longer follow it), and installed copies that have drifted behind their source.
By default, audit what is installed — that is what actually loads. A source repo's skills/ directory is development-only. But when the user points you at a repo's skills/ directory, or asks about skills they are authoring, review the source instead and say which you reviewed. If both exist, compare them: a source repo that has renamed or restructured its skills while the installed copies still carry the old names is a real, silent failure — every cross-skill reference in the new generation dangles at runtime.
For each skill found, record:
- Source: installed (
~/.agents/skills), global, project-local, plugin, or source repo - Path: absolute path to SKILL.md
- Name: from
namefrontmatter field - Description: from
descriptionfrontmatter field - Body line count: lines in SKILL.md excluding frontmatter
- Bundled resources: whether references/, scripts/, or assets/ exist alongside SKILL.md
Read every SKILL.md in full. Note referenced supporting files but only read them if needed to resolve an ambiguity.
2. Check for conflicts and overlaps
Compare all skill pairs. Flag pairs where:
- Descriptions share trigger phrases or keywords that would make selection ambiguous for an overlapping user prompt
- Names are similar enough to confuse (e.g.
clean-codevsclean-comments) - Both claim the same domain without clear differentiation
For each flagged pair, describe which user prompts would be ambiguous and suggest how to differentiate the descriptions.
3. Evaluate each skill against the quality rubric
For each skill, check all 15 items below. Record pass/fail and a one-line note for any failing check. The purpose of these checks is to ensure skills trigger reliably and give the model clear, actionable guidance.
<quality-rubric> Frontmatter
namefield exists and is kebab-casenamematches the directory namedescriptionfield exists- Description follows the two-part pattern: what it does + when to use it (explicit trigger phrases)
- Description is under 1024 characters
- Description is "pushy" — lists specific trigger phrases rather than vague capability summaries (Claude undertriggers skills, so descriptions need to be explicit)
Size and structure
7. Body is under 500 lines
8. If body exceeds 200 lines, large reference content is split into separate files rather than inlined
9. Steps use numbered ### headers rather than walls of prose
10. No hardcoded absolute paths that break portability (~ and relative paths are fine)
Instruction quality 11. Uses imperative form ("Do X" not "You should do X" or "Claude will X") 12. Explains the why behind non-obvious instructions, not just what to do 13. Output templates use consistent formatting (XML-style tags or fenced code blocks, not a mix)
Resources
14. Every file referenced by name in SKILL.md actually exists on disk
15. If references/, scripts/ or assets/ directories exist, SKILL.md mentions them so the model knows to use them. This applies to model-facing resources only — files the skill reads or renders at runtime. evals/, skill-feedback-ledger.md and similar are development tooling the model never loads; requiring SKILL.md to mention them adds context noise and is not a finding.
</quality-rubric>
Assign severity to each failing check:
- Critical: blocks correct skill usage (missing description, non-existent referenced files)
- Major: meaningfully degrades output quality (vague triggers, missing why, hardcoded paths)
- Minor: polish issues (style inconsistency, slightly verbose)
4. Identify replicable good patterns
Look across all skills for patterns worth adopting more broadly. Signal good work, not just problems. Patterns to watch for:
- Interview-before-action: skill gathers requirements from the user before producing output — makes output more accurate and reduces rework
- GitHub issue as deliverable: skill creates a structured GH issue — creates a durable record and fits code-review workflows
- Progressive disclosure: SKILL.md is lean, with detailed content in reference files — keeps context window clean
- Vertical-slice philosophy: work broken into thin end-to-end slices rather than layers
- Model override for simple tasks:
model: haikuin frontmatter for lightweight, mechanical skills — saves tokens and latency - Bundled scripts for deterministic work: scripts/ directory for code the skill always runs — avoids the model reinventing it each time
For each pattern found, note which skills use it and which other skills could benefit from adopting it, with a brief explanation of why it would help.
5. Produce the audit report
<report-template>
Skills Audit Report
Skills discovered: [N] total — [N] installed, [N] global, [N] project-local, [N] plugin Scanned: [which locations existed and were read; say if you audited source rather than installed]
Conflicts & Overlaps
[For each flagged pair:]
- [skill-a] vs [skill-b]: [which user prompts would be ambiguous]
- Suggestion: [how to differentiate descriptions]
If none: No conflicts detected.
Quality Issues
Critical
- [skill-name]: [rubric check #] — [one-line problem description]
- Fix: [specific actionable change]
Major
[same format]
Minor
[same format]
If none in a category: None.
Good Patterns Worth Spreading
- [pattern name] — currently used in: [skill-a], [skill-b]
- Could benefit: [skill-x], [skill-y] — [brief explanation of how it would help]
Per-Skill Scorecards
[skill-name] ([source]) — [N] lines
- Rubric: [N]/15 checks passed
- Strengths: [1-2 bullet points]
- Top fix: [single most impactful improvement, or "No issues found"]
[repeat for each skill] </report-template>
Keep the report factual and concise. Cross-reference rather than repeat the same finding in multiple sections. If a skill passes all checks with no overlaps, say so briefly in its scorecard and move on.
04 同仓库更多 Skills
to-tickets
Breaks a source into independently-grabbable GitHub tickets. For a code feature the source is the plan (`docs/plans/<feature>.md`, from /to-plan) and every new or changed symbol lands in exactly one ticket, its signatures copied into the ticket body; a non-code feature is cut from the PRD's slices. Cuts tickets for one feature per run. If a code feature has no approved plan, offers /to-plan instead of cutting from prose. In a repo that runs command-centre, also emits `[[task]]` blocks into its config; in a plain treepad repo, emits a Batch Manifest instead so the tickets materialise as stacked worktrees.
to-seams
Records an agreed-but-unlanded cross-repo interface as a seam: the file a consumer's agent gets pasted into its prompt as ground truth, plus the `[[seam]]` block command-centre reads for the retirement pointer. Use when two repos need to build against an interface neither has landed yet — "record a seam for X", "we agreed on this schema, seam it", "add a seam so Y can build against Z's new field". Halts for approval before writing either file.
to-roadmap
Prioritises settled features into a Now / Next / Later kanban board, rendered as a self-contained ./ideas/roadmap.html. Each card is a feature, not a ticket — one card later becomes several tickets via /to-prd -> /to-plan -> /to-tickets. Boards the features in ./docs/approach.md, or the "## Accepted ideas" in ./ideas/CONTEXT.md when there is no approach doc. The approach doc is settled truth: this assigns tiers and reasons about ordering, it never re-litigates what was decided.
to-prd
Turns one feature idea into a PRD built on journeys: a one-line problem, journeys (each ending in an observable state) and delivery slices that say what is usable after each. Interviews, explores the codebase, and saves to docs/prds/<feature>.md. Covers exactly one feature: given a multi-feature source, ask which one. Reads any approach doc or ideate report as priors so it doesn't re-ask what's settled, but needs none. Starts the per-feature spine (/to-prd -> /to-plan -> /to-tickets).
to-plan
Turns one feature's PRD into a skimmable plan in docs/plans/<feature>.md: a short overview, then per phase a glossary, the journeys it satisfies, and its new and modified definitions (types, enums, ports, schema), with the project:<slug> label. No code, branch or PR; the user's review of the file is the gate. Use for "plan this feature", "write the contract", "what are the types". One feature per run. Slash-only.
ticket-tracker
Use when the request is about the *current state* of GitHub issues rather than creating new ones: "where are my tickets", "show the board", "what's in progress", "what's ready to pick up", "move issue N to in-review", "mark N done", "update the ticket status". Live triage board over GitHub issues via the gh CLI, moving each between backlog -> ready -> in-progress -> in-review -> done using status labels. This is the ticket-level board; ./ideas/roadmap.html is the feature-level one. To file new tickets, use /to-tickets, file-issue for a single ad-hoc one, or /sweep for a batch of small fixes.