Files
Rune-Spec/DEVELOPMENT.md

85 lines
2.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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 <command>` — 显示指定命令的详细用法
- `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 验证输出格式可被解析。