@jiangkoumo/pi-pstack0.3.13
Pi adaptation of pstack engineering skills, workflows, and bounded autonomous execution
Untested on omp
This is a pi package. No one has reported whether it works on omp yet. If you try it, add your result below.
Reports 0
No reports yet.
Readme
pi-pstack
把 Lauren Tan(@poteto)为 Cursor 写的 pstack 移植到 Pi coding agent。
pstack 是一套工程方法:24 条工程原则、23 个工作流程(调查、修 bug、做功能、重构、自主运行……)、独立审阅、多模型分工,以及形式化验证。这个包把它们做成原生的 Pi 技能和扩展,装上就能用。
非官方移植。上游固定在 pstack 0.15.30(
eb4db2b5)。
能做什么
/poteto on:开启后,Pi 会按 pstack 的流程干活:先判断任务类型,再走对应的工作流程,关键步骤停下来等你批准,不会自动 commit 或 push。- 独立审阅与分工:配合
pi-subagents,代码由pstack.poteto-agent在隔离 worktree 里写,pstack.comment-sicko只读审阅,pstack.verifier在沙箱里跑测试。每个角色可以用不同的模型。 /loop:有轮数上限的长任务续跑,每轮跑一次你给的检查命令(比如npm test),通过就停。- 形式化验证:
/skill:create-formal-verification-skill为你的项目生成 TLA+ 模型和真实代码检查,完成前会自动重跑并核对结果。需要 Java 和 TLC,没有也能用其余功能。 - 单独使用的技能:
correct、tdd、how、architect、sharpen、ketchup、recall、statechart等。
安装
pi install npm:@jiangkoumo/pi-pstack
# 可选:多代理审阅和委派需要它(0.79.x)
pi install npm:pi-subagents
装完重启 Pi。没装 pi-subagents 时,单代理功能全部可用;需要独立审阅的流程会降级为自审,并明确标注 BLOCKED: independent review,不会冒充独立审查。
快速上手
# 开启 pstack 模式,然后照常提需求
/poteto on
/poteto status
/poteto # 无参同 status
/poteto off
# 只对当前请求显式调用技能,不改变持续模式
/skill:poteto-mode "调查这个 worker 的内存增长"
# 给不同角色配模型(provider/model + thinking 级别)
/setup-pstack set project code <provider>/<model> high
/setup-pstack set project review <provider>/<model> high
/setup-pstack status
# 有界续跑:最多 6 轮,npm test 通过就停
/loop run --max-turns 6 --until "npm test" "fix the edge cases in parser"
/loop status
/loop stop
# 直接调用某个技能
/skill:how "这个 worker 的内存是怎么涨上去的"
/skill:sharpen "refactor caching layer"
/skill:create-formal-verification-skill "queue concurrency invariants"
/poteto-mode 是兼容别名,在 0.3.x 和 0.4.x 保留,每次执行先提示弃用,将在 0.5.0 移除。Pi 1.4 的公开命令 API 不支持隐藏补全,因此旧入口仍可见,描述以 [已弃用] 开头。技能入口继续使用 /skill:poteto-mode;原有模式状态无需迁移。
几点说明:
- 可配置的角色有
code、bug-fix、perf、hillclimb、judgment、strongest、review、prose、verification。没配的角色不会静默换成别的模型。 - 用户级配置在 Pi agent 目录的
pstack.json,项目级配置在.pi/pstack.json,项目级优先。subagents.agentOverrides.<name>可以单独覆盖某个代理。 - 调用 pstack 代理时不要传顶层
model参数,会被拦下,以保证各角色用你配的模型。 /loop要在 TUI 或 RPC 模式(pi --mode rpc)下用,pi -p和--mode json不支持。默认拒绝在有未提交改动的工作区启动,可以加--allow-dirty。
和上游的对应关系
上游 85 项全部有去处:
| 类别 | 数量 | 处理方式 |
|---|---|---|
| 工程原则 | 24 | 移植 |
| 工作流程(playbooks) | 23 | 移植,去掉自动 commit,加上 Pi 的授权门 |
| 技能 | 31 | 移植,接入角色模型与只读工具白名单 |
| 代理 | 2 | 移植(poteto-agent、comment-sicko),另加 verifier、prose-writer 等角色代理 |
| 替代 | 5 | Benny 三项自动化、make-bot-ui、setup-pstack(改成扩展命令) |
逐项对照见 port-map.json 和 skill-audit.md。上游正文按句子做保真度检查,整体不低于 94%(npm run check:fidelity)。
安全边界
- 不会自动 commit、push 或开 PR,这些都要你批准。
- 审阅代理只有读文件和只读 git 工具,没有
edit、write、bash。 verifier在 macOS/Linux 的 OS 沙箱里跑测试,禁网、不能写仓库。没有沙箱时会退到临时 git 工作区执行,并明确提示这种情况不算隔离验证。- TLC 只能通过受限入口启动你配置的那个 jar,只接受仓库内的
.tla/.cfg和白名单选项。
更多文档
许可证
MIT。pstack 原文版权归 Lauren Tan,许可证见 LICENSES/pstack.txt,完整第三方声明见 THIRD_PARTY_NOTICES.md。