微信扫码
添加专属顾问
我要投稿
揭秘亚马逊Kiro的AI任务分解逻辑,顶级Prompt设计思路一网打尽!核心内容: 1. Kiro提示词中的EARS方法解析,消除需求歧义 2. 任务阶段的三步分解流程与实施原则 3. 开发任务结构化与层次构建的最佳实践
kiro 整个提示词太庞大了, 一整套软件工程的书全部扔里面的感觉, 就重点看看它的工作分解部分吧,讲道理官方里讲的 EARS(Easy Approach to Requirements Syntax)[简易需求语法方法] 专门用于产品文档,决然语言需求中常见的歧义、不一致、难以验证等问题. 这套东西,我干了这么多年开发,听都没听过, 感觉自己好low
来源: https://github.com/jasonkneen/kiro
📍 您在这里: 主指南 → 流程指南 → 任务阶段
任务阶段是规范驱动开发流程的最后阶段,将批准的设计转化为一个由离散、可操作的编码任务组成的结构化实施计划。该阶段是规划与执行之间的桥梁,将复杂的系统设计分解为可由开发团队或 AI 编码代理增量执行的可管理步骤。
作为“需求 → 设计 → 任务”工作流的第三个阶段,任务阶段确保所有精心的规划和设计工作都能转化为系统化、可跟踪的实施进度。
任务阶段旨在:
目标:将设计分解为可实施的组件
流程:
任务识别指南:
任务组织原则:
任务层次结构模式:
- [ ] 1. [史诗/主要组件]
- [ ] 1.1 [具体的实施任务]
- [任务详情和需求参考]
- [ ] 1.2 [下一个具体任务]
- [任务详情和需求参考]
- [ ] 2. [下一个史诗/主要组件]
- [ ] 2.1 [具体的实施任务]
- [任务详情和需求参考]
任务规范要素:
任务描述模板:
- [ ] X.Y [任务标题]
- [具体的实施目标]
- [要创建/修改的文件或组件]
- [要实施的关键功能]
- _需求:[需求参考]_
依赖注意事项:
排序策略:
任务质量标准:
验证问题:
目的:建立核心结构和接口
示例:
模式:
- [ ] 1. 设置项目基础
- [ ] 1.1 创建项目结构和核心接口
- 为模型、服务和实用工具设置目录结构
- 为核心数据类型定义 TypeScript 接口
- 创建基本配置文件
- _需求:1.1, 2.1_
目的:实施数据模型和持久化
示例:
模式:
- [ ] 2. 实施数据层
- [ ] 2.1 创建带验证的核心数据模型
- 实施用户、文档和设置模型类
- 添加用于数据完整性的验证方法
- 为模型验证编写单元测试
- _需求:2.1, 3.3_
目的:实施核心功能
示例:
模式:
- [ ] 3. 实施业务逻辑
- [ ] 3.1 创建身份验证服务
- 实施用户注册和登录逻辑
- 添加密码哈希和验证
- 创建会话管理功能
- 为身份验证流程编写测试
- _需求:1.2, 4.1_
目的:创建外部接口和端点
示例:
模式:
- [ ] 4. 实施 API 层
- [ ] 4.1 创建用户管理端点
- 实施用于注册的 POST /users
- 实施用于身份验证的 POST /auth/login
- 添加请求验证和错误响应
- 编写 API 端点测试
- _需求:1.2, 2.3_
目的:连接组件和外部系统
示例:
模式:
- [ ] 5. 集成和连接
- [ ] 5.1 将身份验证连接到用户管理
- 将身份验证服务连接到用户端点
- 为受保护的路由实施中间件
- 为完整的身份验证流程添加集成测试
- _需求:1.2, 4.1_
最适用于:新项目、具有许多相互依赖关系的复杂系统
顺序:
1. 项目设置和核心接口
2. 数据模型和验证
3. 数据访问层
4. 业务逻辑服务
5. API 端点
6. 集成和连接
优点:
缺点:
最适用于:MVP 开发、面向用户的应用程序、敏捷开发
顺序:
1. 核心用户注册(端到端)
2. 用户身份验证(端到端)
3. 用户个人资料管理(端到端)
4. 高级功能和优化
优点:
缺点:
最适用于:具有高技术不确定性的项目、概念验证
顺序:
1. 最不确定/最复杂的组件
2. 外部集成和依赖项
3. 核心业务逻辑
4. 用户界面和体验
5. 完善和优化
优点:
缺点:
最适用于:大多数实际项目
顺序:
1. 最小化基础(核心接口、基本设置)
2. 高风险/高价值的功能切片
3. 根据需要扩展基础
4. 其他功能切片
5. 集成和完善
优点:
定义:必须在其他代码组件构建之前存在的代码组件
示例:
管理策略:
- [ ] 1. 核心基础设施设置
- [ ] 1.1 创建数据库连接和配置
- [ ] 1.2 设置身份验证中间件框架
- [ ] 1.3 创建基本错误处理实用工具
- [ ] 2. 基础模型(依赖于 1.1)
- [ ] 2.1 创建与数据库集成的用户模型
- [ ] 2.2 创建与数据库集成的会话模型
- [ ] 3. 身份验证服务(依赖于 1.2, 2.1, 2.2)
- [ ] 3.1 使用用户和会话模型实施登录服务
定义:在概念上建立在其他功能之上的功能
示例:
管理策略:
- [ ] 1. 基本用户管理
- [ ] 1.1 用户注册功能
- [ ] 1.2 用户登录功能
- [ ] 2. 扩展用户功能(依赖于 1.1, 1.2)
- [ ] 2.1 用户个人资料编辑(需要现有用户)
- [ ] 2.2 密码重置(需要身份验证系统)
定义:需要特定数据或状态存在的任务
示例:
管理策略:
- [ ] 1. 数据基础
- [ ] 1.1 创建用户注册和示例数据
- [ ] 1.2 创建交易记录系统
- [ ] 2. 数据依赖功能(依赖于 1.1, 1.2)
- [ ] 2.1 用户仪表板(需要来自 1.1 的用户数据)
- [ ] 2.2 交易报告(需要来自 1.2 的交易数据)
任务 A → 任务 B → 任务 C → 任务 D
任务 A → 任务 C
任务 B → 任务 C
任务 A → 任务 C → 任务 E
任务 B → 任务 D → 任务 E
任务 A → 任务 D
问题:当任务似乎相互依赖时
用户服务需要身份验证服务
身份验证服务需要用户服务
解决方案:
- [ ] 1.1 创建 IUserService 和 IAuthService 接口
- [ ] 1.2 使用 IAuthService 接口实施 UserService
- [ ] 1.3 使用 IUserService 接口实施 AuthService
- [ ] 1.4 连接依赖注入
- [ ] 1.1 创建用户数据模型和基本 CRUD
- [ ] 1.2 使用用户 CRUD 创建身份验证服务
- [ ] 1.3 通过身份验证集成增强用户服务
- [ ] 1.1 为用户/身份验证通信创建事件系统
- [ ] 1.2 实施带事件发布的用户服务
- [ ] 1.3 实施带事件监听的身份验证服务
# 实施计划
- [ ] 1. 设置身份验证基础
- [ ] 1.1 创建项目结构和核心接口
- 为身份验证、模型和 API 组件设置目录结构
- 为用户、会话和 AuthRequest 类型定义 TypeScript 接口
- 为环境变量创建基本配置
- _需求:1.1_
- [ ] 1.2 设置测试框架和数据库
- 为单元和集成测试配置 Jest
- 使用 Docker 配置设置测试数据库
- 为用户表创建数据库迁移脚本
- _需求:1.1, 2.1_
- [ ] 2. 实施核心数据模型
- [ ] 2.1 创建带验证的用户模型
- 实施包含电子邮件、密码和个人资料字段的用户类
- 添加用于电子邮件格式和密码强度的验证方法
- 为用户模型验证编写单元测试
- _需求:1.2, 2.1_
- [ ] 2.2 实施会话模型和管理
- 创建用于跟踪用户会话的会话类
- 实施会话创建、验证和过期逻辑
- 为会话管理编写单元测试
- _需求:1.2, 4.1_
- [ ] 3. 创建身份验证服务
- [ ] 3.1 实施用户注册服务
- 创建带注册方法的 UserService
- 使用 bcrypt 添加密码哈希
- 实施重复电子邮件检查
- 为注册逻辑编写单元测试
- _需求:1.2_
- [ ] 3.2 实施登录和会话服务
- 添加带密码验证的登录方法
- 实施 JWT 令牌生成和验证
- 使用刷新令牌创建会话管理
- 为登录和会话逻辑编写单元测试
- _需求:1.2, 4.1_
- [ ] 4. 创建 API 端点
- [ ] 4.1 实施注册端点
- 创建 POST /auth/register 端点
- 添加请求验证和错误处理
- 实施正确的 HTTP 状态码和响应
- 为注册 API 编写集成测试
- _需求:1.2, 2.3_
- [ ] 4.2 实施登录端点
- 创建 POST /auth/login 端点
- 为受保护的路由添加身份验证中间件
- 实施注销功能
- 为登录/注销 API 编写集成测试
- _需求:1.2, 4.1_
- [ ] 5. 集成和安全加固
- [ ] 5.1 添加安全中间件和速率限制
- 为身份验证端点实施速率限制
- 添加 CORS 配置和安全标头
- 为 JWT 令牌验证创建中间件
- 编写以安全为重点的集成测试
- _需求:4.1, 2.3_
- [ ] 5.2 端到端集成测试
- 创建完整的用户注册和登录流程测试
- 测试错误场景和边缘情况
- 验证安全措施和令牌处理
- _需求:1.2, 4.1_
# 实施计划
- [ ] 1. 设置数据处理基础
- [ ] 1.1 创建核心数据处理接口
- 为 DataProcessor、Validator 和 Transformer 定义接口
- 为数据源和目标设置配置
- 创建错误处理和日志记录实用工具
- _需求:1.1, 3.1_
- [ ] 2. 实施数据验证层
- [ ] 2.1 创建数据验证引擎
- 实施可配置的验证规则引擎
- 添加对必填字段、数据类型和自定义规则的支持
- 创建包含详细错误消息的验证结果报告
- 为验证引擎编写单元测试
- _需求:2.1, 3.2_
- [ ] 3. 构建数据转换管道
- [ ] 3.1 实施数据转换服务
- 创建具有可配置步骤的转换管道
- 添加对数据映射、筛选和丰富的支持
- 实施错误处理和部分故障恢复
- 为转换逻辑编写单元测试
- _需求:2.2, 3.1_
- [ ] 4. 创建数据处理协调器
- [ ] 4.1 实施处理工作流引擎
- 创建协调验证和转换的协调器
- 添加对批处理和流处理模式的支持
- 实施进度跟踪和状态报告
- 为完整的处理工作流编写集成测试
- _需求:1.1, 2.1, 2.2_
此示例演示了复杂的依赖管理和多种排序策略:
# 实施计划
- [ ] 1. 基础和核心基础设施
- [ ] 1.1 设置项目结构和核心接口
- 为模型、服务、存储库和 API 层创建目录结构
- 为产品、类别、库存和订单类型定义 TypeScript 接口
- 为数据库、缓存和外部服务设置配置管理
- 配置具有单元、集成和 e2e 测试支持的测试框架
- _需求:1.1, 1.2_
- [ ] 1.2 创建数据库架构和迁移
- 设计和实施产品、类别和库存的数据库架构
- 为初始表创建创建迁移脚本
- 设置数据库连接池和事务管理
- 为常见操作编写数据库实用函数
- _需求:2.1, 2.2_
- [ ] 2. 核心数据模型和验证(依赖于 1.1, 1.2)
- [ ] 2.1 实施具有全面验证的产品模型
- 创建具有名称、描述、价格、SKU 和元数据字段的产品类
- 添加对必填字段、价格范围和 SKU 唯一性的验证
- 实施产品分类和标记功能
- 为所有验证场景编写全面的单元测试
- _需求:2.1, 2.3, 3.1_
- [ ] 2.2 实施具有层次结构的类别模型
- 创建支持父子关系的类别类
- 添加对类别层次结构深度和循环引用的验证
- 实施类别路径生成和面包屑功能
- 为层次结构操作和边缘情况编写单元测试
- _需求:2.1, 3.2_
- [ ] 2.3 创建具有库存跟踪的库存模型
- 实施具有库存水平、预留和阈值的库存类
- 添加对库存操作和负库存预防的验证
- 创建库存调整日志记录和审计跟踪功能
- 为库存操作和并发访问场景编写单元测试
- _需求:2.2, 4.1_
- [ ] 3. 用于数据访问的存储库层(依赖于 2.1, 2.2, 2.3)
- [ ] 3.1 实施具有高级查询的产品存储库
- 创建具有 CRUD 操作和复杂查询的 ProductRepository
- 添加按类别、价格范围和可用性筛选的支持
- 实施产品名称和描述的全文搜索功能
- 为所有存储库操作编写集成测试
- _需求:3.1, 3.3_
- [ ] 3.2 实施具有层次结构操作的类别存储库
- 创建具有树遍历和操作方法的 CategoryRepository
- 添加查找所有后代、祖先和兄弟姐妹的支持
- 实施类别重新排序和层次结构重组
- 为层次结构操作编写集成测试
- _需求:3.2_
- [ ] 3.3 创建具有并发处理的库存存储库
- 实施具有原子库存操作的 InventoryRepository
- 添加对批量库存更新和预留的支持
- 创建库存历史跟踪和报告查询
- 编写包括并发访问场景的集成测试
- _需求:4.1, 4.2_
- [ ] 4. 业务逻辑服务(依赖于 3.1, 3.2, 3.3)
- [ ] 4.1 实施产品管理服务
- 创建具有产品生命周期业务逻辑的 ProductService
- 添加对产品创建、更新和软删除的支持
- 实施产品批准工作流和状态管理
- 为所有业务逻辑场景编写单元测试
- _需求:2.1, 2.3, 5.1_
- [ ] 4.2 实施库存管理服务
- 实施具有库存分配和预留逻辑的 InventoryService
- 添加对自动重新订购点通知的支持
- 创建具有批准流程的库存调整工作流
- 为库存业务规则编写单元测试
- _需求:4.1, 4.2, 5.2_
- [ ] 4.3 实施类别管理服务
- 创建具有类别层次结构管理的 CategoryService
- 添加对类别合并、拆分和重组的支持
- 实施基于类别的产品分配和批量操作
- 为类别管理工作流编写单元测试
- _需求:3.2, 5.1_
- [ ] 5. API 层和外部接口(依赖于 4.1, 4.2, 4.3)
- [ ] 5.1 创建产品 API 端点
- 实施用于产品 CRUD 操作的 REST 端点
- 添加对产品搜索、筛选和分页的支持
- 创建产品图片上传和管理端点
- 编写 API 集成测试和文档
- _需求:6.1, 6.2_
- [ ] 5.2 实施库存 API 端点
- 创建用于库存查询和更新的 REST 端点
- 添加对库存预留和释放操作的支持
- 实施库存报告和分析端点
- 编写具有正确错误处理的 API 集成测试
- _需求:6.1, 4.2_
- [ ] 5.3 创建类别 API 端点
- 实施用于类别管理的 REST 端点
- 添加对类别树检索和操作的支持
- 创建基于类别的产品列表端点
- 为层次结构操作编写 API 集成测试
- _需求:6.1, 3.2_
- [ ] 6. 高级功能和集成(依赖于 5.1, 5.2, 5.3)
- [ ] 6.1 实施产品搜索和推荐引擎
- 创建与 Elasticsearch 集成的搜索服务
- 添加对分面搜索、自动完成和拼写错误容忍的支持
- 基于类别和受欢迎程度实施基本推荐算法
- 为搜索功能编写集成测试
- _需求:3.3, 7.1_
- [ ] 6.2 创建与外部系统的库存同步
- 实施用于与仓库管理系统同步库存的服务
- 添加通过 webhooks 进行实时库存更新的支持
- 为库存差异创建冲突解决
- 使用模拟外部系统编写集成测试
- _需求:4.3, 7.2_
- [ ] 6.3 实施用于性能优化的缓存层
- 为频繁访问的产品和类别数据添加 Redis 缓存
- 为数据一致性实施缓存失效策略
- 为热门产品创建缓存预热流程
- 编写性能测试以验证缓存有效性
- _需求:8.1, 8.2_
- [ ] 7. 端到端集成和测试(依赖于 6.1, 6.2, 6.3)
- [ ] 7.1 创建全面的端到端测试场景
- 为完整的产品生命周期工作流编写 e2e 测试
- 测试包括边缘情况的库存管理场景
- 验证类别管理和产品分配流程
- 为高负载场景创建性能测试
- _需求:5.1, 5.2, 6.1, 6.2_
- [ ] 7.2 实施监控和可观察性
- 添加应用程序指标和健康检查端点
- 为所有业务操作实施结构化日志记录
- 为关键库存和系统事件创建警报
- 为监控和警报功能编写测试
- _需求:8.3, 8.4_
此示例的主要特点:
好的任务示例:
- [ ] 2.1 创建带验证的用户模型
- 实施具有电子邮件、密码、姓名和 createdAt 字段的用户类
- 添加用于电子邮件格式 (RFC 5322) 和密码强度(8+ 个字符、混合大小写、数字)的验证方法
- 创建涵盖有效/无效电子邮件格式和密码要求的单元测试
- _需求:1.2, 2.1_
差的任务示例:
- [ ] 2.1 构建用户的东西
- 让用户的东西工作
- 添加一些验证
- _需求:1.2_
适当的任务范围:
太大:
- [ ] 1.1 实施完整的用户管理系统
太小:
- [ ] 1.1 在第 42 行添加分号
正好:
- [ ] 1.1 创建具有验证方法的用户模型
始终包括:
示例:
- [ ] 3.2 实施密码重置功能
- 创建密码重置请求端点
- 为重置令牌添加电子邮件发送
- 实施安全令牌验证
- _需求:1.3, 4.2_
问题:“实施用户管理”
解决方案:“创建具有电子邮件验证和密码哈希的用户模型”
问题:由于未构建先决条件而无法完成的任务
解决方案:对任务进行排序,使每个任务都建立在已完成工作的基础上
问题:“部署到生产环境”、“获取用户反馈”
解决方案:只关注编码、测试和实施活动
问题:试图一次性实施整个功能的任务
解决方案:分解为更小的增量步骤
问题:只有实施任务而没有相应的测试
解决方案:将测试创建作为每个实施任务的一部分
在最终确定任务列表之前,请验证:
完整性:
清晰度:
排序:
可行性:
症状:开发人员无法根据任务描述开始编码
解决方案:添加更具体的实施细节和文件/组件名称
症状:由于缺少先决条件而无法完成任务
解决方案:审查任务顺序并添加缺失的基础任务
症状:难以将任务追溯到用户价值
解决方案:添加需求参考并验证覆盖范围
症状:任务太多,优先级不明确
解决方案:将相关任务分组并首先关注核心功能
在开始执行任务之前,请确保您已具备:
上下文准备:
任务选择策略:
在开始任何任务之前:
在任务执行期间:
在将任务标记为完成之前:
有效的任务执行提示:
我需要实施规范中的任务 [X.Y]。以下是上下文:
需求:[引用具体需求]
设计上下文:[影响此任务的关键设计决策]
任务详情:[复制任务描述和详情]
依赖关系:[此任务建立在哪些先前任务的基础上]
请按照指定的方法实施此任务,并包括适当的测试。
迭代开发方法:
依赖验证清单:
处理被阻止的任务:
单元测试:
集成测试:
验证测试:
在实施期间:
在任务完成之前:
症状:无法确定要实施的具体内容
解决方案:
症状:由于缺少先决条件而无法完成任务
解决方案:
症状:在实施过程中新的或现有的测试中断
解决方案:
症状:实施变得比预期大得多
解决方案:
状态定义:
状态更新指南:
实施说明:
知识转移:
小型项目:
大型项目:
团队项目:
当任务花费的时间比预期长时:
当实施期间需求发生变化时:
当出现技术障碍时:
从需求阶段:
从设计阶段:
当实施揭示问题时:
持续改进:
任务完成并批准后:
任务阶段为系统化实施提供了路线图,将复杂的设计分解为可管理、可操作的步骤,从而成功交付功能。通过适当的执行指导,团队可以在整个实施过程中保持质量和势头。
53AI,企业落地大模型首选服务商
产品:场景落地咨询+大模型应用平台+行业解决方案
承诺:免费场景POC验证,效果验证后签署服务协议。零风险落地应用大模型,已交付160+中大型企业
2025-07-20
Cline 源码浅析 - Prompt 设计
2025-07-20
上下文工程:为提示词注入工程学的严谨性
2025-07-19
一文掌握:AI Agent Prompt是什么?智能体Prompt如何设计?
2025-07-18
OpenAI核心研究员:比提示词工程更重要的,是spec-writing
2025-07-17
别再只会写“一句话指令”!用Context Engineering打造企业级AI应用
2025-07-17
一文说明白Context Engineering:AI智能体的动态语境构建术
2025-07-16
Cursor高手用「上下文工程」技巧吊打瞎写prompt的隔壁兄弟
2025-07-16
提示词生成原型别太香!教程一步不落教给你
2025-05-08
2025-05-08
2025-05-08
2025-05-07
2025-05-19
2025-06-12
2025-06-27
2025-05-07
2025-07-03
2025-06-21
2025-07-19
2025-07-08
2025-07-04
2025-06-23
2025-06-14
2025-06-04
2025-06-02
2025-05-17