SuperAPI AI 工具集

cli-forge-extend

编程与开发

查看项目

更新于 10-15 20:09

技能介绍

用途:cli-forge Extend 是 cli-forge 技能族的扩展阶段,用于给已有的 Rust CLI Skill 项目添加可选能力,或在接管(takeover)采用且已符合 scaffold 兼容文件布局的项目上做同样扩展。本阶段只处理三类功能:stream(JSON 流式输出)、repl(交互式终端会话)、daemon(后台 app-server 守护进程执行)。

主要能力:从打包的 ./templates/ 展开对应功能模板(如 stream.rs.tpl、repl.rs.tpl、daemon.rs.tpl);向主程序流程注入必要钩子;更新测试;并把能力状态同步回 cli-plan.yml 契约。需要时会给 args 结构添加标志、在 match 循环中接入子系统分支、补充结构格式断言,并更新 SKILL.md 边界、帮助文本与 README。

使用方式:必要输入为 project_path 和 feature(stream、repl 或 daemon)。入口条件包括目标目录存在、存在 scaffold 基线或 scaffold 兼容的 takeover 基线、功能在 cli-plan.yml 中标记为 in_scope、且通过幂等检查尚未添加。执行流程为遵循 ./instructions/add-feature.md,从 ./templates/ 展开所需模板,谨慎完成集成更新,并在生成项目根目录运行验证:cargo build、cargo test、cargo clippy -- -D warnings、cargo fmt --check。最后生成 .cli-forge/extend-receipt.yml(模板 ./contracts/extend-receipt.yml.tpl),并保证 cli-plan.yml 将该能力反映为 in_scope。

适用场景:已生成或已接管的 Rust CLI 项目需要增加流式输出、交互式 REPL 或后台守护进程能力时;已有 cli-plan.yml 且希望保持代码与契约一致时。

限制与注意事项:若功能未在 cli-plan.yml 中标为 in_scope,须先回到 Plan 阶段更新契约,不得先写代码;若功能与 cli-plan.yml 冲突,须先更新 plan。仅当采用项目已具备本阶段直接修补的 scaffold 兼容文件(Cargo.toml、SKILL.md、src/main.rs、src/lib.rs、src/help.rs、src/context.rs,以及预期直接修补集成测试时的 tests/cli_test.rs)和 overlay 所需 API/依赖面(src/context.rs 需暴露 resolve_runtime_locations 等脚手架式上下文/运行时助手;REPL 还需已有 rustyline),方可继续;缺失时应停止并告知需规范化或手动实现,不要回退到 Takeover。若项目缺少 scaffold-receipt.yml 和 takeover-receipt.yml,应停止并路由回 Takeover 建立或刷新基线。若项目已有 design-contract.yml 和 cli-plan.yml 但缺少两个基线收据,也路由到 Takeover 做基线建立或契约刷新。takeover 采用的项目在扩展后仍标记为 takeover-adopted,保留 takeover-receipt.yml 并新增 extend-receipt.yml。若 cli-plan.yml 已声明 daemon 行为,stream 与 repl 覆盖层不得改写 daemon 命令、路由标志、传输选择或恢复语义。本阶段拒绝添加除 stream、repl、daemon 之外的功能。下一步继续使用 ../cli-forge-validate/SKILL.md 运行完整合规规则集。