cleanuplisted
Install: claude install-skill Nowely/codex-delegate
Run the script, show its listing as it is, propose a set, and wait for the
user's word. Speak in short sentences when proposing, when clarifying, after
deleting, and on every refusal or error. Read the JSON yourself for the
numbers; never read it, paths or exit codes to the user, and never retell the
listing in your own words.
Every sentence quoted below is a model of what to say, not text to copy out.
Say it in the user's own language, keeping the names, counts and reasons the
command gave and inventing none; a listing block is the one thing shown
exactly as the command printed it.
## The cycle
1. Run the listing with the Bash description "List files left by
codex-delegate."
F="$(mktemp "${TMPDIR:-/tmp}/codex-delegate-cleanup.XXXXXXXX")"
CLAUDE_PLUGIN_DATA="${CLAUDE_PLUGIN_DATA}" node "${CLAUDE_PLUGIN_ROOT}/skills/seat/scripts/cleanup.mjs" --list --json >"$F" && cat "$F" && echo "snapshot: $F"
`mktemp` gives each listing its own file. A name built from the shell's
`$$` does not: two listings in one shell would share it, and a number from
the first would then be read against the second. Keep the snapshot path
from the last line; step 3 needs that exact path. Show the `text`
field to the user in one code block, unchanged. It is the listing: numbered
items, their sizes, when they last changed, whether each is suggested,
selectable by its number or kept, and why. Say nothing about the items
yourself. An empty inventory is "I found no