Prune the attic
First, in the same shell command as anything below, locate the script:
ATTIC_JS=$(ls -d "${CODEX_HOME:-$HOME/.codex}"/plugins/cache/attic/attic/*/skills/attic/scripts/attic.js "${CODEX_HOME:-$HOME/.codex}"/skills/attic/scripts/attic.js "$HOME"/.agents/skills/attic/scripts/attic.js .agents/skills/attic/scripts/attic.js 2>/dev/null | sort -V | tail -1)
node "$ATTIC_JS" prune $ARGUMENTS
Dry run is the default. The command lists candidates and moves nothing
until --apply is passed.
- Run it without
--applyfirst, always. Show the candidate list. - Archiving is not deletion: items move to
.attic/archive/, stay recallable by/attic-recall, and simply stop being injected. Say this, because "prune" sounds destructive and users hesitate. - Ask for confirmation before
--apply. Never apply in the same turn the user first mentions pruning, unless they explicitly said to go ahead. - Pinned items are skipped automatically. Report how many were skipped.
- Restore anything with
node .../attic.js archive <slug> --restore.
Defaults to items older than 90 days. --kind output is the safest filter,
since stale command output ages worst.
Never delete an item file. Never pass --apply without the user having seen
the candidate list.