git-commit-writer
Generates conventional commit messages from staged changes or a diff.
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Menu
Generates conventional commit messages from staged changes or a diff.
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Based on SOC occupation classification
Runs a systematic checklist review on any code diff or file, covering correctness, security, performance, and readability.
Writes a high-quality CLAUDE.md, .cursorrules, or .windsurfrules file that gives a coding agent the right project context, conventions, and constraints to work effectively.
Designs an eval suite for an LLM agent or pipeline including success metrics, trajectory scoring, LLM-as-judge setup, and regression test cases.
Designs a hybrid retrieval pipeline combining dense vector search and BM25 sparse search with reciprocal rank fusion, and explains when to use each configuration.
Converts a workflow description into a LangGraph node/edge graph with typed state, conditional routing, and human-in-the-loop checkpoints.
Audits an AI application for unnecessary token spend and recommends prompt caching, model routing, and token reduction techniques to cut costs.
| name | Git Commit Writer |
| description | Generates conventional commit messages from staged changes or a diff. |
| category | coding |
| tags | ["git","commits","conventional-commits"] |
| author | simplyutils |
This skill directs the agent to read a git diff (or a plain description of changes) and produce a well-formed commit message following the Conventional Commits specification. It chooses the right type (feat, fix, chore, docs, refactor, test, style, perf, ci), picks an appropriate scope, writes a concise subject line, and — when the change is large enough to warrant it — adds a descriptive body.
Use this when you want consistent, meaningful commit history without having to remember the format every time.
Copy this file to .agents/skills/git-commit-writer/SKILL.md in your project root.
Then ask the agent:
For Claude Code, you can also run git diff --staged first and paste the output into the chat.
Add the contents of the "Prompt / Instructions" section below to your .cursorrules file, or paste it into the Cursor AI pane before asking for a commit message.
Paste the diff into the Codex chat along with the instructions from the section below. Codex works best when you include the full diff rather than a summary.
When asked to write a commit message, follow these steps:
Read the diff. If not provided, ask for git diff --staged output. Understand every file changed.
Determine the commit type using these rules:
feat — a new feature or behavior visible to users or callersfix — a bug fixrefactor — code restructuring with no behavior changeperf — performance improvementtest — adding or fixing testsdocs — documentation only (README, comments, etc.)style — formatting, whitespace, lint (no logic change)chore — build scripts, dependencies, toolingci — CI/CD pipeline changesChoose a scope (optional but recommended). The scope is the part of the codebase most affected, in lowercase: auth, api, ui, db, parser, etc. Use the folder name or module name if unsure.
Write the subject line (first line of the commit):
type(scope): short descriptionWrite the body if the change needs explanation:
Add a footer if applicable:
BREAKING CHANGE: descriptionCloses #123 or Fixes #456Output format:
type(scope): short imperative description
Optional body explaining the why behind the change.
Can be multiple paragraphs. Wrap at 72 chars.
Optional footer: Closes #123
If the diff contains multiple unrelated changes, flag this and suggest splitting into separate commits.
Input to Agent:
"Here's my staged diff. Write a commit message using the Git Commit Writer skill.
diff --git a/server/auth.ts b/server/auth.ts index 3a1b2c..9f4e5d 100644 --- a/server/auth.ts +++ b/server/auth.ts @@ -42,6 +42,12 @@ export async function login(email: string, password: string) { const user = await db.users.findOne({ email }); if (!user) throw new AuthError('User not found'); + + if (user.lockedUntil && user.lockedUntil > new Date()) { + throw new AuthError('Account is temporarily locked. Try again later.'); + } + const valid = await bcrypt.compare(password, user.passwordHash); if (!valid) { + await incrementFailedAttempts(user.id); throw new AuthError('Invalid password'); } ```"
Output from Agent:
fix(auth): lock accounts after repeated failed login attempts
Adds a check for the `lockedUntil` field before attempting password
comparison. Also increments a failed-attempt counter on each bad
password so the locking mechanism has data to act on.
git commit automatically. It only produces the message text for you to review and use.feat(api-gateway): ...).