SuperAPI AI 工具集

cli-forge-plan

编程与开发

查看项目

更新于 10-15 20:10

技能介绍

用途:cli-forge 技能族的 Plan 阶段,将上游 Design 阶段已批准的 design-contract.yml 转化为详细、可执行的 CLI 契约,回答“这个 CLI 如何工作”。产出的 .cli-forge/cli-plan.yml 是唯一事实来源,供 Scaffold 做模板展开、Extend 做能力预检、Validate 做合规基线。

主要能力:定义命令树(主入口、子命令、始终存在的 help 子命令、daemon 在范围内时的 daemon 子命令组),每个命令路径只能是可运行叶子命令或子命令容器,不能兼具两者。为每个命令锁定必选与可选标志(类型、默认值、描述)、支持的输出格式,错误格式固定为 structured_stderr。锁定调用层级:Shipped: <skill-name> ...、Dev: cargo run -- ...、Release binary: ./target/release/<skill-name> ...。锁定帮助行为四种场景:叶子默认(缺少必选输入仍为结构化失败,不自动显示帮助)、非叶子默认(顶层与非叶子路径自动渲染人类可读帮助)、--help 驱动、help 子命令配合 --format 的结构化输出;人类可读帮助须类 man 手册,依次含 NAME、SYNOPSIS、DESCRIPTION、OPTIONS、FORMATS、EXAMPLES、EXIT CODES。对 stream、repl、daemon 逐项显式标注 in_scope 或 out_of_scope;daemon 在范围内时锁定 app-server 契约(app-server 模式、单实例默认、run/start/stop/restart/status 生命周期命令、客户端路由标志与可守护命令、本地 IPC 默认与可选 TCP 及认证预期),并锁定运行时目录与 Active Context 行为。

使用方式:入口门要求 design-contract.yml 存在且已批准、技能范围清晰。加载 .cli-forge/ 下已批准的设计契约,阅读 ./planning-brief.md 获取共享约束,按 ./instructions/plan-cli.md 步骤执行,参照 ./contracts/cli-plan.yml.tpl 生成 cli-plan.yml,然后向用户请求批准。可用时调用运行时的对话框选择器(如 AskUserQuestion),选项为 approve and continue、request changes、stop for now;不可用时用编号文本菜单(1/2/3)并附 Other: <custom response> 兜底,接受精确回复 1、2、3 或 Other: ...,数字回复附带额外文字时先澄清,不要求用户输入完整选项标签。

适用场景:为 cli-forge 技能族规划 CLI 契约、准备进入 Scaffold 阶段之前。

限制:生成 cli-plan.yml 后必须停止并请求用户明确批准,不得自主进入 Scaffold 阶段;不得改变技能目的或定位(已在 Design 阶段锁定);不得开始实现代码,本阶段只产出计划文档;每个决策须可追溯到 planning brief 约束;不得定义兼具叶子与父级双重形态的混合命令路径;stream、repl、daemon 若不在范围内须显式说明,不得留空;daemon app-server 设计以 ./instructions/daemon-app-server.md 为准,若 scaffold、extend、validate 尚未采用该契约须明确指出不匹配,不得声称端到端实现一致;Extend 阶段新增功能时必须更新 cli-plan.yml,Plan 是活契约。退出门要求命令树完整、无双重形态路径、每个命令标志含类型与默认值、输出格式策略锁定、帮助行为定义、各可选能力显式标注、daemon 契约锁定或明确排除、运行时目录与 Active Context 行为定义、cli-plan.yml 已生成并批准。