Skip to content

开工准备 ​

本页要点
  • 仓能跑 — 用 AI 带着装环境;你确认版本 / check / 页面
  • 会派活 — 任务卡 → 复述 → diff → 纠错 → 再提交
  • 可进阶段 1 — 干净的 learner/week-01 分支

写业务前只做上面三件事,约 1.5~2.5 小时。

现在 Node 24 · npm 11 · Git阶段 3 Python阶段 4 Docker

一、装环境 · 跑通仓 ​

这一步干什么 目标仍是「仓能开页」,但步骤让 AI 带着做:你贴任务卡 → 它给下一条命令 → 你执行并回贴输出 → 你确认过关信号。别自己闷头扒文档。

1.1 先贴「装环境」任务卡 ​

在 Cursor / 任意 AI 对话里,整段粘贴:

给 AI · 装环境派活一次只给一条命令;你执行后把输出贴回去
text
【任务】
帮我把教学仓 chenyue-ai-coding-lab 在本机跑到「环境已就绪」。

【目标版本】
- Node.js 24.x
- npm 11.x
- Git(当前稳定版即可)
- 阶段 3 才需要 Python;阶段 4 才需要 Docker。本节不要让我装 Docker。

【仓库】
https://github.com/chenximo/chenyue-ai-coding-lab.git
默认分支应为 starter。

【成功标准 · 由我人工确认】
1. node / npm 版本符合上面
2. git branch 显示 starter,git status 干净
3. 在仓库根目录 npm run check 全部 exit 0
4. npm run dev:web 后,浏览器打开终端给出的地址,看到「环境已就绪」

【协作方式】
- 先复述成功标准,再开始
- 每次只给我「下一条要执行的命令」(或两步以内)
- 等我贴回终端原文输出,再给下一条
- 若报错:先判断是版本 / 权限 / 目录问题,再给修复命令

【禁止】
- 不要让我改 package.json、Vite 配置或测试脚本来「绕过」
- 不要让我提交被改坏的 package-lock.json
- 不要一次甩出整页命令清单让我自己猜顺序

复述里应出现:版本、starter、check、页面「环境已就绪」。漏了就补问,再往下。

1.2 你怎么验收(AI 说完不算) ​

按 AI 给出的命令做完后,你自己确认:

看什么过关样子
node --version / npm --version24.x / 11.x
git branch --show-currentstarter
git status --short空
npm run checkexit 0
浏览器「环境已就绪」
本节过关 上表五项都对。AI 说「好了」但你没亲眼看到页面 —— 不算过。
常见失败(点开)
现象先查处理
npm ci engine 不匹配node / npm 版本切到 24 / 11,重开终端
clone 无权限GitHub 账号找仓库方开通
npm ci 改了 lockfile是否误用 npm install用对版本后重 clone,勿提交 lockfile
端口占用旧 dev 进程关掉再 dev:web

1.3 中途报错 · 续聊 Prompt ​

把完整报错贴回同一对话即可;若开了新对话,用下面整段:

给 AI · 环境续聊同一任务,带上刚才的输出
text
接上:我在跑通 chenyue-ai-coding-lab starter 基线。

【刚才执行的命令】
(贴)

【完整终端输出 / 报错】
(从第一行贴到末尾,不要截断)

【请你】
1. 先判断是版本、权限、目录还是依赖问题
2. 只给下一条命令(或两步以内)
3. 仍遵守:不改 package.json 绕过、不提交烂 lockfile

二、练一次驾驭 AI ​

这一步干什么不是让你手写业务代码。下面有一张「任务卡」——整段复制给 AI。练的是:怎么把活说清楚、怎么拦它乱改、怎么用命令验收。只动两个练习文件,页面先不动。

先开练习分支(命令也可让 AI 给,你执行):

bash
git switch starter
git switch -c practice/ai-workflow
git status --short

2.1 任务卡是什么 · 怎么用 ​

块人话
【任务】要 AI 干什么(加「母婴阶段」几个 ID 和两个小函数)
【Canonical data】四个阶段的固定数据,别让它自己编
【允许改】/【禁止改】只能动哪两个文件;页面、配置一律别碰
【验收】怎样算做对(含:先写测试看到红,再写实现)
【命令】/【交回】你要跑什么;AI 要交回什么证据,不能只说「好了」

用法: 整段复制 → 先说「只复述,先别改文件」→ 它说对「只改两文件 + 四个 ID」后,再说「按任务卡实现」。

给 AI · Prompt(任务卡)(练习用)看不懂每一行也没关系:复制给 AI;你盯「改没改错文件」
text
【任务】
在 apps/web/src/domain/ 增加母婴阶段定义、StageId、isStageId()、getStage()。

【Canonical data】
- pregnancy / 孕期 / 孕期
- baby-0-6 / 宝宝 0–6 月 / 0–6 月
- baby-6-12 / 宝宝 6–12 月 / 6–12 月
- toddler-1-3 / 宝宝 1–3 岁 / 1–3 岁

【允许改】
- apps/web/src/domain/stages.ts
- apps/web/src/domain/stages.test.ts

【禁止改】
- 任何 page / component / 推荐 data
- package.json、lockfile、构建配置
- 其他测试文件

【验收】
- StageId 从 STAGES 推导;禁止写成 string
- 四个 ID 唯一;isStageId 只接受这四个
- 非约定 ID(如 future-stage)→ false
- getStage("baby-6-12").name === "宝宝 6–12 月"
- isStageId 必须是 TypeScript type predicate(value is StageId)
- 先写测试并跑出 RED,再写实现

【命令】
- npm run test:web -- stages.test.ts
- npm run typecheck:web

【交回】
- 改了哪些文件
- RED / GREEN 原始终端输出
- diff 摘要(不要只写「已完成」)

它复述时若漏了「只改两个文件」或四个 ID —— 补一句再让它动手。

2.2 RED → 实现 ​

复述通过后:让 AI 只先写测试,你跑:

bash
npm run test:web -- stages.test.ts

合理情况:测试先失败(红)——例如还找不到文件。然后再说:「按任务卡写实现,仍只改允许的两个文件。」

2.3 你看 diff · 它写歪了就纠错 ​

bash
git diff --stat
git diff -- apps/web/src/domain/stages.ts apps/web/src/domain/stages.test.ts

常见翻车:类型被写成随便的 string。看到就贴下面整段:

给 AI · 纠错禁止删测试、放宽断言来「假绿」
text
StageId 不能使用 string。请从 STAGES 推导 StageId,
并把 isStageId() 改回 value is StageId。

保持 canonical data 和测试期望不变。
不要改允许文件以外的内容。
改完后跑:
- npm run test:web -- stages.test.ts
- npm run typecheck:web
把原始终端输出贴回来。

2.4 收口提交 ​

bash
npm run test:web -- stages.test.ts   # 要 4 passed
npm run typecheck:web
git status --short                   # 只允许上面两个文件
git add apps/web/src/domain/stages.ts apps/web/src/domain/stages.test.ts
git diff --cached
git commit -m "feat(web): validate stage ids"

练习 commit 可留在 practice/ai-workflow。


三、开阶段 1 分支 ​

bash
git switch starter
git switch -c learner/week-01
git status --short

工作区应为空,然后进阶段 1。


做完了吗
  • npm run check 过,H5「环境已就绪」能开
  • 任务卡贴过、要求过复述;见过 RED;自己看过 diff
  • 当前在干净的 learner/week-01

下一阶段 → 前端骨架(Mock)

晨悦 AI 实践手册