ANTHROPIC · THE AI-NATIVE SDLC PLAYBOOK阅读笔记 / 面向架构治理

把它当成一份控制模型来读,而不是一份工具清单

这份 playbook 的可评估部分不在「用 AI 写代码」,而在它给出的四层控制、一条审计链、一套控制带触发规则,以及一张按依赖而非按阶段排的采纳图。以下按这些结构重排。

01命题

“Code is no longer the bottleneck — the human-speed steps around it are.” 代码不再是瓶颈,瓶颈是它周围那些按人的速度运行的环节。

推论是结构性的:如果生成环节的成本趋近于零,那么规划、评审、测试、发布这些仍按人速运行的环节就依次成为新的约束,而它们过去被设计成串行且低频,正是因为生成环节昂贵。

六个阶段名保持不变(Plan / Design / Build / Test / Deploy / Maintain),但被重述为非线性的:每个阶段产出一份进了版本库的产物,产物触发下一阶段,最后一个阶段产出新的 intent.md 回到第一个阶段。

02阶段 · 产物 · 触发关系

阶段产物该阶段被重新设计的点
Planintent.md意图直接落成机器可读文件:要什么、为什么、在什么约束下。度量点是「从对话到产物提交」的时长,原文给的预期是从数周降到数小时。
Designspec.md需求与设计合并为一次会话,组织策略以 skills 形式作为约束参与,存疑处被显式标记。
Buildplan.md
CLAUDE.md
plan mode 把「设计评审先于编码」变成流程强制项;CLAUDE.md 承载约定、命令、架构、常见错误,原文建议控制在一页内。并行会话经由 git worktree,起步建议两到三个。
Test通过的检查校验收敛为单条命令,会话在反馈回路里自迭代到通过再交人。UI 类工作给出浏览器与截图能力,原文称通常两三轮。持续 eval 建议用 20 到 50 个真实任务作为套件,用于回归 agent 配置的改动。
DeployREVIEW.md
已合并 PR
机器评审分层执行(bug / 安全 / 合规),findings 按严重度排序,人的评审收缩到高风险代码;hook 充当审批闸门;claude-code-action 承载非交互 CI/CD;MCP 以受限权限暴露发布工具。原文建议 nit 每次评审不超过五条。
Maintainbands.yaml
新 intent.md
确定性探测脚本(Western Electric rules)按偏离程度分级触发;诊断结论写回 intent.md 重启流水线;Claude Tag 承载 Slack / Teams 的值班响应;Claude Security 做排期扫描并在上报前先做验证。

03控制模型:四层,性质各不相同

这是全篇最值得单独抽出来评估的部分。四层控制在「能否否决」和「谁拥有」两个维度上是分开的,混用会直接导致治理承诺无法兑现。

控制层性质作用时点所有权能承诺什么
Skills
.claude/skills/
建议性
advisory
代码被写出的过程中 领域团队 提高合规产出的概率。不构成拦截,因此不能作为控制点写进审计承诺。
Hooks
.claude/settings.json
确定性
deterministic
动作发生之前 平台 / IT 放行、阻断、或要求人工批准,并留下带判定与时间戳的决策日志。这是可作为控制点的那一层。
权限与沙箱 确定性 执行环境边界 平台 / IT 操作系统级隔离加工具限制,按环境分级(dev / staging / production)。
Managed settings 确定性 配置装载 平台 / IT,工程师不可覆盖 把上面几层的规则本身变成不可协商项——否则控制层与被控制方是同一批人。

一条实践边界。原文对生产发布的表述是:agent 可以一路执行到生产这道闸门前,但不能越过它。发布 hook 保持阻断,直到取得发布授权;分支保护要求人工批准才能合入。

04审计链:证据落在哪些载体上

“The chain of commits is also the audit trail: who asked for what, what the agent produced, and who approved it.”

产物链 intent.md → spec.md → plan.md → PR → 事件记录 自带作者与时间戳,构成主干。除此之外原文点名的证据载体如下。

审计问题证据载体
谁提出、何时提出git 提交历史(作者 + 时间戳)
发现了什么、如何处置PR 线程中的 findings 与其 resolution
agent 实际做了什么OpenTelemetry 导出的会话轨迹
已知漏洞为何未修扫描结果的 dismissal 记录
某个动作是否被允许hook 决策日志(判定 + 时间戳)

模型部署侧,原文指向 Bedrock / Vertex / Foundry,用于满足企业网络与合规要求。

05运维闭环:把 SPC 搬进发布后

Maintain 阶段的做法是把统计过程控制的分级响应直接用作 agent 的触发条件。探测是确定性脚本,判定规则来自 Western Electric rules,阈值写在 bands.yaml 里;被触发的动作按偏离程度分三档。

3σ · 提出方案或执行动作 2σ · 触发诊断 1σ · 仅记录 新的 intent.md 回到 Stage 1 探测由确定性脚本完成(Western Electric rules);阈值写在 bands.yaml;agent 只在被触发时进入。 原文表述:a trigger invokes Claude with no person in the invocation path.
图 1 — 控制带分级与闭环回灌。依原文所述的 1σ / 2σ / 3σ 三档响应绘制。

06采纳次序:按依赖排,不按阶段排

原文明确区分了两件事:“The plays are listed with stage; the arrows give the order to adopt them in. The two are not the same.”

照 Plan→Maintain 的阶段顺序推进,会在 CI/CD 集成和持续 eval 处踩空——它们的前置条件在别的分支上。

意图捕获 intent.md · 无前置 institutional context CLAUDE.md · 无前置 hooks 作为审批闸门 前置:审批要求清单 需求与设计合并 ← intent.md + skills plan mode ← intent.md / spec.md + CLAUDE.md 反馈回路 ← CLAUDE.md + 测试命令 持续 eval ← CLAUDE.md + 反馈回路 PR 评审回路 ← CLAUDE.md + skills + subagents CI/CD 集成 ← PR 评审 + hook 闸门 维护与闭环 ← intent 格式 + 评审闸门 + 回滚路径
图 2 — 按原文所列前置条件重绘的采纳依赖图。红框为不依赖其他 play 的入口点(原文将无前置的 play 称为 clay plays);CLAUDE.md 作为根节点是本图的画法,原文将其列为多个 play 的前置。

07度量:两类必须成对

类别原文列举读法
先行 / 速度 想法到 intent.md 提交的时长;intent.mdspec.md 的提交间隔(取 git 时间戳);首次实现即合入的 PR 占比;首次评审到达时长;控制带击穿到进入 triage 队列的时长 全部可从版本库与 PR 元数据直接算出,不依赖自陈。这是这套度量能被审计的原因。
滞后 / 质量 intent.md 进入 Stage 2 的存活率;spec.md 提交晚于首个 plan.md 的占比(返工识别);每改动返工轮次;每 PR 评审时长;每人每周合并改动数;CI 失败率的 30 天滚动基线;上线后 5xx 比例;PR 周期时间趋势;同类事件重复率 「每人每周合并改动数」必须与返工率同读——原文对此有明示。单看吞吐会把返工计成产能。

另有两处结构性提示:仓库需要为 intent/.claude/(skills / hooks / agents)安排共同归属;对接遗留系统时须选定唯一事实源——仓库、遗留工具、或二者间的显式链接,三选一。

08本页作者的追问(不在原文中)

以下问题是读这份 playbook 时留下的,原文没有给出答案。列在这里是为了与上面各节区分开。

  1. advisory 层的失效如何被观测到skills 不构成拦截,那么「策略被写进 skill 但未被遵循」这件事,除了在 PR 评审里被下游抓到之外,是否有独立的观测手段。文中未述。
  2. 评审者与被评审者同源的问题PR 评审由同一族模型执行,其盲区与生成侧的盲区大概率相关。原文用严重度分层和保留人工评审来缓解,但未讨论相关性本身。
  3. 产物链断裂时的降级路径审计链的强度取决于每个改动都真的经过 intent→spec→plan。热修复、回滚、以及 3σ 触发下的自动动作如何补齐这条链,文中未展开。
  4. eval 套件的维护成本20 到 50 个真实任务是配置回归的基线,但这些任务本身会随代码库漂移。谁在什么节奏上维护它,未述。
3 / 3资深架构师