Skip to content
Development
Skill

/fec-refactor-clean

Use when safely removing dead frontend code, unused exports, stale components, obsolete routes, unused dependencies, or cleanup targets found by tools such as knip, depcheck, ts-prune, TypeScript, ESLint, or manual review. Do not use for feature rewrites that change behavior;

From plugin
frontend-craft
2256 skills14 agents11 commands5 hooks
+1

Claude Code

$ npx -y skills add bovinphang/frontend-craft --skill fec-refactor-clean --agent claude-code

SKILL.md

fec-refactor-clean.SKILL.md
name: fec-refactor-clean
description: Use when safely removing dead frontend code, unused exports, stale components, obsolete routes, unused dependencies, or cleanup targets found by tools such as knip, depcheck, ts-prune, TypeScript, ESLint, or manual review. Do not use for feature rewrites that change behavior; Chinese triggers include dead code, clean up unused, refactor clean, dependency cleanup, delete useless code.

Refactoring and cleaning

Purpose

Identify and clean up unused front-end code under validation protection, reducing technical debt while avoiding accidentally deleting dynamic references, routing entries, configuration files, and runtime conventions.

Procedure

1. Establish a baseline first: run or confirm the current status of lint, type-check, test, and build. 2. Collect candidates:

  • Prioritize the use of existing tools in the warehouse, such as knip, depcheck, ts-prune, eslint, and TypeScript.
  • When tools are not available, use `rg` to check references, exports, routes, registration points and document entries.

3. Classification by risk:

  • SAFE: test fixtures, unreferenced tool functions, explicitly unexported private components.
  • CAUTION: Shared components, feature entries, style files, Storybook stories.
  • DANGER: routing, configuration, package scripts, runtime templates, dynamic import, plug-in metadata.
  • UPGRADE: Expired dependencies, duplicate dependencies, unused dependencies and security alarms will be evaluated first for dependency upgrade or dependency cleanup, and will not be mixed with dead code deletion.

4. Only SAFE items are automatically processed; CAUTION and DANGER need to output suggestions and evidence and are not deleted directly. 5. Run the affected verification command after each batch cleanup. 6. If the verification fails, stop expanding the cleaning scope and locate the batch first. 7. Conduct behavioral equivalence review after cleaning: public APIs, routes, commands, templates, metadata, documentation examples, and report outputs can still be referenced. 8. Sort technical debt: Prioritize projects that have verification protection, affect development efficiency, or block upgrades; only output suggestions for large-scale rewrites with low evidence.

Frontend-Specific Checks

  • Check JSX/template strings, route configuration, barrel export, Storybook, tests, documentation examples and dynamic component registration.
  • Style files need to check className, CSS Modules, Tailwind safelist, global selectors and theme variables.
  • Dependency cleanup checks build plugins, runtime templates, CLI scripts, monorepo subpackages, and peer dependencies.

Constraints

  • Does not change user-visible behavior.
  • Do not remove public APIs, routes, templates, or configurations that cannot be proven referenceless.
  • No "one big delete" replacement for verifiable small batch cleanups.
  • Don't mix formatting, renaming or schema rewriting into dead code cleanup.
  • No evidence that "no one seems to be using it" is needed; there must be search, tool output, type error disappearance, or test protection.
  • Don’t disguise major dependency version upgrades as cleanup; upgrade risks, release notes, and lockfile changes should be offloaded to the dependency upgrade workflow.

Detailed reference

When writing a cleanup report, load [references/report-template.md](references/report-template.md).

Expected Output

  • Clean reports are saved as `reports/refactor-clean-YYYY-MM-DD-HHmmss.md`.
  • After the code is cleaned, the relevant verification commands pass, or the cause of the blocking is clearly stated.

Structural Refactoring Boundary

This workflow owns proven dead/unused code. When code is live but structurally difficult—long functions, ownership problems, mutable/derived data, conditionals, API shape, or hierarchy design—route it to structural refactoring instead of deleting or rewriting it under cleanup.

Read more
@bovinphang
Ships withfrontend-craft

frontend-craft is a universal frontend plugin that brings the same opinionated engineering standards to all 15 AI coding assistants.

2256 skills14 agents6 MCP
Get the whole plugin

Stars on GitHub

Momentum

stars in total
22
Star history of bovinphang/frontend-craft on GitHub, a chart by star-history.com

Other skills on frontend-craft.

fec-alchemy

fec-alchemy

Use when absorbing ideas, capabilities, workflows, architecture, quality systems, ecosystem extensions, or engineering practices…

More skills from other plugins.

brainstorming
Auto-invoked

brainstorming

You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…

@obra@obraInstall Skill
ask-matt

ask-matt

Ask which skill or flow fits your situation. A router over the skills in this repo.

skills11d309k
@mattpocock@mattpocockInstall Skill
accessibility
Auto-invoked

accessibility

Design, implement, and audit accessible UI to WCAG 2.2 Level AA across Web, iOS, and Android — semantic ARIA roles and labels,…

ecc12d293k
@affaan-m@affaan-mInstall Skill
compiler-commit

compiler-commit

Use when you want to verify compiler changes and commit with the correct convention. Runs tests, lint, and format, then commits…

react2d252k
@facebook@facebookInstall Skill

Questions about fec-refactor-clean.

Which coding agents can use fec-refactor-clean?
fec-refactor-clean installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.