@bovinphang/frontend-craft 2.7.0 → 2.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (502) hide show
  1. package/.claude-plugin/marketplace.json +3 -3
  2. package/.claude-plugin/plugin.json +1 -1
  3. package/CHANGELOG.md +378 -305
  4. package/CHANGELOG.zh-CN.md +377 -304
  5. package/CONTRIBUTING.md +371 -361
  6. package/CONTRIBUTING.zh-CN.md +371 -361
  7. package/README.md +545 -493
  8. package/README.openclaw.md +359 -264
  9. package/README.openclaw.zh-CN.md +359 -264
  10. package/README.zh-CN.md +545 -493
  11. package/agents/fec-architect.md +70 -70
  12. package/agents/fec-code-reviewer.md +103 -82
  13. package/agents/fec-debugger.md +20 -20
  14. package/agents/fec-design-token-mapper.md +36 -36
  15. package/agents/fec-doc-updater.md +13 -13
  16. package/agents/fec-e2e-runner.md +45 -45
  17. package/agents/fec-figma-implementer.md +59 -59
  18. package/agents/fec-performance-optimizer.md +128 -128
  19. package/agents/fec-refactor-cleaner.md +17 -14
  20. package/agents/fec-refactoring-expert.md +81 -0
  21. package/agents/fec-security-reviewer.md +82 -67
  22. package/agents/fec-test-planner.md +27 -27
  23. package/agents/fec-typescript-reviewer.md +103 -87
  24. package/agents/fec-ui-checker.md +64 -64
  25. package/commands/fec-debug.md +19 -19
  26. package/commands/fec-doc-sync.md +11 -11
  27. package/commands/fec-init.md +37 -38
  28. package/commands/fec-plan.md +58 -58
  29. package/commands/fec-refactor-clean.md +11 -11
  30. package/commands/fec-refactor-plan.md +17 -0
  31. package/commands/fec-refactor.md +18 -0
  32. package/commands/fec-review.md +71 -41
  33. package/commands/fec-scaffold.md +41 -41
  34. package/commands/fec-smell.md +17 -0
  35. package/commands/fec-tdd.md +17 -13
  36. package/dist/bin/frontend-craft.js +190 -36
  37. package/dist/hooks/fec-run-tests.js +5 -1
  38. package/dist/hooks/fec-session-start.js +1 -1
  39. package/docs/example-prompts.md +157 -137
  40. package/docs/ja-JP/README.md +534 -493
  41. package/docs/ko-KR/README.md +534 -493
  42. package/docs/project-structure.md +151 -123
  43. package/docs/refactoring/README.md +50 -0
  44. package/docs/refactoring/catalog.md +105 -0
  45. package/docs/refactoring/smell-refactoring-matrix.md +41 -0
  46. package/docs/review-and-diagram-workflows.md +39 -0
  47. package/docs/runtimes/antigravity.md +18 -10
  48. package/docs/runtimes/augment.md +18 -10
  49. package/docs/runtimes/claude.md +191 -177
  50. package/docs/runtimes/claude.zh-CN.md +189 -175
  51. package/docs/runtimes/cline.md +18 -10
  52. package/docs/runtimes/codebuddy.md +18 -10
  53. package/docs/runtimes/codex.md +18 -10
  54. package/docs/runtimes/compatibility.md +27 -0
  55. package/docs/runtimes/copilot.md +18 -10
  56. package/docs/runtimes/cursor.md +18 -10
  57. package/docs/runtimes/gemini.md +18 -10
  58. package/docs/runtimes/kilo.md +18 -10
  59. package/docs/runtimes/openclaw.md +18 -10
  60. package/docs/runtimes/opencode.md +18 -10
  61. package/docs/runtimes/qoder.md +18 -19
  62. package/docs/runtimes/trae.md +18 -10
  63. package/docs/runtimes/windsurf.md +18 -10
  64. package/docs/superpowers/plans/2026-09-26-content-integrity.md +145 -0
  65. package/docs/superpowers/plans/2026-09-26-diagram-quality.md +170 -0
  66. package/docs/superpowers/specs/2026-09-26-diagram-quality-design.md +77 -0
  67. package/docs/superpowers/specs/2026-09-26-project-optimization-design.md +95 -0
  68. package/docs/zh-CN/example-prompts.md +157 -137
  69. package/docs/zh-CN/project-structure.md +148 -123
  70. package/docs/zh-CN/review-and-diagram-workflows.md +39 -0
  71. package/docs/zh-TW/README.md +534 -493
  72. package/localized/zh-CN/agents/fec-architect.md +125 -0
  73. package/localized/zh-CN/agents/fec-code-reviewer.md +171 -0
  74. package/localized/zh-CN/agents/fec-debugger.md +44 -0
  75. package/localized/zh-CN/agents/fec-design-token-mapper.md +75 -0
  76. package/localized/zh-CN/agents/fec-doc-updater.md +30 -0
  77. package/localized/zh-CN/agents/fec-e2e-runner.md +107 -0
  78. package/localized/zh-CN/agents/fec-figma-implementer.md +104 -0
  79. package/localized/zh-CN/agents/fec-performance-optimizer.md +293 -0
  80. package/localized/zh-CN/agents/fec-refactor-cleaner.md +35 -0
  81. package/localized/zh-CN/agents/fec-refactoring-expert.md +53 -0
  82. package/localized/zh-CN/agents/fec-security-reviewer.md +132 -0
  83. package/localized/zh-CN/agents/fec-test-planner.md +50 -0
  84. package/localized/zh-CN/agents/fec-typescript-reviewer.md +158 -0
  85. package/localized/zh-CN/agents/fec-ui-checker.md +120 -0
  86. package/localized/zh-CN/commands/fec-debug.md +30 -0
  87. package/localized/zh-CN/commands/fec-doc-sync.md +19 -0
  88. package/localized/zh-CN/commands/fec-init.md +70 -0
  89. package/localized/zh-CN/commands/fec-plan.md +94 -0
  90. package/localized/zh-CN/commands/fec-refactor-clean.md +19 -0
  91. package/localized/zh-CN/commands/fec-refactor-plan.md +15 -0
  92. package/localized/zh-CN/commands/fec-refactor.md +14 -0
  93. package/localized/zh-CN/commands/fec-review.md +97 -0
  94. package/localized/zh-CN/commands/fec-scaffold.md +205 -0
  95. package/localized/zh-CN/commands/fec-smell.md +13 -0
  96. package/localized/zh-CN/commands/fec-tdd.md +25 -0
  97. package/localized/zh-CN/skills/TEMPLATE.md +155 -0
  98. package/localized/zh-CN/skills/eval_queries.json +1257 -0
  99. package/localized/zh-CN/skills/fec-accessibility-check/SKILL.md +39 -0
  100. package/localized/zh-CN/skills/fec-accessibility-check/references/report-template.md +23 -0
  101. package/localized/zh-CN/skills/fec-accessibility-check/references/screen-reader-testing.md +33 -0
  102. package/localized/zh-CN/skills/fec-alchemy/SKILL.md +74 -0
  103. package/localized/zh-CN/skills/fec-alchemy/assets/absorption-plan-template.md +47 -0
  104. package/localized/zh-CN/skills/fec-alchemy/assets/intake-template.md +55 -0
  105. package/localized/zh-CN/skills/fec-alchemy/assets/review-checklist.md +31 -0
  106. package/localized/zh-CN/skills/fec-alchemy/references/methodology.md +94 -0
  107. package/localized/zh-CN/skills/fec-alchemy/references/originality-and-licensing.md +57 -0
  108. package/localized/zh-CN/skills/fec-api-integration/SKILL.md +78 -0
  109. package/localized/zh-CN/skills/fec-api-integration/references/integration-patterns.md +80 -0
  110. package/localized/zh-CN/skills/fec-backend-requirements-handoff/SKILL.md +45 -0
  111. package/localized/zh-CN/skills/fec-browser-storage/SKILL.md +34 -0
  112. package/localized/zh-CN/skills/fec-browser-storage/references/storage-patterns.md +65 -0
  113. package/localized/zh-CN/skills/fec-canvas-threejs/SKILL.md +66 -0
  114. package/localized/zh-CN/skills/fec-canvas-threejs/references/rendering-patterns.md +67 -0
  115. package/localized/zh-CN/skills/fec-canvas-threejs/references/shader-webgl-patterns.md +67 -0
  116. package/localized/zh-CN/skills/fec-code-review/SKILL.md +162 -0
  117. package/localized/zh-CN/skills/fec-code-review/references/report-template.md +39 -0
  118. package/localized/zh-CN/skills/fec-code-smells/SKILL.md +33 -0
  119. package/localized/zh-CN/skills/fec-code-smells/references/detection-guide.md +25 -0
  120. package/localized/zh-CN/skills/fec-code-smells/references/smell-catalog.md +817 -0
  121. package/localized/zh-CN/skills/fec-code-smells/references/smell-to-refactoring-map.md +265 -0
  122. package/localized/zh-CN/skills/fec-component-testing/SKILL.md +119 -0
  123. package/localized/zh-CN/skills/fec-data-fetching/SKILL.md +62 -0
  124. package/localized/zh-CN/skills/fec-data-fetching/references/query-patterns.md +103 -0
  125. package/localized/zh-CN/skills/fec-debug-framework/SKILL.md +157 -0
  126. package/localized/zh-CN/skills/fec-debug-framework/references/report-template.md +58 -0
  127. package/localized/zh-CN/skills/fec-dependency-upgrade/SKILL.md +34 -0
  128. package/localized/zh-CN/skills/fec-dependency-upgrade/references/dependency-upgrade-workflow.md +56 -0
  129. package/localized/zh-CN/skills/fec-doc-sync/SKILL.md +39 -0
  130. package/localized/zh-CN/skills/fec-drawio-studio/SKILL.md +73 -0
  131. package/localized/zh-CN/skills/fec-drawio-studio/data/THIRD_PARTY_NOTICES.md +10 -0
  132. package/localized/zh-CN/skills/fec-drawio-studio/data/brand-icons.json +878 -0
  133. package/localized/zh-CN/skills/fec-drawio-studio/data/shape-index.json +83570 -0
  134. package/localized/zh-CN/skills/fec-drawio-studio/references/data-residency.md +27 -0
  135. package/localized/zh-CN/skills/fec-drawio-studio/references/diagram-patterns.md +60 -0
  136. package/localized/zh-CN/skills/fec-drawio-studio/references/flowchart-quality.md +49 -0
  137. package/localized/zh-CN/skills/fec-drawio-studio/references/layout-and-export.md +72 -0
  138. package/localized/zh-CN/skills/fec-drawio-studio/references/troubleshooting.md +29 -0
  139. package/localized/zh-CN/skills/fec-drawio-studio/references/xml-and-mermaid.md +58 -0
  140. package/localized/zh-CN/skills/fec-drawio-studio/scripts/brand-symbols.mjs +99 -0
  141. package/localized/zh-CN/skills/fec-drawio-studio/scripts/diagram-lint.mjs +205 -0
  142. package/localized/zh-CN/skills/fec-drawio-studio/scripts/diagram-url.mjs +102 -0
  143. package/localized/zh-CN/skills/fec-drawio-studio/scripts/drawio-export.mjs +134 -0
  144. package/localized/zh-CN/skills/fec-drawio-studio/scripts/layout-graph.mjs +107 -0
  145. package/localized/zh-CN/skills/fec-drawio-studio/scripts/png-embed-fix.mjs +26 -0
  146. package/localized/zh-CN/skills/fec-drawio-studio/scripts/scan-go-packages.mjs +36 -0
  147. package/localized/zh-CN/skills/fec-drawio-studio/scripts/scan-js-modules.mjs +52 -0
  148. package/localized/zh-CN/skills/fec-drawio-studio/scripts/scan-python-classes.mjs +30 -0
  149. package/localized/zh-CN/skills/fec-drawio-studio/scripts/scan-python-modules.mjs +55 -0
  150. package/localized/zh-CN/skills/fec-drawio-studio/scripts/scan-rust-modules.mjs +35 -0
  151. package/localized/zh-CN/skills/fec-drawio-studio/scripts/scan-ts-modules.mjs +7 -0
  152. package/localized/zh-CN/skills/fec-drawio-studio/scripts/shape-query.mjs +121 -0
  153. package/localized/zh-CN/skills/fec-drawio-studio/scripts/studio-core.mjs +139 -0
  154. package/localized/zh-CN/skills/fec-drawio-studio/styles/built-in/corporate.json +49 -0
  155. package/localized/zh-CN/skills/fec-drawio-studio/styles/built-in/default.json +49 -0
  156. package/localized/zh-CN/skills/fec-drawio-studio/styles/built-in/handdrawn.json +49 -0
  157. package/localized/zh-CN/skills/fec-drawio-studio/styles/schema.json +112 -0
  158. package/localized/zh-CN/skills/fec-e2e-testing/SKILL.md +42 -0
  159. package/localized/zh-CN/skills/fec-e2e-testing/references/e2e-ci-reporting.md +62 -0
  160. package/localized/zh-CN/skills/fec-e2e-testing/references/e2e-special-scenarios.md +52 -0
  161. package/localized/zh-CN/skills/fec-e2e-testing/references/e2e-visual-regression.md +60 -0
  162. package/localized/zh-CN/skills/fec-e2e-testing/references/playwright-patterns.md +95 -0
  163. package/localized/zh-CN/skills/fec-form-handling/SKILL.md +76 -0
  164. package/localized/zh-CN/skills/fec-form-handling/references/advanced-form-patterns.md +101 -0
  165. package/localized/zh-CN/skills/fec-image-generation/SKILL.md +110 -0
  166. package/localized/zh-CN/skills/fec-image-generation/assets/interactive-diagram.html +371 -0
  167. package/localized/zh-CN/skills/fec-image-generation/assets/quality-examples/README.md +14 -0
  168. package/localized/zh-CN/skills/fec-image-generation/assets/quality-examples/architecture.json +121 -0
  169. package/localized/zh-CN/skills/fec-image-generation/assets/quality-examples/invalid-explicit.json +41 -0
  170. package/localized/zh-CN/skills/fec-image-generation/assets/quality-examples/sequence.json +53 -0
  171. package/localized/zh-CN/skills/fec-image-generation/assets/quality-examples/sequence.mmd +21 -0
  172. package/localized/zh-CN/skills/fec-image-generation/assets/quality-examples/workflow.json +98 -0
  173. package/localized/zh-CN/skills/fec-image-generation/assets/quality-examples/workflow.mmd +7 -0
  174. package/localized/zh-CN/skills/fec-image-generation/references/artifact-routing.md +80 -0
  175. package/localized/zh-CN/skills/fec-image-generation/references/diagram-workflows.md +81 -0
  176. package/localized/zh-CN/skills/fec-image-generation/references/html-technical-diagrams.md +243 -0
  177. package/localized/zh-CN/skills/fec-image-generation/references/png-qa-autofix.md +37 -0
  178. package/localized/zh-CN/skills/fec-image-generation/scripts/diagram-browser.mjs +90 -0
  179. package/localized/zh-CN/skills/fec-image-generation/scripts/diagram-layout.mjs +176 -0
  180. package/localized/zh-CN/skills/fec-image-generation/scripts/export-diagram.mjs +332 -0
  181. package/localized/zh-CN/skills/fec-image-generation/scripts/interactive-diagram-server.mjs +654 -0
  182. package/localized/zh-CN/skills/fec-image-generation/scripts/mermaid-render.mjs +64 -0
  183. package/localized/zh-CN/skills/fec-image-generation/scripts/png-qa.mjs +462 -0
  184. package/localized/zh-CN/skills/fec-image-generation/scripts/tech-diagram-render.mjs +1537 -0
  185. package/localized/zh-CN/skills/fec-implement-from-design/SKILL.md +129 -0
  186. package/localized/zh-CN/skills/fec-implement-from-design/references/design-plan-template.md +36 -0
  187. package/localized/zh-CN/skills/fec-legacy-to-modern-migration/SKILL.md +46 -0
  188. package/localized/zh-CN/skills/fec-legacy-to-modern-migration/references/migration-execution-checklist.md +110 -0
  189. package/localized/zh-CN/skills/fec-legacy-to-modern-migration/references/migration-report-template.md +41 -0
  190. package/localized/zh-CN/skills/fec-legacy-to-modern-migration/references/migration-strategy-and-mapping.md +48 -0
  191. package/localized/zh-CN/skills/fec-legacy-web-standard/SKILL.md +35 -0
  192. package/localized/zh-CN/skills/fec-legacy-web-standard/references/legacy-patterns.md +85 -0
  193. package/localized/zh-CN/skills/fec-list-virtualization/SKILL.md +34 -0
  194. package/localized/zh-CN/skills/fec-list-virtualization/references/virtualization-patterns.md +80 -0
  195. package/localized/zh-CN/skills/fec-monorepo-project-standard/SKILL.md +142 -0
  196. package/localized/zh-CN/skills/fec-motion-interaction/SKILL.md +73 -0
  197. package/localized/zh-CN/skills/fec-motion-interaction/references/motion-patterns.md +112 -0
  198. package/localized/zh-CN/skills/fec-nextjs-project-standard/SKILL.md +123 -0
  199. package/localized/zh-CN/skills/fec-nuxt-project-standard/SKILL.md +122 -0
  200. package/localized/zh-CN/skills/fec-performance-optimization/SKILL.md +80 -0
  201. package/localized/zh-CN/skills/fec-performance-optimization/references/framework-performance-patterns.md +38 -0
  202. package/localized/zh-CN/skills/fec-performance-optimization/references/report-template.md +59 -0
  203. package/localized/zh-CN/skills/fec-pwa-implementation/SKILL.md +35 -0
  204. package/localized/zh-CN/skills/fec-pwa-implementation/references/manifest-and-icons.md +53 -0
  205. package/localized/zh-CN/skills/fec-pwa-implementation/references/service-worker-workbox.md +68 -0
  206. package/localized/zh-CN/skills/fec-react-project-standard/SKILL.md +91 -0
  207. package/localized/zh-CN/skills/fec-react-project-standard/references/react-performance-patterns.md +35 -0
  208. package/localized/zh-CN/skills/fec-react-project-standard/references/react-project-structure.md +197 -0
  209. package/localized/zh-CN/skills/fec-react-project-standard/references/react-quality-patterns.md +131 -0
  210. package/localized/zh-CN/skills/fec-react-project-standard/references/react-runtime-patterns.md +293 -0
  211. package/localized/zh-CN/skills/fec-refactor-clean/SKILL.md +54 -0
  212. package/localized/zh-CN/skills/fec-refactor-clean/references/report-template.md +42 -0
  213. package/localized/zh-CN/skills/fec-refactoring/SKILL.md +83 -0
  214. package/localized/zh-CN/skills/fec-refactoring/references/principles.md +43 -0
  215. package/localized/zh-CN/skills/fec-refactoring/references/refactoring-vs-feature-change.md +25 -0
  216. package/localized/zh-CN/skills/fec-refactoring/references/when-to-refactor.md +17 -0
  217. package/localized/zh-CN/skills/fec-refactoring/references/workflow.md +59 -0
  218. package/localized/zh-CN/skills/fec-refactoring-api/SKILL.md +25 -0
  219. package/localized/zh-CN/skills/fec-refactoring-api/references/api-refactorings.md +496 -0
  220. package/localized/zh-CN/skills/fec-refactoring-catalog/SKILL.md +21 -0
  221. package/localized/zh-CN/skills/fec-refactoring-catalog/references/catalog-index.md +99 -0
  222. package/localized/zh-CN/skills/fec-refactoring-catalog/references/composition-guide.md +49 -0
  223. package/localized/zh-CN/skills/fec-refactoring-catalog/references/selection-guide.md +41 -0
  224. package/localized/zh-CN/skills/fec-refactoring-control/SKILL.md +25 -0
  225. package/localized/zh-CN/skills/fec-refactoring-control/references/conditional-refactorings.md +299 -0
  226. package/localized/zh-CN/skills/fec-refactoring-data/SKILL.md +25 -0
  227. package/localized/zh-CN/skills/fec-refactoring-data/references/data-refactorings.md +248 -0
  228. package/localized/zh-CN/skills/fec-refactoring-encapsulation/SKILL.md +25 -0
  229. package/localized/zh-CN/skills/fec-refactoring-encapsulation/references/encapsulation-refactorings.md +452 -0
  230. package/localized/zh-CN/skills/fec-refactoring-functions/SKILL.md +25 -0
  231. package/localized/zh-CN/skills/fec-refactoring-functions/references/function-refactorings.md +567 -0
  232. package/localized/zh-CN/skills/fec-refactoring-inheritance/SKILL.md +25 -0
  233. package/localized/zh-CN/skills/fec-refactoring-inheritance/references/inheritance-refactorings.md +550 -0
  234. package/localized/zh-CN/skills/fec-refactoring-move-features/SKILL.md +25 -0
  235. package/localized/zh-CN/skills/fec-refactoring-move-features/references/moving-refactorings.md +453 -0
  236. package/localized/zh-CN/skills/fec-refactoring-validation/SKILL.md +52 -0
  237. package/localized/zh-CN/skills/fec-refactoring-validation/references/behavior-preservation.md +15 -0
  238. package/localized/zh-CN/skills/fec-refactoring-validation/references/refactoring-test-checklist.md +25 -0
  239. package/localized/zh-CN/skills/fec-responsive-layout/SKILL.md +34 -0
  240. package/localized/zh-CN/skills/fec-responsive-layout/references/responsive-layout-patterns.md +70 -0
  241. package/localized/zh-CN/skills/fec-route-protection/SKILL.md +135 -0
  242. package/localized/zh-CN/skills/fec-security-review/SKILL.md +54 -0
  243. package/localized/zh-CN/skills/fec-security-review/references/report-template.md +37 -0
  244. package/localized/zh-CN/skills/fec-security-review/references/security-checklist.md +64 -0
  245. package/localized/zh-CN/skills/fec-source-driven-development/SKILL.md +87 -0
  246. package/localized/zh-CN/skills/fec-state-management/SKILL.md +140 -0
  247. package/localized/zh-CN/skills/fec-state-management/references/state-patterns.md +109 -0
  248. package/localized/zh-CN/skills/fec-storybook-component-doc/SKILL.md +37 -0
  249. package/localized/zh-CN/skills/fec-storybook-component-doc/references/story-patterns.md +118 -0
  250. package/localized/zh-CN/skills/fec-svg-animation/SKILL.md +148 -0
  251. package/localized/zh-CN/skills/fec-tailwind-design-system/SKILL.md +34 -0
  252. package/localized/zh-CN/skills/fec-tailwind-design-system/references/tailwind-system-patterns.md +59 -0
  253. package/localized/zh-CN/skills/fec-tdd-workflow/SKILL.md +55 -0
  254. package/localized/zh-CN/skills/fec-testing-strategy/SKILL.md +45 -0
  255. package/localized/zh-CN/skills/fec-typescript-project-standard/SKILL.md +54 -0
  256. package/localized/zh-CN/skills/fec-typescript-project-standard/references/type-safety-patterns.md +102 -0
  257. package/localized/zh-CN/skills/fec-typescript-project-standard/references/type-safety.md +148 -0
  258. package/localized/zh-CN/skills/fec-ui-design/SKILL.md +108 -0
  259. package/localized/zh-CN/skills/fec-ui-design/data/product-rules.json +231 -0
  260. package/localized/zh-CN/skills/fec-ui-design/data/stack-ui-rules.json +146 -0
  261. package/localized/zh-CN/skills/fec-ui-design/data/style-archetypes.json +373 -0
  262. package/localized/zh-CN/skills/fec-ui-design/data/ux-quality-rules.json +203 -0
  263. package/localized/zh-CN/skills/fec-ui-design/references/design-intelligence.md +97 -0
  264. package/localized/zh-CN/skills/fec-ui-design/references/master-page-overrides.md +30 -0
  265. package/localized/zh-CN/skills/fec-ui-design/references/pre-delivery-checklist.md +39 -0
  266. package/localized/zh-CN/skills/fec-ui-design/scripts/design-system.mjs +648 -0
  267. package/localized/zh-CN/skills/fec-validation-fix/SKILL.md +51 -0
  268. package/localized/zh-CN/skills/fec-validation-fix/references/report-template.md +43 -0
  269. package/localized/zh-CN/skills/fec-vite-project-standard/SKILL.md +83 -0
  270. package/localized/zh-CN/skills/fec-vue3-project-standard/SKILL.md +58 -0
  271. package/localized/zh-CN/skills/fec-vue3-project-standard/references/vue3-composables-routing.md +162 -0
  272. package/localized/zh-CN/skills/fec-vue3-project-standard/references/vue3-performance-patterns.md +13 -0
  273. package/localized/zh-CN/skills/fec-vue3-project-standard/references/vue3-project-structure.md +176 -0
  274. package/localized/zh-CN/skills/fec-vue3-project-standard/references/vue3-state-api-quality.md +216 -0
  275. package/localized/zh-CN/skills/fec-web-video-presentation/SKILL.md +61 -0
  276. package/localized/zh-CN/skills/fec-web-video-presentation/data/starter-themes.json +59 -0
  277. package/localized/zh-CN/skills/fec-web-video-presentation/references/chapter-craft.md +37 -0
  278. package/localized/zh-CN/skills/fec-web-video-presentation/references/content-plan.md +38 -0
  279. package/localized/zh-CN/skills/fec-web-video-presentation/references/recording-and-audio.md +33 -0
  280. package/localized/zh-CN/skills/fec-web-video-presentation/references/theme-system.md +36 -0
  281. package/localized/zh-CN/skills/fec-web-video-presentation/scripts/create-video-presentation.mjs +430 -0
  282. package/localized/zh-CN/skills/fec-web-workers/SKILL.md +35 -0
  283. package/localized/zh-CN/skills/fec-web-workers/references/advanced-workers.md +54 -0
  284. package/localized/zh-CN/skills/fec-web-workers/references/basic-worker.md +67 -0
  285. package/localized/zh-CN/skills/metadata.json +2004 -0
  286. package/localized/zh-CN/skills/relations.json +1023 -0
  287. package/localized/zh-CN/templates/claude/CLAUDE.md +106 -0
  288. package/localized/zh-CN/templates/claude/settings.json +62 -0
  289. package/localized/zh-CN/templates/codex/AGENTS.md +105 -0
  290. package/localized/zh-CN/templates/codex/config.toml +32 -0
  291. package/localized/zh-CN/templates/openclaw/AGENTS.md +101 -0
  292. package/localized/zh-CN/templates/openclaw/OPENCLAW-CONFIG.md +12 -0
  293. package/localized/zh-CN/templates/shared/rules/fec-agent-workflow.md +55 -0
  294. package/localized/zh-CN/templates/shared/rules/fec-api-layer.md +99 -0
  295. package/localized/zh-CN/templates/shared/rules/fec-ci-cd.md +40 -0
  296. package/localized/zh-CN/templates/shared/rules/fec-code-comments.md +33 -0
  297. package/localized/zh-CN/templates/shared/rules/fec-design-system.md +72 -0
  298. package/localized/zh-CN/templates/shared/rules/fec-error-handling.md +56 -0
  299. package/localized/zh-CN/templates/shared/rules/fec-git-conventions.md +73 -0
  300. package/localized/zh-CN/templates/shared/rules/fec-i18n.md +64 -0
  301. package/localized/zh-CN/templates/shared/rules/fec-naming-conventions.md +120 -0
  302. package/localized/zh-CN/templates/shared/rules/fec-performance.md +101 -0
  303. package/localized/zh-CN/templates/shared/rules/fec-react.md +82 -0
  304. package/localized/zh-CN/templates/shared/rules/fec-refactoring.md +47 -0
  305. package/localized/zh-CN/templates/shared/rules/fec-rendering-patterns.md +40 -0
  306. package/localized/zh-CN/templates/shared/rules/fec-responsive-design.md +50 -0
  307. package/localized/zh-CN/templates/shared/rules/fec-source-driven-development.md +31 -0
  308. package/localized/zh-CN/templates/shared/rules/fec-state-management.md +60 -0
  309. package/localized/zh-CN/templates/shared/rules/fec-testing.md +98 -0
  310. package/localized/zh-CN/templates/shared/rules/fec-typescript.md +112 -0
  311. package/localized/zh-CN/templates/shared/rules/fec-vue.md +64 -0
  312. package/localized/zh-CN/templates/shared/rules/fec-working-modes.md +50 -0
  313. package/openclaw.plugin.json +2 -3
  314. package/package.json +28 -17
  315. package/skills/TEMPLATE.md +74 -74
  316. package/skills/eval_queries.json +922 -678
  317. package/skills/fec-accessibility-check/SKILL.md +21 -21
  318. package/skills/fec-accessibility-check/references/report-template.md +12 -12
  319. package/skills/fec-accessibility-check/references/screen-reader-testing.md +24 -24
  320. package/skills/fec-alchemy/SKILL.md +50 -50
  321. package/skills/fec-alchemy/assets/absorption-plan-template.md +32 -32
  322. package/skills/fec-alchemy/assets/intake-template.md +55 -55
  323. package/skills/fec-alchemy/assets/review-checklist.md +23 -23
  324. package/skills/fec-alchemy/references/methodology.md +66 -66
  325. package/skills/fec-alchemy/references/originality-and-licensing.md +42 -42
  326. package/skills/fec-api-integration/SKILL.md +61 -61
  327. package/skills/fec-api-integration/references/integration-patterns.md +30 -30
  328. package/skills/fec-backend-requirements-handoff/SKILL.md +25 -25
  329. package/skills/fec-browser-storage/SKILL.md +16 -16
  330. package/skills/fec-browser-storage/references/storage-patterns.md +16 -16
  331. package/skills/fec-canvas-threejs/SKILL.md +21 -21
  332. package/skills/fec-canvas-threejs/references/rendering-patterns.md +10 -10
  333. package/skills/fec-canvas-threejs/references/shader-webgl-patterns.md +37 -37
  334. package/skills/fec-code-review/SKILL.md +113 -94
  335. package/skills/fec-code-review/references/report-template.md +23 -13
  336. package/skills/fec-code-smells/SKILL.md +33 -0
  337. package/skills/fec-code-smells/references/detection-guide.md +25 -0
  338. package/skills/fec-code-smells/references/smell-catalog.md +861 -0
  339. package/skills/fec-code-smells/references/smell-to-refactoring-map.md +265 -0
  340. package/skills/fec-component-testing/SKILL.md +39 -39
  341. package/skills/fec-data-fetching/SKILL.md +16 -16
  342. package/skills/fec-data-fetching/references/query-patterns.md +27 -27
  343. package/skills/fec-debug-framework/SKILL.md +95 -95
  344. package/skills/fec-debug-framework/references/report-template.md +34 -34
  345. package/skills/fec-dependency-upgrade/SKILL.md +17 -17
  346. package/skills/fec-dependency-upgrade/references/dependency-upgrade-workflow.md +31 -31
  347. package/skills/fec-doc-sync/SKILL.md +23 -23
  348. package/skills/fec-drawio-studio/SKILL.md +42 -38
  349. package/skills/fec-drawio-studio/data/THIRD_PARTY_NOTICES.md +1 -1
  350. package/skills/fec-drawio-studio/data/shape-index.json +83570 -0
  351. package/skills/fec-drawio-studio/references/diagram-patterns.md +19 -0
  352. package/skills/fec-drawio-studio/references/flowchart-quality.md +49 -0
  353. package/skills/fec-drawio-studio/references/layout-and-export.md +18 -3
  354. package/skills/fec-drawio-studio/references/xml-and-mermaid.md +5 -1
  355. package/skills/fec-drawio-studio/scripts/diagram-lint.mjs +62 -0
  356. package/skills/fec-drawio-studio/scripts/drawio-export.mjs +134 -0
  357. package/skills/fec-drawio-studio/scripts/shape-query.mjs +55 -15
  358. package/skills/fec-e2e-testing/SKILL.md +24 -24
  359. package/skills/fec-e2e-testing/references/e2e-ci-reporting.md +20 -20
  360. package/skills/fec-e2e-testing/references/e2e-special-scenarios.md +10 -10
  361. package/skills/fec-e2e-testing/references/e2e-visual-regression.md +17 -17
  362. package/skills/fec-e2e-testing/references/playwright-patterns.md +6 -6
  363. package/skills/fec-form-handling/SKILL.md +21 -21
  364. package/skills/fec-form-handling/references/advanced-form-patterns.md +41 -41
  365. package/skills/fec-image-generation/SKILL.md +84 -29
  366. package/skills/fec-image-generation/assets/interactive-diagram.html +371 -0
  367. package/skills/fec-image-generation/assets/quality-examples/README.md +14 -0
  368. package/skills/fec-image-generation/assets/quality-examples/architecture.json +121 -0
  369. package/skills/fec-image-generation/assets/quality-examples/invalid-explicit.json +41 -0
  370. package/skills/fec-image-generation/assets/quality-examples/sequence.json +53 -0
  371. package/skills/fec-image-generation/assets/quality-examples/sequence.mmd +21 -0
  372. package/skills/fec-image-generation/assets/quality-examples/workflow.json +98 -0
  373. package/skills/fec-image-generation/assets/quality-examples/workflow.mmd +7 -0
  374. package/skills/fec-image-generation/references/diagram-workflows.md +41 -3
  375. package/skills/fec-image-generation/references/html-technical-diagrams.md +243 -0
  376. package/skills/fec-image-generation/references/png-qa-autofix.md +9 -2
  377. package/skills/fec-image-generation/scripts/diagram-browser.mjs +90 -0
  378. package/skills/fec-image-generation/scripts/diagram-layout.mjs +176 -0
  379. package/skills/fec-image-generation/scripts/export-diagram.mjs +332 -0
  380. package/skills/fec-image-generation/scripts/interactive-diagram-server.mjs +654 -0
  381. package/skills/fec-image-generation/scripts/mermaid-render.mjs +64 -0
  382. package/skills/fec-image-generation/scripts/png-qa.mjs +35 -4
  383. package/skills/fec-image-generation/scripts/tech-diagram-render.mjs +1537 -0
  384. package/skills/fec-implement-from-design/SKILL.md +81 -81
  385. package/skills/fec-implement-from-design/references/design-plan-template.md +16 -16
  386. package/skills/fec-legacy-to-modern-migration/SKILL.md +29 -29
  387. package/skills/fec-legacy-to-modern-migration/references/migration-execution-checklist.md +81 -81
  388. package/skills/fec-legacy-to-modern-migration/references/migration-report-template.md +37 -37
  389. package/skills/fec-legacy-to-modern-migration/references/migration-strategy-and-mapping.md +31 -31
  390. package/skills/fec-legacy-web-standard/SKILL.md +17 -17
  391. package/skills/fec-legacy-web-standard/references/legacy-patterns.md +16 -16
  392. package/skills/fec-list-virtualization/SKILL.md +16 -16
  393. package/skills/fec-list-virtualization/references/virtualization-patterns.md +31 -31
  394. package/skills/fec-monorepo-project-standard/SKILL.md +52 -52
  395. package/skills/fec-motion-interaction/SKILL.md +51 -51
  396. package/skills/fec-motion-interaction/references/motion-patterns.md +11 -11
  397. package/skills/fec-nextjs-project-standard/SKILL.md +64 -64
  398. package/skills/fec-nuxt-project-standard/SKILL.md +57 -57
  399. package/skills/fec-performance-optimization/SKILL.md +54 -54
  400. package/skills/fec-performance-optimization/references/framework-performance-patterns.md +23 -23
  401. package/skills/fec-performance-optimization/references/report-template.md +31 -31
  402. package/skills/fec-pwa-implementation/SKILL.md +17 -17
  403. package/skills/fec-pwa-implementation/references/manifest-and-icons.md +12 -12
  404. package/skills/fec-pwa-implementation/references/service-worker-workbox.md +13 -13
  405. package/skills/fec-react-project-standard/SKILL.md +72 -72
  406. package/skills/fec-react-project-standard/references/react-performance-patterns.md +28 -28
  407. package/skills/fec-react-project-standard/references/react-project-structure.md +112 -112
  408. package/skills/fec-react-project-standard/references/react-quality-patterns.md +72 -72
  409. package/skills/fec-react-project-standard/references/react-runtime-patterns.md +94 -94
  410. package/skills/fec-refactor-clean/SKILL.md +33 -30
  411. package/skills/fec-refactor-clean/references/report-template.md +23 -23
  412. package/skills/fec-refactoring/SKILL.md +83 -0
  413. package/skills/fec-refactoring/references/principles.md +60 -0
  414. package/skills/fec-refactoring/references/refactoring-vs-feature-change.md +27 -0
  415. package/skills/fec-refactoring/references/when-to-refactor.md +31 -0
  416. package/skills/fec-refactoring/references/workflow.md +90 -0
  417. package/skills/fec-refactoring-api/SKILL.md +25 -0
  418. package/skills/fec-refactoring-api/references/api-refactorings.md +496 -0
  419. package/skills/fec-refactoring-catalog/SKILL.md +28 -0
  420. package/skills/fec-refactoring-catalog/references/catalog-index.md +99 -0
  421. package/skills/fec-refactoring-catalog/references/composition-guide.md +49 -0
  422. package/skills/fec-refactoring-catalog/references/selection-guide.md +47 -0
  423. package/skills/fec-refactoring-control/SKILL.md +25 -0
  424. package/skills/fec-refactoring-control/references/conditional-refactorings.md +299 -0
  425. package/skills/fec-refactoring-data/SKILL.md +25 -0
  426. package/skills/fec-refactoring-data/references/data-refactorings.md +248 -0
  427. package/skills/fec-refactoring-encapsulation/SKILL.md +25 -0
  428. package/skills/fec-refactoring-encapsulation/references/encapsulation-refactorings.md +452 -0
  429. package/skills/fec-refactoring-functions/SKILL.md +25 -0
  430. package/skills/fec-refactoring-functions/references/function-refactorings.md +567 -0
  431. package/skills/fec-refactoring-inheritance/SKILL.md +25 -0
  432. package/skills/fec-refactoring-inheritance/references/inheritance-refactorings.md +550 -0
  433. package/skills/fec-refactoring-move-features/SKILL.md +25 -0
  434. package/skills/fec-refactoring-move-features/references/moving-refactorings.md +453 -0
  435. package/skills/fec-refactoring-validation/SKILL.md +59 -0
  436. package/skills/fec-refactoring-validation/references/behavior-preservation.md +53 -0
  437. package/skills/fec-refactoring-validation/references/refactoring-test-checklist.md +42 -0
  438. package/skills/fec-responsive-layout/SKILL.md +17 -17
  439. package/skills/fec-responsive-layout/references/responsive-layout-patterns.md +37 -37
  440. package/skills/fec-route-protection/SKILL.md +26 -26
  441. package/skills/fec-security-review/SKILL.md +36 -20
  442. package/skills/fec-security-review/references/report-template.md +22 -12
  443. package/skills/fec-security-review/references/security-checklist.md +27 -27
  444. package/skills/fec-source-driven-development/SKILL.md +59 -59
  445. package/skills/fec-state-management/SKILL.md +34 -34
  446. package/skills/fec-state-management/references/state-patterns.md +19 -19
  447. package/skills/fec-storybook-component-doc/SKILL.md +19 -19
  448. package/skills/fec-storybook-component-doc/references/story-patterns.md +12 -12
  449. package/skills/fec-svg-animation/SKILL.md +32 -32
  450. package/skills/fec-tailwind-design-system/SKILL.md +17 -17
  451. package/skills/fec-tailwind-design-system/references/tailwind-system-patterns.md +36 -36
  452. package/skills/fec-tdd-workflow/SKILL.md +32 -28
  453. package/skills/fec-testing-strategy/SKILL.md +29 -29
  454. package/skills/fec-typescript-project-standard/SKILL.md +38 -38
  455. package/skills/fec-typescript-project-standard/references/type-safety-patterns.md +20 -20
  456. package/skills/fec-typescript-project-standard/references/type-safety.md +18 -18
  457. package/skills/fec-ui-design/SKILL.md +90 -90
  458. package/skills/fec-ui-design/references/design-intelligence.md +61 -61
  459. package/skills/fec-ui-design/references/master-page-overrides.md +15 -15
  460. package/skills/fec-ui-design/references/pre-delivery-checklist.md +38 -38
  461. package/skills/fec-validation-fix/SKILL.md +26 -26
  462. package/skills/fec-validation-fix/references/report-template.md +25 -25
  463. package/skills/fec-vite-project-standard/SKILL.md +39 -39
  464. package/skills/fec-vue3-project-standard/SKILL.md +38 -38
  465. package/skills/fec-vue3-project-standard/references/vue3-composables-routing.md +36 -36
  466. package/skills/fec-vue3-project-standard/references/vue3-performance-patterns.md +8 -8
  467. package/skills/fec-vue3-project-standard/references/vue3-project-structure.md +112 -112
  468. package/skills/fec-vue3-project-standard/references/vue3-state-api-quality.md +74 -74
  469. package/skills/fec-web-video-presentation/SKILL.md +33 -33
  470. package/skills/fec-web-workers/SKILL.md +16 -16
  471. package/skills/fec-web-workers/references/advanced-workers.md +13 -13
  472. package/skills/fec-web-workers/references/basic-worker.md +8 -8
  473. package/skills/metadata.json +485 -116
  474. package/skills/relations.json +268 -0
  475. package/templates/claude/CLAUDE.md +60 -60
  476. package/templates/codex/AGENTS.md +76 -76
  477. package/templates/codex/config.toml +4 -4
  478. package/templates/openclaw/AGENTS.md +68 -68
  479. package/templates/openclaw/OPENCLAW-CONFIG.md +8 -8
  480. package/templates/shared/rules/fec-agent-workflow.md +41 -40
  481. package/templates/shared/rules/fec-api-layer.md +52 -52
  482. package/templates/shared/rules/fec-ci-cd.md +29 -29
  483. package/templates/shared/rules/fec-code-comments.md +22 -22
  484. package/templates/shared/rules/fec-design-system.md +53 -53
  485. package/templates/shared/rules/fec-error-handling.md +40 -40
  486. package/templates/shared/rules/fec-git-conventions.md +42 -42
  487. package/templates/shared/rules/fec-i18n.md +48 -48
  488. package/templates/shared/rules/fec-naming-conventions.md +91 -91
  489. package/templates/shared/rules/fec-performance.md +78 -78
  490. package/templates/shared/rules/fec-react.md +58 -58
  491. package/templates/shared/rules/fec-refactoring.md +34 -34
  492. package/templates/shared/rules/fec-rendering-patterns.md +36 -36
  493. package/templates/shared/rules/fec-responsive-design.md +37 -37
  494. package/templates/shared/rules/fec-source-driven-development.md +22 -22
  495. package/templates/shared/rules/fec-state-management.md +56 -56
  496. package/templates/shared/rules/fec-testing.md +64 -64
  497. package/templates/shared/rules/fec-typescript.md +75 -75
  498. package/templates/shared/rules/fec-vue.md +42 -42
  499. package/templates/shared/rules/fec-working-modes.md +34 -34
  500. package/docs/superpowers/plans/2026-05-29-fec-debug.md +0 -491
  501. package/docs/superpowers/specs/2026-05-29-fec-debug-design.md +0 -340
  502. package/skills/fec-drawio-studio/data/shape-index.json.gz +0 -0
@@ -0,0 +1,496 @@
1
+ # API Refactorings
2
+
3
+ These cards transform the supplied standard catalog into concise operational guidance for frontend agents. Standard IDs/names are preserved; examples and framework adaptations are original.
4
+
5
+ ## RF-SEPARATE-QUERY-FROM-MODIFIER — Separate Query from Modifier
6
+
7
+ ### Intent
8
+ Separate a function that returns information from the operation that changes state.
9
+
10
+ ### Typical Signals
11
+ - A caller cannot ask for a value without also triggering mutation/effects.
12
+
13
+ ### Avoid When
14
+ - Keep an atomic combined operation when separating it would introduce race conditions or break transactional semantics.
15
+
16
+ ### Preconditions
17
+ - Current observable behavior and affected callers are understood.
18
+ - The target scope is inside a declared diff budget and can be verified after this one primary transformation.
19
+
20
+ ### Mechanics
21
+ 1. Identify the returned value and mutation.
22
+ 2. Extract a pure/read-only query for the value.
23
+ 3. Keep mutation in a command/action.
24
+ 4. Migrate callers based on whether they need read, write, or both.
25
+
26
+ ### Behavior-Preservation Checkpoints
27
+ - Compare inputs, outputs, exceptions, side effects, ordering, and public contracts before/after the step.
28
+ - For frontend code, also check UI state, events, focus, network behavior, lifecycle/state transitions, and relevant identity semantics.
29
+
30
+ ### Related Code Smells
31
+ - `SMELL-MUTABLE-DATA`
32
+
33
+ ### Composes Well With
34
+ - Combine only with a separately justified next transformation; no fixed sequence is required.
35
+
36
+ ### JavaScript Notes
37
+ - Preserve arity-sensitive callbacks, `this`, default values, thrown errors, and side-effect timing.
38
+
39
+ ### TypeScript Notes
40
+ - Treat exported function signatures, generics, overloads, DTOs, and public types as compatibility contracts.
41
+
42
+ ### React Notes
43
+ - Props/callback signatures, hooks, loaders/actions, router contracts, and context APIs may be public boundaries.
44
+
45
+ ### Vue Notes
46
+ - Props/emits, composable returns, Pinia actions, route contracts, and injection keys may be public boundaries.
47
+
48
+ ### Frontend-Craft Adaptation
49
+ - Prefer explicit, testable dependencies. Command objects earn their cost only when state/lifecycle such as undo, queue, retry, or audit justifies them.
50
+
51
+ ### Example Transformation
52
+ Before: `getUnreadCountAndMarkSeen()` both reads and mutates. After: expose `getUnreadCount()` and `markSeen()` while preserving workflows that intentionally call both.
53
+
54
+ ## RF-PARAMETERIZE-FUNCTION — Parameterize Function
55
+
56
+ ### Intent
57
+ Replace several near-duplicate functions with one function parameterized by the varying value.
58
+
59
+ ### Typical Signals
60
+ - Functions differ only by a literal, threshold, mode, or other explicit data.
61
+
62
+ ### Avoid When
63
+ - Avoid when the variants represent distinct business concepts whose names are valuable or behavior will diverge.
64
+
65
+ ### Preconditions
66
+ - Current observable behavior and affected callers are understood.
67
+ - The target scope is inside a declared diff budget and can be verified after this one primary transformation.
68
+
69
+ ### Mechanics
70
+ 1. Compare implementations and isolate the varying value.
71
+ 2. Add a parameter for that variation.
72
+ 3. Migrate one old function/caller at a time.
73
+ 4. Inline/remove wrappers only when names no longer add domain value.
74
+
75
+ ### Behavior-Preservation Checkpoints
76
+ - Compare inputs, outputs, exceptions, side effects, ordering, and public contracts before/after the step.
77
+ - For frontend code, also check UI state, events, focus, network behavior, lifecycle/state transitions, and relevant identity semantics.
78
+
79
+ ### Related Code Smells
80
+ - No single code smell required; select from concrete structural evidence.
81
+
82
+ ### Composes Well With
83
+ - Combine only with a separately justified next transformation; no fixed sequence is required.
84
+
85
+ ### JavaScript Notes
86
+ - Preserve arity-sensitive callbacks, `this`, default values, thrown errors, and side-effect timing.
87
+
88
+ ### TypeScript Notes
89
+ - Treat exported function signatures, generics, overloads, DTOs, and public types as compatibility contracts.
90
+
91
+ ### React Notes
92
+ - Props/callback signatures, hooks, loaders/actions, router contracts, and context APIs may be public boundaries.
93
+
94
+ ### Vue Notes
95
+ - Props/emits, composable returns, Pinia actions, route contracts, and injection keys may be public boundaries.
96
+
97
+ ### Frontend-Craft Adaptation
98
+ - Prefer explicit, testable dependencies. Command objects earn their cost only when state/lifecycle such as undo, queue, retry, or audit justifies them.
99
+
100
+ ### Example Transformation
101
+ Before: `loadFirstPage()` and `loadNextPage()` differ only by page index. After: `loadPage(page)` if their policies are truly identical.
102
+
103
+ ## RF-REMOVE-FLAG-ARGUMENT — Remove Flag Argument
104
+
105
+ ### Intent
106
+ Replace an argument that selects different behavior with explicit operations or a clearer dispatch API.
107
+
108
+ ### Typical Signals
109
+ - A boolean/enum flag tells a function which branch of behavior to execute.
110
+
111
+ ### Avoid When
112
+ - Do not remove ordinary data booleans that are part of the domain value rather than a control instruction.
113
+
114
+ ### Preconditions
115
+ - Current observable behavior and affected callers are understood.
116
+ - The target scope is inside a declared diff budget and can be verified after this one primary transformation.
117
+
118
+ ### Mechanics
119
+ 1. Identify behavior-selecting flags and affected call sites.
120
+ 2. Create explicit functions/entry points for meaningful behaviors.
121
+ 3. Migrate callers from magic boolean/enum values.
122
+ 4. Remove the flag branch after all callers are clear.
123
+
124
+ ### Behavior-Preservation Checkpoints
125
+ - Compare inputs, outputs, exceptions, side effects, ordering, and public contracts before/after the step.
126
+ - For frontend code, also check UI state, events, focus, network behavior, lifecycle/state transitions, and relevant identity semantics.
127
+
128
+ ### Related Code Smells
129
+ - `SMELL-LONG-PARAMETER-LIST`
130
+
131
+ ### Composes Well With
132
+ - Combine only with a separately justified next transformation; no fixed sequence is required.
133
+
134
+ ### JavaScript Notes
135
+ - Preserve arity-sensitive callbacks, `this`, default values, thrown errors, and side-effect timing.
136
+
137
+ ### TypeScript Notes
138
+ - Treat exported function signatures, generics, overloads, DTOs, and public types as compatibility contracts.
139
+
140
+ ### React Notes
141
+ - Props/callback signatures, hooks, loaders/actions, router contracts, and context APIs may be public boundaries.
142
+
143
+ ### Vue Notes
144
+ - Props/emits, composable returns, Pinia actions, route contracts, and injection keys may be public boundaries.
145
+
146
+ ### Frontend-Craft Adaptation
147
+ - Prefer explicit, testable dependencies. Command objects earn their cost only when state/lifecycle such as undo, queue, retry, or audit justifies them.
148
+
149
+ ### Example Transformation
150
+ Before: `send(draft, true)` means schedule. After: `scheduleSend(draft)` and `sendNow(draft)` expose intent.
151
+
152
+ ## RF-PRESERVE-WHOLE-OBJECT — Preserve Whole Object
153
+
154
+ ### Intent
155
+ Pass the source object when a function needs several of its fields instead of unpacking them into a long parameter list.
156
+
157
+ ### Typical Signals
158
+ - Callers extract multiple values from one object solely to pass them together.
159
+
160
+ ### Avoid When
161
+ - Avoid when passing the whole object would create an undesirable dependency on a broad mutable/public structure.
162
+
163
+ ### Preconditions
164
+ - Current observable behavior and affected callers are understood.
165
+ - The target scope is inside a declared diff budget and can be verified after this one primary transformation.
166
+
167
+ ### Mechanics
168
+ 1. Identify values originating from one object.
169
+ 2. Change the callee to accept the object while keeping calculation unchanged.
170
+ 3. Migrate callers.
171
+ 4. Narrow to an interface/view if the whole object exposes too much.
172
+
173
+ ### Behavior-Preservation Checkpoints
174
+ - Compare inputs, outputs, exceptions, side effects, ordering, and public contracts before/after the step.
175
+ - For frontend code, also check UI state, events, focus, network behavior, lifecycle/state transitions, and relevant identity semantics.
176
+
177
+ ### Related Code Smells
178
+ - `SMELL-LONG-FUNCTION`
179
+ - `SMELL-LONG-PARAMETER-LIST`
180
+ - `SMELL-DATA-CLUMPS`
181
+
182
+ ### Composes Well With
183
+ - Combine only with a separately justified next transformation; no fixed sequence is required.
184
+
185
+ ### JavaScript Notes
186
+ - Preserve arity-sensitive callbacks, `this`, default values, thrown errors, and side-effect timing.
187
+
188
+ ### TypeScript Notes
189
+ - Treat exported function signatures, generics, overloads, DTOs, and public types as compatibility contracts.
190
+
191
+ ### React Notes
192
+ - Props/callback signatures, hooks, loaders/actions, router contracts, and context APIs may be public boundaries.
193
+
194
+ ### Vue Notes
195
+ - Props/emits, composable returns, Pinia actions, route contracts, and injection keys may be public boundaries.
196
+
197
+ ### Frontend-Craft Adaptation
198
+ - Prefer explicit, testable dependencies. Command objects earn their cost only when state/lifecycle such as undo, queue, retry, or audit justifies them.
199
+
200
+ ### Example Transformation
201
+ Before: `withinRange(room.temp.low, room.temp.high, plan)` becomes `withinRange(room.temp, plan)` with a typed narrow range contract.
202
+
203
+ ## RF-REPLACE-PARAMETER-WITH-QUERY — Replace Parameter with Query
204
+
205
+ ### Intent
206
+ Remove a parameter when the callee can obtain the same value from an appropriate stable source.
207
+
208
+ ### Typical Signals
209
+ - Callers repeatedly compute/pass a value that the callee already can derive.
210
+
211
+ ### Avoid When
212
+ - Avoid when the query introduces hidden dependency, impurity, nondeterminism, or makes testing harder.
213
+
214
+ ### Preconditions
215
+ - Current observable behavior and affected callers are understood.
216
+ - The target scope is inside a declared diff budget and can be verified after this one primary transformation.
217
+
218
+ ### Mechanics
219
+ 1. Identify the stable query source.
220
+ 2. Read the value inside the function.
221
+ 3. Migrate callers and remove the redundant parameter.
222
+ 4. Verify dependency visibility and testability.
223
+
224
+ ### Behavior-Preservation Checkpoints
225
+ - Compare inputs, outputs, exceptions, side effects, ordering, and public contracts before/after the step.
226
+ - For frontend code, also check UI state, events, focus, network behavior, lifecycle/state transitions, and relevant identity semantics.
227
+
228
+ ### Related Code Smells
229
+ - `SMELL-LONG-PARAMETER-LIST`
230
+
231
+ ### Composes Well With
232
+ - Combine only with a separately justified next transformation; no fixed sequence is required.
233
+
234
+ ### JavaScript Notes
235
+ - Preserve arity-sensitive callbacks, `this`, default values, thrown errors, and side-effect timing.
236
+
237
+ ### TypeScript Notes
238
+ - Treat exported function signatures, generics, overloads, DTOs, and public types as compatibility contracts.
239
+
240
+ ### React Notes
241
+ - Props/callback signatures, hooks, loaders/actions, router contracts, and context APIs may be public boundaries.
242
+
243
+ ### Vue Notes
244
+ - Props/emits, composable returns, Pinia actions, route contracts, and injection keys may be public boundaries.
245
+
246
+ ### Frontend-Craft Adaptation
247
+ - Prefer explicit, testable dependencies. Command objects earn their cost only when state/lifecycle such as undo, queue, retry, or audit justifies them.
248
+
249
+ ### Example Transformation
250
+ Before: every caller passes `tenant.locale` into a tenant-owned formatter. After: the formatter queries its explicit tenant context when that dependency is appropriate.
251
+
252
+ ## RF-REPLACE-QUERY-WITH-PARAMETER — Replace Query with Parameter
253
+
254
+ ### Intent
255
+ Make a hidden dependency explicit by passing the needed value into a function.
256
+
257
+ ### Typical Signals
258
+ - A function queries global/context state that reduces purity, reuse, determinism, or testability.
259
+
260
+ ### Avoid When
261
+ - Avoid exploding parameter lists or passing values that are truly intrinsic to the receiver’s responsibility.
262
+
263
+ ### Preconditions
264
+ - Current observable behavior and affected callers are understood.
265
+ - The target scope is inside a declared diff budget and can be verified after this one primary transformation.
266
+
267
+ ### Mechanics
268
+ 1. Identify the hidden query/dependency.
269
+ 2. Add a parameter for the needed value or narrow interface.
270
+ 3. Move the query to callers at the right boundary.
271
+ 4. Verify callers and avoid duplicating inconsistent query logic.
272
+
273
+ ### Behavior-Preservation Checkpoints
274
+ - Compare inputs, outputs, exceptions, side effects, ordering, and public contracts before/after the step.
275
+ - For frontend code, also check UI state, events, focus, network behavior, lifecycle/state transitions, and relevant identity semantics.
276
+
277
+ ### Related Code Smells
278
+ - No single code smell required; select from concrete structural evidence.
279
+
280
+ ### Composes Well With
281
+ - Combine only with a separately justified next transformation; no fixed sequence is required.
282
+
283
+ ### JavaScript Notes
284
+ - Preserve arity-sensitive callbacks, `this`, default values, thrown errors, and side-effect timing.
285
+
286
+ ### TypeScript Notes
287
+ - Treat exported function signatures, generics, overloads, DTOs, and public types as compatibility contracts.
288
+
289
+ ### React Notes
290
+ - Props/callback signatures, hooks, loaders/actions, router contracts, and context APIs may be public boundaries.
291
+
292
+ ### Vue Notes
293
+ - Props/emits, composable returns, Pinia actions, route contracts, and injection keys may be public boundaries.
294
+
295
+ ### Frontend-Craft Adaptation
296
+ - Prefer explicit, testable dependencies. Command objects earn their cost only when state/lifecycle such as undo, queue, retry, or audit justifies them.
297
+
298
+ ### Example Transformation
299
+ Before: a pure formatter reads global timezone. After: pass the resolved timezone from application context so tests and SSR remain deterministic.
300
+
301
+ ## RF-REMOVE-SETTING-METHOD — Remove Setting Method
302
+
303
+ ### Intent
304
+ Remove mutation APIs for state that should not change after construction/initialization.
305
+
306
+ ### Typical Signals
307
+ - A setter exists but valid usage never changes the value after creation.
308
+
309
+ ### Avoid When
310
+ - Do not remove required edit workflows or framework-controlled setters without replacing the legitimate mutation path.
311
+
312
+ ### Preconditions
313
+ - Current observable behavior and affected callers are understood.
314
+ - The target scope is inside a declared diff budget and can be verified after this one primary transformation.
315
+
316
+ ### Mechanics
317
+ 1. Find all writes and establish the intended invariant.
318
+ 2. Move required initialization into construction/factory input.
319
+ 3. Migrate or reject post-construction writes.
320
+ 4. Remove the setter after callers no longer need it.
321
+
322
+ ### Behavior-Preservation Checkpoints
323
+ - Compare inputs, outputs, exceptions, side effects, ordering, and public contracts before/after the step.
324
+ - For frontend code, also check UI state, events, focus, network behavior, lifecycle/state transitions, and relevant identity semantics.
325
+
326
+ ### Related Code Smells
327
+ - `SMELL-MUTABLE-DATA`
328
+ - `SMELL-DATA-CLASS`
329
+
330
+ ### Composes Well With
331
+ - Combine only with a separately justified next transformation; no fixed sequence is required.
332
+
333
+ ### JavaScript Notes
334
+ - Preserve arity-sensitive callbacks, `this`, default values, thrown errors, and side-effect timing.
335
+
336
+ ### TypeScript Notes
337
+ - Treat exported function signatures, generics, overloads, DTOs, and public types as compatibility contracts.
338
+
339
+ ### React Notes
340
+ - Props/callback signatures, hooks, loaders/actions, router contracts, and context APIs may be public boundaries.
341
+
342
+ ### Vue Notes
343
+ - Props/emits, composable returns, Pinia actions, route contracts, and injection keys may be public boundaries.
344
+
345
+ ### Frontend-Craft Adaptation
346
+ - Prefer explicit, testable dependencies. Command objects earn their cost only when state/lifecycle such as undo, queue, retry, or audit justifies them.
347
+
348
+ ### Example Transformation
349
+ Before: an immutable account ID exposes `setAccountId`. After: require it at creation and expose only a getter/read-only field.
350
+
351
+ ## RF-REPLACE-CONSTRUCTOR-WITH-FACTORY-FUNCTION — Replace Constructor with Factory Function
352
+
353
+ ### Intent
354
+ Use a named factory when construction syntax cannot express selection, normalization, caching, or intent clearly.
355
+
356
+ ### Typical Signals
357
+ - Creation needs a meaningful name, subtype/strategy choice, normalization, or controlled instance reuse.
358
+
359
+ ### Avoid When
360
+ - Avoid adding a factory when `new` is already clear and no creation policy exists.
361
+
362
+ ### Preconditions
363
+ - Current observable behavior and affected callers are understood.
364
+ - The target scope is inside a declared diff budget and can be verified after this one primary transformation.
365
+
366
+ ### Mechanics
367
+ 1. Create a factory that initially delegates to the constructor.
368
+ 2. Migrate call sites incrementally.
369
+ 3. Move creation policy behind the factory only as needed.
370
+ 4. Restrict direct construction only when the abstraction benefits.
371
+
372
+ ### Behavior-Preservation Checkpoints
373
+ - Compare inputs, outputs, exceptions, side effects, ordering, and public contracts before/after the step.
374
+ - For frontend code, also check UI state, events, focus, network behavior, lifecycle/state transitions, and relevant identity semantics.
375
+
376
+ ### Related Code Smells
377
+ - No single code smell required; select from concrete structural evidence.
378
+
379
+ ### Composes Well With
380
+ - Combine only with a separately justified next transformation; no fixed sequence is required.
381
+
382
+ ### JavaScript Notes
383
+ - Preserve arity-sensitive callbacks, `this`, default values, thrown errors, and side-effect timing.
384
+
385
+ ### TypeScript Notes
386
+ - Treat exported function signatures, generics, overloads, DTOs, and public types as compatibility contracts.
387
+
388
+ ### React Notes
389
+ - Props/callback signatures, hooks, loaders/actions, router contracts, and context APIs may be public boundaries.
390
+
391
+ ### Vue Notes
392
+ - Props/emits, composable returns, Pinia actions, route contracts, and injection keys may be public boundaries.
393
+
394
+ ### Frontend-Craft Adaptation
395
+ - Prefer explicit, testable dependencies. Command objects earn their cost only when state/lifecycle such as undo, queue, retry, or audit justifies them.
396
+
397
+ ### Example Transformation
398
+ Before: `new Client(config, "readonly")` becomes `createReadonlyClient(config)` when the factory captures real creation policy.
399
+
400
+ ## RF-REPLACE-FUNCTION-WITH-COMMAND — Replace Function with Command
401
+
402
+ ### Intent
403
+ Represent a complex operation as an object/context when it benefits from state, lifecycle, undo, queueing, retry, audit, or staged calculation.
404
+
405
+ ### Typical Signals
406
+ - A function carries many temporaries or needs a reusable execution context.
407
+
408
+ ### Avoid When
409
+ - Do not introduce Command objects for simple pure calculations; classes are not inherently superior to functions.
410
+
411
+ ### Preconditions
412
+ - Current observable behavior and affected callers are understood.
413
+ - The target scope is inside a declared diff budget and can be verified after this one primary transformation.
414
+
415
+ ### Mechanics
416
+ 1. Create a command/context that captures inputs.
417
+ 2. Move the function body into an execute/calculate operation.
418
+ 3. Extract internal steps/state only when they clarify the lifecycle.
419
+ 4. Migrate callers and preserve result/error semantics.
420
+
421
+ ### Behavior-Preservation Checkpoints
422
+ - Compare inputs, outputs, exceptions, side effects, ordering, and public contracts before/after the step.
423
+ - For frontend code, also check UI state, events, focus, network behavior, lifecycle/state transitions, and relevant identity semantics.
424
+
425
+ ### Related Code Smells
426
+ - `SMELL-LONG-FUNCTION`
427
+
428
+ ### Composes Well With
429
+ - Combine only with a separately justified next transformation; no fixed sequence is required.
430
+
431
+ ### JavaScript Notes
432
+ - Preserve arity-sensitive callbacks, `this`, default values, thrown errors, and side-effect timing.
433
+
434
+ ### TypeScript Notes
435
+ - Treat exported function signatures, generics, overloads, DTOs, and public types as compatibility contracts.
436
+
437
+ ### React Notes
438
+ - Props/callback signatures, hooks, loaders/actions, router contracts, and context APIs may be public boundaries.
439
+
440
+ ### Vue Notes
441
+ - Props/emits, composable returns, Pinia actions, route contracts, and injection keys may be public boundaries.
442
+
443
+ ### Frontend-Craft Adaptation
444
+ - Prefer explicit, testable dependencies. Command objects earn their cost only when state/lifecycle such as undo, queue, retry, or audit justifies them.
445
+
446
+ ### Example Transformation
447
+ Before: a complex upload function manages retry, progress, cancellation, and audit state. After: an UploadCommand/session object owns that lifecycle.
448
+
449
+ ## RF-REPLACE-COMMAND-WITH-FUNCTION — Replace Command with Function
450
+
451
+ ### Intent
452
+ Collapse a command object to a function when its state/lifecycle no longer justifies the extra abstraction.
453
+
454
+ ### Typical Signals
455
+ - A command has one execute method, trivial fields, and no meaningful lifecycle or reuse.
456
+
457
+ ### Avoid When
458
+ - Keep commands that genuinely support state, undo, queueing, retry, auditing, or complex staged work.
459
+
460
+ ### Preconditions
461
+ - Current observable behavior and affected callers are understood.
462
+ - The target scope is inside a declared diff budget and can be verified after this one primary transformation.
463
+
464
+ ### Mechanics
465
+ 1. Inline command helpers until the operation is simple.
466
+ 2. Convert captured fields to function parameters.
467
+ 3. Replace construction + execute with a function call.
468
+ 4. Remove the command after callers migrate.
469
+
470
+ ### Behavior-Preservation Checkpoints
471
+ - Compare inputs, outputs, exceptions, side effects, ordering, and public contracts before/after the step.
472
+ - For frontend code, also check UI state, events, focus, network behavior, lifecycle/state transitions, and relevant identity semantics.
473
+
474
+ ### Related Code Smells
475
+ - No single code smell required; select from concrete structural evidence.
476
+
477
+ ### Composes Well With
478
+ - Combine only with a separately justified next transformation; no fixed sequence is required.
479
+
480
+ ### JavaScript Notes
481
+ - Preserve arity-sensitive callbacks, `this`, default values, thrown errors, and side-effect timing.
482
+
483
+ ### TypeScript Notes
484
+ - Treat exported function signatures, generics, overloads, DTOs, and public types as compatibility contracts.
485
+
486
+ ### React Notes
487
+ - Props/callback signatures, hooks, loaders/actions, router contracts, and context APIs may be public boundaries.
488
+
489
+ ### Vue Notes
490
+ - Props/emits, composable returns, Pinia actions, route contracts, and injection keys may be public boundaries.
491
+
492
+ ### Frontend-Craft Adaptation
493
+ - Prefer explicit, testable dependencies. Command objects earn their cost only when state/lifecycle such as undo, queue, retry, or audit justifies them.
494
+
495
+ ### Example Transformation
496
+ Before: a one-shot `TitleFormatterCommand` only stores one string then returns a formatted title. After: use `formatTitle(value)`.
@@ -0,0 +1,28 @@
1
+ ---
2
+ name: fec-refactoring-catalog
3
+ description: Use when selecting or composing behavior-preserving refactoring techniques after structural evidence is known, especially when multiple candidate transformations, preconditions, or ordering choices must be compared.
4
+ ---
5
+
6
+ # Refactoring Catalog Selection
7
+
8
+ ## Overview
9
+ Use the complete catalog as a decision aid, not as a list of automatic recipes. Select the smallest technique whose preconditions fit the evidence and behavior contract.
10
+
11
+ ## Workflow
12
+ 1. Locate the standard technique in [the catalog index](references/catalog-index.md).
13
+ 2. If starting from a smell or symptom, use [the selection guide](references/selection-guide.md) to compare causes and alternatives.
14
+ 3. If several transformations are needed, use [the composition guide](references/composition-guide.md) to order only the prerequisites that fit the current code.
15
+ 4. Load the referenced family detail only when the technique is selected.
16
+
17
+ ## Selection Rules
18
+ - A smell can have several valid candidates; determine the actual cause first.
19
+ - Prefer reversible, local transformations over broad redesign.
20
+ - Check public API, routing, state ownership, async/lifecycle, persistence, and SSR boundaries before execution.
21
+ - Treat composition edges as conditional relationships, never mandatory pipelines.
22
+
23
+ ## Quick Reference
24
+ | Need | Reference |
25
+ | --- | --- |
26
+ | All 61 techniques | [Catalog index](references/catalog-index.md) |
27
+ | Choose by symptom/cause | [Selection guide](references/selection-guide.md) |
28
+ | Order related techniques | [Composition guide](references/composition-guide.md) |
@@ -0,0 +1,99 @@
1
+ # Refactoring Catalog Index
2
+
3
+ The 61 stable IDs preserve the supplied Chapters 6–12 catalog. Detailed mechanics live in family references and are loaded only when needed.
4
+
5
+ ## Functions — 11
6
+
7
+ | ID | Standard Name | Family | Detail |
8
+ | --- | --- | --- | --- |
9
+ | `RF-EXTRACT-FUNCTION` | Extract Function | `functions` | [Detail](../../fec-refactoring-functions/references/function-refactorings.md) |
10
+ | `RF-INLINE-FUNCTION` | Inline Function | `functions` | [Detail](../../fec-refactoring-functions/references/function-refactorings.md) |
11
+ | `RF-EXTRACT-VARIABLE` | Extract Variable | `functions` | [Detail](../../fec-refactoring-functions/references/function-refactorings.md) |
12
+ | `RF-INLINE-VARIABLE` | Inline Variable | `functions` | [Detail](../../fec-refactoring-functions/references/function-refactorings.md) |
13
+ | `RF-CHANGE-FUNCTION-DECLARATION` | Change Function Declaration | `functions` | [Detail](../../fec-refactoring-functions/references/function-refactorings.md) |
14
+ | `RF-ENCAPSULATE-VARIABLE` | Encapsulate Variable | `functions` | [Detail](../../fec-refactoring-functions/references/function-refactorings.md) |
15
+ | `RF-RENAME-VARIABLE` | Rename Variable | `functions` | [Detail](../../fec-refactoring-functions/references/function-refactorings.md) |
16
+ | `RF-INTRODUCE-PARAMETER-OBJECT` | Introduce Parameter Object | `functions` | [Detail](../../fec-refactoring-functions/references/function-refactorings.md) |
17
+ | `RF-COMBINE-FUNCTIONS-INTO-CLASS` | Combine Functions into Class | `functions` | [Detail](../../fec-refactoring-functions/references/function-refactorings.md) |
18
+ | `RF-COMBINE-FUNCTIONS-INTO-TRANSFORM` | Combine Functions into Transform | `functions` | [Detail](../../fec-refactoring-functions/references/function-refactorings.md) |
19
+ | `RF-SPLIT-PHASE` | Split Phase | `functions` | [Detail](../../fec-refactoring-functions/references/function-refactorings.md) |
20
+
21
+ ## Encapsulation — 9
22
+
23
+ | ID | Standard Name | Family | Detail |
24
+ | --- | --- | --- | --- |
25
+ | `RF-ENCAPSULATE-RECORD` | Encapsulate Record | `encapsulation` | [Detail](../../fec-refactoring-encapsulation/references/encapsulation-refactorings.md) |
26
+ | `RF-ENCAPSULATE-COLLECTION` | Encapsulate Collection | `encapsulation` | [Detail](../../fec-refactoring-encapsulation/references/encapsulation-refactorings.md) |
27
+ | `RF-REPLACE-PRIMITIVE-WITH-OBJECT` | Replace Primitive with Object | `encapsulation` | [Detail](../../fec-refactoring-encapsulation/references/encapsulation-refactorings.md) |
28
+ | `RF-REPLACE-TEMP-WITH-QUERY` | Replace Temp with Query | `encapsulation` | [Detail](../../fec-refactoring-encapsulation/references/encapsulation-refactorings.md) |
29
+ | `RF-EXTRACT-CLASS` | Extract Class | `encapsulation` | [Detail](../../fec-refactoring-encapsulation/references/encapsulation-refactorings.md) |
30
+ | `RF-INLINE-CLASS` | Inline Class | `encapsulation` | [Detail](../../fec-refactoring-encapsulation/references/encapsulation-refactorings.md) |
31
+ | `RF-HIDE-DELEGATE` | Hide Delegate | `encapsulation` | [Detail](../../fec-refactoring-encapsulation/references/encapsulation-refactorings.md) |
32
+ | `RF-REMOVE-MIDDLE-MAN` | Remove Middle Man | `encapsulation` | [Detail](../../fec-refactoring-encapsulation/references/encapsulation-refactorings.md) |
33
+ | `RF-SUBSTITUTE-ALGORITHM` | Substitute Algorithm | `encapsulation` | [Detail](../../fec-refactoring-encapsulation/references/encapsulation-refactorings.md) |
34
+
35
+ ## Moving Features — 9
36
+
37
+ | ID | Standard Name | Family | Detail |
38
+ | --- | --- | --- | --- |
39
+ | `RF-MOVE-FUNCTION` | Move Function | `move-features` | [Detail](../../fec-refactoring-move-features/references/moving-refactorings.md) |
40
+ | `RF-MOVE-FIELD` | Move Field | `move-features` | [Detail](../../fec-refactoring-move-features/references/moving-refactorings.md) |
41
+ | `RF-MOVE-STATEMENTS-INTO-FUNCTION` | Move Statements into Function | `move-features` | [Detail](../../fec-refactoring-move-features/references/moving-refactorings.md) |
42
+ | `RF-MOVE-STATEMENTS-TO-CALLERS` | Move Statements to Callers | `move-features` | [Detail](../../fec-refactoring-move-features/references/moving-refactorings.md) |
43
+ | `RF-REPLACE-INLINE-CODE-WITH-FUNCTION-CALL` | Replace Inline Code with Function Call | `move-features` | [Detail](../../fec-refactoring-move-features/references/moving-refactorings.md) |
44
+ | `RF-SLIDE-STATEMENTS` | Slide Statements | `move-features` | [Detail](../../fec-refactoring-move-features/references/moving-refactorings.md) |
45
+ | `RF-SPLIT-LOOP` | Split Loop | `move-features` | [Detail](../../fec-refactoring-move-features/references/moving-refactorings.md) |
46
+ | `RF-REPLACE-LOOP-WITH-PIPELINE` | Replace Loop with Pipeline | `move-features` | [Detail](../../fec-refactoring-move-features/references/moving-refactorings.md) |
47
+ | `RF-REMOVE-DEAD-CODE` | Remove Dead Code | `move-features` | [Detail](../../fec-refactoring-move-features/references/moving-refactorings.md) |
48
+
49
+ ## Data — 5
50
+
51
+ | ID | Standard Name | Family | Detail |
52
+ | --- | --- | --- | --- |
53
+ | `RF-SPLIT-VARIABLE` | Split Variable | `data` | [Detail](../../fec-refactoring-data/references/data-refactorings.md) |
54
+ | `RF-RENAME-FIELD` | Rename Field | `data` | [Detail](../../fec-refactoring-data/references/data-refactorings.md) |
55
+ | `RF-REPLACE-DERIVED-VARIABLE-WITH-QUERY` | Replace Derived Variable with Query | `data` | [Detail](../../fec-refactoring-data/references/data-refactorings.md) |
56
+ | `RF-CHANGE-REFERENCE-TO-VALUE` | Change Reference to Value | `data` | [Detail](../../fec-refactoring-data/references/data-refactorings.md) |
57
+ | `RF-CHANGE-VALUE-TO-REFERENCE` | Change Value to Reference | `data` | [Detail](../../fec-refactoring-data/references/data-refactorings.md) |
58
+
59
+ ## Conditional Logic — 6
60
+
61
+ | ID | Standard Name | Family | Detail |
62
+ | --- | --- | --- | --- |
63
+ | `RF-DECOMPOSE-CONDITIONAL` | Decompose Conditional | `control` | [Detail](../../fec-refactoring-control/references/conditional-refactorings.md) |
64
+ | `RF-CONSOLIDATE-CONDITIONAL-EXPRESSION` | Consolidate Conditional Expression | `control` | [Detail](../../fec-refactoring-control/references/conditional-refactorings.md) |
65
+ | `RF-REPLACE-NESTED-CONDITIONAL-WITH-GUARD-CLAUSES` | Replace Nested Conditional with Guard Clauses | `control` | [Detail](../../fec-refactoring-control/references/conditional-refactorings.md) |
66
+ | `RF-REPLACE-CONDITIONAL-WITH-POLYMORPHISM` | Replace Conditional with Polymorphism | `control` | [Detail](../../fec-refactoring-control/references/conditional-refactorings.md) |
67
+ | `RF-INTRODUCE-SPECIAL-CASE` | Introduce Special Case | `control` | [Detail](../../fec-refactoring-control/references/conditional-refactorings.md) |
68
+ | `RF-INTRODUCE-ASSERTION` | Introduce Assertion | `control` | [Detail](../../fec-refactoring-control/references/conditional-refactorings.md) |
69
+
70
+ ## API — 10
71
+
72
+ | ID | Standard Name | Family | Detail |
73
+ | --- | --- | --- | --- |
74
+ | `RF-SEPARATE-QUERY-FROM-MODIFIER` | Separate Query from Modifier | `api` | [Detail](../../fec-refactoring-api/references/api-refactorings.md) |
75
+ | `RF-PARAMETERIZE-FUNCTION` | Parameterize Function | `api` | [Detail](../../fec-refactoring-api/references/api-refactorings.md) |
76
+ | `RF-REMOVE-FLAG-ARGUMENT` | Remove Flag Argument | `api` | [Detail](../../fec-refactoring-api/references/api-refactorings.md) |
77
+ | `RF-PRESERVE-WHOLE-OBJECT` | Preserve Whole Object | `api` | [Detail](../../fec-refactoring-api/references/api-refactorings.md) |
78
+ | `RF-REPLACE-PARAMETER-WITH-QUERY` | Replace Parameter with Query | `api` | [Detail](../../fec-refactoring-api/references/api-refactorings.md) |
79
+ | `RF-REPLACE-QUERY-WITH-PARAMETER` | Replace Query with Parameter | `api` | [Detail](../../fec-refactoring-api/references/api-refactorings.md) |
80
+ | `RF-REMOVE-SETTING-METHOD` | Remove Setting Method | `api` | [Detail](../../fec-refactoring-api/references/api-refactorings.md) |
81
+ | `RF-REPLACE-CONSTRUCTOR-WITH-FACTORY-FUNCTION` | Replace Constructor with Factory Function | `api` | [Detail](../../fec-refactoring-api/references/api-refactorings.md) |
82
+ | `RF-REPLACE-FUNCTION-WITH-COMMAND` | Replace Function with Command | `api` | [Detail](../../fec-refactoring-api/references/api-refactorings.md) |
83
+ | `RF-REPLACE-COMMAND-WITH-FUNCTION` | Replace Command with Function | `api` | [Detail](../../fec-refactoring-api/references/api-refactorings.md) |
84
+
85
+ ## Inheritance — 11
86
+
87
+ | ID | Standard Name | Family | Detail |
88
+ | --- | --- | --- | --- |
89
+ | `RF-PULL-UP-METHOD` | Pull Up Method | `inheritance` | [Detail](../../fec-refactoring-inheritance/references/inheritance-refactorings.md) |
90
+ | `RF-PULL-UP-FIELD` | Pull Up Field | `inheritance` | [Detail](../../fec-refactoring-inheritance/references/inheritance-refactorings.md) |
91
+ | `RF-PULL-UP-CONSTRUCTOR-BODY` | Pull Up Constructor Body | `inheritance` | [Detail](../../fec-refactoring-inheritance/references/inheritance-refactorings.md) |
92
+ | `RF-PUSH-DOWN-METHOD` | Push Down Method | `inheritance` | [Detail](../../fec-refactoring-inheritance/references/inheritance-refactorings.md) |
93
+ | `RF-PUSH-DOWN-FIELD` | Push Down Field | `inheritance` | [Detail](../../fec-refactoring-inheritance/references/inheritance-refactorings.md) |
94
+ | `RF-REPLACE-TYPE-CODE-WITH-SUBCLASSES` | Replace Type Code with Subclasses | `inheritance` | [Detail](../../fec-refactoring-inheritance/references/inheritance-refactorings.md) |
95
+ | `RF-REMOVE-SUBCLASS` | Remove Subclass | `inheritance` | [Detail](../../fec-refactoring-inheritance/references/inheritance-refactorings.md) |
96
+ | `RF-EXTRACT-SUPERCLASS` | Extract Superclass | `inheritance` | [Detail](../../fec-refactoring-inheritance/references/inheritance-refactorings.md) |
97
+ | `RF-COLLAPSE-HIERARCHY` | Collapse Hierarchy | `inheritance` | [Detail](../../fec-refactoring-inheritance/references/inheritance-refactorings.md) |
98
+ | `RF-REPLACE-SUBCLASS-WITH-DELEGATE` | Replace Subclass with Delegate | `inheritance` | [Detail](../../fec-refactoring-inheritance/references/inheritance-refactorings.md) |
99
+ | `RF-REPLACE-SUPERCLASS-WITH-DELEGATE` | Replace Superclass with Delegate | `inheritance` | [Detail](../../fec-refactoring-inheritance/references/inheritance-refactorings.md) |