autoresearch
Autonomous experiment loop for optimization research. Use when the user wants to: - Optimize a metric through systematic…
Follow up on an existing PR by rebasing on the base branch, addressing reviewer comments, fixing CI issues, and pushing updates. Use when the user provides a PR URL or number and wants to get it ready for merge.
$ npx -y skills add factory-ai/factory-plugins --skill follow-up-on-pr --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/follow-up-on-prContext preview
The summary Claude sees to decide when to auto-load this skill.
Follow up on an existing PR by rebasing on the base branch, addressing reviewer comments, fixing CI issues, and pushing updates. Use when the user provides a PR URL or number and wants to get it ready for merge.
name: follow-up-on-pr description: Follow up on an existing PR by rebasing on the base branch, addressing reviewer comments, fixing CI issues, and pushing updates. Use when the user provides a PR URL or number and wants to get it ready for merge.
Take over an existing PR, bring it up to date, address all feedback, and push it to a merge-ready state. This skill is language- and framework-agnostic — substitute your project's actual build, lint, test, and format commands where examples are shown.
Fetch the PR via `FetchUrl` (or `gh pr view`) to get:
Read all changed files in depth. Understand the intent and scope of the change.
**If the PR fixes a specific issue** (e.g. error report, user-reported bug): investigate the root cause before reviewing the code. Confirm the fix addresses the actual problem. PRs are sometimes already superseded by other fixes.
git fetch origin <branch-name> <base-branch> git checkout <branch-name>
If the branch doesn't exist locally, `git checkout` will create a tracking branch from `origin/<branch-name>`.
git pull origin <base-branch> --rebase
**If conflicts occur:** 1. Read each conflicted file to understand both sides 2. Resolve conflicts, preserving the PR's intent while incorporating base-branch changes 3. `git add <resolved-files>` 4. `git rebase --continue`
**If rebase is clean:** Verify the state with `git log --oneline -5` and `git diff --stat origin/<base-branch>..HEAD`.
Review comments were already fetched in step 1. For each unresolved comment: 1. Read the comment and understand what's being asked 2. Make the code change (or explain why it's not needed) 3. Add tests if requested 4. Commit the fix with a descriptive message
**Already-addressed comments:** Check if a reply already exists (`in_reply_to_id` field). Skip comments that have been resolved.
Run the project's lint, format, typecheck/compile, and test commands for the affected areas. Discover them by reading the repo root (e.g. `Makefile`, `package.json`, `pyproject.toml`, `Cargo.toml`, `go.mod`, `build.gradle`, `mix.exs`, `Gemfile`, `composer.json`, `justfile`, `Taskfile.yml`, `README.md`, or the CI workflow config).
Prefer filter / target flags to scope runs to the affected areas — it is faster than running the whole repo. Common patterns:
See the `create-pr` skill's "CI Checks Reference" section for a broader template of local commands matching common CI checks.
**Distinguishing pre-existing failures from PR issues:** Some CI failures exist on the base branch and are unrelated to the PR. If a failure occurs in a file not touched by the PR, verify it exists on the base branch too before spending time fixing it. Common pre-existing issues include module / package resolution errors for recently-added dependencies.
**E2E tests:** If the PR changes user-facing behavior (UI flow, defaults, keyboard handling, CLI output), E2E tests may break even if the code is correct. Read the failing test to understand what it expects, then update it to match the new behavior. Don't assume E2E failures are flaky — read them first.
git add -A git commit -m "<type>(<scope>): <description>" git push origin <branch-name> --force-with-lease
**If a commit-scanning bot blocks the push** (Droid-Shield, GitGuardian, TruffleHog, etc.): This happens when unrelated test fixtures contain strings that look like secrets. The agent cannot override these. Tell the user to push manually or temporarily disable the scanner per your org's docs.
Reply to each addressed comment on the PR so reviewers know their feedback was handled.
**For inline review comments** (the most common type):
# Reply to a specific inline comment thread gh api repos/<owner>/<repo>/pulls/<N>/comments/<COMMENT_ID>/replies \ -X POST \ -f body="<explanation of what was done>"
**For general PR-level summary:**
gh pr comment <N> --body "<summary of all changes made>"
**To check thread resolution status** (optional):
gh api graphql -f query='{
repository(owner: "<owner>", name: "<repo>") {
pullRequest(number: <N>) {
reviewThreads(first: 20) {
nodes {
isResolved
comments(first: 3) { nodes { body author { login } } }
}
}
}
}
}'If the changes made during follow-up are significant (new tests, architectural changes, additional scope), update the PR description:
gh pr edit <N> --body "<updated description>"
Use your org's PR template format. Update the testing section to reflect the additional tests added.
Before considering the task complete, confirm:
Official Factory plugins marketplace containing curated skills, droids, and tools.
Autonomous experiment loop for optimization research. Use when the user wants to: - Optimize a metric through systematic…
Create a pull request with Conventional Commits formatting, a templated body, and local verification. Use when the user asks to…
Intercept and debug HTTP traffic from any CLI, service, or script using HTTP Toolkit. Use when you need to inspect LLM API calls,…
Control terminal TUIs, browsers, and native desktop apps for testing, demos, QA, and computer-use tasks. Use when you need to…
Automate browser interactions for web testing, form filling, screenshots, and data extraction. Use when the user needs to: -…
Build good-looking web interfaces. Use when: - User asks you to build a web app, website, landing page, or HTML page - User asks…