第 04 模块 · 1 节

搭建项目骨架与工作目录

《Claude Code 基础入门》04 第一个实战项目 · 本节时长 28 分钟

最后一关:把学的串起来

前面几节都是「单项技能」:安装、终端、对话、斜杠命令、CLAUDE.md。这一模块做一个完整的实战项目,把这些串起来,体验一次「描述需求 → AI 实现 → 审查 → 迭代」的完整闭环。

我们的贯穿项目要正式落地了:把之前只开了个头的 todo-app,真正实现成一个终端待办工具。

贯穿项目还记得前几节吗?我们在 todo-app 目录里练过终端、和 Claude 规划过、写过 CLAUDE.md、造过 /review-todo 命令。现在所有铺垫都用上了——我们要在这个目录里,让 Claude 把 todo 真正做出来。

先确认工作目录干净

开工前,回到你的 todo-app 目录,确认状态:

cd ~
cd todo-app
pwd          # 应该在 todo-app
ls -la       # 看现在有什么

如果之前建过 todo.txtCLAUDE.md.claude/ 等,都正常。确保目录干净、你知道自己在哪。

习惯开工前先 pwd + ls 确认位置和现状,是终端时代的好习惯。Claude Code 也只在当前目录范围里干活,目录清楚它更不容易搞乱。

把需求写成文件,再说给 AI 听

一个实用的做法:先把需求写成文件,再让 Claude Code 读。这样需求有据可查,改起来也方便。

更新 README.md 描述 todo 的完整需求:

# todo — 终端待办工具

一个在命令行里管理待办的小工具,命令如下:
- `node index.js list`          查看所有待办(前面有 [x] 表示已完成)
- `node index.js add "内容"`     添加一条待办
- `node index.js done <序号>`    把第几条待办标记为完成
- `node index.js del <序号>`     删除第几条待办

要求:
1. 每条待办用单独一行存到 todo.txt
2. 待办名称不能为空,为空给提示
3. 每次执行前,先打印「将做什么」,确认后才真正执行
4. 没有待办时显示「暂无待办」而不是报错

这就是给 AI 的「需求文档」。把话说清楚,它才能做对。


初始化项目(让它来,或自己来)

两种方式都可以:

  • 自己npm init -y 生成一个基础 package.json
  • 交给 Claude:进 Claude Code,说「帮我初始化这个 Node.js 项目」

本课建议自己先 npm init -y,把底子立起来,再看它怎么接手。

npm init -y

检查这节的成果

这一节结束,你应该有:

todo-app/
  README.md        # 需求说明(已更新为完整需求)
  package.json     # 项目骨架
  CLAUDE.md        # 项目约定(上一节写的)
  .claude/commands/review-todo.md   # 自定义命令

目录结构清楚了、需求写好了、骨架建好了,下一节就让 Claude Code 动手实现。


落地练习:让 Claude 复述需求

todo-app 里启动 claude,说一句:

读一下 README.md 和 CLAUDE.md,然后告诉我:这个工具要实现哪几个命令?

观察它是否先读了文件,再准确复述出 list / add / done / del 四个命令。

怎么判断做对了?——Claude 先读 README 和 CLAUDE.md(看操作轨迹),然后准确说出四个命令和各自作用,说明它「入戏」了,准备好开工。

卡住了怎么办? 它没读文件就开始说?打断它「先读 README.md 和 CLAUDE.md」。它复述的不完整?可能 README 写得不够清楚,回头把命令列表写得再明确些。


常见坑:跳过「写需求文档」直接开干

最省事但也最坑的做法,是心里有个大概,就直接让 Claude「写个 todo 工具」。

结果它按自己理解的来,等做出来你才发现「我要的是命令行工具,它给我做了个网页」「我说的是删一条,它做成了清空」。

先花 5 分钟把需求写成 README,再让它读,能省下后面的返工。需求文档是「你描述」这个环节最重要的载体。


小结

  1. 开工前先 pwd + ls 确认目录
  2. 先把需求写成 README,再让 Claude 读
  3. 自己 npm init -y 打好骨架
  4. 需求写清楚,后面少返工
  5. 我们已经把 todo 的完整需求写好了

下一节,就让 Claude 动手实现,走完整个闭环。