pstack 架构拆解
H04 / 十层 · 整个套件的根

147 行,管住
另外 49 个目录

poteto-mode/SKILL.md 是 pstack 唯一的根文件。它不干活,它决定什么时候让谁去干。 结构上它就是一条流水线:先列不可协商的触发器、然后给出判断标准和自主权边界、 再定派生和文风纪律,最后才是剧本表。

图 4-1根文件的剖面(按真实行号)

左边是文件里的实际章节顺序,右边是每一节把控制权交给谁。读这张图等于读整个套件的调用图。

poteto-mode/SKILL.md · 147 行 控制权交给 L1–9 frontmatter 七个键 mode / icon / reminder / 关掉自动触发 H03 装载层(宿主读这一段) L13–36 Non-negotiables 不可协商 18 条"遇到 X 就必须走 Y"的触发器,跨剧本生效 H05 剧本 + H06 原则 + H07 扇出(unslop / deslop / interrogate) L38–79 Principles 原则索引 24 条,分五组:Core / Architecture / Verification / Delegation / Meta H06 原则层(叶子文件) 引用时必须点名 + 说改了什么决定 L81–89 Autonomy 自主权 Just do it / Always pause / No is acceptable 交回给人(只有不可逆写) force-push、部署、删数据、发客户消息 L91–99 Subagents 派生纪律 默认全新子代理,不接力 H07 扇出 · subagent_type: poteto-agent 每个 Task 默认 run_in_background: true L101–113 Writing the reply 写法 7 条硬规则,含"禁止长破折号" H07 unslop(同一套句法纪律) 每个剧本的最后都产出一段这种回复 L115–117 Comments 注释 只留代码show不出来的 why H07 no-comments(/no-comments) L119–147 Playbooks 剧本表 原文:"copy its steps in verbatim" —— 23 个剧本的路由表 H05 Playbook 层 兜底:没有合适剧本 → figure-it-out 为什么这一层是"根" 它自己不执行任何步骤。它只做四件事:①列触发器 ②给判据 ③划自主权边界 ④派活。 其余 49 个目录都是它某一节的被指向方。所以删掉任何一个技能,根文件不会报错——这正是纯文字架构的代价(H02 代价 1)。
图 4-1 · 行号区间取自上游 pstack/skills/poteto-mode/SKILL.md(147 行,提交 e43c7ee);节顺序与原文一致。注意:根文件里没有模型表这一节,角色默认值写在 Subagents 段里,完整覆盖表由 /setup-pstack 另外生成(H08)。

4-2Non-negotiables:整套件最密的一节

18 条触发器,每条都是"一旦出现某个信号,必须跳到某个文件"。它比剧本更高优先级,因为剧本要先被选中才会跑, 而这些是跨剧本恒真的。几条代表性的:

触发信号(原文摘要)强制跳转落在哪层
非平凡改动、架构决定、"are we sure?"how 技能H07
准备用 AskUserQuestion 问"哪种做法",而答案其实可观测不许问,先跑 Prototype 剧本让结果说话H05
任何散文输出(包括给用户的回复)unslopH07
提交之前deslop —— 来自 另一个插件 cursor-team-kit,不在 pstack 里H07
评审之前no-commentsH07 + H10
你自己量出了一个加速比或回归数字benchmark-checklist,先别报H06
任何 PR 状态询问("check on PR X")Babysit 剧本,并点名"不要用 Cursor 自带那个同名技能"H05
Bugbot 或安全评审留了评论逐条判断,用具体理由驳回噪音,不许闷头改代码H05
长任务、无人值守、"我要去睡了"show-me-your-work 记决策链H10
任务中途发现某个技能坏了给它单独开一个 PR 修。不阻塞。也不悄悄绕过H06

4-3Autonomy:它把"什么时候该停下"写成三档

第一档 · Just do it
直接做
可逆工作和外部动作不用问:任何 MCP 工具、发团队消息、更新 ticket、启动 eval。
第二档 · Always pause
必须停
不可逆写:向共享分支 force-push、部署、删数据、发给客户的消息。
第三档 · Session override
人可临时放宽
"Don't stop"、"going to bed"、"be fully autonomous" → 继续跑。但第二档的 Always-pause 清单仍然有效。
同一节还有一句反讨好的硬规定:"No is an acceptable answer." 它明确要求:被问意见时给出真实判断,可以拒绝、可以反驳、可以说"这个改动不值这个位置"。 推荐是判断,不是求认同。这一句是整套件里少数直接针对模型性格而非流程的指令。
本层的检验问题:Non-negotiables 和 Playbooks 都在"决定下一步做什么",差别在哪? 答:前者是恒真的跨流程规则,后者是某一类活的完整步骤。下一层 H05 就把剧本层摊开。
上一站← H03 装载与入口