commit
Skill104 starsChanged 19 days agoMITView on GitHub
Compose the semantic commit message from immutable evidence. Let ai-commit own deterministic preparation, commit, index reconciliation, and push mechanics. Run every command from the target repository cwd. Do not surround ai-commit with extra git status, git log, or git diff calls: preparation provides the complete evidence for this workflow. Use --porcelain only in deterministic automation that explicitly parses its stable TSV records. The normal skill flow consumes the human-readable sections. Arguments: $ARGUMENTS - ai-commit selects the message format from repository…
189 other projects use a version of this.
Adopted by
Most recently taken up by
- daledesilva/obsidian_inktheir own version, first seen Nov 9, 2026
- thoughtbot/rails-consultanttheir own version, first seen Nov 8, 2026
- pedrohcgs/claude-code-my-workflowtheir own version, first seen Nov 8, 2026
- jisuzzzz/haechitheir own version, first seen Nov 8, 2026
- dirien/yet-another-agent-harnesstheir own version, first seen Nov 8, 2026
- denysdovhan/skillstheir own version, first seen Nov 8, 2026
Used with
Projects with it also use validate-plan, act-on-feedback and 10 more.
Other files people use alongside this one.
Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
shawn-dumasSkillvalidate-plan
Validate an orchestration plan after pre-flight certification. Runs adversarial review, deep review (verify prompt data against codebase), and PoC gate for risky approaches. Auto-invoked by orchestrate-* skills at Step 8.
Also in 5 projects that use this
MicrosoftSkillact-on-feedback
Act on user feedback attached to the current session. Use when the user submits feedback on the session's changes via the Submit Feedback button.
Also in 3 projects that use this
decocmsSkilladd-mcp-tools
Guide for adding new MCP tools with consistent patterns for schemas, tool definitions, registry updates, and Better Auth integration
Also in 3 projects that use this
MicrosoftSkillgenerate-run-commands
Generate or modify run commands for the current session. Use when the user wants to set up or update run commands that appear in the session's Run button.
Also in 3 projects that use this
mitsuhikoSkilloebb-scotty
Austrian rail travel planner (ÖBB Scotty). Use when planning train journeys in Austria, checking departures/arrivals at stations, or looking for service disruptions. Covers ÖBB trains, S-Bahn, regional trains, and connections to neighboring countries.
Also in 3 projects that use this
mitsuhikoSkillpi-share
Load and parse session transcripts from shittycodingagent.ai/buildwithpi.ai/buildwithpi.com/pi.dev (pi-share) URLs. Fetches gists, decodes embedded session data, and extracts conversation history.
Also in 3 projects that use this
Other versions189 projects use a version of this.
Word for word · 1
- PaulRBerg/dot-agents★ 6100% same
Edited · 0
None found.
Wrote their own version · 188
- microsoft/vscode★ 195ksame name
- TryGhost/Ghost★ 56ksame name
- ToolJet/ToolJet★ 41ksame name
- ShareX/ShareX★ 41ksame name
- openai/symphony★ 27ksame name
- ccusage/ccusage★ 19ksame name
- ryoppippi/ccusage★ 19ksame name
- windmill-labs/windmill★ 18ksame name
- EverMind-AI/EverMemOS★ 14ksame name
- EverMind-AI/EverOS★ 14ksame name
178 more not listed
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository45 other files it gives its agents.
- AGENTS.mdAGENTS.md
- toolkit/AGENTS.mdAGENTS.md
- agents-brainSkill
- agents-docsSkill
- agents-introspectionSkill
- agents-systemSkill
- ai-pruneSkill
- apple-device-integrationSkill
- brainstorm-with-meSkill
- chromium-browserSkill
- cli-castSkill
- cli-coingeckoSkill
- cli-ghSkill
- cli-justSkill
- codebase-designSkill
- code-polishSkill
- copy-transcript-pathSkill
- effect-tsSkill
- evm-atlasSkill
- fresh-eyes-sweepSkill
- frontend-designSkill
- grill-meSkill
- html-playgroundSkill
- interview-meSkill
- large-file-refactorSkill
- naming-refactorSkill
- node-deps-bumperSkill
- orchestrationSkill
- pdfSkill
- release-bumperSkill
- repo-fanoutSkill
- repo-harmonizationSkill
- repo-renameSkill
- retroSkill
- skill-harmonizationSkill
- social-mediaSkill
- spreadsheetsSkill
- tailwind-cssSkill
- task-handoffSkill
- todo-archiveSkill
- tool-finderSkill
- vitestSkill
- wrap-upSkill
- writing-editorSkill
- yeetSkill
The file
Show its rules and text
We split this skill into the rules it gives an agent
17 rules. 0 are common, 5 are distinctive, and 12 are very specific to this project.
0
Common
Most of the 168 edited versions we read keep these.
5
Distinctive
This author's own choices. Worth a look.
12
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 20
Run every command from the target repository cwd.
- Very specific: line 51
If the requested operation is only to push a clean branch that is already ahead, skip preparation.
- Very specific: line 56
Before requesting a push, read the current branch with git symbolic-ref --short HEAD.
- Very specific: line 60
When no branch remote and no named remotes exist, omit --push and --rebase.
- Very specific: line 70
When you work on an existing PR, get its head repository and branch from gh pr view before you commit or push.
- Distinctive: line 92
Run one preparation command:
- Very specific: line 99
Read the full preparation output.
- Very specific: line 102
Use --diff summary instead only when the full diff is too large to read in one pass (for example, a repository-wide migration across …
- Distinctive: line 105
Before default-mode preparation, run the repository's formatter on this session's edited paths only, so a formatting pre-commit hook cannot …
- Distinctive: line 110
Default mode requires every path edited in this session.
- Very specific: line 114
Before default-mode preparation, run ai-coord touched when available and reconcile its output against the session path list.
- Very specific: line 124
If coordination re-entry records this session's completed edits as a baseline, compare its blob IDs with retained session or preparation …
- Very specific: line 128
When preparation lists unclaimed paths, this session's active ai-coord claim does not cover them.
- Very specific: line 145
Use the printed message format and message-format rules.
- Very specific: line 189
Read references/failure-recovery.md before superseding a failed preparation or adding --no-verify or --no-gpg-sign.
- Distinctive: line 199
Keep the receipt compact and forward its outcome lines without decoration:
- Distinctive: line 227
Do not report unrelated tree state, ahead/behind counts not emitted by the command, staging narration, or successful hook activity.
“Common” is measured: kept by at least 6 in 10 of the 168 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Git Commit
Compose the semantic commit message from immutable evidence. Let ai-commit own deterministic preparation, commit,
index reconciliation, and push mechanics.
Run every command from the target repository cwd. Do not surround ai-commit with extra git status, git log, or
git diff calls: preparation provides the complete evidence for this workflow. Use --porcelain only in deterministic
automation that explicitly parses its stable TSV records. The normal skill flow consumes the human-readable sections.
1. Parse Arguments
Arguments: $ARGUMENTS
ai-commitselects the message format from repository config. Pass--naturalor--conventionalonly as an explicit one-off override, never to reproduce repository policy.--all: capture all worktree and index changes. This intentionally risks including another agent's work.--staged: capture exactly the current index. Do not add session paths. It conflicts with--all.--natural: force Natural Language Format for this commit.--conventional: force Conventional Prefix Format for this commit.--push: request a push after commit. Otherwise push only when standing instructions authorize it.--rebase: with--push, letai-commitrebase a behind branch onto its fetched upstream before the push. Pass it with every authorized push unless the user excludes it.--close <issue_numbers>: pass oneai-commit commit --close <N>per positive decimal issue number. Accept comma- or space-separated input.ai-commitwrites theCloses #Nlines.--finding <finding_ids>: pass oneai-commit commit --finding <id>per ledger finding this commit fixes. Accept comma- or space-separated input. Also infer a finding from context when this session's commit fixes a specific ledger finding.ai-commitwrites theFinding-ID: <id>trailer and resolves the finding after the commit. Never include or resolve findings the commit does not actually fix.--squash: replace every branch commit after the merge base with one commit that carries the net branch diff. The helper finds the merge base with the resolved default branch. Squash mode requires a clean tree and index and an attached non-default branch. It conflicts with--all,--staged, and--push.--base <branch>: override default-branch detection. Use it only with--squash.- In Conventional Prefix Format, a positional type keyword overrides the inferred type. In Natural Language Format, a positional verb or category keyword overrides the inferred verb. Quoted positional text overrides the inferred description or subject.
If the requested operation is only to push a clean branch that is already ahead, skip preparation. Check the push
destination below. Run ai-commit push --rebase only when a destination is available.
Push Destination
Before requesting a push, read the current branch with git symbolic-ref --short HEAD. Check
git config --get branch.<name>.remote and git remote. Config exit 1 means the branch has no configured remote.
Other command failures are errors, not evidence that no remote exists.
When no branch remote and no named remotes exist, omit --push and --rebase. Complete the local commit and report
Push skipped: no remote configured. For push-only work, report the skip without invoking ai-commit push. Do not
create a remote or retry. If the user requires remote publication, report the missing destination as a blocker.
ai-commit pushes to the configured upstream: branch.<name>.remote and branch.<name>.merge. The remote can be a
named remote or a URL, even when git remote is empty. Without a branch remote, ai-commit uses origin. Other
configured remotes do not replace origin automatically. If the upstream branch has a different name,
branch.<name>.pushRemote must equal branch.<name>.remote. gh pr checkout writes this configuration for a PR that
lets maintainers push.
When you work on an existing PR, get its head repository and branch from gh pr view before you commit or push. A push
to another branch does not update the PR. If the upstream does not match the PR head, correct the branch configuration:
git config branch.<branch>.remote '<head-remote-or-url>'
git config branch.<branch>.merge 'refs/heads/<head-branch>'
git config branch.<branch>.pushRemote '<head-remote-or-url>'Then push with ai-commit. Do not push manually. Do not force-push. If ai-commit refuses the destination, report its
error. Before you report completion, read the PR again and verify that its head SHA matches the pushed commit.
Squash Mode
Enter squash mode only when the user explicitly requests a squash. Never infer it from branch state, a merge request, or
standing instructions. When --squash is present, follow references/squash.md for the plan and
reset steps. Then continue with steps 2 to 5 in --staged mode. Never pass --push in squash mode, even when standing
instructions authorize a push. The squash reference adds the co-author trailers, the rollback on failure, and the squash
report.
2. Prepare Once
Run one preparation command:
ai-commit prepare [--all | --staged] [--natural | --conventional] --diff full \
[--exclude-baseline '<path>=<oid>']... [-- <session-modified-paths>...]- Read the full preparation output. Never pipe it through
tail,head,awk,grep, or similar. It carries both the printed transaction ID and the diff step 3 must analyze, and a truncating pipe discards the evidence along with the ID. - Use
--diff summaryinstead only when the full diff is too large to read in one pass (for example, a repository-wide migration across hundreds of files) and this session already reviewed the content. In that case, compose the message from the name-status, shortstat, and that review. - Before default-mode preparation, run the repository's formatter on this session's edited paths only, so a formatting pre-commit hook cannot modify the content after it is pinned.
- Build the default-mode path list from individual repository-relative files with changes attributable to this session.
Expand directory paths to those file paths, including new and deleted files. Never build the list by parsing
git statusorgit status --porcelainoutput, which can include another agent's untracked or modified files. Default mode requires every path edited in this session. For a rename, include both old and new file paths, including case-only file or directory renames. - The formatter run, the
ai-coord touchedcheck below, and anygh pr viewlookup of the PR head repository and branch are independent. Issue them together in one turn. The formatter must still finish beforeprepare. - Before default-mode preparation, run
ai-coord touchedwhen available and reconcile its output against the session path list. For that cross-check, add missed session-edited paths. Ignore paths this session did not semantically change. Touched paths are best-effort evidence, not authority. When the command is unavailable or the session is unrecognized, skip this cross-check silently. --allaccepts no explicit paths and captures all tracked, untracked, modified, deleted, and staged changes.--stagedaccepts neither explicit paths nor baseline exclusions and captures the shared index exactly.ai-commit prepareautomatically applies this session's ai-coord stale-dirt baselines. Auto-applied exclusions appear in the preparation evidence and must be disclosed unchanged. Explicit--exclude-baselineremains available for overrides, and--no-auto-baselinedisables discovery for deterministic automation. Never revert unrelated changes.If coordination re-entry records this session's completed edits as a baseline, compare its blob IDs with retained session or preparation evidence. Use
--no-auto-baselineonly when every selected file's entire delta is attributable to the authorized task. Preserve exclusions for mixed ownership or uncertain attribution.
When preparation lists unclaimed paths, this session's active ai-coord claim does not cover them. Before committing,
decide per path: if the change is this session's authorized work, acquire the missing scope with ai-coord start. If it
is another agent's work, discard the transaction and prepare again without that path. Never commit a path you cannot
attribute.
Preparation pins the exact tree and delta under the printed transaction ID without changing the shared index. Keep that ID. The later commit reuses the transaction instead of recomputing intended content from the mutable worktree or shared index. It applies that immutable delta to the locked current branch and fails safely if intervening branch movement conflicts. If preparation fails before issuing a transaction ID, correct the evidenced argument, attribution, or input problem and retry preparation within the authorized scope.
3. Analyze and Compose
Analyze the single prepared full diff. Do not replace a valid preparation merely to get different evidence. Oversized
per-file sections arrive cut with a DIFF_TRUNCATED disclosure. Their name-status and shortstat evidence still governs
the message.
- Use the printed message format and message-format rules.
ai-commitis the source of those rules. Do not load a separate Conventional or Natural reference. - Apply positional overrides, detect breaking changes, infer scope or context from the code, and include a body only when it adds material rationale.
- Collect the issue numbers from
--closeand from transcript issue references that this commit actually resolves. Collect the finding IDs from--findingand from context. Pass them as step 4 flags. Do not writeCloses,Finding-ID, orAgent-Sessionlines into a-mvalue.ai-commitappends theClosesparagraph and the trailer block, including the validated preparation trailer. Do not synthesize or repair a missing trailer.
Compose one subject paragraph and an optional body paragraph. Pass a trailer paragraph yourself only for trailers
ai-commit does not generate, such as Co-authored-by: in squash mode. ai-commit merges its trailers into that
paragraph.
ai-commit receives every -m value verbatim and rejects a literal \\n. Write real line breaks inside the quoted
argument, as in the step 4 example.
4. Commit the Transaction
Run:
ai-commit commit <transaction-id> -m '<subject>' [-m '<body>'] [--close <N>]... [--finding <id>]... [--push --rebase]For example, a two-item body is one -m argument containing a physical newline:
ai-commit commit <transaction-id> -m '<subject>' -m '- first material change
- second material change' --close 42 --finding 873d2a01bb9722f8 [--push --rebase]Append --push --rebase when a push is authorized and the Push Destination check passes. ai-commit then rebases a
behind branch onto its fetched upstream only when no Git operation is in progress and the working tree and index are
clean. It aborts a rebase that stops. The same command handles default, --all, and --staged transactions. Never
stage or commit them with direct Git commands.
Transactions are idempotent. After an interruption, lock race, or retryable exit, retry the same transaction ID and message arguments. For those retryable failures, do not prepare a replacement from newer mutable state. A replay recovers or returns the retained receipt without creating a duplicate commit. Never delete an index lock.
For a deterministic content failure proven to precede commit creation, correct the authorized work and supersede the
uncommitted preparation using the recovery reference. This includes snapshot-check hook modified prepared content. An
immutable retry cannot repair content pinned in a failed snapshot. Existing task authority covers this recovery.
Read references/failure-recovery.md before superseding a failed preparation or adding
--no-verify or --no-gpg-sign. Bypass flags are explicit per-attempt recovery options, not first-attempt defaults.
--finding resolves each finding with ai-coord finding resolve --as fixed after the commit and any push, so no
separate resolve command follows a FINDING_RESOLVED line. After FINDING_UNRESOLVED <id> with exit 3, the commit
and push stand. Replay the same command once. If it fails again, report the stderr reason and run the
ai-coord finding resolve command it names.
5. Completion and Receipt
Keep the receipt compact and forward its outcome lines without decoration:
COMMITTED <transaction-id> <commit-oid>proves commit creation or idempotent recovery. It completes local commit work when a push is unauthorized or skipped because no remote exists.HOOK_ADDED <path>identifies content introduced by a hook outside the prepared path set. Disclose every such line.FINDING_RESOLVED <id>proves the ledger finding is resolved with the commit OID.FINDING_UNRESOLVED <id>means the commit stands but the ledger still shows the finding open. Follow the step 4 replay rule.REBASED <branch> <count>discloses thatai-commitrebased the branch onto<count>upstream commits before the push. In the commit workflow, anINTEGRATEDline follows it.PUSHED <branch>orPUSHED_NEW <branch>proves propagation and completes push-authorized or push-only work.PUSH_SKIPPED <branch> no-remotemeans no branch remote or named remotes exist. No fetch, rebase, or push ran. The local commit remains complete, and its receipt is not marked pushed. Do not retry or claim remote publication.PUSHED <transaction-id> <commit-oid>is the retained proof returned when an already-pushed transaction is replayed.INTEGRATED <transaction-id> <head-oid>discloses that the branch no longer contains the transaction's original commit, but HEAD holds its content, for example after a rebase or an identical upstream commit. ThePUSHEDline that follows still completes the work. Cite the head OID as the pushed evidence, not theCOMMITTEDOID.SUPERSEDED <transaction-id> <commit-oid>is safe noncompletion: the branch contains neither the commit nor its content, and nothing was pushed. Inspect the branch. If the change is still needed, discard the transaction and prepare it again.BEHIND <branch> <count>is safe noncompletion, never completion:ai-commitfetched and refused to integrate or push. A precedingCOMMITTEDstill proves the local commit.Without
--rebase, replay the same transaction command with--push --rebase(or runai-commit push --rebasefor push-only work). With--rebase, the stderr line names why the upstream was not integrated. When another Git operation is in progress or the working tree or index is not clean, stop and report that branch reconciliation is required. When the rebase stopped and was aborted, report the conflicting paths and ask the user before resolving them. Never autostash, and never rebase by hand.
Do not report unrelated tree state, ahead/behind counts not emitted by the command, staging narration, or successful hook activity. Add only a required one-line bypass disclosure from the recovery reference.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

