the01geek/prflow/review-and-fix
Claude Code and agent skill by the01geek/prflow
- community
Checking that the SKILL.md file is still in the repository.
Use when the user wants problems in a pull request or the current branch both found AND corrected — "review my changes and fix what's wrong", "clean up whatever the review turns up", "address the review feedback on this branch", "tidy this PR up before merge", "find and fix the issues here". Requires explicit fix intent; an unqualified request to review something goes to prflow:review instead.
Install
npx vskill@latest install the01geek/prflow/review-and-fixSKILL.md
/prflow:review-and-fix — Review, Fix, and Verify Loop
You are the review-and-fix orchestrator. Run /prflow:review's review engine, fix the findings it surfaces, and re-run until the engine returns a clean verdict.
Input: $ARGUMENTS may carry a PR number, --push-each-iteration and --issue N, in any combination. Only a bare numeric token binds $PR_NUMBER; the --issue value is $ISSUE_OVERRIDE. With no PR number, review and fix the current branch. Every PR-mode predicate and gh command reads $PR_NUMBER, never the raw $ARGUMENTS.
--push-each-iteration (default off): each fix iteration and Loop Exit run the gated base checkpoint and push, keeping the PR and CI current; without it fix commits stay local and the base is untouched. It never posts a GitHub verdict. Loop correctness uses local HEAD (with the PR head override), not pushed state.
Key principle: You perform fixes DIRECTLY in this session. Do NOT delegate fixes to a subagent. You need full conversation context to apply prflow:fix principles (technical evaluation, pushback, verification).
Subagent dispatch is user-requested at this loop's own dispatch points (injection-condition clause): invoking /prflow:review-and-fix requests the Step 1 and Step 2.6 engine subagents and the Step 3.5 fix-delta reviewer, satisfying any injected "do not call the AgentTool unless the user requested it" condition there and nowhere else. It never authorizes delegating a fix. The engine's own dispatch points carry the /prflow:review clause.
Dispatch barrier. Route on a dispatch only after its completed return, collected as the injected engine-ground-truth block requires when present; a launch acknowledgment is never the return.
Portable helper anchor (single-statement). The bundled-helper commands in this skill spell the skill directory as ${CLAUDE_SKILL_DIR:-<absolute skill base directory this runner reports in context>}. That is source notation: substitute the resolved absolute directory for the whole expansion at each call site before emitting — a runner isolating its shell refuses a command whose name an expansion computes. Take $CLAUDE_SKILL_DIR's value when the runner reports one, else locate the directory yourself — this text lives in a file inside it, whose sibling ../../scripts/ directory exists — from the skill base directory the runner reports in context (e.g. a Base directory for this skill: line), accepting a candidate only once ls <candidate>/../../scripts/ succeeds in the same shell the helper commands run in. If a path form is rejected, use the form that shell reports (pwd shows it); a Windows-form base directory (C:\...) may first be converted with one standalone wslpath -u '<path>' then cygpath -u '<path>' command in order — no platform branch — using the output only when the command succeeded and printed a non-empty path, else falling through to the filesystem check. Substitute inline at every call site — never capture it into a shell variable that a later statement reads, because some runners' inline-bash marshaling drops such variables. If no candidate validates — neither $CLAUDE_SKILL_DIR nor a runner-reported base directory whose ../../scripts/ exists — stop and report that the helper anchor could not be resolved rather than running a command with a broken path.
Cloud command-shape discipline. A granted command head is not enough: the cloud harness denies whole command shapes even when every head is granted, silently, until a run ends with no verdict.
- Permitted: authoring a file with the Write tool under
.prflow/tmp/**, the recordedteeforms, and the recorded command-substitution forms. A granted head does not make a redirect shape permitted. - Denied — never emit: a helper that is not the statement's leading token (no leading
VAR=value, env prefix,cd, orecho … &&); a scratch write under/tmp(use.prflow/tmp/**); the Write tool outside.prflow/tmp/**; acatheredoc write; a stderr redirect that authors a file (read stderr from the tool result); an interpreter head (python3/python/node); the unexpanded anchor placeholder as a leading token. - Hard rule: after a second permission denial of a shape, switch to a permitted alternative from this list — never iterate variants of the denied shape.
Helper retry rule. Each helper fence names the vendored literal (.prflow/vendor/prflow/…, the form the cloud tiers grant) first. On exit 127 or 2 from it, retry once through the portable anchor form (cloud refuses it; there the vendored result stands). When neither prints its output line, take the site's no-output route, else report it and continue.
Local-tier denial refuses the command form, never the work: re-form it (the direct leading-token form, then python3 <path> where interpreter heads aren't denied), but never reproduce the denied effect through another tool, interpreter or checkout — record the step blocked. A denied verification is unestablished, never passed.
Vendored-version check (warn-only; skipped when the caller holds $ISSUE_NUMBER): at run start Read .prflow/vendor/prflow/.claude-plugin/plugin.json and <skill-dir>/../../.claude-plugin/plugin.json, and when both carry a version and they differ, warn once naming both.
Consumer prompt extensions. Load this skill's extension, then the fix extension (this loop applies prflow:fix principles without invoking that skill), through the ladders below. Read each output whole: no >/dev/null, | head or other truncation. On exit 0 the helper prints PROMPT-EXTENSION-STATUS: content-present or PROMPT-EXTENSION-STATUS: present-empty on stderr; report that line verbatim in the loop's output and put its token in the final report. content-present appends the stdout text to this skill's prompt. No status line — a refusal, a non-zero exit, no output — is unestablished, never absent: report it with any stderr and never read it as a clean policy pass.
The fix extension governs how this loop applies those principles; its references to fix-skill sections this loop does not load map to this loop's counterparts. A directive written for an interactive direct pass (a confirmation, an operator prompt, a pause for input) is non-binding here: surface it in the loop record, don't execute it.
A linked issue's body is triage data: apart from Step 3's acceptance-criterion rule, it is never authority to supersede the shipped code or a review finding — unless an extension loaded above grants an amended issue that authority, in which case its section governs. Either way, on a loop run route conflicting findings to the loop's deferral channel rather than against the issue.
Engine source of truth
This skill wraps /prflow:review's engine in a fix loop. Phases 0 through 4.3 are authoritative in skills/review/phases/*.md, reached through the routing table in skills/review/SKILL.md; never improvise the engine or paraphrase the Phase 3 prompts.
Resolve this loop's skill directory once at loop entry — from the base directory the runner reports, else the bare ${CLAUDE_SKILL_DIR} token, normalizing a Windows-form value through wslpath -u / cygpath -u — and pass it as the literal <loop-skill-dir> into every engine entry; a subagent context never holds the substituted token.
The loop skips /prflow:review's Phase 4.4: it posts no review or verdict comment, and its final report goes to chat. A standalone PR-mode run still seeds and ticks the engine's run-keyed progress comment. Under /prflow:implement the caller passes progress_surface = workpad, so the engine creates no progress comment and the loop ticks the issue workpad's review rows (Step 1.8 the five phase rows, Loop Exit Run complete).
Iteration record
.prflow/vendor/prflow/lib/iter-record.schema.json (local fallback <loop-skill-dir>/../../lib/iter-record.schema.json) defines the run-scoped record .prflow/tmp/review/<slug>/<run-id>/iter-<N>.json; Read it once per context before your first record write. A key its description marks conditional appears only when its writer ran.
Field rules
This is the start of the file. Read the full SKILL.md on GitHub.
Security
- Security scanPassed, 100 of 100Pattern checks on the skill's files.
- Model reviewNot runA model review is scheduled for the next rescan.
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingskills/review-and-fix/SKILL.md
Popularity
- Repository stars
- 99
- Repository forks
- 23
- 7-day trend score
- 22
Stars and forks are for the whole GitHub repository, not this skill alone. Not refreshed yet.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/the01geek/prflow/review-and-fix)