CANNbot-Insight对话洞察开发计划

CANNbot-Insight对话洞察开发计划 Session 对话级洞察 — Phase3 开发计划TDD 方式【免费下载链接】cannbot-skillsCANNBot 是面向 CANN 开发的用于提升开发效率的系列智能体本仓库为其提供可复用的 Skills 模块。项目地址: https://gitcode.com/cann/cannbot-skills版本v0.4最后更新2026-06-12开发策略先实现 opencode DB 全链路端到端可跑通Claude Code JSONL 适配后续迭代开发方式开发者测试驱动— 每个模块先写测试用真实/合成数据再实现测试通过才算完成状态标记⬜ 未开始 进行中 ✅ 已完成§1 开发原则1.1 TDD 流程每个功能模块的开发遵循准备测试数据 → 写测试 → 实现 → 测试通过 → 下一个模块测试数据用真实的 opencode sessions.db 作为测试输入无真实数据时用合成 JSON 构造先写测试每个模块先写单元测试或集成测试定义输入→期望输出实现到测试通过实现模块逻辑跑测试通过后才算完成该模块持续可运行每完成一个模块整个系统必须处于可运行状态1.2 测试数据准备| 数据类型 | 来源 | 用途 | |-|-|-| | opencode sessions.db | 从实际 opencode 使用中导出一个含 3 session 的 DB 文件 | adapter 测试 全链路集成测试 | | opencode 合成 JSON | 手工合成一个含 root 1 subagent skill load 的完整 RawInteraction 数组 | turn-split / bridge-builder / execution-split 测试 |测试数据文件放在tests/data/目录下。§2 开发步骤Step 1项目骨架 测试框架1 天| 编号 | 状态 | 任务 | 验收 | |-|-|-|-| | S1-01 | ✅ | 初始化 Next.js 项目npx create-next-app App Router TypeScript |npm run dev可启动 | | S1-02 | ✅ | 安装依赖Prisma better-sqlite3 shadcn/ui tailwindcss vitest |npm install无报错 | | S1-03 | ✅ | Prisma schema 萬地Phase2 §2.1 全部 8 个 modelnpx prisma migrate| DB 文件生成npx prisma studio可打开 | | S1-04 | ✅ | 配置 vitestvitest.config.tstests/setup.ts|npm run test可运行空测试通过 | | S1-05 | ✅ | 基础 UI shelllayout.tsx globals.css shadcn/ui 初始化 |npm run dev页面可访问 | | S1-06 | ✅ | 准备测试数据收集真实 opencode DB 放入tests/data/合成含 subagent skill 的 JSON | 测试数据文件存在且格式正确 |Step 2数据源适配器 — opencode-db1 天TDD 流程先写listSessions()和readSession()的测试 → 实现 → 测试通过| 编号 | 状态 | 任务 | 验收 | |-|-|-|-| | S2-01 | ✅ | 写测试tests/adapters/opencode-db.test.tslistSessions()返回 session 列表含 id/创建时间/第一个提示词/turn 数/模型名readSession(sessionId)返回 RawInteraction[]空 DB / 无 session / 格式不兼容的错误处理 | 测试写好先 failing | | S2-02 | ✅ | 实现adapters/opencode-db.ts用 better-sqlite3 打开外部 DB → 查询 sessions/messages/tools 表 →listSessions()和readSession()| S2-01 测试全部通过 | | S2-03 | ✅ | 手工验证CLI 或脚本调用listSessions()对真实 DB输出 session 列表确认时间/提示词/turn 数可读 | 真实 DB 的 session 列表输出正确 |Step 3适配器注册表 normalize0.5 天注claude-jsonl adapter 暂不实现本轮只跑通 opencode DB 全链路| 编号 | 状态 | 任务 | 验收 | |-|-|-|-| | S3-01 | ✅ | 写测试tests/adapters/index.test.tssource type opencode-db 路由到 opencode-db adapter | 测试通过 | | S3-02 | ✅ | 实现adapters/index.ts只注册 opencode-dbclaude-jsonl 留 stub | S3-01 通过 | | S3-03 | ✅ | 写测试tests/normalize.test.tsopencode 格式 RawInteraction 归一化 | 测试通过 | | S3-04 | ✅ | 实现normalize.ts只处理 opencode 格式 | S3-03 通过 |Step 4turn-split — 核心拆解1 天TDD 流程用合成 JSON 数据先写测试 → 实现 → 测试通过 → 用真实 DB 数据再验证| 编号 | 状态 | 任务 | 验收 | |-|-|-|-| | S4-01 | ✅ | 写测试tests/turn-split.test.tsRawInteraction[] → Turn[] ToolCall[] SkillEvent[]token 五项分项赋值时间字段赋值skill/invoke/load 识别assistant turn 的 inputMessages 重构contentSummary 截断≤200字contextWindowPct 计算role/agent_identity 正确 | 测试写好先 failing | | S4-02 | ✅ | 实现turn-split.ts| S4-01 测试全部通过 | | S4-03 | ✅ | 用真实 opencode DB 数据验证readSession()→turn-split()确认真实数据拆解结果合理 | 真实数据拆解输出可检视 |Step 5bridge-builder execution-split1 天TDD 流程用含 subagent 的合成数据先写测试 → 实现 → 用真实数据验证| 编号 | 状态 | 任务 | 验收 | |-|-|-|-| | S5-01 | ✅ | 写测试tests/bridge-builder.test.ts(18 tests) | 测试写好 | | S5-02 | ✅ | 实现bridge-builder.ts| S5-01 通过 | | S5-03 | ✅ | 写测试tests/execution-split.test.ts(29 tests) | 测试写好 | | S5-04 | ✅ | 实现execution-split.ts| S5-03 通过 | | S5-05 | ✅ | 用真实 opencode DB含 subagent session验证完整拆解链路 | 真实数据全链路输出可检视 |Step 6cost-calculator merge contenteditable="false">【免费下载链接】cannbot-skillsCANNBot 是面向 CANN 开发的用于提升开发效率的系列智能体本仓库为其提供可复用的 Skills 模块。项目地址: https://gitcode.com/cann/cannbot-skills创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考