Codex Merge PR
tbhb/vale-ai-tells
Squash merge a pull request. An agent skill from tbhb/vale-ai-tells.
Open a GitHub pull request for RLinf, or fix an existing one — checks the PR title against Conventional Commits, writes a precise description that follows .github/PULLREQUESTTEMPLATE.md, and lints…
$ npx skills add RLinf/RLinf --skill create-pr -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install RLinf/RLinf create-pr --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/RLinf/RLinf.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/create-pr .claude/skills/create-pr && 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 "create-pr" agent skill from https://github.com/RLinf/RLinf/tree/main/.agents/skills/create-pr into .claude/skills/create-pr/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "create-pr", 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/RLinf/RLinf/tree/main/.agents/skills/create-prType 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 RLinf/RLinf --skill create-pr -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install RLinf/RLinf create-pr --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/RLinf/RLinf.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.agents/skills/create-pr .agents/skills/create-pr && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "create-pr" agent skill from https://github.com/RLinf/RLinf/tree/main/.agents/skills/create-pr into .agents/skills/create-pr/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "create-pr", 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 RLinf/RLinf --skill create-pr -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install RLinf/RLinf create-pr --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/RLinf/RLinf.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.agents/skills/create-pr .cursor/skills/create-pr && 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 "create-pr" agent skill from https://github.com/RLinf/RLinf/tree/main/.agents/skills/create-pr into .cursor/skills/create-pr/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "create-pr", 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/RLinf/RLinf.git --path .agents/skills/create-pr--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 RLinf/RLinf --skill create-pr -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install RLinf/RLinf create-pr --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/RLinf/RLinf.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.agents/skills/create-pr .gemini/skills/create-pr && 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 "create-pr" agent skill from https://github.com/RLinf/RLinf/tree/main/.agents/skills/create-pr into .gemini/skills/create-pr/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "create-pr", 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 RLinf/RLinf create-prInstalls 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 RLinf/RLinf --skill create-pr -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/RLinf/RLinf.git skills-src && mkdir -p .github/skills && cp -r skills-src/.agents/skills/create-pr .github/skills/create-pr && 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 "create-pr" agent skill from https://github.com/RLinf/RLinf/tree/main/.agents/skills/create-pr into .github/skills/create-pr/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "create-pr", 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 RLinf/RLinf --skill create-pr -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install RLinf/RLinf create-pr --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/RLinf/RLinf.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.agents/skills/create-pr .opencode/skills/create-pr && 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 "create-pr" agent skill from https://github.com/RLinf/RLinf/tree/main/.agents/skills/create-pr into .opencode/skills/create-pr/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "create-pr", 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.
create-prOpen a GitHub pull request for RLinf, or fix an existing one — checks the PR title against Conventional Commits, writes a precise description that follows .github/PULLREQUESTTEMPLATE.md, and lints…
Create PR is an agent skill from RLinf/RLinf. Open a GitHub pull request for RLinf, or fix an existing one — checks the PR title against Conventional Commits, writes a precise description that follows .github/PULLREQUESTTEMPLATE.md, and lints both before pushing. Use when asked to create/open/submit a PR, write or rewrite a PR description, or fix a PR title or body.
Its SKILL.md is about 2.2k tokens, which your agent loads only when the skill is triggered. The skill folder holds 1 other file (for example `lint_pr.py`).
It sits in Development, covering Pull requests, Linting and formatting and Commit messages. It works with GitHub. The repository describes itself as: RLinf: Reinforcement Learning Infrastructure for Embodied and Agentic AI. The licence is Apache-2.0.
5 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit c70606f. 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.
Ships script files (Python), which the agent can run.
Shell commands in SKILL.md call:
python3ghgitFrom the folder's file list and the shell code blocks in SKILL.md.
Links to these hosts (documentation or services it may open):
github.comFrom 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.
Create PR loads about 2.2k tokens when it runs. Until then it costs about 84 tokens; SKILL.md has 1,116 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 RLinf/RLinf at commit c70606f, republished under its Apache-2.0 licence (© RLinf). 1,116 words, ~2,224 tokens.
.claude/skills/create-pr/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.Write the title and the description, then run the linter before you post:
python3 .agents/skills/create-pr/lint_pr.py lint \
--title "fix(libero): reset action queues between episodes" \
--body-file /tmp/pr-body.mdExit code 1 means at least one ERROR — fix it and re-run. It is the same checker you point at a PR that is already open:
python3 .agents/skills/create-pr/lint_pr.py lint --pr 1444The rules come from CONTRIBUTING.md ("PR Title and
Description"), .github/PULL_REQUEST_TEMPLATE.md,
and — for the title — the required pr-title-check job, which runs
openGemini/pr-title-checker
with strict: true. Every title rule that job enforces is an ERROR in the
linter, so a clean lint means the check passes. Paths below are relative to
the repo root.
Over the 25 most recently merged PRs the linter reports errors on 11 of
them. The dominant failures, in order: template sections dropped (14),
Types of changes / Checklist with nothing ticked (9), template
<!--- ... --> hints left in (9), prose above the first heading (5). PR
#1421 is the worst case — the whole
body was pasted with a two-space indent, which nests every ### heading inside
the Description and breaks the results table outright.
Never describe the PR from memory of what you intended. Read the diff:
git fetch origin main
git log --oneline origin/main..HEAD
git diff --stat origin/main...HEADYou need, concretely:
pre-commit run --all-files. "Tested locally" is not an answer.<type>(<scope>): <description>feat fix docs style refactor test chore perf
build ci revert. Lowercase. On main the distribution is roughly
feat 166 / fix 122 / docs 76 / chore 18 / refactor 14.embodiment, libero,
realworld, readme, docker, collective, openpi_pytorch. Optional;
drop it rather than invent one. [a-z0-9_-] only — a space, slash, dot or
capital fails CI. feat(new) (PR #1421) passes CI but is the anti-pattern
the linter warns on: it names the PR, not the code.: , not
the whole title. This is the rule PRs fail most often. It must start with a
lowercase a-z (so support 5D parallelism, never 5D parallelism support), stay imperative, carry no trailing period, and use plain ASCII —
π₀ in a title fails the check.
add MolmoAct2 LIBERO evaluation support, not Added support for MolmoAct2.(#123) — GitHub adds it at squash-merge.Fitting 50 characters is the whole discipline of the title: name the one change
a reviewer needs to see in the PR list, and let the body carry the rest. If the
PR does several things, title it after the largest and enumerate in
Description.
Check just the title, no body needed:
python3 .agents/skills/create-pr/lint_pr.py lint --title "feat(new): add stuff."Start from the skeleton so no section goes missing:
python3 .agents/skills/create-pr/lint_pr.py template > /tmp/pr-body.mdThen fill it in. Keep all six headings, even where a section is one line. What each one is for:
| Section | What goes in it |
|---|---|
Description | One sentence on what changed and where, then a bullet per user-visible change. ≤ 250 words, ≤ 12 bullets. |
Motivation and Context | Why the change is needed. Link the issue (Fixes #NNN). |
How has this been tested? | The command you ran and its outcome. Required by CONTRIBUTING.md when the PR can move the reward curve — give the numbers. |
Additional information | Figures, logs, repro commands. May be empty. |
Types of changes | Tick what applies. One or two boxes, not four. |
Checklist: | Tick what applies. CONTRIBUTING.md: a PR with an empty Description or Checklist is marked draft and not reviewed. |
Style rules the linter enforces:
<!--- ... --> hints once a section is written.### heading — put it in Description.python3 .agents/skills/create-pr/lint_pr.py lint \
--title "$TITLE" --body-file /tmp/pr-body.mdAdd --docs-only for a documentation-only PR to drop the "how was this tested"
warning. Add --quiet to omit the suggested fixes. Once it exits 0:
gh pr create --base main --title "$TITLE" --body-file /tmp/pr-body.mdCommits must be signed off (git commit -s) and follow the same
<type>(<scope>): <description> format — DCO checks the trailer, so make sure
your name is not wrapped in quotes.
python3 .agents/skills/create-pr/lint_pr.py lint --pr 1421For the indent/wrap damage specifically, fix rewrites the body: it strips the
paste offset (preserving genuine list nesting), pulls headings and tables flush
left, and drops the template hints. --unwrap additionally joins hard-wrapped
prose into one line per paragraph.
python3 .agents/skills/create-pr/lint_pr.py fix --pr 1421 --unwrap > /tmp/fixed.md
python3 .agents/skills/create-pr/lint_pr.py lint --title "$TITLE" --body-file /tmp/fixed.md
gh pr edit 1421 --body-file /tmp/fixed.md
gh pr edit 1421 --title "feat(embodiment): add MolmoAct2 LIBERO evaluation support"fix only de-indents a body the linter already flagged, so running it on a
well-formed PR is a no-op apart from comment removal. Read the output before
posting it — it is a mechanical rewrite, not an editor.
lint --pr N shells out to gh pr view, so it inherits your gh auth
and the repo you are standing in. It is read-only; nothing is posted until
you run gh pr edit / gh pr create yourself.template fails its own lint — deliberately. It ships
with no boxes ticked, and checkbox-unticked is an ERROR. Tick them.## as well as ### for section headings, because
GitHub renders both. What it will not accept is a renamed section: a body
using ## Testing instead of ### How has this been tested? reports
section-missing.body-hardwrap, body-comments
and title-scope-vague are judgement calls — but a reviewer reads them the
same way the linter does.fix cannot recover a broken code fence. If body-fence fires (odd
number of ```), everything after the stray fence has been swallowed
by GitHub's renderer; find it and close it by hand.<details> still need flush-left rows. The <details>
wrapper does not exempt them.commit-check and
pr-title-check are different jobs with different limits — commit subjects
get ~72 characters, PR descriptions get 50. A one-commit PR that reuses its
subject verbatim can fail.error: gh pr view N failed: ... could not resolve to a PullRequest — wrong
repo. cd to the RLinf checkout, or pass the number of a PR in this repo.[E] body/body-indented persists after fix — the body mixes two paste
offsets (e.g. part typed, part pasted). Dedent by hand; fix only removes a
single uniform offset.[W] body/section-order — you kept all the headings but reordered them.
Harmless, but reviewers scan for the template order.lint --title alone reports 0 error(s) on an empty body — that is correct,
it only checks what you gave it. Pass --body-file too before you create.© RLinf, 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
SKILL.md and 1 other file in .agents/skills/create-pr of RLinf/RLinf.
Open the folder on GitHubat commit c70606f
Create PR 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 |
|---|---|---|---|---|---|---|
| Create PR this skillRLinf/RLinf | 5.4k | — | ~2.2k | Automated safety check: Pass | Apache-2.0 | |
| Codex Merge PRtbhb/vale-ai-tells | 115 | — | ~3k | Automated safety check: Pass | MIT | |
| Merge PRtbhb/vale-ai-tells | 115 | — | ~3k | Automated safety check: Pass | Apache-2.0 | |
| Development Workflowkid-sid/claude-spellbook | 189 | — | ~3.2k | Automated safety check: Pass | MIT | |
| PR Finalize Reviewmicrosoft/garnet | 12k | — | ~3.1k | Automated safety check: Pass | MIT | |
| React Router Pull Request Creatorremix-run/react-router | 57k | — | ~2.5k | Automated safety check: Pass | MIT |
tbhb/vale-ai-tells
Squash merge a pull request. An agent skill from tbhb/vale-ai-tells.
tbhb/vale-ai-tells
Squash merge a pull request. An agent skill from tbhb/vale-ai-tells.
kid-sid/claude-spellbook
A skill your agent uses when choosing a branching strategy, writing a commit message, opening or reviewing a pull request, setting up commit linting, or tagging a versioned release.
microsoft/garnet
Checks that a pull request's title and description match its implementation and reviews the code for Garnet best practices, reporting findings without posting them.
remix-run/react-router
Packages finished React Router work into a draft pull request: branch, commit, push, a written PR body and the right GitHub labels.
verdaccio/verdaccio
Takes a change through a verdaccio pull request: branch, local checks, changeset, title and body, labels, CI and review rounds, and ports to other release lines.
RLinf/RLinf
Adds example documentation for a new model or environment in RLinf (RST pages in the docs gallery for both English and Chinese).
RLinf/RLinf
Adds a new publication page to the RLinf Sphinx docs (EN + ZH) and wires it into the Publications index/toctree.
RLinf/RLinf
Cross-check RLinf documentation against code, natural explanation flow, and other docs, including English-Chinese parity.
RLinf/RLinf
Check, fix, or extend requirements/install.sh and its docker/Dockerfile coverage when adding a new embodied model or environment in RLinf, so the install logic reuses common utilities, keeps system…
RLinf/RLinf
Test that requirements/install.sh works for an embodied model/env by building its venv and running the matching CI e2e test.
RLinf/RLinf
Adds install command in install script, Docker build stage in Dockerfile, and CI jobs for docker build and embodied e2e test when introducing a new model or environment in RLinf.
Works with
Categories
Open a GitHub pull request for RLinf, or fix an existing one — checks the PR title against Conventional Commits, writes a precise description that follows .github/PULLREQUESTTEMPLATE.md, and lints…. Create PR is an agent skill from RLinf/RLinf.md, and lints both before pushing.
Create PR fits situations like: asked to create/open/submit a PR; rewrite a PR description.
Run `npx skills add RLinf/RLinf --skill create-pr -a claude-code`. Or copy the skill folder (.agents/skills/create-pr in RLinf/RLinf) into .claude/skills/create-pr in your project. Claude Code loads it when a task matches its description.
Run `npx skills add RLinf/RLinf --skill create-pr -a codex`. Or copy the skill folder (.agents/skills/create-pr in RLinf/RLinf) into .agents/skills/create-pr 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 RLinf/RLinf --skill create-pr -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/create-pr, .gemini/skills/create-pr, .github/skills/create-pr and .opencode/skills/create-pr in your project.
Going by SKILL.md and its folder, Create PR needs Python for the scripts in its folder and the command-line tools its instructions call (python3, gh and git). Our summary lists: Python 3; Docker.
SKILL.md names 1 domain. As links in the text: github.com. 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.
Create PR 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 Create PR: Codex Merge PR (tbhb/vale-ai-tells, 115 stars), Merge PR (tbhb/vale-ai-tells, 115 stars), Development Workflow (kid-sid/claude-spellbook, 189 stars) and PR Finalize Review (microsoft/garnet, 12k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
RLinf (a GitHub organization) maintains it in RLinf/RLinf, which has 5,447 GitHub stars. The repository holds 9 skills in this directory. The repository was last updated on October 2, 2026.
Source: RLinf/RLinf on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.