Finishing a Development Branch
obra/superpowers
Walks the last step of a branch: confirm tests pass, detect the git environment, ask how to integrate, carry out your choice and clean up the worktree.
Review an incoming pull request that comes from someone else's fork of os8088 - fetch it, merge main into it, review it with a team of agents for memory safety, lost-from-main regressions, redraw…
$ npx skills add jggonz/os8088 --skill review-fork-pr -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install jggonz/os8088 review-fork-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/jggonz/os8088.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/review-fork-pr .claude/skills/review-fork-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 "review-fork-pr" agent skill from https://github.com/jggonz/os8088/tree/main/.claude/skills/review-fork-pr into .claude/skills/review-fork-pr/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "review-fork-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/jggonz/os8088/tree/main/.claude/skills/review-fork-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 jggonz/os8088 --skill review-fork-pr -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install jggonz/os8088 review-fork-pr --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/jggonz/os8088.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.claude/skills/review-fork-pr .agents/skills/review-fork-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 "review-fork-pr" agent skill from https://github.com/jggonz/os8088/tree/main/.claude/skills/review-fork-pr into .agents/skills/review-fork-pr/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "review-fork-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 jggonz/os8088 --skill review-fork-pr -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install jggonz/os8088 review-fork-pr --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/jggonz/os8088.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.claude/skills/review-fork-pr .cursor/skills/review-fork-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 "review-fork-pr" agent skill from https://github.com/jggonz/os8088/tree/main/.claude/skills/review-fork-pr into .cursor/skills/review-fork-pr/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "review-fork-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/jggonz/os8088.git --path .claude/skills/review-fork-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 jggonz/os8088 --skill review-fork-pr -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install jggonz/os8088 review-fork-pr --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/jggonz/os8088.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.claude/skills/review-fork-pr .gemini/skills/review-fork-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 "review-fork-pr" agent skill from https://github.com/jggonz/os8088/tree/main/.claude/skills/review-fork-pr into .gemini/skills/review-fork-pr/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "review-fork-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 jggonz/os8088 review-fork-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 jggonz/os8088 --skill review-fork-pr -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/jggonz/os8088.git skills-src && mkdir -p .github/skills && cp -r skills-src/.claude/skills/review-fork-pr .github/skills/review-fork-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 "review-fork-pr" agent skill from https://github.com/jggonz/os8088/tree/main/.claude/skills/review-fork-pr into .github/skills/review-fork-pr/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "review-fork-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 jggonz/os8088 --skill review-fork-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 jggonz/os8088 review-fork-pr --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/jggonz/os8088.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.claude/skills/review-fork-pr .opencode/skills/review-fork-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 "review-fork-pr" agent skill from https://github.com/jggonz/os8088/tree/main/.claude/skills/review-fork-pr into .opencode/skills/review-fork-pr/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "review-fork-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.
review-fork-prReview an incoming pull request that comes from someone else's fork of os8088 - fetch it, merge main into it, review it with a team of agents for memory safety, lost-from-main regressions, redraw…
Review Fork PR is an agent skill from jggonz/os8088. Review an incoming pull request that comes from someone else's fork of os8088 - fetch it, merge main into it, review it with a team of agents for memory safety, lost-from-main regressions, redraw cost and disk/data integrity, present a plan, apply the fixes, verify them, push them back to the contributor's branch, and post a hand-holding comment on the PR. Use when the user says a PR came from a fork or another repo, names a PR number to review, or asks to prepare an incoming PR for merge.
Its SKILL.md is about 4.3k tokens, which your agent loads only when the skill is triggered. The skill folder holds 4 other files (for example `LESSONS.md`, `workflows/fix.js` and `workflows/review.js`).
It sits in Development, covering Pull requests. The licence is MIT.
10 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 95f7e97. 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 (JavaScript), which the agent can run.
Shell commands in SKILL.md call:
gitmakeghpython3From 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.
Review Fork PR loads about 4.3k tokens when it runs. Until then it costs about 127 tokens; SKILL.md has 2,059 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 jggonz/os8088 at commit 95f7e97, republished under its MIT licence (© jggonz). 2,059 words, ~4,321 tokens.
.claude/skills/review-fork-pr/SKILL.md (or your agent's skills folder). This skill also uses 3 other files; get the full folder from GitHub.A contributor works in their own fork of os8088 and opens a PR against
jggonz/os8088:main. It is usually large (98 files and +27,500 lines was
PR #92; 193 files and +73,000 was #80), usually long-lived — cut from a
main that has since moved — and often conflicting. Your job is the
maintainer's: understand it, merge main into it, find what would break real
hardware, fix that, verify it, push the fixes back to the contributor's
branch on their fork so the PR itself becomes mergeable, and explain every
change on the PR in language a semi-technical reader can follow.
Invoking this skill authorises the multi-agent orchestration below — the
Agent fan-out and the two Workflow scripts (what the user calls
"ultracode"). Every decision that is the user's comes back through
AskUserQuestion; everything else you decide and record.
Three files travel with this skill:
| file | what |
|---|---|
LESSONS.md | what seven of these reviews cost to learn — the git mechanics that silently do the wrong thing, and the defect classes this repo's forks actually ship. Read it in full before step 2. |
workflows/review.js | the review workflow: the PR split into logical units, one reviewer per unit, every finding adversarially verified |
workflows/fix.js | the fix workflow: verified findings in sequential batches, each fixer building and verifying its own batch |
Also binding, and already in the tree: docs/UPSTREAM.md
— the fork topology, the squash cycle, the shallow-clone trap and the
merge-resolution rules. It is written from the contributor's side; this
skill is the same cycle seen from main. Read its "Merging upstream in" and
"The PR back to main" sections before step 4. Then CLAUDE.md (hard rules,
performance table), SPEC.md (the binding contract), CONTRIBUTING.md
(what the repo asks of a contribution).
Reviews were sized on Opus 5 and Fable 5. On a smaller model, run the review workflow with fewer, narrower units rather than trusting a wide one.
The PR number may arrive as the argument (/review-fork-pr 92). If not, list
what is open and ask:
gh pr list --repo jggonz/os8088 --state open \
--json number,title,author,headRepositoryOwner,headRefName,changedFilesThen get the facts before forming any opinion — the topology decides what you are even able to do:
gh pr view <N> --json title,body,author,headRepository,headRepositoryOwner,headRefName,\
baseRefName,state,mergeable,mergeStateStatus,maintainerCanModify,additions,deletions,changedFiles,commits
gh api repos/jggonz/os8088/pulls/<N> --jq \
'{maintainer_can_modify, head_repo:.head.repo.full_name, head_ref:.head.ref, head_sha:.head.sha}'
gh pr view <N> --json comments --jq '.comments[] | "=== " + .author.login + " ===\n" + .body'| field | why you need it |
|---|---|
headRepositoryOwner + headRefName | the push target: git@github.com:<owner>/os8088.git HEAD:<headRef>. Pushing anywhere else does not touch the PR |
maintainer_can_modify | false ⇒ you cannot push to their branch at all; take the fallback in step 9 |
mergeable / mergeStateStatus | CONFLICTING is normal and is step 4's work |
changedFiles, additions | the size gate in step 5 — inline agents or the workflow |
| the comments | the contributor may have already answered half of what you are about to ask |
State the shape back to the user in two or three lines (who, what, how big,
how far behind main, what conflicts) before you go further.
git rev-parse --is-shallow-repository # true ⇒ every ancestry answer below is a lie
git fetch --unshallow # ...so do this FIRST (docs/UPSTREAM.md rule 0)
git status --short # the user's tree must stay untouched
pgrep -fl qemu-system # a stale QEMU answers on build/qmp.sock with an OLD image
gh auth statusRead LESSONS.md now, in full.
Fetch the PR and work in a scratch worktree, never in the user's checkout:
git fetch origin pull/<N>/head:pr-<N>
git worktree add -q "$SCRATCH/wt" pr-<N> # $SCRATCH = the session scratchpad
git remote add <owner> git@github.com:<owner>/os8088.git 2>/dev/null || true
git fetch <owner> <headRef>The worktree is where every build, boot, edit and commit happens. The user
keeps a working tree they can use while the review runs, and step 10 hands
them the branch when it is over. One caveat that has cost a session: a
scratchpad path is long, and QEMU's QMP socket is an AF_UNIX path with a
~104-byte limit — boot with a short socket path (/tmp/q<N>.sock), or build
in the worktree and boot from a short BUILD= directory.
Then measure the gap:
BASE=$(git merge-base main pr-<N>)
git log --oneline $BASE..main # what main gained since the fork point
git diff --stat $BASE pr-<N> | tail -40
git diff --name-status $BASE pr-<N> | awk '{print $1}' | sort | uniq -c # A/M/D counts
git diff --diff-filter=D --name-only $BASE...pr-<N> # DELETIONS - read every oneDeletions are the highest-yield list on the whole PR. A long-lived fork branch
loses things main added, and git reports no conflict for a file the branch
simply never received (LESSONS.md §2).
One AskUserQuestion call, four questions, recommendation first:
(Recommended) — the PR
itself updates; requires maintainer_can_modifymain into the PR branch first?(Recommended) when main has moved — otherwise you are reviewing
code against a base that no longer existsmain regressions · redraw/CPU cost against the
4.77 MHz budget · disk and file-format integrity · the package/driver ABI(Recommended)Default to plan-first. It is what the last several runs asked for, and on a PR this size the plan is the deliverable the user actually reads.
main in — and find what git cannot seeIn the worktree:
git merge --no-commit --no-ff main
git diff --name-only --diff-filter=U # the textual conflictsResolve per file with docs/UPSTREAM.md's defaults: ours for what the
branch deliberately changed, theirs for what it merely lacks, theirs
for gratuitous divergence. Never blanket --ours; for a big file use that
document's difflib script to list every line main added that your side lacks.
Then the four checks git merges cleanly and reports nothing about:
grep -oE '^#+ [0-9.]+' SPEC.md | sort | uniq -d # DUPLICATE § headings - checkdocs cannot see these
git ls-files build | wc -l # must be 0 (SPEC.md 16)
git ls-files | grep -E '^\.claude/|\.(bin|o88|img|mod|drv)$' # what rode in that should not have
python3 tools/checkdocs.py§ numbers are the standard collision. main's §67 C
toolchain met the branch's §67 Cyclone 88 in #92; main's §52 ModPlug met
the branch's §52 HDD before that. The branch's numbering wins at the squash,
so the incoming-from-main section renumbers, and every reference to it
moves with it — scope the rewrite to the lines main added
(git diff $BASE <main-commit>), not to the whole file. Record the
renumbering in docs/UPSTREAM.md beside the existing precedents.Now build both kernels and boot once, before reviewing, so the reviewers
argue about a tree that works: make, make KERN_SMALL=1 (or make small),
make test + a screendump, plus whatever gate the feature owns
(tests/heapfrag, make zcheck, make rczex, …).
Under ~30 changed files: spawn 3–5 read-only Agents in one message, one
per subsystem, each pointed at the worktree with "do NOT modify any files",
each told to read CLAUDE.md first and to ground every finding in a line it
actually read. Then confirm the top findings yourself by reading the code.
Larger: run the workflow.
Workflow({ scriptPath: "<abs repo>/.claude/skills/review-fork-pr/workflows/review.js",
args: { wt: "<abs worktree>", pr: <N>, base: "<merge-base sha>",
emphasis: ["memory", "regression", "redraw", "disk", "abi"],
units: [ { key: "kernel-core", title: "...", paths: "kernel/memory.inc ...",
focus: "..." }, ... ] } })You write the units — that is the part no agent can do for you. Split by
subsystem and by lens, not by file count: kernel/wm.inc alone has been
4,200 changed lines and wants two reviewers, one for window state and one
for painting, each told the other exists so they do not duplicate. Every
unit's focus should name what the PR body itself admits is unfinished, what
it deleted, and which § it claims to obey. Aim for 8–14 units; the workflow
adversarially verifies each finding and returns only what survived, with a
CONFIRMED / REFUTED / UNCERTAIN verdict and a corrected fix.
While the agents run, do the mechanical checks yourself: the slot table
address↔name cross-check, git log main -- <file> on every deleted hunk, the
kernel size guards, and a boot. Two independent reviewers landing on the same
defect is the strongest signal you will get; read the code yourself for
anything you are about to call a blocker.
Present, in the chat and in this order:
Then AskUserQuestion. Nothing is written to the fork, the PR, or the user's
repo before that answer. If the user says "fix all high and medium", that is
the authorisation for step 7 and no further asking is needed unless a fix
turns into a design decision.
The rules that make a fix acceptable in someone else's PR:
§ is written.KERN_BUDGET and
KERN_CODE_MAX are the user's call (CLAUDE.md), not a build fix. Align a
stale symbol to the real value; never raise the real value.python3 tools/kernsize.py --build build --bless in the same commit as any
kernel size change, both variants.Up to about eight fixes, do them inline, one at a time, each with its SPEC line. More than that, batch them:
Workflow({ scriptPath: "<abs repo>/.claude/skills/review-fork-pr/workflows/fix.js",
args: { wt: "<abs worktree>", pr: <N>, batches: [ { key: "B1-...", title: "...",
findings: [...], extra: "batch-specific verification commands" } ] } })Batches run sequentially — they share one worktree, and two agents editing one tree do not merge. Each fixer builds, runs its own verification, and commits only its own batch. Never let a fixer push.
Nothing is pushed until every one of these has run in the worktree and you can quote its output:
make # nasm -w+error, and checkdocs is a prerequisite
make KERN_SMALL=1 # both kernels, both under their guards
python3 tools/kernsize.py --build build # and --build build/smallk -DKERN_SMALL
python3 tools/os88disk.py --verify build/*.img # structural fsck, all three geometries
make test # boot; screendump the desktop
make test VIDEO=cga # the 1bpp look at anything that draws or greysPlus, driven over QMP (tools/mouse.py, tools/shot.py), the feature the
PR is about, exercised end to end: the gate the PR ships if it ships one,
the file it saves opened again, the app it adds launched and closed. #92's
compaction fixes were only believable because Paint saved a BMP that fsck'd
clean afterwards. Crop and zoom before concluding anything about a small
change.
Re-fetch before pushing — the contributor has been working while you were.
git fetch <owner> <headRef>
git merge-base --is-ancestor <owner>/<headRef> HEAD && echo "fast-forward OK"
# if not: rebase onto their new head, never force-push
git rebase --onto <owner>/<headRef> <the sha you started from> pr-<N>
git push <owner> pr-<N>:<headRef>origin. git push origin HEAD:<headRef>
creates a stray branch on your repo and leaves the PR untouched — it has
happened, and the cleanup is git push origin --delete <headRef>.--force a branch you do not own.maintainer_can_modify is false: take the #47 shape instead — a branch
on origin carrying their commits plus yours, and a PR whose body says
plainly that it contains all of theirs and reverts nothing.gh pr view <N> --json mergeable,mergeStateStatus,commits.
MERGEABLE + BLOCKED means blocked on review approval, which is the user's.Then the comment. Its reader is the contributor, semi-technical, reading in
a browser — gh pr comment <N> --body-file <file>:
main, pushed N commits, the PR
is now mergeable.git worktree remove --force "$SCRATCH/wt"
git worktree prune
git fetch origin pull/<N>/head:pr-<N> --force && git checkout pr-<N> # if the user wants to test
pgrep -fl qemu-system # leave nothing running
git -C <the user's checkout> status --short # must be exactly what it was in step 2Leave the local branch pointing at the reviewed code when the user has said they want to test by hand — that is the usual request — and say in one line which branch and what to run. Then summarise: what the PR is, what you merged, what you fixed, what you flagged, what is left for the user (the approval, the squash, the merge).
build/.© jggonz, MIT. 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 3 other files in .claude/skills/review-fork-pr of jggonz/os8088.
Open the folder on GitHubat commit 95f7e97
Review Fork 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 |
|---|---|---|---|---|---|---|
| Review Fork PR this skilljggonz/os8088 | 104 | — | ~4.3k | Automated safety check: Pass | MIT | |
| Finishing a Development Branchobra/superpowers | 297k | 5 repos | ~1.9k | Automated safety check: Pass | MIT | |
| PR Babysitteropeninterpreter/openinterpreter | 69k | 3 repos | ~4.2k | Automated safety check: Pass | Apache-2.0 | |
| Check PRonyx-dot-app/onyx | 32k | 2 repos | ~2.3k | Automated safety check: Pass | MIT | |
| PR Design DocOpenHands/OpenHands | 90k | — | ~2.4k | Automated safety check: Pass | MIT | |
| WooCommerce Code Reviewwoocommerce/woocommerce | 11k | 3 repos | ~1.1k | Automated safety check: Pass | Custom licence |
obra/superpowers
Walks the last step of a branch: confirm tests pass, detect the git environment, ask how to integrate, carry out your choice and clean up the worktree.
openinterpreter/openinterpreter
Watches an open GitHub pull request until it merges, handling review comments, diagnosing CI failures and retrying flaky checks along the way.
onyx-dot-app/onyx
Checks a GitHub, GitLab, or Perforce (p4) pull request (or merge request, or shelved changelist) for unresolved review comments, failing status checks, and incomplete PR descriptions.
OpenHands/OpenHands
For a non-trivial pull request, write a self-contained HTML design doc under the temporary .pr/ directory and link a visibility-appropriate preview in the PR description, so maintainers grasp the…
woocommerce/woocommerce
Reviews WooCommerce code changes against the project's standards, flagging backend PHP architecture, naming, documentation, data integrity and testing violations.
payloadcms/payload
A skill your agent uses when a Payload pull request needs a concise visual walkthrough for reviewers.
jggonz/os8088
Functionally verify a change on the glass before it merges - boot the built OS in QEMU, drive the actual UI the change proposes (mouse, keys, menus) over QMP, screenshot the evidence for every…
jggonz/os8088
Build a native 8086 assembly remake of a console/arcade game (reference = a disassembly or source tree) as an os8088 package, the way apps/drmario (DrMarco), apps/1942 and apps/excitebike were made…
jggonz/os8088
Port an existing program - written in C or in any other language - to os8088 as a C package (SPEC.md §73), the way apps/cword ported Microsoft Word 1.1a.
jggonz/os8088
Bring one of the maintainer's own stale pull requests (a branch on jggonz/os8088 that main has moved past) back to mergeable - merge main into it in a scratch worktree, decide whether it is still…
jggonz/os8088
Build os8088 and publish the floppy images to the os8088.com website repo as a pull request, plus a GitHub release on the OS repo.
jggonz/os8088
Give an os8088 package a COLOUR FACE on VGA/EGA - fewer redraws first, then a neater layout, styled panes and bevelled, picture-faced buttons with their captions inside - while the Hercules and CGA…
Categories
Review an incoming pull request that comes from someone else's fork of os8088 - fetch it, merge main into it, review it with a team of agents for memory safety, lost-from-main regressions, redraw…. Review Fork PR is an agent skill from jggonz/os8088. Review an incoming pull request that comes from someone else's fork of os8088 - fetch it, merge main into it, review it with a team of agents for memory safety, lost-from-main regressions, redraw cost and disk/data integrity, present a plan, apply the fixes, verify them, push them back to the contributor's branch, and post a hand-holding comment on the PR.
Review Fork PR fits situations like: the user says a PR came from a fork; names a PR number to review; asks to prepare an incoming PR for merge.
Run `npx skills add jggonz/os8088 --skill review-fork-pr -a claude-code`. Or copy the skill folder (.claude/skills/review-fork-pr in jggonz/os8088) into .claude/skills/review-fork-pr in your project. Claude Code loads it when a task matches its description.
Run `npx skills add jggonz/os8088 --skill review-fork-pr -a codex`. Or copy the skill folder (.claude/skills/review-fork-pr in jggonz/os8088) into .agents/skills/review-fork-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 jggonz/os8088 --skill review-fork-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/review-fork-pr, .gemini/skills/review-fork-pr, .github/skills/review-fork-pr and .opencode/skills/review-fork-pr in your project.
Going by SKILL.md and its folder, Review Fork PR needs JavaScript for the scripts in its folder and the command-line tools its instructions call (git, make, gh and python3). Our summary lists: Python 3; Node.js.
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.
Review Fork PR is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 4.3k tokens (SKILL.md is roughly 17k 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 Review Fork PR: Finishing a Development Branch (obra/superpowers, 297k stars), PR Babysitter (openinterpreter/openinterpreter, 69k stars), Check PR (onyx-dot-app/onyx, 32k stars) and PR Design Doc (OpenHands/OpenHands, 90k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
jggonz (a GitHub user) maintains it in jggonz/os8088, which has 104 GitHub stars. The repository holds 7 skills in this directory. The repository was last updated on October 8, 2026.
Source: jggonz/os8088 on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.