Open a pull request for the current changes, then watch it to green — poll CI and the Greptile review together, addressing review findings as soon as they post instead of waiting for the full…

AGPL-3.0Auto-check passedDevelopment

Install Create PR

skills CLI
$ npx skills add beyonders-studio/initiative --skill create-pr -a claude-code

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

GitHub CLI
$ gh skill install beyonders-studio/initiative create-pr --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/beyonders-studio/initiative.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/create-pr .claude/skills/create-pr && 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
create-pr
GitHub stars
170
Token cost
~2.7k tokens
SKILL.md length
1,369 words
Files
1
Skills in repo
2
Repo updated
First seen
Licence
AGPL-3.0

At a glance

Open a pull request for the current changes, then watch it to green — poll CI and the Greptile review together, addressing review findings as soon as they post instead of waiting for the full…

  • Works in 7 steps: Pre-flight — get the change into shape → Branch, commit, push → Open the PR → …
  • The user says make a PR
  • SKILL.md covers 1. Pre-flight — get the change…, 2. Branch, commit, push, 3. Open the PR and 4. Watch CI and Greptile…, plus 4 more sections
  • Calls gh and git

What it does

Create PR is an agent skill from beyonders-studio/initiative. Open a pull request for the current changes, then watch it to green — poll CI and the Greptile review together, addressing review findings as soon as they post instead of waiting for the full rollup, fixing failures and re-reviewing until confidence is high. Use when the user says "make a PR", "open a pull request", "ship this", or asks to watch a PR's CI / review status.

Its SKILL.md is about 2.7k 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 and Code review. It works with FastAPI, React, Python and TypeScript. The repository describes itself as: Self-hosted shared workspace for communities — live collaboration on tasks, documents, calendars, dashboards and more in one place. Project management that starts simple and… The licence is AGPL-3.0.

When your agent uses it

  • The user says make a PR
  • Open a pull request
  • Asks to watch a PRs CI / review status

Example prompts

  • “make a PR”
  • “open a pull request”
  • “ship this”
  • “/create-pr”

Requirements

  • Python 3

Workflow steps

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

  1. Pre-flight — get the change into shape
  2. Branch, commit, push
  3. Open the PR
  4. Watch CI and Greptile together
  5. Handle a Greptile round
  6. Handle a CI failure
  7. Report

What it can do on your machine

Read from SKILL.md and the folder at commit 164ccee. 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:

    • gh
    • git

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

  • Network

    No URLs in SKILL.md. Its commands use 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.

  • 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

Create PR loads about 2.7k tokens when it runs. Until then it costs about 96 tokens; SKILL.md has 1,369 words of instructions outside code blocks.

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

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 passed

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.

SKILL.md

The full file from beyonders-studio/initiative at commit 164ccee, republished under its AGPL-3.0 licence (© beyonders-studio). 1,369 words, ~2,729 tokens.

Download SKILL.mdSave it as .claude/skills/create-pr/SKILL.md (or your agent's skills folder).
name
create-pr
description
Open a pull request for the current changes, then watch it to green — poll CI and the Greptile review together, addressing review findings as soon as they post instead of waiting for the full rollup, fixing failures and re-reviewing until confidence is high. Use when the user says "make a PR", "open a pull request", "ship this", or asks to watch a PR's CI / review status.
user-invocable
true

/create-pr — Open a PR and babysit it to green

Create a pull request for the working changes, then stay with it: watch CI and the Greptile review at the same time, fix whatever lands first, and keep looping until every check is green and the review is clean (or the user tells you to stop). Greptile's feedback almost always arrives before CI finishes — address it then, rather than sitting on it until the rollup completes.

Repo rules that this skill must honor (from CLAUDE.md):

  • PRs target dev, never main.
  • Commit subjects are imperative, ≤50 chars. Never add Co-Authored-By trailers or mention coding agents.
  • Update CHANGELOG.md before opening the PR for any user-facing feature, fix, or breaking change (skip for pure internal refactors). New changes go under ## [Unreleased], never under an already-released version.

1. Pre-flight — get the change into shape

  1. git status and git diff --stat to see what's staged/unstaged. If there are no changes at all, stop and tell the user.
  2. Run the quality gates for what changed (don't run the whole world if only one side changed):
    • scripts/ci/check: the fast checks CI runs, by the same script CI calls (ruff, ruff format, ty, frozen migrations and one Alembic head, biome, tsc, and generated-types / env-contract.json drift), for what the branch changed against origin/dev. No database, no tests; seconds. When codegen fails, read why before committing anything:
      • "it differs from what is committed": it has regenerated the files. Review the diff and commit it.
      • "uncommitted changes, which regenerating would overwrite": it stopped before generating. Commit or discard those changes and run it again.
      • anything else (a missing .venv or node_modules, an export error): nothing was regenerated. Fix that and run it again.
    • Tests for what changed: cd backend && ./scripts/test-changed.sh and cd frontend && ./scripts/test-changed.sh. Fix anything that fails before opening the PR — a red gate locally will be red in CI, and a CI round-trip on this repo costs up to ~26 minutes. Never push a speculative fix hoping CI will validate it; reproduce it locally first.
  3. If the change is user-facing, add a concise CHANGELOG.md entry under ## [Unreleased] in the right subsection (Added / Changed / Fixed / Security).

2. Branch, commit, push

  1. Determine the current branch (git branch --show-current). If it is dev or main, create a fresh feature branch off it: git checkout -b <type>/<short-kebab-summary> (e.g. fix/…, feat/…). If already on a feature branch, keep using it.
  2. Stage the intended files explicitly and commit. Imperative subject ≤50 chars; add a body explaining the why. No Co-Authored-By, no agent mentions. A pre-commit hook (lint-staged/biome) may run — let it.
  3. git push -u origin <branch>. The husky pre-push hook runs scripts/ci/check again for what the branch changed; if it fails, fix and push again rather than skipping it with --no-verify.

3. Open the PR

Create it against dev with a structured body:

bash
gh pr create --base dev --title "<imperative title>" --body "$(cat <<'EOF'
## Problem
<what was wrong / what this enables>

## Changes
- <bullet per notable change, link files as [name](path)>

## Testing
- <exact commands you ran and their result>

Fixes #<issue>   # only if it closes an issue
EOF
)"

Capture the PR number from the returned URL.

4. Watch CI and Greptile together

Greptile usually posts its first review while CI is still running, and CI failures usually surface one job at a time. Do not wait for the whole rollup to finish before reading review feedback — watch both signals in one loop and act on whichever lands first.

Snapshot what you have already seen, then wait for the next event:

bash
REPO=$(gh repo view --json nameWithOwner -q .nameWithOwner)
PR=$(gh pr view --json number -q .number)

# Baseline: the newest Greptile review id we've already read (0 if none yet).
seen_review() {
  gh api "repos/$REPO/pulls/$PR/reviews" \
    --jq '[.[] | select(.user.login|test("greptile";"i")) | .id] | max // 0'
}
SEEN=$(seen_review)
START=$(date +%s)

# Wait for: a new Greptile review, a failed check, or everything green.
while :; do
  FAILED=$(gh pr view "$PR" --json statusCheckRollup \
    -q '[.statusCheckRollup[] | select(.conclusion=="FAILURE" or .conclusion=="TIMED_OUT") | .name] | join(", ")')
  PENDING=$(gh pr view "$PR" --json statusCheckRollup \
    -q '[.statusCheckRollup[] | select(.status!="COMPLETED")] | length')
  NOW=$(seen_review)
  if [ "$NOW" != "$SEEN" ]; then echo "EVENT=greptile review=$NOW"; break; fi
  if [ -n "$FAILED" ];       then echo "EVENT=ci-failure jobs=$FAILED"; break; fi
  if [ "$PENDING" -eq 0 ];   then echo "EVENT=ci-green"; break; fi
  echo "waiting: $PENDING check(s) pending, $(( $(date +%s) - START ))s elapsed"
  sleep 30
done

Run this in the background (run_in_background: true). A full backend run takes up to ~26 minutes, and the Bash tool caps a foreground call at 600000ms (10 min) — a blocking wait cannot cover one cycle, and blocking the session for 26 minutes would be wrong even if it could. Background it, do the Greptile work while it runs, and read its output when it breaks.

Each time it breaks, handle the event (§5 or §6) and then re-enter this loop with SEEN updated to the review you just read. The loop is only finished when EVENT=ci-green and the Greptile bar in §5 is met.

Batching pushes. A push cancels the in-flight run and restarts it from zero, so never push once per finding — collect a whole Greptile round (plus any CI failure already visible) into one commit and push once.

Given the timings, the usual call is easy: Greptile posts within a minute or two, when the backend job has barely started, so push the batch as soon as it's ready — you're discarding two minutes of a run that was testing the pre-fix commit anyway, and the fixed code's results arrive ~26 minutes from the push either way. Waiting for the current run to finish first just adds its remaining time to that.

Hold the push only when the run is nearly done and its result would change what you commit — you're minutes from learning about failures you'd want to fold into the same batch.

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

5. Handle a Greptile round

Read the review body and the inline findings:

bash
gh api "repos/$REPO/pulls/$PR/reviews" \
  --jq '.[] | select(.user.login|test("greptile";"i")) | {id, submitted_at, body}'
gh api "repos/$REPO/pulls/$PR/comments" --jq '.[] | {path, line, body}'

For each finding, judge whether it's a real issue in scope for this PR.

  • In scope + valid → fix it (edit, commit with the rest of the batch, push).
  • Out of scope / false positive → reply briefly saying why; don't fix.

After pushing a round of fixes, ask for a re-review:

bash
gh pr comment "$PR" --body "@greptile"

Then go back to §4's loop (with SEEN set to the review you just handled) — the re-review and any still-running CI are waited on together, not in sequence.

Aim for 5/5 confidence. Accept 4/5 only if the remaining findings are genuinely out of scope for this PR.

6. Handle a CI failure

The CI workflow's jobs on this repo include Backend Lint & Tests, Frontend Lint & Tests, and Check Generated Types. When a job concludes FAILURE:

  1. Pull its log: gh run view --job <jobId> --log-failed | tail -80 (get <jobId> from the detailsUrl in the rollup, or gh run view <runId> --json jobs).
  2. Reproduce and fix locally. Common repo-specific gotchas:
    • Locale keys: locale-keys.test.ts requires every en key be mirrored in de/es/fr. Add new keys to all four locale files.
    • Generated types: if backend schemas changed, regenerate per CLAUDE.md (Orval) and commit the output.
  3. Other jobs may still be running — fix the one you have while they finish. If a second job fails while you're working, fold that fix into the same commit.
  4. Commit, push, and re-enter §4's loop.

Frontend Lint & Tests and Check Generated Types report in a few minutes; Backend Lint & Tests is the long pole. Detect Changes picks its mode from the diff (CLAUDE.md, "Which backend tests a pull request runs"):

  • every test (the ~26-minute case) for a change test selection cannot see: under backend/, alembic/, app/db/, app/testing/, app/core/capabilities.py, app/core/config.py, conftest.py, pytest.ini, pyproject.toml, uv.lock, scripts/ci/ and non-Python files under app/; and .github/workflows/ci.yml or .github/actions/setup-backend/. The changes job in ci.yml holds the list, and wins if this one drifts;
  • the always-run core plus the tests the change reaches for an ordinary backend change;
  • only the always-run core when nothing in backend/ changed but more than documentation did. If you touch one of the every-test paths, expect the long run and plan the batch around it. A documentation-only PR skips the job.

7. Report

Summarize for the user:

  • PR URL and number.
  • Final check status (table: check → pass/fail).
  • Greptile confidence score and any findings you intentionally left unaddressed (with the reason).
  • mergeStateStatus — if it's BLOCKED only on REVIEW_REQUIRED, say so: all automated gates are green and it's waiting on a human approval (@jordandrako / @LeeJMorel), which this skill cannot self-approve.

Notes on pacing

  • Budget the real numbers. Backend Lint & Tests runs up to ~60 minutes on a full-suite PR; the frontend and generated-types jobs land in a few. Greptile typically posts within the first minute or two. The §4 loop exists so those 60 minutes aren't dead time.
  • A 30s poll is right for a run of this length; anything tighter just burns API calls. Always background the loop — a foreground Bash call maxes out at 10 minutes, less than half a backend cycle.
  • Tell the user the expected wait when you start watching, and don't go silent: report each event as you handle it rather than only at the end.
  • Don't re-run local gates you already ran this session just because you're pushing again; run the ones the new edits actually touch.
  • Never fabricate a check result — only report statuses you actually read from gh.

© beyonders-studio, AGPL-3.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 .claude/skills/create-pr of beyonders-studio/initiative.

Open the folder on GitHubat commit 164ccee

Compare with similar skills

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.

Create PR compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Create PR this skillbeyonders-studio/initiative170—~2.7kAutomated safety check: PassAGPL-3.0
Code Review Skillawesome-skills/code-review-skill2.1k—~2.8kAutomated safety check: NotesMIT
Code Reviewerjewbetcha/opentrace1162 repos~1.1kAutomated safety check: NotesMIT
Coding Agentmastra-ai/mastra29k—~2.3kAutomated safety check: PassCustom licence
Code Reviewnteract/semiotic2.7k—~1.5kAutomated safety check: PassApache-2.0
Code Review SkillRain-kl/OpenFlare288—~2.3kAutomated safety check: NotesMIT

Similar skills

  • Code Review Skill

    awesome-skills/code-review-skill

    Provides comprehensive code review guidance for React 19, Vue 3, Angular 17+, Svelte 5, Rust, TypeScript, Java, Java 8, PHP, Ruby, Rails, Python, Django, FastAPI, Go, C/.NET, Kotlin, Swift, Dart…

    2.1k GitHub stars~2.8k tokensUpdated 29 days ago
    DevelopmentAuto-check: notes
  • Code Reviewer

    jewbetcha/opentrace

    Comprehensive code review skill for TypeScript, JavaScript, Python, Swift, Kotlin, Go.

    116 GitHub starsUsed in 2 repos~1.1k tokens
    DevelopmentAuto-check: notes
  • Coding Agent

    mastra-ai/mastra

    Authoring playbook for building agents that write, edit, review, or refactor code.

    29k GitHub stars~2.3k tokensUpdated today
    DevelopmentAuto-check passed
  • Code Review

    nteract/semiotic

    Review Semiotic pull requests for behavioral bugs, regressions, contract drift, and missing evidence.

    2.7k GitHub stars~1.5k tokensUpdated yesterday
    DevelopmentAuto-check passed
  • Code Review Skill

    Rain-kl/OpenFlare

    Provides comprehensive code review guidance for React 19, Vue 3, Angular 17+, Svelte 5, Rust, TypeScript, Java, PHP, Python, Django, Go, C/.NET, Kotlin, Swift, NestJS, C/C++, and more.

    288 GitHub stars~2.3k tokensUpdated today
    DevelopmentAuto-check: notes
  • Expert code reviewer for TypeScript + React 19 applications.

    114 GitHub stars~1.7k tokensUpdated 6 mo ago
    DevelopmentAuto-check passed

More from beyonders-studio/initiative

  • Write Docs

    beyonders-studio/initiative

    Write or edit the Initiative help center under docs/en/ — the house voice, the structural rules, and how to build and check the site.

    170 GitHub stars~3.8k tokensUpdated today
    Auto-check passed

Categories

Questions about Create PR

What does Create PR do?

Open a pull request for the current changes, then watch it to green — poll CI and the Greptile review together, addressing review findings as soon as they post instead of waiting for the full…. Create PR is an agent skill from beyonders-studio/initiative. Open a pull request for the current changes, then watch it to green — poll CI and the Greptile review together, addressing review findings as soon as they post instead of waiting for the full rollup, fixing failures and re-reviewing until confidence is high.

When should I use Create PR?

Create PR fits situations like: the user says make a PR; open a pull request; asks to watch a PRs CI / review status.

How do I install Create PR in Claude Code?

Run `npx skills add beyonders-studio/initiative --skill create-pr -a claude-code`. Or copy the skill folder (.claude/skills/create-pr in beyonders-studio/initiative) into .claude/skills/create-pr in your project. Claude Code loads it when a task matches its description.

How do I install Create PR in Codex?

Run `npx skills add beyonders-studio/initiative --skill create-pr -a codex`. Or copy the skill folder (.claude/skills/create-pr in beyonders-studio/initiative) into .agents/skills/create-pr in your project. Codex loads it when a task matches its description.

Can I use Create PR 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 beyonders-studio/initiative --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.

What does Create PR need to run?

Going by SKILL.md and its folder, Create PR needs the command-line tools its instructions call (gh and git). Our summary lists: Python 3.

Does Create PR access the network?

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

Is Create PR safe to install?

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.

What licence does Create PR use?

Create PR is published under the AGPL-3.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Create PR use?

About 2.7k tokens (SKILL.md is roughly 11k 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 Create PR?

Skills that share tags, products or a category with Create PR: Code Review Skill (awesome-skills/code-review-skill, 2.1k stars), Code Reviewer (jewbetcha/opentrace, 116 stars), Coding Agent (mastra-ai/mastra, 29k stars) and Code Review (nteract/semiotic, 2.7k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Create PR?

beyonders-studio (a GitHub organization) maintains it in beyonders-studio/initiative, which has 170 GitHub stars. The repository holds 2 skills in this directory. The repository was last updated on October 7, 2026.

Source: beyonders-studio/initiative on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.