Skip to content
FunCoding

pi-agent-rust

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.

Star
1,888
Last commit
Oct 13, 2026

.claude/skills/pi-agent-rust/SKILL.md

View on GitHub

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

SymptomFirst 3 Commands
Provider stream/tool-call regressioncargo test --test provider_streaming -- --nocapture ; `rg -n "stream
Session replay/index driftcargo test session -- --nocapture ; `rg -n "Session
Extension policy/runtime failurecargo test extension -- --nocapture ; `rg -n "policy
Installer/uninstaller/skill issuebash tests/installer_regression.sh ; `rg -n "AGENT_SKILL_STATUS
Interactive vs RPC divergencecargo test --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

  • Recon: identify exact change surface and invariants.
  • Implement: minimal, behavior-focused patch with explicit failure semantics.
  • Validate: targeted tests first, broaden only as needed.
  • Verify UX: error/status output is explicit, stable, and non-ambiguous.
  • Sync docs: update README.md when flags/behavior/user guidance changed.

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.rscargo test --test provider_streaming ; cargo test --test e2e_provider_streaming ; cargo test conformance
src/session.rs, src/session_index.rs, src/session_test.rscargo test session ; cargo test conformance
src/extensions.rs, src/extensions_js.rscargo test extension ; cargo test conformance
src/tools.rscargo test tools ; cargo test conformance
src/interactive.rs, src/rpc.rs, src/main.rscargo test --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.

Similar Skills

receiving-code-review

OBobra/superpowers298k2,631 new stars in the last 7 days

requesting-code-review

OBobra/superpowers298k2,631 new stars in the last 7 days

systematic-debugging

OBobra/superpowers298k2,631 new stars in the last 7 days

code-review

MAmattpocock/skills288k10,178 new stars in the last 7 days

codebase-design

MAmattpocock/skills288k10,178 new stars in the last 7 days

scaffold-exercises

MAmattpocock/skills288k10,178 new stars in the last 7 days