Executes a Markdown implementation plan, applying file changes with validation loops after each step to catch and fix issues early.
From prp-corenpx claudepluginhub dmmedia/prp-framework-embedded --plugin prp-core<path/to/plan.md> [--base <branch>]/prp-implementExecutes a Markdown plan file step-by-step: detects package manager, prepares git branch, implements tasks with pattern mirroring, validates after every change.
/prp-implementExecutes a Markdown implementation plan, applying file changes with validation loops after each step to catch and fix issues early.
/prp-implementExecutes a Markdown plan file step-by-step: detects package manager, prepares git branch, implements tasks with pattern mirroring, validates after every change.
/prp-implementExecutes a Markdown plan file step-by-step: detects package manager, prepares git branch, implements tasks with pattern mirroring, validates after every change.
/prp-implementEnhanced prp-implement. Extends prp-core:prp-implement with: cross-session memory restored before execution, Context7 library verification before each task that calls external APIs, KB consultation for implementation decisions, and continuous drift-guard checks that anchor every task to the original acceptance criteria. Use exactly as prp-core:prp-implement — pass the path to a .plan.md file.
/prp-implementExecutes a Markdown plan file step-by-step: detects package manager, prepares git branch, implements tasks with pattern mirroring, validates after every change.
Plan: $ARGUMENTS
Execute the plan end-to-end with rigorous self-validation. You are autonomous.
Core Philosophy: Validation loops catch mistakes early. Run checks after every change. Fix issues immediately. The goal is a working implementation, not just code that exists.
Golden Rule: If a validation fails, fix it before moving on. Never accumulate broken state.
Check for these files to determine the project's toolchain:
| File Found | Package Manager | Runner |
|---|---|---|
bun.lockb | bun | bun / bun run |
pnpm-lock.yaml | pnpm | pnpm / pnpm run |
yarn.lock | yarn | yarn / yarn run |
package-lock.json | npm | npm run |
pyproject.toml | uv/pip | uv run / python |
Cargo.toml | cargo | cargo |
go.mod | go | go |
Store the detected runner - use it for all subsequent commands.
Determine the base branch for branching and syncing:
$ARGUMENTS contains --base <branch>, extract that value and remove the flag from the plan path argumentgit symbolic-ref refs/remotes/origin/HEAD 2>/dev/null | sed 's@^refs/remotes/origin/@@'
git remote show origin 2>/dev/null | grep 'HEAD branch' | awk '{print $NF}'
mainStore as {base-branch} — use this value for ALL branch comparisons, rebasing, and syncing. Never hardcode main or master.
Check package.json (or equivalent) for available scripts:
type-check, typecheck, tsclint, lint:fixtest, test:unit, test:integrationbuild, compileUse the plan's "Validation Commands" section - it should specify exact commands for this project.
cat $ARGUMENTS
Locate and understand:
If plan not found:
Error: Plan not found at $ARGUMENTS
Create a plan first: /prp-plan "feature description"
PHASE_1_CHECKPOINT:
git branch --show-current
git status --porcelain
git worktree list
| Current State | Action |
|---|---|
| In worktree | Use it (log: "Using worktree") |
| On {base-branch}, clean | Create branch: git checkout -b feature/{plan-slug} |
| On {base-branch}, dirty | STOP: "Stash or commit changes first" |
| On feature branch | Use it (log: "Using existing branch") |
git fetch origin
git pull --rebase origin {base-branch} 2>/dev/null || true
PHASE_2_CHECKPOINT:
For each task in the plan's Step-by-Step Tasks section:
After EVERY file change, run the type-check command from the plan's Validation Commands section.
Common patterns:
{runner} run type-check (JS/TS projects)mypy . (Python)cargo check (Rust)go build ./... (Go)If types fail:
Log each task as you complete it:
Task 1: CREATE src/features/x/models.ts ✅
Task 2: CREATE src/features/x/service.ts ✅
Task 3: UPDATE src/routes/index.ts ✅
Deviation Handling: If you must deviate from the plan:
PHASE_3_CHECKPOINT:
Run the type-check and lint commands from the plan's Validation Commands section.
Common patterns:
{runner} run type-check && {runner} run lintruff check . && mypy .cargo check && cargo clippygo vet ./...Must pass with zero errors.
If lint errors:
{runner} run lint:fix, ruff check --fix .)You MUST write or update tests for new code. This is not optional.
Test requirements:
Write tests, then run the test command from the plan.
Common patterns:
{runner} test or {runner} run testpytest or uv run pytestcargo testgo test ./...If tests fail:
Run the build command from the plan's Validation Commands section.
Common patterns:
{runner} run builduv buildcargo build --releasego build ./...Must complete without errors.
If the plan involves API/server changes, use the integration test commands from the plan.
Example pattern:
# Start server in background (command varies by project)
{runner} run dev &
SERVER_PID=$!
sleep 3
# Test endpoints (adjust URL/port per project config)
curl -s http://localhost:{port}/health | jq
# Stop server
kill $SERVER_PID
Run any edge case tests specified in the plan.
PHASE_4_CHECKPOINT:
mkdir -p .claude/PRPs/reports
Path: .claude/PRPs/reports/{plan-name}-report.md
# Implementation Report
**Plan**: `$ARGUMENTS`
**Source Issue**: #{number} (if applicable)
**Branch**: `{branch-name}`
**Date**: {YYYY-MM-DD}
**Status**: {COMPLETE | PARTIAL}
---
## Summary
{Brief description of what was implemented}
---
## Assessment vs Reality
Compare the original investigation's assessment with what actually happened:
| Metric | Predicted | Actual | Reasoning |
| ---------- | ----------- | -------- | ------------------------------------------------------------------------------ |
| Complexity | {from plan} | {actual} | {Why it matched or differed - e.g., "discovered additional integration point"} |
| Confidence | {from plan} | {actual} | {e.g., "root cause was correct" or "had to pivot because X"} |
**If implementation deviated from the plan, explain why:**
- {What changed and why - based on what you discovered during implementation}
---
## Tasks Completed
| # | Task | File | Status |
| --- | ------------------ | ---------- | ------ |
| 1 | {task description} | `src/x.ts` | ✅ |
| 2 | {task description} | `src/y.ts` | ✅ |
---
## Validation Results
| Check | Result | Details |
| ----------- | ------ | --------------------- |
| Type check | ✅ | No errors |
| Lint | ✅ | 0 errors, N warnings |
| Unit tests | ✅ | X passed, 0 failed |
| Build | ✅ | Compiled successfully |
| Integration | ✅/⏭️ | {result or "N/A"} |
---
## Files Changed
| File | Action | Lines |
| ---------- | ------ | --------- |
| `src/x.ts` | CREATE | +{N} |
| `src/y.ts` | UPDATE | +{N}/-{M} |
---
## Deviations from Plan
{List any deviations with rationale, or "None"}
---
## Issues Encountered
{List any issues and how they were resolved, or "None"}
---
## Tests Written
| Test File | Test Cases |
| --------------- | ------------------------ |
| `src/x.test.ts` | {list of test functions} |
---
## Next Steps
- [ ] Review implementation
- [ ] Create PR: `gh pr create` (if applicable)
- [ ] Merge when approved
Check if plan was generated from a PRD:
Source PRD: referenceIf PRD source exists:
in-progress to completemkdir -p .claude/PRPs/plans/completed
mv $ARGUMENTS .claude/PRPs/plans/completed/
PHASE_5_CHECKPOINT:
.claude/PRPs/reports/## Implementation Complete
**Plan**: `$ARGUMENTS`
**Source Issue**: #{number} (if applicable)
**Branch**: `{branch-name}`
**Status**: ✅ Complete
### Validation Summary
| Check | Result |
| ---------- | --------------- |
| Type check | ✅ |
| Lint | ✅ |
| Tests | ✅ ({N} passed) |
| Build | ✅ |
### Files Changed
- {N} files created
- {M} files updated
- {K} tests written
### Deviations
{If none: "Implementation matched the plan."}
{If any: Brief summary of what changed and why}
### Artifacts
- Report: `.claude/PRPs/reports/{name}-report.md`
- Plan archived to: `.claude/PRPs/plans/completed/`
{If from PRD:}
### PRD Progress
**PRD**: `{prd-file-path}`
**Phase Completed**: #{number} - {phase name}
| # | Phase | Status |
|---|-------|--------|
{Updated phases table showing progress}
**Next Phase**: {next pending phase, or "All phases complete!"}
{If next phase can parallel: "Note: Phase {X} can also start now (parallel)"}
To continue: `/prp-plan {prd-path}`
### Next Steps
1. Review the report (especially if deviations noted)
2. Create PR: `gh pr create` or `/prp-pr`
3. Merge when approved
{If more phases: "4. Continue with next phase: `/prp-plan {prd-path}`"}