Survey open CodeWhale PRs and triage each for mergeability and disposition against the real landing branch.
59
67%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
View guide
Low
Low-risk findings worth noting
Fix and improve this skill with Tessl
tessl review fix ./docs/skills/gh-find-prs/SKILL.mdSurvey the open PR queue and assign each PR a disposition — backed by code, tests, and checks, never by title — testing real mergeability against the actual release branch (often local-only, e.g. <release-branch>), not the main-based GitHub flag.
This is read-and-recommend. You do NOT merge, close, tag, or publish. You surface evidence and a proposed disposition; the maintainer approves.
Inventory the queue. One call, structured:
gh pr list --repo Hmbown/CodeWhale --state open \
--json number,title,author,headRefName,baseRefName,isDraft,mergeStateStatus,statusCheckRollupNote mergeStateStatus (CLEAN / BLOCKED / DIRTY / UNKNOWN) but treat it as a hint only — it is computed against main, and the real landing target is usually a different branch.
Identify the real landing branch. The release head is frequently local-only:
git branch --list 'codex/v0.8*' 'codex/v0.9*'
git log --oneline -1 <release-branch>Use that ref, not main, for every mergeability test below.
Read each candidate from code, not title. For every non-trivial PR:
gh pr view <N> --repo Hmbown/CodeWhale \
--json files,additions,deletions,statusCheckRollup,body,comments
gh pr diff <N> --repo Hmbown/CodeWhaleRead the diff. A "fix(exec): ..." can be a no-op or a regression; a "chore" can be the real fix. Judge the change, the tests it adds, and any review comments.
Decode check failures — distinguish trivial from real. In statusCheckRollup, find each conclusion: FAILURE and read its job. CodeWhale's CI jobs are Lint, Test (ubuntu-latest|macos-latest|windows-latest), Version drift, gate (Contribution gate), npm wrapper smoke, Mobile runtime smoke, Documentation, GitGuardian Security Checks.
Lint failure that is only cargo fmt drift is trivial — harvestable, fix on landing with cargo fmt --all.Test (...) or clippy under Lint is real — read the log before trusting it.Version drift failing on a community PR is expected (they bumped, or didn't); not a blocker for harvest.cargo fmt --all -- --check && cargo clippy --workspace --all-targetsTest-merge against the real release head. The mergeStateStatus flag lies for local branches. Probe the actual merge:
git merge-tree --write-tree --messages <release-branch> origin/pr/<N> # if PR ref is fetched
git merge-tree --write-tree --messages <release-branch> <pr-head-sha>Exit 0 and no CONFLICT lines → clean against the release branch (DIRECT-MERGE candidate even when GitHub shows BLOCKED/DIRTY). Conflicts printed → HARVEST or DEFER. This is read-only; it writes objects to the object store, not to any branch or working tree.
Assign a disposition with required credit. Per PR, recommend exactly one:
merge-tree is clean against the release head. Land via cherry-pick to preserve the original author automatically.Co-authored-by: Name <email>
Harvested-from: PR #<N> by @handleHarvested-from: trailer lets the auto-close-at-main workflow close the PR with credit once the change reaches main.Report, don't act. Output a compact table: PR | author | landing-branch verdict | check summary | disposition | credit line. Stop there for maintainer approval.
mergeStateStatus for the real target. CLEAN/BLOCKED/DIRTY are vs main; always confirm with git merge-tree <release> <pr-head>.Lint red is harvestable; a failing Test (...) is not — read the log.Co-authored-by: + Harvested-from:; every cherry-pick keeps the original author. No silent reimplementation.git merge-tree --write-tree is the only "write" allowed — it touches the object store only.f018d3e
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.