From Dev10x
Audits merged GitHub PRs for unresolved review threads, groups findings by themes like security or error handling, and creates follow-up issues to track tech debt.
npx claudepluginhub dev10x-guru/dev10x-claude --plugin Dev10xThis skill is limited to using the following tools:
**Announce:** "Using Dev10x:gh-pr-doctor to audit merged PRs
Creates isolated Git worktrees for feature branches with prioritized directory selection, gitignore safety checks, auto project setup for Node/Python/Rust/Go, and baseline verification.
Executes implementation plans in current session by dispatching fresh subagents per independent task, with two-stage reviews: spec compliance then code quality.
Dispatches parallel agents to independently tackle 2+ tasks like separate test failures or subsystems without shared state or dependencies.
Announce: "Using Dev10x:gh-pr-doctor to audit merged PRs for unresolved review threads."
This skill follows references/task-orchestration.md patterns.
REQUIRED: Create tasks before ANY work. Execute at startup:
TaskCreate(subject="Scan PRs for unresolved threads", activeForm="Scanning PRs")TaskCreate(subject="Classify and group findings", activeForm="Classifying findings")TaskCreate(subject="Create follow-up issues", activeForm="Creating issues")TaskCreate(subject="Post audit trail comments", activeForm="Posting audit trail")Audits closed/merged PRs for unresolved review comment threads — legitimate feedback (security, race conditions, dead code) that silently accumulates as tech debt after PR merge.
Workflow:
GH-NNN PR Audit marker)--repo owner/repo — target a specific repo--limit N — max PRs to scan (default: 200)--dry-run — show findings without creating issues${CLAUDE_PLUGIN_ROOT}/skills/gh-pr-doctor/scripts/gh-unresolved-threads.py \
--repo <repo> --limit <N> [--dry-run]
The script:
reviewThreads for isResolvedGH-NNN PR Audit marker in commentsisResolved field{pr_number, title, threads: [{path, body, author}]}Read the scan output and group unresolved threads by theme:
| Theme | Indicators |
|---|---|
| Security | auth, permission, injection, XSS, CSRF |
| Error handling | exception, error, try/catch, fallback |
| Type safety | type, annotation, Any, cast, typing |
| Dead code | unused, deprecated, remove, cleanup |
| Performance | N+1, query, index, cache, optimize |
| Architecture | coupling, dependency, circular, layer |
| Testing | test, coverage, mock, fixture, assert |
| Other | anything not matching above |
Present grouped findings to the user.
REQUIRED: Call AskUserQuestion (do NOT use plain text).
Options:
For each theme group with findings:
gh issue create --repo <repo> \
--title "PR Audit: <theme> findings (<count> threads)" \
--body "<formatted findings with PR links>"
Issue body format:
## PR Audit: <Theme>
Unresolved review threads found during automated PR audit.
| PR | File | Thread | Author |
|----|------|--------|--------|
| #N | path/file.py | Summary of comment | @author |
### Source PRs
- #N: PR title
- #M: PR title
For each audited PR, post a comment marking it as audited:
${CLAUDE_PLUGIN_ROOT}/skills/gh-pr-doctor/scripts/gh-audit-comment.py \
--repo <repo> --mapping <issues-json>
Comment format:
GH-NNN PR Audit — unresolved threads tracked in:
- #X: Security findings
- #Y: Error handling findings
This marker enables incremental re-runs — already-audited PRs are skipped on subsequent invocations.
${CLAUDE_PLUGIN_ROOT}/skills/gh-pr-doctor/scripts/gh-audit-check.py \
--repo <repo>
Reports:
Can be invoked standalone or as part of a maintenance workflow:
Dev10x:fanout to process findingsDev10x:work-on per created issue