| name | commit |
| description | Create a well-formed git commit from current changes using session history for rationale and summary; use when asked to commit, prepare a commit message, or finalize staged work. |
Commit
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, and git diff --staged for 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-by trailer for Codex using Codex <codex@openai.com>
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 -m with \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 commit whose 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 <codex@openai.com>