save_user_conventions / reset_conventions_to_builtin 移除前端传路径的设计, 改为后端自行从 DB 查询所有项目路径(Windows 路径 + WSL UNC 路径), 确保 WSL 项目不再被漏同步;同步锁定蓝图数据:T4 关锁、blueprint-view frontmatter 修正
6.3 KiB
6.3 KiB
项目导师
炼境作为所管理项目的贴身导师——持续感知每个项目的功能运转状态、模块质量与成长方向,借助 Claude 将数据转化为有观点的引导。炼境自身亦被纳入其中,形成自指闭环。
核心定位
功能运转感知(代码做)
→ 各模块是否在正常运转?有无停滞、失效、报错?
功能质量理解(Claude 做)
→ 各模块实现质量如何?在整体中分量几何?
成长方向引导(代码 + Claude 协作)
→ 下一步该聚焦什么?风险在哪?优化路径是什么?
三层能力作用于炼境管理的每一个项目,也作用于炼境自身—— 工具与被工具服务的对象合而为一,闭环成立。
自指闭环说明
炼境 感知其他项目 → 积累模式与洞察
↓
同样机制作用于炼境自身
↓
Claude 读炼境蓝图 + 运行指标
→ 给出炼境自身的优化建议
↓
炼境变得更强 → 更好地理解项目
↓
包括更好地理解自己 ↺
炼境通过管理别的项目认识自己,通过认识自己成为更好的导师。
数据基础(上游依赖)
| 数据源 | 提供什么 | 来自哪个模块 |
|---|---|---|
| blueprint 规划态 | 模块设计意图、任务完成度 | blueprint-flywheel |
| runtime_logs | 执行层历史、注入成功率 | runtime-diagnostics |
| usage.json 飞轮 | 跨项目趋势、飞轮持续率 | blueprint-feedback |
| 健康中心指标 | Git 活跃度、CI 状态、路径有效性 | health-center |
| MCP 接口 | Claude 可查询任意维度 | mcp-server |
任务卡
✅ T1 · 后端聚合 command(MentorContext)
- status: done
- complexity: M
- files: src-tauri/src/commands/mentor.rs, src-tauri/src/lib.rs
- acceptance:
get_mentor_context(project_id)返回包含 health、blueprint_summary、recent_errors、mentor_markdown 的 MentorContext 结构体,可通过 Tauri invoke 调用成功
✅ T2 · MCP 项目导师查询接口
- status: done
- complexity: S
- files: src-tauri/src/mcp_server.rs
- depends: T1
- acceptance: MCP 新增
get_project_mentor_context工具,Claude 调用后返回 mentor_markdown 字符串,内容包含健康摘要与近期错误
✅ T3 · 前端导师面板
- status: done
- complexity: M
- files: src/components/mentor/MentorPanel.tsx, src/lib/commands.ts, src/components/dashboard/ProjectCard.tsx
- depends: T1
- acceptance: 项目卡片底部出现"🎓"导师按钮,点击展示健康摘要和近期错误,"生成导师报告"按钮点击后将 mentor_markdown 复制到剪贴板
✅ T4 · 炼境自指接入
- status: done
- complexity: S
- files: src-tauri/src/commands/mentor.rs
- depends: T1
- acceptance: 炼境自身(dev-manager-tauri)作为项目注册后,
get_mentor_context能正常返回其蓝图摘要和健康数据,不产生递归调用
✅ T5 · project_notes 数据层 + 后端命令
- status: done
- complexity: S
- files: src-tauri/src/db.rs, src-tauri/src/commands/mentor.rs, src-tauri/src/lib.rs
- depends: T1
- acceptance: DB 增量迁移新增
project_notes表;get_project_notes(project_id)和add_project_note(project_id, content, source)两个 Tauri command 可通过 invoke 正常调用
✅ T6 · MCP append_project_note 工具
- status: done
- complexity: S
- files: src-tauri/src/mcp_server.rs
- depends: T5
- acceptance: MCP tools/list 新增
append_project_note工具;Claude 通过 MCP 调用后,笔记写入 DB,返回成功确认;包含 group 归属校验(project_id 必须属于请求的 group)
✅ T7 · MentorPanel 展示 AI 笔记
- status: done
- complexity: S
- files: src/components/mentor/MentorPanel.tsx, src/lib/commands.ts
- depends: T5
- acceptance: MentorPanel 底部新增"AI 笔记"区域,展示该项目最近 10 条笔记(时间 + 内容),无笔记时显示占位文案
✅ T8 · 后端全组巡检命令
- status: done
- complexity: S
- files: src-tauri/src/commands/mentor.rs, src-tauri/src/lib.rs
- depends: T1
- acceptance:
get_group_mentor_report(group_id)命令遍历组内所有项目,聚合每个项目的 mentor_markdown,返回一份完整的 Markdown 字符串,包含各项目小标题分隔
✅ T9 · 前端全组巡检按钮
- status: done
- complexity: S
- files: src/components/manage/ManagePage.tsx, src/lib/commands.ts
- depends: T8
- acceptance: ManagePage 产品组 Tab 的每个组卡片右上角出现"巡检全组"按钮;点击后加载中显示 spinner,完成后将聚合报告复制到剪贴板并提示"已复制,可粘贴给 Claude"
✅ T10 · 启动健康扫描 + 前端 Alert Banner
- status: done
- complexity: M
- files: src-tauri/src/commands/mentor.rs, src-tauri/src/lib.rs, src/lib/commands.ts, src/App.tsx
- depends: T1
- acceptance: 应用启动时后台扫描所有项目,超 14 天无 git 提交或蓝图存在 🔴 blocked 任务的项目写入告警(category=startup_alert);前端 App.tsx 加载完成后调用
get_startup_alerts,有结果则在页面顶部显示可关闭的黄色 Banner,列出需关注的项目名
✅ T11 · 项目历史快照
- status: done
- complexity: S
- files: src-tauri/src/db.rs, src-tauri/src/commands/mentor.rs, src-tauri/src/mcp_server.rs
- acceptance: 新增
project_snapshots表(每天每项目唯一 UNIQUE 约束),启动健康扫描时写入快照(days_since_commit、blueprint_done_rate、blueprint_in_progress、blueprint_blocked、has_errors);MCP 新增get_project_snapshots工具,返回指定天数的历史趋势 Markdown 表格
决策记录
- 项目导师是洞察与引导层,health-center 是数据基础层,两者是上下游关系,不合并为一个模块
- Claude 是智能层的唯一执行者,代码只负责数据采集与结构化,不在代码层做质量推断
- 炼境自指是设计意图,不是边缘 case——从一开始就将其纳入系统,而非事后兼容
- 任务卡保持 concept 状态直到 health-center 完成,避免在数据基础未就绪时过早实现上层
- 历史快照是 Claude 做趋势分析的数据基础,代码只负责采集落库,分析由 Claude 通过 MCP 完成