Files
geMoldInsight/AGENTS.md
T
2026-09-02 18:18:42 +08:00

138 lines
6.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# AGENTS.md - geMoldInsight 开发规范
> 本文件是给开发 agent(Claude / Codex / …)和协作开发者的项目入口约定。**开始任何实现前先读本文件**。
> 人类入口见 [README.md](README.md);当前实现状态见 [docs/STATUS.md](docs/STATUS.md);当前架构与边界见 [docs/ARCHITECTURE.md](docs/ARCHITECTURE.md)。
## 1. 项目定位
**geMoldInsight** 是一个面向模具制造场景的综合系统,围绕:
- STEP / STP 模型分析
- 模具方案生成
- 分析结果沉淀与导出
- 成品创建
- BOM / 库存 / 采购 / 销售闭环
当前整体形态为:
> **单仓库 + 单数据库 + 多模块 + 可独立部署**
核心模块:
- `moldinsight`:模具分析、几何处理、批量分析、成本估算、结果导出
- `inventory`:产品、BOM、库存、采购、销售、财务
- `frontend`:Vue 3 前端工程
- `shared`:配置、数据库、认证、日志、应用工厂等共享平台层
## 2. 硬约束速览(违反即返工)
- **执行前必须先同步方案到文档**:开始实施前,必须先把方案写入对应文档,再按照文档中的步骤逐项执行,不能先改代码后补文档。
- **每次完成需求都必须更新文档**:每完成一个需求,都必须同步更新相关文档,保持文档为最新状态,避免实现与文档漂移。
- **README 只做导航入口**:不在 README 重复维护状态、架构、规划、部署细节。
- **当前实现状态只在 [docs/STATUS.md](docs/STATUS.md) 维护**。
- **架构边界只在 [docs/ARCHITECTURE.md](docs/ARCHITECTURE.md) 维护**。
- **规划路线只在 [docs/ROADMAP.md](docs/ROADMAP.md) 维护**。
- **技术债只在 [docs/TECH_DEBT.md](docs/TECH_DEBT.md) 维护**。
- **部署入口只在 [docs/DEPLOYMENT.md](docs/DEPLOYMENT.md) 与 [docs/deployment/LINUX_SETUP.md](docs/deployment/LINUX_SETUP.md) 维护**。
- **历史材料统一进入 [docs/archive/](docs/archive/)**,不与当前权威文档混放。
- **新增业务逻辑优先进入对应模块**,不要继续把业务逻辑堆进 `shared`。
- **接口变更优先补契约与请求模型**,减少手写 `request.json()` 风格解析。
## 3. 代码地图
```text
geMoldInsight/
├── src/
│ ├── entrypoints/ # 独立部署入口(moldinsight / inventory / unified)
│ ├── moldinsight/ # 模具分析模块
│ │ ├── api/ # 模具分析 API
│ │ ├── services/ # 业务服务层
│ │ ├── core/ # 几何 / 算法 / OCC 核心能力
│ │ └── ...
│ ├── inventory/ # 进销存模块
│ │ ├── api/ # 进销存 API
│ │ ├── services/ # 业务服务层
│ │ └── ...
│ ├── shared/ # 当前共享平台层(配置 / DB / 认证 / 日志 / app factory)
│ ├── celery_app.py # Celery app
│ └── celery_tasks.py # moldinsight 异步任务
├── frontend/ # Vue 3 独立前端工程
├── alembic/ # 数据库迁移
├── deploy/ # Docker / Nginx / 部署辅助文件
├── docs/ # 当前权威文档与主题文档
├── tests/ # 测试
└── README.md # 人类入口与最短启动说明
```
## 4. 开发规范
### 4.1 文档先行
所有非微小改动都遵循:
1. 先明确改动范围与目标
2. 先把实施方案同步到文档
3. 再按文档步骤执行实现
4. 完成后回填结果、状态、约束变化
如果方案变化,必须先更新文档,再继续实现。
### 4.2 文档更新规则
完成需求后,至少检查并更新这些文档中的相关项:
- 实现状态变化:更新 [docs/STATUS.md](docs/STATUS.md)
- 架构边界变化:更新 [docs/ARCHITECTURE.md](docs/ARCHITECTURE.md)
- 规划变化:更新 [docs/ROADMAP.md](docs/ROADMAP.md)
- 技术债状态变化:更新 [docs/TECH_DEBT.md](docs/TECH_DEBT.md)
- 部署方式变化:更新 [docs/DEPLOYMENT.md](docs/DEPLOYMENT.md) 与 [docs/deployment/LINUX_SETUP.md](docs/deployment/LINUX_SETUP.md)
- 历史/阶段性材料:必要时迁入 [docs/archive/README.md](docs/archive/README.md) 所索引的位置
### 4.3 代码组织规则
- `moldinsight` 业务代码进入 `src/moldinsight/`
- `inventory` 业务代码进入 `src/inventory/`
- 真正跨模块复用的基础能力才进入 `src/shared/`
- 尽量避免继续扩大 `shared` 的业务组合职责
- 新增 API 时优先考虑模块归属、service 复用与请求模型规范化
### 4.4 API 与契约规则
- 优先使用明确的请求模型和参数校验
- 尽量减少手写 `await request.json()` / `request.json()` 解析
- 路由文件过大时按职责拆分,避免单 router 混合过多领域能力
- 返回结构、接口路径、前后端契约发生变化时,要同步更新相关文档
### 4.5 文档体系规则
- README 只做导航与最短入门
- 当前状态只在 [docs/STATUS.md](docs/STATUS.md)
- 当前架构只在 [docs/ARCHITECTURE.md](docs/ARCHITECTURE.md)
- 当前规划只在 [docs/ROADMAP.md](docs/ROADMAP.md)
- 当前技术债只在 [docs/TECH_DEBT.md](docs/TECH_DEBT.md)
- 当前部署入口只在 [docs/DEPLOYMENT.md](docs/DEPLOYMENT.md)
- 历史材料统一进入 [docs/archive/](docs/archive/)
## 5. 开发完成后的最小检查清单
每次完成需求后,至少确认:
- 代码已按模块边界落位
- 相关测试已执行或说明未执行原因
- 相关文档已同步更新
- `STATUS / ARCHITECTURE / ROADMAP / TECH_DEBT / DEPLOYMENT` 没有与实现冲突的地方
- 新增历史性说明没有误放进当前权威文档
## 6. 文档导航
| 文档 | 用途 |
|---|---|
| [AGENTS.md](AGENTS.md) | 项目开发规范、开发约束、文档同步要求 |
| [README.md](README.md) | 人类入口、最短启动说明、文档导航 |
| [docs/STATUS.md](docs/STATUS.md) | 当前实现状态与当前推荐方案 |
| [docs/ARCHITECTURE.md](docs/ARCHITECTURE.md) | 当前架构、模块边界、结构原则 |
| [docs/ROADMAP.md](docs/ROADMAP.md) | 后续演进路线与阶段计划 |
| [docs/TECH_DEBT.md](docs/TECH_DEBT.md) | 当前活跃技术债与治理顺序 |
| [docs/DEPLOYMENT.md](docs/DEPLOYMENT.md) | 部署主题入口 |
| [docs/deployment/LINUX_SETUP.md](docs/deployment/LINUX_SETUP.md) | Linux 详细部署步骤 |
| [docs/archive/README.md](docs/archive/README.md) | 历史文档与阶段性材料归档入口 |