一句话摘要
把 Claude Code 变成顶级工程师
我如何把 Claude Code + Opus 4.8 变成我团队里最优秀的工程师 July 19, 2026 · 阅读时长 11 分钟 · 查看来源 ↗ Claude MCP 营销 AI
> 关于打造一个 AI 队友、而不是又一个编程助手的一次深度工程剖析。
每个 Pull Request 都会制造未来的工程工作
每个 pull request 都会制造未来的工程工作。
不是因为代码写得差,而是因为发布软件只是它生命周期的开始。每一次合并都会悄悄制造未来的依赖升级、安全公告、不稳定的 CI 失败、文档漂移,以及几十个还不存在的维护任务。我们为发布功能而庆祝,却很少思考每一次发布会留下多少工作。
奇怪的是,几乎没有人去认领这些工作。团队会指派工程师去构建系统、发布功能、完成里程碑,但很少有人指派某个人持续认领这些系统在合并之后将会需要的所有事情。这正是我想解决的问题。
每个周五都以同样的方式结束。我合并几个 pull request,合上笔记本,认为这一周就结束了。到了周一早上,已经有新的依赖版本发布、CI 失败、文档更新和安全公告等着我去排查。这些任务在我合并代码时根本不存在。它们之所以出现,是因为仓库在代码合并之后仍然在不断演化。
很长一段时间里,我的工作流几乎从没变过。每一次排查都从一段新的对话开始。我重新解释架构、粘贴日志、链接同样的文档,在开始任何有用的工作之前先重建同样的上下文。
我不是在跟另一位工程师协作,而是在反复地给一个新的外包人员做入职。每一段对话都从零开始,尽管仓库、团队的实践和期望基本没变。模型缺失上下文,不是因为它能力不足,而是因为我每一次都从零重建工作空间。
最终,我不再问 Claude 能不能写出更好的代码。我开始问一个不同的问题:它能不能认领每一次合并的 pull request 都必然会留下的那些工作?
最大的错误
最大的变化发生在我停止把 Claude Code 当作一个聊天机器人、开始把它当作一个工程工作空间的那一刻。
聊天机器人只知道当前对话里存在的东西。工作空间则会随着时间积累知识、工具、工作流和约定。这个区别彻底改变了我处理问题的方式。
架构长这样:
```
Workspace
├── CLAUDE.md
├── Skills
├── MCP Servers
├── GitHub Actions
└── Opus 4.8
```
乍一看,这些组件没有一个特别出彩。仓库说明文件已经存在多年了。外部工具不是新东西,GitHub Actions 也早就有了。有趣的地方不在于这些单个的部件,而在于它们如何互相强化。
每个组件消除的是一种不同类型的重复性工作。它们合在一起,创造出一个环境,让另一位工程师能够理解仓库、排查问题、做出有依据的决策,而不必每次都从零开始。这成了我的目标。我不是在试图打造一个更好的编程助手,而是在试图创造一个让另一位工程师能够完成他们工作的环境。
用 CLAUDE.md 建立仓库记忆
第一个问题是持久化的知识。
每一位有经验的工程师都会对仓库形成一种理解,而这种理解很少被写下来。架构决策、部署预期、编码规范、发布流程和运维习惯会逐渐成为团队内部共享的知识。新的对话会丢掉所有这些上下文,除非有人再解释一遍。
Claude Code 用 CLAUDE.md 来解决这个问题。
我没有把仓库知识塞进提示词里,而是把它移到了仓库本身里。这个文件变成了与代码库一同演化的持久化上下文。
```
CLAUDE.md
├── Architecture
├── Development Workflow
├── Coding Standards
├── Testing Strategy
└── Release Process
```
现在每一段对话都从同一个基础开始。在开始任何排查之前,Claude 已经理解了仓库是如何组织的、团队是如何工作的、哪些约定是重要的。更新开发流程变得像更新一个受版本控制的文档一样简单。
仓库不再是缺失的那一块。剩下的工作发生在仓库之外。
工程发生在仓库之外
大多数软件工作都依赖于仓库之外的系统。
Pull request、CI 流水线、workflow 运行记录、issue 追踪器、部署平台、发布说明和监控系统,全都包含着对做出正确决策至关重要的信息。只读源代码,往往不足以理解到底发生了什么。
这就是 MCP 改变工作流的地方。与其把日志、链接或 pull request 讨论复制进每一段对话,Claude 可以直接从工程师们每天都在用的那些系统里获取信息。重要的部分不是协议本身,而是消除了在排查开始之前收集上下文所需要的那些手工劳动。
一次典型的排查可能会用到这样一些工具:
```
github.list_pull_requests()
github.get_pull_request()
github.get_workflow_runs()
github.search_code()
```
与其跟我要截图或链接,这个工作空间可以直接检查 pull request、审查 workflow 失败、搜索仓库,收集理解问题所需的证据。我的角色逐渐从「拼凑上下文」转变为「审查结论」。
到这一步,工作空间已经理解了仓库,也知道该去哪里找信息。
但它仍然不知道我们的团队是如何排查问题的。
教它如何做工程工作
每一个工程团队都会形成一些几乎只存在于人们脑海里的流程。
随便找两位资深工程师,让他们审查一次依赖升级或排查一个不稳定的 CI 失败,他们通常会走类似的步骤:收集上下文、查看过往的事故、评估取舍、翻阅发布说明,然后才决定是否需要采取任何行动。这些工作流是通过经验学会的,却很少被记录成另一位工程师能够一致执行的形式。
Anthropic 引入 Skills 正是为了解决这类问题。一个 Skill 把领域知识打包成一个可复用的工作流,Claude 可以在某一类问题出现时随时调用它。与其在提示词里重复指令,排查流程变成了工作空间里永久的一部分。
一个典型的仓库看起来可能是这样:
```
skills/
├── python/
│ ├── SKILL.md
│ └── ...
├── code-review/
│ ├── SKILL.md
│ └── ...
└── ...
```
那些内置的 Skill 是个有用的起点,但我真正关心的大部分工作并不是语言相关的,而是仓库维护。
随着时间推移,我加了这样一些 Skill:
```
skills/
├── dependency-review/
├── flaky-ci/
├── release-check/
├── security-advisory/
└── documentation-drift/
```
每个 Skill 的存在都是出于同一个原因。有人在几个月前合并了代码。依赖在持续演化。文档离现实越来越远。CI 流水线变得越来越不可靠。在最初的实现完成很久之后,新的安全公告又冒了出来。这些工作在 pull request 被合并时都还不存在,但最终全都需要有人关注。
Skill 的目的不是生成代码,而是捕捉一本工程手册。
比如说,一次依赖审查并不是简单的「升级软件包」。这个 Skill 会翻阅发布说明、检查破坏性变更、评估安全修复、查找已知问题,并判断这次更新是否值得做。有时正确的结果是一个 pull request,有时则是一个「再等等」的建议。
目标从来不是代码生成,而是一个工程决策。
为什么 Opus 4.8 改变了工作流
最大的不同来自 Opus 4.8。
不只是模型变得更聪明了,排查也明显变得更自律了。它不是跳到第一个看似合理的答案,而是从多个来源收集证据、重新审视先前的假设,并在得出结论之前交叉核对它的发现。
这种行为很重要,因为排查很少是线性的。一次失败的 workflow 可能指向的是基础设施而不是应用代码。一次依赖升级可能暴露出一个不相关的兼容性问题。第一个解释往往不是正确的那个,而有经验的工程师都知道,过早下结论通常会在之后制造更多工作。
随着推理能力提升,我发现自己在用不同的标准评估这个过程。我不再问答案看起来是否令人信服,而是问这次排查是否遵循了我会对另一位有经验的工程师所期望的那种流程。
结果证明,这是一个高得多的标准。
错误的抽象
最大的错误并不是把 Claude 当成了聊天机器人。
而是把工程当作了一堆相互独立的任务。
多年来,我就是这样向自己描述维护工作的:审查这个依赖。排查这个失败的 workflow。准备这次发布。每一个请求听起来都像一个孤立的任务,尽管它们其实都是同一个底层责任的不同症状。
有经验的工程师不会醒来就去找随机任务来完成。他们认领系统,任务是从这种认领中自然涌现出来的。一旦我意识到自己在教的是「任务」而不是「责任」,剩下的架构就变得简单多了。
从任务到责任
这个认识彻底改变了我写提示词的方式。
我不再说:
> 升级这个依赖。
责任变成了:
> 审查仓库,判断有没有哪个依赖值得关注。
我不再说:
> 排查这个失败的 workflow。
责任变成了:
> 判断这次失败是否意味着存在更大的可靠性问题。
这两者听起来相似,却会产生截然不同的行为。一个任务默认工作已经存在;一个责任首先要判断工作到底存不存在。
这个区别变得出奇地重要。有时正确的结果是一个 pull request,有时则是一份解释「为什么什么都不该改」的报告。有经验的工程师通过决定「什么时候不该写代码」来创造价值,而我希望这个系统能像生成新代码一样自然地做出这种决定。
到这一步,我已经不再试图自动化仓库维护了,而是试图把每个仓库都必然会积累的维护工作交给某个人去认领。这个认识改变了我对整个工作流的思考方式。
我不再指派任务,而是开始委托责任。
运行这个系统
一旦每一块都就位了,那些单独的组件就不再显得重要了。
重要的是它们如何协同工作。没有任何一个组件能独自解决维护问题。它们合在一起,形成了一个能够认领那些本会在后台不断积累的工作的系统。
工作流本身出乎意料地直白。
```
GitHub Actions
↓
Repository Context (CLAUDE.md)
↓
MCP Tools
↓
Relevant Skill
↓
Opus 4.8 Investigation
↓
PR, Report, or No Action
```
其中一些工作通过 GitHub Actions 自动启动。Anthropic 自家的 Claude Code Action 遵循的是同一个思路。一个 workflow 可以在仓库上下文已经就绪的情况下调用 Claude,让重复性的维护工作得以发生,而不需要有人每周都去开一段新对话。
一个定时运行的 workflow 可以简单成这样:
```
on:
schedule:
- cron: "0 8 * * 1"
```
有趣的不是这个定时计划,而是它启动之后发生的一切。
工作空间已经通过 CLAUDE.md 理解了仓库。通过 MCP,它可以访问 GitHub 和其他系统,选择合适的 Skill,收集证据,排查问题,并判断是否真的有事情值得关注。等我来审查结果时,大部分例行排查已经完成了。
大多数运行并不会产出一个 pull request。这不算失败,它往往是正确的决定。
优秀的工程师不会仅仅因为有人叫他们去排查就去制造工作。他们会确认一次升级可以再等等、判断一次失败的 workflow 只是暂时性的、或者解释某个安全公告为什么不会影响这个仓库。消除不必要的工作,和产出新代码一样有价值。
那些报告逐渐变得和 pull request 本身一样有价值。它们在不增加维护负担的情况下降低了不确定性,这意味着这个系统并不是简单地在生成变更,而是在减少实际需要发生的工作量。
最终我注意到了一件出乎意料的事。
我花在写代码上的时间并没有变少,变少的是花在「发现还有哪些工作要做」上的时间。
例行的排查已经发生了,证据已经收集好了,建议也已经记录在案了。我的角色从收集信息转变为审查结论,而事实证明,这是对我时间的一种更好的利用。
系统比任何单个组件都重要
回头看,我认为这个结果并不是来自任何一个单独的组件。
CLAUDE.md 给了工作空间关于仓库的持久化知识。MCP 把它连接到了工程师们每天都在使用的那些系统。Skills 捕捉了可复用的流程。GitHub Actions 把重复性的工作变成了重复性的责任。Opus 4.8 提供了把所有这一切串在一起的推理能力。
这些部件里没有任何一个能独自解决这个问题。合在一起,它们就不再像一个编程助手,而是开始像一个真正的工程师了。
结论
每一个 pull request 都会留下点什么。
有时是一个六个月后才需要升级的依赖。有时是一份慢慢偏离现实的文档。有时是一个还不存在的安全公告。有时是一个在等待正确的那组变更组合出现的 CI 失败。
无论有没有人去认领,这些工作都存在着。
多年来,我把它当作一条永无止境的小任务流:开一段新对话、重建上下文、收集日志、排查、重复。我曾以为维护本身才是问题,而真正的问题是每一次排查都从零开始。
构建这个系统并没有消除维护,而是给了这些维护一个主人。
我不认为我造出了一个更好的编程助手。我认为我造出了一个系统,一个能够认领每一次合并的 pull request 都会留下的那些工程工作的系统。
标签:# X # Claude # MCP # 营销 # AI # 增长 # 指南 相关文章 如何用 AI 外呼漏斗把规模做到每月 $100k+ 那个支撑起每月 $100k+ 代理收入的漏斗,概念上并不复杂。 AI 营销 Claude MCP 一个 70 行的文本文件成了 GitHub 历史上排名前 50 的仓库之一。没有代码。没有框架。 好好想想这件事。GitHub 托管了十五年的框架、语言和操作系统。而在 2026 年,一个只写了四条行为规则的普通 markdown 文件,几乎超越了…… Claude 营销 AI MCP 如何用 Claude Code 构建应用并赚到 $26,436 一个人用来在两周内发布一款真实产品、然后把它变成约每月 $4,000 经常性收入的精确智能体配置和构建顺序。 Claud…
原文参考:https://maxed.wiki/posts/how-i-turned-claude-code-opus-4-8-into-the-best-engineer-on-my-team/ (Maxed.wiki,本页为站内中文整理)