用途
Milestone Planning 用于把需求候选转化为一个共享、可评审的 Feature 承诺,而不创建串行执行队列。它适用于需要以 Milestone 为单位组织 Feature 批次、明确负责人和依赖关系、并保持需求池与 Feature 记录不重复权威的场景。使用该技能是可选的;Feature 也可以在没有 Milestone 的情况下创建和交付。
主要能力
- 准备候选池:读取仓库说明、完整需求池、活跃与已完成的 Milestone、当前产品证据、事件、依赖与提供的约束。
- 对账:在评分前对已完成、重复、过时和部分选中的结果进行对账,保留模糊的未来问题而不虚构交付结构。
- 评分:遵循既有优先级模型;否则推荐一个基于证据的 0–10 分,考虑影响、延迟成本、明确承诺、风险、战略价值和解锁价值。对 Feature 候选评分,而非其未来 Task。硬依赖与优先级分开处理。
- 解析稳定参与者:复用 Feature、Milestone 或配置的外部 tracker 中已记录的负责人或协调者;否则使用当前请求明确提供的身份。若当前参与者仍需要,直接读取 .waypoint/local.yaml(若存在)并使用其 actor_id。若文件缺失、无效或无法回答谁应拥有工作,则询问用户。绝不从 Git 作者元数据、harness、机器、分支或临时窗口标签推断所有权。
- 选择共享 Feature 批次:构建紧凑、经用户确认的批次。每个选中的 Feature 需要:tracker 中立的稳定 ID;一个稳定的 Feature 负责人(不能只是临时会话 ID);有界成果与对 Milestone 退出标准的贡献;已知的跨 Feature 依赖,针对 Feature 或其公共契约表达,绝不针对另一个 Feature 的内部 Task;依赖已完成或有明确负责人和交付承诺;可选类型:feature、bug、maintenance 或 migration。
- Milestone 结构:一个 Milestone 有一个协调者,可包含由不同人或持久 agent 身份拥有的 Feature。它不包含子 Task、不维护全局当前项、不要求串行执行、不拥有分支、提交、推送、MR 或合并边界。
- 冻结批次:默认冻结 Feature 批次。当某个贡献者空闲时不补充。贡献者可以协助就绪的 Task 或接受现有 Feature 的显式所有权转移。仅通过显式重新规划来添加、移除或转移 Feature,并记录变更与原因。
- 发布前确认:在发布前呈现提议的 Feature 集合、负责人、依赖、退出覆盖和实质性选择权衡。迭代直到用户确认批次。批准仅授权 Milestone 工件和 Feature 交接,绝不授权 Feature 规划或实现。
- 依赖 DAG:批次确认后,当至少存在一条真实阻塞边时添加 Feature 依赖 DAG。包含每个必需 Feature 作为节点,使断开节点可见并行工作。每条边从先决条件指向依赖方,并在关系不明显时用公共契约或完成门标注。绝不从优先级、列表顺序、共享所有权、交付偏好或内部 Task 推断边。该图解释稳定的协调结构,不是串行执行队列或实时状态板。
- 发布而不重复状态:遵循仓库的 tracker 和文档约定。否则使用 references/milestone-template.md 作为共享 Milestone,references/feature-handoff-template.md 作为每个选中的 Feature。当仓库使用按 Milestone 分组的回退文档时,每个 Milestone 保持为一个目录,包含 milestone.md 及其新物化的 features/<feature>/ 目录。在保持独立扁平 Feature 的仓库中,保留这些路径并让 Milestone 链接它们。Feature ID 在两种布局中保持全局唯一。在 Feature 执行开始前,显式重新规划可以移动整个 Feature 目录并在同一变更中更新每个持久引用及 Feature 记录路径。一旦执行开始,保持其路径稳定,让后续 Milestone 链接携带的 Feature,而不是在活跃分支下移动文件。
- 状态管理:当存在外部 tracker 时,将实时状态、分配和优先级保留在其中。当用户显式初始化 local-work-tracker 时,使用其 Feature 负责人和生命周期记录,但将 Task 分配/状态保留在 Feature 拥有的工件或外部 tracker 中。两者都没有时,仅在仓库原生 Markdown 中保留已确认的 Feature 负责人和规划事实,报告协作限制,绝不隐式初始化跟踪。保持 Milestone 为紧凑的链接 Feature 视图;不要将子 Task 状态复制到其中,也不要在 DAG 中编码实时状态。仅当显式重新规划更改 Feature 或跨 Feature 依赖时更新图。
- 完成确认:只有 Feature 负责人可以在 Feature 验收和集成证明通过后确认 Feature 完成。Milestone 仅在退出标准和必需 Feature 完成且协调者确认关闭时完成。
- 对账已完成 Feature:在 Feature 负责人确认验收和集成证明后,保留 Feature 目录作为持久详细记录,将其从活跃 Feature 视图中移除,并向仓库的已完成 Feature 索引添加一条条目。仅当没有更强约定时使用 references/completed-feature-index.md。保持索引不分组、最新在前。仅记录完成日期、Feature 链接和可选的一句话成果。不要复制负责人、Task、MR、验证或 Milestone 细节。索引是历史,不是第二个实时状态权威。有外部 tracker 时,遵循其接受的完成事件;有 local-work-tracker 时,让其协调者渲染条目。否则 Milestone 协调者是唯一写入者,以免并行 Feature 分支争用一个全局文件。
- 结束:在报告计划中、阻塞、依赖就绪和新对账的已完成 Feature 后结束。不要调用 Feature 规范、Task 规划或实现。
使用方式
该技能通过读取仓库说明、需求池、Milestone 和产品证据来准备候选池,对账并评分 Feature 候选,解析稳定参与者,构建经用户确认的 Feature 批次,发布 Milestone 与 Feature 交接文档,并在存在真实阻塞边时添加依赖 DAG。发布前需呈现 Feature 集合、负责人、依赖、退出覆盖与权衡,迭代直到用户确认。完成后由 Feature 负责人确认验收与集成证明,将 Feature 移入已完成索引。
适用场景
- 需要以 Milestone 为单位组织 Feature 批次并明确负责人和依赖关系的项目。
- 需要将需求候选池转化为共享、可评审的 Feature 承诺,同时避免串行执行队列。
- 需要保持需求池与 Feature 记录不重复权威,并对已完成 Feature 进行对账的场景。
限制
- 使用该技能是可选的;Feature 也可以在没有 Milestone 的情况下创建和交付。
- 绝不从 Git 作者元数据、harness、机器、分支或临时窗口标签推断所有权。
- 批准仅授权 Milestone 工件和 Feature 交接,绝不授权 Feature 规划或实现。
- 绝不从优先级、列表顺序、共享所有权、交付偏好或内部 Task 推断依赖边。
- 两者都没有 tracker 时,仅在仓库原生 Markdown 中保留已确认的 Feature 负责人和规划事实,报告协作限制,绝不隐式初始化跟踪。
- 不要调用 Feature 规范、Task 规划或实现。
- 配套技能 grilling 和 research 来自 mattpocock/skills,保持可选。仅安装需要的配套技能:npx skills add mattpocock/skills --skill <name>。