emiliodominguez/flow-skills

flow-simplify

Targeted cleanup of provably dead code and accidental complexity.

View source

How to use

  1. Copy the installation command and review the source package before installing it in your own agent environment.
  2. Check the source document for required tools, credentials and supported hosts.
  3. Describe your input and desired deliverable; review the output against the source material.
npx skills add https://github.com/emiliodominguez/flow-skills --skill flow-simplify

Before you start

  • Installation does not include a model subscription, API allowance or permission to access your files.
  • Repository stars and installation counts describe activity, not an independent quality or security test.
Original skill document

Rendered from the source repository. Headings, examples, code, tables, links, and referenced images are preserved.

Simplify

Subtract only where it improves understanding without changing required behavior. Fewer lines is a possible outcome, not the acceptance criterion.

Process

  1. Bound the cleanup, establish relevant checks and preserve unrelated staged/unstaged work.

Name the concrete complexity: dead paths, needless indirection, duplicate responsibility, stale comments or generated slop.

  1. Order reduction passes by semantic risk. For large scopes, authorized read-only reviewers can

inspect disjoint areas; one writer per file. No arbitrary agent or file-count threshold.

  1. Caller-check before deleting a symbol: imports, dynamic lookup, registries, reflection,

routes, config, templates, tests, generated sources, package exports. Repository search cannot see external consumers of a published API.

  1. Mark a deletion CONFIRMED-DEAD only with usage and runtime evidence; keep uncertain

exports or negotiate the compatibility change. Keep side-effect imports (registration, polyfills) and license, compiler and tool-directive comments.

  1. Inspect single-use abstractions instead of auto-inlining. Components, Hooks, closures and

effects carry identity, state lifetime and evaluation order even with one caller.

  1. Remove a defensive guard only when input provenance proves it redundant. Static types do not

validate network, JSON, storage, DOM or JavaScript consumers.

  1. Cut in small steps, run behavior and repository checks, inspect the combined diff. Stop when

the stated complexity is resolved.

Anti-patterns

  • Net-negative lines as a quality gate, or every single-use component as waste.
  • Removing imports, comments or guards on regex or type evidence alone.
  • Deleting a public export because internal grep finds no caller.
  • Quietly changing error behavior or component state lifetime.

Done when

  • The targeted code is easier to understand with semantics and compatibility preserved.
  • Deletions have evidence; uncertain consumers remain explicit.
  • Required checks ran on the resulting artifact, not an earlier baseline.

Use flow-review for the diff or flow-refactor for a separate ownership or structure problem.

Related by task

from this repository

More skills

All skills