Files
Rune-Spec/DEVELOPMENT.md

2.5 KiB
Raw Blame History

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 结构)

开发命令

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.tsCliError 错误层级(未知命令、缺少参数等)
  • 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 验证输出格式可被解析。