skills-manager
Tool for troubleshooting skill activation and managing the agent's internal skill configuration.
Install
mkdir -p .claude/skills/skills-manager && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/2490" && unzip -o skill.zip -d .claude/skills/skills-manager && rm skill.zipInstalls to .claude/skills/skills-manager
Activation
This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.
Context-aware routing to skills and hooks management. Use when troubleshooting skill activation, fine-tuning keywords, or managing the automated documentation system.Key capabilities
- →Troubleshoot skill activation failures using logs
- →Manage skill keyword triggers in configuration files
- →Validate skill-rules.json structure
- →Test skill activation manually via shell scripts
- →Auto-update keywords based on user feedback
How it works
The manager uses a routing configuration file and hook scripts to map user prompts to specific agent skills based on keywords and intent patterns.
Inputs & outputs
When to use skills-manager
- →Troubleshoot why a skill isn't activating
- →Add new keywords to a specific agent skill
- →Verify skill configuration logic
About this skill
Skills Manager (Smart Router)
Purpose
Context-aware routing to skills and hooks management. Helps you troubleshoot, fine-tune, and manage the automated documentation system.
When Auto-Activated
- Discussing skills activation or hooks
- Creating new skills
- Keywords: skill activation, hook, troubleshoot, fine-tune, keyword, skill-rules.json, create skill, new skill, agentskills
- Debugging why a skill didn't activate or activated incorrectly
🚨 CRITICAL RULES
- Logs are your friend - Always check
.claude/logs/skill-activations.logfirst - Test after changes - Always verify modifications to
skill-rules.jsonwork - Validate JSON - Use
jqto validate skill-rules.json before committing - Keywords should be specific - Too-broad keywords cause false positives
📋 Quick Diagnostic Workflow
Problem: Skill Didn't Activate
-
Check logs:
tail -20 .claude/logs/skill-activations.log -
Check current keywords:
cat .claude/hooks/skill-rules.json | jq '.skills."SKILL-NAME".promptTriggers.keywords' -
Add missing keyword:
- Ask Claude: "Add 'KEYWORD' to SKILL-NAME"
- Or edit
.claude/hooks/skill-rules.jsondirectly
-
Test:
echo '{"prompt":"test prompt"}' | .claude/hooks/skill-activation-prompt.sh
Problem: Skill Activated When Shouldn't
-
Identify the trigger - Check logs to see which keyword matched
-
Remove or make more specific:
- Remove: "Remove 'text' from localization-developer"
- Make specific: Replace "text" with "localized text"
-
Verify:
tail .claude/logs/skill-activations.log
🎯 Common Tasks
Add a Keyword
Quick: Ask Claude
"Add 'refactoring' to ios-dev-guidelines keywords"
Manual: Edit .claude/hooks/skill-rules.json
"keywords": [
"swift",
"refactoring" // ← Add here
]
Remove a Keyword
Quick: Ask Claude
"Remove 'text' from localization-developer, it's too broad"
Manual: Edit and remove from keywords array
Check What Activated
tail -20 .claude/logs/skill-activations.log
Look for:
✓ Matched: skill-name # ← This skill activated
No matches found # ← Nothing activated
Test Activation Manually
echo '{"prompt":"add feature flag"}' | .claude/hooks/skill-activation-prompt.sh
Should output skill suggestion if match found.
Auto-Learning Feature
What it does: When a substantial prompt (100+ chars OR 3+ lines) doesn't activate any skills, the system prompts you with available skills and auto-updates keywords based on your feedback.
Workflow:
- You submit a substantial prompt
- No skills activate
- System shows: "Should any of these skills be activated?"
- You respond: "Yes, localization-developer should activate"
- Claude extracts keywords from your prompt
- Claude runs:
.claude/hooks/utils/add-keywords-to-skill.sh localization-developer <keywords> - skill-rules.json updated
- Future similar prompts auto-activate
Manual keyword extraction:
# Test keyword extraction
echo "Update space settings localization for membership tiers" | .claude/hooks/utils/extract-keywords.sh
# Output: membership, settings, localization, tiers, update
# Add keywords manually
.claude/hooks/utils/add-keywords-to-skill.sh localization-developer "membership" "tiers"
Logs:
- Missed activations:
.claude/logs/skill-activations-missed.log - Learning updates:
.claude/logs/skill-learning.log
🔧 The System Components
Hooks (Automation)
Location: .claude/hooks/
What they do:
skill-activation-prompt.sh- Suggests skills based on your promptpost-tool-use-tracker.sh- Tracks file editsswiftformat-post-edit.sh- Auto-formats Swift files immediately after editnotification-alert.sh- Sends macOS notifications when Claude needs input
Skills (Routers)
Location: .claude/skills/*/SKILL.md
The 7 skills:
ios-dev-guidelines- Swift/iOS patternslocalization-developer- Localizationcode-generation-developer- Feature flags, make generatedesign-system-developer- Icons, typography, colorsskills-manager- This skill (meta!)code-review-developer- Code review standardsfeature-toggle-developer- Feature toggle removal, cleanup detection
Configuration
Location: .claude/hooks/skill-rules.json
What it contains:
- Keywords for each skill
- Intent patterns (regex)
- File path patterns
- Priority settings
📊 Configuration Structure
{
"skills": {
"skill-name": {
"type": "domain",
"priority": "high", // or "medium", "low"
"description": "Smart router to...",
"promptTriggers": {
"keywords": ["keyword1", "keyword2"],
"intentPatterns": ["(create|add).*?something"]
},
"fileTriggers": {
"pathPatterns": ["**/*.swift"],
"contentPatterns": ["SomePattern"]
}
}
},
"config": {
"maxSkillsPerPrompt": 2,
"logActivations": true
}
}
📝 Creating New Skills (agentskills.io Spec)
Skills must follow the agentskills.io specification.
Required SKILL.md Format
Every skill must start with YAML frontmatter:
---
name: skill-name
description: What this skill does and when to use it (max 1024 chars).
---
# Skill Title
## Purpose
...
Name Field Rules
- 1-64 characters
- Lowercase only:
a-z,0-9,- - No start/end hyphens:
skill-name✅,-skill-❌ - No consecutive hyphens:
my-skill✅,my--skill❌ - Must match directory name:
skills/my-skill/SKILL.md→name: my-skill
Description Field
- 1-1024 characters
- Must describe: What it does AND when to use it
- Include keywords that help agents identify relevant tasks
Good example:
description: Context-aware routing to the iOS localization system. Use when working with .xcstrings files, Loc constants, or user-facing text.
Optional Frontmatter Fields
---
name: skill-name
description: Required description.
license: MIT
compatibility: Designed for Claude Code
metadata:
author: anytype
version: "1.0"
---
Directory Structure
skill-name/
├── SKILL.md # Required - main skill file
├── scripts/ # Optional - executable scripts
├── references/ # Optional - additional docs
└── assets/ # Optional - templates, images
Quick Checklist for New Skills
- Directory name matches
namefield - YAML frontmatter with
nameanddescription - Name is lowercase with hyphens only
- Description explains what AND when
- SKILL.md under 500 lines (use references/ for details)
- Added to
skill-rules.jsonwith keywords - Tested activation with sample prompts
⚠️ Common Issues
Hook Not Executing
Symptom: No activation messages, empty logs
Fix:
# Make hooks executable
chmod +x .claude/hooks/*.sh
# Verify
ls -l .claude/hooks/*.sh # Should show rwx
Invalid JSON
Symptom: Hook fails silently
Fix:
# Validate
jq . .claude/hooks/skill-rules.json
# If error, ask Claude to fix it
Too Many False Positives
Symptom: Skill activates too often
Fix: Make keywords more specific
- ❌ "text" → activates for everything
- ✅ "localized text" → more specific
📚 Complete Documentation
Full Guide: .claude/SKILLS_MANAGEMENT_GUIDE.md
For comprehensive coverage of:
- Detailed troubleshooting workflows
- Advanced regex patterns for intent matching
- Creating new skills from scratch
- Monitoring and maintenance
- Log rotation and cleanup
- Complete skill-rules.json reference
- Examples for every scenario
✅ Health Check Commands
# Check hook permissions
ls -l .claude/hooks/*.sh
# Validate configuration
jq . .claude/hooks/skill-rules.json
# View recent activations
tail -20 .claude/logs/skill-activations.log
# Count activations by skill
grep "Matched:" .claude/logs/skill-activations.log | sort | uniq -c
# Test specific prompt
echo '{"prompt":"your test"}' | .claude/hooks/skill-activation-prompt.sh
💡 Pro Tips
- Ask Claude to check logs - "Check the logs for my last prompt"
- Use logs for tuning - Review regularly to spot patterns
- Start broad - Add broad keywords, narrow if too many false positives
- Test everything - Always test after modifying skill-rules.json
- Document changes - Add comments in skill-rules.json
🔗 Related Docs
.claude/hooks/README.md- Complete hooks documentation.claude/skills/README.md- Skills system overviewCLAUDE.md- Main documentation
Navigation: This is a smart router. For deep troubleshooting and management details, always refer to SKILLS_MANAGEMENT_GUIDE.md.
Quick help: Just ask "Check skills system health" or "Why didn't X skill activate?"
When not to use it
- →When modifying core pipeline logic
- →When editing files outside the .claude/hooks directory
Prerequisites
Limitations
- →Too-broad keywords cause false positives
- →Requires manual maintenance of skill-rules.json
- →Hooks must have executable permissions
How it compares
It provides a centralized, automated diagnostic system for skill routing, replacing manual debugging of activation logic.
Compared to similar skills
skills-manager side by side with the closest alternatives in the catalog.
| Skill | Installs | Updated | Safety | Difficulty |
|---|---|---|---|---|
| skills-manager (this skill) | 1 | 6mo | Review | Intermediate |
| using-superpowers | 95 | 3mo | No flags | Beginner |
| ultrawork | 11 | 2mo | No flags | Advanced |
| clawhub | 25 | 2mo | Review | Intermediate |
Try saying
Example prompts that trigger this skill in your AI assistant.
More by anyproto
View all by anyproto →You might also like
using-superpowers
obra
Use when starting any conversation - establishes mandatory workflows for finding and using skills, including using Skill tool before announcing usage, following brainstorming before coding, and creating TodoWrite todos for checklists
ultrawork
Yeachan-Heo
Parallel execution engine for high-throughput task completion
clawhub
openclaw
Use the ClawHub CLI to search, install, update, and publish agent skills from clawhub.com. Use when you need to fetch new skills on the fly, sync installed skills to latest or a specific version, or publish new/updated skill folders with the npm-installed clawhub CLI.
skill-installer
openai
Install Codex skills into $CODEX_HOME/skills from a curated list or a GitHub repo path. Use when a user asks to list installable skills, install a curated skill, or install a skill from another repo (including private repos).
continuous-learning
affaan-m
Automatically extract reusable patterns from Claude Code sessions and save them as learned skills for future use.
memory-keeper-proactive-context-maintenance
b4CU-R4U
Automatically detect and maintain memory freshness by monitoring context staleness, significant code changes, task completions, and phase transitions. Proactively suggests and executes memory sync operations with user confirmation. Use when the user says "sync memory", "update context", or when the Skill detects that context is stale (>2 hours), significant changes have occurred (new commits), tasks completed, or major milestones reached. Replaces passive "context is stale" warnings with active maintenance.