用途
plan-features 用于把项目意图从讨论推进到持久化设计与有序工作。它把想法或已有项目计划转化为交互式功能设计、简洁的人类路线图、项目文档架构以及可执行的 Beads 工作项。其中 Beads 负责实时的功能与任务状态,design.md 负责详细的功能意图,planned-features.md 保持为简洁的人类路线图。
主要能力
- 加载项目状态:通过 bd prime、bd list、bd ready、bd blocked 等命令读取当前功能根、就绪工作与阻塞工作,并阅读文档目录及相关页面。
- 规范化规划输入:处理会议记录、转录或先前代理会话时,按时间顺序处理决策,以较晚的明确用户决策为准,将已被取代的内容标记为历史,区分仓库观察与持久产品意图,并把持久决策复制到每个受影响的 design.md。
- 设计问答循环:一次提出一个有针对性的问题,优先询问会改变用户结果、功能边界、所有权、数据与状态、架构与集成、失败与恢复、文档页面、验证与验收、依赖顺序等的问题,直到每个将获得实现任务的功能都有清晰结果、明确边界、已知依赖、确切文档影响和验证策略。
- 分解功能:创建独立有价值且可审查的功能,使用小写文件系统安全 slug 作为稳定功能标识,拒绝重复 slug。
- 设计文档结构:按读者问题选择具体页面,包括 Introduction、Architecture、Operator's Manual / Usage、Development Guide、Reference,并在 docs/src/SUMMARY.md 中注册新页面。
- 创建功能设计:从 docs/src/features/_template/design.md 起草 design.md,保留具体用户措辞、示例、约束、被拒方向与规划决策。
- 创建 Beads 生命周期:使用 bd mol pour dstack-feature 命令生成功能 epic,并设置 feature_slug、feature_name、design_path、implemented_path、base_branch 等元数据,解析并持久化生命周期 ID。
- 创建实现 Beads:在生命周期实现协调器下创建有界任务,每个任务包含具体结果、验收标准、相关设计章节、确切文档所有权、验证命令、真实前置条件、并行元数据与提交边界。
- 完成规划状态:关闭生命周期设计步骤,更新 planned-features.md,并在需要时提交规划文档。
使用方式
该技能通过一系列命令与文件操作执行。启动时先运行 bd prime、bd list --all --type epic --label workflow:feature --json --limit 0、bd ready --json、bd blocked --json 加载项目状态。随后进入设计问答循环,一次一个问题。功能就绪后,使用 bd mol pour dstack-feature 命令并传入 feature_name、feature_slug、design_path、implemented_path、base_branch 等变量生成功能 epic。之后通过 bd update 设置元数据,使用 bd mol show 解析生命周期 ID,并用 bd update 将具体身份与路径元数据写入每个生命周期任务。实现任务通过 bd 创建在生命周期实现协调器之下。最后使用 bd close 关闭设计步骤,并更新 docs/src/planned-features.md。推荐功能可通过 uv run <core-dir>/scripts/resolve-feature.py --next --json 选择。
适用场景
适用于需要把项目想法或已有项目计划转化为结构化、可执行工作计划的场景,尤其是需要明确功能边界、依赖关系、验证策略、文档影响,并希望后续实现代理无需再向用户询问产品决策即可执行任务的团队。也适用于需要维护人类可读路线图与实时任务状态分离的项目。
限制
- 如果用户在问答循环完成前结束规划,则不为未解决范围创建任务,并报告规划未完成。
- 原生规划不得把缺失的用户决策编码为实现阻塞;只有通过 /migrate-workflow 导入的迁移工作可临时保留此类缺口。
- 实现就绪的设计不得包含其任务所需的未决决策。
- 不得使用不透明的 Beads 哈希作为主要功能引用。
- 不得在原生任务中包含 TBD、未解决替代方案、"decide"、"choose" 或会决定所需产品行为的研究。
- 关于收费、价格、平台支持等具体信息暂未提供。