# Skill Activation Analysis Generated: 2025-12-20 ## How Skills Actually Work **Important:** Skills are NOT automatically triggered by keywords. They work like this: 1. All skill descriptions are loaded into Claude's system prompt at startup 2. Claude reads user messages and decides whether to invoke a skill 3. Claude uses the `Skill` tool to explicitly activate: `skill: "data-processing"` 4. The skill's SKILL.md content is then loaded into context **The "Triggers on:" keywords are hints for Claude**, not automatic activation rules. --- ## Skill-by-Skill Analysis ### data-processing **Triggers:** parse JSON, extract from YAML, query config, Docker Compose, K8s manifests, GitHub Actions workflows, package.json, filter data | Issue | Severity | Details | |-------|----------|---------| | Generic triggers | Medium | "package.json" triggers on ANY package.json mention | | Overlap with built-in | High | Claude already knows jq/yq - may not invoke skill | | No visibility | High | User won't know skill was used | **Will it fire?** Maybe. Claude might just use jq directly without invoking the skill. --- ### git-workflow **Triggers:** stage changes, create PR, review PR, check issues, git diff, commit interactively, GitHub operations, rebase, stash, bisect | Issue | Severity | Details | |-------|----------|---------| | Competes with built-in git | High | Claude has built-in git commit flow | | Too many triggers | Medium | 10 different trigger phrases | | lazygit is TUI | Low | Can't actually use lazygit in non-interactive mode | **Will it fire?** Unlikely for common git operations. Built-in behavior takes precedence. --- ### structural-search **Triggers:** find all calls to X, search for pattern, refactor usages, find where function is used, structural search | Issue | Severity | Details | |-------|----------|---------| | Competes with Grep tool | High | Claude defaults to ripgrep for code search | | Specific tool (ast-grep) | Low | Clear use case distinction | **Will it fire?** Only if user specifically asks for AST/structural search. --- ### code-stats **Triggers:** how big is codebase, count lines of code, what languages, show semantic diff, compare files, code statistics | Issue | Severity | Details | |-------|----------|---------| | Unique triggers | Low | "code statistics" is fairly specific | | tokei vs wc -l | Medium | Claude might use simpler approach | **Will it fire?** Probably yes for "count lines of code" type requests. --- ### file-search **Triggers:** fd, ripgrep, rg, find files, search code, fzf, fuzzy find, search codebase | Issue | Severity | Details | |-------|----------|---------| | Redundant with built-in | Critical | Claude has Glob/Grep tools built-in | | Tool names as triggers | Low | If user says "use fd", skill helps | **Will it fire?** Only if user explicitly mentions fd/fzf. Otherwise Claude uses built-in tools. --- ### find-replace **Triggers:** sd, find replace, batch replace, sed replacement, string replacement, rename | Issue | Severity | Details | |-------|----------|---------| | Competes with Edit tool | High | Claude prefers Edit tool for replacements | | Unique for batch ops | Medium | "batch replace across files" is specific | **Will it fire?** Only for batch/multi-file operations. --- ### doc-scanner **Triggers:** review codebase, understand project, explore codebase, conventions, agents | Issue | Severity | Details | |-------|----------|---------| | Very generic | High | Many requests "understand codebase" | | Good use case | Low | Finding AGENTS.md, CLAUDE.md is useful | **Will it fire?** Yes, for "explore codebase" type requests. May over-fire. --- ### task-runner **Triggers:** run tests, build project, list tasks, check available commands, run script, project commands | Issue | Severity | Details | |-------|----------|---------| | Very generic | Critical | "run tests" is extremely common | | just-specific | Medium | Only useful if project has justfile | **Will it fire?** Too often for "run tests" - even when no justfile exists. --- ### project-planner **Triggers:** sync plan, update plan, check status, plan is stale, track progress, project planning | Issue | Severity | Details | |-------|----------|---------| | Specific triggers | Low | "sync plan" is specific enough | | Depends on session commands | Medium | Only useful if user uses /save and /sync | **Will it fire?** Appropriately - triggers are specific. --- ### python-env **Triggers:** uv, venv, pip, pyproject, python environment, install package, dependencies | Issue | Severity | Details | |-------|----------|---------| | Tool-specific | Low | "uv" is specific | | Generic overlap | Medium | "install package" could be npm too | **Will it fire?** Yes for Python-specific requests. --- ### rest-patterns **Triggers:** rest api, http methods, status codes, api design, endpoint design, api versioning, rate limiting, caching | Issue | Severity | Details | |-------|----------|---------| | Reference-only | Low | No executable commands | | Good specificity | Low | "api design" is clear | **Will it fire?** Appropriately for API design questions. --- ### sql-patterns **Triggers:** sql patterns, cte example, window functions, sql join, index strategy, pagination sql | Issue | Severity | Details | |-------|----------|---------| | Reference-only | Low | No executable commands | | Specific | Low | "window functions" is clear | **Will it fire?** Appropriately for SQL questions. --- ### sqlite-ops **Triggers:** sqlite, sqlite3, aiosqlite, local database, database schema, migration, wal mode | Issue | Severity | Details | |-------|----------|---------| | Clear scope | Low | sqlite-specific | | Overlaps with sql-patterns | Medium | Both cover SQL | **Will it fire?** Yes for SQLite-specific questions. --- ### tailwind-patterns **Triggers:** tailwind, utility classes, responsive design, tailwind config, dark mode css, tw classes | Issue | Severity | Details | |-------|----------|---------| | Framework-specific | Low | "tailwind" is clear | | Reference-only | Low | No executable commands | **Will it fire?** Yes for Tailwind questions. --- ### mcp-patterns **Triggers:** mcp server, model context protocol, tool handler, mcp resource, mcp tool | Issue | Severity | Details | |-------|----------|---------| | Very specific | Low | MCP is niche topic | | Reference-only | Low | Patterns and examples | **Will it fire?** Appropriately for MCP development. --- ### tool-discovery **Triggers:** which agent, which skill, what tool should I use, help me choose, recommend agent, find the right tool | Issue | Severity | Details | |-------|----------|---------| | Meta-skill | Low | Helps find other skills | | May not be needed | Medium | Claude already has tool descriptions | **Will it fire?** When user asks for help choosing tools. --- ## Summary: Problem Skills | Skill | Issue | Recommendation | |-------|-------|----------------| | **file-search** | Redundant with built-in Glob/Grep | Remove or rename to "fd-fzf-patterns" | | **task-runner** | Too generic, just-specific | Add "justfile" to triggers, remove generic ones | | **git-workflow** | Competes with built-in git flow | Focus on lazygit/delta only | | **find-replace** | Competes with Edit tool | Focus on batch/multi-file only | | **doc-scanner** | Too generic | Already works well | ## How to Know If a Skill Was Used Currently: **You can't easily tell.** Options to add visibility: 1. **Log skill invocations** - Add a hook that logs when Skill tool is called 2. **Skill announces itself** - First line of skill output says "[data-processing skill]" 3. **Status line** - Configure Claude Code to show active skill