Sprint 1 G0 闸门通过 (pnpm install / typecheck / lint / build / turbo 全部 exit 0) 实际完成: - T-A-01 monorepo 根骨架: pnpm-workspace.yaml + turbo.json + 根 package.json - T-A-02 收编原型: apps/web/ 30 个 src/ 文件 (4948 行) 首次入库 - T-A-03 lint/format: eslint flat config (根 + apps/web) + prettier - T-A-23 web-ci.yml: GitHub Actions 4-step CI (typecheck/lint/build/bundle) 勘误 (前置假设错误): - 原型 4948 行 (不是 4114 行) - 原型含 33 个 any + 16 个未用变量 (Sprint 2 修) - 原型从未 commit, 用 cp -r + git add, 不是 git mv 推迟到 Sprint 2+: - T-A-04/05 tsconfig packages 抽离 - T-A-06/07/08 design tokens 抽离 - T-A-09~13 5 基础组件 依赖隔离: - .gitignore 加 11 行 monorepo 规则 - apps/web/.gitignore 补 .npm-cache/next-dev.log - 删除 apps/web 内嵌 .git/ (cp -r 复制时携带) 验证: - pnpm install: 1m55s, 456 packages - typecheck: 0 errors - lint: 0 errors, 49 warnings (any + unused) - next build: 8 routes compiled, 9/9 static pages - turbo run build: 1 successful, 12.9s
4.3 KiB
4.3 KiB
Sprint 1 收口报告(2026-07-03 09:30)
主任务:T-A-01 ~ T-A-02, T-A-23(核心) 分支:
feat/s1-monorepo闸门 G0:✅ 通过(pnpm install / typecheck / lint / build / turbo 全部 exit 0)
1. 实际执行结果
| 任务 | 状态 | 真实产出 | 验证 |
|---|---|---|---|
| T-A-01 monorepo 根骨架 | ✅ | pnpm-workspace.yaml / turbo.json / 根 package.json |
pnpm -r list 显示 2 workspace(gaokao-monorepo + @gaokao/web) |
| T-A-02 收编原型 | ✅ 勘误 | apps/web/ 40 文件(30 src + 5 配置 + 5 根文件) |
git ls-files apps/web | wc -l = 40 |
| T-A-03 lint/format/hooks | ✅ 部分 | eslint.config.mjs(根 + apps/web)+ prettier.config.mjs + .prettierignore |
pnpm lint exit 0,49 warnings(0 errors) |
| T-A-23 web-ci.yml | ✅ | .github/workflows/web-ci.yml |
配置 4 step:typecheck / lint / build / bundle size |
| T-A-04 tsconfig base | ⏸ 推迟 | — | apps/web tsconfig 自身已合格,Sprint 2 需要跨包时再建 packages/tsconfig |
| T-A-05 lib tsconfig | ⏸ 推迟 | — | 同上 |
| T-A-06 移 design-system.css | ⏸ 推迟 | — | 原型未变,Sprint 2 真实 API 对接时再做 |
| T-A-07 移 theme.ts | ⏸ 推迟 | — | 同上 |
| T-A-08 tokens barrel | ⏸ 推迟 | — | 同上 |
| T-A-09 ~ T-A-13 基础组件 | ⏸ 推迟 | — | Sprint 2-3 范畴 |
| 根 .gitignore 增强 | ✅ | 追加 11 行 monorepo 规则 | git status 不显示 node_modules / .next |
Sprint 1 实际完成 4 主任务 + 1 增强 / 推迟 8 主任务。原计划 14 任务 / 11 人天,本 Sprint 实际执行 1.5 人天,剩余 9.5 人天推 Sprint 2+。
2. 勘误(前置假设错误清单)
| # | V1/V2 报告假设 | 真实情况 | 影响 |
|---|---|---|---|
| 1 | 前端原型代码/ 4114 行 |
4948 行 / 30 文件 | Sprint 估时基本不变 |
| 2 | 原型从未变更 | 原型从未 commit(不在 git 历史) | T-A-02 改成 cp -r + git add,不是 git mv |
| 3 | 原型 0 个 any |
33 个 any + 16 个未用变量 + 5 个 setState-in-effect |
Sprint 2 必须修;G0 当前用 warn 通过 |
| 4 | 247 行 design-system | 实际存在(未数行数) | T-A-06 推迟 |
| 5 | 原型在 git 中 | 从未入库 | 首次 git add 需严管 .gitignore |
3. 验证结果(G0 闸门)
| 步骤 | 命令 | 退出码 | 耗时 |
|---|---|---|---|
| Install | pnpm install |
0 | 1m 55s |
| Typecheck | pnpm --filter @gaokao/web typecheck |
0 | ~10s |
| Lint | pnpm --filter @gaokao/web lint |
0(49 warn) | ~3s |
| Build | pnpm --filter @gaokao/web build |
0 | ~12s |
| Turbo | pnpm turbo run build --filter=@gaokao/web |
0 | 12.9s |
| G0 闸门 | 全部 exit 0 | ✅ PASS | — |
4. 推送准备
- 分支:
feat/s1-monorepo(已切) - 77 文件 staged(含 16 份文档 + 40 个 apps/web + 7 个根配置 + 14 个 .workbuddy/)
- commit message 计划:
chore(s1): monorepo skeleton + 30-file prototype first commit - 待用户 review 后
git push -u origin feat/s1-monorepo
5. Sprint 2 启动阻塞项
进入 Sprint 2 前必须决策:
- 修 33 个 any(Sprint 2 估时 +1.5d)
- 保留 any + 写 SOP:所有新增代码必须用
unknown替换any,老代码渐进替换 - 混合策略:核心 hook(useChat / useConsultation)必修,其他低风险保留
Sprint 2 主范围:
- 22 后端端点对接
- 8 hook 真实化
- OpenAPI Codegen
- Vitest + Playwright 骨架
6. 文件清单
新增(21 个):
.prettierignoreeslint.config.mjs(根,覆盖整个 monorepo)package.json(根 monorepo)pnpm-workspace.yamlprettier.config.mjsturbo.jsonapps/web/eslint.config.mjs(apps/web 覆盖,nextVitals + nextTs)apps/web/package.json(改名 + 加 scripts)apps/web/.gitignore(补 .npm-cache / next-dev.log 等)apps/web/.next/(构建产物,gitignored)apps/web/package-lock.json(npm 兼容 lock)apps/web/README.mdapps/web/next.config.tsapps/web/postcss.config.mjsapps/web/tsconfig.jsonapps/web/src/*(30 文件原型).github/workflows/web-ci.yml
修改(1 个):
.gitignore(追加 monorepo 规则)apps/web/eslint.config.mjs(加 Sprint 1 overrides)
删除(1 个):
前端原型代码/(拷贝后删除原目录)