非官方介绍 · 对照 2026-10-15 的仓库

先把一件事做透

pstack 是 Lauren Tan(@poteto)为 Cursor 写的一套工程方法。不是 Linux 里那个打印调用栈的 pstack,也不是新模型。装上之后,agent 按写好的流程执行,每个决定都要能落到一条原则上。

她反对为了显得在干活而堆代码。代码量不能代替可核对的结果。先让一个 agent 把一件事做完,再并行,才站得住。

和直接下指令差在哪里

常见的技能包像一份菜单,从需求、实现到提交都要你自己点。pstack 把阶段写进流程。你要给出的是结果,以及怎样算做完。中途要纠偏,直接说原则的英文名。这通常比再补一段操作步骤更准。

只说一句「帮我修这个 bug」。

先复现,再追到第一次出错的地方,并用跑起来的结果证明修好了。编译通过不算修好。

在提示里规定:先看代码,再设计,再写。

技能顺序已经写在流程里。你再排一遍,通常会漏步,或者把顺序打乱。

agent 说「构建通过了」,就当成做完。

分开写:哪些是测到的,哪些是推断,哪些只是猜测。跳过的步骤留在任务清单里,并写明原因。

同时开很多 agent,碰运气。

先让一个 agent 做完一件事,并交出可核对的结果。这一步成立之后,再并行。

先写一份很长的计划。

默认不写计划。她认为最好的规格就是代码。只有你明确要求计划,才走「分阶段」,而且那一套只写计划。

改一行也停下来问要不要做。

可逆的改动直接做,再把结果给你。删数据、部署、强制覆盖已有提交,必须先停。

三样东西,职责不同

流程(playbook)是一类任务的步骤,写在 Markdown 里,不是斜杠命令。技能(skill)是有名字的动作,例如 /how。原则(principle)是中途纠偏用的短规则,一般也不由你来调用。

  1. 01

    流程

    playbook · 23 套

    一类任务的固定步骤。对上任务之后,步骤会原样写进任务清单,排在你自己的事项前面。调查、修 bug、改进一个指标、看 PR、过夜跑完,各有一套。

  2. 02

    技能

    skill · 30 个

    有名字的动作。/how 讲代码现在怎么工作,/architect 先定类型和模块边界,/interrogate 让不同模型审同一份改动。多数时候不用你点。流程走到那一步,会自己调用。

  3. 03

    原则

    principle · 24 条

    很短的决策规则。你说 “subtract before you add”,比再写一段操作说明更准。回复里必须写明:这条规则改了哪一个决定。

如果只报了原则的名字,却说不出它改变了哪一个决定,这句话就没有用。作者写过:这种只报名字的回复,可以直接忽略。

提需求时写什么,不要写什么

要写

  • 要它交付什么。
  • 怎样算做完,而且你自己能判断。
  • 你希望看到的证据。
  • 你已经知道的线索。
  • 真正的约束,例如先复现、先不要改代码、行为不能变。

别写

  • 不要自己排步骤。流程里已经有顺序。你再排一遍,容易漏掉一步,或者把顺序打乱。
  • 不要先说你猜的原因。模型容易只在你指的地方找,问题可能在别处。
  • 不要写「先用 /how,再用 /architect,再用 /arena」。流程已经指定每一步用哪个技能。只有你想换掉某一步的默认技能时,才写出那个名字。

这种任务会进哪套流程

只看不改

investigation.md · 这是流程文件,不是一条命令

把「先不要改代码」写进目标。它会走只看不改的流程,而不是顺手去重构。

这套流程负责:用来回答只看、不改的问题,比如某段代码怎么工作、为什么做成这样、我们是否确定。这一套不改代码。

30 个技能

右侧数字是英文原文的大约词数。词数决定它读进上下文后占多少位置,不是质量分。红标是 0.15.23 到 0.15.25 新增或刚改过的,更早的版本里可能没有。

总入口

/poteto-mode · 原文约 3153 词

你给出结果。它选择流程,把步骤原样写进任务清单,需要时再调用其他技能。没有证据,不会宣称做完。

适用:只要这件事需要认真做,就从这里开始。其他技能大多不用你单独去点。

/poteto-mode 这个 PR 有个很隐蔽的问题:页面空闲时,滚动条每 750 毫秒漂一次。先复现,再修,并用跑起来的结果证明已经修好。
  1. 1先读原则列表,再从 23 套流程里选一套。
  2. 2把这套流程的步骤原样写进任务清单,放在你自己的事项前面。如果要跳过某一步,这一行会留下来,并写上跳过的原因。
  3. 3走到哪一步需要哪个技能,就调用哪个。回复里要写明:用了哪条原则,这条原则改了哪一个决定。

写技能时可以借鉴:入口应该负责把任务分到正确的流程,而不是给你一份命令菜单。记住一个名字就够了。

23 套流程,都在 /poteto-mode 里面

这些不是可以单独输入的命令。用上某一套之后,步骤会原样写进 Cursor 的任务清单。你也可以直接说人话,例如「看一下这个 PR」「把这串提交合进去」。这段对话如果没先进 /poteto-mode,同名说法可能会走到 Cursor 自己的功能,那就不是 pstack 的流程。

只看不改

poteto-mode/playbooks/investigation.md

用来回答只看、不改的问题,比如某段代码怎么工作、为什么做成这样、我们是否确定。这一套不改代码。

可以这样说

/poteto-mode 先不要改代码,讲清楚取消一次运行是怎么做的。

24 条原则,用来中途纠偏

每条原则是一个单独的文件。短的只有一两句,长的有几百个英文词。你不用背。看到方向不对,说出英文名即可。全文已经在上下文里,报出名字往往比你再解释一遍更准。Lauren 认为这是整套方法里最值得留下的部分。模型更强以后,很多现在写得很长的技能,可能会收成这种短规则。

能少就少做

Laziness Protocol · /principle-laziness-protocol · 原文约 80 词

优先删掉不需要的代码,只做能把问题解决掉的最小改动。少写几行,比套一套看起来很正式的模板更好。

可以直接说

按 laziness protocol。先别加这个抽象层,只做能把问题解决掉的最小改动。

装好以后怎么开始

  1. 01

    在 Cursor 的对话里安装

    装的是这个插件,不是换一个模型。

    /add-plugin pstack
  2. 02

    选定推理预算,以及每个角色用哪个模型

    预算是让模型想多久,四档:不限、大、中、小。默认是大。确认后写成一条规则,之后每次对话都会带上。这一步做完要新开一个对话,规则才会生效。

    /setup-pstack
  3. 03

    每个任务从总入口开始

    在斜杠菜单里选中它,再按 Option+Enter(Mac)或 Alt+Enter(Windows),它会变成自定义模式,之后每一轮都带着。只按回车,只对这一条消息生效。拿不准用哪个技能,问 /poteto-help。它只回答,不会开工。

    /poteto-mode

模型怎么分工

pstack 不绑定某一个模型。默认是:写代码交给 Grok,包括做功能、重构、修 bug、查性能,以及反复改进一个指标。最难的改动、写作和判断交给 Opus 5.5。评审时默认这两家各出一份意见。用 /setup-pstack 可以改成你账号里实际能调用的模型。某个角色设成 auto,就和当前对话用同一个模型。

两个子代理

选流程、记任务清单的,是你正在聊的这个窗口。需要分出去的事交给 poteto-agent。它会先把原则读完。如果换成 Cursor 默认的 generalPurpose,这些原则不会带上,后面就容易走偏。审注释用的是另一个只读子代理,叫 Comment Sicko。用 /no-comments 调用它,不要自己直接点这个子代理。

可逆的直接做,不可逆的先停

改完还能撤回的事,它不会停下来问。先做,再把结果给你。删数据、部署、force-push 已有提交、给客户发消息,这些必须先停。新开子代理时,默认另开一段干净的上下文,并把最初的需求和后来补充的要求一起带上。接着用原来那段很长的对话,后补的要求容易丢掉。

默认不先写长计划

Cursor 的计划模式可以和 pstack 一起用。pstack 里没有单独的「先写计划」技能。Lauren 的原话是:最好的规格就是代码。只有你明确说要计划,才走「分阶段」。那套流程只写计划,不会接着把功能做出来。

有几样东西流程里会提到,但没有装在这个插件里。/deslop,以及操作命令行和界面的 control-cli、control-ui,都在 cursor-team-kit。要完整的一套,把那个插件也装上。Cursor 自己有一条 /babysit。进入 /poteto-mode 之后,看 PR 以 pstack 的流程为准。另外还有一套叫 benny 的自动化,默认不是斜杠命令,用来整理问题报告,并拿界面上的证据去修。需要的话按仓库说明单独装进项目。