.claude/skills/pair-process-review/SKILL.md
Reviews a pull request through a structured 6-phase process: validation, technical review, adoption compliance, completeness check, decision, and optional merge with parent cascade. Composes /pair-capability-verify-quality, /pair-capability-verify-done, /pair-capability-record-decision, /pair-capability-assess-debt (required) and /pair-capability-verify-adoption, /pair-capability-assess-stack (optional with graceful degradation). Output follows the code review template. Idempotent — re-invocation resumes from incomplete phases.
npx skillsauth add foomakers/pair pair-process-reviewInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Review a pull request through 6 sequential phases (5 review + 1 optional merge). Each phase composes atomic skills and follows the check → skip → act → verify pattern for idempotent re-invocation.
| Skill | Type | Required | Phase | Purpose |
| ------------------ | ---------- | -------- | ----- | ------------------------------------ |
| /pair-capability-verify-quality | Capability | Yes | 2 | Quality gate checking |
| /pair-capability-verify-done | Capability | Yes | 4 | Definition of Done checking |
| /pair-capability-record-decision | Capability | Yes | Any | Record missing ADR (HALT condition) |
| /pair-capability-assess-debt | Capability | Yes | 4 | Flag tech debt items |
| /pair-capability-verify-adoption | Capability | Optional | 3 | Full adoption compliance (from #105) |
| /pair-capability-assess-stack | Capability | Optional | 3 | Tech-stack resolution (from #104) |
| /pair-capability-execute-manual-tests | Capability | Optional | 6 | Post-merge release validation (manual tests) |
| Argument | Required | Description |
| -------- | -------- | -------------------------------------------------------------------------------- |
| $pr | Yes | PR number or URL to review |
| $story | No | Story ID for requirements validation. If omitted, extracted from PR description. |
Maintain throughout the review:
CODE REVIEW STATE:
├── PR: [#PR-NUMBER: Title]
├── Phase: [1-validation | 2-technical | 3-adoption | 4-completeness | 5-decision | 6-merge]
├── Story: [#ID: Title]
├── Review Type: [feature | bug | refactor | docs | config]
├── Issues: [critical: N | major: N | minor: N]
├── Debt Items: [N flagged]
└── Decision: [pending | APPROVED | CHANGES-REQUESTED | TECH-DEBT]
$story argument. Read story from PM tool:
feature, bug, refactor, docs, or config based on:
Present analysis:
REVIEW READY:
├── PR: [#NUMBER: Title]
├── Author: [name]
├── Story: [#ID: Title | N/A]
├── Type: [feature | bug | refactor | docs | config]
├── Files Changed: [N files, +X/-Y lines]
└── AC: [N criteria to validate]
Ask: "Proceed with review?"
/pair-capability-verify-quality already run on the current PR head commit?/pair-capability-verify-quality with $scope = all.adoption/tech/adr//pair-capability-record-decision with $type = architectural and $topic describing the gap.This phase uses a 4-level graceful degradation cascade depending on which optional skills are installed:
| Level | /pair-capability-verify-adoption | /pair-capability-assess-stack | Behavior | | ----- | ---------------- | ------------- | ---------------------------------------------------------- | | 1 | Installed | Installed | Full adoption compliance + automatic tech-stack resolution | | 2 | Installed | Not installed | Full compliance detection, manual stack resolution | | 3 | Not installed | Installed | Inline tech-stack check only + automatic resolution | | 4 | Not installed | Not installed | Warn developer for manual verification |
/pair-capability-verify-adoption installed? Is /pair-capability-assess-stack installed?Level 1 (/pair-capability-verify-adoption + /pair-capability-assess-stack):
/pair-capability-verify-adoption with $scope = all./pair-capability-assess-stack → developer approves (add to stack) or rejects (CHANGES-REQUESTED)./pair-capability-record-decision.Level 2 (/pair-capability-verify-adoption only):
/pair-capability-verify-adoption with $scope = all.Level 3 (/pair-capability-assess-stack only):
/pair-capability-assess-stack → developer approves or rejects.Level 4 (neither installed):
Warn:
/pair-capability-verify-adoptionand/pair-capability-assess-stackare not installed — skipping automated adoption compliance. Please manually verify code against adoption files.
Move to Phase 4.
/pair-capability-verify-done already run in this session?/pair-capability-verify-done with $scope = all and $story (if available)./pair-capability-assess-debt already run in this session?/pair-capability-assess-debt with $scope = all.Based on compiled findings:
| Decision | Condition | | --------------------- | ----------------------------------------------------------------------------------------- | | APPROVED | No critical or major issues. All AC met. Quality gates pass. | | CHANGES-REQUESTED | Critical issues found, missing ADRs, security vulnerabilities, failing tests, AC not met. | | TECH-DEBT | Only minor issues or debt items. Approve current PR, track debt separately. |
event = APPROVE.event = REQUEST_CHANGES.pull_request_review_write with method = create and appropriate event.gh pr review <number> --approve or --request-changes.Check: What was the review decision?
Skip: If CHANGES-REQUESTED → output review report and stop. Author addresses findings, then re-invokes /pair-process-review.
Act: If APPROVED or TECH-DEBT → ask reviewer:
PR approved. Merge now or let the author merge?
- Merge now — proceed to Phase 6
- Author merges — stop here, author re-invokes
/pair-process-implementPhase 4
Verify: If "Merge now" selected → proceed to Phase 6. Otherwise → output and stop.
squash.squash, merge, or rebase).Act: Draft the merge commit message following the commit template:
[#<story-id>] feat: <story description>
- <summary of changes>
- Tasks: T-1, T-2, ..., T-N
Refs: #<story-id>
Act (BLOCKING): Present to reviewer for confirmation:
Merge commit message:
[commit message]Confirm or edit?
Verify: Reviewer confirms message.
merge_pull_request with merge_method and commit_title + commit_message.gh pr merge <number> --squash --subject "<title>" --body "<body>".issue_write with method = update, state = closed, state_reason = completed.gh issue close <story-number> --reason completed.issue_read with method = get_sub_issues on the epic.state_reason = completed.git push origin --delete <branch>./pair-capability-execute-manual-tests installed? Does the project have a manual test suite (qa/ directory)?/pair-capability-execute-manual-tests with $scope = all, $priority = P0 (blockers only for fast validation).At review decision (Phase 5):
REVIEW COMPLETE:
├── PR: [#NUMBER: Title]
├── Story: [#ID: Title | N/A]
├── Decision: [APPROVED | CHANGES-REQUESTED | TECH-DEBT]
├── Issues: [critical: N | major: N | minor: N]
├── Quality: [PASS | FAIL — N gates]
├── DoD: [N/N criteria met]
├── Adoption: [Level N — summary]
├── Debt: [N items flagged]
└── Report: [Posted as PR comment]
At merge (Phase 6):
STORY DONE:
├── Story: [#ID: Title]
├── PR: [#PR-number — merged]
├── Merge: [squash | merge | rebase]
├── Story: Done
├── Epic: [#ID — Done | In Progress (X/Y stories done)]
├── Initiative: [#ID — Done | In Progress (X/Y epics done)]
└── Manual Tests: [PASS | FAIL — N issues created | SKIPPED — no suite]
Review stops immediately when:
/pair-capability-record-decision, then resumeOn HALT: report the blocker, compose the resolution skill if available, wait for developer.
Re-invoking /pair-process-review on a partially reviewed PR is safe:
/pair-process-implement Phase 4.development
Creates or updates a Product Requirements Document through structured template analysis, hypothesis-driven information gathering, and iterative review. Idempotent — detects existing PRD and offers selective section update.
development
Reviews a pull request through a structured 6-phase process: validation, technical review, adoption compliance, completeness check, decision, and optional merge with parent cascade. Composes /verify-quality, /verify-done, /record-decision, /assess-debt (required) and /verify-adoption, /assess-stack (optional with graceful degradation). Output follows the code review template. Idempotent — re-invocation resumes from incomplete phases.
tools
Refines a user story from Todo to Refined state through structured phases: selection, requirements analysis (Given-When-Then), technical analysis, sprint readiness, and documentation. Section-level idempotency — detects partial refinement and resumes. Composes /write-issue for PM tool updates.
testing
Breaks a refined user story into implementation tasks. Task-level idempotency: detects existing tasks and creates only missing ones. Appends condensed Technical Analysis + Task Breakdown (checklist, Dependency Graph, AC Coverage table, detailed tasks) to the story body. Composes /write-issue to update the story issue body. Tasks are documented inline in the story — no separate task issues are created.