# 功能区 UI 信息架构重构

对照宪章"名实一致"做的一次 UI 自洽重构。核心问题：资源类功能寄生在"项目管理"页、
BlueprintModal 巨型容器混装全局/跨项目/单项目三层内容、ProjectCard 十个操作无分层、
Gitea 全局实例配置错位在单项目弹窗内。

## 三条公理

1. **名实一致**：页面叫什么就只放什么
2. **层级对齐**：全局配置 → 设置页；跨项目 → 一级导航；单项目 → 项目弹窗/卡片
3. **频率分层**：高频直达，低频收进"更多"

## 目标信息架构（六组一级导航）

```
🏠 总览   行动项：跨项目进行中、可派发、Buff 项目、启动警报
📁 项目   产品组看板 / 独立项目 / 管理（项目·产品组·模板·标签·仓库注册表）
🖥️ 资源   服务器 / 软件仓库 / 云产品 / API 密钥 / 源码库
♻️ 洞察   飞轮（梦核·归档·git 质量）/ 健康中心 / CONVENTIONS 全局治理
🔧 工具   开发环境扫描 / WSL 代理
⚙️ 设置   编辑器·更新·MCP + Gitea 实例管理
```

设计文档全文见 2026-07-02 会话 /architect 输出（方案 A，零后端变更，纯前端挂载点迁移，分两阶段）。

## 任务卡（2026-07-02 /splitter 拆解）

### ✅ N1. 资源/工具一级页 + Sidebar 六组重组 + Dashboard 瘦身
- status: done
- complexity: M
- files: src/components/resources/ResourcesPage.tsx（新增）, src/components/tools/ToolsPage.tsx（新增）, src/components/layout/Sidebar.tsx, src/components/dashboard/Dashboard.tsx, src/App.tsx
- acceptance: Sidebar 显示六组导航（总览/项目/资源/洞察/工具/设置）；资源页 5 tab（服务器/软件仓库/云产品/API密钥/源码库）复用现有面板组件且 queryKey 不变；工具页 2 tab（开发环境/WSL代理）；洞察暂挂现健康中心内容（N3 再扩充）；Dashboard 看板只剩产品组/独立项目两个 tab；typecheck 通过

### ✅ N2. ProjectCard 操作分层（4 明按钮 + ⋯ 更多下拉）
- status: done
- complexity: M
- files: src/components/dashboard/ProjectCard.tsx
- acceptance: 底部操作区只显示 🗺️ 蓝图 / 🎓 导师 / 编辑 / 动态 四个明按钮 + ⋯ 更多下拉（收纳 🤖 Claude 配置、📝 个人备忘、🖥️ 关联服务器、🚀 CI/CD、🔬 环境扫描、🧰 工具管理，带文字标签）；下拉点击外部自动关闭；所有原功能可达；typecheck 通过

### ✅ N3. 洞察页：飞轮跨项目内容迁出 BlueprintModal + 健康中心并入
- status: done
- complexity: M
- depends: N1
- files: src/components/insight/InsightPage.tsx（新增）, src/components/dashboard/BlueprintModal.tsx, src/components/health/HealthPage.tsx
- acceptance: 洞察页 3 tab：飞轮 / 健康 / 全局治理；FlywheelPanel 的跨项目内容（梦核提示词、归档候选、全项目 Git 质量表、全量导入按钮）迁至飞轮 tab；CONVENTIONS 版本管理与应用梦核建议迁至全局治理 tab；BlueprintModal 侧板只保留单项目内容；typecheck 通过

### ✅ N4. Gitea 实例管理迁设置页（GiteaPanel 拆全局/项目级两半）
- status: done
- complexity: S
- depends: N1
- files: src/components/dashboard/GiteaPanel.tsx, src/components/settings/SettingsPage.tsx
- acceptance: 实例管理区（添加/测试/删除）拆为独立组件挂到设置页；BlueprintModal 治理面板只保留项目级绑定与 webhook 区（无实例时提示去设置页添加）；两处共用 ["gitea-instances"] queryKey；typecheck 通过

### ✅ N5. 仓库注册表并入项目页管理 tab + 总览收敛为行动项
- status: done
- complexity: S
- depends: N1
- files: src/components/manage/ManagePage.tsx, src/components/layout/Sidebar.tsx, src/components/overview/OverviewPage.tsx, src/components/dashboard/RepoRegistryModal.tsx
- acceptance: ManagePage 新增"仓库"tab 复用 RepoRegistry 列表内容；Sidebar 底部"仓库管理"按钮移除；总览页标题与文案对齐"行动项"定位（进行中任务/Buff 项目/警报，不新增统计类内容）；typecheck 通过

## 决策记录

- 选六组导航全面重组而非最小纠偏：资源拆分只解决问题 1，弹窗过载（问题 2）必须有"洞察页"作为跨项目内容的去处才能解
- 零后端变更是硬约束：所有迁移只挪组件挂载点，queryKey 保持不变（React Query 缓存天然共享，避免状态重复）
- 分两阶段落地（N1+N2 先行）：给肌肉记忆留适应期，也让阶段二可以基于阶段一的真实使用反馈微调

## 复盘笔记

【复盘】N1+N2 阶段一：导航重组 + 卡片分层（2026-07-02）
任务类型: 前端组件
复杂度: M×2
实际轮数: 1轮（预估 1 轮）
是否返工: 否
有效策略: 零后端约束使迁移退化为纯挂载点搬运——新容器页只做 tab 壳，面板组件与 queryKey 原样复用，typecheck 一次通过
遗留风险: ① 洞察页暂挂健康中心（N3 未做前名实略不符，导航先行占位）；② ProjectCard 更多菜单向上弹出，卡片在视口顶部时可能被裁剪（overflow 场景待实际使用观察）
auto_applied_rules: R01
rule_effectiveness: R01=未触发（无新 command，纯前端）

【复盘】N3+N4+N5 阶段二：洞察页 + 层级归位（2026-07-02）
任务类型: 前端组件
复杂度: M + S×2
实际轮数: 1轮（预估 1 轮）
是否返工: 否
有效策略: FlywheelPanel 整体函数级迁移（组件+子组件+查询原样搬家，仅去掉 onClose），BlueprintModal 用脚本按锚点批量切除 414 行避免手工 Edit 匹配失败；全局/项目级拆分以"操作影响范围"为判据（影响所有项目→洞察/设置，影响单项目→弹窗）
遗留风险: ① RegistryTab 在 ManagePage 中的 max-h-[70vh] 容器是估计值，长列表滚动体验待实际验证；② BlueprintModal 删除跨项目内容后侧板宽度 340px 未调整，治理面板可能显空旷
auto_applied_rules: R04
rule_effectiveness: R04=有效（本 session 改动 10+ 文件但全部在预建任务卡范围内，无漂移）
