RSS

第 3 章 / 共 12 章

把话说清楚:让它第一次就理解你

约 9 分钟 更新于

3.1 “它没听懂”多半是”我没说清”

先看一组真实对照。左边是新手常写的提示,右边是官方文档里给出的改写方向:

常见写法更好的写法
给 foo.py 加测试给 foo.py 写一个测试,覆盖用户已登出这个边界情况,不要用 mock
修一下登录的 bug用户切换账号后仍看到上一个账号的订单。怀疑在 session 中间件。先写一个能复现的失败测试,再修
优化这段代码这个函数在 10 万条数据时要跑 8 秒。目标降到 1 秒以内,不改变对外签名,改完跑 benchmark 给我看数字
重构一下项目(拆成具体任务,或先进入计划模式讨论)

三条改写里都藏着同样的三个成分:具体的现象范围的限制可验证的完成标准

第3章:模糊提示与具体提示的差别
图 3.1:注意右列的四项不是”更礼貌”,而是更少歧义。每减少一处歧义,模型就少一次自由发挥的机会,你也就少一次纠正的成本。

3.2 一次只要一步

多位独立实践者的复盘里反复出现同一条建议:不要一次要一个完整功能

原因和第 1 章的循环有关。一次要五步,它会把五步的猜测全部塞进同一段输出,其中第二步的错误会污染后面三步;而你要纠正,就得把整段推翻。一次只要一步,错误在发生的那一轮就被拦住。

对比一下:

❌ 实现完整的用户通知系统:数据模型、API、前端组件、邮件模板、测试
✅ 第一步:只设计数据模型。给我 schema 和迁移脚本,先不要写 API。
   我确认后再往下走。

一个实用的判断标准:如果你无法在它做完后的两分钟内判断对错,那这一步就太大了。

3.3 给它看,而不是描述给它听

会话里有几种”直接投喂上下文”的方式,比你用文字转述高效得多:

引用文件和目录——用 @

@src/auth/session.ts @src/middleware/ 这两处的 session 生命周期是怎么衔接的?

贴报错——直接粘贴完整的堆栈,不要手工摘要。你摘掉的那几行往往正是关键。

管道喂数据——在终端里把命令输出直接送进去:

npm test 2>&1 | claude -p "这些测试失败的共同根因是什么?先不要改代码"
git diff | claude -p "review 这些改动,只指出正确性问题,不要提风格建议"

贴图——设计稿、报错截图、监控仪表盘都可以直接粘贴进会话(macOS 用 Ctrl+V,Windows/WSL 上通常是 Alt+V)。Anthropic 内部团队公开过一个案例:数据基础设施团队排查一次 Kubernetes 故障时,直接把仪表盘截图丢给它来定位问题。

临时跑命令——在输入框以 ! 开头,可以直接执行 shell 命令而不打断对话节奏。

3.4 打断比纠正便宜

看到它跑偏时,新手的本能是等它说完再解释哪里错了。这是最贵的做法:错误的输出已经进了上下文,你的纠正又追加一段,会话变长,而错误示范还留在里面。

正确的顺序是:

  1. Esc 立刻打断——上下文保留,动作停下;
  2. 判断是”方向对、细节错”还是”方向就错了”;
  3. 前者直接补一句约束继续;后者用 Esc Esc/rewind 回退,然后重写提示,而不是追加解释。

/rewind 可以把对话状态、代码状态或两者一起回退。但有一条必须记住:它只追踪 Claude 通过文件编辑工具做的改动,不包括 Bash 命令造成的改动。它不是 git 的替代品。这就是为什么下一条建议是:动手之前先提交一次干净的状态。

3.5 一个可复用的提示模板

把前面几节合起来,日常任务可以套这个结构:

【现象】用户在未登录状态访问 /orders 时页面白屏,控制台报 TypeError。
【范围】只改 src/middleware/ 下的文件,不要动路由配置。
【要求】先写一个能复现的失败测试,再修,最后跑 npm test。
【交付】把测试输出贴给我,并用两句话说明根因。

四行分别对应:它要解决什么、它不能碰什么、它按什么顺序做、它怎么证明做完了。

3.6 常见坑

3.7 本章练习与检查点

你现在的成果:你有了一个提示模板和一个打断习惯。这两样加起来,能消掉新手期一多半的返工。

广告位 · Multiplex 关联广告