name: dapp-sdd:implement description: 在每次任务后提交代码、每个阶段后进行评审时执行实施任务时使用。
实施技能
自主执行任务清单,并设有质量关卡。
输入
.dapp-sdd/tasks.md- 带复选框的任务清单.dapp-sdd/plan.md- 实施计划(用于上下文).dapp-sdd/spec.md- 规范(用于需求).dapp-sdd/pr-context.json- PR元数据
流程
对于每个任务
- 从
.dapp-sdd/tasks.md读取任务 - 使用适当的技能执行任务:
- 合约工作 →
compact-core:*技能 - TypeScript工作 → 标准开发
- 文档 →
readme-and-co:documentation-standards
- 合约工作 →
- 运行质量检查:
npm run lint npm run format:check tsc --noEmit compact compile contracts/*.compact - 修复所有问题(零容忍政策)
- 提交并推送:
- 使用
git-lovely:useful-commits生成提交信息 git add .git commit -m "{message}"git push
- 使用
- 在
.dapp-sdd/tasks.md中将任务标记为完成 - 在
.dapp-sdd/pr-context.json中更新状态
对于评审任务
遇到 [REVIEW] 任务时:
-
运行Compact评审(如果存在合约):
使用 compact-reviewer:compact-reviewer 代理 上下文:"您正在评审一个Midnight Network的示例dApp。 该项目旨在向学习Midnight的开发者演示概念。 建议要务实: - 关注正确性和清晰度,而非生产环境问题 - 标记任何可能让学习者困惑的内容 - 标记学习者可能模仿的不良实践 - 接受那些能保持示例专注性的合理捷径 - 确保教育性注释的准确性" -
运行TypeScript评审:
使用 devs:code-reviewer 代理 上下文:"您正在评审一个Midnight Network的示例dApp。 该项目旨在向学习Midnight的开发者演示概念。 建议要务实: - 关注正确性和清晰度,而非生产环境问题 - 标记任何可能让学习者困惑的内容 - 标记学习者可能模仿的不良实践 - 接受那些能保持示例专注性的合理捷径 - 确保教育性注释的准确性" -
解决任一评审者提出的所有问题
-
提交修复,并附上适当的提交信息
-
在tasks.md中将评审标记为完成
对于完成任务
遇到 [COMPLETE] 任务时:
-
生成摘要:
- 统计完成的用户故事数量
- 统计完成的任务数量
- 列出创建/修改的关键文件
-
发布到PR:
gh pr comment {prNumber} --body "## 实施完成 ### 摘要 - 用户故事:已完成 {X} 个 - 任务:已完成 {Y} 个 - 阶段:已评审 {Z} 个 ### 关键文件 - `contracts/{name}.compact` - 智能合约 - `src/deploy.ts` - 部署脚本 - `src/cli.ts` - CLI接口 ### 质量 - 所有代码检查通过 - 所有格式检查通过 - 所有TypeScript检查通过 - 所有Compact编译通过 - 所有测试通过 准备进行最终评审!" -
将PR标记为就绪:
gh pr ready {prNumber}
状态跟踪
每个任务后更新 .dapp-sdd/pr-context.json:
{
"owner": "...",
"repo": "...",
"branch": "...",
"prNumber": 42,
"currentPhase": 2,
"completedTasks": ["T001", "T002", "T003"],
"status": "implementing"
}
错误处理
如果任务失败:
- 记录错误
- 尝试自动修复
- 如果无法修复,则停止实施
- 将错误摘要作为评论发布到PR
- 在pr-context.json中将状态更新为"blocked"