From cc-arsenal
Generate conventional commits following conventionalcommits.org specification. Activates when users want to commit, stage changes, or need commit messages.
npx claudepluginhub mgiovani/cc-arsenal --plugin cc-arsenal-teamsThis skill is limited to using the following tools:
> **Cross-Platform AI Agent Skill**
Creates isolated Git worktrees for feature branches with prioritized directory selection, gitignore safety checks, auto project setup for Node/Python/Rust/Go, and baseline verification.
Executes implementation plans in current session by dispatching fresh subagents per independent task, with two-stage reviews: spec compliance then code quality.
Dispatches parallel agents to independently tackle 2+ tasks like separate test failures or subsystems without shared state or dependencies.
Cross-Platform AI Agent Skill This skill works with any AI agent platform that supports the skills.sh standard.
Generate a conventional commit message following https://www.conventionalcommits.org/en/v1.0.0/ specification and create commits automatically.
CRITICAL: Commit messages must accurately describe ACTUAL changes:
This skill includes automatic code quality verification before committing:
Before executing git commit, the following linting checks run automatically:
Supported Project Types:
npm run lint, bun run lint, pnpm run lint, or yarn run lintruff check . or flake8 .make lint if target existsrubocopgolangci-lint runBehavior:
Example blocked commit:
🔍 Running: ruff check .
❌ Linting failed: ruff check reported errors. Fix lint errors before committing.
Found 3 errors in src/utils.py:
- Line 42: Undefined name 'foo'
- Line 55: Unused import 'os'
- Line 78: Line too long (120 > 88 characters)
**To fix**: Address the linting errors and run the commit command again.
**To bypass** (not recommended): Fix the underlying lint errors instead of bypassing. Quality gates ensure code meets project standards.
## Workflow
### Phase 1: Parallel Change Analysis (Use Parallel Analysis for Complex Changes)
For changes spanning multiple files or concerns, spawn parallel agents:
If git diff shows >100 lines or >5 files changed:
Agent 1 - Semantic Analysis:
Agent 2 - Breaking Change Detection:
Agent 3 - Commit Splitting Analysis:
Merge results -> Generate accurate commit message(s)
When changes need to be split into multiple commits, use TodoWrite:
Example: Changes include a feature, a fix, and docs update
TodoWrite:
- [ ] Commit 1: feat(auth): add OAuth2 support
- [ ] Commit 2: fix(api): resolve null pointer exception
- [ ] Commit 3: docs: update authentication guide
Mark each as in_progress -> completed as you stage and commit.
### Phase 2: Analyze Changes
1. **Analyze Changes**: Run `git status` and `git diff --staged` to understand current changes
2. **Group Related Changes**: Identify logically separate changes that should be committed individually (e.g., separate feature additions from bug fixes, documentation updates from code changes)
3. **For Each Logical Group**:
- Determine the appropriate commit type:
- `feat`: New feature for the user
- `fix`: Bug fix for the user
- `docs`: Documentation only changes
- `style`: Code style changes (formatting, missing semi-colons, etc.)
- `refactor`: Code change that neither fixes a bug nor adds a feature
- `perf`: Performance improvements
- `test`: Adding missing tests or correcting existing tests
- `build`: Changes to build system or external dependencies
- `ci`: Changes to CI configuration files and scripts
- `chore`: Other changes that don't modify src or test files
- `revert`: Reverts a previous commit
- Identify the scope if applicable (component, module, or area affected)
- Write a concise description in imperative mood (max 50 characters)
- Add a detailed body if the change is complex (wrap at 72 characters)
- Include breaking change footer if applicable: `BREAKING CHANGE: description`
- Format as: `type(scope): description`
4. **Commit Strategy**:
- If changes represent a single logical unit: create one commit
- If changes span multiple concerns: create separate commits for each logical group
- Stage files appropriately for each commit using `git add`
- Create each commit with the generated message
## Example Formats
feat(auth): add OAuth2 login support fix(api): resolve null pointer in user endpoint docs: update installation instructions chore(deps): bump lodash to 4.17.21 refactor(parser): extract validation logic to separate module
feat(shopping-cart)!: remove deprecated calculate method
BREAKING CHANGE: calculate has been removed, use computeTotal instead
git add <specific-files> to stage only relevant files for each commitBREAKING CHANGE: footer--no-verify to skip pre-commit hooks - it bypasses important quality gatesGenerate the most appropriate commit message(s) based on the changes and commit automatically. Ask for confirmation before committing if the changes are complex or span multiple concerns.
This skill includes the following Claude Code-specific enhancements:
This skill includes automatic code quality verification before committing:
Before executing git commit, the following linting checks run automatically:
Supported Project Types:
npm run lint, bun run lint, pnpm run lint, or yarn run lintruff check . or flake8 .make lint if target existsrubocopgolangci-lint runBehavior:
Example blocked commit:
🔍 Running: ruff check .
❌ Linting failed: ruff check reported errors. Fix lint errors before committing.
Found 3 errors in src/utils.py:
- Line 42: Undefined name 'foo'
- Line 55: Unused import 'os'
- Line 78: Line too long (120 > 88 characters)
To fix: Address the linting errors and run the commit command again.
To bypass (not recommended): Fix the underlying lint errors instead of bypassing. Quality gates ensure code meets project standards.
For changes spanning multiple files or concerns, spawn parallel agents:
If git diff shows >100 lines or >5 files changed:
Agent 1 - Semantic Analysis:
- prompt: "Analyze this git diff and explain what the code changes actually DO. Focus on behavior changes, not just file names. What features were added? What bugs were fixed?"
- subagent_type: "general-purpose"
Agent 2 - Breaking Change Detection:
- prompt: "Check this git diff for breaking changes: removed public functions, changed function signatures, deleted exports, renamed APIs. List any breaking changes found."
- subagent_type: "general-purpose"
Agent 3 - Commit Splitting Analysis:
- prompt: "Should these changes be split into multiple commits? Look for: mixing features with fixes, unrelated changes, docs mixed with code. Recommend how to split if needed."
- subagent_type: "general-purpose"
Merge results -> Generate accurate commit message(s)
When changes need to be split into multiple commits, use TodoWrite:
Example: Changes include a feature, a fix, and docs update
TodoWrite:
- [ ] Commit 1: feat(auth): add OAuth2 support
- [ ] Commit 2: fix(api): resolve null pointer exception
- [ ] Commit 3: docs: update authentication guide
Mark each as in_progress -> completed as you stage and commit.
git status and git diff --staged to understand current changesfeat: New feature for the userfix: Bug fix for the userdocs: Documentation only changesstyle: Code style changes (formatting, missing semi-colons, etc.)refactor: Code change that neither fixes a bug nor adds a featureperf: Performance improvementstest: Adding missing tests or correcting existing testsbuild: Changes to build system or external dependenciesci: Changes to CI configuration files and scriptschore: Other changes that don't modify src or test filesrevert: Reverts a previous commitBREAKING CHANGE: descriptiontype(scope): descriptiongit add