Cursor 的护城河正在漏:pstack 开源后,技能生态开始流向所有编辑器
【免费下载链接】pstack-claudeClaude Code, Codex, Copilot, Pi, OpenCode, Gemini, and Prime Agent versions of Poteto's pstack. Rigorous agent workflows with Cursor primitives translated for other harnesses.项目地址: https://gitcode.com/GitHub_Trending/ps/pstack-claude
AI 编程工具竞争到 2026 年,真正值钱的东西早已不是"能补全代码的模型",而是沉淀在编辑器里的那套 Agent 工作流:什么时候该拆子代理、什么时候该先写失败测试、跨函数边界改动之前先做什么、合入 PR 之前要过哪些验证关卡。Cursor 靠着 pstack 这套被实战打磨过的技能栈(skill stack),一度把"工程纪律"做成了自己的独家体验。如今开源移植版 pstack-claude 出现了——它把同一棵 skills 树原样翻译到 Claude Code、Codex、GitHub Copilot、Pi、OpenCode、Gemini CLI 与 Prime Agent 七种运行时。护城河的水位,正在肉眼可见地下降。
这篇文章不做情绪化断言,只做两件事:拆开仓库看这套移植到底动了 Cursor 的哪块蛋糕,以及它外溢之后,普通开发者能从里面拿到什么真东西。
一、Cursor 技能生态为什么值钱
先搞清楚 pstack 到底是什么。它是 Lauren Tan(poteto)为 Cursor 设计的一套"观点鲜明"的 Agent 技能栈,核心是一个叫poteto-mode的入口技能:你告诉它目标,它根据任务类型自动选择正确的 playbook 执行。它承诺的不是"多写代码",而是"写更少、但质量更高的代码"——仓库 README.md 开宗明义。
这套技能栈的价值密度,体现在三个层面。
第一层是 Playbook(作战手册)。仓库把软件开发过程拆成了 20+ 种可复用的工作流:修 Bug(复现 → 根因 → 委派修复 → 回归验证)、性能问题、功能开发、重构、原型、PR 维护、发布(shipping)、跨阶段多 PR 叠加规划(multi-phase-plan)、甚至"托管一个持续数天、几十上百个子代理的大项目"的 Orchestrate 模式。每个 playbook 不是一句口号,而是可逐条执行的步骤清单。poteto-mode/SKILL.md 明确要求:匹配到哪个 playbook,就把它的步骤逐字抄进 todolist,跳过任何一步都必须写skip: <reason>。这意味着 Agent 的行为是可审计的,而不是碰运气。
第二层是 24 条工程原则。从"懒惰协议"(倾向删代码而不是加抽象)、"攻击前提"(重复出错的修复共享一个错误假设)、"用类型让非法状态不可表达",到"证明它能工作"(对真实产物验证,而不是"它能编译")。每条原则都对应 principle-* 目录下的一份独立 SKILL.md,Agent 应用某条原则前必须先读对应的叶子文件——防止原则沦为空泛口号。
第三层是多模型互审机制。arena(N 个模型并行出方案再择优嫁接)、architect(跨函数边界改动前的并行设计探索)、interrogate(三个不同模型从独立角度攻击同一个 diff)。这些机制吃的不是单个模型的能力,而是模型多样性本身。interrogate的技能描述写得很直白:"对抗信号来自模型多样性,而不是分配的角色人格"(interrogate/SKILL.md)。
这套东西在过去很长一段时间里是 Cursor 的独家体验。技能里的工具名、模型名、配置路径全部绑定 Cursor 生态,换一个编辑器,整套工作流就散架了。这就是护城河。
二、pstack-claude 动了谁的蛋糕
pstack-claude 的仓库描述只有一句话,但信息量极大:"Claude Code, Codex, Copilot, Pi, OpenCode, Gemini, and Prime Agent versions of Poteto's pstack. Rigorous agent workflows with Cursor primitives translated for other harnesses."
关键词是translated——不是重写,是翻译。这个移植项目的核心工程决策,是让所有运行时共享同一棵 skills 树(plugins/pstack/skills/),而不是为每个编辑器各维护一套技能。目前这棵树上长着 58 个技能目录:34 个公开技能加 24 个principle-*原则引用(docs/reference.md)。技能内容只写一遍,翻译发生在工具名和模型名这一层。
上游同步是这门生意的地基。tools/upstream.json 把上游 Cursor 的 pstack 钉在df58112(v0.15.15),并声明了排除清单(Cursor 专属自动化、sticky-mode 元数据、Grok Bot UI 工作流等)。tools/substitutions.json 存着整套 Cursor→Claude 的改写规则——Task工具改名为Agent、AskQuestion改名为AskUserQuestion、~/.cursor/rules/映射为CLAUDE.md导入、~/.cursor/projects/*/映射为~/.claude/projects/,连"云代理"这种 Cursor 专属概念都被改写成"本地子代理 + 每写者一个 worktree"。规则之外还有一份 denylist,凡是 Cursor 专属 token 漏网(grok-、/goal、agent-transcripts等)都会被 CI 拦下。
分叉策略被显式声明,而不是悄悄改。tools/forks.json 逐文件登记了每个分叉的类型(policy或port-feature)、原因和起始版本。比如architect的分叉是"要求在每个实现单元收尾前对照已保存的草图与理由,记录被接受的偏差";create-verification-skill的分叉是"把生成的技能命名为verify以替换 Claude Code 自带的 /verify"。这种"上游同步 + 命名分叉"的双轨制,让移植版既能跟着 Cursor 迭代走,又能长出适配新运行时自己的特性,而不会被git pull冲掉。
安装体验是外溢的第一道口子。Cursor 用户装技能需要进自家生态,而 pstack-claude 给了每个运行时原生命令:
# Claude Code /plugin marketplace add michael-denyer/pstack-claude /plugin install pstack@pstack-claude # Codex codex plugin marketplace add michael-denyer/pstack-claude codex plugin add pstack@pstack-claude # Pi pi install git:github.com/michael-denyer/pstack-claude # GitHub Copilot copilot plugin marketplace add michael-denyer/pstack-claude copilot plugin install pstack@pstack-claude甚至可以不克隆仓库、零本地残留,一行命令装齐全部技能:
npx skills add https://github.com/michael-denyer/pstack-claude/tree/main/plugins/pstack/skills --skill "*" --agent "*" --yes(docs/reference.md 的 "Install with the skills CLI" 一节,CI 自己也用这条命令做安装校验。)
三、多运行时适配对 Cursor 商业化的影响
如果说上面是"广度",那"深度"才是真正扎心的地方——移植不是把技能文件丢过去就算完,而是把每个运行时缺的能力用工程手段补齐。这分三层。
第一层:自动路由钩子。Cursor 里 pstack 靠编辑器自动注入规则生效,其他运行时没有这个机制。pstack-claude 的做法是:同一份路由指令(session-start-context.md),由 session-start.sh 在 Claude Code、Codex、Copilot 的 SessionStart 钩子中注入(Windows 上用 session-start.ps1 适配 PowerShell);在 Pi 上则由扩展在每个 agent 启动时注入系统提示词,所以压缩上下文后路由指令依然存活(docs/pi-equivalence.md H01/H04 行)。路由规则本身也很克制:改动超过一个文件、涉及设计决策、未知原因的 Bug 或性能问题,才升级到poteto-mode;小任务直接干。
第二层:工具名与模型名的翻译表。技能文件是按 Claude Code 的工具语言写的(Skill、Agent、AskUserQuestion),其他运行时各有一份专属映射:Codex 用 codex-tools.md(Agent→spawn_agent、todolist→update_plan、AskUserQuestion→纯文本提问),Pi 用 pi-tools.md,Copilot 用 copilot-tools.md。映射表不止翻工具名,还翻模型:技能里写的opus、fable、sonnet、haiku这类 Claude 家族名,在 models.json 里各有一张 provider 表——Anthropic 会话解析成anthropic/*ID,ChatGPT 登录的 Pi 会话解析成 GPT-6 系列,OpenAI Codex 登录则解析成openai-codex/*ID。
第三层:原生能力缺口的最小补齐。最典型的是 Pi。Pi 没有 Claude Code 的Agent工具、AskUserQuestion、ScheduleWakeup和/loop,pstack 的 Pi 扩展 就把这些能力以扩展形式补上:agent工具派生一个子pi --mode rpc进程、ask_user_question做固定选项提问、schedule_wakeup支持自定节奏唤醒、/loop支持定时循环。每个机制的等价性都被逐项验证,docs/pi-equivalence.md 用一张 62 行的表格记录每个 Claude Code 机制在 Pi 上的对应实现、状态和实测证据,并且配套测试 tests/pi-equivalence.test.mjs 会强制校验表格里每一行都有合法状态、每个extension/script行都指向真实存在的测试。
这就是对 Cursor 商业化最实质的冲击:技能栈不再依赖编辑器运行时,而是反过来定义了一个"运行时之上"的抽象层。此前"在 Cursor 里积累的工作流资产换工具即失效"是它的隐性绑定;现在这份资产被显式拆成了"技能内容(共享)+ 运行时翻译(按 harness 实现)",资产本身中立化了。谁的服务最便宜、最开放,谁就能承接这份外溢的技能生态。Cursor 卖的不再是"独家工作流",而只剩"体验最好的一份实现"。
四、生态外溢对普通开发者的红利
站在普通开发者视角,这件事的红利很具体,不是抽象的"开源精神"。
红利一:隐私与零依赖的默认设计。仓库的 Data handling 一节写得很干脆:pstack 没有服务器、没有遥测(README.md)。技能要求 Agent 读取的任何东西(包括会话记录)只会发给你的模型提供商;脚本全在本地运行,PR 工具用的是你自己的 GitHub CLI 登录态。对比一些"工作流即服务"的云端方案,这是完全不同的信任模型。
红利二:可验证性被当成一等公民。show-me-your-work技能让 Agent 把每个决定写进一条 TSV 决策轨迹——每个决定一行,记录时间、阶段、决定、理由、证据和结果,你可以像批改作业一样逐行审计(decision-log-template.tsv)。correct技能则专门处理"Agent 反复犯同样的错":先给每个错误类别找到最高效的封堵层级——架构消除 → 类型约束 → lint 与 CI → 测试 → 文档(correct/SKILL.md),并强制每个新检查在真实的历史错误上先失败一次。甚至连并发与不变量这类测试够不到的问题,仓库还单独维护了 TLA+ 模型(tla/)和 Lean 证明(lean/),把"验证"从口头承诺推进到形式化方法。
红利三:技能栈可以自我进化。reflect(把一次长任务的教训沉淀成技能修改)、automate-me(从近期会话草拟你自己的专属 -mode 技能)、authoring-a-skill与eval(教你怎么写 SKILL.md、怎么用受控实验验证技能真的改变了 Agent 行为)。技能不再是只读的"别人给的包",而是一套可以随你的工程实践持续生长的体系。这恰恰是 pstack 这套设计最反直觉的地方:它声称"少写代码",但把你沉淀工程纪律的能力放大了。
红利四:上手成本被压到一条命令。不订阅 Cursor、不克隆仓库,npx skills一行装完,Claude Code、Codex、Pi、OpenCode、Gemini CLI 通吃。技能目录在~/.agents/skills/下共享,换工具不换技能(docs/reference.md 的 shared skills installation 一节)。对只想先试水的开发者,这是一个近乎为零的尝鲜门槛。
结语:护城河的形态在变
pstack-claude 没有"打败" Cursor——它的上游同步机制(钉住df58112、用 substitutions 规则跟随演化)恰恰说明它依然把 Cursor 当作事实上的上游与创新源头。但它确实改变了竞争格局的底层逻辑:技能生态第一次与编辑器解耦。当 58 个技能目录、24 条工程原则、多模型互审机制和整套可验证工作流能在七种运行时上以近乎一致的行为运行,Cursor 的护城河就从"专有资产"变成了"最先、最好的实现"。对开发者来说,这也许是比任何模型更新都更重要的一件事:你积累的工作流知识,终于可以跟着你走,而不是被锁在一家编辑器里。
【免费下载链接】pstack-claudeClaude Code, Codex, Copilot, Pi, OpenCode, Gemini, and Prime Agent versions of Poteto's pstack. Rigorous agent workflows with Cursor primitives translated for other harnesses.项目地址: https://gitcode.com/GitHub_Trending/ps/pstack-claude
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考