Files
2026-07-13 12:40:00 +08:00

144 lines
3.4 KiB
Markdown

# Pi Agent Setup
How to use planning-with-files with [Pi Coding Agent](https://pi.dev).
---
## Installation
### Recommended: Install from npm
```bash
pi install npm:pi-planning-with-files
```
This package now installs **both**:
- Skill: `planning-with-files` (3-file planning workflow)
- Extension: `planning-with-files` hook parity runtime
### Manual Install (repo copy)
```bash
# Clone repo
git clone https://github.com/OthmanAdi/planning-with-files.git
cd planning-with-files
# Copy skill package into your Pi skills directory
mkdir -p ~/.pi/agent/skills/planning-with-files
cp -r .pi/skills/planning-with-files/* ~/.pi/agent/skills/planning-with-files/
```
---
## What Pi Now Supports
Pi integration provides Claude-style lifecycle behavior via extension events:
- Session catchup on `session_start`
- Passive plan status before approval
- Plan context reminder/injection on `before_agent_start` after `/plan-execute`
- Pre-tool plan recitation equivalent on `tool_call` after `/plan-execute`
- Post-write reminders on `tool_result` after `/plan-execute`
- Auto-continue guard on `agent_end` after `/plan-execute` (limit: 3)
- Pre-compaction reminder on `session_before_compact`
- Plan attestation guard (`[PLAN TAMPERED — injection blocked]`)
---
## Mode System (DeepSeek-aware)
The extension supports four modes:
- `auto` (default):
- DeepSeek model -> `cache-safe`
- Other models -> `parity`
- `parity`: maximum Claude-equivalent behavior (dynamic plan injection)
- `cache-safe`: stable fixed reminder for better DeepSeek KV-cache hit rate
- `notify`: UI notifications only, no conversation injection
### Configure via environment variable
```bash
PWF_MODE=auto pi
PWF_MODE=parity pi
PWF_MODE=cache-safe pi
PWF_MODE=notify pi
```
### Configure via settings
Project-level (`.pi/settings.json`) overrides global (`~/.pi/agent/settings.json`):
```json
{
"planningWithFiles": {
"mode": "auto"
}
}
```
---
## Commands
After installation, these extension commands are available:
- `/plan-status` — show current plan counts and paths
- `/plan-attest [--show|--clear]` — manage plan SHA-256 attestation
- `/plan-execute` — approve the active plan and enable hook activation
- `/plan-execute reset` — return the active plan to passive review mode
- `/plan-goal <text|default|clear>` — set/clear continuation goal text
- `/plan-loop [10m] [prompt...]` — periodic planning tick; use `stop` to cancel
---
## Usage
Start with:
```bash
/skill:planning-with-files
```
Then ask Pi to create/update:
- `task_plan.md`
- `findings.md`
- `progress.md`
Review and edit the plan until it matches your intent. During this review
stage, the extension stays passive: it may show plan status, but it does not
inject plan context, recite the plan before tools, or auto-continue.
When you are ready to execute, run:
```text
/plan-execute
```
For long tasks, keep `task_plan.md` as the source of truth and let the activated
hooks/extension events enforce the loop.
---
## Troubleshooting
1. Confirm package installed:
```bash
pi list
```
2. Reload runtime:
```bash
/reload
```
3. Check skill and extension paths:
- skill: `.pi/skills/planning-with-files/`
- extension: `extensions/planning-with-files/index.ts`
4. If plan injection is blocked, run:
```bash
/plan-attest --show
```
Then re-attest intentionally changed plans:
```bash
/plan-attest
```