commit-forge
Write clean, atomic git commits with conventional format. Use when committing code, staging changes, or user says "commit", "commit this", "stage and commit", or is done with a task and needs to commit. NOT for git troubleshooting or branch management.
Best use case
commit-forge is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
Write clean, atomic git commits with conventional format. Use when committing code, staging changes, or user says "commit", "commit this", "stage and commit", or is done with a task and needs to commit. NOT for git troubleshooting or branch management.
Teams using commit-forge should expect a more consistent output, faster repeated execution, less prompt rewriting.
When to use this skill
- You want a reusable workflow that can be run more than once with consistent structure.
When not to use this skill
- You only need a quick one-off answer and do not need a reusable workflow.
- You cannot install or maintain the underlying files, dependencies, or repository context.
Installation
Claude Code / Cursor / Codex
Manual Installation
- Download SKILL.md from GitHub
- Place it in
.claude/skills/commit-forge/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How commit-forge Compares
| Feature / Agent | commit-forge | Standard Approach |
|---|---|---|
| Platform Support | Not specified | Limited / Varies |
| Context Awareness | High | Baseline |
| Installation Complexity | Unknown | N/A |
Frequently Asked Questions
What does this skill do?
Write clean, atomic git commits with conventional format. Use when committing code, staging changes, or user says "commit", "commit this", "stage and commit", or is done with a task and needs to commit. NOT for git troubleshooting or branch management.
Where can I find the source code?
You can find the source code on GitHub using the link provided at the top of the page.
SKILL.md Source
# Commit Forge Atomic, descriptive git commits. Every commit is one logical change that leaves the codebase working. ## Hard Rules - **NEVER** commit without the user explicitly asking - **NEVER** add co-author tags to commits - **NEVER** skip hooks (`--no-verify`, `--no-gpg-sign`) - **NEVER** force push to main/master - **NEVER** use `git add .` or `git add -A` - stage specific files by name - **PREFER** creating a new commit over amending an existing one ## Commit Message Format ``` type(scope): short description (max 72 chars) Optional body - what and why, not how. Optional footer - breaking changes, issue refs. ``` ### Types | Type | Use For | |------|---------| | `feat` | New feature or capability | | `fix` | Bug fix | | `docs` | Documentation only | | `refactor` | Code restructuring, no behavior change | | `test` | Adding or fixing tests | | `chore` | Maintenance, deps, config, CI | | `style` | Formatting, no logic change | | `perf` | Performance improvement | ### Scope Use short, lowercase scope matching the area of change. Read the repo's existing commits (`git log --oneline -20`) to match the project's conventions. ### Examples ``` feat(auth): add JWT refresh token rotation fix(parser): handle empty broker email attachments refactor(cli): extract table renderer to shared package chore: update go dependencies test(api): add integration tests for driver matching ``` ## Process ### Step 1: Review Changes ```bash git status git diff git diff --staged ``` Understand what changed before staging anything. ### Step 2: Stage Selectively Stage files that belong to one logical change: ```bash git add src/auth/handler.go git add src/auth/handler_test.go ``` If the diff contains multiple unrelated changes, split into separate commits. ### Step 3: Verify Before Commit Auto-detect and run the repo's checks: | Indicator | Command | |-----------|---------| | `Makefile` with test target | `make test` | | `package.json` with test script | `npm test` / `pnpm test` | | `go.mod` exists | `go test ./...` | | `Cargo.toml` exists | `cargo test` | | `pyproject.toml` / `setup.py` | `pytest` | Only run if tests exist and are fast. Skip if the user explicitly says to commit without testing. ### Step 4: Commit Write a message that answers "what changed and why" - not "how." ```bash git commit -m "feat(auth): add rate limiting to login endpoint" ``` For complex changes, use a body: ```bash git commit -m "refactor(api): split monolithic handler into middleware chain Request validation, auth, and response formatting were tangled in a single 400-line handler. Split into composable middleware for independent testing and reuse." ``` ### Step 5: Verify ```bash git log --oneline -3 git show --stat ``` Confirm the commit looks right. ## What Makes a Good Commit | Good | Bad | |------|-----| | One logical change | Multiple unrelated changes | | All tests pass | Breaks something | | Message says why | Message says "update stuff" | | Can be reverted cleanly | Reverting would break other things | | Specific files staged | `git add .` | ## What Makes a Bad Commit Message - "fix stuff" / "update" / "changes" / "WIP" - Using "and" to describe two unrelated things - Describing how instead of what/why - Over 72 characters in the subject line ## Checklist Before committing: - [ ] Changes are atomic (one logical unit) - [ ] Specific files staged (not `git add .`) - [ ] Tests pass (if applicable) - [ ] Message follows `type(scope): description` format - [ ] No co-author tags - [ ] No sensitive files staged (.env, credentials, keys)
Related Skills
skill-forge
Write or improve an LLM agent skill. Use when user says "create skill", "write a skill", "improve this skill", "new skill", "skill for X", or wants to build a SKILL.md file.
readme-forge
Generate a README in alxx's personal style. Use when user says "write a README", "create README", "readme for this project", "update README", or needs a repo README.
prompt-forge
Universal prompt engineering guide for writing, reviewing, and optimizing LLM prompts across Claude and OpenAI models. Use when writing system prompts, designing extraction pipelines, building classification or summarization prompts, optimizing for cost/latency, reviewing existing prompts for quality, or any task involving prompt design for production AI systems. Trigger on keywords like "prompt", "system prompt", "few-shot", "extraction prompt", "prompt engineering", "prompt review", or when the user is building any AI-powered feature that needs a well-crafted prompt.
model-forge
Pick the right model for a task and the right git strategy for the work. Use when about to dispatch a subagent, start a new feature, or unsure whether to use opus/sonnet/haiku/codex, or whether to branch/worktree/work direct. NOT for actually running the work - this only routes.
claude-md-forge
Generate or optimize a CLAUDE.md and .claude/ infrastructure for a repository. Use when user says "create CLAUDE.md", "optimize CLAUDE.md", "set up .claude", "audit my CLAUDE.md", or is bootstrapping a new project.
exo-teams
CLI tool for Microsoft Teams internal API - no admin consent required. Use when working with Teams messages, DMs, assignments, class materials, file uploads, calendar, or deadlines. Trigger on "teams", "exo-teams", "microsoft teams", "assignments", "class materials", "send message teams", "teams files", "uni automation", "deadlines", or "submit assignment".
claude-headless
Build custom UIs on top of Claude Code's headless mode. Covers spawning, NDJSON protocol, permission hooks, and session management. Use when building a desktop app, TUI, web UI, or any custom interface that wraps Claude Code as a subprocess.
charm-vhs
Record terminal sessions as GIF/MP4/WebM from declarative .tape scripts with VHS. Use when creating terminal demos, recording CLI sessions, VHS tape files, or generating terminal GIFs.
charm-ultraviolet
Low-level Go terminal primitives - cell-based rendering, input handling, screen management. Use when building custom Go terminal renderers, ultraviolet, cell buffers, or performance-critical TUI work below Bubble Tea's abstraction level.
charm-pop
Send emails from the terminal with pop - TUI and CLI modes, SMTP and Resend support, attachments. Use when sending email from terminal, pop, CLI email, or piping email content from shell scripts.
charm-lipgloss
CSS-like terminal styling for Go with lipgloss v2 - styles, colors, borders, layout, tables, lists, and trees. Use when styling Go terminal output, lipgloss, terminal layout composition, or building styled tables/lists/trees in Go.
charm-huh
Build interactive terminal forms and prompts in Go with huh - input, select, confirm, multiselect, validation, theming. Use when building Go terminal forms, huh, interactive Go prompts, or form fields with validation. NOT for shell script prompts (use gum).