Skip to content
Agentmart
Submit a tool

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

IndexedMIT
Write a review

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.

We use your email only for this newsletter. Privacy

About

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.

Use cases: devops, productivity

No 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

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
First seen
Oct 24, 2026
Last checked
Oct 24, 2026

More from vltansky

Cite this page

vs-fix-pr skill. Agent Mart. https://agentmart.dev/skills/vltansky-vs-fix-pr (last updated 2026-10-24)