Files
superpowers-zh/docs/README.pi.md
AI不止语 4909388f35 feat(pi): 新增 Pi (oh-my-pi) harness 支持(关 #44,对齐上游 v6.0.0)
issue #44:Pi 像 opencode 一样开放,skill:// 能直接用,已验证可手动使用,
希望原生支持。上游 obra/superpowers 在 v6.0.0 已用扩展模型原生集成 Pi,
本提交把同样的集成方式落到本 fork。

Pi 走扩展模型,通过 package.json 的 pi 字段声明,直接指向仓库现有
skills/,不复制 skill、无运行时依赖。扩展内容中立——读取 fork 现有的
中文 using-superpowers/SKILL.md 自动注入,故扩展代码逐字节照搬上游。

- .pi/extensions/superpowers.ts:注册 resources_discover / session_start /
  session_compact / agent_end / context 生命周期钩子,在会话注入
  using-superpowers bootstrap + Pi 工具映射(带去重标记、插在 compaction
  summary 之后)
- package.json:加 pi.skills=["./skills"] + pi.extensions + pi-package
  keyword;.pi/extensions/ 加入 files(npm 发布需含扩展)
- skills/using-superpowers/references/pi-tools.md:Pi 工具映射参考
- docs/README.pi.md:中文安装/原理/工具映射/验证指南;README.md 工具列表加链接
- tests/pi/:上游扩展行为测试(适配 fork:name=superpowers-zh)+ 运行包装

验证:bash tests/pi/run-tests.sh 6/6 通过 exit 0(校验 pi 包配置、生命周期
钩子无 pre-compaction 注入、resources_discover 贡献 skills 目录、session_start
注入 You-have-superpowers + Pi-tool-mapping、pi-tools 参考存在);package.json
合法;scripts/audit.sh 静态 0 FAIL;README→docs/README.pi.md 链接可解析。

注:扩展是 TS(仅 import type,运行时无类型依赖),Node 22.6–23.5 需
--experimental-strip-types(run-tests.sh 已带),23.6+ 默认支持。
Pi 内实际 skill 触发需在 Pi 内验证(与本 fork 其它 harness 同样限制)。
2026-06-20 02:53:31 +08:00

2.8 KiB
Raw Blame History

Superpowers 中文版 · Pi 指南

Pioh-my-pi上使用 superpowers-zh 的完整说明。

安装

superpowers-zh 通过 Pi 的扩展机制集成,直接指向仓库现有的 skills/ 目录——不复制 skill、不建 symlink、无额外运行时依赖。

集成由 package.json 里的 pi 字段声明:

"pi": {
  "skills": ["./skills"],
  "extensions": ["./.pi/extensions/superpowers.ts"]
}

并带 pi-package keyword便于 Pi 发现这是一个 Pi 包。

按 Pi 的包安装方式安装 superpowers-zh(参考 Pi 文档的包管理命令Pi 会读取上述 pi 配置,挂载 skills/ 并加载 .pi/extensions/superpowers.ts 扩展。

工作原理

.pi/extensions/superpowers.ts 注册了 Pi 的生命周期钩子:

  1. resources_discover — 把仓库的 skills/ 目录贡献给 Pi 的技能系统;
  2. session_start / session_compact — 标记需要重新注入 bootstrap
  3. context — 在会话上下文中注入 using-superpowers 的内容(去除 frontmatter+ Pi 工具映射作为「You have superpowers」bootstrap让 skill 在恰当时机被遵循;
  4. agent_end — 一轮结束后停止重复注入。

注入带有唯一标记,已存在时不会重复注入;并且会插入到 compaction summary 之后,避免被压缩流程吞掉。

工具映射

Pi 有原生技能系统,但不暴露 Skill 工具。skill 内容描述「动作」,在 Pi 上对应到小写工具:

  • 「调用某个 skill」→ Pi 原生技能:用 read 加载对应 SKILL.md,或由人类显式 /skill:name
  • 「读/写/改文件」→ read / write / edit
  • 「跑 shell 命令」→ bash
  • 「搜索文件内容」→ grep,「按名找文件」→ find,「列目录」→ ls
  • 「分派子智能体」→ 若装了 pi-subagentssubagent 工具则用之;没有则在本会话内完成或说明能力缺失,不要臆造 Task 调用
  • 「待办清单」→ 若装了 todo/task 工具则用之;否则用 plan 文件或仓库内 TODO.md 跟踪;旧的 TodoWrite 引用按此处理

完整映射见 skills/using-superpowers/references/pi-tools.md,扩展也会把同样的映射注入会话。

验证

bash tests/pi/run-tests.sh

该测试动态加载扩展并校验:声明了 pi 包配置、注册了正确的生命周期钩子(且无 pre-compaction 注入)、resources_discover 贡献了 skills/ 目录、session_start 注入了「You have superpowers」+「Pi tool mapping」、pi-tools 参考文档存在。

注:扩展是 TypeScriptimport type运行时无类型依赖。Node 22.623.5 需 --experimental-strip-typesrun-tests.sh 已带23.6+ 默认支持。