跳转至

改编自 PRPs-agentic-eng(Wirasm)。PRP 工作流系列的一部分。

PRP 实现

按步骤执行计划文件,并持续进行验证。所有更改都会立即验证。不得累积损坏状态。

基本理念:验证循环可早期发现错误。每次更改后执行检查。立即修复问题。

黄金规则:如果验证失败,请在继续之前修复。不得累积损坏状态。


阶段 0 — 检测

包管理器检测

文件存在 包管理器 运行器
bun.lockb bun bun run
pnpm-lock.yaml pnpm pnpm run
yarn.lock yarn yarn
package-lock.json npm npm run
pyproject.toml 或 requirements.txt uv / pip uv run 或 python -m
Cargo.toml cargo cargo
go.mod go go

验证脚本

检查 package.json(或等效文件)中可用的脚本:

# Node.js プロジェクトの場合
cat package.json | grep -A 20 '"scripts"'

检查可用命令:类型检查、代码检查、测试、构建。


阶段 1 — 加载

加载计划文件:

cat "$ARGUMENTS"

从计划中提取以下部分: - 概述 — 要构建什么 - 要镜像的模式 — 应遵循的代码规范 - 要更改的文件 — 创建或修改的内容 - 逐步任务 — 实现顺序 - 验证命令 — 如何验证正确性 - 验收标准 — 完成的定义

如果文件不存在或不是有效计划:

Error: Plan file not found or invalid.
Run /prp-plan <feature-description> to create a plan first.

检查点:计划加载完成。已识别所有部分。已提取任务。


阶段 2 — 准备

Git 状态

git branch --show-current
git status --porcelain

分支判断

当前状态 操作
在功能分支上 使用当前分支
在 main 上,工作树干净 创建功能分支:git checkout -b feat/{plan-name}
在 main 上,工作树不干净 停止 — 询问用户先执行暂存或提交
在该功能专用的 Git 工作树内 使用该工作树

与远程同步

git pull --rebase origin $(git branch --show-current) 2>/dev/null || true

检查点:位于正确分支。工作树已准备就绪。已与远程同步。


阶段 3 — 执行

按顺序处理计划中的每个任务。

每个任务的循环

对于 逐步任务 中的每个任务:

  1. 阅读 MIRROR 参考 — 打开任务 MIRROR 字段中引用的模式文件。在编写代码前理解规范。

  2. 实现 — 严格按照模式编写代码。应用 GOTCHA 警告。使用指定的 IMPORTS。

  3. 立即验证 — 在所有文件更改后:

    # 型チェックを実行(プロジェクトに応じてコマンドを調整)
    [type-check command from Phase 0]
    
    如果类型检查失败 → 在继续下一个文件前修复错误。

  4. 跟踪进度 — 记录:[done] Task N: [task name] — complete

处理偏离

如果实现需要偏离计划: - 记录什么发生了变化 - 记录为什么发生变化 - 使用修正后的方法继续 - 这些偏离将记录在报告中

检查点:所有任务执行完成。已记录偏离。


阶段 4 — 验证

执行计划中的所有验证级别。在每个级别中修复问题后再继续。

级别 1:静态分析

# 型チェック — エラーゼロが必須
[project type-check command]

# リント — 可能な場合は自動修正
[project lint command]
[project lint-fix command]

如果自动修复后仍有代码检查错误,请手动修复。

级别 2:单元测试

为所有新函数编写测试(按照计划的测试策略指定)。

[project test command for affected area]
  • 每个函数至少需要一个测试
  • 覆盖计划中描述的边界情况
  • 如果测试失败 → 修复实现(除非测试本身有误,否则修复实现而不是测试)

级别 3:构建检查

[project build command]

构建必须零错误成功。

级别 4:集成测试(如适用)

# サーバーを起動し、テストを実行し、サーバーを停止
[project dev server command] &
SERVER_PID=$!

# サーバーの準備完了を待機(ポートは必要に応じて調整)
SERVER_READY=0
for i in $(seq 1 30); do
  if curl -sf http://localhost:PORT/health >/dev/null 2>&1; then
    SERVER_READY=1
    break
  fi
  sleep 1
done

if [ "$SERVER_READY" -ne 1 ]; then
  kill "$SERVER_PID" 2>/dev/null || true
  echo "ERROR: Server failed to start within 30s" >&2
  exit 1
fi

[integration test command]
TEST_EXIT=$?

kill "$SERVER_PID" 2>/dev/null || true
wait "$SERVER_PID" 2>/dev/null || true

exit "$TEST_EXIT"

级别 5:边界情况测试

执行计划测试策略检查清单中的边界情况。

检查点:五个验证级别全部通过。零错误。


阶段 5 — 报告

创建实现报告

mkdir -p .claude/PRPs/reports

将报告写入 .claude/PRPs/reports/{plan-name}-report.md:

# Implementation Report: [Feature Name]

## Summary
[何を実装したか]

## Assessment vs Reality

| 指標 | 予測(計画) | 実績 |
|---|---|---|
| 複雑度 | [計画から] | [実績] |
| 信頼度 | [計画から] | [実績] |
| 変更ファイル数 | [計画から] | [実際の数] |

## Tasks Completed

| # | タスク | ステータス | 備考 |
|---|---|---|---|
| 1 | [task name] | [done] Complete | |
| 2 | [task name] | [done] Complete | Deviated — [理由] |

## Validation Results

| レベル | ステータス | 備考 |
|---|---|---|
| 静的解析 | [done] Pass | |
| ユニットテスト | [done] Pass | N件のテストを作成 |
| ビルド | [done] Pass | |
| 統合 | [done] Pass | または N/A |
| エッジケース | [done] Pass | |

## Files Changed

| ファイル | アクション | 行数 |
|---|---|---|
| `path/to/file` | CREATED | +N |
| `path/to/file` | UPDATED | +N / -M |

## Deviations from Plan
[逸脱の一覧(何が、なぜ)、または「なし」]

## Issues Encountered
[発生した問題とその解決方法の一覧、または「なし」]

## Tests Written

| テストファイル | テスト数 | カバレッジ |
|---|---|---|
| `path/to/test` | N件のテスト | [カバーした領域] |

## Next Steps
- [ ] `/code-review` でコードレビュー
- [ ] `/prp-pr` でPRを作成

更新 PRD(如适用)

如果此实现是 PRD 阶段的一部分: 1. 将阶段状态从 in-progress 更新为 complete 2. 添加报告路径作为引用

归档计划

mkdir -p .claude/PRPs/plans/completed
mv "$ARGUMENTS" .claude/PRPs/plans/completed/

检查点:报告创建完成。PRD 更新完成。计划已归档。


阶段 6 — 输出

向用户报告:

## 実装完了

- **計画**: [plan file path] → completed/ にアーカイブ
- **ブランチ**: [current branch name]
- **ステータス**: [done] すべてのタスク完了

### バリデーション概要

| チェック | ステータス |
|---|---|
| 型チェック | [done] |
| リント | [done] |
| テスト | [done] (N件作成) |
| ビルド | [done] |
| 統合 | [done] または N/A |

### 変更されたファイル
- [N] ファイル作成、[M] ファイル更新

### 逸脱
[概要 または「なし — 計画どおりに実装」]

### 成果物
- レポート: `.claude/PRPs/reports/{name}-report.md`
- アーカイブ済み計画: `.claude/PRPs/plans/completed/{name}.plan.md`

### PRD 進捗(該当する場合)
| フェーズ | ステータス |
|---|---|
| フェーズ 1 | [done] 完了 |
| フェーズ 2 | [next] |
| ... | ... |

> 次のステップ: `/prp-pr` でプルリクエストを作成するか、`/code-review` で先に変更をレビューしてください。

失败处理

类型检查失败

  1. 仔细阅读错误消息
  2. 修复源文件中的类型错误
  3. 重新运行类型检查
  4. 在变干净后再继续

测试失败

  1. 确定 bug 在实现中还是在测试中
  2. 修复根本原因(通常是实现侧)
  3. 重新运行测试
  4. 在变绿后再继续

代码检查失败

  1. 首先执行自动修复
  2. 如果仍有错误,请手动修复
  3. 重新运行代码检查
  4. 在变干净后再继续

构建失败

  1. 通常是类型或导入问题 — 检查错误消息
  2. 修复有问题的文件
  3. 重新运行构建
  4. 在成功后再继续

集成测试失败

  1. 确认服务器是否正确启动
  2. 确认端点/路由是否存在
  3. 确认请求格式是否符合预期
  4. 修复后重新运行

成功标准

  • TASKS_COMPLETE: 执行计划中的所有任务
  • TYPES_PASS: 零类型错误
  • LINT_PASS: 零 Lint 错误
  • TESTS_PASS: 所有测试通过,创建新测试
  • BUILD_PASS: 构建成功
  • REPORT_CREATED: 保存实现报告
  • PLAN_ARCHIVED: 将计划移动到 completed/

下一步

  • 运行 /code-review 在提交前审查更改
  • 运行 /prp-commit 使用描述性消息提交
  • 运行 /prp-pr 创建拉取请求
  • 运行 /prp-plan <next-phase>(如果 PRD 中还有更多阶段)

本页原文 Markdown:在 AtomGit 查看·内容源自开源项目 ev/ECC