ARTICLE · 991327
Anthropic AI-Native SDLC|AI原生软件开发生命周期实施手册
用 AI 重塑你的软件开发生命周期——逐阶段拆解。
代码不再是瓶颈
各家组织已经开始用 AI 写代码,速度是一年前无法想象的,但代码周边的流程并没有以同样的速度改变。
很多工程团队仍然保留着原样的审批闸门、评审、交接和政策,这些东西正在拖住 Claude Code 这类 Agent 编码方案本该带来的生产力增益。
软件开发生命周期(Software Development Lifecycle, SDLC)是软件从想法走到生产的那套流程。大多数组织跑的都是同样六个阶段的某个版本:规划、设计、构建、测试、部署、维护。传统做法里,每个阶段都是一个独立环节,由不同角色负责:产品经理写需求,技术架构师把需求转成设计,工程师实现设计,受监管企业的 QA 团队做验证,发布团队上线,运维盯着线上运行。工作在各环节之间靠文档、工单和签字流转。
传统 SDLC 流程很重,为的是在每一步都保证问责和控制。但传统 SDLC 当年是为「把效率做到最大」而设计的,而那是另一个时代:在那个时代,最耗时、最昂贵的阶段是写代码和做实现,现在已经不是了。PRD、估点仪式、产品安全评审,这些东西存在,是为了在那段可能长达数周、数月甚至数个季度的开发期里强行对齐。
传统 SDLC 的另一个特征是:它的控制手段默认每一步都由人来做。产出价值最多的那些组织,已经围绕 Agent AI 今天能做的事重建了自己的流程,同时确保人始终在环内。本指南会走一遍我们 Applied AI 团队在内部把 Claude 接入 SDLC 各阶段的若干最佳实践——这些实践的灵感来自我们与客户的合作,目的是加速开发、让流程跑得更快。
当代码不再是瓶颈、构建阶段快到传统 SDLC 承接不住时,有三件事会同时成立:

图 1 · 构建不再是约束点——约束点是它周围那些按人速运行的步骤。构建塌缩到以小时计,而人速阶段的长度纹丝不动。
拿安全瓶颈举例。安全团队的人力是按人的产出规模配的,所以当 Agent 把代码产量成倍放大时,要么评审队列越堆越长,要么代码在没被充分评审的情况下上线。受监管的组织这两个结果都不能接受,所以它的安全与政策检查必须跟上 Agent 的节奏。
要更好地兑现 Agent AI 的生产力增益、同时把它管住,传统 SDLC 生命周期需要经历和实现阶段同等程度的改造。
目录
什么是 AI 原生 SDLC
AI 原生 SDLC 是一套重新设计的流程:它保留原有的控制目标,改用新的执行机制。流程不再线性流转,而是变成一个闭环,AI 嵌入每一个环节。AI 原生 SDLC 推动交接自动化,并自动触发后续打法,用来解决传统 SDLC 各阶段之间手工且笨重的交接。
这个转变你也会听到别的叫法:Agent 化 SDLC、AI SDLC,或者干脆叫 Agent 化软件开发——标签不同,说的是同一件事。

AI 原生 SDLC 六个阶段发生了哪些变化
下表列出的是传统 SDLC 与由 Claude 支撑的 AI 原生 SDLC 这两个端点。大多数组织落在两列之间的某处。
贯穿右边这一列的那根线,是已提交的制品。每个阶段都以「往版本控制里写入一份制品」收尾(包括intent.md、spec.md、plan.md、diff 及其测试、带评审发现的 PR,以及故障记录),下一个阶段以读取它开始。在靠前的几个阶段,.md 文件是主要制品形态,因为产品负责人和 Agent 都能读同一个文件、都能据此行动。从构建阶段往后,制品是代码及其记录。这条提交链同时就是审计轨迹:谁要求了什么、Agent 产出了什么、谁批准了。
凡是需要判断的决定,最终责任仍由人承担。在 Agent 化 SDLC 的世界里,人的注意力随着「必须被评审的制品」一起转移。
每个阶段都提交一份下个阶段能读的制品。意图、规格、计划、diff 和评审发现合在一起,就是审计轨迹。
打法(Plays)
打法是这份手册的主体,按六个非线性阶段(规划、设计、构建、测试、部署、维护)分组,合起来覆盖完整生命周期。
每个打法包含:
这些步骤是模块化的,组织可以根据自身情况,在不同时间优先改造不同阶段。每个打法都在「前置条件」里点名自己的依赖,依赖关系图会进一步说明。
一个阶段以提交制品收尾,而这次提交启动下一个阶段。被接受的intent.md触发需求与设计这一遍,被批准的spec.md触发 plan 模式,被合入的 PR 触发流水线,生产环境被突破的控制带写出下一份intent.md——闭环就这样转下去。
起步时,你还是手工逐步提示每一步;终态是一个闭环,每份被接受的制品都会自动触发下一道闸门。人的注意力集中在闸门处,评审 Agent 标出来的东西,而不是每个阶段都从零开始。

图 3 · 图中打法按阶段列出,箭头给的是采纳顺序。两者不是一回事。可以从任何一个「起点打法」开始——没有箭头指进去,说明它不需要任何前置。对其他打法而言,指进它的那些箭头就是要先采纳的打法。
想法不再等着某个人把它写下来。意图只被捕捉一次,用提出人自己的话,形成一份受版本控制、可供下个阶段直接执行的制品。
把意图落成 intent.md
启动软件开发流程的intent.md可以从不同路径进来:有人有了个想法、有工单被提出、或者某次故障由告警浮现出来(见阶段六:维护)。
当一个人有想法时,他和 Claude 一起头脑风暴,产出一份 Markdown 的原型规格。在传统 SDLC 里,同一个人接下来还得去说服产品团队的某位成员,和他一起写、或者替他写这份东西。
Claude 生成的原型规格人能读、受版本控制,而且下一阶段可以立即使用。这份原型规格保存为intent.md。
不管意图来自事件触发还是来自 Agent,步骤都一样:产品负责人在提交前评审并修正 Agent 写的intent.md。
一个想法要经过待办条目、用户故事、故事点和细化会议,才轮到有人能动手。每次交接所有权都在转移,所以最终到工程手上的东西,和提出人本来的意思之间已经隔了好几步。
提出人和 Claude 头脑风暴,把结果写成intent.md,一份用提出人自己的措辞写成的原型规格。这份制品记录了想要什么、为什么要,以及在什么约束下要。重复性流程通过 Skill 编码固化。
如何起步
前置条件—— 无。
基础设施—— 让非工程岗的人也能用上 Claude(claude.ai 或 Cowork);一份约定好的intent.md模板;一个共享的、受版本控制的意图存放地,由产品负责人盯着。对单个产品来说,最简单的存放地就是产品仓库里的一个intent/目录。这么放,制品链就和由它派生出的代码待在一起。只有当意图跨多个仓库时,单建一个意图仓库才值那份额外开销;在 monorepo 里它就是一个目录。阶段三:构建的边栏会讲这个存放地与已经持有记录的 Jira 或需求工具之间的关系。
搭这套是平台团队或工程团队的一次性工作。需要一位技术成员把意图存放地立起来,并决定谁有写入权限——因为贡献者会来自组织各处。
仓库一旦存在,没有 git 经验的贡献者不必直接用 git。装一个到版本控制系统(比如 GitHub)的连接器,Claude 就能在 claude.ai 或 Cowork 里代他们提交 Markdown 文件。
怎么执行
治理上的考量
证据就是那份已提交的intent.md,它带着作者、时间戳和完整修订史,记录在意图存放地的 git 历史里。由产品负责人批准;决定意图是否进入阶段二:设计的「接受或拒绝」结果,会以合并或关闭评审的形式记录下来。
怎么衡量
先行指标—— 从第一次对话到intent.md被提交所用的时间,从意图存放地的 git 历史里读(历史记录了作者和时间戳)。预期是从数周的需求获取与细化周期降到以小时计。
滞后指标—— 存活率,也就是产品负责人接受进入阶段二:设计(而非关闭)的intent.md占比。接受或拒绝的决定以制品被合并或评审被关闭的形式记录。此外还有:同一变更的第一份spec.md提交之后,intent.md又被改了多少次。
需求与设计塌缩进同一次会话。政策在规格被写出来的当下就被应用,而不是几周后在评审里才被发现。
需求与设计
产品负责人批准之后,Claude 拿被接受的intent.md产出一份需求与设计规格。这一步由组织在品牌、安全、合规和 UX 方面的 Skill 引导。
产品负责人评审这份规格,但不写它。这个过程的目标是产出一份工程团队可以据以做计划的规格,其中已标出关注点。
前端工作是最清楚的例子。intent.md被接受后,产品负责人在 Claude Design(beta)里根据intent.md做出设计草模,在草模上迭代,然后导出到 Claude Code 去实现。
需求和设计是两个分开的阶段,由不同团队跑。分析师把想法形式化为需求,设计师再把这些需求解析回设计。这种分离是为了问责,但它慢,而且有损耗。
两个阶段发生在一次被提示的会话里。Claude 拿着intent.md产出需求与设计规格,受组织 Skill 约束,并把关注点标出来。
如何起步
前置条件—— 写好一份intent.md,并把品牌、安全、合规和 UX 政策写成 Skill。
基础设施—— 一位能用上 Claude 的产品负责人。不需要工程技能。
怎么执行
长什么样(提示词)
治理上的考量
不是几周后在评审里才被发现,而是在规格被写出来的当下就读取并应用当前生效的政策。组织的 Skill 作为约束条件加在规格上。规格、产出它的提示词,以及当时生效的 Skill 版本,全都记录在版本控制里。产品负责人为规格签字,并把被标出的关注点路由给指定的政策负责人。
怎么衡量
先行指标—— 同一变更的intent.md提交与spec.md提交之间的时间间隔(两个 git 时间戳),与过去「需求 + 设计」的周期做对比。
滞后指标—— 构建开始后的需求返工。统计同一变更中,日期晚于第一份plan.md提交的spec.md提交次数。git log 可以直接给出这个数。
没有被接受的计划,就不做实现。组织知识变成 Agent 会读的文件,护栏以代码而不是以习惯的方式运行。
把 Claude Code 的 plan 模式作为默认起点
工程师以 plan 模式启动 Claude Code 会话,把阶段二:设计里批准过的spec.md给 Claude,让它反过来访谈工程师,在计划上迭代,直到工程师满意。
工程师读完设计就开始写代码。这次变更具体怎么做——改哪些文件、写哪些测试——留在工程师脑子里,最好的情况下留在一条工单评论里。别人无法评审。评审者看到的第一样东西是完成的 diff,到那时候返工已经很慢了。
工作从一份写下来的计划开始,由 Claude 在 plan 模式下产出——在这个模式里它能读代码库但不做任何改动。工程师在代码被写出来之前修正计划,被批准的版本作为plan.md提交,供后续阶段对照检查。
如何起步
前置条件—— 如果有意图制品(intent.md或spec.md)就用上;有CLAUDE.md文件会有帮助。
基础设施—— 能访问仓库的 Claude Code。
怎么执行
长什么样(plan.md)
治理上的考量
设计评审发生在任何代码被生成之前——那时候改方向还只是编辑一份文档的事。plan 模式本身就在强制这一点,因为在工程师接受计划之前,Claude 无法编辑文件。计划及其修订,连同是谁接受的,都被记录下来。常规变更由工程师批准,凡组织归为高风险的,走技术负责人或架构师。
怎么衡量
先行指标—— 第一遍实现就能合入的变更占比;以及从计划批准到 PR 合并的时间,所需数据在 PR 元数据里。
滞后指标—— 每个变更的返工轮次(同样来自 PR 元数据);以及合入的 diff 仍与已提交的plan.md相符的频率。
Claude Code 的 auto 模式
Claude Code 也可以跑在 auto 模式:工程师批准计划、在计划上迭代到满意之后,Claude 逐项应用改动,不再逐次编辑都来问一遍。随着后面几个打法里的护栏成熟起来(调好的CLAUDE.md、把政策编码进去的 Skill、拦截危险动作的 Hook、以及一套 Claude 能自己跑的测试),自动接受会成为常规工作的默认模式——前提是:一份边界严密的spec.md、很小的影响面、以及测试已经覆盖到的代码。
这种变化意味着从「用户盯着 Agent 做编辑、逐个动作审查」,转向「在更长的自主会话之后审查制品」。自动接受模式配合 worktree,还能进一步支持个人和团队层面的并行,它也是自主运行 SDLC、闭合回路(见阶段六:维护)的根基。
遗留系统与事实来源
适用于本流程产出的每一份制品。
现有的 SDLC 流程很可能已经在跟踪制品了,只是不以 Markdown 文件的形式:工作项可能在 Jira 里,需求在一个内建监管可追溯性的工具里,设计在 Figma 里,变更审批在变更委员会那里。这些系统很难被取代,因为审计师和监管方已经认可它们,而且别的团队也依赖它们——所以 AI 原生 SDLC 必须绕着既有的东西来搭。
向 AI 原生 SDLC 过渡时,对流程产出的每一份制品,都指定一个系统为事实来源,其余一切只持有副本或指向原件的链接。下面这几种配置都可以做到只有一个事实来源,具体选哪种可以逐制品不同:
仓库作为事实来源。Markdown 制品是权威记录,遗留系统引用提交里的文件。对工程主导的组织来说,这往往是最干净的配置之一,因为所有记录都在一个工具里,时间戳权威也只有一个。
遗留系统作为事实来源。Jira、ServiceNow 或需求工具持有权威记录,Markdown 制品是工作副本。Claude 在会话开始时读取记录,并在产出规格或计划的同一次会话里,通过 MCP 连接器把结果写回去。
互相挂链作为最低标准。所有制品都记下记录 ID,所有遗留记录都包含 Markdown 文件的 commit SHA。向 AI 原生 SDLC 过渡时,从挂链开始是个不错的起点——代价是接受存在两个事实来源。
遗留系统与 Markdown 优先的体系可以共存,只要两者之间有链接,或者其中之一被宣告为事实来源。
关于 CLAUDE.md
CLAUDE.md给 Claude 的,是一位新同事需要的那些上下文:约定、命令、架构,以及团队最常撞见的那些错误。过去待在人脑子里和 wiki 上的知识,变成 Agent 每次会话开始就读的一个文件,由全团队维护,每犯一次错就迭代一次。
如何起步
前置条件—— 无。
基础设施—— 一个仓库、装好的 Claude Code,以及一位熟悉这套代码的工程师。
怎么执行
长什么样(CLAUDE.md)
治理上的考量
CLAUDE.md受版本控制,所以 Agent 遵循的指令是可评审、可审计的。团队约定通过这个文件生效,对它的改动记录在 git 历史里,代码负责人在 PR 评审中批准这些改动。
怎么衡量
先行指标—— Claude 重犯本该被CLAUDE.md拦住的错误的频率。对CLAUDE.md的修正或改动应当在 git 历史里可追踪。
滞后指标—— 团队新成员从入职到第一个 PR 合并所用的时间,取自 PR 历史。
用 Skill 承载组织知识
Skill 是组织把自身知识转化为可执行规则的方式。指令是显式的、受版本控制的、被广泛应用的,政策变化时从中心统一更新。经验法则是:必须被一致应用的组织知识,写成 Skill;本应放在CLAUDE.md或提示词里的内容,不要写成 Skill。
如何起步
前置条件—— 不需要。有CLAUDE.md会有帮助,因为它把 Agent 的工作知识留在仓库里,但 Skill 并不依赖它。
基础设施—— 一条有明确负责人、有书面事实来源的政策。
怎么执行
长什么样(.claude/skills/secure-api-review/SKILL.md)
治理上的考量
Skill 是一种控制手段,但是建议性的。它让 Claude 很可能在写代码的同时应用政策,但没有任何东西强制某次会话必须遵守。一条必须永远成立的政策,需要在 Skill 背后有确定性的东西兜底,比如一个拦截该动作的 Hook,或者在 PR 阶段重新核查该政策的评审流程。Skill 让违规变得罕见,Hook 让违规几乎不可能。Skill 的调用会记录在会话轨迹里,政策负责人像评审代码一样评审 Skill 的改动。
怎么衡量
先行指标—— 从政策负责人批准一次政策变更,到更新后的 Skill 被合入的时间,取自 Skill 文件夹上的 PR。
滞后指标—— PR 评审中援引该政策的发现数量。一旦 Skill 在写代码的当下就在应用政策,这个数应当趋近于零。如果它没有趋近于零,要么 Skill 没被触发,要么它的文本已经和官方政策脱节了。
用 Hook 做构建期护栏
Skill 是建议性控制,Hook 则是它背后那层确定性控制。Claude 在实现阶段的大部分动作是文件编辑和 shell 命令,所以构建阶段往往是 Hook 触发最频繁的地方。
构建期 Hook 可以:
凡是政策必须无例外成立的 Skill,都用 Hook 兜底。Hook 会在每一个匹配到的动作上运行,所以构建期 Hook 应当快,并且只作用于发生变化的那个文件。更重的检查(比如跑完整测试套件)属于提交或 PR 环节。
那种要人来批准的 Hook,属于阶段五:部署里的闸门。因为在构建过程中弹出审批提示,等于把一个人重新放回所有并行会话的关键路径上。
并行会话与子 Agent
一位工程师可以同时驱动好几条工作流。
并行会话是另一个完整的 Claude Code 实例,在它自己的 git worktree 里做一个独立任务。每个独立会话对其他会话一无所知,它们唯一共享的就是那位在操舵的工程师。
子 Agent(subagent)运行在单个会话内部,是一个有自己上下文窗口和工具限制的、范围受限的助手,适合那些在多个任务中反复出现的活儿——比如验证应用是否按预期运行。
并行会话提高一位工程师同时在手的任务数,子 Agent 则让每个会话专注于自己的任务。工程师的工作是操舵和评审这一切。
一位工程师一次做一个任务,一天或一周里有相当一部分时间花在等构建、等测试、等评审者上。等待时切去做别的任务是可行的,但上下文切换累到很少有人愿意这么干。
一位工程师同时跑好几个 Claude 会话,每个在自己的 worktree 里做自己的任务。重复出现的活儿变成有自己上下文和工具限制的子 Agent。工程师的工作转向编排,并最终转向搭建和监控闭环。
如何起步
前置条件——CLAUDE.md,因为所有会话都读这个文件。反馈回路(阶段四:测试)在这里也有帮助,因为当一个会话能验证自己的工作时,工程师需要的监督就更少。
基础设施—— 一个 git 仓库(隔离来自 worktree),以及调好的权限设置——让会话不会为了组织认为安全的命令而卡在审批提示上等待。
怎么执行
长什么样(.claude/agents/verifier.md)
治理上的考量
会话更多意味着产出更多,所以控制手段必须来自仓库里的配置。那里的 Hook 和权限设置对所有会话生效,而每个会话做了什么都会被记录,并归属到跑它的那位工程师名下。
怎么衡量
先行指标—— 在评审质量不下降的前提下,每位工程师的并发会话数(从 OpenTelemetry 导出数据里统计),以及一天中花在操舵而非等待上的时间占比。
滞后指标—— 每位工程师每周合入的变更数,与返工率一起读(返工率据 PR 历史判定)。
每个会话在人看到之前先检查自己的工作,而那套驾驭 Agent 的配置,也要像它写出的代码一样接受回归测试。
给 Claude 一个反馈回路
永远给 Claude 一条能验证自己工作的路径——测试、构建,或者截图对比都行。会话检查自己的工作、在工程师看到之前修掉自己的错误。
反馈回路不要和验证器子 Agent(阶段三:构建)混为一谈。反馈回路贯穿整个任务,工作迭代多少轮,反馈回路就运行多少次。而验证器子 Agent 是把最终检查打包的一种方式:在会话认为工作已完成时,用一个全新的上下文窗口跑一次,这样结论就不会被产出这段代码的那些假设染色。
「代码能跑」这个信号来得很晚。CI 要几分钟后才给信号,测试员要几天后,生产环境甚至要几周后。当代码由 Agent 产出时,信号迟到意味着必须有人检查它的全部输出,而这个人就成了瓶颈。
给会话一条在人看到之前检查自己工作的路径。跑测试、跑构建、截图。Claude 一直迭代到检查通过,所以到工程师手上的东西已经过了这一关。搭这个回路是跑会话那位工程师的活儿,下面的步骤就是写给他的。
如何起步
前置条件—— 无。
基础设施—— 一套测试和一个构建,各自能用一条命令在本地跑起来。对 UI 工作,让 Claude 能看到结果至关重要——要么给浏览器工具,要么通过 MCP 接一个截图工具。
怎么执行
长什么样(CLAUDE.md 的验证段落)
治理上的考量
被强制的是什么—— 报告任务完成之前必须验证,以及修复期间禁止 Agent 编辑测试文件;组织想要这两条有保证时,都以 Hook 实现。
证据是什么——make test的原始输出、构建日志,或者 Claude 跑完并贴出来的截图对比——证据来自工具链本身。
记录在哪里—— 在会话记录里(OpenTelemetry 导出会把它转发到组织的可观测性栈),以及在 PR 的 check run 里(评审者和日后的审计师都能看到)。
谁来批准—— 评审这个 PR 的代码负责人。因为机械性证据已经附上了,他可以专注于意图和风险。
怎么衡量
先行指标—— Agent 所写变更的首次 CI 通过率,这个 CI 系统本来就支持。
滞后指标—— 每个 PR 的评审耗时(取自 PR 元数据),一旦测试接住了过去靠评审者接住的东西,这个数应当下降;以及来自故障跟踪系统的变更失败率。
CI 里的持续评测
评测(evals)是阶段闸门式 QA 的 AI 原生对应物。落到实处,就是一套在 Agent 配置发生变化时就运行的测试集。当换上新模型或重写了提示词,评测套件会告诉你 Agent 是否仍然把活儿干到同样的标准。
评测应当被看作一套活的套件。随着模型变强,过去有区分度的用例会失去区分度,必须补进新的用例——它们来自持续的监控。
视用例而定,有些团队可能更愿意按固定节奏离线跑这些评测,而不是每次改动都跑。以下步骤针对持续评测。
如何起步
前置条件——CLAUDE.md和反馈回路(阶段四:测试)。
基础设施—— 能非交互式运行 Claude Code 的 CI,以及一个有评测运行预算的 API key。
怎么执行
长什么样(.github/workflows/agent-evals.yml)
治理上的考量
评测给了 QA 一道跟得上 Agent 产出速度的闸门。通过率阈值以合并检查的形式强制执行,每次运行都被记录以便跨时间对比,配置变更由拥有它的团队批准。
怎么衡量
先行指标—— 评测通过率随时间的走势(套件每次运行都会报告),以及一次生产故障变成一条常驻评测所需的时间。
滞后指标—— CI 里拦下的回归数,与生产环境中发现的回归数做对比(后者取自故障跟踪系统)。
评审是双向的,治理在 Agent 动作发生的当下被执行。Agent 做到生产闸门为止,一步也不越过。
让 AI 进入 PR 评审回路
Claude 既参与评审,也接受评审。它按组织政策评审进来的 PR,也处理自己 PR 上收到的评审意见。这让工程师在 PR 评审中能专注于行为本身,归结起来就是判断意图和风险。
评审产能是按人的产出规划的。一个 PR 等着评审者把它整个读一遍,评审质量随评审者的负载起伏,作者一边催一边看积压越来越长。
所有 PR 都经过一套完全相同的评审轮次,发现按严重程度排序。人的注意力上移一层:这次变更做的是不是计划打算做的事,风险是否可以接受。
如何起步
前置条件—— 阶段三:构建里更新过的CLAUDE.md文件;如果评审轮次要执行成文政策,还需要 Skill;以及已定义好的子 Agent。
基础设施—— 一个装了 Claude 集成的仓库:要么由管理员启用托管版 Code Review(research preview)服务,要么在自己 CI 里跑 claude-code-action,必要时把模型调用走 AWS Bedrock、Google Vertex 或 Microsoft Foundry(部署选项见 CI/CD 打法)。要求代码负责人批准的分支保护策略也值得配上。
怎么执行
长什么样(REVIEW.md)
治理上的考量
职责分离得以保留,因为写代码的那个 Agent 没有任何途径批准它自己。REVIEW.md里的评审政策适用于所有 PR,发现、修复、评分和批准都记录在 PR 历史里,所以 PR 就是审计记录。批准来自人,通过分支保护给出,并以那些发现作为参考。
关于这些控制在生产规模下如何组合,见 Anthropic 如何为自己的 AI 原生 SDLC 做安全(claude.com/blog/how-anthropic-secures-its-ai-native-software-development-lifecycle)。
怎么衡量
先行指标—— 首次评审的时延(应当降到以分钟计),以及无需人碰分支就被解决掉的评审意见占比,数据直接存在 Git 上。
滞后指标—— 合并前被拦下的缺陷与漏洞数,对比逃逸到生产环境的数量,分别取自 PR 历史和故障跟踪系统。
用 Hook 做审批闸门
构建阶段把 Hook 当护栏用,在没有人介入的情况下放行或拦截动作(阶段三:构建)。Hook 还可以「问」——暂停动作,直到某个特定的人批准,这正是发布闸门需要的能力。
这个打法放在阶段五:部署,是因为发布闸门是最清楚的例子;但 Hook 并不是部署专属的,Claude 在哪里动作,它就在哪里运行。比如,在阶段三:构建里,Hook 可以拦截没有变更工单就改数据库迁移和基础设施;在阶段四:测试里,可以阻止 Agent 在修复任务中编辑测试文件。
如何起步
前置条件—— 无。
基础设施—— 一份写下来的清单,列出变更流程要求的各项审批。
怎么执行
长什么样(.claude/settings.json)
闸门本身长什么样(.claude/hooks/production-gate.sh)
治理上的考量
Hook 就是审批闸门。闸门条件每次都会对每个人执行。放行与拦截的决定都带时间戳记录在案。闸门还定义了什么才算「批准」——是一张已批准的变更工单,还是发布经理的签字。
实例 —— 面向受监管企业的托管设置
由平台团队通过 MDM 或管理控制台下发;工程师无法编辑或覆盖其中任何一项。
从控制角度看,每一行配置换来了什么
permissions.deny把敏感信息挡在 Agent 的上下文之外,并阻断经由工具的任意网络外发;permissions.allow预先放行安全的内层循环,避免 deny 清单造成反复确认。
disableBypassPermissionsMode加上allowManagedPermissionRulesOnly,意味着任何工程师、项目文件或命令行参数都无法把规则放宽。
sandbox补上权限管不了的缺口。在工具层面 deny 掉 WebFetch,并不能阻止一条 shell 命令连上网络;操作系统层面的域名白名单则直接切断外发。
failIfUnavailable和allowUnsandboxedCommands把沙箱变成一道闸门:沙箱无法初始化时 Claude Code 拒绝启动,而在沙箱内失败的命令,也不能转到沙箱外重试。
credentials补上 deny 规则留下的缺口。permissions.deny管的是 Claude 的文件工具,但一条沙箱内的 shell 命令默认仍可能读到~/.ssh或~/.aws/credentials;这一段拒绝这些读取,并从每一条沙箱命令的环境里剥掉指定的敏感变量。
allowManagedHooksOnly意味着只有这个打法定义的审批闸门 Hook 会运行,本地的任何东西都不能追加或替换它们。
disableSideloadFlags和strictKnownMarketplaces意味着工程师机器上的每一个 Skill、Agent、Hook 和 MCP 服务器,都是经组织批准的插件市场进来的,绝不会来自某个用户主目录。
allowManagedMcpServersOnly让 Agent 的工具面成为一份由平台团队掌管的白名单。
requiredMinimumVersion会在版本低于经批准的最低版本时拒绝启动,这样这些控制就是由组织实际评估过的构建版本来执行的。
上面这套请当作待裁剪的起点,而不是照抄的建议。每一项 deny 都会牺牲一部分能力,正确的平衡取决于该仓库的数据分级。设置参考文档记录了每一个键,包括那些仅限托管的键:code.claude.com/docs/en/settings
怎么衡量(针对 Hook 本身)
先行指标—— 在每道审批闸门上等待的时间。每一次 Hook 决定都会写进 OpenTelemetry 导出,带时间戳和放行/拦截结论,所以每道闸门的等待时长都可见。
滞后指标—— 上 Hook 前后,突破闸门抵达生产环境的违规数量,取自故障跟踪系统。
CI/CD 集成与部署
在 CI/CD 流水线内部非交互式运行 Claude Code;把执行放进沙箱,让长时间运行的 Agent 安全运行;通过 MCP 集成把部署能力暴露给 Agent;并在 Agent 真正需要之前就先演练好回滚路径。
流水线跑的是确定性脚本,任何需要判断的事都等着人来做。比如分诊一个不稳定的测试、写变更日志、或者搞清楚构建为什么坏了。部署和回滚是人在压力下照着执行的操作手册。
Claude 在流水线内部非交互式运行,负责那些需要判断的步骤,跑在带受限凭据的沙箱里。部署工具通过 MCP 暴露给 Agent,于是写出并测试了这次变更的那条工作流,也能把它发出去、把它回滚掉——全都在组织按环境定义的闸门之内。
如何起步
前置条件—— Claude 已进入 PR 评审回路,以及 Hook 已作为审批闸门存在。因为闸门必须先存在,自动化才能加速任何东西穿过它们。
基础设施—— 一个装了 claude-code-action 的 CI 平台,或者任何能调claude -p的 runner;通过 API 的模型访问,或者在流量必须留在组织既有云服务协议范围内时走 Bedrock、Foundry 或 Vertex;对接各部署目标的 MCP 服务器;一份给 Agent 任务用的沙箱配置,不持有常驻的生产凭据。
怎么执行
长什么样(流水线步骤)
治理上的考量
支配性原则是:Agent 可以一路做到生产闸门,但不能越过它。下面这些控制手段执行这一原则。
怎么衡量
先行指标—— 无需呼叫人就完成分诊的流水线失败占比,取自 CI/CD 流水线日志。
滞后指标—— DORA(DevOps Research and Assessment)指标,CI 系统和部署工具本来就在输出这些数据。
闭环合上。触发器在没有人处于调用路径上的情况下唤起 Claude,而它发现的东西以intent.md的形式重新进入流水线。
维护与闭合回路
到目前为止,我们讨论的都是怎么把 Claude 加进 SDLC 的各个阶段,每个阶段都需要人来发动最初的步骤。而这个阶段,焦点转向让 Claude 自主运行,把回路闭合。
举例来说,一个持续运行的监控 Agent 可以在一张 bug 工单被提出之后,创建一份intent.md,然后一路流过需求、计划、构建、测试和评审各个阶段。阶段六:维护以无人值守(headless)方式运行,在各阶段之间设有独立的置信闸门——一次确定性检查,或者一个对抗性的评审 Agent——由它决定上一阶段的产出是继续往下走,还是上报给人。
维护是个被动阶段。所有工单或故障都等着某个人去处理、去重启流程。凌晨三点的告警可能被漏掉,工单可能一直躺在待办里等人捡起来,而如果又起了另一把火,事后复盘的行动项可能根本到不了代码库。
一个触发器——控制带被突破、一张工单、一条频道消息,或者一个定时计划——在没有人处于路径上的情况下唤起 Claude。Claude 做诊断,只通过设有闸门的路径行动,并把它发现的写成intent.md,然后走上面描述的那些阶段。人负责分诊和评审这些工作,而不再需要去发动它们。
闭合回路
一个确定性脚本盯着生产环境,在控制带被突破时唤起 Claude。对控制带突破的监控,是理解「回路自主运行」这个模式的一个好例子;而本阶段末尾 Claude Tag(公开测试)一节,讲的是工作从不同渠道进来的情形。
如何起步
前置条件——intent.md,它给了回路一个结构化的输出用来重启流程。此外还需要 Claude 加速的 PR 评审、作为动作边界的 Hook,以及 CI/CD 的回滚路径(最高自主度层级会调用它)。
基础设施—— 一个检测脚本能查询的指标存储系统(Prometheus、CI 系统的 API 或同类),对仓库的读权限,一条在 CI 里非交互式运行 Claude Code 的路径,或者用 Agent SDK 做一个接收 webhook 的服务。
怎么执行
长什么样(例如一份监控 CI 测试失败率的 bands.yaml)
治理上的考量
层级边界由受版本控制的配置强制执行,权限和托管设置拒绝生产访问。唤起、发现和分诊决定都带时间戳记录在案。服务负责人分诊并批准这些发现,由此产生的变更走正常的 PR 评审闸门,而 Agent 可以触发的那些操作手册是事先被批准过的。
怎么衡量
先行指标—— 从控制带被突破到分诊队列里出现一份intent.md的时间,与过去「从故障到复盘行动项」的时间做对比。检测脚本的日志里有突破的时间戳和故障层级。
滞后指标—— 发现最终变成合入修复的占比(分诊队列对照实际 PR 历史),以及同一类别故障的重复发生次数——随着修复不断给评测套件添加用例,这个数应当下降。
例子
检测环节保持确定性。控制带一旦被突破,Claude 才被唤起,而层级决定了它能做什么。
周期性代码库扫描
一次安全扫描,是特定模型在某个时间点对代码库作出的判断——而这两半都会过期:代码每周都在变,每一代模型都会找出上一代漏掉的漏洞。AI 原生的答案是:按计划跑扫描,调用路径上没有人,并把扫出来的东西送进和代码库其他任何变更相同的闸门。
Claude Security 是定时扫描的托管形态。连上一个 GitHub 仓库,扫描就在 Anthropic 的基础设施上以 Claude Mythos 5 运行,每条发现在被报告之前都经过验证,并附上一个置信度评级。建议的补丁在 Claude Code on the web 里被评审和应用。组织拿到这些发现,而无需直接访问模型。
安全扫描是一个事件:在发布前或审计前发起一次扫描。报告进入跟踪系统,积压靠人工消化,直到下一个事件。这中间写的代码,靠 PR 评审接住多少算多少。
扫描按计划对每一个已连接的仓库运行,用当前最强的模型,发现在任何人读到之前就已被验证。每条发现的处理方式与被突破的控制带相同:一个 PR 装得下的修复走评审闸门,更大的就变成一份intent.md。覆盖度的日期以最近一次运行为准,而不是以第一次为准。
如何起步
前置条件—— PR 评审闸门和作为审批闸门的 Hook(阶段五:部署),好让这些发现像其他变更一样走评审。以及阶段一:规划的intent.md格式,用于那些单个 PR 装不下的发现。
基础设施—— Claude Security 面向 Claude Enterprise 组织公开测试。它需要:在目标仓库上安装 Anthropic GitHub App(云托管的 github.com)、启用 Claude Code on the Web、打开 Extra Usage 并设好花费上限、给跑扫描的人配 premium 席位,以及由管理员在claude.ai/admin-settings/claude-code打开该功能。扫描按 Mythos 5 的费率按用量计费,所以花费上限应当与仓库的规模和数量相匹配。
怎么执行
治理上的考量
扫描在组织的管理员控制之下运行:接入了哪些仓库、谁持有扫描席位、花费上限是多少,全都是集中设定的。每条发现都有验证结果和置信度评级,每次驳回都有理由,所以扫描历史就是一份审计记录,记录了什么被发现、什么被修复、哪些风险被明确接受。
修复经由 PR 评审闸门和分支保护抵达生产环境,而不是从扫描直接过去。Claude Security 是对既有静态分析和依赖扫描的增强:确定性检查仍然留在 CI 里,而模型驱动的扫描覆盖那些确定性检查本就不擅长发现的、依赖上下文的漏洞。
怎么衡量
先行指标—— 已排上定时扫描的仓库占比,以及从一条发现被报告到它的补丁进入 PR 评审闸门的时间,取自扫描历史和 PR 元数据。
滞后指标—— 定时扫描发现的漏洞数,对比在生产中或由外部报告发现的漏洞数(取自故障跟踪系统);以及已经跑过若干轮的仓库上,每次扫描的发现数趋势——随着修复和评测的累积,它应当下降。
让 Claude 用 Claude Tag 值班
故障也可能从别的渠道进来,比如 Slack 或 Teams 这类办公沟通应用。一次故障可能表现为晚上十点故障频道里一条要求紧急修复的 Slack 消息,而现在它可以被立刻处理。Claude Tag(目前在 Slack 公开测试)让 Claude 以自己的身份成为这些频道的成员,于是每一起新故障都有了第一响应者,而响应本身成为回路的一部分,也成为未来故障可调用的记忆。
对话和组织知识都留在频道里,频道里的任何人都可以引导和推进这次响应。任何团队成员都能实时验证假设、探索新选项、展开调查,而频道历史又增加了可审计性。通过 MCP,Claude 验证指标是否已回到基线并在讨论串里确认,然后把复盘写进一份受版本控制的经验教训文件,供日后的调查读取。
Claude Tag 接的不只是故障。通过 MCP 在一张工单上被 @,或者在频道里被问到,Claude 会用同样的方式分诊这些工作:小而边界清楚的修复以 PR 形式经评审闸门进来,更大的则写成intent.md进入阶段一:规划——到这一步,回路开始自我供给。参见:Claude Tag 在 Anthropic 如何为 CI/CD 值班(claude.com/blog/ai-ci-cd-on-call)。

图 4 · 频道就是审计轨迹:请求、诊断、人工授权和修复,全都留在这次故障被处理的地方。
结语
模型与配套运行框架(harness)都变得更先进了,这让组织不仅能改造自己生产代码的方式,还能改造整个软件开发生命周期。
这场改造把人的判断保持在流程的中心,也考虑到了大型企业组织的治理与监管要求。
本指南汇集了我们 Applied AI 团队每天为客户实际采用的许多最佳实践,希望你觉得它是一份务实、可落地的资源。
回路持续运转。人的判断,居于其上。
资源与致谢
下面这些文档是平台团队搭起这些控制所需要的,大致按你会推行的顺序排列。
感谢 Jim Blackhurst、Will Steuk 和 Jamal Arif 对本指南的贡献;本指南受他们此前的工作启发,并在其基础上构建。
Louis Claxton,The AI-Native SDLC playbook, Anthropic, August 21, 2026