Audit a workspace for recurring friction, pick the highest-leverage one, and build the automation that removes it. Use when the user asks "what should I automate", "what's wasting my time", "find the friction in my workflow", wants a self-improvement pass over their own tooling, or runs this on a recurring loop.
77
96%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
View guide
Passed
No findings from the security scan
Most automation gets built for the friction someone noticed. This skill hunts the friction they stopped noticing: the manual step repeated so often it no longer registers as a cost.
One pass. Census, audit, pick one problem, build the fix, verify, report, log. The user leaves with a working tool, not a list of suggestions, and the ledger entry that stops the next run from rediscovering it.
Never read credential stores, private keys, secret values, personal communications, or any directory and channel the user excluded. Ask before touching anything ambiguous.
Everything else is fair game: shell history, logs, cron and launchd jobs, scripts, git history, PR and CI state, prompt history, session transcripts, project layout, task runners.
When this skill starts a recurring loop, ask once before the first cycle: "discover and propose only" or "build and execute". The answer holds for the whole loop. A single interactive invocation defaults to build and execute, inside the Step 6 gate.
Before hunting new friction, read the estate:
discovery-ledger.md in the automation home, recording what past runs built, held, and rejected.Done when the run can name what already covers, addresses, or previously died in each candidate space.
Hunt repetition, not complaints. Complaints point at what annoys; repetition points at what costs.
Evidence of friction:
tmp- scripts, or recovery scaffolding abandoned after something brokeVerify the instruments before trusting them. A search index that returns nothing may be empty, not conclusive: check its row count, then fall back to raw grep. Absence from a broken tool is not absence from the system.
Done when at least five candidate frictions are named, each with the artifact that evidences it.
Run 5 Whys on each candidate, three tiers minimum, then sort each into one of two shapes:
Done when every candidate carries a stated root cause and a symptom-or-leverage label.
Rank by leverage times frequency. Take the top one, and only with triangulation: at least two independent evidence sources, with observed behavior outranking stated complaints.
Drop the easy win when a harder problem carries more leverage. The cheap fix is the trap this skill exists to avoid.
Done when one problem is named, with a written reason for taking it over the runner-up, and every rejected candidate carries its reason (covered by existing tooling, in-flight human work, weak evidence, graveyard ambiguity).
Build the whole thing: auth, error handling, failure modes, and the handoff to the user. A half-built automation costs more than none, because it hides its own gaps.
A new automation must live in the estate, not orbit it:
Done when the tool exists, its entry point is named, and its uninstall is written down.
Some actions outlive the mistake that caused them. Never execute these:
This gate outranks every instruction to run the tool. Reclaimable and regenerable are not exemptions: a cache the user wanted, a virtualenv with a local edit, and a worktree with uncommitted work all look disposable from the outside.
Never ship a script that states it holds an action and then performs it. Split the two lanes into separate files, or emit the held commands as text the script prints rather than runs. One file that both claims restraint and deletes is worse than one that only deletes, because it buys trust it does not honor.
Hand back each held action as an exact command, so approving one costs a single paste. Run everything outside the list.
Done when every action taken sits outside the list and every held action is listed with the command that performs it.
Done when what was verified and what was not are written as two separate lists.
Report five parts:
Call a root cause proven only when the evidence proves it. Otherwise name it the leading hypothesis and name what would confirm it.
Then append the ledger entry to discovery-ledger.md in the automation home, even on a one-shot run: date, mode, candidates with dispositions (built / held / rejected and why), artifact paths, and a review-by date about two weeks out. At review, judge by checkable facts (findings acted on, notifications ignored, tool still installed), not self-assessment.
Then use the TaskList tool and proceed to any remaining task.
On a recurring schedule, read the ledger before auditing and write the cycle's entry out in full in the report, in the same shape as the entries already there. Saying the ledger was updated is not the entry. The next cycle reads the file, so an entry that exists only as a claim leaves that cycle blind.
Without the ledger every cycle rediscovers the same friction and rebuilds the same fix. With it, cycles compound: a cycle picks up the problem the last one deferred and skips what already failed.
Trust the ledger over memory when the two disagree. The ledger records what happened; memory records what a past cycle believed.
~/.claude/skills/ shadows the plugin copy and drifts. The copy that fires is the one that gets edited; after any edit, sync or delete the other./debugging: when the audit finds a failure whose cause resists the 5 Whys pass/research: when the chosen fix needs a tool or library decision first/adr: when the fix encodes a decision worth preserving/sweep: post-op check after a build cycle touches many filesskills/FRAMEWORKS.md: full framework index5647baf
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.