# 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/*`。 - 如果命令当前不可运行,回复里必须说明原因。