让 AI 像你的程序员一样安全、高效地理解和维护代码
接手一个已有项目,就像换岗后走进一个陌生的办公室——你需要门禁卡、文件索引,还得弄清楚前任留下的“黑话”与逻辑。
而如果这个“新员工”是一个 AI 编程助手(比如 Anthropic 的 CC),你不仅要把门禁卡给它,还要教会它最小权限与安全边界。
今天,我就用一次真实的 drumkit 代码标记乐 项目维护经历,带你看看如何用 CC 安全、优雅地接手一个旧项目,顺便用 /plan 模式完成一次“吉马程序员”宣传页面的制作。
一、信任文件夹:给 AI 一张“限权的门禁卡”
想象一下:你请了一个程序员帮你改项目,首先得给他办公室的门禁卡,他才能看代码、改文件、跑命令。
但你不会让他随意进出财务室或服务器机房——所以这张卡只限于你授权的那个文件夹。
在 CC 中,这就是 信任文件夹 的概念。
bash
# 示例:授权 CC 访问当前项目目录
cc trust .
Anthropic 在 CC 里强调的正是 最小权限 + 安全边界:
- AI 默认不碰你的系统
- 只有你明确授权,它才能读取、修改、执行命令
- 就像给 Mac mini 的一台虚拟机权限,而不是整个主机
这种设计天然适合多人协作、开源项目或敏感业务代码的 AI 辅助维护。
二、/init:让 AI 先“读一遍项目”
当你信任了一个文件夹,CC 并不会立刻开始改代码。
它首先会问:这个项目是干什么的?有哪些关键文件?
这时候你就可以使用 /init 指令。
text
/init
CC 会扫描项目结构,读取代码、配置、注释,然后生成一份 Claude.md 文件。
这个文件就像是 AI 对这个项目的“理解笔记”:
- 项目主要技术栈
- 核心模块与依赖
- 关键的接口、函数、配置
- 已知的坑或约定
以后你再和 CC 对话,它都会优先参考这份文件,而不是每次从头猜。
这很像新人入职后写的第一份“项目认知报告”,只不过 AI 几秒钟就能完成。
三、chat 模式:像聊天一样深入了解项目
有了 Claude.md 作为基础,你就可以进入 chat 模式,像和同事聊天一样深入了解项目。
text
这个项目的 drumkit 模块是做什么的?
CC 会结合代码和你提问的上下文给出解释,甚至可以画简单的流程图或调用链。
你也可以让它:
- 解释某段复杂逻辑
- 找出某个 bug 的可能位置
- 建议如何重构一个老模块
这种交互方式,比翻文档或 grep 代码高效得多,尤其适合你第一次接触一个项目。
四、实战:制作“吉马程序员”宣传页(普通模式 vs 规划模式)
我们用一个实际任务来对比 CC 的两种工作模式。
任务目标
制作一个网页,用来宣传“吉马程序员”。
4.1 普通模式:直接给提示词
你可以直接对 CC 说:
text
帮我做一个宣传吉马程序员的网页,风格要酷一点,包含课程介绍、名师团队、学员评价。
CC 会直接生成一个 HTML/CSS/JS 页面,甚至内嵌样式和响应式布局。
优点:快,适合简单任务。
缺点:需求模糊时,结果可能偏离预期。
4.2 规划模式:先问再写(/plan)
对于稍复杂的任务,建议先进入 规划模式:
text
/plan
CC 不会立刻写代码,而是先问你一系列问题,比如:
- 目标用户是谁?(企业 HR?转行开发者?在校学生?)
- 希望强调什么卖点?(就业率?项目实战?名师?)
- 页面是否需要多端适配?
- 是否需要表单提交或后台?
它会帮你把模糊的需求变成结构化的 Prompt,然后给出实现计划:
text
【规划】
1. 确定页面结构:头图、课程特色、名师卡片、学员评价、底部报名
2. 使用 Tailwind + 响应式栅格
3. 添加一个简单的报名表单(前端验证,暂不接后端)
4. 兼容移动端与桌面端
确认计划后,CC 才会开始生成代码。
结果更可控,更适合团队协作或需要交付验收的场景。
五、类比:给电商系统加购物车
规划模式的优势在更大规模的任务上体现得更明显。
比如:
给一个已有电商系统加购物车功能
CC 会先分析现有代码(通过 Claude.md + 代码扫描),然后给出影响范围:
- 后端:新增购物车表、添加/删除/查询接口
- 前端:购物车组件、状态管理、与登录模块的 token 校验
- 兼容性:是否需要合并本地购物车与登录后购物车
并询问你优先级和限制条件,然后才动手实现。
这就像真正的软件工程师做技术方案设计,而不是盲目写代码。
六、Claude.md:项目的“长期记忆”
在 CC 的工作流中,Claude.md 是一个非常重要的文件。
它可以是:
- 手动编写的项目指南
- 或者由
/init自动生成
内容示例:
markdown
# Claude.md for drumkit 项目
## 项目概述
一个基于 Web Audio API 的在线架子鼓模拟器。
## 核心模块
- drumkit.js:鼓组采样与播放逻辑
- ui-controller.js:界面交互与键盘映射
## 常见任务
- 新增音效:在 samples/ 下添加音频文件,并在 drumkit.js 注册
- 调整 UI 布局:修改 styles/main.css
## 注意事项
- 不要改动 AudioContext 的初始化顺序,会导致 iOS 无法播放
- MIDI 映射暂未实现
有了这份文件,你甚至可以把项目交给另一个 AI(或另一个同事),他们也能快速上手。
七、总结:CC 带来的项目维护新范式
| 能力 | 传统方式 | 使用 CC |
|---|---|---|
| 理解项目 | 读文档 + grep 代码 | /init 自动生成 Claude.md |
| 权限控制 | 全盘或手动授权 | 信任文件夹 + 最小权限 |
| 需求澄清 | 多次沟通或详细 PRD | /plan 模式交互式澄清 |
| 执行复杂任务 | 手工拆分 + 编码 | AI 自动规划并实现 |
| 长期记忆 | 依赖文档文化 | Claude.md 持续维护 |
CC 不是简单的代码生成器,而是一个可以安全入驻你项目的 AI 工程师。
它懂最小权限,会读项目,能聊需求,按计划交付。
而你,只需要在开始的时候,说一句:
text
/init
/plan
然后把那张“文件夹的门禁卡”交给它。
后记:
这篇文章的灵感来自我用 CC 维护一个开源的 drumkit 项目的过程。
一开始我也不敢让它随便改代码,直到我理解了“信任文件夹 + /init + /plan”这套组合拳。
现在,它已经是我接手任何旧项目的第一位“编外队友”。
如果你也在维护一个有些年头、文档不全、不敢乱改的项目,不妨试试 CC。