commit-push
Skill4 starsChanged 5 days agoMITView on GitHub
Commit or push one focused, inspected Git change set with an emoji Conventional Commit message and verified remote delivery. Use for explicit commit-and-push requests or pushing existing local commits to non-CNB remotes. cnb.cool remotes and CNB MR delivery are out of scope; hand them to a CNB-specific delivery skill, or stop and say so if none is available. Excludes PR/MR, force-push, merge, rebase, tag, release, and deploy workflows.
- Commits and pushes
19 other projects use a version of this.
Adopted by
Most recently taken up by
- Ssoulisack/claude-skillstheir own version, first seen Oct 15, 2026
- Diego-Romero/claude-skillstheir own version, first seen Oct 13, 2026
- drewmerc302/claude-skillstheir own version, first seen Oct 13, 2026
- Nucleify/Nucleifytheir own version, first seen Oct 8, 2026
- Eatgrapes/WinIslandtheir own version, first seen Oct 8, 2026
- anyproto/anytype-tstheir own version, first seen Oct 8, 2026
Used with
Projects with it also use open-pr.
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.
Google CloudSkillopen-pr
Commits local changes to a new Git branch and opens a GitHub pull request through the configured GitHub MCP server. Use when proposing code changes in a new pull request. Don't use for local-only commits without a remote GitHub repository.
Also in 3 projects that use this
Other versions19 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 19
- anyproto/anytype-ts★ 9.1ksame name
- Eatgrapes/WinIsland★ 405same name
- Nucleify/Nucleify★ 171same name
- DataCovey/nornweave★ 30same name
- tykisgod/quick-question★ 12same name
- Mitscherlich/skills★ 3same name
- wzh4464/claude-skills★ 3same name
- d-gangz/dgang-skills★ 2same name
- gtapps/skills★ 2same name
- ernesto27/skills★ 1same name
9 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 repository43 other files it gives its agents.
- CLAUDE.mdCLAUDE.md
- llms.txtllms.txt
- agent-symlink-initSkill
- code-inspector-initSkill
- commitSkill
- copywritingSkill
- css-tailwind-stylingSkill
- lingui-best-practicesSkill
- lingui-workflowSkill
- repo-skill-creatorSkill
- weekly-reportSkill
- agent-dispatchSkill
- agentic-review-handoffSkill
- agent-practice-auditSkill
- agent-symlink-initSkill
- architecture-hardening-loopSkill
- ardot-mcpSkill
- branch-creatorSkill
- chrome-dev-mcpSkill
- code-inspector-initSkill
- code-plugin-architectureSkill
- commitSkill
- decision-first-technical-writingSkill
- design-systemSkill
- desktop-agent-activitySkill
- dev-environment-roi-auditSkill
- disk-tidySkill
- figma-mcpSkill
- file-tidySkill
- goal-gateSkill
- grill-autopilotSkill
- kimi-computer-useSkill
- lingui-workflowSkill
- local-web-surfaceSkill
- open-code-review-loopSkill
- prompt-studioSkill
- review-prompt-composerSkill
- task-completion-loopSkill
- uxc-facadeSkill
- web-performance-auditSkill
- weekly-reportSkill
- workflow-gateSkill
- worktree-tidySkill
The file
Show its rules and text
We split this skill into the rules it gives an agent
25 rules. 0 are common, 19 are distinctive, and 6 are very specific to this project.
0
Common
Most of the 16 edited versions we read keep these.
19
Distinctive
This author's own choices. Worth a look.
6
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- could be automatic: a setting could enforce it
- Distinctive: line 10
Create one focused local commit from staged changes or a clearly identified local change set, push the current branch, and verify the …
- Distinctive: line 26
Stop if the directory is not a Git repository.
- Distinctive: line 30
If staged changes already exist and the user did not name a different scope, use only the staged changes.
- Very specific: line 32
If there are no staged changes but there is exactly one clear unstaged or untracked file, inspect that file first, then stage it with git …
- Very specific: line 33
If there are no staged changes and the user named specific files, or the current agent turn just produced a clearly related set of files …
- Very specific: line 34
If there are no staged changes and the unstaged/untracked files look ambiguous, unrelated, or broader than the active task, stop and ask …
- Distinctive: line 35
If there are no staged, unstaged, or untracked changes, inspect the branch relation.
- Very specific: line 39
Use exact pathspecs with git add -- <path> or git add -- <path1> <path2>.
- Very specific: line 40
Before staging unstaged files, inspect the relevant diff with git diff -- <path>.
- Distinctive: line 41
If a path or diff suggests secrets, credentials, cookies, private keys, local env files, certificates, or private user data, stop and ask …
- Distinctive: line 42
If the selected scope contains multiple unrelated concerns, stop and ask whether to split the commit.
- Distinctive: line 43
Before staging any unstaged or untracked candidate, read references/ignore-gate.md.
- Distinctive: line 45
After staging or when staged changes already existed, use git diff --cached --stat and git diff --cached to understand exactly what will be …
- Distinctive: line 51
Stop before committing or pushing when:
- Distinctive: line 60
If the branch has no upstream, plan to push with:
- Very specific: line 72
Verify the exact remote URL and destination before a first upstream push.
- Distinctive: line 76
Run the smallest relevant checks for the change when practical.
- Distinctive: line 78
Do not claim behavior is verified from code reading alone.
- Distinctive: line 80
After the target is verified and before creating a new local commit, run the planned push as a preflight:
- Distinctive: line 100
Use a HEREDOC-style commit command so emoji and multiline bodies are handled safely:
- Distinctive: line 109
Keep the commit focused. If staged changes contain multiple unrelated concerns, stop and ask whether to split the commit.
- Distinctive: line 115
Never force-push unless the user explicitly asked for force push and the repository state has been inspected immediately before doing so.
- Distinctive: line 132
commit hash and subject
- Distinctive: line 138
If the repo uses a generated index or validation workflow, mention the commands that were run and their result.
- Distinctive: line 142
Do not create PRs/MRs, merge branches, rebase (beyond the single non-fast-forward recovery in step 5), tag, release, deploy, land changes, …
“Common” is measured: kept by at least 6 in 10 of the 16 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
Commit Push
Create one focused local commit from staged changes or a clearly identified local change set, push the current branch, and verify the branch is no longer ahead of its upstream.
This skill has remote side effects. Treat the push as the boundary that needs explicit state checks, conservative defaults, and clear final reporting.
An explicit $commit-push invocation or an unambiguous request to commit and push authorizes one focused commit and one normal push to the inspected current branch/upstream, including main or master. Do not ask for a second protected-branch confirmation. This authorization never covers a different target, a broader change set, force-push, or any workflow listed under Boundaries.
Workflow
1. Inspect repository state
Run:
git status --short --branchStop if the directory is not a Git repository.
Determine the commit scope:
- If staged changes already exist and the user did not name a different scope, use only the staged changes. Do not automatically add remaining unstaged changes; report them at the end if they remain.
- If staged changes already exist but the user explicitly authorized a different unstaged/untracked scope, stop before staging, committing, or pushing. Report the mismatch and ask the user to choose or split the index; do not commit the existing index, add the new scope, or silently unstage user work.
- If there are no staged changes but there is exactly one clear unstaged or untracked file, inspect that file first, then stage it with
git add -- <path>when it is safe. - If there are no staged changes and the user named specific files, or the current agent turn just produced a clearly related set of files with no unrelated dirty files, inspect those paths and stage them with
git add -- <path>.... - If there are no staged changes and the unstaged/untracked files look ambiguous, unrelated, or broader than the active task, stop and ask which files to stage. Provide exact
git add -- <path>suggestions. - If there are no staged, unstaged, or untracked changes, inspect the branch relation. Push already-inspected expected commits when the branch is ahead; otherwise report that there is nothing to commit or push.
Automatic staging boundaries:
- Use exact pathspecs with
git add -- <path>orgit add -- <path1> <path2>. Do not use baregit add .orgit add -Aunless the user explicitly asked to commit all changes. - Before staging unstaged files, inspect the relevant diff with
git diff -- <path>; for untracked files, inspect the path and content type as needed. - If a path or diff suggests secrets, credentials, cookies, private keys, local env files, certificates, or private user data, stop and ask before staging or committing.
- If the selected scope contains multiple unrelated concerns, stop and ask whether to split the commit.
- Before staging any unstaged or untracked candidate, read references/ignore-gate.md. It defines the required ignore, commit, ask, tracked-secret, and user-reporting branches.
After staging or when staged changes already existed, use git diff --cached --stat and git diff --cached to understand exactly what will be committed.
2. Check push safety
Identify the current branch and upstream from git status --short --branch.
Stop before committing or pushing when:
- the staged diff includes secrets, credentials, local env files, private keys, or generated files that look accidental (these should have been caught by the Ignore vs Commit gate — unstage and fix
.gitignorebefore continuing) - the staged diff contains unrelated work or is broader than the inspected, authorized scope; ask the user to choose or split the staged scope rather than silently unstaging their work
- the selected scope, current branch, upstream, or remote target is ambiguous, missing, or different from what the user authorized
- the user asked for PR/MR creation, release work, deployment, merge, rebase, or tag creation
An unrelated unstaged change is not by itself a blocker when the staged scope is already unambiguous and inspected. Leave it untouched and report it at the end.
If the branch has no upstream, plan to push with:
git push -u origin <branch>Otherwise use:
git pushVerify the exact remote URL and destination before a first upstream push. Do not invent a remote or assume that origin is correct when it is absent or unexpected.
3. Verify before committing
Run the smallest relevant checks for the change when practical. Prefer project-specific commands from local docs or package scripts. If verification is skipped or blocked, say so before committing and include the reason in the final report.
Do not claim behavior is verified from code reading alone.
After the target is verified and before creating a new local commit, run the planned push as a preflight:
git push --dry-run
# or, for a verified first upstream:
git push --dry-run -u origin <branch>If the preflight is rejected only because the remote is ahead (non-fast-forward), the remote was reached: create the commit and let step 5 recover. If it fails for any other reason, do not create the commit; report UNVERIFIED: push preflight failed with the relevant error. A successful dry-run proves only that the preflight passed. It never proves delivery.
4. Commit
Generate an emoji-prefixed Conventional Commit subject from the staged diff:
<emoji> <type>(optional-scope): <subject>Common mappings: ✨ feat, 🐛 fix, 📝 docs, 🎨 style, ♻️ refactor, ⚡️ perf, ✅ test, 🏗️ build, 👷 ci, and 🔧 chore.
Use a HEREDOC-style commit command so emoji and multiline bodies are handled safely:
git commit -m "$(cat <<'EOF'
✨ feat(scope): concise subject
EOF
)"Keep the commit focused. If staged changes contain multiple unrelated concerns, stop and ask whether to split the commit.
5. Push
After a successful commit, or when the branch already contains inspected expected commits to deliver, run the planned real push once. If it is rejected only because the remote is ahead (non-fast-forward) and the worktree is clean, run git pull --rebase once and retry the push once. On a rebase conflict, run git rebase --abort and stop. On any other failure or a dirty worktree, stop: do not retry, duplicate the commit, rewrite history further, or report delivery success. Report the exact failing command, the relevant error line, and the remaining ahead state, then suggest the smallest safe next step.
Never force-push unless the user explicitly asked for force push and the repository state has been inspected immediately before doing so.
6. Verify after push
Run:
git status --short --branch
git log -1 --onelineSuccess requires both the real git push to exit successfully and git status --short --branch to show no [ahead N]. A dry-run, successful local commit, schedule state, or missing ahead marker without a successful real push is not delivery proof. If the command still shows ahead commits, do not report the push as complete.
Final Report
Report only the useful facts:
- commit hash and subject
- branch and push target
- verification commands and outcomes
- any remaining uncommitted files, skipped checks, or risks
- any Ignore vs Commit actions: what was ignored, why, and whether
.gitignorechanged
If the repo uses a generated index or validation workflow, mention the commands that were run and their result.
Boundaries
Do not create PRs/MRs, merge branches, rebase (beyond the single non-fast-forward recovery in step 5), tag, release, deploy, land changes, or handle QA gates as part of this skill. Those are separate delivery workflows.
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.

