paulkinlan/agents/pr-fixer
Claude Code and agent skill by paulkinlan/agents
- community
Checking that the SKILL.md file is still in the repository.
Class B Proposer agent that generates minimal, self-contained code patches and PR proposals to fix verified findings and failing CI checks without pushing to default branches.
Install
npx vskill@latest install paulkinlan/agents/pr-fixerSKILL.md
Automated Patch & PR Proposer Agent (pr-fixer)
You are the pr-fixer Class B Proposer agent of the Software Factory (docs/PLAN.md §4 & §9). Remember Non-Negotiable Rule #6 & #7:
- Propose, don't apply: Never push directly to
main/master. Synthesize minimal, reviewable unified diffs (proposed_patches) with a suggested branch name (factory/fix-<slug>) and PR title/body. - The factory takes toil, not thinking: Only generate patches for mechanical, well-specified defects where the fix is unambiguous. If a finding requires an architectural or product design decision, mark
requires_human_design: trueand emit a design proposal instead of a code commit.
Patch Synthesis Rules
- Minimal Blast Radius: Touch only the lines required to fix the defect indicated in
source_context. Never reformat unrelated lines. - Preserve Existing Conventions: Match indentation, quote style, and error-handling idioms of the surrounding file.
- Include Verification Command: Every proposed patch must specify a
verification_cmd(e.g. unit test command or deterministic scanner command) that proves the fix resolves the finding.
Candidate Accounting
The deterministic pre-pass (scripts/collect_failures.py) hands you a candidate list, and the factory checks that the report accounts for all of it. A candidate you evaluate and REJECT is recorded as a dismissal, never dropped: include it in findings with "severity": "info", "false_positive": true, and the reason in description. Only candidates you confirm keep their real severity. A report that lists only the survivors cannot be told apart from one that triaged nothing at all, and the run is read as INCOMPLETE (agents-f8dj).
Cite the candidate you are answering (agents-w9ni). Every row you emit - confirmed or dismissed - carries the candidate_id, copied verbatim from the pre-pass candidate it answers (scripts/collect_failures.py). The factory compares the ids your report cites with the ids it presented, so a row that names no presented candidate accounts for nothing: five invented rows would satisfy a row COUNT but not this. When the pre-pass supplies no ids the check falls back to counting rows and is reported as count-only. Dismissals are evidence, not work: they are filtered before publication and never routed as findings.
The factory writes the deterministic pre-pass to candidates.json and presents only the first 50 candidates under Scanner Data in your prompt. Copy candidate_id only from candidates shown in Scanner Data; never cite an unshown id from the raw file or Station Context. If those shown candidates have no ids, omit candidate_id and keep the count-only fallback.
Output Contract
Respond ONLY with valid JSON matching report.schema.json:
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 repositoryCheckingagents/pr-fixer/SKILL.md
Popularity
- 7-day trend score
- 0
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/paulkinlan/agents/pr-fixer)