feat: types 和 defaultConfig 增加 create 阶段
This commit is contained in:
@@ -91,7 +91,7 @@ export function validateConfig(config: RuneConfig): void {
|
|||||||
|
|
||||||
function mergeConfig(userConfig: Partial<RuneConfig>): RuneConfig {
|
function mergeConfig(userConfig: Partial<RuneConfig>): RuneConfig {
|
||||||
const result: RuneConfig = { stages: {} };
|
const result: RuneConfig = { stages: {} };
|
||||||
const stageKeys = ["discuss", "plan", "build", "archive"] as const;
|
const stageKeys = ["discuss", "create", "plan", "build", "archive"] as const;
|
||||||
|
|
||||||
for (const stage of stageKeys) {
|
for (const stage of stageKeys) {
|
||||||
if (userConfig.stages?.[stage]) {
|
if (userConfig.stages?.[stage]) {
|
||||||
|
|||||||
@@ -232,6 +232,14 @@ rune status
|
|||||||
|
|
||||||
除非……有同步组件?
|
除非……有同步组件?
|
||||||
\`\`\``,
|
\`\`\``,
|
||||||
|
},
|
||||||
|
create: {
|
||||||
|
prompt: `请根据讨论内容,拟定一个简短、有意义的变更名称,然后执行 create 命令创建变更目录。
|
||||||
|
|
||||||
|
要求:
|
||||||
|
- 变更名称应简洁明了,能概括变更的核心内容
|
||||||
|
- 仅支持中文、英文和短横线(-)
|
||||||
|
- 创建成功后,引导用户使用 /rune-plan <变更名> <文档名> 进入规划阶段`,
|
||||||
},
|
},
|
||||||
plan: {
|
plan: {
|
||||||
documents: [
|
documents: [
|
||||||
|
|||||||
@@ -15,6 +15,10 @@ export interface DiscussStage {
|
|||||||
prompt: string;
|
prompt: string;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export interface CreateStage {
|
||||||
|
prompt: string;
|
||||||
|
}
|
||||||
|
|
||||||
export interface PlanStage {
|
export interface PlanStage {
|
||||||
documents: DocumentConfig[];
|
documents: DocumentConfig[];
|
||||||
}
|
}
|
||||||
@@ -29,6 +33,7 @@ export interface ArchiveStage {
|
|||||||
|
|
||||||
export interface StagesConfig {
|
export interface StagesConfig {
|
||||||
discuss?: DiscussStage;
|
discuss?: DiscussStage;
|
||||||
|
create?: CreateStage;
|
||||||
plan?: PlanStage;
|
plan?: PlanStage;
|
||||||
build?: BuildStage;
|
build?: BuildStage;
|
||||||
archive?: ArchiveStage;
|
archive?: ArchiveStage;
|
||||||
@@ -55,7 +60,7 @@ export interface ChangeStatus {
|
|||||||
taskProgress: { completed: number; total: number } | null;
|
taskProgress: { completed: number; total: number } | null;
|
||||||
}
|
}
|
||||||
|
|
||||||
export const STAGES = ["discuss", "plan", "build", "archive"] as const;
|
export const STAGES = ["discuss", "create", "plan", "build", "archive"] as const;
|
||||||
export type Stage = (typeof STAGES)[number];
|
export type Stage = (typeof STAGES)[number];
|
||||||
|
|
||||||
export const RUNE_DIR = ".rune";
|
export const RUNE_DIR = ".rune";
|
||||||
|
|||||||
@@ -2,13 +2,19 @@ import { describe, it, expect } from "bun:test";
|
|||||||
import { defaultConfig } from "../../src/defaults/config.ts";
|
import { defaultConfig } from "../../src/defaults/config.ts";
|
||||||
|
|
||||||
describe("defaultConfig", () => {
|
describe("defaultConfig", () => {
|
||||||
it("包含所有四个阶段的配置", () => {
|
it("包含所有五个阶段的配置", () => {
|
||||||
expect(defaultConfig.stages.discuss).toBeDefined();
|
expect(defaultConfig.stages.discuss).toBeDefined();
|
||||||
|
expect(defaultConfig.stages.create).toBeDefined();
|
||||||
expect(defaultConfig.stages.plan).toBeDefined();
|
expect(defaultConfig.stages.plan).toBeDefined();
|
||||||
expect(defaultConfig.stages.build).toBeDefined();
|
expect(defaultConfig.stages.build).toBeDefined();
|
||||||
expect(defaultConfig.stages.archive).toBeDefined();
|
expect(defaultConfig.stages.archive).toBeDefined();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it("包含 create 阶段的配置", () => {
|
||||||
|
expect(defaultConfig.stages.create).toBeDefined();
|
||||||
|
expect(defaultConfig.stages.create!.prompt).toBeTruthy();
|
||||||
|
});
|
||||||
|
|
||||||
it("discuss 阶段有 prompt", () => {
|
it("discuss 阶段有 prompt", () => {
|
||||||
expect(defaultConfig.stages.discuss!.prompt).toBeTruthy();
|
expect(defaultConfig.stages.discuss!.prompt).toBeTruthy();
|
||||||
expect(typeof defaultConfig.stages.discuss!.prompt).toBe("string");
|
expect(typeof defaultConfig.stages.discuss!.prompt).toBe("string");
|
||||||
|
|||||||
Reference in New Issue
Block a user