.claude/skills/conventional-commits/SKILL.md
Generate granular conventional commits from staged changes
npx skillsauth add guidodinello/claude-dotfiles conventional-commitsInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Generate granular, well-structured conventional commits from git diff --staged output.
Run this skill with the output of git diff --staged:
git diff --staged | claude /conventional-commits
Or paste the diff output directly when invoking the skill.
After providing commit commands, you should:
git reset to unstage everythingrename from/to → File already physically renamed, needs BOTH git add <new-path> (new location) AND git add <old-path> or git rm <old-path> (old location). Missing either half will leave the old file untracked or the deletion unstaged.deleted file → File already physically deleted, needs git add <old-path> or git rm <old-path>new file → File exists, needs git add <path>modified → File exists with changes, needs git add <path>Always include:
git add, git rm) for every commitgit mv - files are already renamed, just stage with git add$ (e.g. TanStack Router dynamic segments like $labId) — unquoted $ gets shell-expanded to empty string, silently breaking the staging command&& so execution stops on failureGroup by type:
Keep related changes together:
Separate unrelated changes:
When a single change cascades across many layers (e.g. removing a DB column that touches a migration, model, resource, form request, actions, frontend schemas, API contracts, etc.), prefer more granular commits even if intermediate states don't compile or pass tests.
This is intentional — it makes the change easier to review, bisect, and revert layer by layer.
Order commits from the inside out:
Example — removing a middle_name column:
# 1. Database
git add database/migrations/xxxx_drop_middle_name.php && git commit -m "feat(database): drop middle_name column from users"
# 2. Model
git add app/Models/User.php && git commit -m "refactor(users): remove middle_name from model"
# 3. Business logic
git add app/Actions/Users/UpdateUserAction.php && git commit -m "refactor(users): remove middle_name from update action"
# 4. API surface
git add app/Http/Resources/UserResource.php app/Http/Requests/UpdateUserRequest.php && git commit -m "refactor(users): remove middle_name from resource and request"
# 5. Frontend contracts
git add resources/js/schemas/user.ts && git commit -m "refactor(users): remove middle_name from Zod schema"
# 6. Frontend UI
git add resources/js/components/UserForm.tsx && git commit -m "refactor(users): remove middle_name from user form"
Note: The repo may be in a broken state between these commits. That's acceptable and expected — the goal is clarity of intent per layer, not a green CI at every step.
Use conventional commit format:
<type>(<scope>): <description>
feat: New featurefix: Bug fixrefactor: Code change that neither fixes a bug nor adds a featurestyle: Code style changes (formatting, missing semicolons, etc.)docs: Documentation changestest: Adding or updating testschore: Maintenance tasks (dependencies, build config, etc.)perf: Performance improvementsci: CI/CD changesbuild: Build system or external dependenciesUse the module, component, or area affected:
(auth): Authentication module(products): Products feature(ui): UI components(api): API layer(database): Database changes(config): Configuration files# File already physically renamed — stage BOTH the new path and the old deletion
git add src/new/path/File.php && git rm src/old/path/File.php && git commit -m "refactor(module): rename File to new location"
# File already physically deleted
git rm src/old/File.php && git commit -m "refactor(module): remove deprecated File"
git add path/to/file.ts && git commit -m "feat(products): add search functionality"
git add path/to/file1.ts path/to/file2.ts && git commit -m "refactor(components): extract shared utility functions"
# Commit 1: Renames
git add src/new/path/*.ts && git commit -m "refactor(structure): reorganize component files"
# Commit 2: New feature
git add src/features/search/*.ts && git commit -m "feat(search): implement advanced search filters"
# Commit 3: Test updates
git add tests/features/search/*.test.ts && git commit -m "test(search): add tests for advanced filters"
# Commit 4: Documentation
git add README.md docs/search.md && git commit -m "docs(search): document new search features"
Provide commands as a bash script that can be copied and executed. Always use single-line commands — never use \ line continuations, as they break when pasted into a terminal. Each commit is one line with && chaining:
# Reset staged changes (run this first)
git reset
# Commit 1: [Description of logical group]
git add <file1> <file2> && git commit -m "type(scope): description"
# Commit 2: [Description of logical group]
git add <file1> <file2> && git commit -m "type(scope): description"
# ... etc
When this skill is invoked:
&& between commandsgit reset instruction to unstage everythingRemember:
git add) and the old path (git add or git rm). Forgetting the old path leaves a ghost deletion outside the commit.development
Writes React components without unnecessary useEffect. Use when creating/reviewing React components, refactoring effects, or when code uses useEffect to transform data or handle events.
development
Show a Claude Code usage report — model token breakdown, estimated costs, top projects, and session patterns. Delegates to the stats-analyzer subagent (Haiku) to avoid polluting the main context with raw data.
development
Use this skill whenever the user wants to write, refine, or break down a subtask for a software ticket — especially backend endpoints, frontend components, or API integrations. Trigger when the user shares a user story, acceptance criteria, or ticket scope and asks for a subtask, refinement card, or implementation breakdown. Also trigger when the user says things like "help me refine this", "write a subtask for X", "break this down", or "create a card for the endpoint / component / feature". This skill produces structured, audience-appropriate subtask write-ups for developers, PMs, and QAs alike.
development
Run the full quality pipeline (type-check, linting, tests) via the quality-checker subagent. Returns a concise summary of issues without flooding the main context with raw output.