# Rune 开发文档 ## 技术栈 - 运行时:Bun - 语言:TypeScript - CLI 框架:cac - YAML 解析:yaml - 测试:bun:test ## 项目结构 ``` src/ ├── cli.ts # CLI 入口 ├── cli/ │ ├── errors.ts # CLI 错误定义(CliError 层级) │ ├── output.ts # 格式化输出(错误/用法/提示) │ └── help.ts # 帮助文本生成 ├── types.ts # 类型定义 ├── commands/ │ └── init.ts # init 命令 ├── core/ │ ├── config.ts # 配置加载 │ ├── scanner.ts # 状态扫描 │ ├── assembler.ts # 提示词拼装 │ └── task-parser.ts # 任务解析 ├── adapters/ │ ├── opencode.ts # OpenCode 适配器 │ └── claude-code.ts # Claude Code 适配器(占位) └── defaults/ └── config.ts # 内置默认配置 tests/ # 测试目录(镜像 src 结构) ``` ## 开发命令 ```bash bun test # 运行全部测试 bun test tests/core/ # 运行指定目录测试 bun src/cli.ts init opencode # 测试 init 命令 bun src/cli.ts plan <变更名> <文档名> # 测试 plan 命令 bun src/cli.ts status [变更名] # 测试 status 命令 bun src/cli.ts help # 查看全局帮助 bun src/cli.ts help init # 查看 init 命令帮助 bun src/cli.ts version # 查看版本号 ``` ## CLI 交互架构 ### 子命令 CLI 通过子命令提供帮助和版本信息,不使用 `--help`/`--version` 标志: - `rune help` — 显示全局帮助(可用命令列表) - `rune help ` — 显示指定命令的详细用法 - `rune version` — 显示版本号 ### 错误处理 错误消息采用结构化格式,相关代码位于: - `src/cli/errors.ts` — `CliError` 错误层级(未知命令、缺少参数等) - `src/cli/output.ts` — 格式化输出(`错误:`、`用法:`、`提示:` 三段式) - `src/cli/help.ts` — 帮助文本生成 ## 测试策略 ### Level 1 — 纯单元/集成测试(当前) 在临时目录执行完整流程,验证文件创建、目录结构、提示词输出。 ### Level 2 — 提示词快照测试(后续增强) 对每个阶段捕获提示词输出,与预期快照对比。 ### Level 3 — mock-agent 端到端(后续增强) 编排完整闭环:rune 输出 → mock-agent 处理 → rune 继续下一阶段。 ### Level 4 — 真实 AI 工具集成(CI 可选) 调用 LLM API 验证输出格式可被解析。