一键导入
ru-review
// Review GitHub issues and PRs across repositories using the ru CLI tool. Use when asked to review issues, PRs, or run ru review. CRITICAL - never stash or discard user changes; commit them first if needed.
// Review GitHub issues and PRs across repositories using the ru CLI tool. Use when asked to review issues, PRs, or run ru review. CRITICAL - never stash or discard user changes; commit them first if needed.
| name | ru-review |
| description | Review GitHub issues and PRs across repositories using the ru CLI tool. Use when asked to review issues, PRs, or run ru review. CRITICAL - never stash or discard user changes; commit them first if needed. |
The ru (Repo Updater) CLI has a built-in ru review command that reviews GitHub issues and PRs across all configured repositories using Claude. It includes the project's contribution policy automatically.
If repositories have uncommitted changes, NEVER use git stash. This risks losing user work and is extremely dangerous. Stashed changes can be difficult to recover, especially untracked files which require git show stash@{0}^3:path to extract.
Do not run git checkout, git reset, git clean, or any command that modifies uncommitted changes without explicit user permission.
If repos have uncommitted changes and the user wants to proceed with review, commit the changes first. Use this exact approach:
Now, based on your knowledge of the project, commit all changed files now in a series of logically connected groupings with super detailed commit messages for each and then push. Take your time to do it right. Don't edit the code at all. Don't commit obviously ephemeral files. Use ultrathink.
How to group commits logically:
feat(scope): description or fix(scope): descriptionSkip ephemeral files (do NOT commit):
target/, target_*/ - Rust build directoriesnode_modules/, web/node_modules/ - npm packages*.pyc, __pycache__/ - Python bytecodeplaywright-report/, test-results/ - Test artifacts.coverage, htmlcov/ - Coverage reports*.log filesThe ru review command automatically skips repositories with uncommitted changes. This is the correct behavior. Let it skip them rather than trying to force them clean.
Found uncommitted changes in repos?
├── User wants to proceed with ru review?
│ ├── YES → Ask: "Should I commit these changes first?"
│ │ ├── User says YES → Commit with logical groupings, push, then run ru review
│ │ └── User says NO → Let ru skip those repos, review clean repos only
│ └── NO → Stop, let user handle their changes
└── No uncommitted changes → Run ru review normally
ru review --dry-run # See what issues/PRs exist without starting sessions
ru review --plan # Generate review plans, no mutations
ru review --apply # Execute approved plans from previous --plan run
--mode=local - Use local Claude instead of ntm--max-repos=N - Limit number of repos to review--repos=PATTERN - Filter repos by pattern (regex)--skip-days=N - Skip repos reviewed within N days--parallel=N - Concurrent review sessions (default: 4)--push - Allow pushing changes (with --apply)WE. DO. NOT. MERGE.
We don't allow PRs or outside contributions to any of these projects as a matter of policy. Here is the policy disclosed to users:
About Contributions: Please don't take this the wrong way, but I do not accept outside contributions for any of my projects. I simply don't have the mental bandwidth to review anything, and it's my name on the thing, so I'm responsible for any problems it causes; thus, the risk-reward is highly asymmetric from my perspective. I'd also have to worry about other "stakeholders," which seems unwise for tools I mostly make for myself for free. Feel free to submit issues, and even PRs if you want to illustrate a proposed fix, but know I won't merge them directly. Instead, I'll have Claude or Codex review submissions via
ghand independently decide whether and how to address them. Bug reports in particular are welcome. Sorry if this offends, but I want to avoid wasted time and hurt feelings. I understand this isn't in sync with the prevailing open-source ethos that seeks community contributions, but it's the only way I can move at this velocity and keep my sanity.
gh pr merge - Not ever. Not for any reason.When reviewing issues and PRs:
Use gh to respond on behalf of the owner:
When multiple agents are reviewing repos simultaneously:
Example: If another agent is working on beads_viewer, start from xf and work backwards through wasm_cmaes, ultrasearch, etc.
Check what needs review
ru review --dry-run
Start plan-mode review
ru review --plan --mode=local
If repos have uncommitted changes:
After review plans are approved:
ru review --apply --push
This is normal and expected. Options:
This often means some repos were skipped due to uncommitted changes but others succeeded. The review will still run on the successfully prepared repos.
If you see "Invalid JSON, refusing to write checkpoint":
rm -f ~/.local/state/ru/review/review-checkpoint.json
git stash - NEVER stash user changesgit checkout -- . - NEVER discard changesgit reset --hard - NEVER reset working treegit clean -fd - NEVER clean untracked filesgh commands for bulk operations - use ru's orchestrationru review --dry-run to discover work items--mode=local if ntm has issuesIf someone accidentally stashed changes, here's how to recover:
git stash pop # Restore tracked changes
Untracked files in a stash are stored in the third parent commit. To recover:
# List untracked files in stash
git show stash@{0}^3 --name-only
# Extract a specific untracked file
git show stash@{0}^3:path/to/file.rs > path/to/file.rs
# Find dangling stash commits
git fsck --unreachable | grep commit
# For each commit, check if it's your stash
git show <commit-hash>
# Recover if found
git stash apply <commit-hash>
# 1. Discovery - see what needs review
ru review --dry-run
# 2. Check for dirty repos
for repo in /data/projects/*/; do
(cd "$repo" && [ -n "$(git status --porcelain)" ] && echo "$repo has changes")
done
# 3. If dirty repos exist, commit them first (with user permission)
# Use logical groupings, detailed messages, push each repo
# 4. Run the review
ru review --plan --mode=local
# 5. After plans approved
ru review --apply --push
When reviewing issues and PRs, remember:
When the repo owner is Jeffrey Emanuel (GitHub: Dicklesworthstone, X/Twitter: @doodlestein), you MUST check his recent Twitter posts before giving advice or making statements in his name on topics he may have publicly discussed.
Jeffrey has public opinions on many technical topics. Responses on his behalf should be consistent with his stated positions. Checking Twitter ensures you don't contradict something he's already said publicly.
Use the xf tool to search his Twitter archive:
# Search for relevant tweets on a topic
xf search "contribution policy" --limit 10
# Search for opinions on specific tech
xf search "local LLM" --limit 10
# Search recent tweets (within last N days)
xf search "openrouter" --since "90 days ago" --limit 10
The Twitter data is indexed at /data/projects/my_twitter_data and accessible via xf.
# User asks about OpenRouter support
xf search "openrouter" --limit 5
# User asks about contribution policy
xf search "contribution" --limit 5
xf search "pull request" --limit 5
# User asks about local models
xf search "local model" --limit 5
xf search "ollama" --limit 5
If you find relevant tweets, incorporate his stated position into your response. If no relevant tweets exist, proceed with your best judgment based on project context.