About commit
commit is a repository skill for creating a Git commit that matches the staged changes and session intent. It guides change review, conventional message structure, validation notes, and a Codex co-author trailer.
Key features
- 01Review working tree and staged diff
- 02Stage intended changes and inspect new files
- 03Write a conventional, concise subject
- 04Include summary, rationale, and validation
- 05Add Codex co-author trailer
Use cases
- 01Commit a completed code change
- 02Check staged files for unrelated artifacts
- 03Record rationale and test status in a commit
Install
Copy the command and run it in a terminal.
$
npx skills add https:/ / github.com/ odysseus0/ symphony --skill commitAfter installing, type/commitin Claude Code to confirm it loaded.
Details
From the project READMECommit
Goals
- Produce a commit that reflects the actual code changes and the session context.
- Follow common git conventions (type prefix, short subject, wrapped body).
- Include both summary and rationale in the body.
Inputs
- Codex session history for intent and rationale.
git status,git diff, andgit diff --stagedfor actual changes.- Repo-specific commit conventions if documented.
Steps
- Read session history to identify scope, intent, and rationale.
- Inspect the working tree and staged changes (
git status,git diff,git diff --staged). - Stage intended changes, including new files (
git add -A) after confirming scope. - Sanity-check newly added files; if anything looks random or likely ignored (build artifacts, logs, temp files), flag it to the user before committing.
- If staging is incomplete or includes unrelated files, fix the index or ask for confirmation.
- Choose a conventional type and optional scope that match the change (e.g.,
feat(scope): ...,fix(scope): ...,refactor(scope): ...). - Write a subject line in imperative mood, <= 72 characters, no trailing period.
- Write a body that includes:
- Summary of key changes (what changed).
- Rationale and trade-offs (why it changed).
- Tests or validation run (or explicit note if not run).
- Append a
Co-authored-bytrailer for Codex usingCodex <[email protected]>unless the user explicitly requests a different identity. - Wrap body lines at 72 characters.
- Create the commit message with a here-doc or temp file and use
git commit -F <file>so newlines are literal (avoid-mwith\n). - Commit only when the message matches the staged changes: if the staged diff includes unrelated files or the message describes work that isn't staged, fix the index or revise the message before committing.
Output
- A single commit created with
git commitwhose message reflects the session.
Template
Type and scope are examples only; adjust to fit the repo and changes.
<type>(<scope>): <short summary>
Summary:
- <what changed>
- <what changed>
Rationale:
- <why>
- <why>
Tests:
- <command or "not run (reason)">
Co-authored-by: Codex <[email protected]>
Comments
Markdown supported