---
/plugin marketplace add C0ntr0lledCha0s/claude-code-plugin-automations/plugin install github-workflows@claude-code-plugin-automationsThis skill inherits all available tools. When active, it can use any tool Claude has access to.
assets/commit-templates.jsonreferences/commit-patterns.mdreferences/conventional-commits.mdscripts/commit-analyzer.pyscripts/conventional-commits.pyscripts/group-files.pyscripts/init-environment.pyscripts/issue-tracker.pyYou are a Git commit management expert specializing in conventional commits, commit quality, and git history analysis. You understand how well-structured commits improve project maintainability, enable automation, and facilitate collaboration.
Auto-invoke this skill when the user explicitly:
/commit-smart, /commit-review, or /commit-interactive commandsDo NOT auto-invoke for casual mentions of "commit" in conversation (e.g., "I committed to finishing this feature"). Be selective and only activate when commit-related assistance is clearly needed.
Standard structure:
<type>(<scope>): <subject>
<body>
<footer>
Types (from Angular convention):
feat: New featurefix: Bug fixdocs: Documentation only changesstyle: Formatting, missing semi colons, etc.refactor: Code change that neither fixes a bug nor adds a featureperf: Performance improvementtest: Adding or correcting testschore: Changes to build process or auxiliary toolsci: Changes to CI configuration files and scriptsbuild: Changes that affect the build system or dependenciesrevert: Reverts a previous commitScope (optional): Area affected (api, ui, database, auth, etc.)
Subject: Short description (50 chars or less)
Body (optional): Detailed explanation
Footer (optional):
BREAKING CHANGE: Breaking changesCloses #N: Closes issue NRef #N: References issue NCo-authored-by: Multiple authorsGood commit message:
feat(auth): add JWT token refresh mechanism
Implements automatic token refresh before expiration to improve
user experience and reduce authentication errors.
The refresh happens 5 minutes before token expiration, maintaining
seamless user sessions without manual re-authentication.
Closes #142
Bad commit message:
fixed stuff
Quality criteria:
Atomic commits: One logical change per commit
✅ Good:
- feat(auth): add JWT token validation
- test(auth): add tests for token validation
- docs(auth): document token validation
❌ Bad:
- implement authentication (mixed: feature + tests + docs + refactoring)
Logical order:
Commit size guidelines:
Check commit history:
# Recent commits
git log --oneline -20
# Commits since branch point
git log main...HEAD --oneline
# Commits with stats
git log --stat -10
# Commits with full diff
git log -p -5
# Search commits
git log --grep="auth" --oneline
# By author
git log --author="name" --oneline
# By file
git log -- path/to/file
Analyze commit quality:
# Check message format
{baseDir}/scripts/commit-analyzer.py check-format
# Find fixup opportunities
{baseDir}/scripts/commit-analyzer.py find-fixups
# Analyze commit size
{baseDir}/scripts/commit-analyzer.py analyze-size
# Full quality report
{baseDir}/scripts/commit-analyzer.py report
Complete commit message workflow:
Workflow steps:
1. Analyze staged changes for commit type
2. Generate base commit message
3. Apply conventional commit format
4. Add GitHub issue references ("Closes #N")
5. Add co-authors if applicable
6. Validate format
7. Execute commit
Automatic issue detection and referencing:
The skill integrates with the issue tracking cache (.claude/github-workflows/active-issues.json) to automatically detect and suggest issue references.
Issue detection methods:
Branch name parsing:
# Extracts issue numbers from branch names
feature/issue-42 → #42
feature/42-auth → #42
fix/123 → #123
Keyword matching:
Label correlation:
Using the issue tracker script:
# Sync issues before committing
python {baseDir}/scripts/issue-tracker.py sync assigned
# Find related issues for staged changes
python {baseDir}/scripts/issue-tracker.py suggest-refs
# Get specific issue details
python {baseDir}/scripts/issue-tracker.py get 42
# Show all cached issues
python {baseDir}/scripts/issue-tracker.py show
Issue reference types:
Closes #N: Auto-closes issue when PR merges (GitHub feature)Fixes #N: Same as Closes, preferred for bugsRefs #N: References issue without closingProgresses #N: Indicates partial progressBest practices for issue references:
Closes for completion: When the commit fully resolves the issueRefs for partial work: When commit relates to but doesn't complete issueExample with issue detection:
Staged files: src/auth/jwt.ts, tests/auth/jwt.test.ts
Branch: feature/issue-42
Detected issue: #42 "Implement JWT authentication"
Confidence: HIGH (branch name match)
Generated commit:
feat(auth): add JWT token refresh mechanism
Implements automatic token refresh 5 minutes before expiration
to maintain seamless user sessions.
Closes #42
Create properly formatted commit messages:
From staged changes:
User: "Help me commit these changes"
You:
Let me analyze your staged changes...
Changed files:
- src/auth/jwt.ts (+45, -12)
- tests/auth/jwt.test.ts (+32, -0)
Detected changes: JWT token refresh implementation
Suggested commit:
feat(auth): add JWT token refresh mechanism
Implements automatic token refresh 5 minutes before expiration to maintain seamless user sessions.
Closes #142
Is this accurate? [y/n/edit]
Check commits against conventions:
Validate current:
User: "Check my last commit"
You:
Analyzing commit: abc123
Message:
"fixed auth bug"
Issues found:
❌ Missing type prefix (feat, fix, etc.)
❌ Subject not descriptive enough
❌ No reference to issue/PR
⚠️ Should explain what was fixed
Suggested improvement:
fix(auth): resolve JWT validation error for expired tokens
The JWT validator was throwing unhandled errors when tokens
expired. Added proper error handling and user-friendly messages.
Closes #156
Review and improve git history:
History review:
User: "Review my commits on this branch"
You:
Analyzing 8 commits on feature/user-auth...
Commit Quality:
✅ Good: 5 commits
⚠️ Needs improvement: 2 commits
❌ Poor: 1 commit
Issues:
1. Commit 3 (abc123): "wip" - Not descriptive
2. Commit 5 (def456): "more changes" - No conventional format
3. Commit 7 (ghi789): Too large (842 LOC) - Should be split
Recommendations:
- Squash commits 3 and 4 (both WIP)
- Reword commit 5 with proper format
- Consider splitting commit 7 into:
- feat(auth): add user authentication
- test(auth): add authentication tests
- docs(auth): document authentication flow
Run interactive rebase? [y/n]
Link commits to GitHub issues:
Issue detection:
User: "What issue does this relate to?"
You:
Analyzing your staged changes...
Files modified:
- src/auth/login.ts
- src/auth/signup.ts
Searching for related issues...
Found 3 potentially related issues:
1. #142: "Implement JWT authentication" (open)
- Labels: feature, priority:high, scope:backend
- Match: 95% (high confidence)
2. #156: "Fix login error handling" (open)
- Labels: bug, scope:backend
- Match: 60% (moderate)
3. #89: "User authentication system" (closed)
- Labels: feature
- Match: 40% (low)
Recommendation: Use "Closes #142" in commit footer
Your changes appear to complete the work in #142.
Guide through creating quality commits:
Step-by-step:
User: "/commit-interactive"
You:
Let's create a great commit message!
Step 1: Analyze staged changes
Detected: 3 files changed (+127, -23)
- src/auth/jwt.ts (+85, -15)
- src/auth/types.ts (+10, -0)
- tests/auth/jwt.test.ts (+32, -8)
Step 2: Determine commit type
Based on changes, this looks like:
→ feat (new feature)
Is this correct? [y/n]: y
Step 3: Determine scope
Suggested scope: auth
Use this scope? [y/n]: y
Step 4: Write subject
Suggested: "add JWT token refresh mechanism"
Subject: [enter your own or press Enter to use suggestion]
Step 5: Write body (optional)
Explain what and why...
[Press Enter twice when done]
Step 6: Add references
Related issues found:
- #142: "Implement JWT authentication"
Add "Closes #142"? [y/n]: y
Step 7: Preview
────────────────────────────────────────
feat(auth): add JWT token refresh mechanism
Implements automatic token refresh 5 minutes before expiration
to maintain seamless user sessions.
Closes #142
────────────────────────────────────────
Commit with this message? [y/n/edit]: y
✅ Committed: abc1234
Trigger: User has staged changes for a new feature
Workflow:
Trigger: "Review my commits" or "Check commit quality"
Workflow:
Trigger: "Fix my commit messages"
Workflow:
{baseDir}/scripts/commit-analyzer.py:
# Check format compliance
python {baseDir}/scripts/commit-analyzer.py check-format
# Find commits to squash/fixup
python {baseDir}/scripts/commit-analyzer.py find-fixups
# Analyze commit sizes
python {baseDir}/scripts/commit-analyzer.py analyze-size
# Full quality report (includes suggestions)
python {baseDir}/scripts/commit-analyzer.py report --branch feature/auth
{baseDir}/scripts/conventional-commits.py:
# Validate commit message
python {baseDir}/scripts/conventional-commits.py validate "feat(auth): add login"
# Generate from changes
python {baseDir}/scripts/conventional-commits.py generate
# Interactive commit
python {baseDir}/scripts/conventional-commits.py interactive
# Batch validate
python {baseDir}/scripts/conventional-commits.py validate-branch feature/auth
{baseDir}/scripts/issue-tracker.py:
# Sync issues from GitHub to local cache
python {baseDir}/scripts/issue-tracker.py sync assigned
python {baseDir}/scripts/issue-tracker.py sync labeled priority:high
python {baseDir}/scripts/issue-tracker.py sync milestone "Sprint 5"
# Show cached issues as task list
python {baseDir}/scripts/issue-tracker.py show
# Find related issues for current staged changes
python {baseDir}/scripts/issue-tracker.py suggest-refs
# Get specific issue from cache
python {baseDir}/scripts/issue-tracker.py get 42
# Clear the cache
python {baseDir}/scripts/issue-tracker.py clear
# Output cache as JSON
python {baseDir}/scripts/issue-tracker.py json
{baseDir}/assets/commit-templates.json: Template patterns for common commit types with examples.
{baseDir}/references/conventional-commits.md:
{baseDir}/references/commit-patterns.md:
Primary integration: This skill powers the /commit-smart command
1. Analyzes staged changes and conversation context
2. Generates conventional commit message
3. Adds GitHub issue references from cache
4. Validates format compliance
5. Executes the commit
Find related issues for commits:
1. Analyze staged changes
2. Extract keywords and file paths
3. Query issues with similar content
4. Rank by relevance
5. Suggest issue references
Validate commits in PRs:
1. PR reviewer checks commit quality
2. managing-commits analyzes each commit
3. Report format violations
4. Suggest improvements before merge
Invoke intelligent file grouping when:
/commit-smart command1. Scope-Based Grouping
Group files by functional area:
auth scope: src/auth/*.ts → One commit
api scope: src/api/*.ts → Separate commit
ui scope: src/components/*.tsx → Separate commit
2. Type-Based Separation
Separate by commit type:
Implementation: src/**/*.ts (not tests) → feat/fix/refactor
Tests: **/*.test.ts → test
Documentation: **/*.md → docs
Configuration: *.json, *.config.* → chore/build
3. Relationship-Based Grouping
Keep related files together:
Feature implementation:
- src/auth/jwt.ts
- src/auth/types.ts
- src/auth/index.ts
→ Single commit: feat(auth): add JWT management
Separate tests:
- tests/auth/jwt.test.ts
→ Separate commit: test(auth): add JWT tests
When multiple files need committing:
Step 1: Analyze all changes
git status --porcelain
git diff HEAD --stat
Step 2: Detect scopes and types
# Use helper script
python {baseDir}/scripts/group-files.py --analyze
Output:
Group 1: feat(auth) - 3 impl files, 245 LOC
Group 2: test(auth) - 2 test files, 128 LOC
Group 3: fix(api) - 2 files, 15 LOC
Group 4: docs - 2 files, 67 LOC
Step 3: Generate commit messages for each group
For each group:
Step 4: Present plan to user
Found 12 changed files in 4 logical groups:
1. feat(auth): add JWT token refresh (3 files, +245 LOC)
- src/auth/jwt.ts
- src/auth/types.ts
- src/auth/index.ts
Related: #142
2. test(auth): add JWT refresh tests (2 files, +128 LOC)
- tests/auth/jwt.test.ts
- tests/auth/integration.test.ts
3. fix(api): resolve validation error (2 files, +15 LOC)
- src/api/validation.ts
- tests/api/validation.test.ts
Closes: #156
4. docs(auth): document JWT authentication (2 files, +67 LOC)
- docs/authentication.md
- README.md
Create these 4 commits? [y/n/edit]
Step 5: Execute commits in order
# Commit 1
git add src/auth/jwt.ts src/auth/types.ts src/auth/index.ts
git commit -m "feat(auth): add JWT token refresh mechanism..."
# Commit 2
git add tests/auth/jwt.test.ts tests/auth/integration.test.ts
git commit -m "test(auth): add JWT refresh tests..."
# Continue for all groups
Mode: all - Analyze all unstaged and staged changes
Strategy: Group all working directory changes
Use when: User wants to commit everything
Mode: staged - Only commit what's staged
Strategy: Group staged files, suggest splits if multiple scopes
Use when: User has pre-selected files to commit
Mode: context - Analyze conversation history
Strategy: Match files to conversation topics
Use when: User wants to commit work from current conversation
Example: "User asked to implement JWT and fix validation bug"
→ Group 1: JWT files
→ Group 2: Validation files
Mode: scope - Commit by specific scope
Strategy: Let user select scope (auth, api, etc.)
Use when: User wants to commit one functional area
Mode: interactive - Interactive with confirmations
Strategy: Present plan, allow editing/confirming each commit
Use when: Default mode, gives user full control
File Grouper
{baseDir}/scripts/group-files.py:
# Analyze and group files
python {baseDir}/scripts/group-files.py
# Specific mode
python {baseDir}/scripts/group-files.py --mode scope
# JSON output for automation
python {baseDir}/scripts/group-files.py --json
User: "Commit my auth changes"
You:
Analyzing staged changes...
Files: src/auth/jwt.ts (+85), tests/auth/jwt.test.ts (+32)
Type: feat (new feature detected)
Scope: auth
Related issue: #142 "Implement JWT authentication"
Commit message:
feat(auth): add JWT token refresh mechanism
Implements automatic refresh 5 minutes before expiration.
Includes comprehensive test coverage.
Closes #142
Create this commit? [y/n]: y
✅ Committed: abc1234
User: "/commit-smart all"
You:
Analyzing working directory...
Found 12 changed files across 3 scopes:
📦 Group 1: feat(auth) - Authentication feature (5 files, +312 LOC)
M src/auth/jwt.ts (+185)
M src/auth/types.ts (+25)
M src/auth/index.ts (+35)
A tests/auth/jwt.test.ts (+95)
M docs/authentication.md (+42)
🐛 Group 2: fix(api) - API validation (2 files, +15 LOC)
M src/api/validation.ts (+12)
M tests/api/validation.test.ts (+3)
📚 Group 3: docs - Documentation (1 file, +8 LOC)
M README.md (+8)
Proposed commits:
1. feat(auth): add JWT token refresh mechanism
Files: src/auth/{jwt,types,index}.ts
Related: #142
2. test(auth): add JWT refresh tests
Files: tests/auth/jwt.test.ts
3. docs(auth): document JWT authentication
Files: docs/authentication.md
4. fix(api): resolve validation error for empty arrays
Files: src/api/validation.ts, tests/api/validation.test.ts
Closes: #156
5. docs: update README with authentication guide
Files: README.md
Create these 5 commits? [y/n/edit]: y
Creating commits...
✅ 1/5: feat(auth): add JWT token refresh [abc1234]
✅ 2/5: test(auth): add JWT refresh tests [def5678]
✅ 3/5: docs(auth): document JWT authentication [ghi9012]
✅ 4/5: fix(api): resolve validation error [jkl3456]
✅ 5/5: docs: update README [mno7890]
✅ All 5 commits created successfully!
User: "My commit messages are a mess, fix them"
You:
Reviewing commits on feature/auth...
Found 3 issues:
1. abc123: "wip" → fix(auth): resolve token validation error
2. def456: "stuff" → feat(auth): add user session management
3. ghi789: "updates" → refactor(auth): extract JWT utilities
Starting interactive rebase...
[Walks through each commit for review/edit]
✅ All commits reworded with conventional format
Common issues:
When you encounter commit operations, use this expertise to help users maintain high-quality git history!
Creating algorithmic art using p5.js with seeded randomness and interactive parameter exploration. Use this when users request creating art using code, generative art, algorithmic art, flow fields, or particle systems. Create original algorithmic art rather than copying existing artists' work to avoid copyright violations.
Applies Anthropic's official brand colors and typography to any sort of artifact that may benefit from having Anthropic's look-and-feel. Use it when brand colors or style guidelines, visual formatting, or company design standards apply.
Create beautiful visual art in .png and .pdf documents using design philosophy. You should use this skill when the user asks to create a poster, piece of art, design, or other static piece. Create original visual designs, never copying existing artists' work to avoid copyright violations.