CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

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.

SKILL.md
Quality
Evals
Security

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

Dicklesworthstone/pi_agent_rust

Path

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

Last updated
First committed

Is this your skill?

If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.