From example-skills
Dry-run audit and targeted cleanup for shell command history via atuin (stats, prune, dedup). Previews changes before applying; extensible to zsh/bash/mcfly.
How this skill is triggered — by the user, by Claude, or both
Slash command
/example-skills:shell-history-hygieneThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
- User explicitly asks to audit / clean / dedup / prune their shell history (atuin or otherwise)
atuin stats / prune / dedup one-liner and asked for review or improvementatuin stats today, atuin history prune, atuin history dedup.zsh_history line dedup, size limits.bash_history line dedupThis skill currently ships the atuin backend at scripts/atuin-audit.sh. Add sibling scripts under scripts/ as backends are added.
The audit is dry-run only. It produces three things:
atuin stats today + counts.The skill never runs the apply commands itself. Separation of audit from apply is deliberate — it's the kill-switch against accidental history destruction.
${CLAUDE_SKILL_ROOT}/scripts/atuin-audit.sh # dedup --before defaults to today
${CLAUDE_SKILL_ROOT}/scripts/atuin-audit.sh 2026-05-01 # dedup --before <date>
If ${CLAUDE_SKILL_ROOT} isn't resolved by the harness, use the absolute path:
/Users/4jp/Code/organvm/a-i--skills/skills/tools/shell-history-hygiene/scripts/atuin-audit.sh
Preview artifacts land alongside the script:
atuin-prune-preview-YYYY-MM-DD.txtatuin-dedup-preview-YYYY-MM-DD.txtDated filenames preserve a trail — re-runs don't clobber prior previews.
| Headline | Meaning |
|---|---|
prune entries: N | atuin's own "Found N entries to prune" — structural no-ops (empty commands, repeated clear, paste-glitch duplicates). Almost always safe to prune. |
dedup duplicates: M | atuin's own "Found M duplicates to delete" — exact-string repeats older than --before. Inspect a sample before applying; large M (10K+) is normal across months of history. |
(N lines in preview, multi-line commands expand) | The preview file may have more lines than the entity count because multi-line commands (HEREDOCs, for loops) take multiple lines each. Trust the headline number, use the line count for file-size context. |
After the human eyeballs the preview and approves:
atuin history prune # apply prune
atuin history dedup --before "$BEFORE_DATE" --dupkeep 1 # apply dedup (keep 1 copy per duplicate string)
Run in that order. Prune first removes the structural no-ops; dedup then collapses the remaining exact-string repeats. Reverse order works but does redundant scanning.
--dupkeep 0 is destructive (removes ALL copies). Never recommend it — --dupkeep 1 is the right default.
set -euo pipefail, never invokes apply commands.atuin not on PATH — script exits 1 with clear error. No partial action.wc -l) so the count is accurate even when multi-line commands inflate the line total.--before date in the future — atuin accepts it; dedup just considers all history. Inspect preview before applying.Triggered by a 2026-05-21 review of an ad-hoc one-liner that had a tee cmd > file.txt bug — wrote two files, swallowed dedup output. The fix evolved into a dated-preview script, then into this skill so the workflow lives somewhere discoverable rather than as scratch material under ~/_dot-config/scratch/. Per Rule #34 ("merge into ideal form") the function clarified beyond scratch/'s purpose, so it migrated here.
Original artifact birthplace: ~/_dot-config/scratch/atuin-audit.sh (worktree commit 6d6ef39 on _dot-config main). This skill's scripts/atuin-audit.sh is the canonical-from-here copy.
npx claudepluginhub a-organvm/a-i--skills --plugin document-skillsProvides a checklist for code reviews covering functionality, security, performance, maintainability, tests, and quality. Use for pull requests, audits, team standards, and developer training.