skills/tidy/SKILL.md
ODIN's compress-operations dispatcher under the Compressor/Extender role. Invoke on "tidy", "clean up", "tidy this file/memory/workspace/git/docs", or when active context (current file, diff, stack, memory directory) has structural rot to resolve before touching behavior. Detects target domain from context and routes to the sibling skill. Requires explicit target or clear active-context signal — do not invoke speculatively.
npx skillsauth add outlinedriven/odin-codex-plugin tidyInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Compress first. Before adding complexity, reduce coupling. Before changing behavior, improve structure. This skill detects what needs tidying from context and routes to the right sibling skill. Domain procedures live in the siblings — this skill owns only scope detection, dispatch, and the output contract.
Invariants:
Inspect context in priority order and dispatch to the first matching domain:
| Signal | Domain | Dispatch to |
|---|---|---|
| File path(s), active diff, or cargo/dune target named | Code | cleanup-codebase skill |
| memory/ directory, MEMORY.md, or memory file(s) named | Memory | memory-clean then memory-update skills |
| .outline/, /tmp scratch, *.tmp, *.bak, repomix packs | Workspace | Inline (see below) |
| git sl, commit stack, commit message(s) named | Git | git-branchless skill + atomic-commit skill |
| Docs, comments, ADRs, READMEs, plan files named | Docs | Inline (see below) |
| User explicitly says "tidy ICM" or names an ICM topic | ICM state | Inline (see below) |
| No clear signal | — | Ask: "What are we tidying — code, memory, workspace, git, docs, or ICM?" |
These three domains are handled inline without a dedicated sibling skill.
fd -t f -E '.git' -E 'target' -E '_build' \
'(\.(tmp|bak|outline)|repomix-output)' .
fd -t f /tmp -g '<session-prefix>-*' 2>/dev/null
rip (not rm). Report count and paths.TODO/FIXME (git-blame date > 6 months), comments contradicting current code, commented-out code blocks, multi-paragraph docstrings on non-API-surface functions, overclaims about external contracts.<!-- VERIFY --> and surface to the user rather than deleting.Run icm list --sort recent | head -30; for each stale entry show the current content plus the proposed replacement before calling icm update. For decisions made in this session not yet captured, show the proposed icm store call before executing. Write only on explicit user confirmation per entry.
After completing each domain, emit exactly:
Tidy — <domain>
Removed: N (up to 5 paths/names; "…and M more" if larger)
Fixed: N
Proposed: N (awaiting confirmation)
Skipped: N (<one-phrase reason>)
Next: <one sentence, e.g. "Run build to verify" or "Nothing else in scope">
If nothing needed tidying: Tidy — <domain>: nothing to do.
git move --fixup when embedding alongside active work.~/.claude/claude/system-prompt-baseline.md, the baseline wins.development
Cross-domain taste skill — apply distinctive judgment to any artifact (prose, code, design, decisions) instead of converging to AI defaults. Two modes — `audit` (judge work against the two-sided charter and portable anchors) and `anchor` (load register before producing). Auto-detects by phrasing; override via `/taste audit | anchor`. Trigger on "is this slop?", "overkill?", "elegant?", "taste-test this".
tools
One-shot bootstrap of strict-mode tooling per ecosystem plus per-task GOALS.md scaffolding so an agentic loop can self-verify. Writes typechecker/linter/schema-validator config for TS (strict + noUncheckedIndexedAccess + exactOptionalPropertyTypes), Python (Pyright strict, Ruff strict), Rust (Clippy deny-correctness), Go (golangci-lint with staticcheck), OCaml (dune --release); establishes `.agent-tasks/<id>/GOALS.md` per-task convention distinct from project-stable AGENTS.md. C++/Java/Kotlin and framework specifics (Spring Boot, Nest, React-strict) are out of scope. Trigger on new project bootstrap, agentic-task setup, "make this self-verifying", "set the loop's goal", "scaffold goals for this issue". Pairs with `llm-self-loop` runtime.
tools
Install git pre-commit hooks via the project's hook tool — Husky+lint-staged (JS), pre-commit (Python/OCaml), lefthook (Go), cargo-husky (Rust). Use when the user wants commit-time formatting, linting, type-checking, or test gates. Detects ecosystem first.
testing
Adversarial security audit — STRIDE, OWASP Top 10, supply-chain (CVE/SBOM), secrets scan, auth/authz analysis. Use on changes touching auth, input parsing, deserialization, network I/O, dependencies, or secrets; before any production release or external-surface PR.