@chankov/agent-skills 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude/commands/build.md +18 -0
- package/.claude/commands/code-simplify.md +22 -0
- package/.claude/commands/design-agent.md +14 -0
- package/.claude/commands/doctor.md +13 -0
- package/.claude/commands/plan.md +16 -0
- package/.claude/commands/prime.md +22 -0
- package/.claude/commands/review.md +16 -0
- package/.claude/commands/setup.md +19 -0
- package/.claude/commands/ship.md +17 -0
- package/.claude/commands/spec.md +15 -0
- package/.claude/commands/test.md +19 -0
- package/.opencode/commands/as-build.md +17 -0
- package/.opencode/commands/as-code-simplify.md +16 -0
- package/.opencode/commands/as-design-agent.md +15 -0
- package/.opencode/commands/as-doctor.md +11 -0
- package/.opencode/commands/as-plan.md +16 -0
- package/.opencode/commands/as-prime.md +22 -0
- package/.opencode/commands/as-review.md +15 -0
- package/.opencode/commands/as-setup.md +11 -0
- package/.opencode/commands/as-ship.md +16 -0
- package/.opencode/commands/as-spec.md +16 -0
- package/.opencode/commands/as-test.md +21 -0
- package/.pi/agents/agent-chain.yaml +49 -0
- package/.pi/agents/bowser.md +19 -0
- package/.pi/agents/pi-pi/agent-expert.md +98 -0
- package/.pi/agents/pi-pi/cli-expert.md +41 -0
- package/.pi/agents/pi-pi/config-expert.md +63 -0
- package/.pi/agents/pi-pi/ext-expert.md +43 -0
- package/.pi/agents/pi-pi/keybinding-expert.md +134 -0
- package/.pi/agents/pi-pi/pi-orchestrator.md +57 -0
- package/.pi/agents/pi-pi/prompt-expert.md +70 -0
- package/.pi/agents/pi-pi/skill-expert.md +42 -0
- package/.pi/agents/pi-pi/theme-expert.md +40 -0
- package/.pi/agents/pi-pi/tui-expert.md +85 -0
- package/.pi/agents/teams.yaml +31 -0
- package/.pi/damage-control-rules.yaml +278 -0
- package/.pi/extensions/chrome-devtools-mcp/README.md +39 -0
- package/.pi/extensions/chrome-devtools-mcp/index.ts +61 -0
- package/.pi/extensions/chrome-devtools-mcp/package.json +6 -0
- package/.pi/extensions/compact-and-continue/README.md +42 -0
- package/.pi/extensions/compact-and-continue/index.ts +120 -0
- package/.pi/extensions/compact-and-continue/package.json +6 -0
- package/.pi/extensions/mcp-bridge/README.md +46 -0
- package/.pi/extensions/mcp-bridge/index.ts +206 -0
- package/.pi/extensions/mcp-bridge/package.json +6 -0
- package/.pi/extensions/package-lock.json +1143 -0
- package/.pi/extensions/package.json +9 -0
- package/.pi/harnesses/agent-chain/README.md +37 -0
- package/.pi/harnesses/agent-chain/index.ts +795 -0
- package/.pi/harnesses/agent-chain/package.json +6 -0
- package/.pi/harnesses/agent-team/README.md +38 -0
- package/.pi/harnesses/agent-team/index.ts +732 -0
- package/.pi/harnesses/agent-team/package.json +6 -0
- package/.pi/harnesses/coms/README.md +36 -0
- package/.pi/harnesses/coms/index.ts +1595 -0
- package/.pi/harnesses/coms/package.json +6 -0
- package/.pi/harnesses/coms-net/README.md +46 -0
- package/.pi/harnesses/coms-net/index.ts +1637 -0
- package/.pi/harnesses/coms-net/package.json +6 -0
- package/.pi/harnesses/damage-control/README.md +38 -0
- package/.pi/harnesses/damage-control/index.ts +207 -0
- package/.pi/harnesses/damage-control/package.json +6 -0
- package/.pi/harnesses/damage-control-continue/README.md +37 -0
- package/.pi/harnesses/damage-control-continue/index.ts +234 -0
- package/.pi/harnesses/damage-control-continue/package.json +6 -0
- package/.pi/harnesses/minimal/README.md +27 -0
- package/.pi/harnesses/minimal/index.ts +32 -0
- package/.pi/harnesses/minimal/package.json +6 -0
- package/.pi/harnesses/package-lock.json +35 -0
- package/.pi/harnesses/package.json +9 -0
- package/.pi/harnesses/pi-pi/README.md +39 -0
- package/.pi/harnesses/pi-pi/index.ts +631 -0
- package/.pi/harnesses/pi-pi/package.json +6 -0
- package/.pi/harnesses/purpose-gate/README.md +27 -0
- package/.pi/harnesses/purpose-gate/index.ts +82 -0
- package/.pi/harnesses/purpose-gate/package.json +6 -0
- package/.pi/harnesses/session-replay/README.md +28 -0
- package/.pi/harnesses/session-replay/index.ts +214 -0
- package/.pi/harnesses/session-replay/package.json +6 -0
- package/.pi/harnesses/subagent-widget/README.md +36 -0
- package/.pi/harnesses/subagent-widget/index.ts +479 -0
- package/.pi/harnesses/subagent-widget/package.json +6 -0
- package/.pi/harnesses/system-select/README.md +39 -0
- package/.pi/harnesses/system-select/index.ts +165 -0
- package/.pi/harnesses/system-select/package.json +6 -0
- package/.pi/harnesses/tilldone/README.md +35 -0
- package/.pi/harnesses/tilldone/index.ts +724 -0
- package/.pi/harnesses/tilldone/package.json +6 -0
- package/.pi/harnesses/tool-counter/README.md +31 -0
- package/.pi/harnesses/tool-counter/index.ts +100 -0
- package/.pi/harnesses/tool-counter/package.json +6 -0
- package/.pi/harnesses/tool-counter-widget/README.md +27 -0
- package/.pi/harnesses/tool-counter-widget/index.ts +66 -0
- package/.pi/harnesses/tool-counter-widget/package.json +6 -0
- package/.pi/prompts/build.md +24 -0
- package/.pi/prompts/code-simplify.md +22 -0
- package/.pi/prompts/doctor.md +13 -0
- package/.pi/prompts/plan.md +16 -0
- package/.pi/prompts/review.md +16 -0
- package/.pi/prompts/setup.md +19 -0
- package/.pi/prompts/ship.md +17 -0
- package/.pi/prompts/spec.md +15 -0
- package/.pi/prompts/test.md +19 -0
- package/.pi/skills/bowser/SKILL.md +114 -0
- package/.versions/0.1.0/.claude/commands/build.md +18 -0
- package/.versions/0.1.0/.claude/commands/code-simplify.md +22 -0
- package/.versions/0.1.0/.claude/commands/design-agent.md +14 -0
- package/.versions/0.1.0/.claude/commands/doctor.md +13 -0
- package/.versions/0.1.0/.claude/commands/plan.md +16 -0
- package/.versions/0.1.0/.claude/commands/prime.md +22 -0
- package/.versions/0.1.0/.claude/commands/review.md +16 -0
- package/.versions/0.1.0/.claude/commands/setup.md +19 -0
- package/.versions/0.1.0/.claude/commands/ship.md +17 -0
- package/.versions/0.1.0/.claude/commands/spec.md +15 -0
- package/.versions/0.1.0/.claude/commands/test.md +19 -0
- package/.versions/0.1.0/.opencode/commands/as-build.md +17 -0
- package/.versions/0.1.0/.opencode/commands/as-code-simplify.md +16 -0
- package/.versions/0.1.0/.opencode/commands/as-design-agent.md +15 -0
- package/.versions/0.1.0/.opencode/commands/as-doctor.md +11 -0
- package/.versions/0.1.0/.opencode/commands/as-plan.md +16 -0
- package/.versions/0.1.0/.opencode/commands/as-prime.md +22 -0
- package/.versions/0.1.0/.opencode/commands/as-review.md +15 -0
- package/.versions/0.1.0/.opencode/commands/as-setup.md +11 -0
- package/.versions/0.1.0/.opencode/commands/as-ship.md +16 -0
- package/.versions/0.1.0/.opencode/commands/as-spec.md +16 -0
- package/.versions/0.1.0/.opencode/commands/as-test.md +21 -0
- package/.versions/0.1.0/.pi/agents/agent-chain.yaml +49 -0
- package/.versions/0.1.0/.pi/agents/bowser.md +19 -0
- package/.versions/0.1.0/.pi/agents/pi-pi/agent-expert.md +98 -0
- package/.versions/0.1.0/.pi/agents/pi-pi/cli-expert.md +41 -0
- package/.versions/0.1.0/.pi/agents/pi-pi/config-expert.md +63 -0
- package/.versions/0.1.0/.pi/agents/pi-pi/ext-expert.md +43 -0
- package/.versions/0.1.0/.pi/agents/pi-pi/keybinding-expert.md +134 -0
- package/.versions/0.1.0/.pi/agents/pi-pi/pi-orchestrator.md +57 -0
- package/.versions/0.1.0/.pi/agents/pi-pi/prompt-expert.md +70 -0
- package/.versions/0.1.0/.pi/agents/pi-pi/skill-expert.md +42 -0
- package/.versions/0.1.0/.pi/agents/pi-pi/theme-expert.md +40 -0
- package/.versions/0.1.0/.pi/agents/pi-pi/tui-expert.md +85 -0
- package/.versions/0.1.0/.pi/agents/teams.yaml +31 -0
- package/.versions/0.1.0/.pi/damage-control-rules.yaml +278 -0
- package/.versions/0.1.0/.pi/extensions/chrome-devtools-mcp/README.md +39 -0
- package/.versions/0.1.0/.pi/extensions/chrome-devtools-mcp/index.ts +61 -0
- package/.versions/0.1.0/.pi/extensions/chrome-devtools-mcp/package.json +6 -0
- package/.versions/0.1.0/.pi/extensions/compact-and-continue/README.md +42 -0
- package/.versions/0.1.0/.pi/extensions/compact-and-continue/index.ts +120 -0
- package/.versions/0.1.0/.pi/extensions/compact-and-continue/package.json +6 -0
- package/.versions/0.1.0/.pi/extensions/mcp-bridge/README.md +46 -0
- package/.versions/0.1.0/.pi/extensions/mcp-bridge/index.ts +206 -0
- package/.versions/0.1.0/.pi/extensions/mcp-bridge/package.json +6 -0
- package/.versions/0.1.0/.pi/extensions/package-lock.json +1143 -0
- package/.versions/0.1.0/.pi/extensions/package.json +9 -0
- package/.versions/0.1.0/.pi/harnesses/agent-chain/README.md +37 -0
- package/.versions/0.1.0/.pi/harnesses/agent-chain/index.ts +795 -0
- package/.versions/0.1.0/.pi/harnesses/agent-chain/package.json +6 -0
- package/.versions/0.1.0/.pi/harnesses/agent-team/README.md +38 -0
- package/.versions/0.1.0/.pi/harnesses/agent-team/index.ts +732 -0
- package/.versions/0.1.0/.pi/harnesses/agent-team/package.json +6 -0
- package/.versions/0.1.0/.pi/harnesses/coms/README.md +36 -0
- package/.versions/0.1.0/.pi/harnesses/coms/index.ts +1595 -0
- package/.versions/0.1.0/.pi/harnesses/coms/package.json +6 -0
- package/.versions/0.1.0/.pi/harnesses/coms-net/README.md +46 -0
- package/.versions/0.1.0/.pi/harnesses/coms-net/index.ts +1637 -0
- package/.versions/0.1.0/.pi/harnesses/coms-net/package.json +6 -0
- package/.versions/0.1.0/.pi/harnesses/damage-control/README.md +38 -0
- package/.versions/0.1.0/.pi/harnesses/damage-control/index.ts +207 -0
- package/.versions/0.1.0/.pi/harnesses/damage-control/package.json +6 -0
- package/.versions/0.1.0/.pi/harnesses/damage-control-continue/README.md +37 -0
- package/.versions/0.1.0/.pi/harnesses/damage-control-continue/index.ts +234 -0
- package/.versions/0.1.0/.pi/harnesses/damage-control-continue/package.json +6 -0
- package/.versions/0.1.0/.pi/harnesses/minimal/README.md +27 -0
- package/.versions/0.1.0/.pi/harnesses/minimal/index.ts +32 -0
- package/.versions/0.1.0/.pi/harnesses/minimal/package.json +6 -0
- package/.versions/0.1.0/.pi/harnesses/package-lock.json +35 -0
- package/.versions/0.1.0/.pi/harnesses/package.json +9 -0
- package/.versions/0.1.0/.pi/harnesses/pi-pi/README.md +39 -0
- package/.versions/0.1.0/.pi/harnesses/pi-pi/index.ts +631 -0
- package/.versions/0.1.0/.pi/harnesses/pi-pi/package.json +6 -0
- package/.versions/0.1.0/.pi/harnesses/purpose-gate/README.md +27 -0
- package/.versions/0.1.0/.pi/harnesses/purpose-gate/index.ts +82 -0
- package/.versions/0.1.0/.pi/harnesses/purpose-gate/package.json +6 -0
- package/.versions/0.1.0/.pi/harnesses/session-replay/README.md +28 -0
- package/.versions/0.1.0/.pi/harnesses/session-replay/index.ts +214 -0
- package/.versions/0.1.0/.pi/harnesses/session-replay/package.json +6 -0
- package/.versions/0.1.0/.pi/harnesses/subagent-widget/README.md +36 -0
- package/.versions/0.1.0/.pi/harnesses/subagent-widget/index.ts +479 -0
- package/.versions/0.1.0/.pi/harnesses/subagent-widget/package.json +6 -0
- package/.versions/0.1.0/.pi/harnesses/system-select/README.md +39 -0
- package/.versions/0.1.0/.pi/harnesses/system-select/index.ts +165 -0
- package/.versions/0.1.0/.pi/harnesses/system-select/package.json +6 -0
- package/.versions/0.1.0/.pi/harnesses/tilldone/README.md +35 -0
- package/.versions/0.1.0/.pi/harnesses/tilldone/index.ts +724 -0
- package/.versions/0.1.0/.pi/harnesses/tilldone/package.json +6 -0
- package/.versions/0.1.0/.pi/harnesses/tool-counter/README.md +31 -0
- package/.versions/0.1.0/.pi/harnesses/tool-counter/index.ts +100 -0
- package/.versions/0.1.0/.pi/harnesses/tool-counter/package.json +6 -0
- package/.versions/0.1.0/.pi/harnesses/tool-counter-widget/README.md +27 -0
- package/.versions/0.1.0/.pi/harnesses/tool-counter-widget/index.ts +66 -0
- package/.versions/0.1.0/.pi/harnesses/tool-counter-widget/package.json +6 -0
- package/.versions/0.1.0/.pi/prompts/build.md +24 -0
- package/.versions/0.1.0/.pi/prompts/code-simplify.md +22 -0
- package/.versions/0.1.0/.pi/prompts/doctor.md +13 -0
- package/.versions/0.1.0/.pi/prompts/plan.md +16 -0
- package/.versions/0.1.0/.pi/prompts/review.md +16 -0
- package/.versions/0.1.0/.pi/prompts/setup.md +19 -0
- package/.versions/0.1.0/.pi/prompts/ship.md +17 -0
- package/.versions/0.1.0/.pi/prompts/spec.md +15 -0
- package/.versions/0.1.0/.pi/prompts/test.md +19 -0
- package/.versions/0.1.0/.pi/skills/bowser/SKILL.md +114 -0
- package/.versions/0.1.0/.version +1 -0
- package/.versions/0.1.0/agents/builder.md +6 -0
- package/.versions/0.1.0/agents/code-reviewer.md +93 -0
- package/.versions/0.1.0/agents/documenter.md +6 -0
- package/.versions/0.1.0/agents/plan-reviewer.md +22 -0
- package/.versions/0.1.0/agents/planner.md +6 -0
- package/.versions/0.1.0/agents/scout.md +6 -0
- package/.versions/0.1.0/agents/security-auditor.md +97 -0
- package/.versions/0.1.0/agents/test-engineer.md +89 -0
- package/.versions/0.1.0/hooks/SIMPLIFY-IGNORE.md +90 -0
- package/.versions/0.1.0/hooks/hooks.json +14 -0
- package/.versions/0.1.0/hooks/session-start.sh +20 -0
- package/.versions/0.1.0/hooks/simplify-ignore-test.sh +247 -0
- package/.versions/0.1.0/hooks/simplify-ignore.sh +302 -0
- package/.versions/0.1.0/references/accessibility-checklist.md +159 -0
- package/.versions/0.1.0/references/performance-checklist.md +121 -0
- package/.versions/0.1.0/references/prompting-patterns.md +380 -0
- package/.versions/0.1.0/references/security-checklist.md +134 -0
- package/.versions/0.1.0/references/testing-patterns.md +236 -0
- package/.versions/0.1.0/skills/api-and-interface-design/SKILL.md +294 -0
- package/.versions/0.1.0/skills/browser-testing-with-devtools/SKILL.md +335 -0
- package/.versions/0.1.0/skills/ci-cd-and-automation/SKILL.md +390 -0
- package/.versions/0.1.0/skills/code-review-and-quality/SKILL.md +347 -0
- package/.versions/0.1.0/skills/code-simplification/SKILL.md +331 -0
- package/.versions/0.1.0/skills/context-engineering/SKILL.md +291 -0
- package/.versions/0.1.0/skills/debugging-and-error-recovery/SKILL.md +300 -0
- package/.versions/0.1.0/skills/deprecation-and-migration/SKILL.md +206 -0
- package/.versions/0.1.0/skills/designing-agents/SKILL.md +394 -0
- package/.versions/0.1.0/skills/designing-agents/pi-harness-authoring.md +213 -0
- package/.versions/0.1.0/skills/documentation-and-adrs/SKILL.md +278 -0
- package/.versions/0.1.0/skills/frontend-ui-engineering/SKILL.md +322 -0
- package/.versions/0.1.0/skills/git-workflow-and-versioning/SKILL.md +316 -0
- package/.versions/0.1.0/skills/guided-workspace-setup/SKILL.md +293 -0
- package/.versions/0.1.0/skills/idea-refine/SKILL.md +178 -0
- package/.versions/0.1.0/skills/idea-refine/examples.md +238 -0
- package/.versions/0.1.0/skills/idea-refine/frameworks.md +99 -0
- package/.versions/0.1.0/skills/idea-refine/refinement-criteria.md +113 -0
- package/.versions/0.1.0/skills/idea-refine/scripts/idea-refine.sh +15 -0
- package/.versions/0.1.0/skills/incremental-implementation/SKILL.md +279 -0
- package/.versions/0.1.0/skills/performance-optimization/SKILL.md +350 -0
- package/.versions/0.1.0/skills/planning-and-task-breakdown/SKILL.md +237 -0
- package/.versions/0.1.0/skills/security-and-hardening/SKILL.md +349 -0
- package/.versions/0.1.0/skills/shipping-and-launch/SKILL.md +309 -0
- package/.versions/0.1.0/skills/source-driven-development/SKILL.md +194 -0
- package/.versions/0.1.0/skills/spec-driven-development/SKILL.md +237 -0
- package/.versions/0.1.0/skills/test-driven-development/SKILL.md +379 -0
- package/.versions/0.1.0/skills/using-agent-skills/SKILL.md +176 -0
- package/CHANGELOG.md +14 -0
- package/LICENSE +21 -0
- package/README.md +359 -0
- package/agents/builder.md +6 -0
- package/agents/code-reviewer.md +93 -0
- package/agents/documenter.md +6 -0
- package/agents/plan-reviewer.md +22 -0
- package/agents/planner.md +6 -0
- package/agents/scout.md +6 -0
- package/agents/security-auditor.md +97 -0
- package/agents/test-engineer.md +89 -0
- package/bin/cli.js +375 -0
- package/bin/lib/detect-agent.js +37 -0
- package/bin/lib/doctor.js +209 -0
- package/bin/snapshot-version.js +71 -0
- package/docs/agent-skills-setup.md +187 -0
- package/docs/copilot-setup.md +94 -0
- package/docs/cursor-setup.md +67 -0
- package/docs/gemini-cli-setup.md +113 -0
- package/docs/getting-started.md +162 -0
- package/docs/npm-install.md +169 -0
- package/docs/opencode-setup.md +241 -0
- package/docs/pi-extensions.md +163 -0
- package/docs/pi-setup.md +416 -0
- package/docs/skill-anatomy.md +129 -0
- package/docs/windsurf-setup.md +48 -0
- package/hooks/SIMPLIFY-IGNORE.md +90 -0
- package/hooks/hooks.json +14 -0
- package/hooks/session-start.sh +20 -0
- package/hooks/simplify-ignore-test.sh +247 -0
- package/hooks/simplify-ignore.sh +302 -0
- package/package.json +86 -0
- package/references/accessibility-checklist.md +159 -0
- package/references/performance-checklist.md +121 -0
- package/references/prompting-patterns.md +380 -0
- package/references/security-checklist.md +134 -0
- package/references/testing-patterns.md +236 -0
- package/skills/api-and-interface-design/SKILL.md +294 -0
- package/skills/browser-testing-with-devtools/SKILL.md +335 -0
- package/skills/ci-cd-and-automation/SKILL.md +390 -0
- package/skills/code-review-and-quality/SKILL.md +347 -0
- package/skills/code-simplification/SKILL.md +331 -0
- package/skills/context-engineering/SKILL.md +291 -0
- package/skills/debugging-and-error-recovery/SKILL.md +300 -0
- package/skills/deprecation-and-migration/SKILL.md +206 -0
- package/skills/designing-agents/SKILL.md +394 -0
- package/skills/designing-agents/pi-harness-authoring.md +213 -0
- package/skills/documentation-and-adrs/SKILL.md +278 -0
- package/skills/frontend-ui-engineering/SKILL.md +322 -0
- package/skills/git-workflow-and-versioning/SKILL.md +316 -0
- package/skills/guided-workspace-setup/SKILL.md +293 -0
- package/skills/idea-refine/SKILL.md +178 -0
- package/skills/idea-refine/examples.md +238 -0
- package/skills/idea-refine/frameworks.md +99 -0
- package/skills/idea-refine/refinement-criteria.md +113 -0
- package/skills/idea-refine/scripts/idea-refine.sh +15 -0
- package/skills/incremental-implementation/SKILL.md +279 -0
- package/skills/performance-optimization/SKILL.md +350 -0
- package/skills/planning-and-task-breakdown/SKILL.md +237 -0
- package/skills/security-and-hardening/SKILL.md +349 -0
- package/skills/shipping-and-launch/SKILL.md +309 -0
- package/skills/source-driven-development/SKILL.md +194 -0
- package/skills/spec-driven-development/SKILL.md +237 -0
- package/skills/test-driven-development/SKILL.md +379 -0
- package/skills/using-agent-skills/SKILL.md +176 -0
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
# pi Extensions
|
|
2
|
+
|
|
3
|
+
A catalog of the pi extensions in this repo — what each one does, how to run it, the
|
|
4
|
+
supporting data it needs, and how the ported set differs from upstream.
|
|
5
|
+
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## Attribution
|
|
9
|
+
|
|
10
|
+
The 15 orchestration, UI, safety, and messaging extensions documented here — together
|
|
11
|
+
with their supporting agent definitions, design specs, the `coms-net` hub server, and the
|
|
12
|
+
`justfile` — are ported from the **`pi-vs-claude-code`** project:
|
|
13
|
+
|
|
14
|
+
- **Author:** [disler](https://github.com/disler) (IndyDevDan)
|
|
15
|
+
- **Source:** <https://github.com/disler/pi-vs-claude-code>
|
|
16
|
+
- **License:** MIT — Copyright (c) 2026 IndyDevDan
|
|
17
|
+
|
|
18
|
+
Ported files retain their original authorship; this repo adapts them to its layout and
|
|
19
|
+
conventions. Runtime design specs for the imported harnesses live in `docs/pi-specs/`.
|
|
20
|
+
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
## What these extensions are
|
|
24
|
+
|
|
25
|
+
`.pi/extensions/` ships three always-on **utility** extensions — `mcp-bridge`,
|
|
26
|
+
`chrome-devtools-mcp`, and `compact-and-continue`. pi auto-discovers that directory, so
|
|
27
|
+
those three layer onto every session.
|
|
28
|
+
|
|
29
|
+
The 15 documented below are different: each is a **session harness**. They reshape the
|
|
30
|
+
whole pi session — some remove every codebase tool and leave only an orchestration tool,
|
|
31
|
+
some replace the footer, some gate every tool call. They are **mutually exclusive by
|
|
32
|
+
design**: run one per session (at most two stacked, e.g. an orchestrator `+ minimal`),
|
|
33
|
+
not all at once. Because of that they live in **`.pi/harnesses/`** — a directory pi does
|
|
34
|
+
*not* auto-discover — so a plain `pi` run never loads them.
|
|
35
|
+
|
|
36
|
+
### Selective loading — read this first
|
|
37
|
+
|
|
38
|
+
pi auto-discovers every extension directory under a project's `.pi/extensions/` and loads
|
|
39
|
+
all of them. If the 15 harnesses lived there, a plain `pi` run would load them all at once
|
|
40
|
+
— footers would fight, orchestrators would collide, and `coms` / `coms-net` would abort
|
|
41
|
+
startup with duplicate CLI-flag registrations. So the harnesses live in `.pi/harnesses/`
|
|
42
|
+
instead, and you load exactly one (or two) explicitly:
|
|
43
|
+
|
|
44
|
+
- through the `justfile` — `just ext-agent-team`, `just ext-tilldone`, …
|
|
45
|
+
- or directly — `pi -e .pi/harnesses/<name>/index.ts`
|
|
46
|
+
|
|
47
|
+
When you consume this repo from another project, point `pi -e` at the harness file you
|
|
48
|
+
want, or symlink that one directory into *its* `.pi/harnesses/` — never drop the harnesses
|
|
49
|
+
into `.pi/extensions/`, and never load all 15 (see
|
|
50
|
+
[pi-setup.md](pi-setup.md#optional-pi-extensions)).
|
|
51
|
+
|
|
52
|
+
---
|
|
53
|
+
|
|
54
|
+
## Setup
|
|
55
|
+
|
|
56
|
+
```bash
|
|
57
|
+
just install # one-time — installs runtime deps for extensions + harnesses
|
|
58
|
+
just ext-minimal # launch pi with a harness
|
|
59
|
+
just --list # see every recipe
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
`just install` runs `npm install` for both dependency roots: `.pi/extensions/` for the
|
|
63
|
+
utilities (`@modelcontextprotocol/sdk`, `typebox`) and `.pi/harnesses/` for the harnesses
|
|
64
|
+
(`@sinclair/typebox`, `yaml`). The `@mariozechner/pi-*` packages are provided by the pi
|
|
65
|
+
runtime itself.
|
|
66
|
+
|
|
67
|
+
---
|
|
68
|
+
|
|
69
|
+
## Catalog
|
|
70
|
+
|
|
71
|
+
| Extension | Category | What it does | Run |
|
|
72
|
+
|-----------|----------|--------------|-----|
|
|
73
|
+
| [minimal](../.pi/harnesses/minimal/README.md) | UI | Model name + 10-block context meter footer | `just ext-minimal` |
|
|
74
|
+
| [tool-counter](../.pi/harnesses/tool-counter/README.md) | UI | Rich two-line footer: model, branch, cwd, tokens, cost, tool tally | `just ext-tool-counter` |
|
|
75
|
+
| [tool-counter-widget](../.pi/harnesses/tool-counter-widget/README.md) | UI | Per-tool call counts in a widget above the editor | `just ext-tool-counter-widget` |
|
|
76
|
+
| [session-replay](../.pi/harnesses/session-replay/README.md) | UI | `/replay` scrollable timeline overlay of session history | `just ext-session-replay` |
|
|
77
|
+
| [purpose-gate](../.pi/harnesses/purpose-gate/README.md) | Focus | Forces you to declare session intent before working | `just ext-purpose-gate` |
|
|
78
|
+
| [tilldone](../.pi/harnesses/tilldone/README.md) | Focus | Agent must define tasks before using any other tool | `just ext-tilldone` |
|
|
79
|
+
| [damage-control](../.pi/harnesses/damage-control/README.md) | Safety | Blocks destructive tool calls and aborts the turn | `just ext-damage-control` |
|
|
80
|
+
| [damage-control-continue](../.pi/harnesses/damage-control-continue/README.md) | Safety | Same rules, but the agent keeps working with corrective feedback | `just ext-damage-control-continue` |
|
|
81
|
+
| [subagent-widget](../.pi/harnesses/subagent-widget/README.md) | Orchestration | `/sub <task>` background subagents with live stacking widgets | `just ext-subagent-widget` |
|
|
82
|
+
| [agent-team](../.pi/harnesses/agent-team/README.md) | Orchestration | Dispatcher-only orchestrator with a grid dashboard | `just ext-agent-team` |
|
|
83
|
+
| [agent-chain](../.pi/harnesses/agent-chain/README.md) | Orchestration | Sequential agent pipeline orchestrator | `just ext-agent-chain` |
|
|
84
|
+
| [system-select](../.pi/harnesses/system-select/README.md) | Orchestration | `/system` to pick an agent persona as the system prompt | `just ext-system-select` |
|
|
85
|
+
| [pi-pi](../.pi/harnesses/pi-pi/README.md) | Orchestration | Meta-agent that builds pi agents via parallel expert research | `just ext-pi-pi` |
|
|
86
|
+
| [coms](../.pi/harnesses/coms/README.md) | Messaging | Peer-to-peer messaging between pi agents on one machine | `just local-coms` |
|
|
87
|
+
| [coms-net](../.pi/harnesses/coms-net/README.md) | Messaging | HTTP/SSE communication network across hosts (needs the hub) | `just coms` |
|
|
88
|
+
|
|
89
|
+
Each extension directory has its own `README.md` with the full description, command/tool
|
|
90
|
+
surface, requirements, and per-extension upstream changes.
|
|
91
|
+
|
|
92
|
+
---
|
|
93
|
+
|
|
94
|
+
## Environment variables
|
|
95
|
+
|
|
96
|
+
The `justfile` sets `dotenv-load`, so a `.env` file at the repo root is auto-loaded
|
|
97
|
+
(`.env` is gitignored). Only a few extensions need keys:
|
|
98
|
+
|
|
99
|
+
| Variable | Needed by | Purpose |
|
|
100
|
+
|----------|-----------|---------|
|
|
101
|
+
| `FIRECRAWL_API_KEY` | `pi-pi` | Expert agents crawl current pi documentation via Firecrawl |
|
|
102
|
+
| `PI_COMS_NET_AUTH_TOKEN` | `coms-net` | Shared secret — required to bind a LAN/remote hub |
|
|
103
|
+
| `PI_COMS_NET_PORT` | `coms-net` | Pin the hub port so the URL is stable across restarts |
|
|
104
|
+
| `PI_COMS_NET_SERVER_URL` | `coms-net` | Hub URL for clients (blank = auto-discover the local `server.json`) |
|
|
105
|
+
|
|
106
|
+
For `127.0.0.1`-only `coms-net` use, the hub auto-generates a token — no env needed.
|
|
107
|
+
|
|
108
|
+
---
|
|
109
|
+
|
|
110
|
+
## Supporting data
|
|
111
|
+
|
|
112
|
+
These ported files are runtime dependencies of the extensions above:
|
|
113
|
+
|
|
114
|
+
- **`.pi/agents/`** — symlinks back to the canonical personas in `agents/`
|
|
115
|
+
(`scout`, `planner`, `plan-reviewer`, `builder`, `documenter`, `code-reviewer`,
|
|
116
|
+
`test-engineer`, `security-auditor`), the pi-local `bowser.md`, the `pi-pi/`
|
|
117
|
+
research experts, plus `teams.yaml` and `agent-chain.yaml`. Read by `agent-team`,
|
|
118
|
+
`agent-chain`, `system-select`, and `pi-pi`. The earlier `reviewer` and
|
|
119
|
+
`red-team` personas were folded into `code-reviewer` and `security-auditor`;
|
|
120
|
+
the team and chain configs already reference the canonical names.
|
|
121
|
+
- **`.pi/damage-control-rules.yaml`** — the destructive-command / protected-path rule set
|
|
122
|
+
for `damage-control` and `damage-control-continue`.
|
|
123
|
+
- **`.pi/skills/bowser/`** — a pi-runtime skill for headless Playwright browser
|
|
124
|
+
automation, used by the `bowser` agent persona. Kept separate from the core
|
|
125
|
+
engineering `skills/`.
|
|
126
|
+
- **`scripts/coms-net-server.ts`** — the HTTP/SSE hub server for `coms-net`. Pure Node
|
|
127
|
+
built-ins; run it with `node --experimental-strip-types scripts/coms-net-server.ts`
|
|
128
|
+
(Node >= 22.6, or `just coms-net-server`).
|
|
129
|
+
- **`docs/pi-specs/`** — the original design specifications: `agent-forge` (the
|
|
130
|
+
`agent-team` design), `agent-workflow` (`agent-chain`), `damage-control`, and `pi-pi`.
|
|
131
|
+
|
|
132
|
+
---
|
|
133
|
+
|
|
134
|
+
## Upstream changes
|
|
135
|
+
|
|
136
|
+
What changed relative to `disler/pi-vs-claude-code`:
|
|
137
|
+
|
|
138
|
+
- **Theme code removed.** Every ported extension imported `applyExtensionDefaults` from a
|
|
139
|
+
shared `themeMap.ts`. That import and its `session_start` call site were stripped from
|
|
140
|
+
all 15 files; `themeMap.ts` and the 11 `.pi/themes/*.json` palettes are not ported.
|
|
141
|
+
Extensions render against pi's active theme.
|
|
142
|
+
- **Layout converted.** Flat `extensions/<name>.ts` files became
|
|
143
|
+
`.pi/harnesses/<name>/index.ts` directories, each with its own `package.json` and
|
|
144
|
+
`README.md`. They live under `.pi/harnesses/` — *not* `.pi/extensions/` — because pi
|
|
145
|
+
auto-discovers and loads everything in `.pi/extensions/`, and these 15 are
|
|
146
|
+
mutually-exclusive harnesses that must be loaded one at a time.
|
|
147
|
+
- **Tooling switched to npm.** `bun` / `bun.lock` are not used; the `justfile` recipes
|
|
148
|
+
point at the new paths and use npm. The `coms-net` hub launches via
|
|
149
|
+
`node --experimental-strip-types` instead of `bun`.
|
|
150
|
+
|
|
151
|
+
### Not ported
|
|
152
|
+
|
|
153
|
+
- The `pure-focus`, `theme-cycler`, and `cross-agent` extensions.
|
|
154
|
+
- `themeMap.ts` and all 11 `.pi/themes/*.json` theme palettes.
|
|
155
|
+
- The Claude Code `statusLine` config and `status_lines/status_line.py`, and the
|
|
156
|
+
`plan_w_team.md` command (it depended on team-agent files absent from the source).
|
|
157
|
+
|
|
158
|
+
### A note on `.pi/settings.json`
|
|
159
|
+
|
|
160
|
+
Upstream shipped a `.pi/settings.json` that only set the (now-stripped) theme and
|
|
161
|
+
registered a prompt directory. This repo already keeps pi prompts in the standard
|
|
162
|
+
`.pi/prompts/` location, so no `.pi/settings.json` is shipped — it would carry nothing
|
|
163
|
+
useful.
|
package/docs/pi-setup.md
ADDED
|
@@ -0,0 +1,416 @@
|
|
|
1
|
+
# pi Setup
|
|
2
|
+
|
|
3
|
+
This guide explains how to use Agent Skills with [pi](https://github.com/badlogic/pi-mono/tree/main/packages/coding-agent) — the terminal coding agent from `pi-mono`. Unlike some harnesses, pi has a **native Agent Skills implementation**, so no prompt hacks are needed for skills: this repo drops in directly.
|
|
4
|
+
|
|
5
|
+
This repo also ships pi-native **prompt templates** for the lifecycle slash commands (`/spec`, `/plan`, `/build`, `/test`, `/review`, `/code-simplify`, `/ship`). These commands add workflow orchestration on top of the underlying skills.
|
|
6
|
+
|
|
7
|
+
## Overview
|
|
8
|
+
|
|
9
|
+
pi natively supports:
|
|
10
|
+
|
|
11
|
+
- `AGENTS.md` / `CLAUDE.md` context files (auto-loaded from cwd, parent dirs, and global config)
|
|
12
|
+
- Skill discovery from well-known directories (`.agents/skills/`, `.pi/skills/`, `~/.pi/agent/skills/`)
|
|
13
|
+
- Explicit skill invocation via `/skill:<name>`
|
|
14
|
+
- Automatic skill loading by the model when intent matches
|
|
15
|
+
- Prompt-template slash commands from `.pi/prompts/*.md`
|
|
16
|
+
|
|
17
|
+
This means you get near-parity with Claude Code:
|
|
18
|
+
|
|
19
|
+
- Skills are selected automatically based on intent
|
|
20
|
+
- Workflows are enforced via `AGENTS.md`
|
|
21
|
+
- Users can explicitly trigger any skill with `/skill:<name>`
|
|
22
|
+
- Users can start lifecycle workflows with `/spec`, `/plan`, `/build`, `/test`, `/review`, `/code-simplify`, and `/ship`
|
|
23
|
+
|
|
24
|
+
No plugin, wrapper, or custom system prompt is required for the core workflow.
|
|
25
|
+
|
|
26
|
+
**Recommended companion package:** install [`pi-ask-user`](https://github.com/edlsh/pi-ask-user) alongside these skills. It adds an interactive `ask_user` tool and bundles an `ask-user` skill, which is already used by this repo's current pi setup for high-stakes or ambiguous decisions.
|
|
27
|
+
|
|
28
|
+
---
|
|
29
|
+
|
|
30
|
+
## Installation
|
|
31
|
+
|
|
32
|
+
The recommended install is **project-scoped using symlinks**:
|
|
33
|
+
|
|
34
|
+
- `.agents/skills/` exposes the skills.
|
|
35
|
+
- `.pi/prompts/` exposes the lifecycle slash commands.
|
|
36
|
+
|
|
37
|
+
pi walks upward from the current working directory looking for project configuration, so once the symlinks exist, every pi session started from inside (or below) the repo picks up the skills and commands automatically. The `AGENTS.md` at the repo root is loaded the same way.
|
|
38
|
+
|
|
39
|
+
1. Clone the repository somewhere stable:
|
|
40
|
+
|
|
41
|
+
```bash
|
|
42
|
+
git clone https://github.com/chankov/agent-skills.git /path/to/agent-skills
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
2. From the project where you want to use the skills, symlink `skills/` into a pi-discoverable path:
|
|
46
|
+
|
|
47
|
+
```bash
|
|
48
|
+
cd /path/to/your-project
|
|
49
|
+
mkdir -p .agents
|
|
50
|
+
ln -s /path/to/agent-skills/skills .agents/skills
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
3. From the same project, symlink the pi-native lifecycle commands into pi's prompt-template directory:
|
|
54
|
+
|
|
55
|
+
```bash
|
|
56
|
+
mkdir -p .pi
|
|
57
|
+
ln -s /path/to/agent-skills/.pi/prompts .pi/prompts
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
This exposes:
|
|
61
|
+
|
|
62
|
+
```text
|
|
63
|
+
/spec
|
|
64
|
+
/plan
|
|
65
|
+
/build
|
|
66
|
+
/test
|
|
67
|
+
/review
|
|
68
|
+
/code-simplify
|
|
69
|
+
/ship
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
If `.pi/prompts` already exists as a real directory, keep it and symlink the individual command files instead:
|
|
73
|
+
|
|
74
|
+
```bash
|
|
75
|
+
ln -s /path/to/agent-skills/.pi/prompts/spec.md .pi/prompts/spec.md
|
|
76
|
+
ln -s /path/to/agent-skills/.pi/prompts/plan.md .pi/prompts/plan.md
|
|
77
|
+
ln -s /path/to/agent-skills/.pi/prompts/build.md .pi/prompts/build.md
|
|
78
|
+
ln -s /path/to/agent-skills/.pi/prompts/test.md .pi/prompts/test.md
|
|
79
|
+
ln -s /path/to/agent-skills/.pi/prompts/review.md .pi/prompts/review.md
|
|
80
|
+
ln -s /path/to/agent-skills/.pi/prompts/code-simplify.md .pi/prompts/code-simplify.md
|
|
81
|
+
ln -s /path/to/agent-skills/.pi/prompts/ship.md .pi/prompts/ship.md
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
4. Install the recommended `pi-ask-user` pi package:
|
|
85
|
+
|
|
86
|
+
```bash
|
|
87
|
+
pi install npm:pi-ask-user
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
This adds:
|
|
91
|
+
|
|
92
|
+
- the interactive `ask_user` tool
|
|
93
|
+
- the bundled `ask-user` skill
|
|
94
|
+
|
|
95
|
+
5. Verify pi can see everything:
|
|
96
|
+
|
|
97
|
+
```bash
|
|
98
|
+
pi
|
|
99
|
+
# then type:
|
|
100
|
+
/skill:
|
|
101
|
+
# pi should autocomplete the full list of agent-skills, plus ask-user if pi packages are enabled
|
|
102
|
+
|
|
103
|
+
# then type:
|
|
104
|
+
/
|
|
105
|
+
# pi should autocomplete /spec, /plan, /build, /test, /review, /code-simplify, and /ship
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
That's it. `AGENTS.md` is already at the repo root and is auto-loaded when pi starts.
|
|
109
|
+
|
|
110
|
+
### Optional: pi extensions
|
|
111
|
+
|
|
112
|
+
This repo also ships pi **extensions** under `.pi/extensions/`. Extensions are TypeScript modules that register tools and commands directly with pi. They come in two kinds: **always-on utilities** that layer onto any session, and selectable **harnesses** that reshape a whole session.
|
|
113
|
+
|
|
114
|
+
The always-on utilities:
|
|
115
|
+
|
|
116
|
+
- `mcp-bridge/` — a reusable factory that turns any stdio MCP server into a pi extension. This is a library consumed by wrapper extensions. Symlink it alongside wrappers so relative imports resolve; when pi discovers it directly, it intentionally registers no tools or commands by itself.
|
|
117
|
+
- `chrome-devtools-mcp/` — bridges the [`chrome-devtools-mcp`](https://www.npmjs.com/package/chrome-devtools-mcp) server into pi as native tools, unlocking the `browser-testing-with-devtools` skill on pi.
|
|
118
|
+
- `compact-and-continue/` — registers the `request_compaction` tool that queues pi context compaction to run after the current agent turn ends, optionally resuming work from a self-contained continuation prompt. Used by `/build` to offer a "Compact & continue" option at slice-approval time.
|
|
119
|
+
|
|
120
|
+
To install, symlink the directories into your project's `.pi/extensions/`:
|
|
121
|
+
|
|
122
|
+
```bash
|
|
123
|
+
mkdir -p .pi/extensions
|
|
124
|
+
ln -s /path/to/agent-skills/.pi/extensions/mcp-bridge .pi/extensions/mcp-bridge
|
|
125
|
+
ln -s /path/to/agent-skills/.pi/extensions/chrome-devtools-mcp .pi/extensions/chrome-devtools-mcp
|
|
126
|
+
ln -s /path/to/agent-skills/.pi/extensions/compact-and-continue .pi/extensions/compact-and-continue
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
Install the shared runtime dependencies used by the symlinked extensions once in the `agent-skills` clone:
|
|
130
|
+
|
|
131
|
+
```bash
|
|
132
|
+
cd /path/to/agent-skills/.pi/extensions
|
|
133
|
+
npm ci
|
|
134
|
+
# If this clone does not have package-lock.json yet, run: npm install
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
Because the project extensions are symlinks into the clone, these dependencies are reused by every project that links the same extension directories.
|
|
138
|
+
|
|
139
|
+
Verify by starting `pi` and running `/chrome_devtools-status` — expect `Chrome DevTools MCP connected. Registered N tool(s).`
|
|
140
|
+
|
|
141
|
+
#### Extension harnesses — orchestration, safety, messaging
|
|
142
|
+
|
|
143
|
+
This repo also ships **15 session harnesses** ported from [disler](https://github.com/disler)'s [`pi-vs-claude-code`](https://github.com/disler/pi-vs-claude-code) project (MIT):
|
|
144
|
+
|
|
145
|
+
- **Orchestration** — `agent-team`, `agent-chain`, `pi-pi`, `subagent-widget`, `system-select`
|
|
146
|
+
- **Safety** — `damage-control`, `damage-control-continue`
|
|
147
|
+
- **Focus** — `purpose-gate`, `tilldone`
|
|
148
|
+
- **UI** — `minimal`, `tool-counter`, `tool-counter-widget`, `session-replay`
|
|
149
|
+
- **Pi-to-Pi messaging** — `coms`, `coms-net`
|
|
150
|
+
|
|
151
|
+
Unlike the utilities above, each harness reshapes the entire pi session, and they are **mutually exclusive** — you load one per session, not all at once. pi auto-discovers and loads *everything* under `.pi/extensions/`, so the harnesses deliberately live in a separate directory — **`.pi/harnesses/`** — which pi does *not* auto-discover. **Never copy or symlink a harness into `.pi/extensions/`**: that would load it on every plain `pi` run, and stacking all 15 aborts startup (`coms` and `coms-net` register clashing CLI flags). Load a single harness explicitly instead — there is nothing to symlink:
|
|
152
|
+
|
|
153
|
+
```bash
|
|
154
|
+
# from the agent-skills clone, via the bundled justfile
|
|
155
|
+
just --list # list every harness recipe
|
|
156
|
+
just ext-agent-team # launch pi with one harness
|
|
157
|
+
|
|
158
|
+
# or directly, from anywhere — point pi -e at the harness file
|
|
159
|
+
pi -e /path/to/agent-skills/.pi/harnesses/tilldone/index.ts
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
The harnesses have their own runtime dependencies (`yaml`, `@sinclair/typebox`) declared in `.pi/harnesses/package.json` — separate from the extension deps above. Install both at once with `just install` from the clone, or run `npm ci` in `.pi/harnesses/` as well. The [pi extension catalog](pi-extensions.md) has the full list, per-extension `README.md` pointers, required environment variables (for `coms-net` and `pi-pi`), and what changed from upstream.
|
|
163
|
+
|
|
164
|
+
Each extension — utility or harness — has its own `README.md` describing what it provides.
|
|
165
|
+
|
|
166
|
+
> Why a generic `mcp-bridge` exists: pi does not yet have first-class MCP infrastructure. The bridge is a stopgap that lets pi consume MCP servers today; it will be deprecated once pi gains native MCP support.
|
|
167
|
+
|
|
168
|
+
### Keeping skills up to date
|
|
169
|
+
|
|
170
|
+
Because `.agents/skills`, `.pi/prompts`, and `.pi/extensions` are symlinks into the cloned `agent-skills` repo, running `git pull` in that clone updates every skill, lifecycle command, and extension in place — no re-copy required.
|
|
171
|
+
|
|
172
|
+
### Alternative scopes
|
|
173
|
+
|
|
174
|
+
- **Global install** — symlink skills into `~/.pi/agent/skills/` and prompts into `~/.pi/agent/prompts/` to make them available in every pi session on the machine, regardless of cwd. You may also symlink `AGENTS.md` into `~/.pi/agent/AGENTS.md` for global workflow context.
|
|
175
|
+
- **Copy instead of symlink** — use `cp -R /path/to/agent-skills/skills .agents/skills` and `cp -R /path/to/agent-skills/.pi/prompts .pi/prompts` if you're on a platform where symlinks are awkward (e.g. plain Windows without developer mode). You'll need to re-copy after updates.
|
|
176
|
+
|
|
177
|
+
### Recommended companion skill
|
|
178
|
+
|
|
179
|
+
If you install `pi-ask-user`, pi will also discover its bundled `ask-user` skill from the installed pi package. This is a strong complement to `agent-skills` because it gives the agent a structured way to stop and ask for an explicit decision before:
|
|
180
|
+
|
|
181
|
+
- architectural or API trade-offs
|
|
182
|
+
- destructive or costly-to-reverse changes
|
|
183
|
+
- ambiguous requirements
|
|
184
|
+
- preference-dependent implementation choices
|
|
185
|
+
|
|
186
|
+
That matches the repo's current pi setup, where `ask-user` is available as a recommended decision-gating skill.
|
|
187
|
+
|
|
188
|
+
### Future work
|
|
189
|
+
|
|
190
|
+
pi supports extensions and skill discovery "from pi packages." Publishing `agent-skills` as a first-class pi package would let users install via pi's own mechanism — out of scope for this guide, but tracked as a future integration.
|
|
191
|
+
|
|
192
|
+
---
|
|
193
|
+
|
|
194
|
+
## How It Works
|
|
195
|
+
|
|
196
|
+
### 1. Skill Discovery
|
|
197
|
+
|
|
198
|
+
pi searches these locations for skills (all are merged):
|
|
199
|
+
|
|
200
|
+
```
|
|
201
|
+
.agents/skills/ ← this install (walked upward from cwd)
|
|
202
|
+
.pi/skills/ ← project scope
|
|
203
|
+
~/.agents/skills/ ← global convention
|
|
204
|
+
~/.pi/agent/skills/ ← pi global config
|
|
205
|
+
<pi packages> ← bundled/installed pi packages (e.g. `pi-ask-user`)
|
|
206
|
+
```
|
|
207
|
+
|
|
208
|
+
Each skill lives in:
|
|
209
|
+
|
|
210
|
+
```
|
|
211
|
+
skills/<skill-name>/SKILL.md
|
|
212
|
+
```
|
|
213
|
+
|
|
214
|
+
### 2. Context Files
|
|
215
|
+
|
|
216
|
+
`AGENTS.md` (and `CLAUDE.md`) are auto-loaded and concatenated from:
|
|
217
|
+
|
|
218
|
+
- `~/.pi/agent/AGENTS.md` (global)
|
|
219
|
+
- Every parent directory walking up from cwd
|
|
220
|
+
- The current directory
|
|
221
|
+
|
|
222
|
+
The repo's `AGENTS.md` encodes the intent-to-skill mapping and workflow rules that make skill selection behave like Claude Code.
|
|
223
|
+
|
|
224
|
+
### 3. Prompt Templates
|
|
225
|
+
|
|
226
|
+
pi also searches for prompt templates in:
|
|
227
|
+
|
|
228
|
+
```
|
|
229
|
+
.pi/prompts/*.md ← this command install (walked upward from cwd)
|
|
230
|
+
~/.pi/agent/prompts/*.md ← pi global command config
|
|
231
|
+
<pi packages> ← bundled/installed pi packages
|
|
232
|
+
```
|
|
233
|
+
|
|
234
|
+
Each Markdown file becomes a slash command by filename. For example:
|
|
235
|
+
|
|
236
|
+
```
|
|
237
|
+
.pi/prompts/spec.md → /spec
|
|
238
|
+
.pi/prompts/code-simplify.md → /code-simplify
|
|
239
|
+
```
|
|
240
|
+
|
|
241
|
+
These lifecycle commands are not replacements for skills. They are workflow entry points that add orchestration and tell the agent which skills to load and follow for the current phase.
|
|
242
|
+
|
|
243
|
+
### 4. Invocation
|
|
244
|
+
|
|
245
|
+
Three ways to trigger the workflow:
|
|
246
|
+
|
|
247
|
+
- **Explicit skill:** type `/skill:<name>` (e.g. `/skill:spec-driven-development`)
|
|
248
|
+
- **Lifecycle command:** type `/spec`, `/plan`, `/build`, `/test`, `/review`, `/code-simplify`, or `/ship`
|
|
249
|
+
- **Automatic:** describe intent in natural language — the model reads `AGENTS.md` and loads the matching skill
|
|
250
|
+
|
|
251
|
+
### 5. Lifecycle Mapping
|
|
252
|
+
|
|
253
|
+
The development lifecycle is encoded in both `AGENTS.md` and the pi prompt templates:
|
|
254
|
+
|
|
255
|
+
- DEFINE → `/spec` → `spec-driven-development`
|
|
256
|
+
- PLAN → `/plan` → `planning-and-task-breakdown`
|
|
257
|
+
- BUILD → `/build` → `incremental-implementation` + `test-driven-development`
|
|
258
|
+
- VERIFY → `/test` → `test-driven-development`; use `debugging-and-error-recovery` when tests or builds fail
|
|
259
|
+
- REVIEW → `/review` → `code-review-and-quality`
|
|
260
|
+
- SIMPLIFY → `/code-simplify` → `code-simplification`
|
|
261
|
+
- SHIP → `/ship` → `shipping-and-launch`
|
|
262
|
+
|
|
263
|
+
---
|
|
264
|
+
|
|
265
|
+
## Usage Examples
|
|
266
|
+
|
|
267
|
+
### Example 1: Feature Development
|
|
268
|
+
|
|
269
|
+
User:
|
|
270
|
+
```
|
|
271
|
+
Add authentication to this app
|
|
272
|
+
```
|
|
273
|
+
|
|
274
|
+
pi behavior:
|
|
275
|
+
- Reads `AGENTS.md`, detects feature work
|
|
276
|
+
- Auto-loads `spec-driven-development`
|
|
277
|
+
- Produces a spec before writing code
|
|
278
|
+
- Progresses to `planning-and-task-breakdown` and implementation skills
|
|
279
|
+
|
|
280
|
+
Equivalent explicit forms:
|
|
281
|
+
```
|
|
282
|
+
/spec Add authentication to this app
|
|
283
|
+
/skill:spec-driven-development
|
|
284
|
+
```
|
|
285
|
+
|
|
286
|
+
---
|
|
287
|
+
|
|
288
|
+
### Example 2: Bug Fix
|
|
289
|
+
|
|
290
|
+
User:
|
|
291
|
+
```
|
|
292
|
+
This endpoint is returning 500 errors
|
|
293
|
+
```
|
|
294
|
+
|
|
295
|
+
pi behavior:
|
|
296
|
+
- Auto-loads `debugging-and-error-recovery`
|
|
297
|
+
- Reproduces → localizes → fixes → adds guards
|
|
298
|
+
|
|
299
|
+
Equivalent explicit forms:
|
|
300
|
+
```
|
|
301
|
+
/test This endpoint is returning 500 errors
|
|
302
|
+
/skill:debugging-and-error-recovery
|
|
303
|
+
```
|
|
304
|
+
|
|
305
|
+
---
|
|
306
|
+
|
|
307
|
+
### Example 3: Code Review
|
|
308
|
+
|
|
309
|
+
User:
|
|
310
|
+
```
|
|
311
|
+
Review this PR
|
|
312
|
+
```
|
|
313
|
+
|
|
314
|
+
pi behavior:
|
|
315
|
+
- Auto-loads `code-review-and-quality`
|
|
316
|
+
- Applies structured review (correctness, design, readability, security, tests)
|
|
317
|
+
|
|
318
|
+
Equivalent explicit forms:
|
|
319
|
+
```
|
|
320
|
+
/review
|
|
321
|
+
/skill:code-review-and-quality
|
|
322
|
+
```
|
|
323
|
+
|
|
324
|
+
---
|
|
325
|
+
|
|
326
|
+
## Agent Expectations (Critical)
|
|
327
|
+
|
|
328
|
+
For the skill system to deliver its value, the agent must:
|
|
329
|
+
|
|
330
|
+
- Check whether a skill applies before acting
|
|
331
|
+
- Invoke the matching skill when one applies
|
|
332
|
+
- Never skip required workflows (spec, plan, test, etc.)
|
|
333
|
+
- Not jump directly to implementation on non-trivial work
|
|
334
|
+
|
|
335
|
+
These rules are enforced by `AGENTS.md`, which pi auto-loads.
|
|
336
|
+
|
|
337
|
+
---
|
|
338
|
+
|
|
339
|
+
## Verification
|
|
340
|
+
|
|
341
|
+
After installing, confirm the integration works:
|
|
342
|
+
|
|
343
|
+
1. Run `pi` from inside the repo (or any subdirectory).
|
|
344
|
+
2. Type `/skill:` and confirm the skill list autocompletes with entries like `spec-driven-development`, `incremental-implementation`, `code-review-and-quality`, and `ask-user`.
|
|
345
|
+
3. Type `/` and confirm the lifecycle commands autocomplete: `/spec`, `/plan`, `/build`, `/test`, `/review`, `/code-simplify`, and `/ship`.
|
|
346
|
+
4. Run `/spec design a new feature for X` — confirm pi expands the command and invokes `spec-driven-development`.
|
|
347
|
+
5. Ask: *"fix this bug"* — confirm pi invokes `debugging-and-error-recovery`, or run `/test` to start a TDD/debugging workflow explicitly.
|
|
348
|
+
6. Give pi an ambiguous or high-stakes request and confirm it can use the `ask_user` tool / `ask-user` skill to request an explicit decision.
|
|
349
|
+
|
|
350
|
+
If skill autocomplete is empty, check that `.agents/skills` points to a directory containing `<skill-name>/SKILL.md` files and that pi was not started with `--no-skills`.
|
|
351
|
+
|
|
352
|
+
If lifecycle command autocomplete is empty, check that `.pi/prompts` points to a directory containing the command Markdown files and run `/reload` or restart pi.
|
|
353
|
+
|
|
354
|
+
If extension loading reports `Cannot find module '@modelcontextprotocol/sdk/client/index.js'`, the extension runtime dependencies are not installed. Run:
|
|
355
|
+
|
|
356
|
+
```bash
|
|
357
|
+
cd /path/to/agent-skills/.pi/extensions
|
|
358
|
+
npm ci
|
|
359
|
+
```
|
|
360
|
+
|
|
361
|
+
The harnesses install separately — if a harness reports `Cannot find module 'yaml'` or `'@sinclair/typebox'`, run `npm ci` in `.pi/harnesses/` as well (or `just install` from the clone, which does both).
|
|
362
|
+
|
|
363
|
+
Then run `/reload` or restart pi.
|
|
364
|
+
|
|
365
|
+
---
|
|
366
|
+
|
|
367
|
+
## Limitations
|
|
368
|
+
|
|
369
|
+
- Automatic skill loading depends on the underlying model's compliance with `AGENTS.md` rules.
|
|
370
|
+
- Prompt-template commands expand into instructions; they do not mechanically execute `/skill:<name>`. The pi-specific prompt templates therefore explicitly tell the agent which skills to load and follow.
|
|
371
|
+
- Windows without developer mode may not support symlinks — use the copy variant instead.
|
|
372
|
+
- Global `AGENTS.md` applies to every project when using the global-install alternative; pi concatenates context files, so this is usually additive, not destructive, but be aware of it.
|
|
373
|
+
|
|
374
|
+
---
|
|
375
|
+
|
|
376
|
+
## Recommended Workflow
|
|
377
|
+
|
|
378
|
+
Just use natural language:
|
|
379
|
+
|
|
380
|
+
- "Design a feature"
|
|
381
|
+
- "Plan this change"
|
|
382
|
+
- "Implement this"
|
|
383
|
+
- "Fix this bug"
|
|
384
|
+
- "Review this"
|
|
385
|
+
|
|
386
|
+
Or invoke lifecycle commands when you want the full workflow prompt:
|
|
387
|
+
|
|
388
|
+
- `/spec`
|
|
389
|
+
- `/plan`
|
|
390
|
+
- `/build`
|
|
391
|
+
- `/test`
|
|
392
|
+
- `/review`
|
|
393
|
+
- `/code-simplify`
|
|
394
|
+
- `/ship`
|
|
395
|
+
|
|
396
|
+
Or invoke individual skills directly when you want precise control:
|
|
397
|
+
|
|
398
|
+
- `/skill:spec-driven-development`
|
|
399
|
+
- `/skill:planning-and-task-breakdown`
|
|
400
|
+
- `/skill:incremental-implementation`
|
|
401
|
+
- `/skill:debugging-and-error-recovery`
|
|
402
|
+
- `/skill:code-review-and-quality`
|
|
403
|
+
|
|
404
|
+
---
|
|
405
|
+
|
|
406
|
+
## Summary
|
|
407
|
+
|
|
408
|
+
pi integration works by leveraging pi's **native** Agent Skills and prompt-template support:
|
|
409
|
+
|
|
410
|
+
- Symlink `skills/` into `.agents/skills/`
|
|
411
|
+
- Symlink `.pi/prompts/` into the target project's `.pi/prompts/`
|
|
412
|
+
- Install the recommended `pi-ask-user` pi package for interactive decision gating
|
|
413
|
+
- Let pi auto-load `AGENTS.md` from the repo root
|
|
414
|
+
- Use `/skill:<name>`, lifecycle commands like `/spec`, or natural language to trigger workflows
|
|
415
|
+
|
|
416
|
+
The result is a fully agent-driven, production-grade engineering workflow — with minimal setup: one symlink for this repo's skills, one symlink for lifecycle commands, plus an optional but recommended `pi-ask-user` install for interactive decision gating.
|