Alex Cheng
本文目录01 / 定义02 / 推导03 / 应用04 / 验收05 / 迁移
← 用 AI 构建产品

Claude Code 工作原理与日常开发:从读项目到交付改动

看清 Agent Loop、项目上下文与验证怎样共同支撑开发。

Alex Cheng · 2026-09-10

让编码助手一上来就修改项目,常常会得到一个看起来合理、却不符合现有工程约定的答案。Claude Code 的优势在于能读取工程、调用工具并检查结果;要用好它,首先要让它建立正确的项目上下文,再把修改限制在一个可验证的目标内。

01 / 定义:编码助手通过工具理解和改变工程

编码助手不是始终知道整个仓库的模型。它根据当前对话、项目说明和工具返回的信息形成判断,再选择读取文件、搜索、编辑或运行命令。工具结果成为下一轮判断的输入,形成“观察—行动—检查”的循环。

因此,同样一句“修一下导出”,在不同上下文中可能产生完全不同的改动。当前分支、未提交变更、测试入口和业务规则都影响结果。项目说明可以降低重复解释,但它不是代码实际行为的证明。

02 / 推导:先探索,再规划,再改动

已有工程最贵的错误,往往是误解约定:重复实现已有能力、绕过权限层、使用错误的数据模型。只读探索的目的,是把这些不确定性暴露出来,而不是让助手输出一大段项目介绍。

图1 · 先定位规则与入口,再修改并留下可复核的差异。
  • 探索的产物:相关文件、调用路径、已有约定、尚未确定的问题。
  • 计划的产物:准备改哪几处、每处为什么必要、用什么检查。
  • 实现的产物:最小差异,而不是顺带重构整个模块。
  • 交付的产物:改动摘要、运行结果和仍未验证的条件。

一个拼写错误不需要复杂计划;涉及身份、数据或多个模块的改动,先确认关键路径通常更划算。步骤应服务风险,不是固定仪式。

03 / 应用:修复项目导出范围错误

沿用工单导出案例。假设当前接口已经检查管理员角色,却没有检查项目归属。下面是你可以直接组织的一次工作流程;文件名应由助手读工程后确定,不能凭空假设项目结构。

  1. 保存现场。查看当前分支和工作区差异,确认哪些修改是你已有的;需要隔离时建立工作分支。不要为了“清洁环境”删除未提交内容。
  2. 只读定位。要求助手追踪导出请求从路由到查询的调用链,列出角色判断与项目判断各在哪里,引用函数和条件。
  3. 建立失败样例。用 P-02 的管理员请求 P-01,预期拒绝。先在隔离测试数据上观察旧实现是否错误返回数据。
  4. 批准最小修复方向。在服务端已有授权层补项目检查,查询也限定允许范围。不另造一套前端身份判断。
  5. 运行相关检查。越权请求必须失败,本项目正常请求必须成功,空结果和原有导出格式仍然成立。
  6. 审查差异。确认没有把测试绕过、硬编码用户或扩大权限当成修复;再阅读错误文案和日志是否泄露信息。
先只读分析当前工程的导出功能。
目标:识别“管理员角色通过,但项目不属于该用户”的访问路径。
返回相关入口、函数、权限条件、已有测试和最小反例。
不要修改代码,不要运行生产数据操作。
完成定位后,提出最小修复与验证计划。
实现时保留已有改动;交付实际运行的命令、结果与未验证项。

不要只让助手“补一项测试”。应先确定这个测试是否真的能在旧实现上失败,再确认修复后通过,否则测试可能只是在重复实现的假设。

04 / 验收:读懂助手的完成报告

可靠报告应说明改了什么、为什么、如何验证,以及哪些条件没有测试。看到命令退出码为零,还要确认命令确实运行了目标测试,未因筛选错误执行零项,也没有把失败吞掉。

报告用语你应追问的证据
“已检查权限”具体条件、入口与越权反例
“所有测试通过”测试命令、数量、范围与结果
“不影响其他功能”受影响路径及其回归证据
“问题已解决”旧行为如何复现,新行为如何验证

当测试依赖不可用时,助手可以继续做静态检查和局部验证,但应把缺口留下。安装大量依赖、改测试框架或替换技术栈,不应成为绕过一个失败检查的默认方法。

05 / 迁移:把项目知识留在项目里

把稳定约定写入项目说明:运行入口、目录职责、测试命令、生成文件边界和危险操作。当前任务的现场状态则放进任务记录,避免过时的临时细节长期污染项目规则。

练习:新会话忘了上次进展,是让它重读全部聊天吗?

先给目标、已完成变更、有效证据、剩余问题和关键文件入口,再让它读取当前源码确认。聊天可能包含放弃的方案;当前文件与最新验证更适合恢复工作。

长任务如何恢复、哪些动作适合自动化,见持续可靠的 AI 开发;需要独立调查时再考虑Subagent,不要把增加助手数量当成提高正确性的保证。

交流产品判断与 AI 实践 →
MCP 图解放大视图