最后更新:2026-07-03 当前阶段:规划中
| 阶段 | 名称 | 预计时间 | 状态 | 开始日期 | 完成日期 |
|---|---|---|---|---|---|
| 1 | 项目骨架 | 1-2h | ✅ | 2026-07-03 | 2026-07-03 |
| 2 | Executa Tool 核心 | 3-4h | ✅ | 2026-07-03 | 2026-07-03 |
| 3 | 前端核心 | 3-4h | ✅ | 2026-07-03 | 2026-07-03 |
| 4 | Mock Fixture | 0.5h | ✅ | 2026-07-03 | 2026-07-03 |
| 5 | 集成测试 | 1-2h | ✅ | 2026-07-03 | 2026-07-03 |
| 6 | 打包与发布 | 2-3h | ✅ | 2026-07-03 | 2026-07-03 |
| 7 | 文档 | 1-2h | ✅ | 2026-07-03 | 2026-07-03 |
目标:建立完整的 monorepo 项目结构,确保 anna-app validate --strict 通过,anna-app dev --no-llm 能加载。
- 1.1 初始化 pnpm workspace(根 package.json, pnpm-workspace.yaml)
- 1.2 创建
manifest.json(声明 schema, required_executas, permissions, ui, dev) - 1.3 初始化前端项目
ui/(Vite + React + TypeScript) - 1.4 写最小前端("Hello Anna" + AnnaAppRuntime 连接)
- 1.5 初始化 Executa Tool 项目
executa/(package.json, tsconfig.json) - 1.6 写最小 Executa Tool(initialize + describe 响应)
- 1.7 创建
executa/executa.jsonmanifest - 1.8 配置
ui.host_api.storage和ui.host_api.tools权限 - 1.9 运行
anna-app validate --strict确认通过 - 1.10 运行
anna-app dev --no-llm确认前端可加载
- 根 package.json, pnpm-workspace.yaml
- manifest.json(完整声明)
- ui/ 项目骨架(可构建)
- executa/ 项目骨架(最小 RPC)
目标:完整实现 JSON-RPC 2.0 over stdio 的 Executa Tool,包括 sampling 支持。
- 2.1 实现 stdio 通信框架(stdin readline → JSON parse → route → JSON stringify → stdout flush)
- 2.2 实现
initializehandler(v2 capability negotiation,声明 sampling capability) - 2.3 实现
describehandler(返回完整 tool manifest) - 2.4 实现
healthhandler - 2.5 实现
shutdownhandler - 2.6 实现
invokehandler(解析 summarize 请求,构建 notes 列表) - 2.7 实现
sampling/createMessage反向请求(构建 prompt,发送 JSON-RPC 请求到 stdout) - 2.8 实现 sampling 响应处理(同一 stdin reader 接收 host 响应)
- 2.9 错误处理(无效 JSON-RPC、未知 method、invoke 参数错误)
- 2.10 日志全部输出到 stderr
- executa/src/index.ts(入口 + stdio 循环)
- executa/src/rpc.ts(JSON-RPC 2.0 框架)
- executa/src/handlers/*.ts(各方法处理器)
- executa/executa.json(完整 manifest)
目标:完整实现笔记 CRUD 和 LLM 总结 UI。
- 3.1 实现
ui/src/anna/runtime.ts(AnnaAppRuntime.connect 封装) - 3.2 实现
ui/src/anna/storage.ts(get/set 封装 + 错误处理) - 3.3 实现
ui/src/anna/tools.ts(invoke 封装 + 错误处理) - 3.4 实现
ui/src/hooks/useNotes.ts(笔记 CRUD 状态管理) - 3.5 实现
NoteInput组件(输入框 + 空内容禁用 + Enter 提交 + 保存后清空) - 3.6 实现
NoteList组件(列表展示 + 序号) - 3.7 实现
NoteItem组件(内容 + 删除按钮) - 3.8 实现
EmptyState组件(无笔记时显示) - 3.9 实现
ErrorBanner组件(错误信息展示) - 3.10 实现
Summarize组件(按钮 + loading + 结果 + 错误) - 3.11 实现
App.tsx根组件(组合所有组件 + 连接状态) - 3.12 配置 Vite 构建(输出静态文件到 dist/)
- 3.13 确认
manifest.json的ui.bundle.entry指向正确
- ui/src/ 完整源码
- 可
pnpm build生成 bundle - 所有组件覆盖正常/空/错误状态
目标:创建用于 anna-app executa dev --mock-sampling 的 fixture 文件。
- 4.1 创建
fixtures/sampling-mock.jsonl - 4.2 fixture 包含对
sampling/createMessage请求的模拟响应 - 4.3 fixture 中的 summary 内容合理(看起来像 LLM 生成的)
- fixtures/sampling-mock.jsonl
目标:按验收标准逐项验证。
- 5.1
anna-app validate --strict通过 - 5.2
anna-app dev --no-llm→ 创建笔记 → 确认 storage.set 被调用 - 5.3 刷新/重新加载 → 确认 storage.get 被调用
- 5.4 删除笔记 → 确认 storage.set 被调用(数量减少)
- 5.5 点击 Summarize → 确认 tools.invoke 被调用 → 显示
[-32603]错误 - 5.6
anna-app executa dev --mock-sampling fixtures/sampling-mock.jsonl通过 - 5.7 确认 fixture/log 中有
sampling/createMessage请求记录 - 5.8 手动测试 initialize/describe/invoke JSON-RPC
- 测试通过记录(截图或 log)
目标:编写打包脚本和 GitHub Actions workflow。
- 6.1 确定 binary 打包方案(esbuild + SEA)
- 6.2 编写
scripts/build-executa.sh(macOS/Linux) - 6.3 编写
scripts/build-executa.ps1(Windows) - 6.4 验证产物 archive 结构(根目录 manifest.json, bin/ 目录)
- 6.5 编写
.github/workflows/release.yml - 6.6 workflow 包含:三平台构建 + smoke test + 上传 Release assets
- 6.7 测试 workflow 触发和产物
- scripts/build-executa.sh
- scripts/build-executa.ps1
- .github/workflows/release.yml
- 三平台 release assets(验证用)
目标:编写完整 README,覆盖所有验收标准。
- 7.1 项目结构说明
- 7.2 安装依赖说明
- 7.3 构建前端 bundle 说明
- 7.4
anna-app validate --strict说明 - 7.5
anna-app dev --no-llm说明 +[-32603]解释 - 7.6
anna-app executa dev --mock-sampling说明 - 7.7 手动测试 Executa JSON-RPC 说明
- 7.8 确认 storage 走
anna.storage.*的方法 - 7.9 确认 summary 走完整链路的方法
- 7.10 本机二进制打包说明
- 7.11 GitHub Actions release 说明
- 7.12 Anna App 平台概念解释(manifest/bundle/executas/storage/sampling/binary)
- README.md(完整)
| 里程碑 | 完成标准 |
|---|---|
| 🏗️ 骨架可用 | ✅ anna-app validate --strict 通过 + dev 可加载 |
| 🔧 后端可用 | ✅ Executa Tool 全部 RPC 方法可测试 |
| 🎨 前端可用 | ✅ 笔记 CRUD + Summarize 在 --no-llm 下可操作 |
| ✅ 测试通过 | ✅ 所有验收标准满足(自动化 + 代码审查) |
| 📦 可发布 | ✅ 三平台 binary + GitHub Actions 可用 |
| 📖 文档完成 | ✅ README 覆盖所有要求 |