vs-fix-pr
Primary VS workflow whenever the user asks to see, check, review, address, or fix a PR, its comments or feedback, or its failing CI; handle requested changes…
Skill by vltansky
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/vltansky-vs-fix-pr
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: devops, productivity
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
- Runs as
- Python package
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/vs-fix-pr
What's inside
- Skill name
vs-fix-pr- Description
- Primary VS workflow whenever the user asks to see, check, review, address, or fix a PR, its comments or feedback, or its failing CI; handle requested changes; or resolve review threads. Use this instead of a generic GitHub PR-comments workflow when available. Inspect-only requests stay read-only; action requests repair actionable CI and feedback, reply to and resolve accepted threads, then babysit the updated PR by default.
- License
- MIT
- Instructions
- 499 lines in SKILL.md · view on GitHub
Before installing
- Ships executable scripts
Files (22)
- SKILL.md
- openai.yaml · agents/
- fetch_comments.py · scripts/
- fix-pr-real-world.eval.ts · test/
- fix-pr.eval.ts · test/
- fix-pr.static.eval.ts · test/
- behavior.md · test/fixtures/ci-and-review/docs/
- handoff.md · test/fixtures/ci-and-review/
- package.json · test/fixtures/ci-and-review/
- slug.js · test/fixtures/ci-and-review/src/
- slug.test.js · test/fixtures/ci-and-review/src/
- handoff.md · test/fixtures/ci-ownership-dirty/
- local-scratch.txt · test/fixtures/ci-ownership-dirty/notes/
- package.json · test/fixtures/ci-ownership-dirty/
- slug.js · test/fixtures/ci-ownership-dirty/src/
- slug.test.js · test/fixtures/ci-ownership-dirty/src/
- handoff.md · test/fixtures/review-body-approval-dirty/
- local-scratch.txt · test/fixtures/review-body-approval-dirty/notes/
- ambiguous-thread.md · test/fixtures/review-thread-gates/docs/
- post-fix-handoff.md · test/fixtures/review-thread-gates/docs/
- reply-resolve-authority.md · test/fixtures/review-thread-gates/docs/
- test_fetch_comments.py · test/
SKILL.md (first lines)
# Fix PR
## Choose the PR mode
Preserve the difference between inspecting a PR and acting on it:
- **Inspect only:** the user says see, check, list, review, or summarize PR
comments/feedback without asking to address them. Resolve the PR, wait for
relevant reviewer checks, fetch all feedback surfaces in Step 2, and report
CI plus the actionable, outdated, resolved, and informational feedback. Do
not edit, commit, push, rerun CI, reply, or resolve threads. Stop after the
report.
- **Address PR:** the user says address, fix, handle, apply, or resolve a PR or
its comments/feedback. Treat both actionable CI failures and reviewer
feedback as owned work. The initial address request authorizes posting
evidence-backed replies and resolving accepted or addressed-by-rewrite inline
threads. The address request carries standing repair authority for additional
bounded batches of confirmed PR-owned fixes during the composed babysitting
phase.
Do not ask for a second approval for those actions. Ambiguous or declined
feedback still needs a user decision and must remain open.
If the request combines both, inspect first and then continue in address mode.
## Building Block Composition
Fix-pr is a workflow for making an existing PR healthy after review or CI
feedback. It composes:
- `vs-verify` after applying fixes so replies are backed by evidence.
- `vs-baby-sit` after address-mode work so the updated PR stays owned while
CI and new review feedback arrive.
Inspect-only mode stops after its report and does not start `vs-baby-sit`.
When the current checkout is not already on the PR branch, fix-pr owns the
branch/worktree setup directly: inspect the PR, preserve unrelated dirty state,
then switch to or create the appropriate isolated checkout before editing.
## Codex Goal Integration
When running in Codex, use
[`../vs-internal-shared/references/codex-goal.md`](../vs-internal-shared/references/codex-goal.md)
for goal ownership and completion rules.
Fix-pr owns the PR-health goal after Step 0 resolves the target PR and either
Step 1 finds actionable CI or Step 2 identifies unresolved feedback. The
objective should name the PR plus its failing-check and unresolved-feedback
scope. Complete the goal only after every owned CI failure and accepted review
fix is committed and pushed, evidence-backed replies are posted, accepted
threads are resolved, and the build/reviewer state has been rechecked. Declined feedback,
external CI blockers, or human-decision threads keep the goal active or blocked
according to Codex goal policy.
## Entry Points
If the user drops you into a later state such as "already inside Step 4b/4c", "continue from that exact state", or provides the current thread + drafted reply directly:
- Skip the earlier steps that would rediscover that state.
- Continue from the named step using this skill's rules for that step.
- Do **not** bypass the skill by answering ad hoc just because the state is already provided.
This matters most for decision gates:
- **Step 4b unsure path** → if the host exposes an ask-user question tool, invoke it.
- **Step 4c-decline gate** → if the host exposes an ask-user question tool, invoke it.
`continue from that exact state` means "skip discovery", not "skip a required
decision". An accepted thread in address mode proceeds without another gate.
Non-negotiable rule: when `AskUserQuestion` is available, do **not** render the final decision options as plain chat bullets or numbered lists first. Calling `AskUserQuestion` is the action. The follow-up chat message, if any, should only say that the question is up and you are waiting.
## Step 0: Resolve PR & Ensure Correct Branch
### 0a. Determine Target PR
Check if the user mentioned a PR number or URL in the conversation.
If yes — use that:
```bash
PR_JSON=$(gh pr view <number-or-url> --json number,headRefName,url)
```
If no — use the current branch's PR:
```bash
PR_JSON=$(gh pr view --json number,headRefName,url)
```
If `gh pr view` fails (no PR found): tell user "No PR found" and stop.
```bash
PR_NUM=$(echo "$PR_JSON" | jq -r .number)
PR_BRANCH=$(echo "$PR_JSON" | jq -r .headRefName)
PR_URL=$(echo "$PR_JSON" | jq -r .url)
REPO=$(echo "$PR_JSON" | jq -r '.url | capture("^https://github.com/(?<repo>[^/]+/[^/]+)/pull/[0-9]+$").repo')
```
Derive `REPO` from the PR URL, not the checkout remote. A fork PR's number
belongs to the base repository even when the current branch lives in the head
repository.
### 0b. Check Current Branch
```bash
CURRENT_BRANCH=$(git branch --show-current)
```
If `CURRENT_BRANCH` equals `PR_BRANCH` — proceed to Step 1.
### 0c. Handle Branch Mismatch
Check for uncommitted changes:
```bash
git status --porcelain
```
**If uncommitted changes exist:** Ask the user with the file list. Options:
- **Stash & switch** — `git stash --include-untracked --message "fix-pr: auto-stash from $CURRENT_BRANCH"`, then checkout
- **Switch without stashing** — Checkout directly (changes carry over if no conflicts)From vltansky/vs, MIT.
More from vltansky/vs
- 0.570score
vs-explain-video
vltansky
Make a short narrated motion explainer video about a topic, code path, or PR.
SkillAFreshness: AClaude Code +9 - 0.570score
vs-improve
shadcn
Survey any codebase as a senior advisor and produce prioritized, self-contained implementation plans for OTHER models/agents to execute.
SkillAFreshness: AClaude Code +9 - 0.570score
vs-disk-cleanup
vltansky
Free disk space left behind by coding agents: stale git worktrees (t3code, Codex, Claude Code), old vs session artifacts under ~/.vs, and home-folder dev…
SkillAFreshness: AClaude Code +9 - 0.570score
vs-explain-pr
vltansky
Make a short narrated video explainer of an open PR from its base...head diff, finished body, and evidence media, then add it to the PR body.
SkillAFreshness: AClaude Code +9 - 0.569score
vs-baby-sit
vltansky
Use when asked to watch a PR, fix CI, address review comments, or keep a branch merge-ready in a loop.
SkillAFreshness: AClaude Code +9 - 0.567score
vs-internal-shared
vltansky
Internal reference for vs shared conventions: artifact paths, project ID resolution, storage preference, and skill taxonomy.
SkillAFreshness: AClaude Code +9 - 0.565score
vs-explain-back
vltansky
Use when the user types /vs-explain-back, or asks you to explain back, teach back, mirror, or restate their messy multi-message explanation as a clean…
SkillAFreshness: AClaude Code +9 - 0.565score
vs-eli5
vltansky
Explain a topic like I'm a 5 year old.
SkillAFreshness: AClaude Code +9 - 0.565score
vs-before-after
vltansky
Use when asked for before and after, the functional difference, what behavior changed, or the user value of a branch, PR, commit, or working-tree diff.
SkillAFreshness: AClaude Code +9 - 0.555score
vs-bugfix
vltansky
Use when the user says fix, bugfix, broken, or describes a bug.
SkillAFreshness: AClaude Code +9 - 0.529score
vs-architect
vltansky
Use when asked to improve a codebase's architecture, find refactoring or consolidation opportunities, deepen shallow modules, reduce coupling, clarify seams…
SkillBFreshness: BClaude Code +9 - 0.529score
vs-deslop
vltansky
Use when code works but feels AI-generated, bloated, repetitive, over-defensive, or needs cleanup before review or shipping.
SkillBFreshness: BClaude Code +9
Signals
- Stars
- 0
- Forks
- 1
- Open issues
- 1
- Last commit (this folder)
- Aug 26, 2026 (2 months ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/vltansky/vs
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from vltansky
- 0.570score
vs-disk-cleanup
vltansky
Free disk space left behind by coding agents: stale git worktrees (t3code, Codex, Claude Code), old vs session artifacts under ~/.vs, and home-folder dev…
SkillAFreshness: AClaude Code +9 - 0.570score
vs-explain-video
vltansky
Make a short narrated motion explainer video about a topic, code path, or PR.
SkillAFreshness: AClaude Code +9 - 0.570score
vs-explain-pr
vltansky
Make a short narrated video explainer of an open PR from its base...head diff, finished body, and evidence media, then add it to the PR body.
SkillAFreshness: AClaude Code +9 - 0.569score
vs-baby-sit
vltansky
Use when asked to watch a PR, fix CI, address review comments, or keep a branch merge-ready in a loop.
SkillAFreshness: AClaude Code +9 - 0.567score
vs-internal-shared
vltansky
Internal reference for vs shared conventions: artifact paths, project ID resolution, storage preference, and skill taxonomy.
SkillAFreshness: AClaude Code +9 - 0.565score
vs-eli5
vltansky
Explain a topic like I'm a 5 year old.
SkillAFreshness: AClaude Code +9
Cite this page
vs-fix-pr skill. Agent Mart. https://agentmart.dev/skills/vltansky-vs-fix-pr (last updated 2026-10-24)