pstack 的 shipping playbook:为什么 CI 绿色不等于安全,新手也能看懂的验证栈落地指南
pstack 的 shipping playbook为什么 CI 绿色不等于安全新手也能看懂的验证栈落地指南【免费下载链接】pstack-claudeClaude Code, Codex, Copilot, Pi, OpenCode, Gemini, and Prime Agent versions of Potetos pstack. Rigorous agent workflows with Cursor primitives translated for other harnesses.项目地址: https://gitcode.com/GitHub_Trending/ps/pstack-claudepstack shipping playbook 是什么pstack是 Poteto 的一套 AI Agent 工作流技能栈本文以 pstack-claude 移植版为例它为 Claude Code、Codex 等编码智能体提供严格的做事规范。其中shipping playbook发运手册是poteto-mode下最讲究的一套流程当一个 PR 栈全部变绿之后如何安全地把代码真正合入主干。核心结论一句话先说绿色不等于安全——CI 通过、机器人点赞都不代表这个版本真的可以落地。下面带你拆解 pstack 的验证栈思路。为什么绿色检查不是发运安全门槛很多团队的发运流程是这样的CI 全绿 → 机器人 approve → 点击 merge。pstack 认为这里有四个经典陷阱陷阱说明 旧版本的绿绿色检查跑在旧的 head 上代码之后又改了绿的是上一个版本 机器人不是法官审批机器人和 Bugbot 会指出真问题也会报噪音approve 不等于验证⚡ 竞态窗口从看状态到点合并之间分支可能被 rebase、可能被并发修改⏰ 自动合并不受控--auto或 merge queue 在入队时的检查证明不了未来某个版本已通过验证pstack 在 SKILL.md 中把这条写成了不可妥协的规则Green is not safe. Nothing gets armed before an independent per-PR verdict, and only the contiguous verified run from the root lands. 绿色不安全。在拿到每个 PR 的独立裁决之前什么自动合成都不能挂上只有从根开始连续验证过的运行区间才能落地。验证栈的五个核心概念1️⃣ 独立裁决写代码的人不能给自己验货shipping.md 第 2 步要求每个 PR 派一个独立的子智能体在自己的 worktree 里用真实的产品界面驱动技能实际跑一遍功能然后给出三种裁决之一PASS—— 通过PASSNOTES—— 通过但有备注FAIL—— 不通过裁决会连同一组指纹一起记录head SHA、base SHA、base 分支、以及 base 到 head 差异的git patch-id。这样即使之后重写历史也能判断旧裁决是否还适用。2️⃣ 连续验证区间断一截全停验证要连片。从最底层未合并的 PR 开始往上走遇到第一个没有 PASS 的 PR 就停下那个位置叫天花板ceiling。上面有验证过的子 PR、下面有没验证的父 PR子 PR 不能合。因为子 PR 的正确性依赖父 PR 的代码父级没验过子级的一切都是空中楼阁。3️⃣ 先取消再改写防止半路截胡改写分支rebase、force-push、改 base之前必须先取消所有挂起的自动合并请求和队列成员身份。pstack 用ship-pr inspect和ship-pr cancel-pending这对标准操作见 merge-safety.md并且必须读到明确的cancelled结果才动手。取消失败、状态不可用、或者取消过程中有人恰好合了——先停下来核对真实状态绝不硬推。4️⃣ 带头条件的合并消灭最后一秒竞态真正执行合并时pstack 要求用服务端的头条件约束例如 GitHub 的gh pr merge pr --squash --match-head-commit 验证过的 head SHA意思是如果 head 已经不是我验证过的那个 SHA合并直接失败。这堵住了读完状态到点合并之间分支又变了的竞态窗口。需要注意的是merge-safety.md 诚实地指出这个头条件不原子地保护 base 分支并发改 base 的情况要靠流程协调不能假装原子。5️⃣ 落地确认COMPLETE 只是提示不是证据合并成功之后还不能直接推进。pstack 要求读回 PR 的 MERGED 状态、最终 head、目标 base 和 merge commit拉取目标分支用git merge-base --is-ancestor确认 merge commit 真的在目标分支历史里再检查合并后的实际内容。任何一项与验证记录对不上整条链立即停。如何落地Babysit 管前半程Shipping 管后半程pstack 把 PR 的生命周期切成两半边界非常清晰PR 建好 ──▶ [Babysit 值班] ──▶ merge-ready ──▶ [Shipping 发运] ──▶ 确认落地 修冲突/评论/CI 独立验证 带条件合并 不碰合并动作 不挂自动合并 逐层推进前半程babysit.md 负责把 PR 驱动到 merge-ready。规则是只盯最底层未合并的那个 PR、冲突要上报而不由值班者代改、值班循环永远没有合并权限——用户明确说要合才路由给 Shipping。后半程shipping 的 11 步解析 forge → 逐 PR 独立验证 → 找连续验证区间 → 取消挂起合并 → 只准备最底层 PR → 复核证据 → 带条件合并 → 用持久化门禁武装自动合并 → watcher 守前沿 → 确认落地 → 停在天花板。自动合并--auto、merge queue只有在仓库规则层面强制了将要落地的版本必须携带独立裁决 必需 CI时才能启用——检查挂在入队那一刻是不够的因为版本之后会变。没有这种持久化门禁就保持人工守护式合并。配套工具链watch-pr 与 ship-prpstack 把这套流程做成了可执行的工具而不是口头约定watch-prPR 状态监视器位于 watch-pr/cli.ts。它轮询单个 PR、关联栈或不可变队列栈输出结构化裁决READY/WAITING/BLOCKER/ADVANCE/COMPLETE并负责 blocker 分类冲突交给拓扑负责人评论和 CI 交给 PR 负责人人工审批节点则进入等待。ship-pr合并安全操作器落地记录解析逻辑见 shipping.ts。它统一了落地修订LandingRevision仓库 PR 号 head OID base 分支 base OID这个数据结构watcher 和它共享同一份记录保证取消和观察看到的是同一个版本。验证的真来自项目本地的驱动技能用 /create-verification-skill 为你的仓库生成一个verify技能它记录如何启动真实应用、像用户一样操作、并留存证据截图、终端记录、副作用检查。shipping 的独立验证子代理就靠它跑真实表面而不是看测试编译。给新手的三条实践建议给裁决绑定指纹。任何验证通过都记录 head SHA base patch-id改写历史后能用 patch-id 判断审查是否还有效而不是凭感觉。把机器人评论当不可信数据。pstack 的 bugbot-triage.md 给出了三分类fix/dismiss/ask——跳过一条噪音评论很便宜跳过一条真实的数据或安全 bug 很贵拿不准就问人尤其是安全、鉴权、计费、迁移类发现。从确认落地开始练。即使不做完整 11 步合并后养成习惯读回 MERGED 状态 → 确认 merge commit 在目标分支历史里 → 检查合并结果内容。这三步就能拦下大部分以为合了其实没合的事故。延伸阅读资料路径Shipping 完整 11 步plugins/pstack/skills/poteto-mode/playbooks/shipping.md合并与重堆安全plugins/pstack/skills/poteto-mode/references/merge-safety.mdBabysit 值班手册plugins/pstack/skills/poteto-mode/playbooks/babysit.mdpoteto-mode 入口与原则plugins/pstack/skills/poteto-mode/SKILL.mdwatch-pr 命令实现plugins/pstack/skills/poteto-mode/scripts/watch-pr/技能与命令参考docs/reference.md安装与快速上手README.md 一句话总结pstack 的 shipping playbook 把发运从一次点击变成一条可审计的证据链——独立裁决、连续区间、带条件合并、落地确认每一环都有回滚和停下的理由。绿色只是起点验证栈才是终点。【免费下载链接】pstack-claudeClaude Code, Codex, Copilot, Pi, OpenCode, Gemini, and Prime Agent versions of Potetos pstack. Rigorous agent workflows with Cursor primitives translated for other harnesses.项目地址: https://gitcode.com/GitHub_Trending/ps/pstack-claude创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

text-to-cad实战:从自然语言到STEP/URDF的完整链路

text-to-cad实战:从自然语言到STEP/URDF的完整链路

1. 从一句话到三维模型:text-to-cad 到底在解决什么问题第一次听到 “text-to-cad” 这个词,很多人脑子里浮现的画面大概是:对着电脑说一句“给我画个齿轮”,屏幕上就自动蹦出一个带参数的三维模型。这个想象不算离谱,…

2026/10/7 15:19:29 阅读更多 →
gpt5.5-unrestricted.md逐条拆解:8条核心指令如何实现AI破甲

gpt5.5-unrestricted.md逐条拆解:8条核心指令如何实现AI破甲

gpt5.5-unrestricted.md逐条拆解:8条核心指令如何实现AI破甲 【免费下载链接】Codex-5.5-codex-instruct-5.5 项目地址: https://gitcode.com/gh_mirrors/co/Codex-5.5-codex-instruct-5.5 Codex破限 5.5(codex-instruct-5.5)项目的核…

2026/10/7 15:18:29 阅读更多 →
科研论文撰写逻辑建构:硕词AI助力学术写作提质增效的实践研究

科研论文撰写逻辑建构:硕词AI助力学术写作提质增效的实践研究

逻辑是学术论文的核心灵魂,也是评判论文学术水准的核心标准。科研论文的本质是系统性的学术论证过程,从研究问题提出、研究现状梳理、研究方法运用、实证分析到结论总结,全程必须具备严密、自洽、闭环的逻辑体系,做到层层递进、有…

2026/10/7 15:18:28 阅读更多 →

最新新闻

SAP IDOC实战:采购订单自动转销售订单的完整配置指南

SAP IDOC实战:采购订单自动转销售订单的完整配置指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/7 15:59:26 阅读更多 →
SSM答题小程序源码实战:从环境搭建到微信小程序对接的完整避坑指南

SSM答题小程序源码实战:从环境搭建到微信小程序对接的完整避坑指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/7 15:59:26 阅读更多 →
AD20四层板智能车PCB设计实战:层叠布局与信号完整性

AD20四层板智能车PCB设计实战:层叠布局与信号完整性

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/7 15:59:26 阅读更多 →
Sigrity POWER DC电源完整性仿真建模全解析

Sigrity POWER DC电源完整性仿真建模全解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/7 15:59:26 阅读更多 →
Modbus数据模拟实战:从协议原理到自动化测试全解析

Modbus数据模拟实战:从协议原理到自动化测试全解析

1. 搞工控不懂Modbus数据模拟,等于白干干工控这行十几年,我越来越觉得Modbus协议就像工业自动化领域的普通话——你可以不用,但你不能不会。而Modbus数据模拟,则是从入门到精通的必经之路。不管你是刚入行的电气小师弟&#xff0c…

2026/10/7 15:59:26 阅读更多 →
观察级ROV机械手臂选型与实操:自由度、驱动及维护排障

观察级ROV机械手臂选型与实操:自由度、驱动及维护排障

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/7 15:58:25 阅读更多 →

日新闻

ROS2机械臂仿真与运动控制:从URDF建模到Gazebo实战全解析

ROS2机械臂仿真与运动控制:从URDF建模到Gazebo实战全解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/7 1:01:58 阅读更多 →
用浏览器直接改ESP32的WiFi密码:NVS键值配置工具设计与实现

用浏览器直接改ESP32的WiFi密码:NVS键值配置工具设计与实现

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/7 1:02:00 阅读更多 →
芯片封装缺陷检测:扫描声学显微镜(SAT)原理与实操指南

芯片封装缺陷检测:扫描声学显微镜(SAT)原理与实操指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/7 1:02:00 阅读更多 →

周新闻

KT148A语音芯片外挂8002D功放的工程实践指南

KT148A语音芯片外挂8002D功放的工程实践指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/7 14:34:12 阅读更多 →
LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/7 14:34:13 阅读更多 →
ARM架构深度解析:从RISC设计理念到交叉编译实战

ARM架构深度解析:从RISC设计理念到交叉编译实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/7 9:29:10 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/7 14:34:12 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/7 11:43:46 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/7 13:34:55 阅读更多 →