/check-resolvable — Reachability Audit
SkillFiles & storageAudit ~/.claude/ for orphans, skills, commands, guides, and tools that exist on disk but have no path from CLAUDE.md / RESOLVER.md / other reachable files. Run weekly or before any CLAUDE.md cleanup.
Use /check-resolvable — Reachability Audit in Claude, ChatGPT or Ahel Desktop
Free. Sign in, add /check-resolvable — Reachability Audit and connect your AI. About a minute.
Also: Claude Code · Cursor · Codex
Then ask your AI: use the /check-resolvable skill
Details
Instructions available. Your AI can read the instructions. Execution depends on the setup they require.
Account requirements not reviewed. Check the skill instructions before use; Ahel provides instructions and does not run this skill.
No other account needed.
Add Ahel to your AI once: Claude, ChatGPT, Cursor, Claude Code or Codex. Then ask it to use this.
What this skill tells your AI
The instructions your AI receives, as published by griffinhilly/claude-code-synthesis in skills/check-resolvable/SKILL.md and read by Ahel’s review.
A thin wrapper around ~/.claude/tools/check-resolvable.py. The script does the deterministic scan; this skill interprets the result and recommends action.
Per CLAUDE.md latent-vs-deterministic rule, the audit itself is deterministic (regex over a fixed text corpus, no LLM judgment). The optional second pass — "which of these orphans actually matter" — is latent and lives in this skill, not the script.
When to invoke
- Weekly cron via
/loopor/schedule - Before any CLAUDE.md cleanup or skill refactor
- After adding ≥3 new skills/guides/tools (signal that the routing surface has grown)
- After any workflow-config sync that may have moved files
Process
Step 1: Run the deterministic scan
python3 ~/.claude/tools/check-resolvable.py --human
Add --list-reachable to also see what's known-good. Add --out report.json to persist the full JSON.
Step 2: Interpret orphans
For each orphan reported:
- Genuine orphan (dead capability) — the file exists but nothing references it; safe to retire or document for removal
- False positive (script's pattern missed a reference) — the file IS reachable but the script's regex didn't catch it; flag for adding the reference pattern to
check-resolvable.py - Pending wire-up (newly added, not yet wired) — the file was just created and hasn't been added to RESOLVER.md or CLAUDE.md yet; add the reference now
Step 3: Resolve
- Genuine orphans: propose removal (don't delete without user approval per your safety doctrine)
- False positives: edit
check-resolvable.pyto add the missing pattern; re-run - Pending wire-up: add the routing entry to RESOLVER.md or the trigger to CLAUDE.md; re-run
Step 4: Report
Summarize:
- Total capabilities counted
- Number reachable vs. orphan, by kind
- Action taken for each orphan (retired / wired / pattern-fixed / left as-is)
- Any pattern-detection gaps in the script that should be fixed
Limitations of the deterministic scan
The audit catches file-level reachability — whether the artifact is referenced. It does NOT catch:
- Stale references (a guide is referenced but its content is outdated) — different problem, addressed by quarterly CLAUDE.md health check
- Logical reachability (a skill is referenced but the conditions for invocation never fire) — addressed by trigger evals (
~/.claude/tools/skill-trigger-evals.py) - Cross-project references (project CLAUDE.md files reference user-scope skills) — partial: this scan only walks
~/.claude/, not per-project COMP files
Extensions (mode of thinking)
Reachability audits are an instance of the broader principle: "trust the determinism." Any time the workflow accumulates capability beyond what a human can mentally enumerate, automated reachability becomes the only way to keep the system honest. Extensions:
- Cross-project reachability — extend the corpus to include every project's CLAUDE.md / MEMORY.md / PLAN.md / ORIENT.md. Catches cases where a project references a skill that no longer exists.
- Reverse direction — instead of "are all capabilities reached?", ask "are all references valid?" (catches typos: CLAUDE.md says
/check-resolveablebut the skill is/check-resolvable). - Health over time — run the audit weekly and log results; surface the trend in orphan count. If orphans grow week-over-week despite no removals, something is decaying.
- Trigger eval coupling — pair this with
skill-trigger-evals.py. Reachability says "this skill is wired in"; trigger evals say "this skill actually fires on the right inputs." Both are needed for a healthy routing layer.
Sources
- Garry Tan, Resolvers: The Routing Table for Intelligence — "First run found 6 unreachable skills. Fifteen percent of the system's capabilities were dark."
- Workflow dialectic review — the binding constraint that this audit must be a script, not an LLM-driven skill.
Signals
- GitHub stars
- 67
- Forks
- 6
- Last commit
- Aug 2026
Advanced
- Item type
- skill
- Key
check-resolvable- Source
- github.com/griffinhilly/claude-code-synthesis
github.com/griffinhilly/claude-code-synthesis