- 新增用户版 CONVENTIONS 存储层(app_data_dir/conventions/CONVENTIONS.md) - OnceLock 初始化目录,effective_conventions_content() 用户版优先 fallback 内置 - invalidate_effective_cache() 写入/重置后清除缓存 - 新增三个 Tauri command - get_user_conventions_status:返回来源(builtin/user)、版本、内容 - save_user_conventions:解析 frontmatter version,写入用户版,自动同步所有项目 - reset_conventions_to_builtin:删除用户版,自动同步回内置版 - sync_blueprint_rules / build_init_prompt / build_sync_prompt / generate_muhe_prompt 全部切换为 effective_conventions_content(),规则更新无需发版 - GovernancePanel 新增规则编辑器 UI - 来源 badge(内置基线 / 用户自定义) - 「应用梦核建议」区域:粘贴新内容 + 确认写入 + 同步进度提示 - 「重置为基线」按钮(仅用户版存在时显示)
125 lines
5.7 KiB
Markdown
125 lines
5.7 KiB
Markdown
# 项目导师
|
||
|
||
炼境作为所管理项目的贴身导师——持续感知每个项目的功能运转状态、模块质量与成长方向,借助 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: in_progress
|
||
- 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,列出需关注的项目名
|
||
|
||
## 决策记录
|
||
|
||
- 项目导师是洞察与引导层,health-center 是数据基础层,两者是上下游关系,不合并为一个模块
|
||
- Claude 是智能层的唯一执行者,代码只负责数据采集与结构化,不在代码层做质量推断
|
||
- 炼境自指是设计意图,不是边缘 case——从一开始就将其纳入系统,而非事后兼容
|
||
- 任务卡保持 concept 状态直到 health-center 完成,避免在数据基础未就绪时过早实现上层
|