con un clic
process-prs
Review open PRs and address feedback from tkadauke
Instalar con Codex o Claude Copia este prompt, pégalo en Codex, Claude u otro asistente, y deja que revise la página de la skill y la instale por ti.
Menú
Review open PRs and address feedback from tkadauke
Instalar con Codex o Claude Copia este prompt, pégalo en Codex, Claude u otro asistente, y deja que revise la página de la skill y la instale por ti.
Basado en la clasificación ocupacional SOC
Implement a GitHub issue in an isolated worktree, commit, push, and create a PR
Rebase a PR onto master, merge it, and clean up branches/worktrees
Scan GitHub issues and create PRs or comment with questions
| name | process-prs |
| description | Review open PRs and address feedback from tkadauke |
| disable-model-invocation | true |
| argument-hint | [--limit N] |
| allowed-tools | ["Read","Write","Edit","Grep","Glob","Bash","Agent"] |
Process open PRs for tkadauke/tiny_ci. Address review feedback from humans, skip PRs with no new feedback.
Limit: Process up to $ARGUMENTS PRs with actionable feedback (default: 3).
export GH_TOKEN=$(~/.github/gh-token.sh)
bash ${CLAUDE_SKILL_DIR}/cleanup.sh
gh pr list --repo tkadauke/tiny_ci --state open --json number,title,headRefName,author
Do NOT post-filter this list with --jq '.[0:N]', head, head_limit,
or any other top-N truncation. Pull every open PR and let the tracker
comparison below decide which have new feedback. Sorting by updatedAt and
truncating is fragile — it will silently drop PRs in edge cases.
Only act on PRs authored by tkadauke or tkadauke-winston[bot].
GitHub is the source of truth for which PRs exist; the tracker is just a
cache of "when did we last look at this PR." A PR can land in the tracker
via several paths (process-issues seeding, manual implement-issue
invocation, hand-authored PR by tkadauke), and we must not depend on any
single path having run.
For every open PR returned above that is authored by tkadauke or
tkadauke-winston[bot] AND is missing from .trackers/pr-tracker.json,
add an entry with last_processed_at: "1970-01-01T00:00:00Z" so the
feedback comparison below treats it as "never processed, look at it." Save
the tracker.
Also remove any tracker entries whose PR is no longer open (merged/closed).
For each remaining tracked PR, fetch feedback:
gh pr view NUMBER --repo tkadauke/tiny_ci --json reviews,comments
Skip PRs with no new human feedback since last_processed_at. Only
@tkadauke is a human. Ignore @tkadauke-winston[bot] comments.
Take the first N PRs with actionable feedback.
git checkout master (if needed)git worktree add .claude/worktrees/pr-NUMBER BRANCHgit -C .claude/worktrees/pr-NUMBER config user.name "tkadauke-winston[bot]"git -C .claude/worktrees/pr-NUMBER config user.email "tkadauke-winston[bot]@users.noreply.github.com"If delegating to a sub-Agent, the agent prompt MUST include this verbatim block to prevent broad filesystem scans:
All file operations must be absolute paths under
.claude/worktrees/pr-NUMBER/. Do NOT runfind,glob, orgrepagainst/Users/tkadaukeor~— stay inside the worktree and (when needed)~/.github/gh-token.shfor auth.
BUNDLE_GEMFILE=.claude/worktrees/pr-NUMBER/Gemfile bundle install --quiet
BUNDLE_GEMFILE=.claude/worktrees/pr-NUMBER/Gemfile bundle exec rails zeitwerk:check
BUNDLE_GEMFILE=.claude/worktrees/pr-NUMBER/Gemfile bundle exec rails test
zeitwerk:check covers load-order; the test suite covers behaviour.
Expected baseline: ~210 runs, 0 failures, 0 errors, ~17 skips. Do not
consider a PR ready unless both are clean. If the rbenv shim triggers
permission-prompt loops, invoke through the absolute path of the
versioned binary instead (/Users/tkadauke/.rbenv/versions/3.2.3/bin/bundle ...).git -C .claude/worktrees/pr-NUMBER add -A && git -C .claude/worktrees/pr-NUMBER commit -m "..."git -C .claude/worktrees/pr-NUMBER push origin BRANCHgit worktree remove .claude/worktrees/pr-NUMBER.trackers/pr-tracker.jsongit worktree remove --force .claude/worktrees/pr-NUMBER
Log error, continue to next PR.
After all PRs, scan feedback for general lessons (coding conventions, style preferences, common mistakes). If new lessons found that aren't in CLAUDE.md:
git fetch origin mastergit worktree add .claude/worktrees/claude-md -b winston/update-claude-md-lessons origin/mastergit -C .claude/worktrees/claude-md push -u origin winston/update-claude-md-lessonsgh pr create --repo tkadauke/tiny_ci --head winston/update-claude-md-lessons --title "..." --base mastergit worktree remove .claude/worktrees/claude-mdSkip if no new lessons found.
.trackers/pr-tracker.json:
{
"prs": {
"14": {
"last_processed_at": "2026-04-27T12:00:00Z",
"last_human_feedback_at": "2026-04-27T11:00:00Z",
"iterations": 2
}
}
}
Save state after EACH PR (crash-safe).