.pi/ 目录里装着 4 个扩展和 5 个 prompt,pi 的维护者用它们开发 pi。其中一个扩展的职责,是把 CI 里 pi 分析 issue 产生的会话导入到本地复现。判断「self-extensible」是不是空话,最快的方法不是读 README,是看项目自己用不用。
| 路径 | 内容 |
|---|---|
.pi/extensions/ | redraws.ts(TUI 重绘统计)、tps.ts(token/s)、prompt-url-widget.ts、import-repro.ts |
.pi/prompts/ | wr.md、pr.md、sa.md、cl.md、is.md |
.pi/skills/ | add-llm-provider.md |
* Import a pi session shared as a gist by the issue-analysis CI workflow
* (.github/workflows/issue-analysis.yml) and switch to it.
*
* The CI job runs in a high-entropy checkout directory; this command rewrites
* the recorded cwd to the local checkout, installs the session file into the …
对应的 CI workflow 第一行写明触发条件:当 issue 被打上 pi-analyze 标签时,对该 issue 跑仓库自己的 /is prompt。issue-analysis.yml:1
把这两端接起来,闭环是:issue 打标签 → CI 用 pi 分析 → 会话作为 gist 发布 → 维护者用 pi 的一个扩展把该会话导入本地 → 在本地继续那次调查。会话(第 07 章)在这里成了 CI 与本地之间的交换格式。
.pi/prompts/*.md 是可被 /名字 调用的 prompt 模板,带 YAML frontmatter(description、argument-hint)。以 sa.md(更新安全公告)为例,它写了完整的调查流程、CVSS 讨论步骤、草稿格式、以及一组安全规则——包括「不要用浏览器会话或 cookie 去抓公告评论」和「绝不假装读过评论」。
这类模板与 第 17 章的 AGENTS.md 属于同一类资产:把重复性的、容易出错的工作流固化成文本,交给 agent 执行。区别是 AGENTS.md always-on,prompt 模板按需调用。
.pi/skills/add-llm-provider.md——把「给 pi 加一个新 provider」这个高频且有固定套路的任务写成了 skill。文档对 skills 的第一句话是:「pi 可以创建 skill。让它给你的场景做一个。」skills.md:1
一个扩展系统可以很完备但没人用。.pi/ 目录的存在把这个问题变成可验证的:4 个扩展全是为解决维护者真实痛点而写的(重绘卡不卡、token 速度多少、issue 怎么复现),不是示例代码。
更进一步:redraws.ts 只有 24 行。一个 24 行就能解决真实问题的扩展 API,比 2988 行文档更能说明它好不好用。
import-repro 这条链路依赖一个前提:会话是可移植的文件。第 07 章的 JSONL 设计在这里兑现了一个当初未必是主要目标的收益——CI 环境里的一次调查,可以原样搬到开发者机器上继续。
需要处理的差异只有 cwd(CI 的检出目录是高熵路径),扩展做的正是重写这一项。这说明会话文件里与环境耦合的东西很少,是个好设计的旁证。
README 说文档可以读,「但你也可以直接让 agent 解释它自己」。配合 skills 文档那句「pi 可以创建 skill」,这里有一个一致的姿态:把 agent 当作接触这个代码库的界面之一。
这个姿态的可信度取决于代码库对 agent 友好的程度——而 AGENTS.md、.pi/prompts/、以及 第 19 章那套机读的工作包协议,都是在为此铺路。
examples/extensions/ 下另有若干示例(subagent、plan-mode、doom-overlay 等),那些更接近能力展示而非日常使用。.pi/ 里的扩展要项目被信任才加载。clone 下来第一次跑 pi 并拒绝信任,这些扩展不会生效(第 15 章)。sa.md 里那些安全规则(不许用 cookie 抓评论、不许假装读过)靠模型遵守,与 第 17 章 的 AGENTS.md 是同一种赌注。场景CI 里 pi 分析了一个 issue,产出一次完整的调查会话。维护者想在本地继续那次调查而不是重跑。靠什么?
B。import-repro.ts:2 会话是可移植文件,唯一与环境耦合的 cwd 由扩展重写——JSONL 会话格式在这里兑现了「CI 与本地交换调查现场」的收益。
场景两个工具都自称 self-extensible,你只有十分钟做选型验证。最快的判据是什么?
B。pi 的 .pi/extensions/ 里是 4 个为维护者真实痛点写的扩展,其中 redraws.ts 只有 24 行——24 行能解决真实问题的 API,比 2988 行文档更能说明可用性。
ac4ac9e(2026-08-07 快照)。