# 项目导师 炼境作为所管理项目的贴身导师——持续感知每个项目的功能运转状态、模块质量与成长方向,借助 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 完成