用途
$seed list 是 CocoPlus 项目中的一项技能,用于检查所有已存储的种子(seed,即待评估的想法)是否满足其触发条件。它根据当前项目状态逐条评估每个种子的触发器,将已触发和仍在等待的种子分两段展示,便于开发者决定下一步操作。
主要能力
- 读取
.cocoplus/seeds/目录下所有 YAML 格式的种子文件,仅处理状态为pending或triggered的种子,跳过已promoted或discarded的种子。 - 对每个种子的触发条件进行评估,支持以下类型:
- 文件系统存在性检查:如“当 coco-map.json 存在”或“当 CocoMap 已提交”,通过检查
.cocoplus/map/coco-map.json等路径判断。 - 生命周期阶段检查:如“当 Build 阶段完成”或“当 Ship 阶段完成”,读取
.cocoplus/lifecycle/meta.json判断阶段状态。 - 模式标记检查:如“当某功能启用”,检查
.cocoplus/modes/[feature].on标志。 - 手动条件:无法匹配上述模式的自然语言条件,始终显示为“pending manual confirmation”,不自动触发。
- 文件系统存在性检查:如“当 coco-map.json 存在”或“当 CocoMap 已提交”,通过检查
- 对于刚刚从未触发变为已触发的种子,更新其 YAML 文件:将
status设为triggered,并写入triggered_date(ISO8601 格式)。 - 以两部分展示结果:“Seeds Ready to Promote”列出已触发的种子及其触发条件、捕获阶段、捕获日期和提升命令;“Seeds Waiting”列出未触发的种子及其等待条件、状态和捕获信息。
使用方式
在 CocoPlus 项目中执行 $seed list。执行前需确保 .cocoplus/ 已初始化(可通过 $pod init 完成)。若种子目录为空或不存在,会输出相应提示。若 YAML 文件损坏,会跳过并警告。
适用场景
适用于使用 CocoPlus 种子机制管理项目想法的开发流程,定期检查哪些想法已具备提升条件,以便决定是否执行 $seed promote。
限制
- 不会自动提升任何种子,提升必须通过
$seed promote手动执行。 - 不会创建 git 提交。
- 不会修改种子的内容(想法或触发条件),仅更新状态和触发日期。
- 手动条件不会自动触发,需人工确认。