Contributor-First PR Merge
HKUDS/OpenHarness
Merges external GitHub pull requests while keeping the original author credited, and fixes conflicts after the merge instead of rewriting the contribution.
Lands exactly one approved community pull request onto the real release branch with its original authorship preserved, verified green, and posts a thank-you to the contributor.
$ npx skills add codewhale-hq/Codewhale --skill gh-credit-harvest -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install codewhale-hq/Codewhale gh-credit-harvest --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/codewhale-hq/Codewhale.git skills-src && mkdir -p .claude/skills && cp -r skills-src/docs/skills/gh-credit-harvest .claude/skills/gh-credit-harvest && 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 "gh-credit-harvest" agent skill from https://github.com/codewhale-hq/Codewhale/tree/main/docs/skills/gh-credit-harvest into .claude/skills/gh-credit-harvest/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "gh-credit-harvest", 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/codewhale-hq/Codewhale/tree/main/docs/skills/gh-credit-harvestType 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 codewhale-hq/Codewhale --skill gh-credit-harvest -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install codewhale-hq/Codewhale gh-credit-harvest --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/codewhale-hq/Codewhale.git skills-src && mkdir -p .agents/skills && cp -r skills-src/docs/skills/gh-credit-harvest .agents/skills/gh-credit-harvest && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "gh-credit-harvest" agent skill from https://github.com/codewhale-hq/Codewhale/tree/main/docs/skills/gh-credit-harvest into .agents/skills/gh-credit-harvest/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "gh-credit-harvest", 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 codewhale-hq/Codewhale --skill gh-credit-harvest -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install codewhale-hq/Codewhale gh-credit-harvest --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/codewhale-hq/Codewhale.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/docs/skills/gh-credit-harvest .cursor/skills/gh-credit-harvest && 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 "gh-credit-harvest" agent skill from https://github.com/codewhale-hq/Codewhale/tree/main/docs/skills/gh-credit-harvest into .cursor/skills/gh-credit-harvest/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "gh-credit-harvest", 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/codewhale-hq/Codewhale.git --path docs/skills/gh-credit-harvest--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 codewhale-hq/Codewhale --skill gh-credit-harvest -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install codewhale-hq/Codewhale gh-credit-harvest --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/codewhale-hq/Codewhale.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/docs/skills/gh-credit-harvest .gemini/skills/gh-credit-harvest && 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 "gh-credit-harvest" agent skill from https://github.com/codewhale-hq/Codewhale/tree/main/docs/skills/gh-credit-harvest into .gemini/skills/gh-credit-harvest/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "gh-credit-harvest", 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 codewhale-hq/Codewhale gh-credit-harvestInstalls 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 codewhale-hq/Codewhale --skill gh-credit-harvest -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/codewhale-hq/Codewhale.git skills-src && mkdir -p .github/skills && cp -r skills-src/docs/skills/gh-credit-harvest .github/skills/gh-credit-harvest && 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 "gh-credit-harvest" agent skill from https://github.com/codewhale-hq/Codewhale/tree/main/docs/skills/gh-credit-harvest into .github/skills/gh-credit-harvest/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "gh-credit-harvest", 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 codewhale-hq/Codewhale --skill gh-credit-harvest -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install codewhale-hq/Codewhale gh-credit-harvest --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/codewhale-hq/Codewhale.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/docs/skills/gh-credit-harvest .opencode/skills/gh-credit-harvest && 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 "gh-credit-harvest" agent skill from https://github.com/codewhale-hq/Codewhale/tree/main/docs/skills/gh-credit-harvest into .opencode/skills/gh-credit-harvest/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "gh-credit-harvest", 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.
gh-credit-harvestLands exactly one approved community pull request onto the real release branch with its original authorship preserved, verified green, and posts a thank-you to the contributor.
This skill judges a pull request from its code, tests, comments and checks, never its title, and lands it only once a maintainer has already approved landing that specific PR into a release branch that may be local-only; it never merges, closes, tags or publishes on its own, leaving the PR closed by a separate workflow. It starts by switching to the real landing branch named by the maintainer, fetching the PR's head commit and reading its author to preserve, then reviewing the diff, tests, linked issue, comments and CI through the GitHub CLI rather than trusting the title.
Mergeability is tested against the real landing branch rather than the title's main-based flag, which can claim clean even when the release branch conflicts. Cherry-pick is the preferred landing method because it preserves the original author automatically; when a conflict, noise, or the need to squash makes that impractical, the change is re-applied as a narrow slice and committed with an explicit --author and a co-author trailer resolved from the project's AUTHOR_MAP, falling back to a numeric noreply address looked up through the GitHub API.
A specific commit-body line naming the harvested PR and its author is what a separate workflow file matches to auto-close the issue with credit once the commit reaches main. The final step formats the code and runs only the focused tests for the touched crate, landing only once that is green.
7 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 0ea319a. 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:
gitghcargoFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use git and gh, 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.
Credited Community PR Harvest loads about 1.1k tokens when it runs. Until then it costs about 35 tokens; SKILL.md has 451 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 codewhale-hq/Codewhale at commit 0ea319a, republished under its MIT licence (© codewhale-hq). 451 words, ~1,119 tokens.
.claude/skills/gh-credit-harvest/SKILL.md (or your agent's skills folder).Harvest exactly one community PR into the real landing branch with full authorship and machine-readable credit, verified green, then thank the contributor. A PR is evidence: judge it from code, tests, comments, and checks, never the title. Do not merge, close, tag, or publish without maintainer approval — this skill lands a credited commit and posts thanks; the workflow closes the PR.
gh-close-issues).<release-branch>); a main-based "mergeable" flag does not prove it lands cleanly.main) and fetch the PR head:git switch <release-branch>
git fetch origin pull/<N>/head
git log -1 --format='%H %an <%ae>' FETCH_HEAD # author to preservegh pr view <N> --repo codewhale-hq/CodeWhale --json title,author,files,statusCheckRollup
gh pr diff <N> --repo codewhale-hq/CodeWhalegit merge-tree $(git merge-base HEAD FETCH_HEAD) HEAD FETCH_HEAD # empty/clean = no conflictgit cherry-pick <sha> # one or more commits from FETCH_HEAD--author and the co-author from .github/AUTHOR_MAP (fall back to numeric noreply):gh api users/<handle> --jq '"\(.id)+\(.login)@users.noreply.github.com"'
git commit --author="Name <ID+handle@users.noreply.github.com>" -m "fix(scope): what changed (#<N>)" \
-m "Harvested from PR #<N> by @<handle>" \
-m "Co-authored-by: Name <ID+handle@users.noreply.github.com>"Harvested from PR #<N> by @<handle> line in the body is what .github/workflows/auto-close-harvested.yml matches to auto-close with credit once the commit reaches main.cargo fmt --all
cargo test -p <crate> # the crate(s) the PR touched, not the whole workspace
git log -1 --format='%an <%ae>%n%(trailers:key=Co-authored-by)' # credit the human, from .github/AUTHOR_MAPmain:gh pr comment <N> --repo codewhale-hq/CodeWhale \
--body "Thank you @<handle> — clean fix for <the specific bug>. Harvested into the <release-branch> lane with your authorship preserved; it'll auto-close with credit once it reaches main."Shape of a clean harvest: a single-commit PR that cherry-picks with no conflicts needs no manual trailers — the author is preserved automatically — and a focused cargo test -p on the touched crate is enough to land it green.
git merge-tree.--author + trailers when you must..github/AUTHOR_MAP, then numeric noreply; never raw third-party, .local, placeholder, or bot emails.Harvested from PR #<N> by @<handle> body line — without it the PR won't auto-close with credit.gh-close-issues.© codewhale-hq, MIT. 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 docs/skills/gh-credit-harvest of codewhale-hq/Codewhale.
Open the folder on GitHubat commit 0ea319a
Credited Community PR Harvest 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 |
|---|---|---|---|---|---|---|
| Credited Community PR Harvest this skillcodewhale-hq/Codewhale | 41k | — | ~1.1k | Automated safety check: Pass | MIT | |
| Contributor-First PR MergeHKUDS/OpenHarness | 16k | 1 repos | ~847 | Automated safety check: Pass | MIT | |
| Create Pull Requestcline/cline | 70k | 1 repos | ~1.6k | Automated safety check: Pass | Apache-2.0 | |
| Create Pull Request with Work Item IDmakeplane/plane | 61k | — | ~824 | Automated safety check: Pass | AGPL-3.0 | |
| Creating Description For Gh PRredis/jedis | 12k | — | ~838 | Automated safety check: Pass | MIT | |
| Pascal Editor PR Openerpascalorg/editor | 25k | — | ~619 | Automated safety check: Pass | MIT |
HKUDS/OpenHarness
Merges external GitHub pull requests while keeping the original author credited, and fixes conflicts after the merge instead of rewriting the contribution.
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.
makeplane/plane
Opens a pull request for the current branch using the repo's template, a work item ID in the title and a description filled in from the actual diff.
redis/jedis
Generate a clear, concise GitHub PR title and description from the diff between two local git branches, and save it to prDescription.md in the repo root.
pascalorg/editor
Opens or refreshes a pull request on pascalorg/editor from the current branch, describing only what the branch's commits and diff actually contain.
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.
codewhale-hq/Codewhale
Proves a Codewhale change in the real product: a stamped release build, an atomic local install, fresh-shell verification and manual QA that automated gates cannot cover.
codewhale-hq/Codewhale
Writes a paste-ready handoff for the next agent session, opening with a state-check command block and separating done, suspected and blocked work.
codewhale-hq/Codewhale
Decides how verified work should reach main, directly, in a worktree or on an integration branch, while keeping contributor credit and respecting merge gates.
codewhale-hq/Codewhale
Guides when and how to split multi-step coding, research or verification work into focused sub-agent runs while the parent keeps integration and final checks.
codewhale-hq/Codewhale
Triages and manages Codewhale fleet runs and workers with typed commands, classifying failures and choosing a safe restart, resume or escalation.
codewhale-hq/Codewhale
Moves a list of GitHub issues into a milestone or assigns them to owners with the gh CLI, checking each one before and after the change.
Categories
Lands exactly one approved community pull request onto the real release branch with its original authorship preserved, verified green, and posts a thank-you to the contributor. This skill judges a pull request from its code, tests, comments and checks, never its title, and lands it only once a maintainer has already approved landing that specific PR into a release branch that may be local-only; it never merges, closes, tags or publishes on its own, leaving the PR closed by a separate workflow. It starts by switching to the real landing branch named by the maintainer, fetching the PR's head commit and reading its author to preserve, then reviewing the diff, tests, linked issue, comments and CI through the GitHub CLI rather than trusting the title.
Credited Community PR Harvest fits situations like: landing one maintainer-approved community PR into the release branch; preserving a contributor's authorship when cherry-picking their change; re-applying a conflicting PR as a clean slice with correct credit trailers; checking real mergeability against the release branch before harvesting a PR.
Run `npx skills add codewhale-hq/Codewhale --skill gh-credit-harvest -a claude-code`. Or copy the skill folder (docs/skills/gh-credit-harvest in codewhale-hq/Codewhale) into .claude/skills/gh-credit-harvest in your project. Claude Code loads it when a task matches its description.
Run `npx skills add codewhale-hq/Codewhale --skill gh-credit-harvest -a codex`. Or copy the skill folder (docs/skills/gh-credit-harvest in codewhale-hq/Codewhale) into .agents/skills/gh-credit-harvest 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 codewhale-hq/Codewhale --skill gh-credit-harvest -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/gh-credit-harvest, .gemini/skills/gh-credit-harvest, .github/skills/gh-credit-harvest and .opencode/skills/gh-credit-harvest in your project.
Going by SKILL.md and its folder, Credited Community PR Harvest needs the command-line tools its instructions call (git, gh and cargo). Our summary lists: The GitHub CLI (gh); A local checkout with push access to the release branch; The project's AUTHOR_MAP for resolving co-author trailers.
SKILL.md contains no URLs. Its commands use git and gh, 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.
Credited Community PR Harvest is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 1.1k tokens (SKILL.md is roughly 4.5k 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 Credited Community PR Harvest: Contributor-First PR Merge (HKUDS/OpenHarness, 16k stars), Create Pull Request (cline/cline, 70k stars), Create Pull Request with Work Item ID (makeplane/plane, 61k stars) and Creating Description For Gh PR (redis/jedis, 12k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
codewhale-hq (a GitHub organization) maintains it in codewhale-hq/Codewhale, which has 41,082 GitHub stars. The repository holds 63 skills in this directory. The repository was last updated on October 11, 2026.
Source: codewhale-hq/Codewhale on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.