RSS

第 1 章 / 共 10 章

你在给 AI 写规矩,不是写代码

约 4 分钟 更新于

1.1 从”第五次敲同样的提示”说起

固化的信号很好认:当你第五次把同一段话贴进对话框,就该停下来把它存起来了。

但”存起来”有四种存法,新手最常见的困惑不是不会存,而是存错地方。把一段只在发版时才用的格式规范塞进 CLAUDE.md,它会每次会话都占着上下文;把一件”每次提交前必须发生”的检查交给模型自觉,它迟早会忘。选错工具,固化非但没帮你省事,反而带来新的负担。

所以动手之前,先要有一把尺子。

1.2 两条判断轴:确定性 × 常驻

只需要问两个问题,就能把四件套分开。

第一个问题:这件事必须每次都发生吗,还是让模型看情况决定? 这是确定性轴。“每次提交前跑 lint”必须每次发生,不能靠模型记性;“帮我审一下这段 diff”则是看情况才做的事。

第二个问题:它需要一直待在上下文里吗,还是用到时再加载? 这是常驻轴。项目的通用规矩(比如”这个仓库用 pnpm 不用 npm”)值得常驻;一份只在改数据库时才用的迁移规范,就不该每次会话都占着位置。

第1章:用确定性和常驻两条轴区分四件套
图 1.1:四件套各据一格。横轴看触发靠模型判断还是事件确定,纵轴看要不要常驻。只有钩子落在”确定触发”一侧——它由事件触发、不经模型判断,凡是”绝不能漏”的动作只有它能保证;其余三种要不要用,最终都由模型决定。

1.3 四件套各自站在象限的哪一格

把两条轴交叉,四件套的位置就清楚了:

你要固化的东西用什么触发方式为什么是它
一段你会反复输入的提示命令 / 技能你输入 /名字只是提示复用,机制越轻越好
一套只在特定场景用的知识或流程技能你调用,或模型判断相关时自动加载用到才付上下文的钱
一件消耗大量读取的调查工作子代理你点名,或模型委派需要一个独立的上下文来装脏活
一件必须每次都发生的动作钩子事件触发,不经模型判断只有它是确定性的

这张表就是第 8 章那个决策象限的展开。本篇接下来的每一件产物,都能在这张表里找到自己的位置:release-notes 是技能,release-scanner 是子代理,自动格式化是钩子。

1.4 一个更新:命令已经并入技能

如果你之前学过”自定义命令和技能是两种东西”,这里要更新一下认知。在现在的 Claude Code 里,命令已经并入技能.claude/commands/deploy.md.claude/skills/deploy/SKILL.md 都会生成 /deploy,用起来完全一样。你手头老的 .claude/commands/ 文件仍然照常工作。

区别只在于技能多了几样能力:它有一个目录可以放附属文件,有 frontmatter 可以控制”由你还是由模型来调用”,还能在相关时被模型自动加载

这解释了为什么这份教程把重点放在技能上——命令只是技能最轻的一种形态。下一章我们就从这个最轻的形态开始,五分钟做出第一个产物。

广告位 · Multiplex 关联广告