Chisle Audit
JayPokale/Chisle
One-shot efficiency audit of a file, diff, or whole repo across BOTH axes at once: over-engineered code (reinvented stdlib, needless abstractions, speculative config) AND bloated prose (verbose…
Hunt "AI slop" in this codebase — duplication, reinvented wheels, over-engineering, defensive cruft, dead code, comment slop, performance antipatterns.
$ npx skills add letehaha/moneymatter --skill find-slop -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install letehaha/moneymatter find-slop --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/letehaha/moneymatter.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/find-slop .claude/skills/find-slop && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "find-slop" agent skill from https://github.com/letehaha/moneymatter/tree/dev/.claude/skills/find-slop into .claude/skills/find-slop/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "find-slop", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/letehaha/moneymatter/tree/dev/.claude/skills/find-slopType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add letehaha/moneymatter --skill find-slop -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install letehaha/moneymatter find-slop --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/letehaha/moneymatter.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.claude/skills/find-slop .agents/skills/find-slop && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "find-slop" agent skill from https://github.com/letehaha/moneymatter/tree/dev/.claude/skills/find-slop into .agents/skills/find-slop/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "find-slop", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add letehaha/moneymatter --skill find-slop -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install letehaha/moneymatter find-slop --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/letehaha/moneymatter.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.claude/skills/find-slop .cursor/skills/find-slop && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "find-slop" agent skill from https://github.com/letehaha/moneymatter/tree/dev/.claude/skills/find-slop into .cursor/skills/find-slop/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "find-slop", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/letehaha/moneymatter.git --path .claude/skills/find-slop--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add letehaha/moneymatter --skill find-slop -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install letehaha/moneymatter find-slop --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/letehaha/moneymatter.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.claude/skills/find-slop .gemini/skills/find-slop && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "find-slop" agent skill from https://github.com/letehaha/moneymatter/tree/dev/.claude/skills/find-slop into .gemini/skills/find-slop/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "find-slop", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install letehaha/moneymatter find-slopInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add letehaha/moneymatter --skill find-slop -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/letehaha/moneymatter.git skills-src && mkdir -p .github/skills && cp -r skills-src/.claude/skills/find-slop .github/skills/find-slop && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "find-slop" agent skill from https://github.com/letehaha/moneymatter/tree/dev/.claude/skills/find-slop into .github/skills/find-slop/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "find-slop", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add letehaha/moneymatter --skill find-slop -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install letehaha/moneymatter find-slop --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/letehaha/moneymatter.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.claude/skills/find-slop .opencode/skills/find-slop && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "find-slop" agent skill from https://github.com/letehaha/moneymatter/tree/dev/.claude/skills/find-slop into .opencode/skills/find-slop/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "find-slop", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
find-slopHunt "AI slop" in this codebase — duplication, reinvented wheels, over-engineering, defensive cruft, dead code, comment slop, performance antipatterns.
Find Slop is an agent skill from letehaha/moneymatter. Hunt "AI slop" in this codebase — duplication, reinvented wheels, over-engineering, defensive cruft, dead code, comment slop, performance antipatterns. Auto-discovers candidate areas, asks the user which to investigate, runs parallel deep-dive subagents, and produces a terse actionable report. Does NOT apply fixes. Trigger on "/find-slop", "find slop", "find AI slop", "find refactor opportunities", "find duplicated code", "find dead code in <area".
Its SKILL.md is about 3k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in Development, covering Technical documentation and Code simplification. The repository describes itself as: Open-source, self-hosted budget tracker and personal finance app. Bank sync, multi-currency, investments, and a built-in MCP server for Claude and ChatGPT. The licence is AGPL-3.0.
5 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 3bcd627. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
No scripts in the folder and no shell commands in SKILL.md.
From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Find Slop loads about 3k tokens when it runs. Until then it costs about 116 tokens; SKILL.md has 1,545 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from letehaha/moneymatter at commit 3bcd627, republished under its AGPL-3.0 licence (© letehaha). 1,545 words, ~2,970 tokens.
.claude/skills/find-slop/SKILL.md (or your agent's skills folder).Find places in the codebase that read like they were written without context — duplication, premature abstractions, defensive cruft, reinvented wheels, dead code, performance antipatterns. The smell test is: would a senior engineer who knows this codebase have written it this way? If the answer is "no," that's slop worth surfacing.
This skill DISCOVERS and REPORTS. It does NOT apply fixes. The output is a terse curated report. A separate skill (or a follow-up Claude session) is expected to act on it.
/find-slop — default: auto-discover ~5 candidate areas across the whole repo./find-slop <hint> — focus discovery on a path, package, or feature name. Examples: /find-slop investments, /find-slop packages/frontend, /find-slop src/auth./find-slop --candidates N — adjust the candidate count (default 5). Combinable with a hint: /find-slop investments --candidates 3.Parse args yourself from the user's invocation. If unclear, ask the user once and proceed.
Do NOT pad to hit a count. At any stage:
<areas>" — that is a successful run.A clean report from a clean codebase is a win. Filling reports with weak findings trains the user to ignore them.
Before discovery, read whichever of these exist (use Glob to confirm, then Read):
CLAUDE.md at the repo root, and any nested ones obviously relevantpackage.json (or pyproject.toml / go.mod / Cargo.toml) — what deps are availableREADME.md (high-level domain)AGENTS.md / CONTRIBUTING.md if presentYou're capturing the project's idioms so you can pass them to investigators and prevent false positives. Do not deep-read everything — top-level only.
Spawn one Explore subagent (model: sonnet) with a prompt like:
Map the repo to identify ~N candidate areas likely to contain "AI slop" — duplication, over-engineering, defensive cruft, dead code, perf antipatterns. Signals to weight:
- Parallel folders / near-identical filenames (duplication risk)
- High file count or large files (over-engineering risk)
- Many
try/catchblocks, broadcatchclauses, repeated?? ''patterns (defensive risk)- Util/helper folders with many small one-off functions (reinvented-wheels risk)
- Areas with sparse imports from elsewhere (potential dead code)
- Recently churned areas per git log (potential rush job)
If the user passed a hint, scope to that. Skip
node_modules/,dist/,build/,.next/, generated, vendor.Return at most N candidate areas with for each: a name, path(s), a one-line hypothesis of likely slop type, and a one-line why-it-stands-out. Return fewer than N if signals don't justify N. Compact output only.
Once Explore returns, synthesize the candidate list. Apply the hint filter if not already applied. Drop candidates whose hypothesis you don't buy.
If you end up with zero candidates, tell the user honestly and end the skill.
Use AskUserQuestion with multiSelect: true to present candidates.
label = candidate name. description = the one-line hypothesis + path.If user selects nothing, end the skill politely.
For each selected area, spawn the slop-investigator subagent.
Spawn all investigators in a single message with multiple Agent tool calls so they run in parallel.
Each Agent call:
subagent_type: "slop-investigator"model: omit (let the agent definition's opus apply)description: short, e.g. "Investigate slop in <area>"prompt: a self-contained brief with:Wait for all investigators to return.
Combine the investigator reports into a single Markdown document, grouped by area. Preserve the investigators' format verbatim — do not paraphrase or expand findings.
Renumber findings globally across the whole report so every finding has a unique reference. Walk the aggregated document top-to-bottom and rewrite each **Finding #N** label so the sequence runs #1, #2, #3, … across areas (not restarting per area). Individual investigators numbered locally; you renumber globally. Example: if Area A returned #1, #2 and Area B returned #1, #2, #3, the final report shows Area A #1, #2 and Area B #3, #4, #5.
Show the consolidated, globally-numbered report to the user in chat.
After showing the consolidated report, ask the user which findings they want to keep in the final report. This is the "would actually act on" filter — not the "is this true" filter.
Tell the user they can reference findings by number, e.g.:
keep #1 #4 #5 — final report contains only those.drop #2 #6 — final report contains everything except those.all — keep all findings.none — drop everything, end with an empty report.Parse the user's reply and filter accordingly. After filtering, renumber again so the surviving findings are #1, #2, #3, … with no gaps.
If there are no findings to curate (everything came back clean), skip this step.
If the user wants all findings kept, skip filtering (numbers already sequential).
Emit the final Markdown report containing only the curated findings. Use this top-level structure:
# Slop Report
_Generated by /find-slop on <date>_
<one-line summary of scope: e.g. "Scanned 5 areas: ...; 3 with findings, 2 clean.">
## Findings
### <Area name 1>
- **Finding #1**: ...
- **Refactor**: ...
- **Gain**: ...
- **Cons**: ...
- **Where**: ...
- **Type**: ...
- **Finding #2**: ...
...
### <Area name 2>
- No significant findings.
### <Area name 3>
- **Finding #3**: ...
...
...Numbers run sequentially across the whole report. A reader pointing at #3 lands on exactly one finding regardless of area.
The report is the deliverable. Do not append commentary, next-steps, or "let me know if you'd like me to fix these" — the skill ends with the report. A future skill or session will consume it.
The investigator agent has the full list, but a senior-SWE-level summary:
package.json.try/catch around non-throwing code; null checks on guaranteed-non-null values; backwards-compat shims with no users; silent error swallowing.Promise.all; regex compiled in hot loop; large spreads/clones in render paths.When you report back to the user — candidate lists, phase updates, the consolidated report, summaries — write terse. Cognitive load is the point: the user is scanning, not reading.
Rules:
X -> Y.[thing] [action/state] [reason]. [next].Technical identifiers, file paths, code, error messages: stay exact.
Do NOT apply this style to:
### Area, bold labels, bullet hierarchy stay verbatim — investigators produce that).Example chat update — bad (verbose):
I've finished discovering candidate areas. The Explore subagent returned 5 candidates, and they all look credible to me based on the signals it surfaced. Would you like to proceed with selecting which ones to investigate?
Example chat update — good (terse):
Discovery done. 5 candidates, all concrete. Pick which to investigate.
This style applies regardless of whether the user has the caveman skill installed — find-slop is self-contained.
file:line refs are enough.node_modules/, dist/, build/, .next/, generated, vendor paths.This skill is designed to work in any codebase, not just this one. It does not hardcode project-specific paths or patterns. The investigator reads conventions per repo (CLAUDE.md, package.json / pyproject.toml / go.mod / Cargo.toml, README.md) and adapts.
To use in another project:
.claude/skills/find-slop/ and .claude/agents/slop-investigator.md into that project's .claude/ directory..claude/agents/ at session start — if the session was already open when the files were added, the slop-investigator subagent type will not be in the registry and Phase 3 will fail with Agent type 'slop-investigator' not found./find-slop.If you ever see Agent type 'slop-investigator' not found mid-flow, that's the same root cause: restart the session and re-run. Do not fall back to general-purpose for investigation in production runs — the dedicated subagent's system prompt enforces the strict output format and honesty rule.
© letehaha, AGPL-3.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in .claude/skills/find-slop of letehaha/moneymatter.
Open the folder on GitHubat commit 3bcd627
Find Slop next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Find Slop this skillletehaha/moneymatter | 163 | — | ~3k | Automated safety check: Pass | AGPL-3.0 | |
| Chisle AuditJayPokale/Chisle | 640 | — | ~687 | Automated safety check: Pass | MIT | |
| Adk Sample Creatorgoogle/adk-python | 22k | — | ~1.3k | Automated safety check: Pass | Apache-2.0 | |
| Doc-Code Sync Checkfancyboi999/open-tag | 203 | — | ~1.7k | Automated safety check: Pass | Apache-2.0 | |
| Typescript Styletjx666/vscode-mcp | 105 | — | ~961 | Automated safety check: Pass | Custom licence | |
| Docs UpdateJayFarei/opentraces | 100 | — | ~4.6k | Automated safety check: Pass | Custom licence |
JayPokale/Chisle
One-shot efficiency audit of a file, diff, or whole repo across BOTH axes at once: over-engineered code (reinvented stdlib, needless abstractions, speculative config) AND bloated prose (verbose…
google/adk-python
Creates a new sample agent in the ADK Python repository — the sample directory, its agent.py, and its README.md — following the conventions the existing samples already use.
fancyboi999/open-tag
Reconciles documentation with code at the end of a change or as a periodic audit, following a repo rule that code changes and doc changes land in one commit.
tjx666/vscode-mcp
TypeScript code style and repo conventions for VSCode MCP — inference vs explicit types, ESM import suffixes, zod schema contracts, async VSCode/Node APIs, JSON-safe IPC results, JSDoc for public…
JayFarei/opentraces
Synchronize all documentation surfaces after code changes. An agent skill from JayFarei/opentraces.
mrinalwadhwa/fluent
Reviews the accuracy and writing quality of documentation. An agent skill from mrinalwadhwa/fluent.
letehaha/moneymatter
Deep-dive specification planner. An agent skill from letehaha/moneymatter.
letehaha/moneymatter
Add a new tool to the MoneyMatter MCP server. An agent skill from letehaha/moneymatter.
letehaha/moneymatter
Frontend conventions and component usage rules. An agent skill from letehaha/moneymatter.
letehaha/moneymatter
Occasional i18n catch-up: strip unused en keys, then fill any uk translations that slipped through via i18n-editor subagents.
letehaha/moneymatter
Creates backend e2e tests for new or existing endpoints. An agent skill from letehaha/moneymatter.
letehaha/moneymatter
Smart PRD generator. An agent skill from letehaha/moneymatter.
Categories
Hunt "AI slop" in this codebase — duplication, reinvented wheels, over-engineering, defensive cruft, dead code, comment slop, performance antipatterns. Find Slop is an agent skill from letehaha/moneymatter. Hunt "AI slop" in this codebase — duplication, reinvented wheels, over-engineering, defensive cruft, dead code, comment slop, performance antipatterns.
Find Slop fits situations like: find refactor opportunities; find duplicated code; find dead code in <area.
Run `npx skills add letehaha/moneymatter --skill find-slop -a claude-code`. Or copy the skill folder (.claude/skills/find-slop in letehaha/moneymatter) into .claude/skills/find-slop in your project. Claude Code loads it when a task matches its description.
Run `npx skills add letehaha/moneymatter --skill find-slop -a codex`. Or copy the skill folder (.claude/skills/find-slop in letehaha/moneymatter) into .agents/skills/find-slop in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add letehaha/moneymatter --skill find-slop -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/find-slop, .gemini/skills/find-slop, .github/skills/find-slop and .opencode/skills/find-slop in your project.
SKILL.md names no scripts, command-line tools or credentials: Find Slop is instructions for the agent only.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Find Slop is published under the AGPL-3.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 3k tokens (SKILL.md is roughly 12k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Find Slop: Chisle Audit (JayPokale/Chisle, 640 stars), Adk Sample Creator (google/adk-python, 22k stars), Doc-Code Sync Check (fancyboi999/open-tag, 203 stars) and Typescript Style (tjx666/vscode-mcp, 105 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
letehaha (a GitHub user) maintains it in letehaha/moneymatter, which has 163 GitHub stars. The repository holds 10 skills in this directory. The repository was last updated on October 10, 2026.
Source: letehaha/moneymatter on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.