Finishing a Development Branch
obra/superpowers
Walks the last step of a branch: confirm tests pass, detect the git environment, ask how to integrate, carry out your choice and clean up the worktree.
Use only when a change is ready to commit, push, or open or update its pull request; do not activate during implementation.
$ npx skills add marin-community/marin --skill commit -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install marin-community/marin commit --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/marin-community/marin.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/commit .claude/skills/commit && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "commit" agent skill from https://github.com/marin-community/marin/tree/main/.agents/skills/commit into .claude/skills/commit/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "commit", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/marin-community/marin/tree/main/.agents/skills/commitType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add marin-community/marin --skill commit -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install marin-community/marin commit --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/marin-community/marin.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.agents/skills/commit .agents/skills/commit && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "commit" agent skill from https://github.com/marin-community/marin/tree/main/.agents/skills/commit into .agents/skills/commit/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "commit", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add marin-community/marin --skill commit -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install marin-community/marin commit --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/marin-community/marin.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.agents/skills/commit .cursor/skills/commit && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "commit" agent skill from https://github.com/marin-community/marin/tree/main/.agents/skills/commit into .cursor/skills/commit/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "commit", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/marin-community/marin.git --path .agents/skills/commit--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add marin-community/marin --skill commit -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install marin-community/marin commit --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/marin-community/marin.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.agents/skills/commit .gemini/skills/commit && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "commit" agent skill from https://github.com/marin-community/marin/tree/main/.agents/skills/commit into .gemini/skills/commit/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "commit", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install marin-community/marin commitInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add marin-community/marin --skill commit -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/marin-community/marin.git skills-src && mkdir -p .github/skills && cp -r skills-src/.agents/skills/commit .github/skills/commit && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "commit" agent skill from https://github.com/marin-community/marin/tree/main/.agents/skills/commit into .github/skills/commit/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "commit", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add marin-community/marin --skill commit -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install marin-community/marin commit --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/marin-community/marin.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.agents/skills/commit .opencode/skills/commit && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "commit" agent skill from https://github.com/marin-community/marin/tree/main/.agents/skills/commit into .opencode/skills/commit/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "commit", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
commitUse only when a change is ready to commit, push, or open or update its pull request; do not activate during implementation.
Commit is an agent skill from marin-community/marin. Use only when a change is ready to commit, push, or open or update its pull request; do not activate during implementation.
Its SKILL.md is about 2.2k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in Development, covering Pull requests. It works with Git. The repository describes itself as: Open-source framework for the research and development of foundation models. The licence is Apache-2.0.
9 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit be1f5f1. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
uvghgitFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use uv, gh and git, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Commit loads about 2.2k tokens when it runs. Until then it costs about 33 tokens; SKILL.md has 1,219 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from marin-community/marin at commit be1f5f1, republished under its Apache-2.0 licence (© marin-community). 1,219 words, ~2,221 tokens.
.claude/skills/commit/SKILL.md (or your agent's skills folder).Before authoring a commit or PR title or body, read:
.agents/skills/writing-style/SKILL.md.agents/skills/writing-style/pull-requests.md.agents/skills/writing-style/ai-writing-donts.mdClean and validate the diff, commit it, run the advisory review over the committed branch, push, update the PR, then monitor it. A WIP checkpoint may stop after clean-up, lint, staging, commit, and push.
Read the complete branch diff and remove dead code, weak tests, stale prose, debugging artifacts, and unrelated changes.
If the diff touches tests and this commit is intended for a PR or review, read
root TESTING.md and the relevant module-specific AGENTS.md or testing docs
as part of this self-review. Apply TESTING.md's behavioral-value gate to every
changed test. Delete disposable probes and low-value tests before a PR-ready
commit.
./infra/pre-commit.py --changed-files --fix # diff-scoped; use --all-files for a full sweepThis is the required entry point; do not substitute uv run pre-commit, skip
hooks, or weaken checks.
uv run --no-project infra/ci/run_tests.py to run affected safe unit tests.
Do not override the repository's default marker expression.uv run python infra/check_docs_source_links.py.uv run mkdocs build --strict.Review git status and git diff, then stage only this task's explicit files.
Never stage secrets or unrelated work.
Follow writing-style/pull-requests.md for the commit subject and body.
Review the exact message before committing. After the commit, inspect it with
git show -s --format='%s%n%n%b' HEAD; do not push if a tool added attribution,
a session trailer, or other text that was not in the reviewed message.
If a hook fails, fix the issue and create a new commit. Do not amend unless the user asks.
If there are no changes to commit, say so and stop.
./infra/pre-commit.py --review --agent-command='<your headless CLI>'Run this after the initial commit and before publishing the PR. It reviews the
whole branch diff against the merge base, including uncommitted work. Resolve
every finding and put fixes in a new commit. Inspect the matching infra/lint
rule and apply findings when they improve the change.
The advisory review is read-only: it does not edit, stage, commit, or push.
Do not recursively rerun --review after small, targeted touch-ups made in
response to its findings. Validate behavioral edits with the normal mechanical
checks and relevant tests. For a formatter-only mechanical edit, rerun formatting
and lint checks only. Rerun the advisory review only when the follow-up materially
changes the branch's implementation approach or scope, or when the user asks for
another pass.
Artifacts are written under /tmp/marin-linter/<branch>/<timestamp>-<uniq>/.
Push when requested or when the branch has an upstream. Use
git push -u origin HEAD when needed. Stop on rejection; do not force-push
without explicit authorization.
The PR body becomes the squash-merge commit message. Follow
.agents/skills/writing-style/pull-requests.md.
Add Fixes #NNNN or Part of #NNNN only when an existing issue applies.
Inspect the payload. Draft the body in a uniquely named temporary file and
use --body-file. Re-open that file and apply the final compression pass before
publishing. After creating or editing the PR, fetch the
exact title,body with gh pr view --json and immediately correct text inserted
by a tool or stale template.
Push to the main repository unless direct access is unavailable or the user asks for a fork:
gh pr create --title "<title>" --body-file "<body-file>" \
--label agent-generated --label agentic-lintagent-generated label.agentic-lint only after step 6 ran and every finding was fixed or answered.
The label records that lint pass; without it, CI launches a Loom lint review.Fixes #NNNN when addressing a pre-existing issue.Green CI is not an exit condition. Monitor every PR until it merges or closes, the user tells you to stop, or a 12-hour wait times out.
Before the first wait, read every current issue comment, inline review comment, and submitted review once, then address anything actionable. This is a one-time inspection, not a monitoring loop. The comment and review arms establish a baseline when they start and wake only for later new or edited feedback.
If Loom is available, set one honest status immediately before waiting:
loom status set --tag ok --message "waiting for PR #<N> events"Do not refresh that status while nothing changes. Invoke one wait_for.py
process in the foreground and keep it attached until it exits:
uv run scripts/ci/wait_for.py --timeout 12h \
"github.ci <N>" "github.pr <N>" \
"github.pr_comment <N>" "github.review <N>"The command's --timeout 12h is the only timeout. Do not background or detach
the process, wrap it in a shell timeout, or give the command runner or agent a
shorter deadline. A tool reporting that the command is still running does not
end the foreground wait. Give the process handle back to the runtime's blocking
wait/resume facility and continue waiting for that same process to exit. Repeat
the blocking resume as often as the execution interface requires.
github.pr covers terminal merged/closed state, merge conflicts,
ready-for-review transitions, and review-decision changes. It does not inspect
comment or review bodies, so it does not replace github.pr_comment or
github.review. Keep all three arms. Monitoring must not use a raw poll shell
expression, gh pr checks --watch, or repeated gh pr view calls.
The wait owns its exponential backoff. While it is running:
wait_for.py;The command prints one JSON object and exits: 0 means an arm fired, 2 means
the overall timeout elapsed, and 1 means the wait failed. An event is not
always a successful verdict. Read result.conclusion for github.ci and
result.reasons for github.pr.
Act on the event, read any feedback that arrived concurrently, then re-arm:
github.ci — on failure, read the failing job log and fix the
regression. A failure in an untouched file is not automatically
pre-existing: confirm the same job fails on main independently before
treating it as unrelated. Once CI finishes, omit github.ci from the next
wait because its terminal result would fire immediately. Add it back after a
push starts a new run.github.pr — merged and closed are terminal. Resolve conflicted
before re-arming; an unchanged conflict is intentionally reported again by a
fresh wait. ready_for_review and review_decision describe review-state
changes in the attached snapshots. When review_decision fires, inspect the
submitted review because the lifecycle payload does not include its body.github.pr_comment / github.review — address every actionable human
and agent comment. Prefix agent-authored replies with 🤖 and resolve the
thread. The default significant-comment filter ignores the authenticated
user's comments, review-bot progress placeholders, clean verdicts, wrappers,
Loom's exact Working on this in loom: <session URL> acknowledgement, and
Loom access-control replies addressed to a bot.Re-arm after every non-terminal event. Once CI finishes, omit github.ci so its
terminal result does not fire immediately; keep github.pr,
github.pr_comment, and github.review armed for later feedback. Read current
feedback once before each re-arm so simultaneous events are not absorbed into a
new baseline without being handled.
A question requiring user input pauses monitoring: raise attention, ask the
question, and resume after the answer. Otherwise the only exit conditions are a
merged or closed PR, an explicit request to stop, or a 12-hour timeout.
© marin-community, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in .agents/skills/commit of marin-community/marin.
Open the folder on GitHubat commit be1f5f1
Commit next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Commit this skillmarin-community/marin | 3.9k | — | ~2.2k | Automated safety check: Pass | Apache-2.0 | |
| Finishing a Development Branchobra/superpowers | 296k | 5 repos | ~1.9k | Automated safety check: Pass | MIT | |
| Understand Diff AnalysisEgonex-AI/Understand-Anything | 86k | 1 repos | ~1.4k | Automated safety check: Pass | MIT | |
| Contributor-First PR MergeHKUDS/OpenHarness | 16k | 1 repos | ~847 | Automated safety check: Pass | MIT | |
| Open Code Review CLIalibaba/open-code-review | 44k | — | ~3.1k | Automated safety check: Pass | Apache-2.0 | |
| Create Pull Requestcline/cline | 70k | 1 repos | ~1.6k | Automated safety check: Pass | Apache-2.0 |
obra/superpowers
Walks the last step of a branch: confirm tests pass, detect the git environment, ask how to integrate, carry out your choice and clean up the worktree.
Egonex-AI/Understand-Anything
Reads your git changes or a pull request against a prebuilt knowledge graph of the project to explain what changed, which components are affected and what is risky.
HKUDS/OpenHarness
Merges external GitHub pull requests while keeping the original author credited, and fixes conflicts after the merge instead of rewriting the contribution.
alibaba/open-code-review
Runs the ocr command-line tool to review Git changes, a commit or a branch comparison with an AI model, returning line-level comments and optionally applying fixes.
cline/cline
Opens a GitHub pull request from your current branch with the gh CLI, after reviewing the commits and diff and gathering the details the PR needs.
openinterpreter/openinterpreter
Rewrites the title and body of one or more pull requests with gh, leading with why the change was made, then what changed, and describing only the net result.
marin-community/marin
Deslop, simplify, or review low-value tests and prose only when explicitly requested for a branch or diff.
marin-community/marin
Use Iris to submit, inspect, debug, monitor, or recover jobs and tasks; diagnose scheduling and federation; deploy controllers; or reserve dev GPUs and TPUs.
marin-community/marin
Define, validate, submit, or restart a Marin SkyRL experiment through its artifact main.
marin-community/marin
Build, validate, publish, update, inspect, query, roll back, or archive a dynamic Marina applet.
marin-community/marin
Query Finelog logs and telemetry for Iris tasks, workers, profiles, training, vLLM, and cross-cluster forwarding.
marin-community/marin
Run a read-only preview for a specified Marin infra/pulumi stack and trace each pending resource change to merged pull requests since its latest successful update when that update records a clean…
Works with
Categories
Use only when a change is ready to commit, push, or open or update its pull request; do not activate during implementation. Commit is an agent skill from marin-community/marin. Use only when a change is ready to commit, push, or open or update its pull request; do not activate during implementation.
Commit fits situations like: tasks that involve Pull requests.
Run `npx skills add marin-community/marin --skill commit -a claude-code`. Or copy the skill folder (.agents/skills/commit in marin-community/marin) into .claude/skills/commit in your project. Claude Code loads it when a task matches its description.
Run `npx skills add marin-community/marin --skill commit -a codex`. Or copy the skill folder (.agents/skills/commit in marin-community/marin) into .agents/skills/commit in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add marin-community/marin --skill commit -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/commit, .gemini/skills/commit, .github/skills/commit and .opencode/skills/commit in your project.
Going by SKILL.md and its folder, Commit needs the command-line tools its instructions call (uv, gh and git). Our summary lists: Python 3.
SKILL.md contains no URLs. Its commands use uv, gh and git, which can reach the network depending on how they are called. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Commit is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.2k tokens (SKILL.md is roughly 8.9k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Commit: Finishing a Development Branch (obra/superpowers, 296k stars), Understand Diff Analysis (Egonex-AI/Understand-Anything, 86k stars), Contributor-First PR Merge (HKUDS/OpenHarness, 16k stars) and Open Code Review CLI (alibaba/open-code-review, 44k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
marin-community (a GitHub organization) maintains it in marin-community/marin, which has 3,902 GitHub stars. The repository holds 41 skills in this directory. The repository was last updated on October 8, 2026.
Source: marin-community/marin on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.