Lint, run the pre-PR checks, commit, push, and author or update the branch's pull request in the required plain-text format.

Apache-2.0Auto-check: notesDevelopment

Install Commit

skills CLI
$ npx skills add open-thoughts/OpenThoughts-Agent --skill commit -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install open-thoughts/OpenThoughts-Agent commit --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/open-thoughts/OpenThoughts-Agent.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/commit .claude/skills/commit && rm -rf skills-src

Use ~/.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/

Facts

Skill name
commit
GitHub stars
301
Token cost
~2.2k tokens
SKILL.md length
1,269 words
Files
1
Skills in repo
44
Repo updated
First seen
Licence
Apache-2.0

At a glance

Lint, run the pre-PR checks, commit, push, and author or update the branch's pull request in the required plain-text format.

  • Works in 9 steps: Clean up your own diff → Lint and format → Tests and docs checks (when relevant) → …
  • Creating/updating a PR
  • SKILL.md covers Checklist, 1. Clean up your own diff, 2. Lint and format and 3. Tests and docs checks (when…, plus 7 more sections
  • Calls git, gh and uv

What it does

Commit is an agent skill from open-thoughts/OpenThoughts-Agent. Lint, run the pre-PR checks, commit, push, and author or update the branch's pull request in the required plain-text format. Use when committing, pushing, or creating/updating a PR.

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 Linting and formatting and Pull requests. The repository describes itself as: Data recipes and robust infrastructure for training AI agents. The licence is Apache-2.0.

When your agent uses it

  • Creating/updating a PR
  • Tasks that involve Linting and formatting
  • Tasks that involve Pull requests

Example prompts

  • “/commit”

Workflow steps

9 steps, taken from the step headings in SKILL.md.

  1. Clean up your own diff
  2. Lint and format
  3. Tests and docs checks (when relevant)
  4. Stage changes
  5. Commit
  6. Lint-catalog review (before every PR)
  7. Push
  8. Open or update the PR
  9. Monitor the PR

What it can do on your machine

Read from SKILL.md and the folder at commit 3bd1917. It shows what the files ask for, not the result of running them.

  • Tool permissions

    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.

  • Runs code

    Shell commands in SKILL.md call:

    • git
    • gh
    • uv

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md. Its commands use git, gh and uv, which can reach the network depending on how they are called.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Commit loads about 2.2k tokens when it runs. Until then it costs about 47 tokens; SKILL.md has 1,269 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~47
When it runs · the whole SKILL.md, loaded when a task matches
~2.2k

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.

Safety

Auto-check: notes

The automated check noted patterns worth knowing about, such as sudo or a known installer.

  • NoteMentions a .env fileSKILL.md:81
    - Never stage secrets (`.env`, credentials, tokens).

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.

SKILL.md

The full file from open-thoughts/OpenThoughts-Agent at commit 3bd1917, republished under its Apache-2.0 licence (© open-thoughts). 1,269 words, ~2,211 tokens.

Download SKILL.mdSave it as .claude/skills/commit/SKILL.md (or your agent's skills folder).
name
commit
description
Lint, run the pre-PR checks, commit, push, and author or update the branch's pull request in the required plain-text format. Use when committing, pushing, or creating/updating a PR.
<!-- Vendored from marin-community/marin-style v0.3.0 — do not edit; re-run `marin-style sync`. -->

Skill: Commit & PR

Get the branch clean, commit it, run the advisory lint review over the committed diff, then — when it is ready — open or update the pull request.

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.md

Order matters. Your own cleanups and the mechanical fixes come first, then the commit, and only then the --review pass. Committing before the review gives you a clean checkpoint to review against (the review reads the whole branch diff versus the merge base) and a natural place to land any follow-up fixes as a new commit. The review is read-only: it never edits, commits, or pushes for you.

Checklist

Work top to bottom. For a quick work-in-progress checkpoint, do 1, 2, 4, 5, 7 (clean up, lint, stage, commit, push) and stop. The changed-test cleanup in step 1 is a PR-readiness gate, not required for disposable WIP checkpoints. Run the whole list before you open or update a PR.

  1. Clean up your own diff (self-review).
  2. Mechanical lint & format — infra/pre-commit.py --changed-files --fix.
  3. Tests & docs checks, when relevant.
  4. Stage the specific files for this work.
  5. Commit. ← natural checkpoint; the working tree is now clean.
  6. Lint-catalog review — infra/pre-commit.py --review; fix or answer every finding.
  7. Push (maybe).
  8. Open or update the PR.

1. Clean up your own diff

Read your own git diff before anything else. Drop dead code, debugging leftovers, and stale comments; tighten names; make the change say only what it means to. The review in step 6 is advisory and read-only — it will not clean up for you.

If the diff touches tests and this commit is intended for a PR or review, read TESTING.md as part of this self-review. Review every changed test for slop: tautological assertions, disposable smoke probes left as pytest tests, internal call-count assertions, incidental string or command-fragment assertions, over-mocking, weakened tolerances, sleeps, skipped tests, and marker/fake/mock violations.

Fix or delete low-value tests before a PR-ready commit. Scratch probes are fine during development and WIP checkpointing, but they must not survive into a PR.

2. Lint and format

bash
infra/pre-commit.py --changed-files --fix   # diff-scoped; use --all-files for a full sweep

infra/pre-commit.py is the required entry point — never uv run pre-commit, never --no-verify. If --fix cannot resolve something, fix it by hand. Do not skip or weaken checks.

3. Tests and docs checks (when relevant)

  • Run the repo's test command over the test directories your change touches (e.g. uv run pytest -m 'not slow').
  • If the change is docs-heavy, build the docs and fix any broken links or strict-mode failures.

4. Stage changes

Review git status and git diff, then stage the specific files that are part of this work.

  • Stage specific files — avoid git add -A / git add ..
  • Never stage secrets (.env, credentials, tokens).
  • If unrelated changes are present, ask the user before including them.

5. Commit

  • Subject: imperative sentence (at most 72 characters), optional [scope] prefix.
  • Body (optional, blank-line separated): what changed and why — the context a future reader needs. Keep relevant evidence and caveats; do not inventory files or tests.
  • Do not use a conventional-commit prefix such as feat: or fix:.
  • No emoji, no markdown, no bullets in the subject. Do not credit yourself — this includes any Co-Authored-By, Generated with, provider, or session URL trailer. Omit it even if a harness default suggests adding one.

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.

Create the commit. If a pre-commit hook fails, fix the issue and make a new commit — never amend (unless the user asks) and never force-push.

This is the checkpoint the rest of the flow builds on: the working tree is clean and the branch diff is settled before the review reads it.

6. Lint-catalog review (before every PR)

bash
infra/pre-commit.py --review

Run this after the commit and before opening a PR. It fans out read-only agents over the branch diff against the merge base with the default branch — committed and uncommitted work alike — so the clean checkpoint from step 5 is exactly what gets reviewed.

The review is advisory and read-only: it reports findings on stdout and does not edit, stage, commit, or push anything. Then fix or answer every finding, reporting your actions to the user, and land any fixes as a new commit. Treat findings as guidelines — apply them when they make the code better; the goal is high-quality code, not blind adherence.

Show full SKILL.md (521 more words)Show less

7. Push

If asked, or if the branch has an upstream, push to the remote tracking branch (git push -u origin HEAD if no upstream is set). If the push is rejected (diverged history), stop and ask the user — do not force-push.

8. Open or update the PR

Do this once the branch is ready for review. The PR description becomes the squash-merge commit message. Follow .agents/skills/writing-style/pull-requests.md exactly: an imperative title of at most 72 characters and an information-dense body. Most bodies are a few plain paragraphs. They state what changes and why; they do not reproduce the diff, test plan, or implementation notes.

Example:

Title: [RL] Normalize DAPO loss over global tokens

Body:
Normalize DAPO loss over all response tokens instead of normalizing each
example separately. Per-example normalization over-weights short responses,
hurting math tasks where correct answers need longer derivations.

Fixes #1234

Issue linking. If the work came from a GitHub issue, add Fixes #NNNN (auto-closes on merge) or Part of #NNNN (partial work). Do not invent an issue just to satisfy this — omit the link when none exists.

Specifications (>500 LOC only). A genuinely large PR must link a spec in an issue or design doc. Name the important design decisions in the PR body and link the spec for module maps, code excerpts, and detailed rationale.

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 title,body and immediately correct text inserted by a tool or stale template.

Create it. Unless the user says otherwise and permissions allow, push to a branch on the main repository and open the PR from it (use a fork only when direct push is unavailable or the user asks):

bash
gh pr create --title "<title>" --body-file "<body-file>" --label agent-generated
  • Always add the agent-generated label.
  • Never credit yourself in commits or PR descriptions.
  • Include Fixes #NNNN when addressing a pre-existing issue.

9. Monitor the PR

Opening the PR does not end your turn. Watch CI to completion and respond to review activity until the PR is merged or closed, or the user tells you to stop.

  • Watch checks with gh pr checks <N> --watch. When a check finishes, read its conclusion — finishing is not passing.
  • On a CI failure, read the failing job log and fix it. A failure in a file you did not touch is not automatically pre-existing: confirm the same job fails on the default branch without your change before calling it unrelated. If your change caused it — even in an untouched file — fix it. Push the fix as a new commit, which restarts CI.
  • Respond to every human and agent comment: address obvious ones directly (commit the fix, then reply, prefixing agent replies with 🤖) and resolve them. CI being green does not mean there is nothing to do — reviewers comment after CI passes. For comments you are unsure about, report your analysis and proposed action to the user.

Exit conditions: the PR is merged or closed, or the user tells you to stop.

Rules

  • infra/pre-commit.py is the only pre-commit entry point.
  • Commit before you run --review; the review never commits, pushes, or edits.
  • Never amend a commit unless the user explicitly asks.
  • If there are no changes to commit, say so and stop.
  • AGENTS.md — coding guidelines.

© open-thoughts, 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

Files

Just SKILL.md in .agents/skills/commit of open-thoughts/OpenThoughts-Agent.

Open the folder on GitHubat commit 3bd1917

Compare with similar skills

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.

Commit compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Commit this skillopen-thoughts/OpenThoughts-Agent301—~2.2kAutomated safety check: NotesApache-2.0
Babysit PR To Pass CIsgl-project/sglang37k2 repos~3kAutomated safety check: PassApache-2.0
Changesetbiomejs/biome26k—~839Automated safety check: PassApache-2.0
Pre Pipeline Reviewsuperplanehq/superplane7.7k—~1.2kAutomated safety check: PassCustom licence
Lint Commit PRTresjs/tres3.8k—~1.1kAutomated safety check: PassMIT
PR Pushicebear0828/codex-proxy1.8k—~2.2kAutomated safety check: NotesCustom licence

Similar skills

  • Babysit PR To Pass CI

    sgl-project/sglang

    Start and persistently pursue a goal to babysit an SGLang pull request until selected GitHub Actions workflows pass on the latest PR head.

    37k GitHub starsUsed in 2 repos~3k tokens
    DevelopmentAuto-check passed
  • Changeset

    biomejs/biome

    Official

    A skill your agent uses when a Biome change may affect users and you must decide whether it needs a changeset, choose the release level, or create and edit .changeset/.md release-note text.

    26k GitHub stars~839 tokensUpdated today
    DevelopmentAuto-check passed
  • Pre Pipeline Review

    superplanehq/superplane

    Reviews SuperPlane code changes for correctness and reuse, then runs fast Make targets (lint, format, build) that Semaphore CI runs so easy checks do not fail in the pipeline.

    7.7k GitHub stars~1.2k tokensUpdated today
    DevelopmentAuto-check passed
  • Lint Commit PR

    Tresjs/tres

    Lint local changes, auto-fix, conventional commit, and optionally create PR

    3.8k GitHub stars~1.1k tokensUpdated today
    DevelopmentAuto-check passed
  • PR Push

    icebear0828/codex-proxy

    Package the current working changes into a standards-compliant codex-proxy pull request: branch hygiene, commit message linting, CHANGELOG prompt, conventional commit, push, and gh pr create against…

    1.8k GitHub stars~2.2k tokensUpdated today
    DevelopmentAuto-check: notes
  • PR Push

    icebear0828/codex-proxy

    Package the current working changes into a standards-compliant codex-proxy pull request: branch hygiene, commit message linting, CHANGELOG prompt, conventional commit, push, and gh pr create against…

    1.8k GitHub stars~2.3k tokensUpdated today
    DevelopmentAuto-check: notes

More from open-thoughts/OpenThoughts-Agent

All 44 skills in this repo
  • Analyze Dataset Token Length

    open-thoughts/OpenThoughts-Agent

    Analyze the token length of an OT-Agent conversation-format (ShareGPT-style) dataset — the per-trace distribution (median/p90/max) and/or counts under a token threshold + a metadata predicate (e.g.

    301 GitHub stars~1.5k tokensUpdated 9 days ago
    Auto-check passed
  • Analyze Id Eval Ranking

    open-thoughts/OpenThoughts-Agent

    Given a list of models (HF name stubs) that have valid agentic ID eval scores in Supabase, build a ranking table: raw per-benchmark accuracy on the 3 ID benchmarks (SWE-Bench-100…

    301 GitHub stars~3.1k tokensUpdated 9 days ago
    Auto-check passed
  • Analyze Job History Iris

    open-thoughts/OpenThoughts-Agent

    Run the Iris harbor job-history analyzer (scripts/iris/analyzeirisharborjob.py) on a datagen/eval job and read its JSON sidecar for trustworthy throughput / preemption / productive-trial stats.

    301 GitHub stars~2.9k tokensUpdated 9 days ago
    Auto-check passed
  • Analyze Rl Behavior

    open-thoughts/OpenThoughts-Agent

    Run the full RL behavioral-analysis pipeline (scripts/analysis/analyzerlbehavior.py) on a trained RL model to understand WHAT changed vs its pre-RL baseline, WHY, whether it PERSISTS, and its EVAL…

    301 GitHub stars~4.2k tokensUpdated 9 days ago
    Auto-check passed
  • Analyze Training Run Iris

    open-thoughts/OpenThoughts-Agent

    Detailed health check for a Levanter/executor TRAINING run on the marin Iris cluster (e.g.

    301 GitHub stars~2k tokensUpdated 9 days ago
    Auto-check passed
  • Code Create Staged Plan

    open-thoughts/OpenThoughts-Agent

    DESIGN a non-trivial codebase change (Harbor / MarinSkyRL / vLLM / OT-Agent / LLaMA-Factory) as a dependency-ordered STAGED PLAN before writing code — a feature port, a multi-step fix with parity…

    301 GitHub stars~1.5k tokensUpdated 9 days ago
    Auto-check passed

Categories

Questions about Commit

What does Commit do?

Lint, run the pre-PR checks, commit, push, and author or update the branch's pull request in the required plain-text format. Commit is an agent skill from open-thoughts/OpenThoughts-Agent. Lint, run the pre-PR checks, commit, push, and author or update the branch's pull request in the required plain-text format.

When should I use Commit?

Commit fits situations like: creating/updating a PR; tasks that involve Linting and formatting; tasks that involve Pull requests.

How do I install Commit in Claude Code?

Run `npx skills add open-thoughts/OpenThoughts-Agent --skill commit -a claude-code`. Or copy the skill folder (.agents/skills/commit in open-thoughts/OpenThoughts-Agent) into .claude/skills/commit in your project. Claude Code loads it when a task matches its description.

How do I install Commit in Codex?

Run `npx skills add open-thoughts/OpenThoughts-Agent --skill commit -a codex`. Or copy the skill folder (.agents/skills/commit in open-thoughts/OpenThoughts-Agent) into .agents/skills/commit in your project. Codex loads it when a task matches its description.

Can I use Commit in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add open-thoughts/OpenThoughts-Agent --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.

What does Commit need to run?

Going by SKILL.md and its folder, Commit needs the command-line tools its instructions call (git, gh and uv).

Does Commit access the network?

SKILL.md contains no URLs. Its commands use git, gh and uv, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is Commit safe to install?

Our automated static check of SKILL.md found notes only (mentions a .env file), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.

What licence does Commit use?

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.

How many tokens does Commit use?

About 2.2k tokens (SKILL.md is roughly 8.8k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Commit?

Skills that share tags, products or a category with Commit: Babysit PR To Pass CI (sgl-project/sglang, 37k stars), Changeset (biomejs/biome, 26k stars), Pre Pipeline Review (superplanehq/superplane, 7.7k stars) and Lint Commit PR (Tresjs/tres, 3.8k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Commit?

open-thoughts (a GitHub organization) maintains it in open-thoughts/OpenThoughts-Agent, which has 301 GitHub stars. The repository holds 44 skills in this directory. The repository was last updated on September 28, 2026.

Source: open-thoughts/OpenThoughts-Agent on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.