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

55 lines
2.8 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Superpowers 中文版 · Pi 指南
在 [Pi](https://github.com/earendil-works/pi)oh-my-pi上使用 superpowers-zh 的完整说明。
## 安装
superpowers-zh 通过 Pi 的扩展机制集成,**直接指向仓库现有的 `skills/` 目录**——不复制 skill、不建 symlink、无额外运行时依赖。
集成由 `package.json` 里的 `pi` 字段声明:
```json
"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-subagents``subagent` 工具则用之;没有则在本会话内完成或说明能力缺失,**不要**臆造 `Task` 调用
- 「待办清单」→ 若装了 todo/task 工具则用之;否则用 plan 文件或仓库内 `TODO.md` 跟踪;旧的 `TodoWrite` 引用按此处理
完整映射见 [`skills/using-superpowers/references/pi-tools.md`](../skills/using-superpowers/references/pi-tools.md),扩展也会把同样的映射注入会话。
## 验证
```bash
bash tests/pi/run-tests.sh
```
该测试动态加载扩展并校验:声明了 `pi` 包配置、注册了正确的生命周期钩子(且无 pre-compaction 注入)、`resources_discover` 贡献了 `skills/` 目录、`session_start` 注入了「You have superpowers」+「Pi tool mapping」、pi-tools 参考文档存在。
> 注:扩展是 TypeScript仅 `import type`运行时无类型依赖。Node 22.623.5 需 `--experimental-strip-types`run-tests.sh 已带23.6+ 默认支持。