create-commit

Compose and record a git commit for one logical unit of work.

1|1|Updated Feb 25, 2026
One-click install
npx skills add https://github.com/williamthorsen/codeassembly --skill create-commit-williamthorsen
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: create-commit
Source: https://github.com/williamthorsen/codeassembly/tree/main/packages/agents/content/skills/create-commit
Command: npx skills add https://github.com/williamthorsen/codeassembly --skill create-commit-williamthorsen

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Writing consistent, well-structured git commit messages is repetitive and error-prone, especially when titles must follow conventions for scope, work type, and voice. This Skill guides an agent through staging one logical unit of work and composing a convention-compliant commit message from the actual diff. ## Core Features & Use Cases - Logical unit staging: Reads git status and git diff to stage exactly the paths belonging to one coherent change, keeping commits independently revertible. - Convention-driven message composition: Resolves scope, work type, and title text per a commit-conventions rulebook, then renders the title and body in the required voice and format. - Safe commit execution: Writes the message to a timestamped scratch file and commits via git commit --file, never inlining messages through --message. - Use Case: After finishing a bug fix, ask the agent to commit the work; it inspects the diff, stages the relevant files, derives the ticket reference, and records a properly formatted commit. ## Quick Start Commit my current changes as a single logical unit following the repo's commit conventions.

Frequently Asked Questions about create-commit

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I write a conventional git commit message with an AI agent?

Stage the paths for one logical unit of work, then compose the title and body from the actual diff following the repo's commit conventions. The agent resolves scope and work type, renders the title, and commits via `git commit --file` from a message file.

How should I split changes into multiple git commits?

Each commit should contain one logical unit of work that stands on its own. Work that cannot stand alone, such as scaffolding completed by a later change, belongs in the commit that completes it rather than a separate commit.

Why commit from a message file instead of git commit -m?

Committing with `git commit --file` avoids shell-escaping problems that arise when inlining multi-line messages through `--message`. The message is written to a timestamped scratch file, verified non-empty, then passed to git.

What belongs in a commit message body versus the title?

The title carries the scope, work type, and a concise summary rendered per the title conventions. The body explains the change in the prescribed voice and mechanics, composed from what the diff actually does rather than the original intent.

When should I not create a separate commit for my changes?

Avoid a separate commit when the change does not stand alone, such as a scaffold that a later change fills in. Bundle it into the commit that completes the work so each commit remains independently revertible.