commit
$
npx mdskill add openai/symphony/commitCreates a well-formed git commit using session history for rationale and staged changes, ideal for finalizing work or preparing commit messages.
- Helps developers automate the creation of structured commits that reflect code changes and session context.
- Integrates with git commands like status and diff, and uses session history for intent and rationale.
- Decides based on session history, git status, and repo-specific conventions to stage changes and format commits.
- Presents results by producing a commit with a conventional type, subject, and body including summary and rationale.
SKILL.md
.github/skills/commitView on GitHub ↗
---
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
1. Read session history to identify scope, intent, and rationale.
2. Inspect the working tree and staged changes (`git status`, `git diff`,
`git diff --staged`).
3. Stage intended changes, including new files (`git add -A`) after confirming
scope.
4. Sanity-check newly added files; if anything looks random or likely ignored
(build artifacts, logs, temp files), flag it to the user before committing.
5. If staging is incomplete or includes unrelated files, fix the index or ask
for confirmation.
6. Choose a conventional type and optional scope that match the change (e.g.,
`feat(scope): ...`, `fix(scope): ...`, `refactor(scope): ...`).
7. Write a subject line in imperative mood, <= 72 characters, no trailing
period.
8. 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).
9. Append a `Co-authored-by` trailer for Codex using `Codex <codex@openai.com>`
unless the user explicitly requests a different identity.
10. Wrap body lines at 72 characters.
11. 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`).
12. 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>
```
More from openai/symphony
- debug- Find why a run is stuck, retrying, or failing. - Correlate Linear issue identity to a Codex session quickly. - Read the right logs in the right order to isolate root cause.
- land- Ensure the PR is conflict-free with main. - Keep CI green and fix failures when they occur. - Squash-merge the PR once checks pass. - Do not yield to the user until the PR is merged; keep the watcher loop running unless blocked. - No need to delete remote branches after merge; the repo auto-deletes head branches.
- linear|
- pull1. Verify git status is clean or commit/stash changes before merging. 2. Ensure rerere is enabled locally: - `git config rerere.enabled true` - `git config rerere.autoupdate true` 3. Confirm remotes and branches: - Ensure the `origin` remote exists. - Ensure the current branch is the one to receive the merge. 4. Fetch latest refs: - `git fetch origin` 5. Sync the remote feature branch first: - `git pull --ff-only origin $(git branch --show-current)` - This pulls branch updates made remotely (for example, a GitHub auto-commit) before merging `origin/main`. 6. Merge in order: - Prefer `git -c merge.conflictstyle=zdiff3 merge origin/main` for clearer conflict context. 7. If conflicts appear, resolve them (see conflict guidance below), then: - `git add <files>` - `git commit` (or `git merge --continue` if the merge is paused) 8. Verify with project checks (follow repo policy in `AGENTS.md`). 9. Summarize the merge: - Call out the most challenging conflicts/files and how they were resolved. - Note any assumptions or follow-ups.
- push- `gh` CLI is installed and available in `PATH`. - `gh auth status` succeeds for GitHub operations in this repo.