改编自 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(或等效文件)中可用的脚本:
检查可用命令:类型检查、代码检查、测试、构建。
阶段 1 — 加载¶
加载计划文件:
从计划中提取以下部分: - 概述 — 要构建什么 - 要镜像的模式 — 应遵循的代码规范 - 要更改的文件 — 创建或修改的内容 - 逐步任务 — 实现顺序 - 验证命令 — 如何验证正确性 - 验收标准 — 完成的定义
如果文件不存在或不是有效计划:
检查点:计划加载完成。已识别所有部分。已提取任务。
阶段 2 — 准备¶
Git 状态¶
分支判断¶
| 当前状态 | 操作 |
|---|---|
| 在功能分支上 | 使用当前分支 |
| 在 main 上,工作树干净 | 创建功能分支:git checkout -b feat/{plan-name} |
| 在 main 上,工作树不干净 | 停止 — 询问用户先执行暂存或提交 |
| 在该功能专用的 Git 工作树内 | 使用该工作树 |
与远程同步¶
检查点:位于正确分支。工作树已准备就绪。已与远程同步。
阶段 3 — 执行¶
按顺序处理计划中的每个任务。
每个任务的循环¶
对于 逐步任务 中的每个任务:
-
阅读 MIRROR 参考 — 打开任务 MIRROR 字段中引用的模式文件。在编写代码前理解规范。
-
实现 — 严格按照模式编写代码。应用 GOTCHA 警告。使用指定的 IMPORTS。
-
立即验证 — 在所有文件更改后:
如果类型检查失败 → 在继续下一个文件前修复错误。 -
跟踪进度 — 记录:
[done] Task N: [task name] — complete
处理偏离¶
如果实现需要偏离计划: - 记录什么发生了变化 - 记录为什么发生变化 - 使用修正后的方法继续 - 这些偏离将记录在报告中
检查点:所有任务执行完成。已记录偏离。
阶段 4 — 验证¶
执行计划中的所有验证级别。在每个级别中修复问题后再继续。
级别 1:静态分析¶
# 型チェック — エラーゼロが必須
[project type-check command]
# リント — 可能な場合は自動修正
[project lint command]
[project lint-fix command]
如果自动修复后仍有代码检查错误,请手动修复。
级别 2:单元测试¶
为所有新函数编写测试(按照计划的测试策略指定)。
- 每个函数至少需要一个测试
- 覆盖计划中描述的边界情况
- 如果测试失败 → 修复实现(除非测试本身有误,否则修复实现而不是测试)
级别 3:构建检查¶
构建必须零错误成功。
级别 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 — 报告¶
创建实现报告¶
将报告写入 .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. 添加报告路径作为引用
归档计划¶
检查点:报告创建完成。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` で先に変更をレビューしてください。
失败处理¶
类型检查失败¶
- 仔细阅读错误消息
- 修复源文件中的类型错误
- 重新运行类型检查
- 在变干净后再继续
测试失败¶
- 确定 bug 在实现中还是在测试中
- 修复根本原因(通常是实现侧)
- 重新运行测试
- 在变绿后再继续
代码检查失败¶
- 首先执行自动修复
- 如果仍有错误,请手动修复
- 重新运行代码检查
- 在变干净后再继续
构建失败¶
- 通常是类型或导入问题 — 检查错误消息
- 修复有问题的文件
- 重新运行构建
- 在成功后再继续
集成测试失败¶
- 确认服务器是否正确启动
- 确认端点/路由是否存在
- 确认请求格式是否符合预期
- 修复后重新运行
成功标准¶
- 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