skill-analysis.md 7.6 KB

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