ワンクリックで
process-prs
Review open PRs and address feedback from tkadauke
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
メニュー
Review open PRs and address feedback from tkadauke
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
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).