# Commit

> Stage and commit changes with a clear, concise commit message.

- Skill: `antiwork/commit` (Agent Skill)
- Install (CLI): `npx skillmds@latest add antiwork/commit`
- Raw SKILL.md: https://api.skillmd.com/api/skills/antiwork/commit/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: antiwork (https://skillmd.com/u/antiwork)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/antiwork/commit

---


# Commit

Create a commit for the current changes.

## Steps

1. Run `git status` (without `-uall`) to see untracked and modified files.
2. Run `git diff` and `git diff --cached` to understand staged and unstaged changes.
3. Run `git log --oneline -5` to see recent commit style.
4. **Run `bin/test-confidence` to verify your changes don't break anything.** Opus analyzes your diff and runs the right tests. Wait for 99% confidence (green bar) before proceeding. If any test fails, fix it first.
5. **Run linters on changed files before staging:**
   - Ruby files: `bundle exec rubocop --force-exclusion -a <files>`
   - JS/TS files: `npm run lint-fast -- --max-warnings 0 --fix --no-warn-ignored <files>`
   - TypeScript type check: `npx tsc --noEmit` (required, catches type errors that eslint skips)
   - CSS/SCSS/JSON/MD files: `npx prettier --write <files>`
   - SVG files: `npx svgo --multipass <files>`
   - Fix any lint errors or type errors before proceeding. Do not commit code that fails linting or type checking.
6. Stage the relevant files by name — avoid `git add -A` or `git add .`.
7. Write a commit message and commit.

If `$ARGUMENTS` is provided, use it as a hint for the message.

## Commit message rules

- Use the imperative mood ("Add", "Fix", "Remove", not "Added", "Fixes", "Removed").
- Be concise: one short sentence, ideally under 50 characters.
- Do NOT use conventional commit prefixes (no `feat:`, `fix:`, `chore:`, etc.).
- Do NOT add any `Co-Authored-By` or similar trailers.
- Focus on **what** changed and **why**, not how.
- If a second line is needed for context, keep it brief.

## Examples of good messages

- `Prevent discount code from being cleared on edit`
- `Add integration test for offer code persistence`
- `Remove unused legacy export helper`
- `Fix thumbnail missing in upsell insert`

$ARGUMENTS

