eval-audit
**Locale**: All templates in this spec are written in English. Detect the user's language from the session and translate user-facing text at display time per…
This command gives users a quick local inventory of installed skills and surfaces only high-signal issues. It supports two modes:
$ npx -y skills add Evol-ai/SkillCompass --agent claude-codeHow it fires
How this command gets triggered: by you, by Claude, or both.
/setupContext preview
What this command does when you run it.
This command gives users a quick local inventory of installed skills and surfaces only high-signal issues. It supports two modes:
This command gives users a quick local inventory of installed skills and surfaces only high-signal issues. It supports two modes:
In auto-trigger mode, setup must never replace or derail the user's original request. Its job is to help briefly, save state, and return control to the dispatcher.
1. Detect whether setup was invoked manually or as a first-run auto-trigger. 2. If auto-triggered, preserve the original command name and arguments as `resume_command` and `resume_args`. 3. Use `.skill-compass/setup-state.json` as the primary persisted state file. 4. For backward compatibility, if `.skill-compass/setup-state.json` is missing but `.skill-compass/.setup-done` exists, read the legacy marker and migrate the minimal fields into `setup-state.json`. 5. Load the standard OpenClaw config file `~/.openclaw/openclaw.json` if it exists. If present, read optional extra skill roots from `skills.load.extraDirs`. 6. If setup was auto-triggered and a current setup state already exists, return control to the dispatcher immediately so it can continue the original command.
When auto-triggered, ask the user first:
> Quick skill inventory (~5 sec) before continuing `{resume_command}`? [OK / Skip]
Manual `/setup` does not need this confirmation.
Build the scan root list in this priority order:
1. `.claude/skills/` (project-level Claude Code) 2. `.openclaw/skills/` (project-level OpenClaw, if present) 3. Each path listed in `skills.load.extraDirs` from `~/.openclaw/openclaw.json` 4. `~/.claude/skills/` (user-level Claude Code) 5. `~/.openclaw/skills/` (user-level OpenClaw, if present)
Resolve only directories that actually exist.
Scan each root for `*/SKILL.md` and `*/skill.md` (immediate children only — this matches Claude Code's own discovery pattern).
**Do NOT scan recursively.** Sub-skills inside packages (e.g., `superpowers/skills/writing-plans/SKILL.md`) are discovered passively via `PostToolUse Skill` hook when users invoke them. Scanning recursively would pick up internal files (agent definitions, translations, other-platform configs) that aren't user-facing skills.
Exclude:
For each directory in the scan roots that does NOT have a top-level SKILL.md, check if it looks like an installed package. A directory is a **package** if it has at least one of:
Add packages to `inventory` with `type: "package"` (not `type: "skill"`). Include:
Sub-skills inside packages (e.g., `superpowers/skills/writing-plans/SKILL.md`) are NOT added to inventory individually. They are passively discovered via the `PostToolUse Skill` hook when users invoke them through the Skill tool.
For each detected package, recursively find all SKILL.md files within the package directory (`**/SKILL.md`, excluding `node_modules/` and `.git/`). Run D3 security pattern matching only (from `lib/patterns.js`) on each file:
This is pattern matching only — no D1/D2 evaluation, no LLM calls. Results are NOT added to inventory. Display inline:
If all clean:
{package_name}: {N} sub-skill files scanned, no security issues ✓If issues found:
{package_name}: {N} sub-skill files scanned, {M} issue(s) found
⚠ {filename}: {finding description}EN: Same format, follow locale.
During the package scan above, build a reverse lookup map: `sub_skill_name → package_name`. For each SKILL.md found inside a package, extract the `name` field from frontmatter (or use the directory name as fallback).
Write the map to `.skill-compass/cc/package-skill-map.json`:
{
"writing-plans": "superpowers",
"executing-plans": "superpowers",
"brainstorming": "superpowers",
"subagent-driven-development": "superpowers"
}This map is used by `hooks/scripts/skill-usage-tracker.js` to attribute sub-skill invocations to their parent package when the PostToolUse Skill payload doesn't include the package prefix. This ensures usage records always have the qualified form (`superpowers:writing-plans`) for traceability.
Deduplicate by canonical skill identity:
Keep the full deduplicated list in memory for persistence and batch actions.
If no skills are found:
No installed skills found in the scanned roots. If your OpenClaw skills live in a custom path, add it to `skills.load.extraDirs` in `~/.openclaw/openclaw.json`.
Save an empty snapshot state, write `.skill-compass/.setup-done`, and:
If more than 20 skills are found:
Evaluate agent skill quality. Find the weakest link. Fix it. Prove it worked.
Repo: Evol-ai/SkillCompass
**Locale**: All templates in this spec are written in English. Detect the user's language from the session and translate user-facing text at display time per…
**Locale**: All templates in this spec are written in English. Detect the user's language from the session and translate user-facing text at display time per…
**Locale**: All templates in this spec are written in English. Detect the user's language from the session and translate user-facing text at display time per…
- **Recommended model: Claude Opus 4.6** (`claude-opus-4-6`). Directed improvement requires understanding complex rubric feedback and generating precise,…
**Locale**: All templates in this spec are written in English. Detect the user's language from the session and translate user-facing text at display time per…
**Locale**: All templates in this spec are written in English. Detect the user's language from the session and translate user-facing text at display time per…