--- name: committing-work description: Use this skill before committing changes on the repository. --- # Committing Work ## Overview **Announce at start:** "๐ŸŸข I'm using the committing-work skill to complete this work." ## Key Principles - **Commit message**: commit messages must be constructed based on the changes detected - **Atomic commits**: Each commit should contain related changes that serve a single purpose - **Split large changes**: If changes touch multiple concerns, split them into separate commits - **Conventional commit format**: Use the format `(): `: - `` section is optional - `` section 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") - **Ignore not relevant changes**: Changed files unrelated to the work done should be ignored (e.g., temporary files). If unsure, ask the user for guidance. - **Concise first line**: Keep the first line under 72 characters - **Use emojis**: Each commit type **MUST** be 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 ### Guidelines for Splitting Commits When analyzing the diff, consider splitting commits based on these criteria: 1. **Different concerns**: Changes to unrelated parts of the codebase 2. **Different types of changes**: Mixing features, fixes, refactoring, etc. 3. **File patterns**: Changes to different types of files (e.g., source code vs documentation) 4. **Logical grouping**: Changes that would be easier to understand or review separately 6. **Size**: Very large changes that would be clearer if broken down ### Examples Good 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 of splitting commits: - First commit: โœจ feat: add new solc version type definitions - Second commit: ๐Ÿ“ docs: update documentation for new solc versions - Third commit: ๐Ÿ”ง chore: update package.json dependencies - Fourth commit: ๐Ÿท๏ธ feat: add type definitions for new API endpoints - Fifth commit: ๐Ÿงต feat: improve concurrency handling in worker threads - Sixth commit: ๐Ÿšจ fix: resolve linting issues in new code - Seventh commit: โœ… test: add unit tests for new solc version features - Eighth commit: ๐Ÿ”’๏ธ fix: update dependencies with security vulnerabilities