paseo-agent-cleanup · git:20261020.1d9fdc5 · 2026-10-20 · sha256 a5d8aa2b66821d64

paseo-agent-cleanup git:20261020.1d9fdc5A

Immutable. This exact content never changes and is served at /api/v1/blob/a5d8aa2b66821d64.

---
name: paseo-agent-cleanup
description: >-
  Safely inspect and archive explicitly selected or clearly disposable Paseo
  agents and test workspaces. Use when the user asks to preview cleanup
  candidates, reduce agent-list clutter, or archive explicit test, validation,
  fixture, or temporary sessions. Ordinary idle agents are resumable and are
  never auto-archived based on status alone. Bare invocation is dry-run; active
  agents and unapproved workspaces remain protected, and delete, stop, kill,
  restart, history, timeline, and resume are never used for cleanup.
---

# Paseo Agent Cleanup

Archive agents the user selected or that are clearly disposable. Agent archive
is a soft delete: the record stays in Paseo (`paseo agent ls -a`). Run the
bundled helper by its absolute path:

```bash
node "<skill-dir>/scripts/agent-cleanup.js" --json                  # preview (default)
node "<skill-dir>/scripts/agent-cleanup.js" --agent <full-id> --archive
node "<skill-dir>/scripts/agent-cleanup.js" --pattern '<regex>' --archive
node "<skill-dir>/scripts/agent-cleanup.js" --auto                  # disposable markers only
node "<skill-dir>/scripts/agent-cleanup.js" --workspace <full-id> --archive --yes
```

When the user names the agents or the pattern, archive directly; preview only
when the selection is unclear. `--auto` picks agents with test, fixture,
validation, temp or similar markers in their name, cwd or project.

## Guards (enforced by the helper)

- Only `idle`, `error` or `closed` agents can be archived. Running,
  initializing and unknown states stay protected, even with an exact ID.
- Pending permissions or unfinished attention block archive.
- Idle alone never selects an agent; ordinary idle agents stay resumable.
- Workspaces need an exact ID and `--yes`: archive takes their agents and
  terminals and may remove the managed worktree. Any active or
  permission-pending child blocks it. A test-like title alone does not
  authorize a workspace.
- Ambiguous short IDs are refused; use full IDs.
- Never use delete, stop, kill, restart, history, timeline or resume for cleanup.

Each archive gets a fresh precheck and a postcheck against a complete paginated
snapshot from the installed Paseo client. An unacknowledged or unverified
archive halts the rest; inspect fresh state instead of retrying blindly. The
checks narrow but do not close the read-to-archive race, so do not call them
atomic.

## Runtime and fallback

Needs Node and an installed Paseo desktop app or npm CLI. For a custom install,
set both `PASEO_CLEANUP_CLIENT_MODULE` and `PASEO_CLEANUP_NODE`. If the client
cannot be loaded, use the MCP flow in [references/cleanup.md](references/cleanup.md)
with the same guards.

## Report

What was archived (with acknowledgement and postcheck), what was skipped and
why, and any partial or unverified effect.