Part IV · Interface & Extensions

13 自扩展的含义 看 .pi/ 目录,而不是看 README 里的形容词

已发布自带扩展 4 个prompt 模板 5 个skill 1 个
§1 Mental Model 一句话心智模型

先记住这一句

「自扩展」在 pi 这里不是宣传语,是一个可验证的闭环:仓库自己的 .pi/ 目录里装着 4 个扩展和 5 个 prompt,pi 的维护者用它们开发 pi。其中一个扩展的职责,是把 CI 里 pi 分析 issue 产生的会话导入到本地复现。

判断「self-extensible」是不是空话,最快的方法不是读 README,是看项目自己用不用。

§2 Evidence 代码实证

仓库自带的 .pi 目录

路径内容
.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-repro.ts

.pi/extensions/import-repro.ts原文 L2–L6
 * 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 与本地之间的交换格式。

prompt 模板也是仓库资产

.pi/prompts/*.md 是可被 /名字 调用的 prompt 模板,带 YAML frontmatter(description、argument-hint)。以 sa.md(更新安全公告)为例,它写了完整的调查流程、CVSS 讨论步骤、草稿格式、以及一组安全规则——包括「不要用浏览器会话或 cookie 去抓公告评论」和「绝不假装读过评论」。

这类模板与 第 17 章的 AGENTS.md 属于同一类资产:把重复性的、容易出错的工作流固化成文本,交给 agent 执行。区别是 AGENTS.md always-on,prompt 模板按需调用。

skills

.pi/skills/add-llm-provider.md——把「给 pi 加一个新 provider」这个高频且有固定套路的任务写成了 skill。文档对 skills 的第一句话是:「pi 可以创建 skill。让它给你的场景做一个。」skills.md:1

§3 Design 设计动机与权衡

「项目自己用」是最强的可用性证据

一个扩展系统可以很完备但没人用。.pi/ 目录的存在把这个问题变成可验证的:4 个扩展全是为解决维护者真实痛点而写的(重绘卡不卡、token 速度多少、issue 怎么复现),不是示例代码。

更进一步:redraws.ts 只有 24 行。一个 24 行就能解决真实问题的扩展 API,比 2988 行文档更能说明它好不好用。

会话作为交换格式

import-repro 这条链路依赖一个前提:会话是可移植的文件。第 07 章的 JSONL 设计在这里兑现了一个当初未必是主要目标的收益——CI 环境里的一次调查,可以原样搬到开发者机器上继续。

需要处理的差异只有 cwd(CI 的检出目录是高熵路径),扩展做的正是重写这一项。这说明会话文件里与环境耦合的东西很少,是个好设计的旁证。

与 README 的「让 agent 自己解释自己」

README 说文档可以读,「但你也可以直接让 agent 解释它自己」。配合 skills 文档那句「pi 可以创建 skill」,这里有一个一致的姿态:把 agent 当作接触这个代码库的界面之一。

这个姿态的可信度取决于代码库对 agent 友好的程度——而 AGENTS.md、.pi/prompts/、以及 第 19 章那套机读的工作包协议,都是在为此铺路。

§4 Limits 边界与失效条件
§5 Takeaway 拿走什么
§ Self-check 自测

给场景,判断 pi 会怎么做

场景CI 里 pi 分析了一个 issue,产出一次完整的调查会话。维护者想在本地继续那次调查而不是重跑。靠什么?

看答案

B。import-repro.ts:2 会话是可移植文件,唯一与环境耦合的 cwd 由扩展重写——JSONL 会话格式在这里兑现了「CI 与本地交换调查现场」的收益。

场景两个工具都自称 self-extensible,你只有十分钟做选型验证。最快的判据是什么?

看答案

B。pi 的 .pi/extensions/ 里是 4 个为维护者真实痛点写的扩展,其中 redraws.ts 只有 24 行——24 行能解决真实问题的 API,比 2988 行文档更能说明可用性。

基于 earendil-works/pi @ ac4ac9e(2026-08-07 快照)。
仓库 commit 速度约 428/月,行号引用仅对该 SHA 有效。