fix: build 命令在 plan 未完成时给出友好提示而非未预期错误

This commit is contained in:
2026-06-09 11:42:27 +08:00
parent 27f19d8bdf
commit 0869014c3f
2 changed files with 18 additions and 6 deletions

View File

@@ -2,6 +2,7 @@ import { existsSync } from "node:fs";
import { readFile } from "node:fs/promises";
import { join } from "node:path";
import type { RuneConfig } from "../types.ts";
import { CommandError } from "../cli/errors.ts";
import { getChangeDir } from "./config.ts";
import { parseTasks } from "./task-parser.ts";
@@ -69,7 +70,11 @@ export async function assembleBuildPrompt(
changeName: string,
): Promise<string> {
const build = config.stages.build;
if (!build) throw new Error("build 阶段未配置");
if (!build) {
throw new CommandError("构建阶段未配置", {
hint: "请在 .rune/config.yaml 中配置 stages.build",
});
}
const changeDir = getChangeDir(projectRoot, changeName);
const taskPath = join(changeDir, "task.md");
@@ -78,7 +83,9 @@ export async function assembleBuildPrompt(
try {
taskContent = await readFile(taskPath, "utf-8");
} catch {
throw new Error(`task.md not found in ${changeDir}`);
throw new CommandError(`变更 "${changeName}" 尚未完成规划task.md 不存在`, {
hint: `请先完成规划阶段rune plan ${changeName} 生成所有规划文档`,
});
}
const tasks = parseTasks(taskContent);