ru-multi-repo-workflow
Use when using ru for multi-repo commits, sync, GitHub review, or maintenance automation.
What this skill does
# ru Multi-Repo Workflow > **Core Insight:** ru automates the mechanical. Your job is judgment: substantive merge conflicts, scope creep decisions, canonical version selection. If it doesn't require human judgment, it should just happen. ## Quick Start ```bash # Health check ru doctor && gh auth status # Phase 1: Commit dirty repos ru status --json | jq '[.repos[] | select(.dirty)]' # Find dirty cd /data/projects/REPO && cat AGENTS.md README.md # Understand git add FILES && git commit -m "MSG" && git push # Commit # Phase 2: Sync all repos ru sync -j4 # Parallel sync git log --oneline HEAD...origin/main # See divergence # Phase 3: Review issues/PRs ru review --dry-run # See open items gh issue view NUMBER -R owner/repo # Investigate # Phase 4: Release & Monitor (for repos with GH Actions) ls .github/workflows/*.yml 2>/dev/null && echo "Has CI" # Detect gh run list --limit 5 # Recent runs gh run watch # Monitor live ``` --- ## The 4 Phases | Phase | Summary | Key Command | |-------|---------|-------------| | **1. Smart Commits** | Dirty repos → understand → commit logical groups → push | `ru status` | | **2. Smart Sync** | Pull all → resolve conflicts (CAREFUL!) → canonical version → push | `ru sync -j4` | | **3. Issue/PR Review** | Discover 2025+ → verify independently → respond via gh | `ru review` | | **4. Release & Monitor** | Detect CI repos → watch runs → iterate on failures until green | `gh run list` | **Always run in order.** Can't release if not committed. Can't review if not synced. --- ## What to Surface vs Just Handle | Surface (needs judgment) | Just Handle (mechanical) | |--------------------------|--------------------------| | Substantive merge conflicts | Clean fast-forwards | | Complex feature requests | Stale issues (pre-2025) | | PR ideas worth considering | Issues already fixed | | Ambiguous canonical version | Obvious bugs, clear fixes | | Security-related anything | Simple fitting features | --- ## Phase 1: Smart Commits **The only rule:** Understand before committing. 2 minutes reading AGENTS.md saves 20 minutes of confusion. ```bash ru status --json 2>/dev/null | jq -r '.repos[] | select(.dirty) | .name' cd /data/projects/REPO && cat AGENTS.md README.md git add path/to/related/files && git commit -m "$(cat <<'EOF' Why this change exists (not what changed) - Specific detail 1 - Specific detail 2 Co-Authored-By: Claude <[email protected]> EOF )" git push ``` **Deep dive:** [PHASE1-COMMITS.md](references/PHASE1-COMMITS.md) | **Prompt:** [PROMPTS.md](references/PROMPTS.md#phase-1-smart-commits) --- ## Phase 2: Smart Sync **Key insight:** "Canonical" ≠ "Latest". Manual diff required—this cannot be mechanically determined. | Situation | Usually Canonical | But Check | |-----------|-------------------|-----------| | Local ahead | Local | Unless local is experiments | | Remote ahead | Remote | Unless remote lost work | | Diverged, different files | Merge both | Straightforward | | Diverged, same files | **SURFACE** | Judgment required | ```bash ru sync -j4 git log --oneline HEAD...origin/main # See divergence git diff HEAD origin/main # See actual changes ``` ### SURFACE FORMAT: Conflicts ``` 🚨 CONFLICT REQUIRING JUDGMENT: repo_name Local (abc123): Refactored auth to use JWT Remote (def456): Refactored auth to use sessions Options: 1. Keep local (JWT approach) 2. Keep remote (session approach) 3. Manual merge Which aligns with project direction? ``` **Deep dive:** [PHASE2-SYNC.md](references/PHASE2-SYNC.md) | **Prompt:** [PROMPTS.md](references/PROMPTS.md#phase-2-smart-sync) --- ## Phase 3: Issue/PR Review **Key insight:** Never trust user reports blindly. Independent verification required. | Type | Verified? | Action | |------|-----------|--------| | Bug, confirmed, unfixed | ✓ | Fix it, close: `gh issue close N -c "Fixed in SHA"` | | Bug, already fixed | ✓ | Close: `gh issue close N -c "Fixed in SHA"` | | Bug, can't reproduce | ? | Ask: `gh issue comment N -b "Need: steps, OS, error"` | | Bug, pre-2025 | ✗ | Close: `gh issue close N -c "Closing as stale"` | | Feature, simple, fits | ✓ | Implement, close | | Feature, complex | ? | **SURFACE** | | Feature, scope creep | ✗ | Decline politely | | PR, any | — | **NEVER MERGE**, mine for ideas, close with explanation | ```bash ru review --dry-run --json 2>/dev/null | jq '[.items[] | select(.created_at >= "2025-01-01")]' gh issue view NUMBER -R owner/repo gh pr diff NUMBER -R owner/repo # THE INTEL ``` ### SURFACE FORMAT: Scope Decisions ``` 🤔 FEATURE REQUEST: owner/repo#42 — "Add support for X" User's problem: [What they're trying to do] Analysis: + Would help users doing Y - Maintenance burden - Could lead to scope creep Options: 1. Implement as requested 2. Implement simpler version 3. Decline My recommendation: [X] because [reason] ``` **Deep dive:** [PHASE3-REVIEW.md](references/PHASE3-REVIEW.md) | **Prompt:** [PROMPTS.md](references/PROMPTS.md#phase-3-issuepr-review) --- ## Phase 4: Release & Monitor **Key insight:** Push triggers CI. Watch until green. Iterate on failures—don't leave broken. ### Detection: Which Repos Have CI? ```bash # Check for workflows ls .github/workflows/*.yml 2>/dev/null # Check for release workflow specifically grep -l "release\|tag" .github/workflows/*.yml 2>/dev/null ``` ### The Monitor Loop ```bash # 1. See recent runs gh run list --limit 5 # 2. Watch active run (blocks until complete) gh run watch # 3. If failed: get logs, diagnose, fix, push, repeat gh run view RUN_ID --log-failed # ... fix the issue ... git add . && git commit -m "fix: CI issue" && git push gh run watch # Monitor the fix ``` ### What NOT to Commit (Ephemeral Filter) | Skip These | Why | |------------|-----| | `*.log`, `*.tmp`, `*~` | Transient | | `target/`, `node_modules/`, `dist/` | Build artifacts | | `.env`, `*.key`, `credentials.*` | **SECRETS** | | `.DS_Store`, `Thumbs.db` | OS junk | | `.idea/`, `.vscode/` | IDE config | ### SURFACE FORMAT: Persistent CI Failure ``` 🔴 CI FAILING: owner/repo — Run #12345 Failure: [test name or step] Error: [key error message] Attempted fixes: 1. [What you tried] 2. [What you tried] This may require judgment: - [ ] Is this a flaky test? - [ ] Is this a real regression? - [ ] Is this environment-specific? Logs: gh run view 12345 --log-failed ``` **Deep dive:** [PHASE4-RELEASE.md](references/PHASE4-RELEASE.md) | **Prompt:** [PROMPTS.md](references/PROMPTS.md#phase-4-release--monitor) --- ## References | Topic | Resource | |-------|----------| | **All Prompts** | [PROMPTS.md](references/PROMPTS.md) | | Phase 1 deep dive | [PHASE1-COMMITS.md](references/PHASE1-COMMITS.md) | | Phase 2 deep dive | [PHASE2-SYNC.md](references/PHASE2-SYNC.md) | | Phase 3 deep dive | [PHASE3-REVIEW.md](references/PHASE3-REVIEW.md) | | Phase 4 deep dive | [PHASE4-RELEASE.md](references/PHASE4-RELEASE.md) | | gh command reference | [GH-COMMANDS.md](references/GH-COMMANDS.md) | | Troubleshooting | [PITFALLS.md](references/PITFALLS.md) | ## Scripts | Script | Purpose | |--------|---------| | `scripts/validate.sh` | Health check (ru, gh, jq, API connectivity) | | `scripts/review-sweep.sh owner/repo` | Full review workflow for one repo | --- ## Validation ```bash ./scripts/validate.sh # Full health check ```
Related in Code Review
gstack
IncludedFast headless browser for QA testing and site dogfooding. Navigate pages, interact with elements, verify state, diff before/after, take annotated screenshots, test responsive layouts, forms, uploads, dialogs, and capture bug evidence. Use when asked to open or test a site, verify a deployment, dogfood a user flow, or file a bug with screenshots. (gstack)
startup-due-diligence
IncludedLegal due diligence review for seed-stage and Series A startups (US, Delaware C-Corp focus). Supports both investor and founder perspectives. Capabilities include: (1) Interactive document review and issue spotting; (2) Document request list generation; (3) Cap table and SAFE/convertible note analysis; (4) Red flag identification with severity ratings; (5) Diligence report generation. TRIGGERS: due diligence, DD, startup investment, cap table review, Series A, seed round, investor diligence, legal review startup, SAFE analysis, convertible note, 409A, founder vesting.
interview-master
IncludedThis skill should be used when the user asks to "generate interview questions", "prepare for interview", "optimize resume", "conduct mock interview", "analyze git commits for resume", "generate resume from code", "review my resume", or mentions interview preparation, career assistance, or extracting project experience from git history. Provides comprehensive interview and career development guidance for both job seekers and interviewers.
fix-issue
IncludedFixes GitHub issues using parallel analysis agents for root cause investigation, code exploration, and regression detection. Reads issue context from gh CLI, searches codebase and memory for related patterns, generates a fix with tests, and links the resolution back to the issue via PR. Includes prevention analysis to avoid recurrence. Use when debugging errors, resolving regressions, fixing bugs, or triaging issues.
sf-apex
IncludedGenerates and reviews Salesforce Apex code with 150-point scoring. TRIGGER when: user writes, reviews, or fixes Apex classes, triggers, test classes, batch/queueable/schedulable jobs, or touches .cls/.trigger files. DO NOT TRIGGER when: LWC JavaScript (use sf-lwc), Flow XML (use sf-flow), SOQL-only queries (use sf-soql), or non-Salesforce code.
swift-development
IncludedComprehensive Swift development for building, testing, and deploying iOS/macOS applications. Use when Claude needs to: (1) Build Swift packages or Xcode projects from command line, (2) Run tests with XCTest or Swift Testing framework, (3) Manage iOS simulators with simctl, (4) Handle code signing, provisioning profiles, and app distribution, (5) Format or lint Swift code with SwiftFormat/SwiftLint, (6) Work with Swift Package Manager (SPM), (7) Implement Swift 6 concurrency patterns (async/await, actors, Sendable), (8) Create SwiftUI views with MVVM architecture, (9) Set up Core Data or SwiftData persistence, or any other Swift/iOS/macOS development tasks.