3.5 KiB
3.5 KiB
arch-design-agent-skill-dashboard — full-implementation 开发记录
基本信息
- 项目: arch-design-agent-skill-dashboard
- 功能: full-implementation(全功能实现)
- 日期: 2026-03-23
- 状态: ✅ 完成
需求描述
根据项目中 design/ 目录下的架构设计文档(业务架构、应用架构、数据架构、技术架构、领域设计等),使用 Superpowers 结构化开发流程,实现 dashboard 的所有功能。项目框架和目录结构已搭建好,需补全所有模块的实际业务逻辑代码。
技术方案
- 后端: Python 3.12 + FastAPI + uvicorn + Pydantic,模块化 DDD 架构
- 前端: Vue 3 + TypeScript + Vite + D3.js(图谱可视化)
- 部署: Docker Compose(backend 8900 / frontend 8899)
- 数据: JSON 文件持久化项目注册表,设计文件直接读写
实现细节
后端模块 (30+ commits)
- project: CRUD + JSON 文件持久化
- scanner: CSV/MD/YAML/OpenAPI 四种解析器,支持 20+ CSV 文件类型映射为 Design 实体
- editor: 文件读写 + 影响分析(通过 frontmatter upstream/downstream 关系)
- graph: 全景关系图构建 + 邻居查询(63 nodes, 94 edges)
- impl_tracker: 实现进度评估 + 手动覆盖(9 modules)
- design: 31 个设计实体 dataclass + FileStatus 检测 + 验证规则
- shared: 配置管理 + 文件系统工具
前端模块
- project: 项目列表 + 创建/删除
- graph: D3.js 力导向图全景 + 节点下钻详情面板(右侧抽屉)
- editor: CSV 表格编辑器(添加行/删除行/保存)+ Markdown 双栏编辑器(源码 + 实时预览)
- router: 3 个路由(首页/项目图谱/编辑器)
部署
- Docker Compose: backend (8900) + frontend via nginx (8899)
- DESIGN_DIR 挂载项目根目录 → 容器内 /data/design
- Dockerfile 使用 Nexus 代理(PyPI + npm)
测试结果
| 序号 | 功能 | 结果 | 截图 |
|---|---|---|---|
| 1 | 首页空状态 | ✅ | test-images/01-homepage.png |
| 2 | 项目列表 | ✅ | test-images/02-project-list.png |
| 3 | 全景关系图(63 nodes, 94 edges) | ✅ | test-images/03-project-overview-graph.png |
| 4 | 图节点下钻详情 | ✅ | test-images/04-graph-drilldown.png |
| 5 | 编辑器页面 | ✅ | test-images/05-editor-page.png |
| 6 | CSV 表格编辑器 | ✅ | test-images/06-csv-editor.png |
| 7 | Markdown 双栏编辑器 | ✅ | test-images/07-md-editor.png |
| 8 | API /health | ✅ | (API response: {"status": "ok"}) |
| 9 | 设计扫描 (POST /scan) | ✅ | (94 files scanned) |
| 10 | 实体查询 (capabilities) | ✅ | (10 capabilities) |
| 11 | 实体查询 (modules) | ✅ | (9 modules) |
| 12 | 影响分析 | ✅ | (API 200 OK) |
| 13 | 实现进度评估 | ✅ | (9 modules evaluated) |
API 端点 (23 个)
- Projects CRUD, Scan, Entities (capabilities/modules/entities/integrations/value-flows/user-journeys/data-flows/external-systems/traceability-links/runtime-components + detail), Graph (panorama/neighbors), Editor (read/write + impact), Impl Progress (evaluate/override), Health
遇到的问题及解决方案
| 问题 | 解决方案 |
|---|---|
| 宿主机 8900 端口被旧 uvicorn 占用 | kill 旧进程 |
| .git 权限不匹配(vagrant vs dev:1001) | chown 修复 |
| host.docker.internal 在 Linux 不可用 | 改用 --network host 构建 + localhost |
| nginx:alpine 不在 Nexus 代理中 | dpull 通过代理下载后 docker tag |
| Playwright input 选择器不匹配 | 检查 Vue 模板,使用正确的 input 选择器 |