Skip to content

Skills catalog

Skills are narrow playbooks Claude Code auto-loads only when the active task or file paths match the skill’s description. The full body is loaded on match; otherwise only the description sits in context (cheap).

This replaces reading large reference files end-to-end whenever a recurring sub-task fits a known recipe.

Catalog

SkillActivates when
cors-nelmio-configurationConfiguring NelmioCorsBundle, adding a frontend origin, debugging CORS preflight failures
docker-env-reloadEditing .env / env_file; env-var changes not taking effect in a running container
docker-frontend-deps-syncnpm install, adding/removing packages in a Dockerized Vue/Vite frontend
doctrine-migration-safeWriting a Phinx migration — tables, columns, indexes, safe ALTER patterns
empty-loading-error-statesVue 3 page rendering server data fetched with TanStack Query — three non-negotiable UI states
jwt-securityJWT auth, refresh-token rotation, login/logout endpoints, Lexik JWT, token storage
messenger-logging-middlewareWiring LoggingMiddleware to Symfony Messenger buses, structured JSON logs, redaction list
new-service-bootstrapScaffolding a new PHP/Symfony service from scratch — Kernel, bundles, routes, Flex cleanup
openapi-controller-docsWriting a PHP/Symfony controller — adding #[OA\...] attributes covering req body, params, responses
pinia-store-patternCreating or modifying a Pinia store — global state, what belongs in store vs TanStack Query
quality-gates-setupInstalling quality gates — CI workflow, pre-commit hook, Makefile targets
rate-limiting-authAdding/adjusting Symfony RateLimiter on auth endpoints (login, register, password reset)
shadcn-vue-component-addBefore/after npx shadcn-vue add <component> — to catch silent overwrites
symfony-messenger-asyncConfiguring buses, RabbitMQ transports, cross-service message contracts, consumer workers
vitest-composable-testWriting or debugging Vitest tests for Vue 3 composables / stores / pages — TanStack Query mocking, Pinia setup
vue-composable-mutationImplementing a Vue 3 composable with TanStack Query’s useMutation — login, register, create, update, delete

How to add a skill

Skills live in .claude/skills/<name>/SKILL.md. The frontmatter must include:

  • name: — must match the directory name (smoke check 3 verifies this).
  • description: — the trigger conditions Claude Code matches against the active task.
  • allowed-files: — optional glob list that scopes when the skill auto-loads.

The body is the playbook content — recipes, patterns, gotchas, anti-patterns.

When NOT to add a skill

Skills are for recurring sub-tasks that have a clear pattern AND a clear failure mode if done wrong. Do NOT add a skill for:

  • Anything covered by a standard or critical path (would duplicate).
  • One-off project-specific recipes (those live in the project’s docs repo).
  • Documentation that does not produce or modify code.

If a recipe is generally useful but not yet recurring, add it as a section in the relevant <name>-reference.md standard file. Promote it to a skill only when it has fired in 2-3 features and proven its trigger.