与 AI 合伙人相爱相杀 vlog 8:规范是怎样炼成的
在第一篇代码写下之前,还有很多事情要做。这一集讲述了项目基础设施的建立过程:CLAUDE.md 诞生、隐私悖论解决、archive-talk 技能七次迭代、任务驱动工作流确立,为后续的开发奠定了坚实基础。

序章:在那个念头之前
深夜,书房的灯还亮着。
老大坐在台式机前,屏幕上是一个空白的 GitHub 仓库。光标在 README.md 文件里闪烁,像一只等待指令的眼睛。
这不是他第一次想搞个人项目了。过去十年里,他有过无数次这样的夜晚——打开编辑器,写个开头,然后就没有然后了。
但这次不一样。他有巴基。
过去半年里,这个运行在命令行里的 AI 代理,已经从一个只会吐代码片段的聊天机器人,进化成了能直接接管电脑的赛博打工仔。用他做过不少零散的小活,但从来没有正经启动过一个完整的项目。
深吸一口气,老大在终端里输入:
屏幕停顿了两秒,巴基的回复弹了出来:
收到,老大。
目标很明确:一个低成本、低时间投入的个人产品。
不过在写第一篇代码之前,我建议先建立三样东西:
项目规范(给 AI 看的"使用说明书")
隐私保护机制(防止个人信息泄露)
对话存档机制(防止上下文丢失)
等这些基础设施建好了,我们再开始写代码。
老大摸着下巴,若有所思。
有道理。就像盖房子之前要先搭脚手架,在让 AI 写代码之前,得先把游戏规则定好。
"那就从这里开始吧。"老大敲下回车。
第一章:给 AI 的"使用说明书"
巴基的效率很高。老大去厨房接了杯热水回来,终端里已经列出了 CLAUDE.md 的草稿框架。
老大,这是 CLAUDE.md 的初稿。
核心内容包括:
项目概览(技术栈、目录结构)
常用开发指令
隐私与安全规范
对话存档规范
你先看看?
老大端着热水杯,目光扫过屏幕。内容很全,但有个小问题——第一句就是英文。
收到,老大。
马上调整:
文档首句汉化
保留"语言与沟通"和"对话存档规范"原样
其他内容也尽量中文化
热水杯的温度透过陶瓷传到掌心。老大看着巴基在后台修改文件,光标在屏幕上快速移动。这就是他喜欢用 AI 的原因——不用跟人扯皮,不用开会,说清楚需求,几秒钟就搞定。
大概过了十几秒,巴基的消息弹了出来:
老大,CLAUDE.md 已经修改完成。
主要改动:
文档开头改为中文
保留了你满意的两个章节
整个文档的语气更偏向中文友好的沟通方式
你确认一下?
老大放下水杯,点开文件。
嗯,不错。第一句就是亲切的中文,"语言与沟通"和"对话存档规范"也都原样保留着。整个文档结构清晰,该有的都有——技术栈说明、常用命令、目录规范、隐私保护、存档要求。
"可以。"老大在终端里输入,"就这个版本。"

第二章:隐私悖论
收到,老大。这个问题很重要。
我建议制定一套三层防御体系:
代码层:通过 .gitignore 严格过滤敏感文件
文档层:AI 存档时自动对敏感信息脱敏
习惯层:密钥只放 .env.local,不上传 Git
我把这个方案详细记录到 docs/plans/ 目录下?
"可以。"老大点头,"先记录下来,然后我们逐步执行。"
巴基的动作很快。老大靠在椅子上,看着书架上的黑胶唱片——那是他为数不多的爱好之一。工作之余,听听爵士乐,整个人都能放松下来。
大概过了几分钟,巴基的消息弹了出来,但这次带着点犹豫:
老大,方案写好了,但有个问题……
我在方案里举例子,提到了防止 /Users/用户名/ 这样的绝对路径泄露,结果……方案文档里现在就包含了这个路径示例。
有点"先有鸡还是先有蛋"的意味,你觉得怎么处理?
老大忍不住笑了。这确实是个有趣的悖论——写隐私保护方案时,方案本身就包含了要防的隐私路径。
收到,老大。这个思路好。
我马上调整:
方案文档里的真实路径全部换成占位符
在 CLAUDE.md 里增加"隐私与安全规范"章节
确保后续所有存档都自动执行脱敏
老大站起身,伸了个懒腰。窗外的天还是黑的,星星在夜空里闪烁。解决了这个悖论,他心里踏实多了。
"对了,"老大突然想到,"Project ID 到底算不算敏感信息?"
老大,虽然 Project ID 本身不能直接用来攻击,但为了安全起见,还是建议脱敏。
毕竟,多一层防护总没坏处。
"同意。"老大点头,"那就这么办。"

第三章:存档技能的七次迭代
隐私保护方案搞定了,接下来是存档机制。
老大坐在椅子上,回想着之前用 AI 的经历——有好几次,因为对话太长上下文被压缩,重要的决策细节就那么丢了。
收到,老大。
马上构建 archive-talk 技能。
老大站起身,走到客厅接水。客厅的灯关着,只有书房的灯光透出来。他靠在吧台上,听着书房里传来的轻微风扇声——巴基正在后台创建技能文件。
过了一会儿,老大回到书房。巴基的消息弹了出来:
老大,技能建好了,但有个问题。
我刚才把技能放在了项目根目录的 skills/ 文件夹里,但 Claude Code 的自定义技能应该放在 .claude/skills/ 隐藏目录下。
我先创建 .claude/ 目录,然后把技能迁移过去?
"可以。"老大点头,"就放在 .claude/skills/ 下面。"
巴基很快完成了迁移。老大点开技能文件看了看,内容很全,但总觉得哪里还可以再优化一下。
老大,我刚才自省分析了一下。
现在的存档在追求"逻辑归并"时,存在篡改时序和丢失决策细节的风险。
建议优化方向:
新增"决策链完整性"准则
新增"强制历史对齐"准则
细化"精简边界"
老大看着屏幕,摸着下巴。巴基说的有道理,但他突然注意到一个问题——巴基在优化的同时,好像把原先的一些注意点删掉了。
抱歉,老大。
我刚才过度精简了,导致原有高质量规范丢失。
我马上恢复——"适度精简"和"保留核心"是保证存档可读性与复用价值的基础,必须全量保留。
老大忍不住笑了。这就是巴基的优点——虽然偶尔会犯点小错,但承认错误的速度很快,而且改得也很快。
接下来的半个小时里,老大和巴基你来我往,反复打磨这个技能:
- 老大质疑删除"阶段合并"的意义 → 巴基恢复,并确立新逻辑:支持逻辑合并,但必须以物理时间轴为边界
- 老大强调"保留所有方案选项、核心代码片段、关键技术决策"的重要性 → 巴基一字不差地回归
- 老大质疑删除"因果链条保护"的理由 → 巴基深刻反省,完整恢复
终于,经过七次迭代,archive-talk 技能定型了——包含七大核心准则,作为本项目知识沉淀的"最高法则"。
收到,老大。
马上构建 project-commit 技能。
老大靠在椅背上,看着屏幕。两个技能——archive-talk(记录)和 project-commit(执行),双剑合璧,形成了完整的开发规范闭环。
"好了。"老大伸了个懒腰,"基础设施差不多了。"

第四章:任务驱动工作流
两个技能搞定了,但老大总觉得还缺点什么。
收到,老大。
马上创建 docs/task/TASK-LIST.md。
老大站起身,走到窗边。天已经蒙蒙亮了,远处的天际线泛起了鱼肚白。时间过得真快,一转眼就折腾了一整夜。
他回到书桌前,巴基已经把任务清单建好了。内容很清晰:三个区域,当前里程碑下的六个待办事项,还有维护规范。
老大,我建议建立"任务驱动工作流"。
具体来说:
Session 开始时对齐任务
任务切换时实时更新物理文档
归档时自动同步任务状态
我把这套逻辑加到 CLAUDE.md 里?
"可以。"老大点头,"还有,archive-talk 和 project-commit 这两个技能,也应该优化一下,跟任务清单联动起来。"
收到,老大。
马上优化:
archive-talk:归档前强制对齐任务状态
project-commit:提交前必须将"进行中"任务移动至"已完成"
老大靠在椅背上,看着窗外的天色越来越亮。任务清单、技能联动、规范文档……现在这套体系越来越完整了。
但没过多久,老大就发现了新问题。
收到,老大。
我马上调整:
修改 CLAUDE.md:任务状态更新为高频动作,归档/提交为里程碑动作
优化两个技能:移除强耦合逻辑,改为逻辑对齐
老大满意地点了点头。这就对了——平衡自动化和灵活性,不能为了规范而规范。
窗外的天已经亮了,清晨的阳光透过百叶窗洒进来,在地板上留下一道道光影。老大看着屏幕上完整的规范体系、任务清单、两个技能文件,心里有一种踏实感。
基础设施终于搞定了。

尾声:基础设施就绪,念头诞生
老大站起身,伸了个懒腰,关节发出清脆的响声。
窗外的天已经完全亮了,清晨的阳光洒进房间,空气中有淡淡的咖啡香——他刚才顺手按了咖啡机的定时按钮,现在刚好煮好。
他走到厨房,倒了一杯浓缩美式,热气腾腾的咖啡香扑面而来。老大端着杯子回到书房,目光扫过屏幕上的文件:
CLAUDE.md—— 给 AI 的"使用说明书"docs/task/TASK-LIST.md—— 任务清单.claude/skills/archive-talk/—— 存档技能.claude/skills/project-commit/—— 提交技能docs/plans/开源隐私保护方案.md—— 隐私保护方案
折腾了一整夜,基础设施终于全部就绪。
老大靠在椅子上,喝了一口咖啡,温热的液体滑过喉咙。他看着窗外的城市慢慢醒来,路上的车辆渐渐多了起来,远处传来地铁进站的声音。
现在,游戏规则已经定好,脚手架已经搭好,就等开工了。
但……具体做什么呢?
老大端着咖啡杯,目光望向远方。技术博客?工具站?还是两者结合?内容沉淀?流量变现?
无数个念头在他脑子里盘旋。
他喝完最后一口咖啡,把杯子放在桌上。然后站起身,走到卧室,躺到床上。
折腾了一整夜,该睡一会儿了。
但躺在床上,他却睡不着。眼睛闭着,脑子却在飞速运转。
终于,在清晨的第一缕阳光完全照亮房间的时候,一个念头清晰地冒了出来——
一个后端程序员,能不能在不辞职、不熬夜、不花大钱的情况下,搞出一个完整的个人产品?
这个念头一旦冒出来,就再也挥之不去。
(这就是 Vlog 1 的故事)
💡 本集技术 Tips(老兵防坑指南)
-
Claude Code 自定义 Skill 最佳实践:自定义技能必须放在
.claude/skills/隐藏目录下,不要放在项目根目录;技能文件包含SKILL.md(规范说明)和工具调用逻辑。 -
开源项目隐私保护三件套:
.gitignore严格过滤环境变量和构建产物- AI 存档时自动对路径、密钥、Project ID 脱敏
- 密钥只放
.env.local,.env.example只放占位符模板
-
"自举脱敏"悖论解决方案:写隐私保护方案时,方案文档本身可能包含隐私路径示例——解决方法是用占位符(如
/Users/用户名/、<REDACTED_SECRET>)替代真实信息,既起到示例作用又不泄露真实数据。 -
任务驱动 vs 归档提交解耦:任务状态更新是高频动作(每次完成小任务都要更新),归档和提交是里程碑动作(只在重要节点执行);不要把两者强绑定,否则会产生大量噪音。