aggregate-logs
Generate LEARNINGS.md from skill execution logs over a configurable time window.
Error handling, troubleshooting guide, and known issues.
> /plugin marketplace add athola/claude-night-marketHow it fires
How this command gets triggered: by you, by Claude, or both.
/troubleshooting-fixesContext preview
What this command does when you run it.
Error handling, troubleshooting guide, and known issues.
Error handling, troubleshooting guide, and known issues.
> **See Also**: [Main Command](../fix-pr.md) | [Workflow Steps](workflow-steps.md) | [Configuration](configuration-options.md)
1. validate clean working directory 2. Pull latest changes from remote 3. Confirm PR is still open 4. Check for merge conflicts
1. Review proposed fixes before applying 2. Monitor for unexpected side effects 3. Keep detailed logs of changes made 4. Verify tests still pass after each batch
1. Push changes to remote 2. **VERIFY all threads have replies** - each addressed comment must have a response 3. **Threads auto-resolved via Phase 7** - `/resolve-threads` runs automatically 4. **POST SUMMARY COMMENT (MANDATORY)** - See Phase 6. This step is NOT optional. 5. Check CI pipeline status 6. Notify reviewers of updates 7. If any threads couldn't be resolved, document them in a PR comment
Error: GitHub API rate limit exceeded Solution: Wait and retry, or use --dry-run mode
Warning: Unable to auto-generate fix for comment Manual review required: "Consider broader architectural implications"
Error: Fix conflicts with recent changes Solution: Pull latest, resolve conflicts, re-run the command
**Problem:** Thread resolution fails or threads can't be queried because the review is still in PENDING state.
**Symptoms:**
**Root Cause:** When a reviewer starts a review but hasn't submitted it (clicked "Submit review"), the review remains in PENDING state. Threads associated with pending reviews:
**Diagnosis:**
# Check for pending reviews
gh pr view --json reviews -q '.reviews[] | {author: .author.login, state: .state}'
# If you see state: "PENDING", the review hasn't been submitted**Solution:** 1. **If you are the reviewer:** Submit or discard your pending review in the GitHub UI 2. **If waiting on someone else:** Ask them to submit their review 3. **After review is submitted:** Re-run `/fix-pr` to process the now-resolved threads
**Prevention:**
---
**Problem:** After running `/fix-pr`, review threads are not commented on and remain unresolved.
**Root Cause:** Step 6.3 (Thread Resolution) is documented but not being executed during workflow.
**Diagnosis:** 1. Check if TodoWrite items were created for thread resolution:
# Look for these todos in the session: # - fix-pr:thread-preflight # - fix-pr:thread-reply # - fix-pr:thread-resolve # - fix-pr:thread-validate
2. Verify threads actually exist:
gh api graphql -f query='...' | jq '.data.repository.pullRequest.reviewThreads.nodes | length'
**Solution:** 1. **Manual execution** - Run Step 6.3 manually from `workflow-steps.md` 2. **Use standalone command** - Run `/resolve-threads <pr-number>` as fallback 3. **Verify enforcement** - Step 6.3 now includes validation checkpoint that blocks proceeding if threads aren't resolved
**Prevention:**
**Problem:** Step 6.3 validation reports threads still unresolved after attempting to resolve them.
**Diagnosis:**
# Check which threads are still unresolved gh api graphql -f query='...' | jq -r '.data.repository.pullRequest.reviewThreads.nodes[] | select(.isResolved == false) | "\(.path):\(.line)"'
**Common Causes:** 1. **GraphQL mutation failed silently** - Check for API errors 2. **Wrong thread ID used** - Verify using `PRRT_*` format, not numeric comment ID 3. **Permissions issue** - Token may lack `repo` scope for thread resolution 4. **Wrong mutation name** - Use `resolveReviewThread` NOT `resolvePullRequestReviewThread` (which doesn't exist)
**Solution:** 1. Re-run thread resolution with verbose output:
gh api graphql -f query='mutation { resolveReviewThread(...) }' --include2. Check token permissions:
gh auth status # Ensure "repo" scope is granted
3. Use `/resolve-threads` command which handles errors better:
/resolve-threads <pr-number>
**Problem:** Using `$()` substitution inside `gh api` commands causes shell syntax errors.
# WRONG - This FAILS with syntax errors REPO=$(gh repo view --json nameWithOwner -q .nameWithOwner) gh api repos/$REPO/pulls/40/comments # Breaks due to escaping issues
**Solution:** Get repo info separately, then use literal values:
# CORRECT - get info first, then use literals gh repo view --json nameWithOwner -q .nameWithOwner # Returns: owner/repo # Then use the actual values directly in the query gh api repos/owner/repo/pulls/40/comments
**Problem:** `addPullRequestReviewComment` mutation doesn't accept `pullRequestReviewThreadId`.
# WRONG - This FAILS
gh api graphql -f query='
mutation {
addPullRequestReviewComment(input: {
pullRequestReviewThreadId: "PRRT_xxx" # Not a valid field!
body: "Fixed"
}) { comment { id } }
}'**Solution:** Use `addPu
A plugin marketplace for Claude Code. Install only the plugins you need to run git workflows, code review, spec-driven development, and autonomous agents from inside your Claude Code session.
Generate LEARNINGS.md from skill execution logs over a configurable time window.
Analyze skill file complexity metrics and generate modularization recommendations for splitting or progressive loading.
Scaffold new Claude Code skills with brainstorming, TDD methodology, and proper frontmatter and module structure.