Status and management of the master-of skill-gate system: shows the brief report (per-gate counts, what is broken, token savings), and files newly discovered skills into the right gate. Invoke for '현황', '점검해줘', 'what skills are gated', 'why is X disabled', or when the SessionStart hook says components are unclassified. Also the first-time setup guide when mo CLI is not yet configured.
Scanned 9/22/2026
npx -y skills add devrudals/master-of --skill check-skills --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Check Skills?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/devrudals-check-skills)More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.
---
name: "check-skills"
description: "Status and management of the master-of skill-gate system: shows the brief report (per-gate counts, what is broken, token savings), and files newly discovered skills into the right gate. Invoke for '현황', '점검해줘', 'what skills are gated', 'why is X disabled', or when the SessionStart hook says components are unclassified. Also the first-time setup guide when mo CLI is not yet configured."
allowed-tools: Read, Bash
---
# check-skills
The engine is the `mo` CLI. Everywhere below, `mo` means the wrapper at
`~/.master-of/mo` (written by `claude-setup` — see Setup below).
Never read `registry.json` directly and never edit it by hand — it is large,
and every question below has a CLI command that reads it correctly.
---
## 1. Status (「현황」, 「점검해줘」)
```bash
~/.master-of/mo status
```
Show the output as-is. It lists broken items (disabled plugins whose gates
still offer them, dead MCP servers) with the fix for each.
### PROACTIVE TOKEN GATEKEEPER DUTY (CRITICAL)
Do NOT stop passively after showing the brief report!
Run:
```bash
~/.master-of/mo unparked --json
~/.master-of/mo unclassified --json
```
If unparked skills > 0 or Always-on token consumption is heavy (saving < 70%):
1. **Warn the user explicitly** about the exact wasted token count (e.g. 30,000+ tok loaded every session).
2. **PROACTIVELY ASK THE USER** to batch-park raw skills into `skills-library` (`mo park --all`) to instantly achieve 85%+ token savings.
3. Upon user approval, run `~/.master-of/mo park --all` and show the updated savings!
## 2. Unclassified components
The SessionStart hook reports how many components still carry the scanner's
category guess. To file them:
1. `~/.master-of/mo unclassified --source claude --json` — each entry has
`name`, `type`, `category` (the guess), `description`, `rel_path`, `source`.
2. For each entry decide, from its description, which gate it belongs to:
`design` / `dev` / `research` / `stock` / `planning` / `pipelines`.
Rules of thumb:
- An end-to-end workflow that runs a whole project phase → `pipelines`
(needs `--domain <gate>` to surface from that gate's index too)
- GSD/planning skills → `planning`, add `--cluster <name>`
- A skill whose only job is to call a plugin's MCP server → mark it
`requires` that plugin; it's hollow when the plugin is disabled
Write a one-line Korean summary for `--desc`.
3. `~/.master-of/mo classify <name> <gate> --desc "한 줄 요약" [--cluster x] [--domain gate]`
To permanently skip a component (harness-internal helper, exact duplicate):
`~/.master-of/mo ignore <name>`
4. After the batch: `~/.master-of/mo claude-sync` re-renders the gate indexes.
**Bulk first run (5+ entries)**: classify them all, then show a one-line plan
per gate ("design ← a, b, c; planning ← …") and get a yes BEFORE running
`claude plugin disable` or moving folders. Reorganising a full library without
asking is not routine.
### Dormancy rules (how to make a component stop loading every session)
| Component type | How to gate it |
|---|---|
| Raw skill (`~/.claude/skills/<name>/SKILL.md`) | `mo classify` → `mo claude-sync` moves it to `~/.claude/skills-library/<cat>/` |
| Raw command (`~/.claude/commands/<name>.md`) | Same — moved to `~/.claude/skills-library/<cat>/_commands/` |
| Raw agent (`~/.claude/agents/<name>.md`) | Same — moved to `~/.claude/skills-library/<cat>/_agents/` |
| Plugin-bundled component | `claude plugin disable <plugin>@<marketplace>` |
| Agents spawned by gated skills | Keep always-on (file under `always_on` with `reason: "spawn_cost"`) — reading each on every spawn costs more than their always-on tax |
## 3. Everything else
| Goal | Command |
|---|---|
| Full inventory | `~/.master-of/mo full` |
| Search | `~/.master-of/mo search <keyword>` |
| Remove a stale entry | `~/.master-of/mo remove <name>` |
| Re-scan now | `~/.master-of/mo sync && ~/.master-of/mo claude-sync` |
| Gate files up to date? | `~/.master-of/mo claude-sync` (re-renders indexes) |
## 4. Brief report
Run `~/.master-of/mo status` and show its output. That's the brief view.
For the full inventory the user asked for the whole list ("전체 보여줘"),
use the sibling skill `check-skills-all`.
### Permanent exemptions
Some plugins/skills are never gated (hook-dependent, output-style, near-zero
cost, silently-opportunistic). These are tracked in the `always_on` section
of the v2 registry — `mo status` shows them. To add one:
`~/.master-of/mo always-on <name> --reason <reason>`.
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!