97 lines
3.3 KiB
Markdown
97 lines
3.3 KiB
Markdown
# AI 开发入口
|
||||
|
|
|
|||
|
|
> 给 AI coding agent 的项目入口。这里负责导航和流程,硬性编码规则见 [`05-coding-rules.md`](05-coding-rules.md)。
|
|||
|
|
|
|||
|
|
## 一句话定位
|
|||
|
|
|
|||
|
|
Dingding HRM 是一个 Go + Gin + SQLite 本地 Web 应用,用于同步、浏览、搜索和导出钉钉多站点部门与人员数据。
|
|||
|
|
|
|||
|
|
第一版 MVP 只做:多站点配置、手动全量同步、部门树浏览、人员搜索筛选、JSON/CSV 导出、Gin 托管原生前端。
|
|||
|
|
|
|||
|
|
## 必读顺序
|
|||
|
|
|
|||
|
|
每次开始写代码前,按这个顺序建立上下文:
|
|||
|
|
|
|||
|
|
1. [`01-vision.md`](01-vision.md):为什么做、为谁做、什么不做。
|
|||
|
|
2. [`02-requirements.md`](02-requirements.md):MVP 要什么、怎么算达成。
|
|||
|
|
3. [`03-tech-stack.md`](03-tech-stack.md):既定技术选型。
|
|||
|
|
4. [`04-architecture.md`](04-architecture.md):系统结构、职责划分、数据模型和关键难点。
|
|||
|
|
5. [`05-coding-rules.md`](05-coding-rules.md):写代码前必须遵守的规则。
|
|||
|
|
6. [`06-tasks.md`](06-tasks.md):领取本轮唯一任务。
|
|||
|
|
7. [`current-state.md`](current-state.md):当前代码现实、可运行命令、下一步任务。
|
|||
|
|
|
|||
|
|
仓库根目录的 `AGENTS.md`、`CLAUDE.md` 也必须先读。仓库级规则优先。
|
|||
|
|
|
|||
|
|
## 当前阶段
|
|||
|
|
|
|||
|
|
当前项目处于:MVP 起步,尚未初始化 Go 代码。
|
|||
|
|
|
|||
|
|
优先路径:
|
|||
|
|
|
|||
|
|
1. Phase 0:Go + Gin + SQLite + 静态文件托管的最小可运行地基。
|
|||
|
|
2. Phase 1:验证钉钉 token、部门、用户接口封装。
|
|||
|
|
3. Phase 2:实现同步入库和查询 API。
|
|||
|
|
4. Phase 3:实现原生前端部门浏览、人员搜索、导出。
|
|||
|
|
5. Phase 4:验收、打包、运行文档。
|
|||
|
|
|
|||
|
|
## 领取任务规则
|
|||
|
|
|
|||
|
|
从 [`06-tasks.md`](06-tasks.md) 领取任务时:
|
|||
|
|
|
|||
|
|
- 只领取第一个状态为 `TODO` 且依赖均为 `DONE` 的任务。
|
|||
|
|
- 开始前把该任务状态改为 `DOING`。
|
|||
|
|
- 本轮只完成这一个任务。
|
|||
|
|
- 验收通过后把状态改为 `DONE`。
|
|||
|
|
- 做完即停,汇报验证结果,等待下一步指令。
|
|||
|
|
|
|||
|
|
如果代码实际状态和任务看板冲突,先说明冲突,不要擅自跳步。
|
|||
|
|
|
|||
|
|
## MVP 边界
|
|||
|
|
|
|||
|
|
MVP 只做:
|
|||
|
|
|
|||
|
|
- 站点配置管理,保存多站点 app_key / app_secret。
|
|||
|
|
- 手动全量同步部门和人员数据。
|
|||
|
|
- 后端缓存并刷新 access_token。
|
|||
|
|
- 部门树浏览。
|
|||
|
|
- 人员列表、关键词搜索、部门筛选、分页。
|
|||
|
|
- JSON/CSV 导出。
|
|||
|
|
- 原生 HTML/CSS/JavaScript 前端,由 Gin 托管。
|
|||
|
|
|
|||
|
|
MVP 不做:
|
|||
|
|
|
|||
|
|
- 登录、多用户权限、审计审批。
|
|||
|
|
- 钉钉回调事件订阅。
|
|||
|
|
- 复杂组织变更历史追踪。
|
|||
|
|
- 前端框架、组件库或独立前端构建链。
|
|||
|
|
- 云部署、Docker、分布式任务队列。
|
|||
|
|
|
|||
|
|
## 事实来源
|
|||
|
|
|
|||
|
|
项目事实只信:
|
|||
|
|
|
|||
|
|
- `docs/` 中已定稿的需求、技术栈、架构、API 和路由。
|
|||
|
|
- 后续代码中的数据库迁移和模型定义。
|
|||
|
|
- 实现过程中通过钉钉 OpenAPI 官方响应和本地测试确认的字段事实。
|
|||
|
|
|
|||
|
|
不要把以下内容当事实来源:
|
|||
|
|
|
|||
|
|
- 未导入仓库的旧 Python 源码猜测。
|
|||
|
|
- 临时 JSON 导出中未被文档确认的字段含义。
|
|||
|
|
|
|||
|
|
## 验证命令
|
|||
|
|
|
|||
|
|
当前尚未初始化代码。初始化后维护这些命令:
|
|||
|
|
|
|||
|
|
```powershell
|
|||
|
|
go test ./...
|
|||
|
|
go build ./...
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
说明:
|
|||
|
|
|
|||
|
|
- 改后端后跑:`go test ./...`。
|
|||
|
|
- 改构建或入口后跑:`go build ./...`。
|
|||
|
|
- 改静态前端后至少启动 Gin 并人工访问 `/` 与相关 `/api/*`。
|
|||
|
|
- 如果命令当前不可运行,回复里必须说明原因。
|