83 lines
2.4 KiB
Markdown
83 lines
2.4 KiB
Markdown
# 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 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 验证输出格式可被解析。
|