About fstack-simplify
fstack-simplify is a skill for reviewing plans, diffs, files, or codebases and proposing only deletions or reductions. It suits developers who want to reduce complexity while retaining approval before any changes are applied.
Key features
- 01Audits code at any scope
- 02Finds unused code and needless layers
- 03Proposes deletions and reductions only
- 04Waits for approval before changes
- 05Runs checks between large batches
Use cases
- 01Reviewing a plan for over-engineering
- 02Finding unused exports in a codebase
- 03Reducing dependencies or configuration
- 04Assessing a bloated file before edits
Install
Copy the command and run it in a terminal.
$
npx skills add https:/ / github.com/ flaviocopes/ fstack --skill fstack-simplifyAfter installing, type/fstack-simplifyin Claude Code to confirm it loaded.
Details
From the project README/fstack-simplify
Audit for unnecessary complexity and propose deletions. Only deletions — never additions. Works at any scope: a plan, a diff, a file, or the entire codebase. Nothing gets applied without approval.
When to use
- The user invokes
/fstack-simplifyon a plan, diff, file, folder, or whole project. /fstack-checkspotted complexity and suggested running this skill.- Something feels bloated, over-engineered, or sloppy — one file or the whole thing.
Steps
- Read the target. If it is the whole codebase, first get the lay of the land — file tree, entry points, dependencies, what is actually used.
- Hunt for these smells:
- Dead code — unused files, exports, functions, imports
- Abstractions with one caller, or layers that only pass data through
- Config options nobody asked for
- Dependencies that replace a few lines of code
- Error handling for situations that can't happen
- Comments that just restate the code, or "for the future" code the future never needed
- Copy-paste blocks that drifted instead of being shared
- Words in docs or comments a beginner wouldn't know
- Produce a list of proposed deletions and reductions. Each item is one line: what to remove, and what you'd lose (usually: nothing). For a whole-codebase pass, rank them and group by area, safe high-value cuts first.
- Stop and ask which ones to apply.
- Apply the approved ones. For a large pass, apply one batch at a time and run the tests or build between batches. If something breaks, stop and report before continuing.
Must NOT
- Propose additions. This skill only removes and reduces.
- Rewrite working code to a different style. Simpler, not different.
- Remove something just because it is unfamiliar. If you are unsure it is unused, leave it and say so.
- Touch generated files, vendored code, or lockfiles.
- Apply anything without approval, or apply a whole batch before checking the last one passed.
Example output
Can be less (ranked):
- Delete
src/utils/legacy/— 4 files, zero imports. Lose: nothing.- Delete
ThemeProviderabstraction — one consumer, a hook does it. Lose: nothing.- Remove
theme-config.json— two values, inline them. Lose: nothing.- Drop the
clsxdependency — used once, template literal works. Lose: nothing.Which should I apply? For a big sweep I go one batch at a time and run tests between.
Comments
Markdown supported