Pi Agent Rust
Use This Skill When
- You are working inside
pi_agent_rust and need the fastest path to safe, verified edits.
- You are touching provider/tool/session/extension behavior and need targeted triage.
- You are changing installer/uninstaller/skill install behavior and need deterministic safety checks.
- You need symptom-first debugging playbooks instead of ad-hoc command hunting.
60-Second Bootstrap
export CARGO_TARGET_DIR="/data/tmp/pi_agent_rust/${USER:-agent}"
export TMPDIR="/data/tmp/pi_agent_rust/${USER:-agent}/tmp"
mkdir -p "$TMPDIR"
rch exec -- cargo check --all-targets
rch exec -- cargo clippy --all-targets -- -D warnings
cargo fmt --check
bash tests/installer_regression.sh
Symptom Router
| Symptom |
First 3 Commands |
| Provider stream/tool-call regression |
cargo test provider_streaming -- --nocapture ; `rg -n "stream |
| Session replay/index drift |
cargo test session -- --nocapture ; `rg -n "Session |
| Extension policy/runtime failure |
cargo test extension -- --nocapture ; `rg -n "policy |
| Installer/uninstaller/skill issue |
bash tests/installer_regression.sh ; `rg -n "AGENT_SKILL_STATUS |
| Interactive vs RPC divergence |
cargo test e2e_rpc -- --nocapture ; `rg -n "interactive |
For deeper diagnosis, use references/DEBUGGING-PLAYBOOKS.md.
Non-Negotiables
- Read
AGENTS.md first, then follow it exactly.
- Do not delete files or run destructive git/filesystem commands.
- Keep edits in-place; avoid creating variant files for the same purpose.
- Use
main semantics in docs/scripts; do not introduce master.
- Prefer
rg for fast text recon and ast-grep for structural matching/refactors.
- Prefer
rch exec -- <cargo ...> for heavy compile/test workloads.
- After substantive edits, run compile/lint/format gates and the smallest relevant regression slice.
Core Workflow
Changed Files -> Required Tests
| Changed Files (examples) |
Minimum Required Tests |
install.sh, uninstall.sh, .claude/skills/pi-agent-rust/** |
bash -n install.sh uninstall.sh tests/installer_regression.sh ; shellcheck -x install.sh uninstall.sh tests/installer_regression.sh ; bash tests/installer_regression.sh ; bash scripts/skill-smoke.sh |
src/providers/**, src/provider.rs, src/sse.rs |
cargo test provider_streaming ; cargo test conformance |
src/session.rs, src/session_index.rs, src/session_test.rs |
cargo test session ; cargo test conformance |
src/extensions.rs, src/extensions_js.rs |
cargo test extension ; cargo test conformance |
src/tools.rs |
cargo test tools ; cargo test conformance |
src/interactive.rs, src/rpc.rs, src/main.rs |
cargo test e2e_rpc ; cargo test conformance |
Do Not Run Yet
Run these only after targeted repro + focused slice indicates need:
- Broad
cargo test across entire workspace when a narrower slice already reproduces.
- Heavy multi-surface runs before confirming changed-file impact.
- Repeated full conformance loops while the core failing slice is still unstable.
High-Value Commands
# Fast recon
git status --short
rg -n "install|uninstall|skill|checksum|sigstore|completion|provider|session|extension" \
install.sh uninstall.sh README.md tests/installer_regression.sh src/
# Installer + skill safety gates
bash -n install.sh uninstall.sh tests/installer_regression.sh
shellcheck -x install.sh uninstall.sh tests/installer_regression.sh
bash tests/installer_regression.sh
bash scripts/skill-smoke.sh
# Rust gates
rch exec -- cargo check --all-targets
rch exec -- cargo clippy --all-targets -- -D warnings
cargo fmt --check
For an expanded command cookbook, see references/COMMANDS.md.
For deep incident triage, see references/DEBUGGING-PLAYBOOKS.md.
Critical Files
src/main.rs: CLI entry and mode dispatch.
src/agent.rs: agent loop and tool iteration behavior.
src/provider.rs: provider trait contract.
src/providers/: provider implementations and factory wiring.
src/tools.rs: built-in tools (read, write, edit, bash, grep, find, ls).
src/session.rs: JSONL session persistence.
src/session_index.rs: session index and metadata cache.
src/extensions.rs + src/extensions_js.rs: extension policy and QuickJS bridge.
src/interactive.rs + src/rpc.rs: TUI and RPC/stdin surfaces.
install.sh + uninstall.sh: install lifecycle, migration, and skill management.
tests/installer_regression.sh: installer regression harness.
scripts/skill-smoke.sh: skill integrity + inline-sync validation.
Known Footguns
- Custom artifact install paths without compatible release context can fall back incorrectly if not explicitly guarded.
- Skill status can become misleading on mixed outcomes unless partial/failure branches are explicit.
- Uninstall logic must enforce both marker checks and expected destination path shape.
- Installer progress/status text should stay on stderr when stdout is used for data plumbing.
- Bundled skill and inline fallback can silently drift unless explicitly checked.
Patch Patterns
Pattern 1: Mixed Outcome Status Clarity
# BEFORE: everything collapsed into "skipped custom"
if [ "$skipped_custom" -ge 1 ]; then
AGENT_SKILL_STATUS="skipped (existing custom skill)"
fi
# AFTER: distinguish custom-skip from write failure
if [ "$skipped_custom" -ge 1 ] && [ "$failed_writes" -ge 1 ]; then
AGENT_SKILL_STATUS="partial (custom skill kept; other install failed)"
elif [ "$skipped_custom" -ge 1 ]; then
AGENT_SKILL_STATUS="skipped (existing custom skill)"
fi
Pattern 2: Safe Skill Replacement
# BEFORE: remove destination before validating copy result
rm -rf "$destination"
cp "$source" "$destination/SKILL.md"
# AFTER: stage then atomically move into place
staged="$(mktemp -d ...)"
cp "$source" "$staged/SKILL.md"
mv "$staged" "$destination"
Failure Triage
- Installer summary/status mismatch:
trace
AGENT_SKILL_STATUS, CHECKSUM_STATUS, and COMPLETIONS_STATUS in install.sh.
- Install/uninstall safety concern:
verify marker checks and expected destination guards in both scripts.
- Provider/session/extension regressions:
use symptom router, then follow
references/DEBUGGING-PLAYBOOKS.md.
- Docs drift:
ensure
README.md flags/examples match current installer behavior.
Done Criteria
- Changed-file matrix minimum tests passed.
- Compile/lint/format checks passed for touched surfaces.
- Installer/skill changes pass
tests/installer_regression.sh and scripts/skill-smoke.sh.
- Behavior is explicit on failure paths; no silent fallback surprises.
- Skill docs and inline fallback remain aligned and current.
1---2name: pi-agent-rust3description: Speeds up pi_agent_rust development and verification workflows. Use when editing providers, tools, sessions, extensions, installer/uninstaller logic, or triaging regressions in this repo.4---56<!-- pi_agent_rust installer managed skill -->78# Pi Agent Rust910## Use This Skill When1112- You are working inside `pi_agent_rust` and need the fastest path to safe, verified edits.13- You are touching provider/tool/session/extension behavior and need targeted triage.14- You are changing installer/uninstaller/skill install behavior and need deterministic safety checks.15- You need symptom-first debugging playbooks instead of ad-hoc command hunting.1617## 60-Second Bootstrap1819```bash20export CARGO_TARGET_DIR="/data/tmp/pi_agent_rust/${USER:-agent}"21export TMPDIR="/data/tmp/pi_agent_rust/${USER:-agent}/tmp"22mkdir -p "$TMPDIR"2324rch exec -- cargo check --all-targets25rch exec -- cargo clippy --all-targets -- -D warnings26cargo fmt --check27bash tests/installer_regression.sh28```2930## Symptom Router3132| Symptom | First 3 Commands |33|---|---|34| Provider stream/tool-call regression | `cargo test provider_streaming -- --nocapture` ; `rg -n "stream|tool|delta|event|SSE" src/providers src/sse.rs` ; `cargo test conformance` |35| Session replay/index drift | `cargo test session -- --nocapture` ; `rg -n "Session|save|open|index|jsonl|sqlite" src/session.rs src/session_index.rs` ; `cargo test conformance` |36| Extension policy/runtime failure | `cargo test extension -- --nocapture` ; `rg -n "policy|hostcall|capability|quickjs|deny|allow" src/extensions.rs src/extensions_js.rs` ; `cargo test conformance` |37| Installer/uninstaller/skill issue | `bash tests/installer_regression.sh` ; `rg -n "AGENT_SKILL_STATUS|CHECKSUM_STATUS|SIGSTORE_STATUS|COMPLETIONS_STATUS" install.sh` ; `rg -n "managed skill|expected skill directory|PIAR_AGENT_SKILL" uninstall.sh` |38| Interactive vs RPC divergence | `cargo test e2e_rpc -- --nocapture` ; `rg -n "interactive|rpc|stdin|event|session" src/main.rs src/interactive.rs src/rpc.rs` ; `cargo test conformance` |3940For deeper diagnosis, use `references/DEBUGGING-PLAYBOOKS.md`.4142## Non-Negotiables4344- Read `AGENTS.md` first, then follow it exactly.45- Do not delete files or run destructive git/filesystem commands.46- Keep edits in-place; avoid creating variant files for the same purpose.47- Use `main` semantics in docs/scripts; do not introduce `master`.48- Prefer `rg` for fast text recon and `ast-grep` for structural matching/refactors.49- Prefer `rch exec -- <cargo ...>` for heavy compile/test workloads.50- After substantive edits, run compile/lint/format gates and the smallest relevant regression slice.5152## Core Workflow5354- [ ] Recon: identify exact change surface and invariants.55- [ ] Implement: minimal, behavior-focused patch with explicit failure semantics.56- [ ] Validate: targeted tests first, broaden only as needed.57- [ ] Verify UX: error/status output is explicit, stable, and non-ambiguous.58- [ ] Sync docs: update `README.md` when flags/behavior/user guidance changed.5960## Changed Files -> Required Tests6162| Changed Files (examples) | Minimum Required Tests |63|---|---|64| `install.sh`, `uninstall.sh`, `.claude/skills/pi-agent-rust/**` | `bash -n install.sh uninstall.sh tests/installer_regression.sh` ; `shellcheck -x install.sh uninstall.sh tests/installer_regression.sh` ; `bash tests/installer_regression.sh` ; `bash scripts/skill-smoke.sh` |65| `src/providers/**`, `src/provider.rs`, `src/sse.rs` | `cargo test provider_streaming` ; `cargo test conformance` |66| `src/session.rs`, `src/session_index.rs`, `src/session_test.rs` | `cargo test session` ; `cargo test conformance` |67| `src/extensions.rs`, `src/extensions_js.rs` | `cargo test extension` ; `cargo test conformance` |68| `src/tools.rs` | `cargo test tools` ; `cargo test conformance` |69| `src/interactive.rs`, `src/rpc.rs`, `src/main.rs` | `cargo test e2e_rpc` ; `cargo test conformance` |7071## Do Not Run Yet7273Run these only after targeted repro + focused slice indicates need:7475- Broad `cargo test` across entire workspace when a narrower slice already reproduces.76- Heavy multi-surface runs before confirming changed-file impact.77- Repeated full conformance loops while the core failing slice is still unstable.7879## High-Value Commands8081```bash82# Fast recon83git status --short84rg -n "install|uninstall|skill|checksum|sigstore|completion|provider|session|extension" \85 install.sh uninstall.sh README.md tests/installer_regression.sh src/8687# Installer + skill safety gates88bash -n install.sh uninstall.sh tests/installer_regression.sh89shellcheck -x install.sh uninstall.sh tests/installer_regression.sh90bash tests/installer_regression.sh91bash scripts/skill-smoke.sh9293# Rust gates94rch exec -- cargo check --all-targets95rch exec -- cargo clippy --all-targets -- -D warnings96cargo fmt --check97```9899For an expanded command cookbook, see `references/COMMANDS.md`.100For deep incident triage, see `references/DEBUGGING-PLAYBOOKS.md`.101102## Critical Files103104- `src/main.rs`: CLI entry and mode dispatch.105- `src/agent.rs`: agent loop and tool iteration behavior.106- `src/provider.rs`: provider trait contract.107- `src/providers/`: provider implementations and factory wiring.108- `src/tools.rs`: built-in tools (`read`, `write`, `edit`, `bash`, `grep`, `find`, `ls`).109- `src/session.rs`: JSONL session persistence.110- `src/session_index.rs`: session index and metadata cache.111- `src/extensions.rs` + `src/extensions_js.rs`: extension policy and QuickJS bridge.112- `src/interactive.rs` + `src/rpc.rs`: TUI and RPC/stdin surfaces.113- `install.sh` + `uninstall.sh`: install lifecycle, migration, and skill management.114- `tests/installer_regression.sh`: installer regression harness.115- `scripts/skill-smoke.sh`: skill integrity + inline-sync validation.116117## Known Footguns118119- Custom artifact install paths without compatible release context can fall back incorrectly if not explicitly guarded.120- Skill status can become misleading on mixed outcomes unless partial/failure branches are explicit.121- Uninstall logic must enforce both marker checks and expected destination path shape.122- Installer progress/status text should stay on stderr when stdout is used for data plumbing.123- Bundled skill and inline fallback can silently drift unless explicitly checked.124125## Patch Patterns126127### Pattern 1: Mixed Outcome Status Clarity128129```bash130# BEFORE: everything collapsed into "skipped custom"131if [ "$skipped_custom" -ge 1 ]; then132 AGENT_SKILL_STATUS="skipped (existing custom skill)"133fi134135# AFTER: distinguish custom-skip from write failure136if [ "$skipped_custom" -ge 1 ] && [ "$failed_writes" -ge 1 ]; then137 AGENT_SKILL_STATUS="partial (custom skill kept; other install failed)"138elif [ "$skipped_custom" -ge 1 ]; then139 AGENT_SKILL_STATUS="skipped (existing custom skill)"140fi141```142143### Pattern 2: Safe Skill Replacement144145```bash146# BEFORE: remove destination before validating copy result147rm -rf "$destination"148cp "$source" "$destination/SKILL.md"149150# AFTER: stage then atomically move into place151staged="$(mktemp -d ...)"152cp "$source" "$staged/SKILL.md"153mv "$staged" "$destination"154```155156## Failure Triage157158- Installer summary/status mismatch:159 trace `AGENT_SKILL_STATUS`, `CHECKSUM_STATUS`, and `COMPLETIONS_STATUS` in `install.sh`.160- Install/uninstall safety concern:161 verify marker checks and expected destination guards in both scripts.162- Provider/session/extension regressions:163 use symptom router, then follow `references/DEBUGGING-PLAYBOOKS.md`.164- Docs drift:165 ensure `README.md` flags/examples match current installer behavior.166167## Done Criteria168169- Changed-file matrix minimum tests passed.170- Compile/lint/format checks passed for touched surfaces.171- Installer/skill changes pass `tests/installer_regression.sh` and `scripts/skill-smoke.sh`.172- Behavior is explicit on failure paths; no silent fallback surprises.173- Skill docs and inline fallback remain aligned and current.