Skip to content

/skills-audit

Audit every skill and command Forge can see — group by status (active, duplicate, deprecated, archived)

From plugin
lucasduys-forge
5613 skills9 agents13 commands3 hooks
Install
> /plugin marketplace add LucasDuys/forge
> /plugin install forge@forge-marketplace

How it fires

How this command gets triggered: by you, by Claude, or both.

  • Fires itselfClaude auto-loads it when your prompt matches the work.
  • You can call itInvoke it directly when you want it.
  • Slash command/skills-audit

Context preview

What this command does when you run it.

Audit every skill and command Forge can see — group by status (active, duplicate, deprecated, archived)

Command definition

skills-audit.md
description: "Audit every skill and command Forge can see — group by status (active, duplicate, deprecated, archived)"
allowed-tools: ["Read(*)", "Bash(node ${CLAUDE_PLUGIN_ROOT}/scripts/forge-skills-audit.cjs:*)"]

Forge Skills Audit

List every skill and slash-command visible to the current Forge install, with source + path + status. Output is designed to be copy-paste-ready into a "skills cleanup" PR description.

How to run

Invoke the inventory script. Default output is a fixed-width table; pass `--json` for machine-readable output.

node "${CLAUDE_PLUGIN_ROOT}/scripts/forge-skills-audit.cjs"

The script walks:

  • `~/.claude/skills/` — user-level skills (source `user-skills`, plus

`archived` when the path sits under `_archived-*/` or `archived/`).

  • `~/.claude/plugins/cache/<marketplace>/<plugin>/<ver>/skills/` — every

plugin-shipped skill (source `plugin:<plugin>`).

  • `~/.claude/commands/` — user-level slash commands.
  • `~/.claude/plugins/cache/<marketplace>/<plugin>/<ver>/commands/` — every

plugin-shipped command.

Status values

| Status | Meaning | |------------|---------| | active | Healthy, loadable, not flagged. | | duplicate | Same name appears in ≥ 2 sources (e.g. `user-skills` and a plugin, or two plugins). Resolve by deleting the stale copy. | | deprecated | SKILL.md description starts with `Deprecated`. The skill loader may still pick it up; prefer the replacement noted in the description. | | archived | Path contains `_archived-*/` or `archived/`. Kept for reference; should not be invoked. |

Presenting the result

Render the table output verbatim under a `### Skills Audit (<date>)` heading in the PR description. Follow it with the summary line the script prints (`totals: ...` + `status: ...`). Call out any `duplicate` rows as action items for the cleanup PR.

If a user asks for JSON (or wants to pipe the output into another tool), run:

node "${CLAUDE_PLUGIN_ROOT}/scripts/forge-skills-audit.cjs" --json

Edge cases

  • If the script exits non-zero, read stderr; the most common cause is a

corrupt `plugin.json` or `SKILL.md` that broke the underlying `discoverCapabilities` walk. Surface the error to the user; do not try to "fix" the skill file from this command.

  • If the table is empty, `~/.claude/` probably does not exist on this

machine (e.g. running inside an ephemeral sandbox). Let the user know.

  • Never use em dashes in generated output (per project style).
Read more
Ships withlucasduys-forge

Turn a one-line idea into a branch with tested, reviewed, committed code. The brainstorm-to-commit pipeline for Claude Code.

Get the whole plugin, auto-invoked

Other commands on lucasduys-forge.