@bovinphang/frontend-craft 2.8.0 → 3.0.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 (681) hide show
  1. package/.claude-plugin/marketplace.json +3 -3
  2. package/.claude-plugin/plugin.json +1 -1
  3. package/CHANGELOG.md +64 -0
  4. package/CHANGELOG.zh-CN.md +64 -0
  5. package/CONTRIBUTING.md +74 -54
  6. package/CONTRIBUTING.zh-CN.md +75 -53
  7. package/README.md +150 -38
  8. package/README.openclaw.md +86 -11
  9. package/README.openclaw.zh-CN.md +86 -11
  10. package/README.zh-CN.md +147 -35
  11. package/agents/fec-code-reviewer.md +24 -3
  12. package/agents/fec-debugger.md +1 -1
  13. package/agents/fec-doc-updater.md +1 -1
  14. package/agents/fec-e2e-runner.md +1 -1
  15. package/agents/fec-figma-implementer.md +1 -1
  16. package/agents/fec-performance-optimizer.md +1 -1
  17. package/agents/fec-refactor-cleaner.md +4 -1
  18. package/agents/fec-refactoring-expert.md +81 -0
  19. package/agents/fec-security-reviewer.md +17 -1
  20. package/agents/fec-test-planner.md +1 -1
  21. package/agents/fec-typescript-reviewer.md +25 -9
  22. package/agents/fec-ui-checker.md +11 -11
  23. package/commands/fec-debug.md +1 -1
  24. package/commands/fec-refactor-plan.md +17 -0
  25. package/commands/fec-refactor.md +18 -0
  26. package/commands/fec-review.md +40 -10
  27. package/commands/fec-scaffold.md +1 -1
  28. package/commands/fec-smell.md +17 -0
  29. package/commands/fec-tdd.md +6 -2
  30. package/common-content.lock.json +3795 -0
  31. package/dist/bin/frontend-craft.js +386 -55
  32. package/dist/hooks/fec-run-tests.js +5 -1
  33. package/dist/hooks/fec-session-start.js +1 -1
  34. package/docs/common-migration.md +61 -0
  35. package/docs/example-prompts.md +29 -12
  36. package/docs/ja-JP/README.md +129 -34
  37. package/docs/ko-KR/README.md +129 -34
  38. package/docs/project-structure.md +49 -14
  39. package/docs/refactoring/README.md +50 -0
  40. package/docs/refactoring/catalog.md +105 -0
  41. package/docs/refactoring/smell-refactoring-matrix.md +41 -0
  42. package/docs/review-and-diagram-workflows.md +39 -0
  43. package/docs/runtimes/antigravity.md +13 -5
  44. package/docs/runtimes/augment.md +13 -5
  45. package/docs/runtimes/claude.md +26 -10
  46. package/docs/runtimes/claude.zh-CN.md +26 -10
  47. package/docs/runtimes/cline.md +13 -5
  48. package/docs/runtimes/codebuddy.md +13 -5
  49. package/docs/runtimes/codex.md +13 -5
  50. package/docs/runtimes/compatibility.md +42 -0
  51. package/docs/runtimes/copilot.md +13 -5
  52. package/docs/runtimes/cursor.md +13 -5
  53. package/docs/runtimes/gemini.md +13 -5
  54. package/docs/runtimes/kilo.md +13 -5
  55. package/docs/runtimes/openclaw.md +13 -5
  56. package/docs/runtimes/opencode.md +13 -5
  57. package/docs/runtimes/qoder.md +11 -12
  58. package/docs/runtimes/trae.md +13 -5
  59. package/docs/runtimes/windsurf.md +13 -5
  60. package/docs/superpowers/plans/2026-09-26-content-integrity.md +145 -0
  61. package/docs/superpowers/plans/2026-09-26-diagram-quality.md +170 -0
  62. package/docs/superpowers/specs/2026-09-26-diagram-quality-design.md +77 -0
  63. package/docs/superpowers/specs/2026-09-26-project-optimization-design.md +95 -0
  64. package/docs/zh-CN/common-migration.md +57 -0
  65. package/docs/zh-CN/example-prompts.md +29 -12
  66. package/docs/zh-CN/project-structure.md +49 -11
  67. package/docs/zh-CN/review-and-diagram-workflows.md +39 -0
  68. package/docs/zh-TW/README.md +129 -34
  69. package/localized/zh-CN/agents/fec-code-reviewer.md +22 -3
  70. package/localized/zh-CN/agents/fec-refactor-cleaner.md +3 -0
  71. package/localized/zh-CN/agents/fec-refactoring-expert.md +53 -0
  72. package/localized/zh-CN/agents/fec-security-reviewer.md +16 -0
  73. package/localized/zh-CN/agents/fec-typescript-reviewer.md +24 -8
  74. package/localized/zh-CN/commands/fec-refactor-plan.md +15 -0
  75. package/localized/zh-CN/commands/fec-refactor.md +14 -0
  76. package/localized/zh-CN/commands/fec-review.md +40 -9
  77. package/localized/zh-CN/commands/fec-smell.md +13 -0
  78. package/localized/zh-CN/commands/fec-tdd.md +4 -0
  79. package/localized/zh-CN/skills/cc-c-project-standard/SKILL.md +25 -0
  80. package/localized/zh-CN/skills/cc-c-project-standard/examples/engineering/README.md +7 -0
  81. package/localized/zh-CN/skills/cc-c-project-standard/examples/engineering/boundary.c +26 -0
  82. package/localized/zh-CN/skills/cc-c-project-standard/examples/engineering/boundary.h +15 -0
  83. package/localized/zh-CN/skills/cc-c-project-standard/examples/engineering/boundary_test.c +73 -0
  84. package/localized/zh-CN/skills/cc-c-project-standard/references/common/engineering-practices.md +237 -0
  85. package/localized/zh-CN/skills/cc-c-project-standard/references/common/engineering-practices.rules.json +121 -0
  86. package/localized/zh-CN/skills/cc-c-project-standard/references/common/engineering-practices.sources.json +377 -0
  87. package/localized/zh-CN/skills/cc-c-project-standard/references/engineering-practices.md +106 -0
  88. package/localized/zh-CN/skills/cc-c-project-standard/references/practice.md +37 -0
  89. package/localized/zh-CN/skills/cc-cpp-project-standard/SKILL.md +25 -0
  90. package/localized/zh-CN/skills/cc-cpp-project-standard/examples/engineering/README.md +7 -0
  91. package/localized/zh-CN/skills/cc-cpp-project-standard/examples/engineering/boundary.cpp +26 -0
  92. package/localized/zh-CN/skills/cc-cpp-project-standard/examples/engineering/boundary.hpp +12 -0
  93. package/localized/zh-CN/skills/cc-cpp-project-standard/examples/engineering/boundary_test.cpp +38 -0
  94. package/localized/zh-CN/skills/cc-cpp-project-standard/references/common/engineering-practices.md +237 -0
  95. package/localized/zh-CN/skills/cc-cpp-project-standard/references/common/engineering-practices.rules.json +121 -0
  96. package/localized/zh-CN/skills/cc-cpp-project-standard/references/common/engineering-practices.sources.json +377 -0
  97. package/localized/zh-CN/skills/cc-cpp-project-standard/references/engineering-practices.md +106 -0
  98. package/localized/zh-CN/skills/cc-cpp-project-standard/references/practice.md +37 -0
  99. package/localized/zh-CN/skills/cc-debug-methodology/SKILL.md +8 -0
  100. package/localized/zh-CN/skills/cc-debug-methodology/references/method.md +13 -0
  101. package/localized/zh-CN/skills/cc-doc-sync-core/SKILL.md +8 -0
  102. package/localized/zh-CN/skills/cc-doc-sync-core/references/method.md +12 -0
  103. package/localized/zh-CN/skills/{fec-drawio-studio → cc-drawio-studio}/SKILL.md +5 -5
  104. package/localized/zh-CN/skills/{fec-drawio-studio → cc-drawio-studio}/references/flowchart-quality.md +1 -1
  105. package/localized/zh-CN/skills/{fec-drawio-studio → cc-drawio-studio}/references/layout-and-export.md +9 -9
  106. package/localized/zh-CN/skills/cc-electron-project-standard/SKILL.md +21 -0
  107. package/localized/zh-CN/skills/cc-electron-project-standard/examples/engineering/README.md +7 -0
  108. package/localized/zh-CN/skills/cc-electron-project-standard/examples/engineering/ipc-lifecycle.cjs +44 -0
  109. package/localized/zh-CN/skills/cc-electron-project-standard/examples/engineering/ipc-lifecycle.test.cjs +44 -0
  110. package/localized/zh-CN/skills/cc-electron-project-standard/examples/engineering/package.json +8 -0
  111. package/localized/zh-CN/skills/cc-electron-project-standard/examples/minimal/README.md +9 -0
  112. package/localized/zh-CN/skills/cc-electron-project-standard/examples/minimal/boundary.cjs +19 -0
  113. package/localized/zh-CN/skills/cc-electron-project-standard/examples/minimal/boundary.test.cjs +7 -0
  114. package/localized/zh-CN/skills/cc-electron-project-standard/examples/minimal/index.html +1 -0
  115. package/localized/zh-CN/skills/cc-electron-project-standard/examples/minimal/main.cjs +20 -0
  116. package/localized/zh-CN/skills/cc-electron-project-standard/examples/minimal/package.json +9 -0
  117. package/localized/zh-CN/skills/cc-electron-project-standard/examples/minimal/preload.cjs +2 -0
  118. package/localized/zh-CN/skills/cc-electron-project-standard/examples/minimal/renderer.js +4 -0
  119. package/localized/zh-CN/skills/cc-electron-project-standard/references/common/engineering-practices.md +237 -0
  120. package/localized/zh-CN/skills/cc-electron-project-standard/references/common/engineering-practices.rules.json +121 -0
  121. package/localized/zh-CN/skills/cc-electron-project-standard/references/common/engineering-practices.sources.json +377 -0
  122. package/localized/zh-CN/skills/cc-electron-project-standard/references/engineering-practices.md +73 -0
  123. package/localized/zh-CN/skills/cc-electron-project-standard/references/practice.md +19 -0
  124. package/localized/zh-CN/skills/cc-electron-project-standard/references/verification.md +17 -0
  125. package/localized/zh-CN/skills/cc-go-concurrency/SKILL.md +25 -0
  126. package/localized/zh-CN/skills/cc-go-concurrency/references/common/engineering-practices.md +237 -0
  127. package/localized/zh-CN/skills/cc-go-concurrency/references/common/engineering-practices.rules.json +121 -0
  128. package/localized/zh-CN/skills/cc-go-concurrency/references/common/engineering-practices.sources.json +377 -0
  129. package/localized/zh-CN/skills/cc-go-concurrency/references/engineering-practices.md +73 -0
  130. package/localized/zh-CN/skills/cc-go-concurrency/references/practice.md +37 -0
  131. package/localized/zh-CN/skills/cc-go-project-standard/SKILL.md +25 -0
  132. package/localized/zh-CN/skills/cc-go-project-standard/examples/engineering/README.md +7 -0
  133. package/localized/zh-CN/skills/cc-go-project-standard/examples/engineering/go.mod +3 -0
  134. package/localized/zh-CN/skills/cc-go-project-standard/examples/engineering/lifecycle.go +71 -0
  135. package/localized/zh-CN/skills/cc-go-project-standard/examples/engineering/lifecycle_test.go +22 -0
  136. package/localized/zh-CN/skills/cc-go-project-standard/references/common/engineering-practices.md +237 -0
  137. package/localized/zh-CN/skills/cc-go-project-standard/references/common/engineering-practices.rules.json +121 -0
  138. package/localized/zh-CN/skills/cc-go-project-standard/references/common/engineering-practices.sources.json +377 -0
  139. package/localized/zh-CN/skills/cc-go-project-standard/references/engineering-practices.md +106 -0
  140. package/localized/zh-CN/skills/cc-go-project-standard/references/practice.md +37 -0
  141. package/localized/zh-CN/skills/cc-java-project-standard/SKILL.md +25 -0
  142. package/localized/zh-CN/skills/cc-java-project-standard/examples/engineering/README.md +5 -0
  143. package/localized/zh-CN/skills/cc-java-project-standard/examples/engineering/ResourceBoundary.java +26 -0
  144. package/localized/zh-CN/skills/cc-java-project-standard/examples/engineering/ResourceBoundaryTest.java +41 -0
  145. package/localized/zh-CN/skills/cc-java-project-standard/references/common/engineering-practices.md +237 -0
  146. package/localized/zh-CN/skills/cc-java-project-standard/references/common/engineering-practices.rules.json +121 -0
  147. package/localized/zh-CN/skills/cc-java-project-standard/references/common/engineering-practices.sources.json +377 -0
  148. package/localized/zh-CN/skills/cc-java-project-standard/references/engineering-practices.md +106 -0
  149. package/localized/zh-CN/skills/cc-java-project-standard/references/practice.md +37 -0
  150. package/localized/zh-CN/skills/cc-java-runtime/SKILL.md +25 -0
  151. package/localized/zh-CN/skills/cc-java-runtime/references/common/engineering-practices.md +237 -0
  152. package/localized/zh-CN/skills/cc-java-runtime/references/common/engineering-practices.rules.json +121 -0
  153. package/localized/zh-CN/skills/cc-java-runtime/references/common/engineering-practices.sources.json +377 -0
  154. package/localized/zh-CN/skills/cc-java-runtime/references/engineering-practices.md +73 -0
  155. package/localized/zh-CN/skills/cc-java-runtime/references/practice.md +37 -0
  156. package/localized/zh-CN/skills/cc-native-memory-safety/SKILL.md +25 -0
  157. package/localized/zh-CN/skills/cc-native-memory-safety/references/common/engineering-practices.md +237 -0
  158. package/localized/zh-CN/skills/cc-native-memory-safety/references/common/engineering-practices.rules.json +121 -0
  159. package/localized/zh-CN/skills/cc-native-memory-safety/references/common/engineering-practices.sources.json +377 -0
  160. package/localized/zh-CN/skills/cc-native-memory-safety/references/engineering-practices.md +73 -0
  161. package/localized/zh-CN/skills/cc-native-memory-safety/references/practice.md +37 -0
  162. package/localized/zh-CN/skills/cc-python-async/SKILL.md +25 -0
  163. package/localized/zh-CN/skills/cc-python-async/references/common/engineering-practices.md +237 -0
  164. package/localized/zh-CN/skills/cc-python-async/references/common/engineering-practices.rules.json +121 -0
  165. package/localized/zh-CN/skills/cc-python-async/references/common/engineering-practices.sources.json +377 -0
  166. package/localized/zh-CN/skills/cc-python-async/references/engineering-practices.md +73 -0
  167. package/localized/zh-CN/skills/cc-python-async/references/practice.md +37 -0
  168. package/localized/zh-CN/skills/cc-python-project-standard/SKILL.md +25 -0
  169. package/localized/zh-CN/skills/cc-python-project-standard/examples/engineering/README.md +7 -0
  170. package/localized/zh-CN/skills/cc-python-project-standard/examples/engineering/resource_boundary.py +37 -0
  171. package/localized/zh-CN/skills/cc-python-project-standard/examples/engineering/test_resource_boundary.py +49 -0
  172. package/localized/zh-CN/skills/cc-python-project-standard/references/common/engineering-practices.md +237 -0
  173. package/localized/zh-CN/skills/cc-python-project-standard/references/common/engineering-practices.rules.json +121 -0
  174. package/localized/zh-CN/skills/cc-python-project-standard/references/common/engineering-practices.sources.json +377 -0
  175. package/localized/zh-CN/skills/cc-python-project-standard/references/engineering-practices.md +106 -0
  176. package/localized/zh-CN/skills/cc-python-project-standard/references/practice.md +37 -0
  177. package/localized/zh-CN/skills/cc-refactoring-core/SKILL.md +8 -0
  178. package/localized/zh-CN/skills/cc-refactoring-core/references/method.md +16 -0
  179. package/localized/zh-CN/skills/cc-rust-async/SKILL.md +25 -0
  180. package/localized/zh-CN/skills/cc-rust-async/references/common/engineering-practices.md +237 -0
  181. package/localized/zh-CN/skills/cc-rust-async/references/common/engineering-practices.rules.json +121 -0
  182. package/localized/zh-CN/skills/cc-rust-async/references/common/engineering-practices.sources.json +377 -0
  183. package/localized/zh-CN/skills/cc-rust-async/references/engineering-practices.md +73 -0
  184. package/localized/zh-CN/skills/cc-rust-async/references/practice.md +37 -0
  185. package/localized/zh-CN/skills/cc-rust-project-standard/SKILL.md +25 -0
  186. package/localized/zh-CN/skills/cc-rust-project-standard/examples/engineering/Cargo.lock +7 -0
  187. package/localized/zh-CN/skills/cc-rust-project-standard/examples/engineering/Cargo.toml +8 -0
  188. package/localized/zh-CN/skills/cc-rust-project-standard/examples/engineering/README.md +5 -0
  189. package/localized/zh-CN/skills/cc-rust-project-standard/examples/engineering/src/lib.rs +43 -0
  190. package/localized/zh-CN/skills/cc-rust-project-standard/references/common/engineering-practices.md +237 -0
  191. package/localized/zh-CN/skills/cc-rust-project-standard/references/common/engineering-practices.rules.json +121 -0
  192. package/localized/zh-CN/skills/cc-rust-project-standard/references/common/engineering-practices.sources.json +377 -0
  193. package/localized/zh-CN/skills/cc-rust-project-standard/references/engineering-practices.md +106 -0
  194. package/localized/zh-CN/skills/cc-rust-project-standard/references/practice.md +37 -0
  195. package/localized/zh-CN/skills/cc-source-driven-development/SKILL.md +8 -0
  196. package/localized/zh-CN/skills/cc-source-driven-development/references/method.md +19 -0
  197. package/localized/zh-CN/skills/cc-tauri-project-standard/SKILL.md +21 -0
  198. package/localized/zh-CN/skills/cc-tauri-project-standard/examples/minimal/README.md +9 -0
  199. package/localized/zh-CN/skills/cc-tauri-project-standard/examples/minimal/core/Cargo.lock +5 -0
  200. package/localized/zh-CN/skills/cc-tauri-project-standard/examples/minimal/core/Cargo.toml +9 -0
  201. package/localized/zh-CN/skills/cc-tauri-project-standard/examples/minimal/core/src/lib.rs +46 -0
  202. package/localized/zh-CN/skills/cc-tauri-project-standard/examples/minimal/src-tauri/Cargo.toml +12 -0
  203. package/localized/zh-CN/skills/cc-tauri-project-standard/examples/minimal/src-tauri/build.rs +5 -0
  204. package/localized/zh-CN/skills/cc-tauri-project-standard/examples/minimal/src-tauri/capabilities/main.json +6 -0
  205. package/localized/zh-CN/skills/cc-tauri-project-standard/examples/minimal/src-tauri/permissions/documents.toml +4 -0
  206. package/localized/zh-CN/skills/cc-tauri-project-standard/examples/minimal/src-tauri/src/main.rs +22 -0
  207. package/localized/zh-CN/skills/cc-tauri-project-standard/examples/minimal/src-tauri/tauri.conf.json +13 -0
  208. package/localized/zh-CN/skills/cc-tauri-project-standard/examples/minimal/ui/app.js +5 -0
  209. package/localized/zh-CN/skills/cc-tauri-project-standard/examples/minimal/ui/index.html +1 -0
  210. package/localized/zh-CN/skills/cc-tauri-project-standard/references/common/engineering-practices.md +237 -0
  211. package/localized/zh-CN/skills/cc-tauri-project-standard/references/common/engineering-practices.rules.json +121 -0
  212. package/localized/zh-CN/skills/cc-tauri-project-standard/references/common/engineering-practices.sources.json +377 -0
  213. package/localized/zh-CN/skills/cc-tauri-project-standard/references/engineering-practices.md +73 -0
  214. package/localized/zh-CN/skills/cc-tauri-project-standard/references/practice.md +20 -0
  215. package/localized/zh-CN/skills/cc-tauri-project-standard/references/verification.md +18 -0
  216. package/localized/zh-CN/skills/cc-tdd-methodology/SKILL.md +8 -0
  217. package/localized/zh-CN/skills/cc-tdd-methodology/references/method.md +13 -0
  218. package/localized/zh-CN/skills/cc-technical-diagrams/SKILL.md +34 -0
  219. package/localized/zh-CN/skills/{fec-image-generation → cc-technical-diagrams}/assets/interactive-diagram.html +371 -371
  220. package/localized/zh-CN/skills/cc-technical-diagrams/assets/quality-examples/README.md +14 -0
  221. package/localized/zh-CN/skills/cc-technical-diagrams/assets/quality-examples/architecture.json +121 -0
  222. package/localized/zh-CN/skills/cc-technical-diagrams/assets/quality-examples/invalid-explicit.json +41 -0
  223. package/localized/zh-CN/skills/cc-technical-diagrams/assets/quality-examples/sequence.json +53 -0
  224. package/localized/zh-CN/skills/cc-technical-diagrams/assets/quality-examples/sequence.mmd +21 -0
  225. package/localized/zh-CN/skills/cc-technical-diagrams/assets/quality-examples/workflow.json +98 -0
  226. package/localized/zh-CN/skills/cc-technical-diagrams/assets/quality-examples/workflow.mmd +7 -0
  227. package/localized/zh-CN/skills/{fec-image-generation → cc-technical-diagrams}/references/diagram-workflows.md +12 -5
  228. package/localized/zh-CN/skills/{fec-image-generation → cc-technical-diagrams}/references/html-technical-diagrams.md +14 -7
  229. package/localized/zh-CN/skills/cc-technical-diagrams/references/png-qa-autofix.md +37 -0
  230. package/localized/zh-CN/skills/cc-technical-diagrams/scripts/diagram-browser.mjs +153 -0
  231. package/localized/zh-CN/skills/cc-technical-diagrams/scripts/diagram-layout.mjs +176 -0
  232. package/{skills/fec-image-generation → localized/zh-CN/skills/cc-technical-diagrams}/scripts/export-diagram.mjs +48 -80
  233. package/localized/zh-CN/skills/cc-technical-diagrams/scripts/mermaid-render.mjs +64 -0
  234. package/localized/zh-CN/skills/cc-technical-diagrams/scripts/png-qa.mjs +462 -0
  235. package/localized/zh-CN/skills/{fec-image-generation → cc-technical-diagrams}/scripts/tech-diagram-render.mjs +193 -53
  236. package/localized/zh-CN/skills/{fec-typescript-project-standard → cc-typescript-project-standard}/SKILL.md +10 -4
  237. package/localized/zh-CN/skills/cc-typescript-project-standard/examples/engineering/README.md +7 -0
  238. package/localized/zh-CN/skills/cc-typescript-project-standard/examples/engineering/boundary.test.ts +16 -0
  239. package/localized/zh-CN/skills/cc-typescript-project-standard/examples/engineering/input.ts +12 -0
  240. package/localized/zh-CN/skills/cc-typescript-project-standard/examples/engineering/package.json +12 -0
  241. package/localized/zh-CN/skills/cc-typescript-project-standard/examples/engineering/pnpm-lock.yaml +39 -0
  242. package/localized/zh-CN/skills/cc-typescript-project-standard/examples/engineering/pnpm-workspace.yaml +1 -0
  243. package/localized/zh-CN/skills/cc-typescript-project-standard/examples/engineering/tsconfig.json +8 -0
  244. package/localized/zh-CN/skills/cc-typescript-project-standard/references/common/engineering-practices.md +237 -0
  245. package/localized/zh-CN/skills/cc-typescript-project-standard/references/common/engineering-practices.rules.json +121 -0
  246. package/localized/zh-CN/skills/cc-typescript-project-standard/references/common/engineering-practices.sources.json +377 -0
  247. package/localized/zh-CN/skills/cc-typescript-project-standard/references/engineering-practices.md +106 -0
  248. package/localized/zh-CN/skills/{fec-typescript-project-standard → cc-typescript-project-standard}/references/type-safety-patterns.md +5 -34
  249. package/localized/zh-CN/skills/{fec-typescript-project-standard → cc-typescript-project-standard}/references/type-safety.md +6 -0
  250. package/localized/zh-CN/skills/eval_queries.json +738 -72
  251. package/localized/zh-CN/skills/fec-api-integration/SKILL.md +5 -1
  252. package/localized/zh-CN/skills/fec-api-integration/references/common/engineering-practices.md +237 -0
  253. package/localized/zh-CN/skills/fec-api-integration/references/common/engineering-practices.rules.json +121 -0
  254. package/localized/zh-CN/skills/fec-api-integration/references/common/engineering-practices.sources.json +377 -0
  255. package/localized/zh-CN/skills/fec-api-integration/references/engineering-practices.md +73 -0
  256. package/localized/zh-CN/skills/fec-code-review/SKILL.md +24 -1
  257. package/localized/zh-CN/skills/fec-code-review/references/common/engineering-practices.md +237 -0
  258. package/localized/zh-CN/skills/fec-code-review/references/common/engineering-practices.rules.json +121 -0
  259. package/localized/zh-CN/skills/fec-code-review/references/common/engineering-practices.sources.json +377 -0
  260. package/localized/zh-CN/skills/fec-code-review/references/engineering-practices.md +73 -0
  261. package/localized/zh-CN/skills/fec-code-review/references/report-template.md +11 -1
  262. package/localized/zh-CN/skills/fec-code-smells/SKILL.md +33 -0
  263. package/localized/zh-CN/skills/fec-code-smells/references/detection-guide.md +25 -0
  264. package/localized/zh-CN/skills/fec-code-smells/references/smell-catalog.md +817 -0
  265. package/localized/zh-CN/skills/fec-code-smells/references/smell-to-refactoring-map.md +265 -0
  266. package/localized/zh-CN/skills/fec-data-fetching/SKILL.md +4 -0
  267. package/localized/zh-CN/skills/fec-data-fetching/references/common/engineering-practices.md +237 -0
  268. package/localized/zh-CN/skills/fec-data-fetching/references/common/engineering-practices.rules.json +121 -0
  269. package/localized/zh-CN/skills/fec-data-fetching/references/common/engineering-practices.sources.json +377 -0
  270. package/localized/zh-CN/skills/fec-data-fetching/references/engineering-practices.md +73 -0
  271. package/localized/zh-CN/skills/fec-debug-framework/SKILL.md +1 -50
  272. package/localized/zh-CN/skills/fec-debug-framework/references/common/debug.md +13 -0
  273. package/localized/zh-CN/skills/fec-dependency-upgrade/SKILL.md +4 -0
  274. package/localized/zh-CN/skills/fec-dependency-upgrade/references/common/engineering-practices.md +237 -0
  275. package/localized/zh-CN/skills/fec-dependency-upgrade/references/common/engineering-practices.rules.json +121 -0
  276. package/localized/zh-CN/skills/fec-dependency-upgrade/references/common/engineering-practices.sources.json +377 -0
  277. package/localized/zh-CN/skills/fec-dependency-upgrade/references/engineering-practices.md +73 -0
  278. package/localized/zh-CN/skills/fec-doc-sync/SKILL.md +7 -28
  279. package/localized/zh-CN/skills/fec-doc-sync/references/common/doc-sync.md +12 -0
  280. package/localized/zh-CN/skills/fec-image-generation/SKILL.md +7 -71
  281. package/localized/zh-CN/skills/fec-image-generation/references/png-qa-autofix.md +9 -2
  282. package/localized/zh-CN/skills/fec-image-generation/scripts/diagram-layout.mjs +176 -0
  283. package/localized/zh-CN/skills/fec-image-generation/scripts/png-qa.mjs +36 -5
  284. package/localized/zh-CN/skills/fec-react-project-standard/SKILL.md +6 -0
  285. package/localized/zh-CN/skills/fec-react-project-standard/examples/engineering/README.md +7 -0
  286. package/localized/zh-CN/skills/fec-react-project-standard/examples/engineering/package.json +15 -0
  287. package/localized/zh-CN/skills/fec-react-project-standard/examples/engineering/pnpm-lock.yaml +662 -0
  288. package/localized/zh-CN/skills/fec-react-project-standard/examples/engineering/pnpm-workspace.yaml +1 -0
  289. package/localized/zh-CN/skills/fec-react-project-standard/examples/engineering/request-view.mjs +24 -0
  290. package/localized/zh-CN/skills/fec-react-project-standard/examples/engineering/request-view.test.mjs +33 -0
  291. package/localized/zh-CN/skills/fec-react-project-standard/references/common/engineering-practices.md +237 -0
  292. package/localized/zh-CN/skills/fec-react-project-standard/references/common/engineering-practices.rules.json +121 -0
  293. package/localized/zh-CN/skills/fec-react-project-standard/references/common/engineering-practices.sources.json +377 -0
  294. package/localized/zh-CN/skills/fec-react-project-standard/references/engineering-practices.md +73 -0
  295. package/localized/zh-CN/skills/fec-react-project-standard/references/generic-component-types.md +37 -0
  296. package/localized/zh-CN/skills/fec-react-project-standard/references/react-quality-patterns.md +3 -3
  297. package/localized/zh-CN/skills/fec-react-project-standard/references/react-runtime-patterns.md +1 -1
  298. package/localized/zh-CN/skills/fec-refactor-clean/SKILL.md +3 -0
  299. package/localized/zh-CN/skills/fec-refactoring/SKILL.md +25 -0
  300. package/localized/zh-CN/skills/fec-refactoring/references/common/refactoring.md +16 -0
  301. package/localized/zh-CN/skills/fec-refactoring/references/principles.md +13 -0
  302. package/localized/zh-CN/skills/fec-refactoring/references/refactoring-vs-feature-change.md +25 -0
  303. package/localized/zh-CN/skills/fec-refactoring/references/when-to-refactor.md +17 -0
  304. package/localized/zh-CN/skills/fec-refactoring/references/workflow.md +7 -0
  305. package/localized/zh-CN/skills/fec-refactoring-api/SKILL.md +25 -0
  306. package/localized/zh-CN/skills/fec-refactoring-api/references/api-refactorings.md +496 -0
  307. package/localized/zh-CN/skills/fec-refactoring-catalog/SKILL.md +21 -0
  308. package/localized/zh-CN/skills/fec-refactoring-catalog/references/catalog-index.md +99 -0
  309. package/localized/zh-CN/skills/fec-refactoring-catalog/references/composition-guide.md +49 -0
  310. package/localized/zh-CN/skills/fec-refactoring-catalog/references/selection-guide.md +41 -0
  311. package/localized/zh-CN/skills/fec-refactoring-control/SKILL.md +25 -0
  312. package/localized/zh-CN/skills/fec-refactoring-control/references/conditional-refactorings.md +299 -0
  313. package/localized/zh-CN/skills/fec-refactoring-data/SKILL.md +25 -0
  314. package/localized/zh-CN/skills/fec-refactoring-data/references/data-refactorings.md +248 -0
  315. package/localized/zh-CN/skills/fec-refactoring-encapsulation/SKILL.md +25 -0
  316. package/localized/zh-CN/skills/fec-refactoring-encapsulation/references/encapsulation-refactorings.md +452 -0
  317. package/localized/zh-CN/skills/fec-refactoring-functions/SKILL.md +25 -0
  318. package/localized/zh-CN/skills/fec-refactoring-functions/references/function-refactorings.md +567 -0
  319. package/localized/zh-CN/skills/fec-refactoring-inheritance/SKILL.md +25 -0
  320. package/localized/zh-CN/skills/fec-refactoring-inheritance/references/inheritance-refactorings.md +550 -0
  321. package/localized/zh-CN/skills/fec-refactoring-move-features/SKILL.md +25 -0
  322. package/localized/zh-CN/skills/fec-refactoring-move-features/references/moving-refactorings.md +453 -0
  323. package/localized/zh-CN/skills/fec-refactoring-validation/SKILL.md +52 -0
  324. package/localized/zh-CN/skills/fec-refactoring-validation/references/behavior-preservation.md +15 -0
  325. package/localized/zh-CN/skills/fec-refactoring-validation/references/refactoring-test-checklist.md +25 -0
  326. package/localized/zh-CN/skills/fec-security-review/SKILL.md +20 -0
  327. package/localized/zh-CN/skills/fec-security-review/references/common/engineering-practices.md +237 -0
  328. package/localized/zh-CN/skills/fec-security-review/references/common/engineering-practices.rules.json +121 -0
  329. package/localized/zh-CN/skills/fec-security-review/references/common/engineering-practices.sources.json +377 -0
  330. package/localized/zh-CN/skills/fec-security-review/references/engineering-practices.md +73 -0
  331. package/localized/zh-CN/skills/fec-security-review/references/report-template.md +10 -0
  332. package/localized/zh-CN/skills/fec-tdd-workflow/SKILL.md +12 -40
  333. package/localized/zh-CN/skills/fec-tdd-workflow/references/common/tdd.md +13 -0
  334. package/localized/zh-CN/skills/fec-testing-strategy/SKILL.md +4 -0
  335. package/localized/zh-CN/skills/fec-testing-strategy/references/common/engineering-practices.md +237 -0
  336. package/localized/zh-CN/skills/fec-testing-strategy/references/common/engineering-practices.rules.json +121 -0
  337. package/localized/zh-CN/skills/fec-testing-strategy/references/common/engineering-practices.sources.json +377 -0
  338. package/localized/zh-CN/skills/fec-testing-strategy/references/engineering-practices.md +73 -0
  339. package/localized/zh-CN/skills/fec-vue3-project-standard/SKILL.md +4 -0
  340. package/localized/zh-CN/skills/fec-vue3-project-standard/references/common/engineering-practices.md +237 -0
  341. package/localized/zh-CN/skills/fec-vue3-project-standard/references/common/engineering-practices.rules.json +121 -0
  342. package/localized/zh-CN/skills/fec-vue3-project-standard/references/common/engineering-practices.sources.json +377 -0
  343. package/localized/zh-CN/skills/fec-vue3-project-standard/references/engineering-practices.md +73 -0
  344. package/localized/zh-CN/skills/fec-vue3-project-standard/references/vue3-project-structure.md +2 -2
  345. package/localized/zh-CN/skills/metadata.json +2222 -626
  346. package/localized/zh-CN/skills/relations.json +472 -75
  347. package/localized/zh-CN/templates/shared/rules/fec-agent-workflow.md +1 -0
  348. package/localized/zh-CN/templates/shared/rules/fec-source-driven-development.md +3 -29
  349. package/localized/zh-CN/templates/shared/rules/fec-typescript.md +4 -4
  350. package/localized/zh-CN/templates/shared/rules/references/common/source-driven-development.md +19 -0
  351. package/openclaw.plugin.json +2 -3
  352. package/package.json +34 -17
  353. package/skills/cc-c-project-standard/SKILL.md +25 -0
  354. package/skills/cc-c-project-standard/examples/engineering/README.md +7 -0
  355. package/skills/cc-c-project-standard/examples/engineering/boundary.c +26 -0
  356. package/skills/cc-c-project-standard/examples/engineering/boundary.h +15 -0
  357. package/skills/cc-c-project-standard/examples/engineering/boundary_test.c +73 -0
  358. package/skills/cc-c-project-standard/references/common/engineering-practices.md +237 -0
  359. package/skills/cc-c-project-standard/references/common/engineering-practices.rules.json +121 -0
  360. package/skills/cc-c-project-standard/references/common/engineering-practices.sources.json +377 -0
  361. package/skills/cc-c-project-standard/references/engineering-practices.md +106 -0
  362. package/skills/cc-c-project-standard/references/practice.md +37 -0
  363. package/skills/cc-cpp-project-standard/SKILL.md +25 -0
  364. package/skills/cc-cpp-project-standard/examples/engineering/README.md +7 -0
  365. package/skills/cc-cpp-project-standard/examples/engineering/boundary.cpp +26 -0
  366. package/skills/cc-cpp-project-standard/examples/engineering/boundary.hpp +12 -0
  367. package/skills/cc-cpp-project-standard/examples/engineering/boundary_test.cpp +38 -0
  368. package/skills/cc-cpp-project-standard/references/common/engineering-practices.md +237 -0
  369. package/skills/cc-cpp-project-standard/references/common/engineering-practices.rules.json +121 -0
  370. package/skills/cc-cpp-project-standard/references/common/engineering-practices.sources.json +377 -0
  371. package/skills/cc-cpp-project-standard/references/engineering-practices.md +106 -0
  372. package/skills/cc-cpp-project-standard/references/practice.md +37 -0
  373. package/skills/cc-debug-methodology/SKILL.md +8 -0
  374. package/skills/cc-debug-methodology/references/method.md +13 -0
  375. package/skills/cc-doc-sync-core/SKILL.md +8 -0
  376. package/skills/cc-doc-sync-core/references/method.md +12 -0
  377. package/skills/{fec-drawio-studio → cc-drawio-studio}/SKILL.md +5 -5
  378. package/skills/{fec-drawio-studio → cc-drawio-studio}/references/flowchart-quality.md +1 -1
  379. package/skills/{fec-drawio-studio → cc-drawio-studio}/references/layout-and-export.md +9 -9
  380. package/skills/cc-electron-project-standard/SKILL.md +21 -0
  381. package/skills/cc-electron-project-standard/examples/engineering/README.md +7 -0
  382. package/skills/cc-electron-project-standard/examples/engineering/ipc-lifecycle.cjs +44 -0
  383. package/skills/cc-electron-project-standard/examples/engineering/ipc-lifecycle.test.cjs +44 -0
  384. package/skills/cc-electron-project-standard/examples/engineering/package.json +8 -0
  385. package/skills/cc-electron-project-standard/examples/minimal/README.md +9 -0
  386. package/skills/cc-electron-project-standard/examples/minimal/boundary.cjs +19 -0
  387. package/skills/cc-electron-project-standard/examples/minimal/boundary.test.cjs +7 -0
  388. package/skills/cc-electron-project-standard/examples/minimal/index.html +1 -0
  389. package/skills/cc-electron-project-standard/examples/minimal/main.cjs +20 -0
  390. package/skills/cc-electron-project-standard/examples/minimal/package.json +9 -0
  391. package/skills/cc-electron-project-standard/examples/minimal/preload.cjs +2 -0
  392. package/skills/cc-electron-project-standard/examples/minimal/renderer.js +4 -0
  393. package/skills/cc-electron-project-standard/references/common/engineering-practices.md +237 -0
  394. package/skills/cc-electron-project-standard/references/common/engineering-practices.rules.json +121 -0
  395. package/skills/cc-electron-project-standard/references/common/engineering-practices.sources.json +377 -0
  396. package/skills/cc-electron-project-standard/references/engineering-practices.md +73 -0
  397. package/skills/cc-electron-project-standard/references/practice.md +19 -0
  398. package/skills/cc-electron-project-standard/references/verification.md +17 -0
  399. package/skills/cc-go-concurrency/SKILL.md +25 -0
  400. package/skills/cc-go-concurrency/references/common/engineering-practices.md +237 -0
  401. package/skills/cc-go-concurrency/references/common/engineering-practices.rules.json +121 -0
  402. package/skills/cc-go-concurrency/references/common/engineering-practices.sources.json +377 -0
  403. package/skills/cc-go-concurrency/references/engineering-practices.md +73 -0
  404. package/skills/cc-go-concurrency/references/practice.md +37 -0
  405. package/skills/cc-go-project-standard/SKILL.md +25 -0
  406. package/skills/cc-go-project-standard/examples/engineering/README.md +7 -0
  407. package/skills/cc-go-project-standard/examples/engineering/go.mod +3 -0
  408. package/skills/cc-go-project-standard/examples/engineering/lifecycle.go +71 -0
  409. package/skills/cc-go-project-standard/examples/engineering/lifecycle_test.go +22 -0
  410. package/skills/cc-go-project-standard/references/common/engineering-practices.md +237 -0
  411. package/skills/cc-go-project-standard/references/common/engineering-practices.rules.json +121 -0
  412. package/skills/cc-go-project-standard/references/common/engineering-practices.sources.json +377 -0
  413. package/skills/cc-go-project-standard/references/engineering-practices.md +106 -0
  414. package/skills/cc-go-project-standard/references/practice.md +37 -0
  415. package/skills/cc-java-project-standard/SKILL.md +25 -0
  416. package/skills/cc-java-project-standard/examples/engineering/README.md +7 -0
  417. package/skills/cc-java-project-standard/examples/engineering/ResourceBoundary.java +26 -0
  418. package/skills/cc-java-project-standard/examples/engineering/ResourceBoundaryTest.java +41 -0
  419. package/skills/cc-java-project-standard/references/common/engineering-practices.md +237 -0
  420. package/skills/cc-java-project-standard/references/common/engineering-practices.rules.json +121 -0
  421. package/skills/cc-java-project-standard/references/common/engineering-practices.sources.json +377 -0
  422. package/skills/cc-java-project-standard/references/engineering-practices.md +106 -0
  423. package/skills/cc-java-project-standard/references/practice.md +35 -0
  424. package/skills/cc-java-runtime/SKILL.md +25 -0
  425. package/skills/cc-java-runtime/references/common/engineering-practices.md +237 -0
  426. package/skills/cc-java-runtime/references/common/engineering-practices.rules.json +121 -0
  427. package/skills/cc-java-runtime/references/common/engineering-practices.sources.json +377 -0
  428. package/skills/cc-java-runtime/references/engineering-practices.md +73 -0
  429. package/skills/cc-java-runtime/references/practice.md +37 -0
  430. package/skills/cc-native-memory-safety/SKILL.md +25 -0
  431. package/skills/cc-native-memory-safety/references/common/engineering-practices.md +237 -0
  432. package/skills/cc-native-memory-safety/references/common/engineering-practices.rules.json +121 -0
  433. package/skills/cc-native-memory-safety/references/common/engineering-practices.sources.json +377 -0
  434. package/skills/cc-native-memory-safety/references/engineering-practices.md +73 -0
  435. package/skills/cc-native-memory-safety/references/practice.md +37 -0
  436. package/skills/cc-python-async/SKILL.md +25 -0
  437. package/skills/cc-python-async/references/common/engineering-practices.md +237 -0
  438. package/skills/cc-python-async/references/common/engineering-practices.rules.json +121 -0
  439. package/skills/cc-python-async/references/common/engineering-practices.sources.json +377 -0
  440. package/skills/cc-python-async/references/engineering-practices.md +73 -0
  441. package/skills/cc-python-async/references/practice.md +37 -0
  442. package/skills/cc-python-project-standard/SKILL.md +25 -0
  443. package/skills/cc-python-project-standard/examples/engineering/README.md +7 -0
  444. package/skills/cc-python-project-standard/examples/engineering/resource_boundary.py +37 -0
  445. package/skills/cc-python-project-standard/examples/engineering/test_resource_boundary.py +49 -0
  446. package/skills/cc-python-project-standard/references/common/engineering-practices.md +237 -0
  447. package/skills/cc-python-project-standard/references/common/engineering-practices.rules.json +121 -0
  448. package/skills/cc-python-project-standard/references/common/engineering-practices.sources.json +377 -0
  449. package/skills/cc-python-project-standard/references/engineering-practices.md +106 -0
  450. package/skills/cc-python-project-standard/references/practice.md +37 -0
  451. package/skills/cc-refactoring-core/SKILL.md +8 -0
  452. package/skills/cc-refactoring-core/references/method.md +16 -0
  453. package/skills/cc-rust-async/SKILL.md +25 -0
  454. package/skills/cc-rust-async/references/common/engineering-practices.md +237 -0
  455. package/skills/cc-rust-async/references/common/engineering-practices.rules.json +121 -0
  456. package/skills/cc-rust-async/references/common/engineering-practices.sources.json +377 -0
  457. package/skills/cc-rust-async/references/engineering-practices.md +73 -0
  458. package/skills/cc-rust-async/references/practice.md +37 -0
  459. package/skills/cc-rust-project-standard/SKILL.md +25 -0
  460. package/skills/cc-rust-project-standard/examples/engineering/Cargo.lock +7 -0
  461. package/skills/cc-rust-project-standard/examples/engineering/Cargo.toml +8 -0
  462. package/skills/cc-rust-project-standard/examples/engineering/README.md +5 -0
  463. package/skills/cc-rust-project-standard/examples/engineering/src/lib.rs +43 -0
  464. package/skills/cc-rust-project-standard/references/common/engineering-practices.md +237 -0
  465. package/skills/cc-rust-project-standard/references/common/engineering-practices.rules.json +121 -0
  466. package/skills/cc-rust-project-standard/references/common/engineering-practices.sources.json +377 -0
  467. package/skills/cc-rust-project-standard/references/engineering-practices.md +106 -0
  468. package/skills/cc-rust-project-standard/references/practice.md +37 -0
  469. package/skills/cc-source-driven-development/SKILL.md +8 -0
  470. package/skills/cc-source-driven-development/references/method.md +19 -0
  471. package/skills/cc-tauri-project-standard/SKILL.md +21 -0
  472. package/skills/cc-tauri-project-standard/examples/minimal/README.md +9 -0
  473. package/skills/cc-tauri-project-standard/examples/minimal/core/Cargo.lock +5 -0
  474. package/skills/cc-tauri-project-standard/examples/minimal/core/Cargo.toml +9 -0
  475. package/skills/cc-tauri-project-standard/examples/minimal/core/src/lib.rs +46 -0
  476. package/skills/cc-tauri-project-standard/examples/minimal/src-tauri/Cargo.toml +12 -0
  477. package/skills/cc-tauri-project-standard/examples/minimal/src-tauri/build.rs +5 -0
  478. package/skills/cc-tauri-project-standard/examples/minimal/src-tauri/capabilities/main.json +6 -0
  479. package/skills/cc-tauri-project-standard/examples/minimal/src-tauri/permissions/documents.toml +4 -0
  480. package/skills/cc-tauri-project-standard/examples/minimal/src-tauri/src/main.rs +22 -0
  481. package/skills/cc-tauri-project-standard/examples/minimal/src-tauri/tauri.conf.json +13 -0
  482. package/skills/cc-tauri-project-standard/examples/minimal/ui/app.js +5 -0
  483. package/skills/cc-tauri-project-standard/examples/minimal/ui/index.html +1 -0
  484. package/skills/cc-tauri-project-standard/references/common/engineering-practices.md +237 -0
  485. package/skills/cc-tauri-project-standard/references/common/engineering-practices.rules.json +121 -0
  486. package/skills/cc-tauri-project-standard/references/common/engineering-practices.sources.json +377 -0
  487. package/skills/cc-tauri-project-standard/references/engineering-practices.md +73 -0
  488. package/skills/cc-tauri-project-standard/references/practice.md +20 -0
  489. package/skills/cc-tauri-project-standard/references/verification.md +18 -0
  490. package/skills/cc-tdd-methodology/SKILL.md +8 -0
  491. package/skills/cc-tdd-methodology/references/method.md +13 -0
  492. package/skills/cc-technical-diagrams/SKILL.md +34 -0
  493. package/skills/{fec-image-generation → cc-technical-diagrams}/assets/interactive-diagram.html +371 -371
  494. package/skills/cc-technical-diagrams/assets/quality-examples/README.md +14 -0
  495. package/skills/cc-technical-diagrams/assets/quality-examples/architecture.json +121 -0
  496. package/skills/cc-technical-diagrams/assets/quality-examples/invalid-explicit.json +41 -0
  497. package/skills/cc-technical-diagrams/assets/quality-examples/sequence.json +53 -0
  498. package/skills/cc-technical-diagrams/assets/quality-examples/sequence.mmd +21 -0
  499. package/skills/cc-technical-diagrams/assets/quality-examples/workflow.json +98 -0
  500. package/skills/cc-technical-diagrams/assets/quality-examples/workflow.mmd +7 -0
  501. package/skills/{fec-image-generation → cc-technical-diagrams}/references/diagram-workflows.md +12 -5
  502. package/skills/{fec-image-generation → cc-technical-diagrams}/references/html-technical-diagrams.md +14 -7
  503. package/skills/cc-technical-diagrams/references/png-qa-autofix.md +37 -0
  504. package/skills/cc-technical-diagrams/scripts/diagram-browser.mjs +153 -0
  505. package/skills/cc-technical-diagrams/scripts/diagram-layout.mjs +176 -0
  506. package/{localized/zh-CN/skills/fec-image-generation → skills/cc-technical-diagrams}/scripts/export-diagram.mjs +48 -80
  507. package/skills/cc-technical-diagrams/scripts/mermaid-render.mjs +64 -0
  508. package/skills/cc-technical-diagrams/scripts/png-qa.mjs +462 -0
  509. package/skills/{fec-image-generation → cc-technical-diagrams}/scripts/tech-diagram-render.mjs +193 -53
  510. package/skills/{fec-typescript-project-standard → cc-typescript-project-standard}/SKILL.md +10 -4
  511. package/skills/cc-typescript-project-standard/examples/engineering/README.md +9 -0
  512. package/skills/cc-typescript-project-standard/examples/engineering/boundary.test.ts +16 -0
  513. package/skills/cc-typescript-project-standard/examples/engineering/input.ts +12 -0
  514. package/skills/cc-typescript-project-standard/examples/engineering/package.json +12 -0
  515. package/skills/cc-typescript-project-standard/examples/engineering/pnpm-lock.yaml +39 -0
  516. package/skills/cc-typescript-project-standard/examples/engineering/pnpm-workspace.yaml +1 -0
  517. package/skills/cc-typescript-project-standard/examples/engineering/tsconfig.json +8 -0
  518. package/skills/cc-typescript-project-standard/references/common/engineering-practices.md +237 -0
  519. package/skills/cc-typescript-project-standard/references/common/engineering-practices.rules.json +121 -0
  520. package/skills/cc-typescript-project-standard/references/common/engineering-practices.sources.json +377 -0
  521. package/skills/cc-typescript-project-standard/references/engineering-practices.md +106 -0
  522. package/skills/{fec-typescript-project-standard → cc-typescript-project-standard}/references/type-safety-patterns.md +6 -35
  523. package/skills/{fec-typescript-project-standard → cc-typescript-project-standard}/references/type-safety.md +7 -1
  524. package/skills/eval_queries.json +738 -72
  525. package/skills/fec-api-integration/SKILL.md +5 -1
  526. package/skills/fec-api-integration/references/common/engineering-practices.md +237 -0
  527. package/skills/fec-api-integration/references/common/engineering-practices.rules.json +121 -0
  528. package/skills/fec-api-integration/references/common/engineering-practices.sources.json +377 -0
  529. package/skills/fec-api-integration/references/engineering-practices.md +73 -0
  530. package/skills/fec-code-review/SKILL.md +24 -1
  531. package/skills/fec-code-review/references/common/engineering-practices.md +237 -0
  532. package/skills/fec-code-review/references/common/engineering-practices.rules.json +121 -0
  533. package/skills/fec-code-review/references/common/engineering-practices.sources.json +377 -0
  534. package/skills/fec-code-review/references/engineering-practices.md +73 -0
  535. package/skills/fec-code-review/references/report-template.md +11 -1
  536. package/skills/fec-code-smells/SKILL.md +33 -0
  537. package/skills/fec-code-smells/references/detection-guide.md +25 -0
  538. package/skills/fec-code-smells/references/smell-catalog.md +861 -0
  539. package/skills/fec-code-smells/references/smell-to-refactoring-map.md +265 -0
  540. package/skills/fec-data-fetching/SKILL.md +5 -1
  541. package/skills/fec-data-fetching/references/common/engineering-practices.md +237 -0
  542. package/skills/fec-data-fetching/references/common/engineering-practices.rules.json +121 -0
  543. package/skills/fec-data-fetching/references/common/engineering-practices.sources.json +377 -0
  544. package/skills/fec-data-fetching/references/engineering-practices.md +73 -0
  545. package/skills/fec-debug-framework/SKILL.md +2 -51
  546. package/skills/fec-debug-framework/references/common/debug.md +13 -0
  547. package/skills/fec-dependency-upgrade/SKILL.md +4 -0
  548. package/skills/fec-dependency-upgrade/references/common/engineering-practices.md +237 -0
  549. package/skills/fec-dependency-upgrade/references/common/engineering-practices.rules.json +121 -0
  550. package/skills/fec-dependency-upgrade/references/common/engineering-practices.sources.json +377 -0
  551. package/skills/fec-dependency-upgrade/references/engineering-practices.md +73 -0
  552. package/skills/fec-doc-sync/SKILL.md +7 -28
  553. package/skills/fec-doc-sync/references/common/doc-sync.md +12 -0
  554. package/skills/fec-image-generation/SKILL.md +7 -72
  555. package/skills/fec-image-generation/references/png-qa-autofix.md +9 -2
  556. package/skills/fec-image-generation/scripts/diagram-layout.mjs +176 -0
  557. package/skills/fec-image-generation/scripts/png-qa.mjs +36 -5
  558. package/skills/fec-legacy-web-standard/SKILL.md +1 -1
  559. package/skills/fec-react-project-standard/SKILL.md +6 -0
  560. package/skills/fec-react-project-standard/examples/engineering/README.md +7 -0
  561. package/skills/fec-react-project-standard/examples/engineering/package.json +15 -0
  562. package/skills/fec-react-project-standard/examples/engineering/pnpm-lock.yaml +662 -0
  563. package/skills/fec-react-project-standard/examples/engineering/pnpm-workspace.yaml +1 -0
  564. package/skills/fec-react-project-standard/examples/engineering/request-view.mjs +24 -0
  565. package/skills/fec-react-project-standard/examples/engineering/request-view.test.mjs +33 -0
  566. package/skills/fec-react-project-standard/references/common/engineering-practices.md +237 -0
  567. package/skills/fec-react-project-standard/references/common/engineering-practices.rules.json +121 -0
  568. package/skills/fec-react-project-standard/references/common/engineering-practices.sources.json +377 -0
  569. package/skills/fec-react-project-standard/references/engineering-practices.md +73 -0
  570. package/skills/fec-react-project-standard/references/generic-component-types.md +37 -0
  571. package/skills/fec-react-project-standard/references/react-quality-patterns.md +3 -3
  572. package/skills/fec-react-project-standard/references/react-runtime-patterns.md +1 -1
  573. package/skills/fec-refactor-clean/SKILL.md +3 -0
  574. package/skills/fec-refactoring/SKILL.md +25 -0
  575. package/skills/fec-refactoring/references/common/refactoring.md +16 -0
  576. package/skills/fec-refactoring/references/principles.md +13 -0
  577. package/skills/fec-refactoring/references/refactoring-vs-feature-change.md +27 -0
  578. package/skills/fec-refactoring/references/when-to-refactor.md +31 -0
  579. package/skills/fec-refactoring/references/workflow.md +7 -0
  580. package/skills/fec-refactoring-api/SKILL.md +25 -0
  581. package/skills/fec-refactoring-api/references/api-refactorings.md +496 -0
  582. package/skills/fec-refactoring-catalog/SKILL.md +28 -0
  583. package/skills/fec-refactoring-catalog/references/catalog-index.md +99 -0
  584. package/skills/fec-refactoring-catalog/references/composition-guide.md +49 -0
  585. package/skills/fec-refactoring-catalog/references/selection-guide.md +47 -0
  586. package/skills/fec-refactoring-control/SKILL.md +25 -0
  587. package/skills/fec-refactoring-control/references/conditional-refactorings.md +299 -0
  588. package/skills/fec-refactoring-data/SKILL.md +25 -0
  589. package/skills/fec-refactoring-data/references/data-refactorings.md +248 -0
  590. package/skills/fec-refactoring-encapsulation/SKILL.md +25 -0
  591. package/skills/fec-refactoring-encapsulation/references/encapsulation-refactorings.md +452 -0
  592. package/skills/fec-refactoring-functions/SKILL.md +25 -0
  593. package/skills/fec-refactoring-functions/references/function-refactorings.md +567 -0
  594. package/skills/fec-refactoring-inheritance/SKILL.md +25 -0
  595. package/skills/fec-refactoring-inheritance/references/inheritance-refactorings.md +550 -0
  596. package/skills/fec-refactoring-move-features/SKILL.md +25 -0
  597. package/skills/fec-refactoring-move-features/references/moving-refactorings.md +453 -0
  598. package/skills/fec-refactoring-validation/SKILL.md +59 -0
  599. package/skills/fec-refactoring-validation/references/behavior-preservation.md +53 -0
  600. package/skills/fec-refactoring-validation/references/refactoring-test-checklist.md +42 -0
  601. package/skills/fec-security-review/SKILL.md +20 -0
  602. package/skills/fec-security-review/references/common/engineering-practices.md +237 -0
  603. package/skills/fec-security-review/references/common/engineering-practices.rules.json +121 -0
  604. package/skills/fec-security-review/references/common/engineering-practices.sources.json +377 -0
  605. package/skills/fec-security-review/references/engineering-practices.md +73 -0
  606. package/skills/fec-security-review/references/report-template.md +10 -0
  607. package/skills/fec-tdd-workflow/SKILL.md +14 -42
  608. package/skills/fec-tdd-workflow/references/common/tdd.md +13 -0
  609. package/skills/fec-testing-strategy/SKILL.md +4 -0
  610. package/skills/fec-testing-strategy/references/common/engineering-practices.md +237 -0
  611. package/skills/fec-testing-strategy/references/common/engineering-practices.rules.json +121 -0
  612. package/skills/fec-testing-strategy/references/common/engineering-practices.sources.json +377 -0
  613. package/skills/fec-testing-strategy/references/engineering-practices.md +73 -0
  614. package/skills/fec-vue3-project-standard/SKILL.md +4 -0
  615. package/skills/fec-vue3-project-standard/references/common/engineering-practices.md +237 -0
  616. package/skills/fec-vue3-project-standard/references/common/engineering-practices.rules.json +121 -0
  617. package/skills/fec-vue3-project-standard/references/common/engineering-practices.sources.json +377 -0
  618. package/skills/fec-vue3-project-standard/references/engineering-practices.md +73 -0
  619. package/skills/fec-vue3-project-standard/references/vue3-project-structure.md +2 -2
  620. package/skills/metadata.json +2230 -629
  621. package/skills/relations.json +467 -74
  622. package/templates/shared/rules/fec-agent-workflow.md +1 -0
  623. package/templates/shared/rules/fec-source-driven-development.md +3 -29
  624. package/templates/shared/rules/fec-typescript.md +4 -4
  625. package/templates/shared/rules/references/common/source-driven-development.md +19 -0
  626. package/docs/superpowers/plans/2026-05-29-fec-debug.md +0 -491
  627. package/docs/superpowers/specs/2026-05-29-fec-debug-design.md +0 -340
  628. package/localized/zh-CN/skills/fec-source-driven-development/SKILL.md +0 -87
  629. package/skills/fec-source-driven-development/SKILL.md +0 -87
  630. /package/localized/zh-CN/skills/{fec-drawio-studio → cc-drawio-studio}/data/THIRD_PARTY_NOTICES.md +0 -0
  631. /package/localized/zh-CN/skills/{fec-drawio-studio → cc-drawio-studio}/data/brand-icons.json +0 -0
  632. /package/localized/zh-CN/skills/{fec-drawio-studio → cc-drawio-studio}/data/shape-index.json +0 -0
  633. /package/localized/zh-CN/skills/{fec-drawio-studio → cc-drawio-studio}/references/data-residency.md +0 -0
  634. /package/localized/zh-CN/skills/{fec-drawio-studio → cc-drawio-studio}/references/diagram-patterns.md +0 -0
  635. /package/localized/zh-CN/skills/{fec-drawio-studio → cc-drawio-studio}/references/troubleshooting.md +0 -0
  636. /package/localized/zh-CN/skills/{fec-drawio-studio → cc-drawio-studio}/references/xml-and-mermaid.md +0 -0
  637. /package/localized/zh-CN/skills/{fec-drawio-studio → cc-drawio-studio}/scripts/brand-symbols.mjs +0 -0
  638. /package/localized/zh-CN/skills/{fec-drawio-studio → cc-drawio-studio}/scripts/diagram-lint.mjs +0 -0
  639. /package/localized/zh-CN/skills/{fec-drawio-studio → cc-drawio-studio}/scripts/diagram-url.mjs +0 -0
  640. /package/localized/zh-CN/skills/{fec-drawio-studio → cc-drawio-studio}/scripts/drawio-export.mjs +0 -0
  641. /package/localized/zh-CN/skills/{fec-drawio-studio → cc-drawio-studio}/scripts/layout-graph.mjs +0 -0
  642. /package/localized/zh-CN/skills/{fec-drawio-studio → cc-drawio-studio}/scripts/png-embed-fix.mjs +0 -0
  643. /package/localized/zh-CN/skills/{fec-drawio-studio → cc-drawio-studio}/scripts/scan-go-packages.mjs +0 -0
  644. /package/localized/zh-CN/skills/{fec-drawio-studio → cc-drawio-studio}/scripts/scan-js-modules.mjs +0 -0
  645. /package/localized/zh-CN/skills/{fec-drawio-studio → cc-drawio-studio}/scripts/scan-python-classes.mjs +0 -0
  646. /package/localized/zh-CN/skills/{fec-drawio-studio → cc-drawio-studio}/scripts/scan-python-modules.mjs +0 -0
  647. /package/localized/zh-CN/skills/{fec-drawio-studio → cc-drawio-studio}/scripts/scan-rust-modules.mjs +0 -0
  648. /package/localized/zh-CN/skills/{fec-drawio-studio → cc-drawio-studio}/scripts/scan-ts-modules.mjs +0 -0
  649. /package/localized/zh-CN/skills/{fec-drawio-studio → cc-drawio-studio}/scripts/shape-query.mjs +0 -0
  650. /package/localized/zh-CN/skills/{fec-drawio-studio → cc-drawio-studio}/scripts/studio-core.mjs +0 -0
  651. /package/localized/zh-CN/skills/{fec-drawio-studio → cc-drawio-studio}/styles/built-in/corporate.json +0 -0
  652. /package/localized/zh-CN/skills/{fec-drawio-studio → cc-drawio-studio}/styles/built-in/default.json +0 -0
  653. /package/localized/zh-CN/skills/{fec-drawio-studio → cc-drawio-studio}/styles/built-in/handdrawn.json +0 -0
  654. /package/localized/zh-CN/skills/{fec-drawio-studio → cc-drawio-studio}/styles/schema.json +0 -0
  655. /package/localized/zh-CN/skills/{fec-image-generation → cc-technical-diagrams}/scripts/interactive-diagram-server.mjs +0 -0
  656. /package/skills/{fec-drawio-studio → cc-drawio-studio}/data/THIRD_PARTY_NOTICES.md +0 -0
  657. /package/skills/{fec-drawio-studio → cc-drawio-studio}/data/brand-icons.json +0 -0
  658. /package/skills/{fec-drawio-studio → cc-drawio-studio}/data/shape-index.json +0 -0
  659. /package/skills/{fec-drawio-studio → cc-drawio-studio}/references/data-residency.md +0 -0
  660. /package/skills/{fec-drawio-studio → cc-drawio-studio}/references/diagram-patterns.md +0 -0
  661. /package/skills/{fec-drawio-studio → cc-drawio-studio}/references/troubleshooting.md +0 -0
  662. /package/skills/{fec-drawio-studio → cc-drawio-studio}/references/xml-and-mermaid.md +0 -0
  663. /package/skills/{fec-drawio-studio → cc-drawio-studio}/scripts/brand-symbols.mjs +0 -0
  664. /package/skills/{fec-drawio-studio → cc-drawio-studio}/scripts/diagram-lint.mjs +0 -0
  665. /package/skills/{fec-drawio-studio → cc-drawio-studio}/scripts/diagram-url.mjs +0 -0
  666. /package/skills/{fec-drawio-studio → cc-drawio-studio}/scripts/drawio-export.mjs +0 -0
  667. /package/skills/{fec-drawio-studio → cc-drawio-studio}/scripts/layout-graph.mjs +0 -0
  668. /package/skills/{fec-drawio-studio → cc-drawio-studio}/scripts/png-embed-fix.mjs +0 -0
  669. /package/skills/{fec-drawio-studio → cc-drawio-studio}/scripts/scan-go-packages.mjs +0 -0
  670. /package/skills/{fec-drawio-studio → cc-drawio-studio}/scripts/scan-js-modules.mjs +0 -0
  671. /package/skills/{fec-drawio-studio → cc-drawio-studio}/scripts/scan-python-classes.mjs +0 -0
  672. /package/skills/{fec-drawio-studio → cc-drawio-studio}/scripts/scan-python-modules.mjs +0 -0
  673. /package/skills/{fec-drawio-studio → cc-drawio-studio}/scripts/scan-rust-modules.mjs +0 -0
  674. /package/skills/{fec-drawio-studio → cc-drawio-studio}/scripts/scan-ts-modules.mjs +0 -0
  675. /package/skills/{fec-drawio-studio → cc-drawio-studio}/scripts/shape-query.mjs +0 -0
  676. /package/skills/{fec-drawio-studio → cc-drawio-studio}/scripts/studio-core.mjs +0 -0
  677. /package/skills/{fec-drawio-studio → cc-drawio-studio}/styles/built-in/corporate.json +0 -0
  678. /package/skills/{fec-drawio-studio → cc-drawio-studio}/styles/built-in/default.json +0 -0
  679. /package/skills/{fec-drawio-studio → cc-drawio-studio}/styles/built-in/handdrawn.json +0 -0
  680. /package/skills/{fec-drawio-studio → cc-drawio-studio}/styles/schema.json +0 -0
  681. /package/skills/{fec-image-generation → cc-technical-diagrams}/scripts/interactive-diagram-server.mjs +0 -0
@@ -0,0 +1,265 @@
1
+ # Smell-to-Refactoring Map
2
+
3
+ Candidate techniques are advisory. Select by observed cause, preconditions, risk, and the smallest safe transformation; never reduce diagnosis to keyword lookup.
4
+
5
+ ## SMELL-MYSTERIOUS-NAME — Mysterious Name
6
+
7
+ **Primary/Supporting Candidates**
8
+ - `RF-CHANGE-FUNCTION-DECLARATION`
9
+ - `RF-RENAME-VARIABLE`
10
+ - `RF-RENAME-FIELD`
11
+
12
+ **Selection Note**
13
+ - Confirm the diagnosed cause of Mysterious Name and choose only a technique whose preconditions fit the current ownership and behavior contract.
14
+
15
+ ## SMELL-DUPLICATED-CODE — Duplicated Code
16
+
17
+ **Primary/Supporting Candidates**
18
+ - `RF-EXTRACT-FUNCTION`
19
+ - `RF-SLIDE-STATEMENTS`
20
+ - `RF-PULL-UP-METHOD`
21
+
22
+ **Selection Note**
23
+ - Confirm the diagnosed cause of Duplicated Code and choose only a technique whose preconditions fit the current ownership and behavior contract.
24
+
25
+ ## SMELL-LONG-FUNCTION — Long Function
26
+
27
+ **Primary/Supporting Candidates**
28
+ - `RF-EXTRACT-FUNCTION`
29
+ - `RF-REPLACE-TEMP-WITH-QUERY`
30
+ - `RF-INTRODUCE-PARAMETER-OBJECT`
31
+ - `RF-PRESERVE-WHOLE-OBJECT`
32
+ - `RF-REPLACE-FUNCTION-WITH-COMMAND`
33
+ - `RF-DECOMPOSE-CONDITIONAL`
34
+ - `RF-REPLACE-CONDITIONAL-WITH-POLYMORPHISM`
35
+ - `RF-SPLIT-LOOP`
36
+
37
+ **Selection Note**
38
+ - Confirm the diagnosed cause of Long Function and choose only a technique whose preconditions fit the current ownership and behavior contract.
39
+
40
+ ## SMELL-LONG-PARAMETER-LIST — Long Parameter List
41
+
42
+ **Primary/Supporting Candidates**
43
+ - `RF-REPLACE-PARAMETER-WITH-QUERY`
44
+ - `RF-PRESERVE-WHOLE-OBJECT`
45
+ - `RF-INTRODUCE-PARAMETER-OBJECT`
46
+ - `RF-REMOVE-FLAG-ARGUMENT`
47
+ - `RF-COMBINE-FUNCTIONS-INTO-CLASS`
48
+
49
+ **Selection Note**
50
+ - Confirm the diagnosed cause of Long Parameter List and choose only a technique whose preconditions fit the current ownership and behavior contract.
51
+
52
+ ## SMELL-GLOBAL-DATA — Global Data
53
+
54
+ **Primary/Supporting Candidates**
55
+ - `RF-ENCAPSULATE-VARIABLE`
56
+
57
+ **Selection Note**
58
+ - Confirm the diagnosed cause of Global Data and choose only a technique whose preconditions fit the current ownership and behavior contract.
59
+
60
+ ## SMELL-MUTABLE-DATA — Mutable Data
61
+
62
+ **Primary/Supporting Candidates**
63
+ - `RF-ENCAPSULATE-VARIABLE`
64
+ - `RF-SPLIT-VARIABLE`
65
+ - `RF-SLIDE-STATEMENTS`
66
+ - `RF-EXTRACT-FUNCTION`
67
+ - `RF-SEPARATE-QUERY-FROM-MODIFIER`
68
+ - `RF-REMOVE-SETTING-METHOD`
69
+ - `RF-REPLACE-DERIVED-VARIABLE-WITH-QUERY`
70
+ - `RF-COMBINE-FUNCTIONS-INTO-CLASS`
71
+ - `RF-COMBINE-FUNCTIONS-INTO-TRANSFORM`
72
+ - `RF-CHANGE-REFERENCE-TO-VALUE`
73
+
74
+ **Selection Note**
75
+ - Confirm the diagnosed cause of Mutable Data and choose only a technique whose preconditions fit the current ownership and behavior contract.
76
+
77
+ ## SMELL-DIVERGENT-CHANGE — Divergent Change
78
+
79
+ **Primary/Supporting Candidates**
80
+ - `RF-SPLIT-PHASE`
81
+ - `RF-MOVE-FUNCTION`
82
+ - `RF-EXTRACT-FUNCTION`
83
+ - `RF-EXTRACT-CLASS`
84
+
85
+ **Selection Note**
86
+ - Confirm the diagnosed cause of Divergent Change and choose only a technique whose preconditions fit the current ownership and behavior contract.
87
+
88
+ ## SMELL-SHOTGUN-SURGERY — Shotgun Surgery
89
+
90
+ **Primary/Supporting Candidates**
91
+ - `RF-MOVE-FUNCTION`
92
+ - `RF-MOVE-FIELD`
93
+ - `RF-COMBINE-FUNCTIONS-INTO-CLASS`
94
+ - `RF-COMBINE-FUNCTIONS-INTO-TRANSFORM`
95
+ - `RF-SPLIT-PHASE`
96
+ - `RF-INLINE-FUNCTION`
97
+ - `RF-INLINE-CLASS`
98
+
99
+ **Selection Note**
100
+ - Confirm the diagnosed cause of Shotgun Surgery and choose only a technique whose preconditions fit the current ownership and behavior contract.
101
+
102
+ ## SMELL-FEATURE-ENVY — Feature Envy
103
+
104
+ **Primary/Supporting Candidates**
105
+ - `RF-MOVE-FUNCTION`
106
+ - `RF-EXTRACT-FUNCTION`
107
+
108
+ **Selection Note**
109
+ - Confirm the diagnosed cause of Feature Envy and choose only a technique whose preconditions fit the current ownership and behavior contract.
110
+
111
+ ## SMELL-DATA-CLUMPS — Data Clumps
112
+
113
+ **Primary/Supporting Candidates**
114
+ - `RF-EXTRACT-CLASS`
115
+ - `RF-INTRODUCE-PARAMETER-OBJECT`
116
+ - `RF-PRESERVE-WHOLE-OBJECT`
117
+
118
+ **Selection Note**
119
+ - Confirm the diagnosed cause of Data Clumps and choose only a technique whose preconditions fit the current ownership and behavior contract.
120
+
121
+ ## SMELL-PRIMITIVE-OBSESSION — Primitive Obsession
122
+
123
+ **Primary/Supporting Candidates**
124
+ - `RF-REPLACE-PRIMITIVE-WITH-OBJECT`
125
+ - `RF-REPLACE-TYPE-CODE-WITH-SUBCLASSES`
126
+ - `RF-REPLACE-CONDITIONAL-WITH-POLYMORPHISM`
127
+ - `RF-EXTRACT-CLASS`
128
+ - `RF-INTRODUCE-PARAMETER-OBJECT`
129
+
130
+ **Selection Note**
131
+ - Confirm the diagnosed cause of Primitive Obsession and choose only a technique whose preconditions fit the current ownership and behavior contract.
132
+
133
+ ## SMELL-REPEATED-SWITCHES — Repeated Switches
134
+
135
+ **Primary/Supporting Candidates**
136
+ - `RF-REPLACE-CONDITIONAL-WITH-POLYMORPHISM`
137
+
138
+ **Selection Note**
139
+ - Confirm the diagnosed cause of Repeated Switches and choose only a technique whose preconditions fit the current ownership and behavior contract.
140
+
141
+ ## SMELL-LOOPS — Loops
142
+
143
+ **Primary/Supporting Candidates**
144
+ - `RF-REPLACE-LOOP-WITH-PIPELINE`
145
+
146
+ **Selection Note**
147
+ - Confirm the diagnosed cause of Loops and choose only a technique whose preconditions fit the current ownership and behavior contract.
148
+
149
+ ## SMELL-LAZY-ELEMENT — Lazy Element
150
+
151
+ **Primary/Supporting Candidates**
152
+ - `RF-INLINE-FUNCTION`
153
+ - `RF-INLINE-CLASS`
154
+ - `RF-COLLAPSE-HIERARCHY`
155
+
156
+ **Selection Note**
157
+ - Confirm the diagnosed cause of Lazy Element and choose only a technique whose preconditions fit the current ownership and behavior contract.
158
+
159
+ ## SMELL-SPECULATIVE-GENERALITY — Speculative Generality
160
+
161
+ **Primary/Supporting Candidates**
162
+ - `RF-COLLAPSE-HIERARCHY`
163
+ - `RF-INLINE-FUNCTION`
164
+ - `RF-INLINE-CLASS`
165
+ - `RF-CHANGE-FUNCTION-DECLARATION`
166
+ - `RF-REMOVE-DEAD-CODE`
167
+
168
+ **Selection Note**
169
+ - Confirm the diagnosed cause of Speculative Generality and choose only a technique whose preconditions fit the current ownership and behavior contract.
170
+
171
+ ## SMELL-TEMPORARY-FIELD — Temporary Field
172
+
173
+ **Primary/Supporting Candidates**
174
+ - `RF-EXTRACT-CLASS`
175
+ - `RF-MOVE-FUNCTION`
176
+ - `RF-INTRODUCE-SPECIAL-CASE`
177
+
178
+ **Selection Note**
179
+ - Confirm the diagnosed cause of Temporary Field and choose only a technique whose preconditions fit the current ownership and behavior contract.
180
+
181
+ ## SMELL-MESSAGE-CHAINS — Message Chains
182
+
183
+ **Primary/Supporting Candidates**
184
+ - `RF-HIDE-DELEGATE`
185
+ - `RF-EXTRACT-FUNCTION`
186
+ - `RF-MOVE-FUNCTION`
187
+
188
+ **Selection Note**
189
+ - Confirm the diagnosed cause of Message Chains and choose only a technique whose preconditions fit the current ownership and behavior contract.
190
+
191
+ ## SMELL-MIDDLE-MAN — Middle Man
192
+
193
+ **Primary/Supporting Candidates**
194
+ - `RF-REMOVE-MIDDLE-MAN`
195
+ - `RF-INLINE-FUNCTION`
196
+ - `RF-REPLACE-SUPERCLASS-WITH-DELEGATE`
197
+ - `RF-REPLACE-SUBCLASS-WITH-DELEGATE`
198
+
199
+ **Selection Note**
200
+ - Confirm the diagnosed cause of Middle Man and choose only a technique whose preconditions fit the current ownership and behavior contract.
201
+
202
+ ## SMELL-INSIDER-TRADING — Insider Trading
203
+
204
+ **Primary/Supporting Candidates**
205
+ - `RF-MOVE-FUNCTION`
206
+ - `RF-MOVE-FIELD`
207
+ - `RF-HIDE-DELEGATE`
208
+ - `RF-REPLACE-SUBCLASS-WITH-DELEGATE`
209
+ - `RF-REPLACE-SUPERCLASS-WITH-DELEGATE`
210
+
211
+ **Selection Note**
212
+ - Confirm the diagnosed cause of Insider Trading and choose only a technique whose preconditions fit the current ownership and behavior contract.
213
+
214
+ ## SMELL-LARGE-CLASS — Large Class
215
+
216
+ **Primary/Supporting Candidates**
217
+ - `RF-EXTRACT-CLASS`
218
+ - `RF-EXTRACT-SUPERCLASS`
219
+ - `RF-REPLACE-TYPE-CODE-WITH-SUBCLASSES`
220
+
221
+ **Selection Note**
222
+ - Confirm the diagnosed cause of Large Class and choose only a technique whose preconditions fit the current ownership and behavior contract.
223
+
224
+ ## SMELL-ALTERNATIVE-CLASSES-DIFFERENT-INTERFACES — Alternative Classes with Different Interfaces
225
+
226
+ **Primary/Supporting Candidates**
227
+ - `RF-CHANGE-FUNCTION-DECLARATION`
228
+ - `RF-MOVE-FUNCTION`
229
+ - `RF-EXTRACT-SUPERCLASS`
230
+
231
+ **Selection Note**
232
+ - Confirm the diagnosed cause of Alternative Classes with Different Interfaces and choose only a technique whose preconditions fit the current ownership and behavior contract.
233
+
234
+ ## SMELL-DATA-CLASS — Data Class
235
+
236
+ **Primary/Supporting Candidates**
237
+ - `RF-ENCAPSULATE-RECORD`
238
+ - `RF-REMOVE-SETTING-METHOD`
239
+ - `RF-MOVE-FUNCTION`
240
+ - `RF-EXTRACT-FUNCTION`
241
+ - `RF-SPLIT-PHASE`
242
+
243
+ **Selection Note**
244
+ - Confirm the diagnosed cause of Data Class and choose only a technique whose preconditions fit the current ownership and behavior contract.
245
+
246
+ ## SMELL-REFUSED-BEQUEST — Refused Bequest
247
+
248
+ **Primary/Supporting Candidates**
249
+ - `RF-PUSH-DOWN-METHOD`
250
+ - `RF-PUSH-DOWN-FIELD`
251
+ - `RF-REPLACE-SUBCLASS-WITH-DELEGATE`
252
+ - `RF-REPLACE-SUPERCLASS-WITH-DELEGATE`
253
+
254
+ **Selection Note**
255
+ - Confirm the diagnosed cause of Refused Bequest and choose only a technique whose preconditions fit the current ownership and behavior contract.
256
+
257
+ ## SMELL-COMMENTS — Comments
258
+
259
+ **Primary/Supporting Candidates**
260
+ - `RF-EXTRACT-FUNCTION`
261
+ - `RF-CHANGE-FUNCTION-DECLARATION`
262
+ - `RF-INTRODUCE-ASSERTION`
263
+
264
+ **Selection Note**
265
+ - Confirm the diagnosed cause of Comments and choose only a technique whose preconditions fit the current ownership and behavior contract.
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: fec-data-fetching
3
- description: Use when implementing or reviewing frontend server-state flows: typed queries, request caching, invalidation, mutations, optimistic updates, infinite queries, prefetch, SSR hydration, or API-layer integration. Do not use for local UI state or Service Worker caching; Chinese triggers include data fetch, cache, optimistic updates.
3
+ description: "Use when implementing or reviewing frontend server-state flows: typed queries, request caching, invalidation, mutations, optimistic updates, infinite queries, prefetch, SSR hydration, or API-layer integration. Do not use for local UI state or Service Worker caching; Chinese triggers include data fetch, cache, optimistic updates."
4
4
  ---
5
5
 
6
6
  # Server State data acquisition
@@ -60,3 +60,7 @@ Load [references/query-patterns.md](references/query-patterns.md) when it comes
60
60
  ## Expected Output
61
61
 
62
62
  The data acquisition layer has loading/error/empty/data status, repeated requests are automatically deduplicated, the cache is correctly invalidated or rolled back after mutation, and the boundary between the API layer and the UI layer is clear.
63
+
64
+ ## Engineering practices
65
+
66
+ Read the [local engineering decisions](references/engineering-practices.md) for this task and follow their links to relevant shared principles. Apply levels and exceptions against actual project contracts; product frontend/backend labels do not constrain language or role.
@@ -0,0 +1,237 @@
1
+ # Engineering practices
2
+
3
+ Read project contracts first, then only the relevant core sections and local language/scenario cards. These are project-native decisions informed by the linked primary sources, not certification by those organizations. `required` protects stated correctness/safety contracts; `recommended` is a default with reasoned alternatives; `conditional` activates only when its stated predicate holds. Project safety/compatibility and actual toolchain facts take priority over corporate style.
4
+
5
+ <a id="ENG-CONTRACT"></a>
6
+ ## ENG-CONTRACT — Contracts before representation
7
+
8
+ Level: required
9
+
10
+ ### Risk
11
+ An accepted input can still violate the caller’s operation or output contract.
12
+
13
+ ### Applies
14
+ Applies at public APIs, files, IPC and serialized input. Internal trusted values can rely on a proven invariant; rechecking everything is not the goal.
15
+
16
+ ### Decision
17
+ Name the caller, accepted values, units, failure/output state and compatibility promise. Validate unknown data once at the boundary before effects; keep protocol mapping outside pure domain logic.
18
+
19
+ ### Exceptions
20
+ If a trusted upstream validator owns the invariant, record its scope instead of adding a second schema. Type assertions and generated types alone provide no runtime guarantee.
21
+
22
+ ### Examples
23
+ Better: reject a malformed amount before charging. Worse: cast JSON and let a partial effect reveal invalid input.
24
+
25
+ ### Verification
26
+ Check invalid, boundary and successful inputs, plus effects/output state; exercise a real packed consumer when shipping a package.
27
+
28
+ ### Sources
29
+ - [Publishing declaration files](https://www.typescriptlang.org/docs/handbook/declaration-files/publishing.html) (typescript-publishing)
30
+ - [Rust API Guidelines](https://rust-lang.github.io/api-guidelines/) (rust-api)
31
+
32
+ Case evidence IDs: EP-TS-01, EP-SVC-01. Identifiers are not cross-entry file dependencies; consult local examples and the coverage report for execution status.
33
+
34
+ <a id="ENG-ERROR"></a>
35
+ ## ENG-ERROR — Observable failure
36
+
37
+ Level: required
38
+
39
+ ### Risk
40
+ A fallback can erase the cause or report success after partial work.
41
+
42
+ ### Applies
43
+ Applies when a failure crosses an abstraction or process boundary. Expected absence may use an explicit optional result rather than an exception.
44
+
45
+ ### Decision
46
+ Preserve the cause and operation context, return a typed/declared failure, and let the owning boundary choose recovery. Cleanup failure must not silently replace the primary failure.
47
+
48
+ ### Exceptions
49
+ Translate sensitive internal details into a safe public error while preserving a correlation path in permitted diagnostics. Do not log credentials or raw private payloads.
50
+
51
+ ### Examples
52
+ Better: failure plus original cause and released owned resources. Worse: catch everything and return an empty successful object.
53
+
54
+ ### Verification
55
+ Inject a downstream failure; assert the caller observes failure, its cause and the agreed cleanup outcome.
56
+
57
+ ### Sources
58
+ - [Try-with-resources](https://docs.oracle.com/javase/tutorial/essential/exceptions/tryResourceClose.html) (oracle-resources)
59
+ - [Go Style Guide](https://github.com/uber-go/guide/blob/master/style.md) (uber-go)
60
+
61
+ Case evidence IDs: EP-RS-01, EP-JAVA-01. Identifiers are not cross-entry file dependencies; consult local examples and the coverage report for execution status.
62
+
63
+ <a id="ENG-RESOURCE"></a>
64
+ ## ENG-RESOURCE — Own the full lifecycle
65
+
66
+ Level: required
67
+
68
+ ### Risk
69
+ Partial acquisition, borrowed handles and teardown create leaks or double release.
70
+
71
+ ### Applies
72
+ Applies when code acquires files, allocations, tasks, subscriptions or external handles. Pure value transformations need no invented resource manager.
73
+
74
+ ### Decision
75
+ Identify acquire/use/transfer/release owners. Release acquired resources on every exit, in dependency order; borrowed values stay with their owner. Importing a library should not acquire unrelated external resources.
76
+
77
+ ### Exceptions
78
+ A documented transfer or process-lifetime resource needs an explicit recipient or lifetime contract. Finalizers and process exit alone do not prove orderly shutdown.
79
+
80
+ ### Examples
81
+ Better: fail the second allocation and release only the first owned allocation. Worse: free the caller’s borrowed buffer.
82
+
83
+ ### Verification
84
+ Count acquisitions/releases under each failure point and successful transfer. Record untested drivers, GUI shutdown and sanitizer coverage separately.
85
+
86
+ ### Sources
87
+ - [MEM00-C allocation and release](https://cmu-sei.github.io/secure-coding-standards/sei-cert-c-coding-standard/recommendations/memory-management-mem/mem00-c/) (cert-c)
88
+ - [C++ Core Guidelines](https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines) (cpp-core)
89
+
90
+ Case evidence IDs: EP-C-01, EP-CPP-01, EP-PY-01. Identifiers are not cross-entry file dependencies; consult local examples and the coverage report for execution status.
91
+
92
+ <a id="ENG-CONCURRENCY"></a>
93
+ ## ENG-CONCURRENCY — Cancellation and completion differ
94
+
95
+ Level: conditional
96
+
97
+ ### Risk
98
+ Detached work can outlive owners; an old result may overwrite current state.
99
+
100
+ ### Applies
101
+ Applies if the unit starts concurrent work or receives asynchronous results. Sequential pure code need not gain a scheduler.
102
+
103
+ ### Decision
104
+ Keep completion handles, cancellation ownership and bounded in-flight work. Stop accepting work, request cancellation/drain, then observe termination. Check request identity/liveness before publishing results.
105
+
106
+ ### Exceptions
107
+ Some blocking operations ignore cancellation; expose incomplete shutdown or a caller-owned forced-exit policy. Arc, channel capacity and an abort request are not completion evidence.
108
+
109
+ ### Examples
110
+ Better: controlled B-before-A responses keep B visible. Worse: a timed-out caller frees resources while workers still use them.
111
+
112
+ ### Verification
113
+ Use barriers/events and controlled futures for cancellation, saturation and late results; arbitrary sleeps are not ordering proof.
114
+
115
+ ### Sources
116
+ - [context package](https://pkg.go.dev/context) (go-context)
117
+ - [JoinHandle](https://docs.rs/tokio/latest/tokio/task/struct.JoinHandle.html) (tokio-join)
118
+ - [Coroutines and tasks](https://docs.python.org/3/library/asyncio-task.html) (python-asyncio)
119
+
120
+ Case evidence IDs: EP-GO-01, EP-IPC-01, EP-UI-01. Identifiers are not cross-entry file dependencies; consult local examples and the coverage report for execution status.
121
+
122
+ <a id="ENG-BOUNDARY"></a>
123
+ ## ENG-BOUNDARY — Trust is established at an actual boundary
124
+
125
+ Level: required
126
+
127
+ ### Risk
128
+ A frontend/backend label can hide privileged operations or untrusted callers.
129
+
130
+ ### Applies
131
+ Applies to external input, authorization and privilege changes across UI, IPC, library and service roles. A private pure helper is not a new authentication layer.
132
+
133
+ ### Decision
134
+ Verify sender/identity through the actual trusted mechanism, validate operation-specific data and scope permissions. A renderer-provided role or hidden button is not authority.
135
+
136
+ ### Exceptions
137
+ Offline/local-only tools still have a caller and data boundary. Do not add network authentication where the contract needs only a constrained local capability.
138
+
139
+ ### Examples
140
+ Better: expose one validated IPC operation with sender checks. Worse: expose arbitrary filesystem methods to a renderer.
141
+
142
+ ### Verification
143
+ Exercise denied and allowed calls and zero effects after rejection. Native permission activation/signing needs its own actual environment evidence.
144
+
145
+ ### Sources
146
+ - [Security](https://www.electronjs.org/docs/latest/tutorial/security) (electron-security)
147
+ - [Permissions](https://v2.tauri.app/security/permissions/) (tauri-permissions)
148
+
149
+ Case evidence IDs: EP-TS-01, EP-IPC-01. Identifiers are not cross-entry file dependencies; consult local examples and the coverage report for execution status.
150
+
151
+ <a id="ENG-DEPENDENCY"></a>
152
+ ## ENG-DEPENDENCY — Ship a usable consumer contract
153
+
154
+ Level: recommended
155
+
156
+ ### Risk
157
+ Working inside a repository can conceal undeclared dependencies or incompatible artifacts.
158
+
159
+ ### Applies
160
+ Applies when publishing, upgrading dependencies or changing exported APIs. A content-only note does not require changing every tool version.
161
+
162
+ ### Decision
163
+ Read manifests, locks, supported targets and exports first. Keep dependencies explicit, changes scoped and migration reversible; validate the artifact from an independent consumer.
164
+
165
+ ### Exceptions
166
+ Adopt a dependency or compiler change only for an evidenced need and compatible policy. A corporate guide’s preferred build system is not such evidence.
167
+
168
+ ### Examples
169
+ Better: declarations resolve with the packed files and declared dependencies. Worse: publish types that only resolve through adjacent source aliases.
170
+
171
+ ### Verification
172
+ Inspect real archive bytes, install away from sibling sources and run supported consumer checks; record the exact version/integrity and untested platforms.
173
+
174
+ ### Sources
175
+ - [Publishing declaration files](https://www.typescriptlang.org/docs/handbook/declaration-files/publishing.html) (typescript-publishing)
176
+ - [Code review standard](https://google.github.io/eng-practices/review/reviewer/standard.html) (google-review)
177
+
178
+ Case evidence IDs: EP-TS-01. Identifiers are not cross-entry file dependencies; consult local examples and the coverage report for execution status.
179
+
180
+ <a id="ENG-VERIFICATION"></a>
181
+ ## ENG-VERIFICATION — Evidence matches the claimed behavior
182
+
183
+ Level: required
184
+
185
+ ### Risk
186
+ A green structural check or missing tool can be mistaken for behavioral proof.
187
+
188
+ ### Applies
189
+ Applies to implementation, review and delivery claims. Read-only advice can state proposed checks without pretending execution.
190
+
191
+ ### Decision
192
+ Choose tests by risk and observable boundaries. Separate environment preparation from execution; keep fixed assertions for faulty/fixed variants and report actual commands, counts and limitations.
193
+
194
+ ### Exceptions
195
+ When tools are absent, report MISSING; when intentionally unexecuted, NOT RUN. Compile errors and zero/all-skipped suites do not prove business RED/GREEN.
196
+
197
+ ### Examples
198
+ Better: failure injection breaks a named effect assertion, then the fixed version passes it. Worse: only grep for a PASS string.
199
+
200
+ ### Verification
201
+ Retain raw output, input/tool hashes and scope. Structure, native behavior and model-task decisions are distinct evidence.
202
+
203
+ ### Sources
204
+ - [Test planning](https://microsoft.github.io/code-with-engineering-playbook/automated-testing/test-planning/) (ms-playbook)
205
+ - [Fault injection testing](https://microsoft.github.io/code-with-engineering-playbook/automated-testing/fault-injection-testing/) (ms-faults)
206
+ - [Code review standard](https://google.github.io/eng-practices/review/reviewer/standard.html) (google-review)
207
+
208
+ Case evidence IDs: EP-TS-01, EP-C-01, EP-SVC-01. Identifiers are not cross-entry file dependencies; consult local examples and the coverage report for execution status.
209
+
210
+ <a id="ENG-OPERABILITY"></a>
211
+ ## ENG-OPERABILITY — Make recovery explicit and bounded
212
+
213
+ Level: conditional
214
+
215
+ ### Risk
216
+ Partial failure, retry amplification and unsafe diagnostics can worsen an incident.
217
+
218
+ ### Applies
219
+ Applies where this unit owns an external operation, background lifecycle or recovery decision. Libraries should expose signals, not force service dashboards or HTTP layers.
220
+
221
+ ### Decision
222
+ Classify failure and commit uncertainty; make operation intent, total timeout/retry budget and recovery owner explicit. Use a stable idempotency contract for writes before replay. Emit safe correlation and actionable failure state.
223
+
224
+ ### Exceptions
225
+ Without server-side safety, leave a write pending confirmation and offer reconciliation. A timeout/cancel is not proof that no effect occurred; 429/5xx alone do not authorize replay.
226
+
227
+ ### Examples
228
+ Better: repeat the same key/intent and reuse the committed result. Worse: generate a new key after a payment timeout.
229
+
230
+ ### Verification
231
+ Inject failure after commit but before response, replay concurrently and reject a changed intent; separate process-local tests from database or distributed guarantees.
232
+
233
+ ### Sources
234
+ - [Timeouts, retries and backoff with jitter](https://aws.amazon.com/builders-library/timeouts-retries-and-backoff-with-jitter/) (aws-retry)
235
+ - [Making retries safe with idempotent APIs](https://aws.amazon.com/builders-library/making-retries-safe-with-idempotent-APIs/) (aws-idempotency)
236
+
237
+ Case evidence IDs: EP-SVC-01, EP-UI-01. Identifiers are not cross-entry file dependencies; consult local examples and the coverage report for execution status.
@@ -0,0 +1,121 @@
1
+ {
2
+ "schemaVersion": 1,
3
+ "rules": [
4
+ {
5
+ "id": "ENG-CONTRACT",
6
+ "kind": "core",
7
+ "level": "required",
8
+ "anchor": "ENG-CONTRACT",
9
+ "sourceIds": [
10
+ "typescript-publishing",
11
+ "rust-api"
12
+ ],
13
+ "caseIds": [
14
+ "EP-TS-01",
15
+ "EP-SVC-01"
16
+ ]
17
+ },
18
+ {
19
+ "id": "ENG-ERROR",
20
+ "kind": "core",
21
+ "level": "required",
22
+ "anchor": "ENG-ERROR",
23
+ "sourceIds": [
24
+ "oracle-resources",
25
+ "uber-go"
26
+ ],
27
+ "caseIds": [
28
+ "EP-RS-01",
29
+ "EP-JAVA-01"
30
+ ]
31
+ },
32
+ {
33
+ "id": "ENG-RESOURCE",
34
+ "kind": "core",
35
+ "level": "required",
36
+ "anchor": "ENG-RESOURCE",
37
+ "sourceIds": [
38
+ "cert-c",
39
+ "cpp-core"
40
+ ],
41
+ "caseIds": [
42
+ "EP-C-01",
43
+ "EP-CPP-01",
44
+ "EP-PY-01"
45
+ ]
46
+ },
47
+ {
48
+ "id": "ENG-CONCURRENCY",
49
+ "kind": "core",
50
+ "level": "conditional",
51
+ "anchor": "ENG-CONCURRENCY",
52
+ "sourceIds": [
53
+ "go-context",
54
+ "tokio-join",
55
+ "python-asyncio"
56
+ ],
57
+ "caseIds": [
58
+ "EP-GO-01",
59
+ "EP-IPC-01",
60
+ "EP-UI-01"
61
+ ]
62
+ },
63
+ {
64
+ "id": "ENG-BOUNDARY",
65
+ "kind": "core",
66
+ "level": "required",
67
+ "anchor": "ENG-BOUNDARY",
68
+ "sourceIds": [
69
+ "electron-security",
70
+ "tauri-permissions"
71
+ ],
72
+ "caseIds": [
73
+ "EP-TS-01",
74
+ "EP-IPC-01"
75
+ ]
76
+ },
77
+ {
78
+ "id": "ENG-DEPENDENCY",
79
+ "kind": "core",
80
+ "level": "recommended",
81
+ "anchor": "ENG-DEPENDENCY",
82
+ "sourceIds": [
83
+ "typescript-publishing",
84
+ "google-review"
85
+ ],
86
+ "caseIds": [
87
+ "EP-TS-01"
88
+ ]
89
+ },
90
+ {
91
+ "id": "ENG-VERIFICATION",
92
+ "kind": "core",
93
+ "level": "required",
94
+ "anchor": "ENG-VERIFICATION",
95
+ "sourceIds": [
96
+ "ms-playbook",
97
+ "ms-faults",
98
+ "google-review"
99
+ ],
100
+ "caseIds": [
101
+ "EP-TS-01",
102
+ "EP-C-01",
103
+ "EP-SVC-01"
104
+ ]
105
+ },
106
+ {
107
+ "id": "ENG-OPERABILITY",
108
+ "kind": "core",
109
+ "level": "conditional",
110
+ "anchor": "ENG-OPERABILITY",
111
+ "sourceIds": [
112
+ "aws-retry",
113
+ "aws-idempotency"
114
+ ],
115
+ "caseIds": [
116
+ "EP-SVC-01",
117
+ "EP-UI-01"
118
+ ]
119
+ }
120
+ ]
121
+ }