# 项目导师

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