.claude/skills/pair-process-implement/SKILL.md
Implements a user story by iterating through its tasks one at a time, following a structured 5-step cycle per task. Composes /pair-capability-verify-quality and /pair-capability-record-decision. Reads adoption files for project-specific decisions. Creates a PR at story completion.
npx skillsauth add foomakers/pair pair-process-implementInstall 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.
Implement a user story by processing its tasks sequentially. Each task follows a 5-step cycle: context → branch → implementation → quality → commit. The story-level process has 5 phases (0–4): analysis, setup, implementation, PR creation, and post-review merge. Creates a single PR when all tasks are done.
| Skill | Type | Required |
| ------------------ | ---------- | --------------------------------------------------------------------------------------------------- |
| /pair-capability-verify-quality | Capability | Yes — invoked at quality validation phase |
| /pair-capability-record-decision | Capability | Yes — invoked when a decision needs recording |
| /pair-capability-assess-stack | Capability | Optional — invoked when a new dependency is detected. If not installed, warn and continue. |
| /pair-capability-verify-adoption | Capability | Optional — invoked before commit to check adoption compliance. If not installed, warn and continue. |
Present analysis:
IMPLEMENTATION STATE:
├── Story: [#ID: Title]
├── PM Status: [In Progress ✓ | ⚠️ Not updated — reason]
├── Tasks: [N total — list each with type and status]
├── Task Types: [Development: N, Documentation: N, Configuration: N]
├── Dependencies: [prerequisite stories and their status]
└── Ready: [Yes | No — reason]
Ask: "Ready to proceed with implementation?"
Check: Does a branch for this story already exist? (git branch --list 'feature/#<story-id>-*')
Skip: If branch exists, switch to it (git checkout <branch>) and move to Step 1.3.
Act: Create branch from main:
git checkout main && git pull origin main
git checkout -b feature/#<story-id>-<brief-description>
Verify: On the correct feature branch.
Check: Is this a single-task story?
Skip: If single task, set strategy to commit-per-story (one task = one commit). Move to Phase 2.
Act: Ask the developer:
Commit strategy for this story:
- Commit per task (recommended) — develop one task, ask dev, commit, update checkbox, next task. Single PR at end.
- Commit per story — develop all tasks continuously, then ask dev, commit all, update all checkboxes, single PR.
Verify: Strategy is set. Apply consistently for the entire story.
Process tasks sequentially, one at a time. For each task:
Check: Scan all tasks in dependency order. Find the first task that is not yet completed.
Skip: If all tasks are completed, move to Phase 3.
Act: Set the active task. Update session state:
ACTIVE TASK:
├── Task: [T-N: Title]
├── Type: [Development | Documentation | Configuration | Research]
├── Mode: [TDD | Direct Implementation]
└── Phase: [Starting]
Follow the TDD discipline rules strictly:
InMemoryFileSystemService instead of mocking fs).Check: Did the implementation introduce any new dependency not listed in tech-stack.md?
Skip: If no new dependencies, move to Step 2.5.
Act: Is /pair-capability-assess-stack installed?
Yes: Compose /pair-capability-assess-stack to validate and register the dependency. If /pair-capability-assess-stack rejects (incompatible) → HALT.
No: Warn the developer:
New dependency detected:
[package@version]./pair-capability-assess-stackis not installed — please manually verify against the tech stack and update tech-stack.md.
Verify: Dependency is either validated by /pair-capability-assess-stack or acknowledged by developer.
/pair-capability-record-decision with the appropriate $type (architectural or non-architectural) and $topic.Check: Is /pair-capability-verify-adoption installed?
Skip: If not installed, warn:
/pair-capability-verify-adoptionis not installed — skipping adoption compliance check. Please manually verify code against adoption files. Move to Step 2.7.
Act: Compose /pair-capability-verify-adoption with $scope appropriate to the task.
/pair-capability-assess-stack (tech-stack issues) or /pair-capability-record-decision (architectural gaps).Verify: Adoption compliance confirmed or all non-conformities resolved.
/pair-capability-verify-quality with $scope = all.Check: Is the commit strategy commit-per-task?
Skip: If commit-per-story, continue to next task — return to Step 2.1. No inter-task confirmation.
Act (BLOCKING): Present task summary and ask developer for confirmation BEFORE committing:
TASK DONE:
├── Task: T-N — [title]
├── Files: [N added, N modified]
└── Next: T-N+1 — [title] (or "PR" if last task)
Ask: "Task T-N done. OK to commit or changes needed?"
This confirmation is required for EVERY task. The purpose of commit-per-task is precisely to give the developer a checkpoint between tasks.
Verify: Developer confirms. If changes needed → apply changes, re-run quality (Step 2.7), ask again.
Act: Stage and commit following the commit template:
[#<story-id>] <type>: <task-description>
- <specific changes>
- Task: T-N — <task title>
Refs: #<story-id>
Verify: Commit created.
Act: Update the PM tool story issue body:
- [x] **T-N**) in the Task Breakdown section.Check: Is this the last task?
Check: Is the commit strategy commit-per-story?
Skip: If commit-per-task, all commits already exist. Move to Step 3.2.
Act (BLOCKING): Present summary and ask developer for confirmation BEFORE committing:
ALL TASKS DONE:
├── Tasks: [list all T-N with titles]
├── Files: [N added, N modified]
└── Action: Commit all changes
Ask: "All tasks done. Ready to commit or changes needed?"
Verify: Developer confirms. If changes needed → apply changes, re-run quality, ask again.
Act: Stage all changes and commit:
[#<story-id>] feat: <story-description>
- <summary of all completed tasks>
- Tasks: T-1, T-2, ..., T-N
Refs: #<story-id>
Verify: Commit created with all changes.
Act: Update the PM tool story issue body:
- [x] **T-N**) in the Task Breakdown section.Check: Is the branch already pushed and up to date with remote?
Skip: If up to date, move to Step 3.3.
Act: Push the branch:
git push -u origin feature/#<story-id>-<description>
Verify: Branch pushed to remote.
Act: Present a summary before creating the PR:
PR READY:
├── Branch: [feature/#story-id-description]
├── Tasks: [N/N completed]
├── Commits: [N commits on branch]
├── Quality: [All gates passing]
└── Title: [#<story-id>] <type>: <brief description>
Ask: "Ready to create the PR?"
Verify: Developer confirms. If not → wait for developer instructions.
[#<story-id>] <type>: <brief description>Closes #<story-id>)gh pr ready), mark it explicitly.After code review approval (typically via /pair-process-review), re-invoke /pair-process-implement to merge and close.
Check: Read way-of-working.md for merge strategy (squash, merge, rebase).
Act: Draft the final commit message:
Act (BLOCKING): Present the commit message to the developer for confirmation:
Merge commit message:
[#<story-id>] feat: <story description> - <summary of changes> - Tasks: T-1, T-2, ..., T-N Refs: #<story-id>Confirm or edit?
Verify: Developer confirms the commit message.
At PR creation (Phase 3):
IMPLEMENTATION COMPLETE:
├── Story: [#ID: Title]
├── Branch: [feature/#ID-description]
├── Strategy: [commit-per-task | commit-per-story]
├── Tasks: [N/N completed]
├── Commits: [N commits on branch]
├── PR: [#PR-number — URL]
└── Quality: [All gates passing]
At merge (Phase 4):
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)]
Implementation stops immediately when:
On HALT: report the blocker clearly, propose resolution, wait for developer.
Re-invoking /pair-process-implement on a partially completed story is safe and expected:
The skill resumes from the first incomplete step — never re-does completed work.
/pair-process-implement to merge and update status.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.