Add BMAD, Claude, Cursor, and OpenCode configuration directories along with AGENTS.md documentation. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
161 lines
7.1 KiB
Markdown
161 lines
7.1 KiB
Markdown
---
|
||
description: Create well-formatted commits with conventional commit messages and emoji
|
||
---
|
||
|
||
# Commit Command
|
||
|
||
You are an AI agent that helps create well-formatted git commits with conventional commit messages and emoji icons, follow these instructions exactly. Always run and push the commit, you don't need to ask for confirmation unless there is a big issue or error.
|
||
|
||
## Instructions for Agent
|
||
|
||
When the user runs this command, execute the following workflow:
|
||
|
||
1. **Check command mode**:
|
||
- If user provides $ARGUMENTS (a simple message), skip to step 3
|
||
|
||
2. **Run pre-commit validation**:
|
||
- Execute `pnpm lint` and report any issues
|
||
- Execute `pnpm build` and ensure it succeeds
|
||
- If either fails, ask user if they want to proceed anyway or fix issues first
|
||
|
||
3. **Analyze git status**:
|
||
- Run `git status --porcelain` to check for changes
|
||
- If no files are staged, run `git add .` to stage all modified files
|
||
- If files are already staged, proceed with only those files
|
||
|
||
4. **Analyze the changes**:
|
||
- Run `git diff --cached` to see what will be committed
|
||
- Analyze the diff to determine the primary change type (feat, fix, docs, etc.)
|
||
- Identify the main scope and purpose of the changes
|
||
|
||
5. **Generate commit message**:
|
||
- Choose appropriate emoji and type from the reference below
|
||
- Create message following format: `<emoji> <type>: <description>`
|
||
- Keep description concise, clear, and in imperative mood
|
||
- Show the proposed message to user for confirmation
|
||
|
||
6. **Execute the commit**:
|
||
- Run `git commit -m "<generated message>"`
|
||
- Display the commit hash and confirm success
|
||
- Provide brief summary of what was committed
|
||
|
||
## Commit Message Guidelines
|
||
|
||
When generating commit messages, follow these rules:
|
||
|
||
- **Atomic commits**: Each commit should contain related changes that serve a single purpose
|
||
- **Imperative mood**: Write as commands (e.g., "add feature" not "added feature")
|
||
- **Concise first line**: Keep under 72 characters
|
||
- **Conventional format**: Use `<emoji> <type>: <description>` where type is one of:
|
||
- `feat`: A new feature
|
||
- `fix`: A bug fix
|
||
- `docs`: Documentation changes
|
||
- `style`: Code style changes (formatting, etc.)
|
||
- `refactor`: Code changes that neither fix bugs nor add features
|
||
- `perf`: Performance improvements
|
||
- `test`: Adding or fixing tests
|
||
- `chore`: Changes to the build process, tools, etc.
|
||
- **Present tense, imperative mood**: Write commit messages as commands (e.g., "add feature" not "added feature")
|
||
- **Concise first line**: Keep the first line under 72 characters
|
||
- **Emoji**: Each commit type is paired with an appropriate emoji:
|
||
- ✨ `feat`: New feature
|
||
- 🐛 `fix`: Bug fix
|
||
- 📝 `docs`: Documentation
|
||
- 💄 `style`: Formatting/style
|
||
- ♻️ `refactor`: Code refactoring
|
||
- ⚡️ `perf`: Performance improvements
|
||
- ✅ `test`: Tests
|
||
- 🔧 `chore`: Tooling, configuration
|
||
- 🚀 `ci`: CI/CD improvements
|
||
- 🗑️ `revert`: Reverting changes
|
||
- 🧪 `test`: Add a failing test
|
||
- 🚨 `fix`: Fix compiler/linter warnings
|
||
- 🔒️ `fix`: Fix security issues
|
||
- 👥 `chore`: Add or update contributors
|
||
- 🚚 `refactor`: Move or rename resources
|
||
- 🏗️ `refactor`: Make architectural changes
|
||
- 🔀 `chore`: Merge branches
|
||
- 📦️ `chore`: Add or update compiled files or packages
|
||
- ➕ `chore`: Add a dependency
|
||
- ➖ `chore`: Remove a dependency
|
||
- 🌱 `chore`: Add or update seed files
|
||
- 🧑💻 `chore`: Improve developer experience
|
||
- 🧵 `feat`: Add or update code related to multithreading or concurrency
|
||
- 🔍️ `feat`: Improve SEO
|
||
- 🏷️ `feat`: Add or update types
|
||
- 💬 `feat`: Add or update text and literals
|
||
- 🌐 `feat`: Internationalization and localization
|
||
- 👔 `feat`: Add or update business logic
|
||
- 📱 `feat`: Work on responsive design
|
||
- 🚸 `feat`: Improve user experience / usability
|
||
- 🩹 `fix`: Simple fix for a non-critical issue
|
||
- 🥅 `fix`: Catch errors
|
||
- 👽️ `fix`: Update code due to external API changes
|
||
- 🔥 `fix`: Remove code or files
|
||
- 🎨 `style`: Improve structure/format of the code
|
||
- 🚑️ `fix`: Critical hotfix
|
||
- 🎉 `chore`: Begin a project
|
||
- 🔖 `chore`: Release/Version tags
|
||
- 🚧 `wip`: Work in progress
|
||
- 💚 `fix`: Fix CI build
|
||
- 📌 `chore`: Pin dependencies to specific versions
|
||
- 👷 `ci`: Add or update CI build system
|
||
- 📈 `feat`: Add or update analytics or tracking code
|
||
- ✏️ `fix`: Fix typos
|
||
- ⏪️ `revert`: Revert changes
|
||
- 📄 `chore`: Add or update license
|
||
- 💥 `feat`: Introduce breaking changes
|
||
- 🍱 `assets`: Add or update assets
|
||
- ♿️ `feat`: Improve accessibility
|
||
- 💡 `docs`: Add or update comments in source code
|
||
- 🗃️ `db`: Perform database related changes
|
||
- 🔊 `feat`: Add or update logs
|
||
- 🔇 `fix`: Remove logs
|
||
- 🤡 `test`: Mock things
|
||
- 🥚 `feat`: Add or update an easter egg
|
||
- 🙈 `chore`: Add or update .gitignore file
|
||
- 📸 `test`: Add or update snapshots
|
||
- ⚗️ `experiment`: Perform experiments
|
||
- 🚩 `feat`: Add, update, or remove feature flags
|
||
- 💫 `ui`: Add or update animations and transitions
|
||
- ⚰️ `refactor`: Remove dead code
|
||
- 🦺 `feat`: Add or update code related to validation
|
||
- ✈️ `feat`: Improve offline support
|
||
|
||
## Reference: Good Commit Examples
|
||
|
||
Use these as examples when generating commit messages:
|
||
- ✨ feat: add user authentication system
|
||
- 🐛 fix: resolve memory leak in rendering process
|
||
- 📝 docs: update API documentation with new endpoints
|
||
- ♻️ refactor: simplify error handling logic in parser
|
||
- 🚨 fix: resolve linter warnings in component files
|
||
- 🧑💻 chore: improve developer tooling setup process
|
||
- 👔 feat: implement business logic for transaction validation
|
||
- 🩹 fix: address minor styling inconsistency in header
|
||
- 🚑️ fix: patch critical security vulnerability in auth flow
|
||
- 🎨 style: reorganize component structure for better readability
|
||
- 🔥 fix: remove deprecated legacy code
|
||
- 🦺 feat: add input validation for user registration form
|
||
- 💚 fix: resolve failing CI pipeline tests
|
||
- 📈 feat: implement analytics tracking for user engagement
|
||
- 🔒️ fix: strengthen authentication password requirements
|
||
- ♿️ feat: improve form accessibility for screen readers
|
||
|
||
Example commit sequence:
|
||
- ✨ feat: add user authentication system
|
||
- 🐛 fix: resolve memory leak in rendering process
|
||
- 📝 docs: update API documentation with new endpoints
|
||
- ♻️ refactor: simplify error handling logic in parser
|
||
- 🚨 fix: resolve linter warnings in component files
|
||
- ✅ test: add unit tests for authentication flow
|
||
|
||
## Agent Behavior Notes
|
||
|
||
- **Error handling**: If validation fails, give user option to proceed or fix issues first
|
||
- **Auto-staging**: If no files are staged, automatically stage all changes with `git add .`
|
||
- **File priority**: If files are already staged, only commit those specific files
|
||
- **Always run and push the commit**: You don't need to ask for confirmation unless there is a big issue or error `git push`.
|
||
- **Message quality**: Ensure commit messages are clear, concise, and follow conventional format
|
||
- **Success feedback**: After successful commit, show commit hash and brief summary
|