mcpField
P
pi-agent-rust

pi-agent-rust

github.com/evolv3-aiOther140 installsUpdated 14w ago
Repository

About pi-agent-rust

pi-agent-rust is a development and maintenance skill for the Rust-based Pi Agent project. It guides contributors through targeted debugging, code changes, and validation across providers, sessions, extensions, CLI, RPC, and installer components.

Key features

  1. 01Symptom-based debugging command guides
  2. 02Targeted test and validation requirements
  3. 03Provider and session regression workflows
  4. 04Extension policy and runtime diagnostics
  5. 05Installer and skill safety checks
  6. 06Codebase structure and patch guidance

Use cases

  1. 01Investigating provider streaming regressions
  2. 02Diagnosing session indexing or replay issues
  3. 03Checking extension runtime failures
  4. 04Validating installer changes

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/evolv3-ai/vibe-skills --skill pi-agent-rust

After installing, type/pi-agent-rustin Claude Code to confirm it loaded.

Details

From the project README

Pi Agent Rust

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 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 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 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 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.

Comments

Markdown supported