15 · 泽湖 M0 D2+ 主线任务书(Codex 4 周开发剧本 · W2~W5)¶
作者:👤 Claude(执行副董事 · 车道 A) 日期:2026-08-16 读者:🤖 Codex-执行层(车道 B) + Claude 周验收 + 董事长周末收 范围:8 周 MVP 的第 2~5 周(08-22 → 09-18),主线是「微信 + Web MVP 上线,9 板块完整,1 班灰度可跑通」 关联:04-项目计划书与预算.md v3 / 11-M0W1验收清单.md / 12-UI一致性清单.md / 13-本地运行与部署清单.md / 14-API覆盖清单.md 配套:16-教联体协议模板-v1.md(校长/信息办同步用,本任务书不重复)
0. 三句话拍板(董事长 08-16 已拍)¶
- Prisma 6.19.3(CI 已固定,不升 7;2026-08-16 拍板)
- 迁移策略 B 快照(M0/M1 沿用当前 etl-migrate.js + etl-verify.js,M2 再做 A 全量)
- 演示分下限保留 55(让 D 级 UI 跑真,不删数据);PartnerType.members 二期补(M0 阶段 User 表用
organization/orgType字符串字段承载)
1. 全局约束(每条都不可破)¶
1.1 技术栈¶
| 维度 | 选型 | 版本/约束 |
|---|---|---|
| 运行时 | Node.js | 24+(CI 已用,docs/13 已规定) |
| ORM | Prisma | 6.19.3(固定,不升 7;2026-08-16 拍板) |
| 前端 | 微信小程序 + Web 后台 | 微信端用 WXML/WXSS,Web 端用静态 HTML/CSS/JS |
| 后端 | Node 24+ 零依赖 | server/src/ 全部走内置模块 |
| 钉钉端 | 薄 UI 占位 | 本任务书不交付钉钉业务逻辑 |
1.2 提交与协作¶
- 提交前缀:
[Codex](本任务书全部);Claude 自改合规代码用[Claude] - commit 前必跑:详见第 7 节「任务前必跑命令」
- commit 后必推:本地 master 已被重命名为 main 追踪 origin/main(2026-08-16 拍板)
- PR 流程:本期 4 周内仍走 main 直推(不是 fork PR),CI 绿 = 合并;如需 PR 流程董事长再拍
1.3 禁区(CLAUDE.md 全局规则)¶
| 禁区 | 说明 |
|---|---|
| xb_* 云函数 | 一律不碰 |
| login 鉴权区 | Claude 自改不派(14 清单标 5 个权限偏差,本任务书 §3.1 修,但权限矩阵的设计原则由 Claude 把关) |
| ADMIN_OPENIDS | 部署前董事长先登录拿 openid 填入,本任务书不部署 |
| force push / hard reset | 一律禁止 |
| 改 git 全局身份 | 局部 user.name "Codex" / user.email "codex@leifeng.local" 已设(README 已记),不要改 --global |
1.4 全局 DoD(每周末必须绿的 5 条)¶
□ prisma@6 validate ✅
□ node --check 全 .js ✅
□ check.js all passed ✅
□ smoke.js 全 passed ✅(每新增端点必加 smoke 用例)
□ etl-verify ok ✅(生成物 migrated-seed.json 已 .gitignore)
2. W2(08-22 ~ 08-28)· 微信小程序 MVP¶
W2 总目标¶
微信小程序跑通:学生/家长/教师 3 角色登录 + 5 维评价录入/查看 + 班级驾驶舱实时刷新;班主任即时评价 < 30 秒响应
Task W2.1 · 完善 Login 权限矩阵(关键 · 全 TDD 详细)¶
为什么关键:14-API覆盖清单 §5 标了 5 个权限偏差,是当前最严重的合规与数据泄漏风险。本任务必须在 W2 D1~D2 完成,否则后续所有端点都不安全。
Files:
- Create: server/src/middleware/permission.js
- Modify: server/src/routes/auth.js:1-80
- Modify: server/src/routes/students.js:1-60
- Modify: server/src/routes/evaluation.js:1-100
- Modify: server/src/routes/reports.js:1-80
- Create: server/scripts/test-permission.js
- Modify: server/scripts/smoke.js:1-60
Interfaces(2026-08-16 Codex 走查后修订,身份一律从 req.user 取,不信任前端传 id):
// server/src/middleware/permission.js
requireRole(...roles) // req.user.role ∈ roles
requireSameClass({ param: 'classId' }) // teacher: req.user.classId === req.params.classId
requireSameStudent({ param: 'studentId' }) // student 自比; parent: param ∈ req.user.children
requirePartnerScope({ param: 'orgType' }) // partner 只读/写本 orgType
// 统一错误码(复用 server/src/lib/http-error.js,如无则新建):
// 401 UNAUTHORIZED 无/坏 token
// 403 FORBIDDEN 跨班 / 跨学生 / 越权
// 429 RATE_LIMITED 限流
Steps:
- [ ] Step 1 写失败测试
test-permission.js:覆盖 5 个偏差(teacher 跨班读 / partner 读全部 / evaluation 未过滤 / reports 无角色校验 / auth 错误码不全)
// test-permission.js 片段(完整版要 17 个用例,本任务书给关键 5 个)
const tests = [
['teacher 不能读非本班学生', async () => /* ... */],
['partner 不能访问 /students', async () => /* ... */],
['teacher 写 evaluation 必须是本班', async () => /* ... */],
['parent 读 reports 仅限自己孩子', async () => /* ... */],
['auth 错误码 401/403/429 区分', async () => /* ... */],
];
- [ ] Step 2 运行
node scripts/test-permission.js→ 期望 FAIL(中间件未创建) - [ ] Step 3 创建
permission.js中间件(4 个 export 函数 + JSON 错误格式) - [ ] Step 4 接入
auth.js:补INVALID_CREDENTIALS/NOT_APPROVED/TOO_MANY_ATTEMPTS三种错误码 - [ ] Step 5 接入
students.js:teacher 仅本班、partner 禁读(403 PARTNER_FORBIDDEN) - [ ] Step 6 接入
evaluation.js:teacher 本班校验(403 NOT_SAME_CLASS)/ student/parent 仅自己 - [ ] Step 7 接入
reports.js:同上 + partner 禁读 - [ ] Step 8 smoke.js 补 8 个用例覆盖新矩阵(含教师跨班 403、partner 403、家长读到别人孩子 403)
- [ ] Step 9 跑
node scripts/test-permission.js+node scripts/smoke.js→ 全 PASS - [ ] Step 10 commit
[Codex] W2.1: 完善登录权限矩阵(5 偏差修复)
Task W2.2 · 微信小程序登录流(学生/家长/教师)¶
Files:
- Modify: miniapp-wechat/pages/login/login.js:1-100
- Create: miniapp-wechat/utils/auth.js(统一 auth 工具)
- Modify: miniapp-wechat/utils/api.js:1-50(指向 http://127.0.0.1:3000/api,可配 baseURL)
Interfaces:
// miniapp-wechat/utils/auth.js
login(identifier, password, accountType) // 返回 {token, user}
getCurrentUser() // 从 storage 读
logout()
Acceptance:
- [ ] 3 角色用同一登录页(账号栏 + 密码栏 + 角色单选)→ 走 POST /api/auth/login
- [ ] token 存 wx.setStorageSync('token');后续请求 header 带 Authorization: Bearer <token>
- [ ] 登录失败显示具体错误码文案(INVALID_CREDENTIALS / NOT_APPROVED / TOO_MANY_ATTEMPTS 三态)
- [ ] commit [Codex] W2.2: 微信端登录流(3 角色)
Task W2.3 · 微信端 5 维评价(录入 + 查看)¶
Files:
- Modify: miniapp-wechat/pages/evaluation/evaluation.js:1-80
- Modify: miniapp-wechat/pages/evaluation/evaluation.wxml:1-40
- Modify: miniapp-wechat/pages/evaluation/evaluation.wxss:1-50
- Create: miniapp-wechat/pages/evaluation/submit.js(班主任即时评价)
Acceptance:
- [ ] 学生/家长视图:5 维列表 + 历史轨迹(最近 10 条)
- [ ] 教师视图:5 维列表 + 「即时评价」按钮 → 弹出维度选择 → 提交 < 30 秒响应(端到端计时)
- [ ] 维度数据从 GET /api/evaluation/dimensions 拉(30 个评价点)
- [ ] 提交走 POST /api/evaluation/records
- [ ] 提交后刷新页面 + 成功 toast
- [ ] commit [Codex] W2.3: 微信端 5 维评价(查看 + 即时录入)
Task W2.4 · 微信端班级驾驶舱(实时刷新)¶
Files:
- Modify: miniapp-wechat/pages/dashboard/dashboard.js:1-100
- Modify: miniapp-wechat/pages/dashboard/dashboard.wxml:1-50
Acceptance:
- [ ] 教师看到:本班学生 5 维均分雷达图 + 待办评价数 + 本周新增记录数 + 最近 5 条动态
- [ ] 数据从 GET /api/dashboard/summary 拉,每 30 秒轮询(不用 WebSocket,本期简化)
- [ ] 30 秒轮询失败显示「数据加载失败,点击重试」
- [ ] commit [Codex] W2.4: 微信端班级驾驶舱(30s 轮询)
W2 周末验收(Claude 周五收)¶
□ W2.1 权限矩阵 5 偏差全修 + 测试 17 用例全绿
□ W2.2 微信端 3 角色登录 OK(含错误码三态)
□ W2.3 教师即时评价端到端 < 30 秒
□ W2.4 班级驾驶舱 30 秒刷新
□ 全局 DoD 5 条全绿
□ CI 跑通(commit + push)
3. W3(08-29 ~ 09-04)· Web 后台 MVP¶
W3 总目标¶
Web 后台跑通:7 类角色登录 + 权限矩阵 + 批量录入 + 数据看板;教联体 3 类试点数据接入准备就绪
Task W3.1 · Web 端 7 类角色登录 + 权限矩阵 UI¶
Files:
- Modify: web-admin/login.html:1-100
- Modify: web-admin/index.html:1-50
- Modify: web-admin/assets/styles.css:1-150
- Create: web-admin/assets/permission-matrix.js
Acceptance:
- [ ] 登录页支持 7 类角色单选(学生/家长/教师/教务/校长/教联体/管理员)
- [ ] 登录后顶部导航按角色显示可见菜单(权限矩阵驱动)
- [ ] 学生/家长无权访问 Web 后台(重定向回登录 + 提示「请用小程序」)
- [ ] 教联体只看到「教联体管理」入口
- [ ] 校长/管理员看到全部
- [ ] commit [Codex] W3.1: Web 端 7 角色登录 + 权限矩阵 UI
Task W3.2 · Web 端批量录入评价¶
Files:
- Create: web-admin/batch-entry.html
- Create: web-admin/assets/batch-entry.js
- Modify: server/src/routes/evaluation.js:1-100(加 POST /evaluation/records/batch)
API 新增:
POST /api/evaluation/records/batch
Body: { classId, termId, records: [{ studentId, dimensionId, score, remark? }] }
Resp: { created, skipped, errors: [{ row, reason }] }
Acceptance:
- [ ] 教师/教务选班级 + 学期 → 看到本班学生 × 30 评价点表格
- [ ] 支持批量勾选 + 批量打分(拖选单元格)
- [ ] 提交后服务端逐条校验,错误行返回 row index + reason
- [ ] UI 高亮错误行 + 允许修改后重提
- [ ] smoke.js 加 1 用例:POST /evaluation/records/batch
- [ ] commit [Codex] W3.2: Web 端批量录入(教师/教务)
Task W3.3 · Web 端数据看板(基础版)¶
Files:
- Modify: web-admin/dashboard.html:1-150
- Modify: web-admin/assets/dashboard.js
Acceptance:
- [ ] 校长/教务看到:全校 5 维均分 + 各班排名 + 待办评价数 + 教联体活动数
- [ ] 教师看到:自己班(沿用微信端 W2.4 逻辑 + Web 端大屏适配)
- [ ] 图表用 Chart.js CDN(一次性引入,无第三方 npm)
- [ ] commit [Codex] W3.3: Web 端数据看板(基础版)
Task W3.4 · 教联体 3 类数据接入(架构任务 · 必须先做)¶
Files:
- Create: server/src/routes/partner.js
- Create: server/src/integrations/police.js(派出所 mock)
- Create: server/src/integrations/library.js(图书馆 mock)
- Create: server/src/integrations/leifeng.js(雷锋纪念馆 mock)
- Create: server/scripts/test-partner.js
API 新增(2026-08-16 Codex 走查后补全,含学校统一发号 + 邀请码激活配套端点):
GET /api/partner/activities?type=police|library|leifeng (教联体读本单位 + 学校读全部)
POST /api/partner/activities (教联体单位写入)
GET /api/partner/students?externalId=xxx (查参与学生)
POST /api/admin/partners (学校统一发号——学校管理员权限)
Body: { orgType: 'police'|'library'|'leifeng', orgName, contactName, contactPhone }
Resp: { partnerId, inviteCode, validUntil } (邀请码 8 位一次性,7 天有效)
POST /api/auth/activate (邀请码激活)
Body: { inviteCode, password }
Resp: { token, user } (设密后直接登录)
存储(2026-08-16 Codex 走查后约定):
- 邀请码 + 账号映射 M1 用 JSON 文件 server/data/invite-codes.json(不建独立 Prisma 表,避免 schema 膨胀)
- 邀请码一次性使用 → 标记 used=true + usedBy=userId
- 7 天过期 → 启动时扫描 JSON 自动失效
Acceptance:
- [ ] 3 类教联体单位各 mock 5 条活动数据(位于 server/data/partner/*.json)
- [ ] 教师在班级驾驶舱看到本班学生参与的教联体活动
- [ ] 学校管理员能通过 POST /api/admin/partners 创建教联体账号(仅 role=admin 可调)
- [ ] 邀请码可激活(POST /api/auth/activate),激活后账号可登录
- [ ] 一次性 + 7 天失效逻辑落实(JSON 扫描)
- [ ] 学校统一发号 + 邀请码机制落实(详见 16-教联体协议模板-v1.md §3)
- [ ] smoke.js 加 5 用例(GET / POST activities + POST admin/partners + POST auth/activate + 邀请码过期)
- [ ] commit [Codex] W3.4: 教联体 3 类数据接入(含学校发号 + 邀请码激活 + JSON 存储)
W3 周末验收¶
□ W3.1 7 角色登录 + 权限矩阵 UI
□ W3.2 批量录入端到端 + 错误行高亮
□ W3.3 数据看板(Chart.js 基础图表)
□ W3.4 教联体 3 类接入(5 活动/类 + 协议字段对齐 16 模板)
□ 全局 DoD 5 条全绿
□ CI 跑通
4. W4(09-05 ~ 09-11)· 9 板块完善 + ETL 联调¶
W4 总目标¶
9 大板块功能完整;ETL 迁移工具与新平台端到端联调;miniapp 数据迁移准备就绪
Task W4.1 · 9 板块逐一落地(9 个子任务 · 标准模板)¶
每个板块按统一模板:
Files 模板:
miniapp-wechat/pages/<slug>/ (微信端)
web-admin/<slug>.html (Web 后台)
server/src/routes/<slug>.js (如需新端点)
server/scripts/smoke.js (补 smoke 用例)
9 板块清单(依 PRD 第六节 + 04 计划书 §3.1):
| # | 板块 | 主责 | W4 子任务编号 |
|---|---|---|---|
| 1 | 首页今日动态 | 雷达图 + 待办 + 动态流 | W4.1.1 |
| 2 | 评价中心五维评价 | W2.3 已完成,本周补完家长端 | W4.1.2 |
| 3 | 四大超级课程 | 活动记录 + 报名 | W4.1.3 |
| 4 | 养成教育 | 6 项检查 + 自动归集 | W4.1.4 |
| 5 | 青锋计划 / 社会实践 | 活动报名 + 实践记录 | W4.1.5 |
| 6 | 教联体协同 | W3.4 已完成,本周补前端 | W4.1.6 |
| 7 | 成长档案 | 学期报告单 PDF 导出(W6 主交付,W4 先占位) | W4.1.7-占位 |
| 8 | 家校互通 | 通知 + 已读 + 私信文字 | W4.1.8 |
| 9 | 班级管理驾驶舱 | W2.4/W3.3 已完成,本周补 Web 端教师视图 | W4.1.9 |
每个子任务交付:
- 微信端页面 + Web 后台页面(如适用)
- 服务端端点(如新增)
- smoke.js 用例(如新增端点)
- 单个 commit [Codex] W4.1.<n>: <板块名>
Task W4.2 · ETL 端到端联调(关键 · 必有数据)¶
Files:
- Modify: server/tools/etl-migrate.js:1-200
- Modify: server/tools/etl-verify.js:1-150
- Create: server/tools/etl-dryrun-report.md(自动生成)
Acceptance:
- [ ] 输入:30 条 leifeng-snapshot.json(已生成)
- [ ] 输出:migrated-seed.json 30/1710/57(班级/学生/记录,已达成)
- [ ] etl-verify 17 项全 OK
- [ ] 联调:用 migrated-seed.json 喂给新平台,验证 /students 返回 30 个学生 + 维度分布正确
- [ ] 性能:单次迁移 < 5 秒
- [ ] 自动生成 etl-dryrun-report.md(含样本数据 + 字段映射表)
- [ ] commit [Codex] W4.2: ETL 端到端联调(30 学生 + 1710 记录)
Task W4.3 · miniapp 数据迁移准备(关键 · 不实际迁)¶
Files:
- Create: server/tools/miniapp-readiness-check.js
- Create: docs/15a-miniapp-migration-runbook.md(迁移操作手册,Codex 写)
Acceptance:
- [ ] miniapp-readiness-check 验证:miniapp 可达 + 数据库可读 + 30 个学生 + 1710 条记录可拉
- [ ] runbook 包含:①迁移步骤 ②回滚步骤 ③验证脚本 ④停服窗口
- [ ] 本周不实际迁,实际迁移在 W5 D3 执行
- [ ] commit [Codex] W4.3: miniapp 迁移准备(check + runbook)
W4 周末验收¶
□ W4.1.1~9 全部完成(板块 7 占位 W6)
□ W4.2 ETL 联调:30 学生 + 1710 记录 + 17 项 verify
□ W4.3 miniapp 迁移准备就绪(不实际迁)
□ 全局 DoD 5 条全绿
□ CI 跑通
5. W5(09-12 ~ 09-18)· 1 班灰度 + miniapp 实际迁移¶
W5 总目标¶
1 个班灰度跑通(30~50 学生 + 7 类角色独立登录);miniapp 数据实际迁移;M1 MVP 收官
Task W5.1 · 教联体 2~3 类满开(与教联体单位真实对接)¶
Files:
- Modify: server/src/integrations/police.js
- Modify: server/src/integrations/library.js
- Modify: server/src/integrations/leifeng.js
- Create: server/data/partner/police-activities.json(≥ 20 条)
- Create: server/data/partner/library-activities.json(≥ 20 条)
- Create: server/data/partner/leifeng-activities.json(≥ 20 条)
Acceptance:
- [ ] 每类教联体活动数 ≥ 20 条
- [ ] 教联体单位登录后能 POST 新活动 → 教师端可见
- [ ] 协议字段(学校统一发号 + 邀请码)落实(16 模板 §3)
- [ ] commit [Codex] W5.1: 教联体 3 类满开(≥20 活动/类)
Task W5.2 · miniapp 数据实际迁移(关键 · 一次性 · 谨慎)¶
Files:
- Create: server/tools/miniapp-migrate-execute.js
- Create: server/tools/miniapp-migrate-rollback.js
- Modify: docs/15a-miniapp-migration-runbook.md(W4.3 写的,加实际执行记录)
Acceptance:
- [ ] 执行前必跑 miniapp-readiness-check.js(W4.3 写的)→ 输出 ready ✅
- [ ] 执行前必跑 miniapp-migrate-execute.js --dry-run → 输出预期迁移报告
- [ ] 执行:miniapp 停服窗口(建议周末凌晨 2 小时)
- [ ] 执行后:跑 etl-verify.js + 新平台 /students / /evaluation/records 核对数量
- [ ] 回滚预案:miniapp-migrate-rollback.js 测试可回滚(不在生产测,仅 dry-run 验证)
- [ ] 微信端通知:迁移完成后校长/教师群通知
- [ ] commit [Codex] W5.2: miniapp 数据迁移执行 + 验证
Task W5.3 · 1 班灰度(M1 MVP 收官)¶
Files:
- Create: server/scripts/pilot-acceptance.js(7 角色独立登录自动化测试)
- Create: docs/15b-pilot-acceptance-report.md(Codex 写,Claude 复核)
Acceptance:
- [ ] 1 班 30~50 学生(校长指定名单)
- [ ] 7 类角色账号全部建好,每类至少 1 人
- [ ] pilot-acceptance.js 端到端跑通:登录 → 看 5 维 → 录 1 条评价 → 看报告
- [ ] 灰度报告 15b-pilot-acceptance-report.md 含:登录截图 + 评价录入截图 + 报告截图 + 7 角色账号清单
- [ ] 校长验收签字(本任务书范围内可后置)
- [ ] commit [Codex] W5.3: 1 班灰度(7 角色 + 30 学生 + 端到端验证)
W5 周末验收(M1 MVP DoD)¶
□ W5.1 教联体 3 类满开(≥20 活动/类)
□ W5.2 miniapp 数据迁移 100%(含回滚预案)
□ W5.3 1 班灰度:7 角色 + 30 学生 + 端到端
□ 全局 DoD 5 条全绿
□ CI 跑通
□ [M1 MVP DoD 8.2](详见 04 计划书 §8.2):
- 微信小程序 + Web 后台 **8 板块** MVP 功能 ✅(**板块 7「成长档案 / 学期报告单」不纳入 M1 验收,W4.1.7 仅占位,主交付放 W6**——2026-08-16 Codex 走查口径)
- 5 维评价 100% 覆盖 / 7 类角色独立登录 ✅
- 班主任即时评价 < 30 秒响应 ✅
- 1 个班灰度(30~50 学生)✅
- miniapp 数据迁移 100% ✅
- 班级驾驶舱实时刷新 ✅
口径变更记录(2026-08-16):04 计划书 §8.2 原文「9 板块 MVP 功能」,本任务书依 Codex 走查明确板块 7 推迟到 M2(W6),M1(M0 W5)只验收 8 板块。如需还原为 9 板块,需追加 W5 内工时。
6. 验证矩阵(每周末 Claude 周验收用)¶
| 验证项 | 工具 | 通过标志 | 责任人 |
|---|---|---|---|
| Prisma schema 合法 | npx --yes prisma@6 validate |
无输出 + exit 0 | Codex 跑 |
| 全 JS 语法 | find ... \| xargs node --check |
无输出 | Codex 跑 |
| check.js 12 项 | node scripts/check.js |
CHECK_RESULT: all passed |
Codex 跑 |
| smoke.js N 端点 | node scripts/smoke.js |
SMOKE_RESULT: 全部 passed |
Codex 跑 |
| ETL migrate + verify | node tools/etl-migrate.js && node tools/etl-verify.js |
ETL_VERIFY: ok |
Codex 跑 |
| 权限矩阵 | node scripts/test-permission.js |
TEST_PERMISSION: all passed |
Claude 写 + Codex 维护 |
| CI 端到端 | GitHub Actions run | 4 步全绿 | Codex push 后 Harness 验 |
| 微信端登录 | 微信开发者工具 + 真机扫码 | 3 角色 OK | Codex 手测 |
| Web 后台 | http://127.0.0.1:8080/ + 7 角色账号 |
权限矩阵驱动菜单 | Codex 手测 |
| 教师即时评价 < 30s | 浏览器 stopwatch | 端到端 < 30s | Codex 手测 |
| 班级驾驶舱 30s 刷新 | 浏览器开 5 分钟 | 自动轮询 10 次 | Codex 手测 |
7. 任务前必跑命令(每个 task 开始前)¶
cd C:\Users\lvxin\Desktop\codex沟通\泽湖成长平台
git checkout main
git pull --rebase # 拉最新
git log --oneline -5 # 看最近提交
# 跑当前状态基线:
npx --yes prisma@6 validate --schema server/prisma/schema.prisma
cd server
find src scripts prisma tools -name '*.js' -print0 | xargs -0 -n1 node --check
node scripts/check.js
node scripts/smoke.js
node tools/etl-migrate.js && node tools/etl-verify.js
如果任何一条 FAIL:先修基线再开新 task。
8. 任务完成后必跑命令(每个 task commit 前)¶
# 1. 静态检查
npx --yes prisma@6 validate --schema server/prisma/schema.prisma
cd server
find src scripts prisma tools -name '*.js' -print0 | xargs -0 -n1 node --check
# 2. 动态检查(按改动类型)
node scripts/check.js
node scripts/smoke.js
node tools/etl-verify.js # 如果改了 etl-migrate.js
node scripts/test-permission.js # 如果改了权限相关路由
# 3. 端到端(如涉及前端改动)
start.bat # 启服务
# 浏览器手测
# 4. commit + push
cd ..
git add -A
git commit -m "[Codex] W<n>.<m>: <一句话描述>"
git push origin main # 触发 CI
9. 与 5 件异步启动的接口(不阻塞本任务书,但需配合)¶
| # | 异步任务 | 主责 | 进度问询点 |
|---|---|---|---|
| ① | 备案材料 v1 | Claude + 校长 | W5 D5 前提交 |
| ② | 教联体对接协议 | 校长(用 16 模板) | W3 D1 前完成 |
| ③ | 1 班灰度名单 | 校长 | W5 D1 前确定 |
| ④ | 部署脚本 + CI/CD | Claude(已完成雏形) | M3 W8 用 |
| ⑤ | ETL 迁移工具 | Claude(已完成 v1) | 本任务书 §5.2 用 |
Codex 不要等这些:M0/M1 阶段以上 5 件默认已完成,未完成时按占位数据走。
10. 风险与回退¶
| 风险 | 概率 | 应对 |
|---|---|---|
| W2.1 权限矩阵设计返工 | 中 | Claude W2 D0 把关设计,Codex 实现 |
| W4.2 miniapp 数据结构与新平台 schema 冲突 | 中 | W4.3 readiness-check 前置,迁移分批 |
| W5.2 miniapp 迁移失败 | 中 | rollback.js 预案,先 dry-run |
| W5.3 灰度被家长投诉 | 中 | 校长提前沟通(W3 D3 完成通知) |
| 8 周时间过紧 | 中 | W6 砍合并(教联体+报告单合到 W6) |
11. 变更日志¶
| 日期 | 版本 | 变更 | 作者 |
|---|---|---|---|
| 2026-08-16 | v1.0 | 初稿(基于 04 计划书 v3 + 11 W1 验收清单 + 12/13/14 本轮交付) | 👤 Claude |