From 160ec576e1ee5451815241d0813abfd402ead1ee Mon Sep 17 00:00:00 2001 From: lanyuanxiaoyao Date: Tue, 9 Jun 2026 10:52:24 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=9B=B4=E6=96=B0=20plan=20=E5=92=8C?= =?UTF-8?q?=20status=20=E5=91=BD=E4=BB=A4=E7=9A=84=E5=B8=AE=E5=8A=A9?= =?UTF-8?q?=E6=96=87=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/cli/help.ts | 34 ++++++++++++++++++++-------------- tests/cli/help.test.ts | 7 ++++--- 2 files changed, 24 insertions(+), 17 deletions(-) diff --git a/src/cli/help.ts b/src/cli/help.ts index e264631..ea090a4 100644 --- a/src/cli/help.ts +++ b/src/cli/help.ts @@ -32,14 +32,17 @@ const COMMANDS: Record = { }, plan: { name: "plan", - alias: "plan <名称>", - description: "规划:生成规划阶段提示词", - usage: "rune plan ", - args: [{ name: "", desc: "变更名称,如 \"add-login\"" }], - detail: "生成规划阶段的提示词。变更目录将创建在 .rune/changes// 下。", + alias: "plan <变更> <文档>", + description: "规划:生成指定文档的规划提示词", + usage: "rune plan ", + args: [ + { name: "", desc: "变更名称,如 \"add-login\"" }, + { name: "", desc: "文档名称,如 \"design\"、\"task\"" }, + ], + detail: "生成规划阶段指定文档的提示词。依赖的前置文档必须已完成。可用文档由配置中的 plan.documents 定义。", examples: [ - "rune plan add-user-auth", - "rune plan fix-memory-leak", + "rune plan add-user-auth design", + "rune plan add-user-auth task", ], }, build: { @@ -68,12 +71,15 @@ const COMMANDS: Record = { }, status: { name: "status", - alias: "status", - description: "查看:列出当前进行中的变更", - usage: "rune status", - args: [], - detail: "扫描 .rune/changes/ 目录,列出所有进行中的变更及其任务进度。", - examples: ["rune status"], + alias: "status [变更]", + description: "查看:展示变更状态与下一步建议", + usage: "rune status [change-name]", + args: [{ name: "[change-name]", desc: "可选,指定查看的变更名称" }], + detail: "展示各文档完成状态、依赖满足情况、规划进度和下一步建议。不传参数则显示所有变更。", + examples: [ + "rune status", + "rune status add-user-auth", + ], }, }; @@ -99,7 +105,7 @@ export function showGlobalHelp(): string { lines.push(""); lines.push("示例:"); lines.push(" rune init opencode 初始化并注入 OpenCode 配置"); - lines.push(" rune plan add-login 开始规划 \"add-login\" 变更"); + lines.push(" rune plan add-login design 规划 \"add-login\" 的设计文档"); lines.push(" rune status 查看当前变更状态"); return lines.join("\n"); diff --git a/tests/cli/help.test.ts b/tests/cli/help.test.ts index f5228cb..0c34673 100644 --- a/tests/cli/help.test.ts +++ b/tests/cli/help.test.ts @@ -7,7 +7,7 @@ describe("showGlobalHelp", () => { expect(output).toContain("rune <命令> [参数]"); expect(output).toContain("init <工具...>"); expect(output).toContain("discuss"); - expect(output).toContain("plan <名称>"); + expect(output).toContain("plan <变更> <文档>"); expect(output).toContain("build <名称>"); expect(output).toContain("archive <名称>"); expect(output).toContain("status"); @@ -18,7 +18,7 @@ describe("showGlobalHelp", () => { it("包含示例", () => { const output = showGlobalHelp(); expect(output).toContain("rune init opencode"); - expect(output).toContain("rune plan add-login"); + expect(output).toContain("rune plan add-login design"); expect(output).toContain("rune status"); }); @@ -31,8 +31,9 @@ describe("showGlobalHelp", () => { describe("showCommandHelp", () => { it("plan 命令包含用法、参数、描述、示例", () => { const output = showCommandHelp("plan"); - expect(output).toContain("rune plan "); + expect(output).toContain("rune plan "); expect(output).toContain(""); + expect(output).toContain(""); expect(output).toContain("规划阶段"); expect(output).toContain("rune plan add-user-auth"); });