commit

Create well-formatted commits with conventional commit messages and emoji

INSTALLATION
npx skills add https://github.com/neolabhq/context-engineering-kit --skill commit
Run in your project or agent environment. Adjust flags if your CLI version differs.

SKILL.md

$27

  • Verify before committing: Ensure code is linted, builds correctly, and documentation is updated
  • 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 <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

Guidelines for Splitting Commits

When analyzing the diff, consider splitting commits based on these criteria:

  • Different concerns: Changes to unrelated parts of the codebase
  • Different types of changes: Mixing features, fixes, refactoring, etc.
  • File patterns: Changes to different types of files (e.g., source code vs documentation)
  • Logical grouping: Changes that would be easier to understand or review separately
  • 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

Command Options

  • --no-verify: Skip running the pre-commit checks (lint, build, generate:docs)

Branch Naming Convention

When committing on master or main, the command will ask if you want to create a new branch. If yes, it creates a branch following this pattern:

<type>/<git-username>/<description>

Components:

  • <type>: The commit type (feature, fix, docs, refactor, perf, test, chore, etc.)
  • <git-username>: Your git username (obtained from git config user.name or the system username)
  • <description>: A kebab-case description of the change (e.g., add-user-auth, fix-login-bug)

Examples:

  • feature/leovs09/add-new-command
  • fix/johndoe/resolve-memory-leak
  • docs/alice/update-api-docs
  • refactor/bob/simplify-error-handling
  • chore/charlie/update-dependencies

Workflow:

  • Command detects you're on master or main
  • Asks: "You're on the main branch. Do you want to create a separate branch?"
  • If "No": Proceeds with commit on current branch
  • If "Yes": Analyzes your changes to determine the type, asks for a brief description, creates the branch, and proceeds with commit

Important Notes

  • By default, pre-commit checks (pnpm lint, pnpm build, pnpm generate:docs) will run to ensure code quality
  • If these checks fail, you'll be asked if you want to proceed with the commit anyway or fix the issues first
  • If specific files are already staged, the command will only commit those files
  • If no files are staged, it will automatically stage all modified and new files
  • The commit message will be constructed based on the changes detected
  • Before committing, the command will review the diff to identify if multiple commits would be more appropriate
  • If suggesting multiple commits, it will help you stage and commit the changes separately
  • Always reviews the commit diff to ensure the message matches the changes
BrowserAct

Let your agent run on any real-world website

Bypass CAPTCHA & anti-bot for free. Start local, scale to cloud.

Explore BrowserAct Skills β†’

Stop writing automation&scrapers

Install the CLI. Run your first Skill in 30 seconds. Scale when you're ready.

Start free
free Β· no credit card