@bovinphang/frontend-craft 2.9.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 (579) hide show
  1. package/.claude-plugin/marketplace.json +3 -3
  2. package/.claude-plugin/plugin.json +1 -1
  3. package/CHANGELOG.md +403 -378
  4. package/CHANGELOG.zh-CN.md +402 -377
  5. package/CONTRIBUTING.md +381 -371
  6. package/CONTRIBUTING.zh-CN.md +383 -371
  7. package/README.md +605 -545
  8. package/README.openclaw.md +395 -359
  9. package/README.openclaw.zh-CN.md +395 -359
  10. package/README.zh-CN.md +605 -545
  11. package/agents/fec-typescript-reviewer.md +1 -1
  12. package/common-content.lock.json +3795 -0
  13. package/dist/bin/frontend-craft.js +353 -174
  14. package/docs/common-migration.md +61 -0
  15. package/docs/example-prompts.md +157 -157
  16. package/docs/ja-JP/README.md +588 -534
  17. package/docs/ko-KR/README.md +588 -534
  18. package/docs/project-structure.md +166 -151
  19. package/docs/review-and-diagram-workflows.md +5 -5
  20. package/docs/runtimes/antigravity.md +18 -18
  21. package/docs/runtimes/augment.md +18 -18
  22. package/docs/runtimes/claude.md +193 -191
  23. package/docs/runtimes/claude.zh-CN.md +191 -189
  24. package/docs/runtimes/cline.md +18 -18
  25. package/docs/runtimes/codebuddy.md +18 -18
  26. package/docs/runtimes/codex.md +18 -18
  27. package/docs/runtimes/compatibility.md +42 -27
  28. package/docs/runtimes/copilot.md +18 -18
  29. package/docs/runtimes/cursor.md +18 -18
  30. package/docs/runtimes/gemini.md +18 -18
  31. package/docs/runtimes/kilo.md +18 -18
  32. package/docs/runtimes/openclaw.md +18 -18
  33. package/docs/runtimes/opencode.md +18 -18
  34. package/docs/runtimes/qoder.md +18 -18
  35. package/docs/runtimes/trae.md +18 -18
  36. package/docs/runtimes/windsurf.md +18 -18
  37. package/docs/zh-CN/common-migration.md +57 -0
  38. package/docs/zh-CN/example-prompts.md +157 -157
  39. package/docs/zh-CN/project-structure.md +166 -148
  40. package/docs/zh-CN/review-and-diagram-workflows.md +5 -5
  41. package/docs/zh-TW/README.md +588 -534
  42. package/localized/zh-CN/agents/fec-typescript-reviewer.md +1 -1
  43. package/localized/zh-CN/skills/cc-c-project-standard/SKILL.md +25 -0
  44. package/localized/zh-CN/skills/cc-c-project-standard/examples/engineering/README.md +7 -0
  45. package/localized/zh-CN/skills/cc-c-project-standard/examples/engineering/boundary.c +26 -0
  46. package/localized/zh-CN/skills/cc-c-project-standard/examples/engineering/boundary.h +15 -0
  47. package/localized/zh-CN/skills/cc-c-project-standard/examples/engineering/boundary_test.c +73 -0
  48. package/localized/zh-CN/skills/cc-c-project-standard/references/common/engineering-practices.md +237 -0
  49. package/localized/zh-CN/skills/cc-c-project-standard/references/common/engineering-practices.rules.json +121 -0
  50. package/localized/zh-CN/skills/cc-c-project-standard/references/common/engineering-practices.sources.json +377 -0
  51. package/localized/zh-CN/skills/cc-c-project-standard/references/engineering-practices.md +106 -0
  52. package/localized/zh-CN/skills/cc-c-project-standard/references/practice.md +37 -0
  53. package/localized/zh-CN/skills/cc-cpp-project-standard/SKILL.md +25 -0
  54. package/localized/zh-CN/skills/cc-cpp-project-standard/examples/engineering/README.md +7 -0
  55. package/localized/zh-CN/skills/cc-cpp-project-standard/examples/engineering/boundary.cpp +26 -0
  56. package/localized/zh-CN/skills/cc-cpp-project-standard/examples/engineering/boundary.hpp +12 -0
  57. package/localized/zh-CN/skills/cc-cpp-project-standard/examples/engineering/boundary_test.cpp +38 -0
  58. package/localized/zh-CN/skills/cc-cpp-project-standard/references/common/engineering-practices.md +237 -0
  59. package/localized/zh-CN/skills/cc-cpp-project-standard/references/common/engineering-practices.rules.json +121 -0
  60. package/localized/zh-CN/skills/cc-cpp-project-standard/references/common/engineering-practices.sources.json +377 -0
  61. package/localized/zh-CN/skills/cc-cpp-project-standard/references/engineering-practices.md +106 -0
  62. package/localized/zh-CN/skills/cc-cpp-project-standard/references/practice.md +37 -0
  63. package/localized/zh-CN/skills/cc-debug-methodology/SKILL.md +8 -0
  64. package/localized/zh-CN/skills/cc-debug-methodology/references/method.md +13 -0
  65. package/localized/zh-CN/skills/cc-doc-sync-core/SKILL.md +8 -0
  66. package/localized/zh-CN/skills/cc-doc-sync-core/references/method.md +12 -0
  67. package/localized/zh-CN/skills/{fec-drawio-studio → cc-drawio-studio}/SKILL.md +5 -5
  68. package/localized/zh-CN/skills/{fec-drawio-studio → cc-drawio-studio}/references/flowchart-quality.md +1 -1
  69. package/localized/zh-CN/skills/{fec-drawio-studio → cc-drawio-studio}/references/layout-and-export.md +9 -9
  70. package/localized/zh-CN/skills/cc-electron-project-standard/SKILL.md +21 -0
  71. package/localized/zh-CN/skills/cc-electron-project-standard/examples/engineering/README.md +7 -0
  72. package/localized/zh-CN/skills/cc-electron-project-standard/examples/engineering/ipc-lifecycle.cjs +44 -0
  73. package/localized/zh-CN/skills/cc-electron-project-standard/examples/engineering/ipc-lifecycle.test.cjs +44 -0
  74. package/localized/zh-CN/skills/cc-electron-project-standard/examples/engineering/package.json +8 -0
  75. package/localized/zh-CN/skills/cc-electron-project-standard/examples/minimal/README.md +9 -0
  76. package/localized/zh-CN/skills/cc-electron-project-standard/examples/minimal/boundary.cjs +19 -0
  77. package/localized/zh-CN/skills/cc-electron-project-standard/examples/minimal/boundary.test.cjs +7 -0
  78. package/localized/zh-CN/skills/cc-electron-project-standard/examples/minimal/index.html +1 -0
  79. package/localized/zh-CN/skills/cc-electron-project-standard/examples/minimal/main.cjs +20 -0
  80. package/localized/zh-CN/skills/cc-electron-project-standard/examples/minimal/package.json +9 -0
  81. package/localized/zh-CN/skills/cc-electron-project-standard/examples/minimal/preload.cjs +2 -0
  82. package/localized/zh-CN/skills/cc-electron-project-standard/examples/minimal/renderer.js +4 -0
  83. package/localized/zh-CN/skills/cc-electron-project-standard/references/common/engineering-practices.md +237 -0
  84. package/localized/zh-CN/skills/cc-electron-project-standard/references/common/engineering-practices.rules.json +121 -0
  85. package/localized/zh-CN/skills/cc-electron-project-standard/references/common/engineering-practices.sources.json +377 -0
  86. package/localized/zh-CN/skills/cc-electron-project-standard/references/engineering-practices.md +73 -0
  87. package/localized/zh-CN/skills/cc-electron-project-standard/references/practice.md +19 -0
  88. package/localized/zh-CN/skills/cc-electron-project-standard/references/verification.md +17 -0
  89. package/localized/zh-CN/skills/cc-go-concurrency/SKILL.md +25 -0
  90. package/localized/zh-CN/skills/cc-go-concurrency/references/common/engineering-practices.md +237 -0
  91. package/localized/zh-CN/skills/cc-go-concurrency/references/common/engineering-practices.rules.json +121 -0
  92. package/localized/zh-CN/skills/cc-go-concurrency/references/common/engineering-practices.sources.json +377 -0
  93. package/localized/zh-CN/skills/cc-go-concurrency/references/engineering-practices.md +73 -0
  94. package/localized/zh-CN/skills/cc-go-concurrency/references/practice.md +37 -0
  95. package/localized/zh-CN/skills/cc-go-project-standard/SKILL.md +25 -0
  96. package/localized/zh-CN/skills/cc-go-project-standard/examples/engineering/README.md +7 -0
  97. package/localized/zh-CN/skills/cc-go-project-standard/examples/engineering/go.mod +3 -0
  98. package/localized/zh-CN/skills/cc-go-project-standard/examples/engineering/lifecycle.go +71 -0
  99. package/localized/zh-CN/skills/cc-go-project-standard/examples/engineering/lifecycle_test.go +22 -0
  100. package/localized/zh-CN/skills/cc-go-project-standard/references/common/engineering-practices.md +237 -0
  101. package/localized/zh-CN/skills/cc-go-project-standard/references/common/engineering-practices.rules.json +121 -0
  102. package/localized/zh-CN/skills/cc-go-project-standard/references/common/engineering-practices.sources.json +377 -0
  103. package/localized/zh-CN/skills/cc-go-project-standard/references/engineering-practices.md +106 -0
  104. package/localized/zh-CN/skills/cc-go-project-standard/references/practice.md +37 -0
  105. package/localized/zh-CN/skills/cc-java-project-standard/SKILL.md +25 -0
  106. package/localized/zh-CN/skills/cc-java-project-standard/examples/engineering/README.md +5 -0
  107. package/localized/zh-CN/skills/cc-java-project-standard/examples/engineering/ResourceBoundary.java +26 -0
  108. package/localized/zh-CN/skills/cc-java-project-standard/examples/engineering/ResourceBoundaryTest.java +41 -0
  109. package/localized/zh-CN/skills/cc-java-project-standard/references/common/engineering-practices.md +237 -0
  110. package/localized/zh-CN/skills/cc-java-project-standard/references/common/engineering-practices.rules.json +121 -0
  111. package/localized/zh-CN/skills/cc-java-project-standard/references/common/engineering-practices.sources.json +377 -0
  112. package/localized/zh-CN/skills/cc-java-project-standard/references/engineering-practices.md +106 -0
  113. package/localized/zh-CN/skills/cc-java-project-standard/references/practice.md +37 -0
  114. package/localized/zh-CN/skills/cc-java-runtime/SKILL.md +25 -0
  115. package/localized/zh-CN/skills/cc-java-runtime/references/common/engineering-practices.md +237 -0
  116. package/localized/zh-CN/skills/cc-java-runtime/references/common/engineering-practices.rules.json +121 -0
  117. package/localized/zh-CN/skills/cc-java-runtime/references/common/engineering-practices.sources.json +377 -0
  118. package/localized/zh-CN/skills/cc-java-runtime/references/engineering-practices.md +73 -0
  119. package/localized/zh-CN/skills/cc-java-runtime/references/practice.md +37 -0
  120. package/localized/zh-CN/skills/cc-native-memory-safety/SKILL.md +25 -0
  121. package/localized/zh-CN/skills/cc-native-memory-safety/references/common/engineering-practices.md +237 -0
  122. package/localized/zh-CN/skills/cc-native-memory-safety/references/common/engineering-practices.rules.json +121 -0
  123. package/localized/zh-CN/skills/cc-native-memory-safety/references/common/engineering-practices.sources.json +377 -0
  124. package/localized/zh-CN/skills/cc-native-memory-safety/references/engineering-practices.md +73 -0
  125. package/localized/zh-CN/skills/cc-native-memory-safety/references/practice.md +37 -0
  126. package/localized/zh-CN/skills/cc-python-async/SKILL.md +25 -0
  127. package/localized/zh-CN/skills/cc-python-async/references/common/engineering-practices.md +237 -0
  128. package/localized/zh-CN/skills/cc-python-async/references/common/engineering-practices.rules.json +121 -0
  129. package/localized/zh-CN/skills/cc-python-async/references/common/engineering-practices.sources.json +377 -0
  130. package/localized/zh-CN/skills/cc-python-async/references/engineering-practices.md +73 -0
  131. package/localized/zh-CN/skills/cc-python-async/references/practice.md +37 -0
  132. package/localized/zh-CN/skills/cc-python-project-standard/SKILL.md +25 -0
  133. package/localized/zh-CN/skills/cc-python-project-standard/examples/engineering/README.md +7 -0
  134. package/localized/zh-CN/skills/cc-python-project-standard/examples/engineering/resource_boundary.py +37 -0
  135. package/localized/zh-CN/skills/cc-python-project-standard/examples/engineering/test_resource_boundary.py +49 -0
  136. package/localized/zh-CN/skills/cc-python-project-standard/references/common/engineering-practices.md +237 -0
  137. package/localized/zh-CN/skills/cc-python-project-standard/references/common/engineering-practices.rules.json +121 -0
  138. package/localized/zh-CN/skills/cc-python-project-standard/references/common/engineering-practices.sources.json +377 -0
  139. package/localized/zh-CN/skills/cc-python-project-standard/references/engineering-practices.md +106 -0
  140. package/localized/zh-CN/skills/cc-python-project-standard/references/practice.md +37 -0
  141. package/localized/zh-CN/skills/cc-refactoring-core/SKILL.md +8 -0
  142. package/localized/zh-CN/skills/cc-refactoring-core/references/method.md +16 -0
  143. package/localized/zh-CN/skills/cc-rust-async/SKILL.md +25 -0
  144. package/localized/zh-CN/skills/cc-rust-async/references/common/engineering-practices.md +237 -0
  145. package/localized/zh-CN/skills/cc-rust-async/references/common/engineering-practices.rules.json +121 -0
  146. package/localized/zh-CN/skills/cc-rust-async/references/common/engineering-practices.sources.json +377 -0
  147. package/localized/zh-CN/skills/cc-rust-async/references/engineering-practices.md +73 -0
  148. package/localized/zh-CN/skills/cc-rust-async/references/practice.md +37 -0
  149. package/localized/zh-CN/skills/cc-rust-project-standard/SKILL.md +25 -0
  150. package/localized/zh-CN/skills/cc-rust-project-standard/examples/engineering/Cargo.lock +7 -0
  151. package/localized/zh-CN/skills/cc-rust-project-standard/examples/engineering/Cargo.toml +8 -0
  152. package/localized/zh-CN/skills/cc-rust-project-standard/examples/engineering/README.md +5 -0
  153. package/localized/zh-CN/skills/cc-rust-project-standard/examples/engineering/src/lib.rs +43 -0
  154. package/localized/zh-CN/skills/cc-rust-project-standard/references/common/engineering-practices.md +237 -0
  155. package/localized/zh-CN/skills/cc-rust-project-standard/references/common/engineering-practices.rules.json +121 -0
  156. package/localized/zh-CN/skills/cc-rust-project-standard/references/common/engineering-practices.sources.json +377 -0
  157. package/localized/zh-CN/skills/cc-rust-project-standard/references/engineering-practices.md +106 -0
  158. package/localized/zh-CN/skills/cc-rust-project-standard/references/practice.md +37 -0
  159. package/localized/zh-CN/skills/cc-source-driven-development/SKILL.md +8 -0
  160. package/localized/zh-CN/skills/cc-source-driven-development/references/method.md +19 -0
  161. package/localized/zh-CN/skills/cc-tauri-project-standard/SKILL.md +21 -0
  162. package/localized/zh-CN/skills/cc-tauri-project-standard/examples/minimal/README.md +9 -0
  163. package/localized/zh-CN/skills/cc-tauri-project-standard/examples/minimal/core/Cargo.lock +5 -0
  164. package/localized/zh-CN/skills/cc-tauri-project-standard/examples/minimal/core/Cargo.toml +9 -0
  165. package/localized/zh-CN/skills/cc-tauri-project-standard/examples/minimal/core/src/lib.rs +46 -0
  166. package/localized/zh-CN/skills/cc-tauri-project-standard/examples/minimal/src-tauri/Cargo.toml +12 -0
  167. package/localized/zh-CN/skills/cc-tauri-project-standard/examples/minimal/src-tauri/build.rs +5 -0
  168. package/localized/zh-CN/skills/cc-tauri-project-standard/examples/minimal/src-tauri/capabilities/main.json +6 -0
  169. package/localized/zh-CN/skills/cc-tauri-project-standard/examples/minimal/src-tauri/permissions/documents.toml +4 -0
  170. package/localized/zh-CN/skills/cc-tauri-project-standard/examples/minimal/src-tauri/src/main.rs +22 -0
  171. package/localized/zh-CN/skills/cc-tauri-project-standard/examples/minimal/src-tauri/tauri.conf.json +13 -0
  172. package/localized/zh-CN/skills/cc-tauri-project-standard/examples/minimal/ui/app.js +5 -0
  173. package/localized/zh-CN/skills/cc-tauri-project-standard/examples/minimal/ui/index.html +1 -0
  174. package/localized/zh-CN/skills/cc-tauri-project-standard/references/common/engineering-practices.md +237 -0
  175. package/localized/zh-CN/skills/cc-tauri-project-standard/references/common/engineering-practices.rules.json +121 -0
  176. package/localized/zh-CN/skills/cc-tauri-project-standard/references/common/engineering-practices.sources.json +377 -0
  177. package/localized/zh-CN/skills/cc-tauri-project-standard/references/engineering-practices.md +73 -0
  178. package/localized/zh-CN/skills/cc-tauri-project-standard/references/practice.md +20 -0
  179. package/localized/zh-CN/skills/cc-tauri-project-standard/references/verification.md +18 -0
  180. package/localized/zh-CN/skills/cc-tdd-methodology/SKILL.md +8 -0
  181. package/localized/zh-CN/skills/cc-tdd-methodology/references/method.md +13 -0
  182. package/localized/zh-CN/skills/cc-technical-diagrams/SKILL.md +34 -0
  183. package/localized/zh-CN/skills/{fec-image-generation → cc-technical-diagrams}/assets/interactive-diagram.html +371 -371
  184. package/localized/zh-CN/skills/cc-technical-diagrams/assets/quality-examples/README.md +14 -0
  185. package/localized/zh-CN/skills/{fec-image-generation → cc-technical-diagrams}/assets/quality-examples/sequence.mmd +21 -21
  186. package/localized/zh-CN/skills/{fec-image-generation → cc-technical-diagrams}/assets/quality-examples/workflow.mmd +7 -7
  187. package/localized/zh-CN/skills/{fec-image-generation → cc-technical-diagrams}/references/diagram-workflows.md +3 -3
  188. package/localized/zh-CN/skills/{fec-image-generation → cc-technical-diagrams}/references/html-technical-diagrams.md +7 -7
  189. package/localized/zh-CN/skills/cc-technical-diagrams/references/png-qa-autofix.md +37 -0
  190. package/{skills/fec-image-generation → localized/zh-CN/skills/cc-technical-diagrams}/scripts/diagram-browser.mjs +77 -14
  191. package/localized/zh-CN/skills/cc-technical-diagrams/scripts/diagram-layout.mjs +176 -0
  192. package/localized/zh-CN/skills/cc-technical-diagrams/scripts/png-qa.mjs +462 -0
  193. package/localized/zh-CN/skills/{fec-typescript-project-standard → cc-typescript-project-standard}/SKILL.md +10 -4
  194. package/localized/zh-CN/skills/cc-typescript-project-standard/examples/engineering/README.md +7 -0
  195. package/localized/zh-CN/skills/cc-typescript-project-standard/examples/engineering/boundary.test.ts +16 -0
  196. package/localized/zh-CN/skills/cc-typescript-project-standard/examples/engineering/input.ts +12 -0
  197. package/localized/zh-CN/skills/cc-typescript-project-standard/examples/engineering/package.json +12 -0
  198. package/localized/zh-CN/skills/cc-typescript-project-standard/examples/engineering/pnpm-lock.yaml +39 -0
  199. package/localized/zh-CN/skills/cc-typescript-project-standard/examples/engineering/pnpm-workspace.yaml +1 -0
  200. package/localized/zh-CN/skills/cc-typescript-project-standard/examples/engineering/tsconfig.json +8 -0
  201. package/localized/zh-CN/skills/cc-typescript-project-standard/references/common/engineering-practices.md +237 -0
  202. package/localized/zh-CN/skills/cc-typescript-project-standard/references/common/engineering-practices.rules.json +121 -0
  203. package/localized/zh-CN/skills/cc-typescript-project-standard/references/common/engineering-practices.sources.json +377 -0
  204. package/localized/zh-CN/skills/cc-typescript-project-standard/references/engineering-practices.md +106 -0
  205. package/localized/zh-CN/skills/{fec-typescript-project-standard → cc-typescript-project-standard}/references/type-safety-patterns.md +5 -34
  206. package/localized/zh-CN/skills/{fec-typescript-project-standard → cc-typescript-project-standard}/references/type-safety.md +6 -0
  207. package/localized/zh-CN/skills/eval_queries.json +741 -319
  208. package/localized/zh-CN/skills/fec-api-integration/SKILL.md +5 -1
  209. package/localized/zh-CN/skills/fec-api-integration/references/common/engineering-practices.md +237 -0
  210. package/localized/zh-CN/skills/fec-api-integration/references/common/engineering-practices.rules.json +121 -0
  211. package/localized/zh-CN/skills/fec-api-integration/references/common/engineering-practices.sources.json +377 -0
  212. package/localized/zh-CN/skills/fec-api-integration/references/engineering-practices.md +73 -0
  213. package/localized/zh-CN/skills/fec-code-review/SKILL.md +4 -0
  214. package/localized/zh-CN/skills/fec-code-review/references/common/engineering-practices.md +237 -0
  215. package/localized/zh-CN/skills/fec-code-review/references/common/engineering-practices.rules.json +121 -0
  216. package/localized/zh-CN/skills/fec-code-review/references/common/engineering-practices.sources.json +377 -0
  217. package/localized/zh-CN/skills/fec-code-review/references/engineering-practices.md +73 -0
  218. package/localized/zh-CN/skills/fec-data-fetching/SKILL.md +4 -0
  219. package/localized/zh-CN/skills/fec-data-fetching/references/common/engineering-practices.md +237 -0
  220. package/localized/zh-CN/skills/fec-data-fetching/references/common/engineering-practices.rules.json +121 -0
  221. package/localized/zh-CN/skills/fec-data-fetching/references/common/engineering-practices.sources.json +377 -0
  222. package/localized/zh-CN/skills/fec-data-fetching/references/engineering-practices.md +73 -0
  223. package/localized/zh-CN/skills/fec-debug-framework/SKILL.md +1 -50
  224. package/localized/zh-CN/skills/fec-debug-framework/references/common/debug.md +13 -0
  225. package/localized/zh-CN/skills/fec-dependency-upgrade/SKILL.md +4 -0
  226. package/localized/zh-CN/skills/fec-dependency-upgrade/references/common/engineering-practices.md +237 -0
  227. package/localized/zh-CN/skills/fec-dependency-upgrade/references/common/engineering-practices.rules.json +121 -0
  228. package/localized/zh-CN/skills/fec-dependency-upgrade/references/common/engineering-practices.sources.json +377 -0
  229. package/localized/zh-CN/skills/fec-dependency-upgrade/references/engineering-practices.md +73 -0
  230. package/localized/zh-CN/skills/fec-doc-sync/SKILL.md +7 -28
  231. package/localized/zh-CN/skills/fec-doc-sync/references/common/doc-sync.md +12 -0
  232. package/localized/zh-CN/skills/fec-image-generation/SKILL.md +7 -101
  233. package/localized/zh-CN/skills/fec-image-generation/references/png-qa-autofix.md +1 -1
  234. package/localized/zh-CN/skills/fec-image-generation/scripts/png-qa.mjs +1 -1
  235. package/localized/zh-CN/skills/fec-react-project-standard/SKILL.md +6 -0
  236. package/localized/zh-CN/skills/fec-react-project-standard/examples/engineering/README.md +7 -0
  237. package/localized/zh-CN/skills/fec-react-project-standard/examples/engineering/package.json +15 -0
  238. package/localized/zh-CN/skills/fec-react-project-standard/examples/engineering/pnpm-lock.yaml +662 -0
  239. package/localized/zh-CN/skills/fec-react-project-standard/examples/engineering/pnpm-workspace.yaml +1 -0
  240. package/localized/zh-CN/skills/fec-react-project-standard/examples/engineering/request-view.mjs +24 -0
  241. package/localized/zh-CN/skills/fec-react-project-standard/examples/engineering/request-view.test.mjs +33 -0
  242. package/localized/zh-CN/skills/fec-react-project-standard/references/common/engineering-practices.md +237 -0
  243. package/localized/zh-CN/skills/fec-react-project-standard/references/common/engineering-practices.rules.json +121 -0
  244. package/localized/zh-CN/skills/fec-react-project-standard/references/common/engineering-practices.sources.json +377 -0
  245. package/localized/zh-CN/skills/fec-react-project-standard/references/engineering-practices.md +73 -0
  246. package/localized/zh-CN/skills/fec-react-project-standard/references/generic-component-types.md +37 -0
  247. package/localized/zh-CN/skills/fec-react-project-standard/references/react-quality-patterns.md +3 -3
  248. package/localized/zh-CN/skills/fec-react-project-standard/references/react-runtime-patterns.md +1 -1
  249. package/localized/zh-CN/skills/fec-refactoring/SKILL.md +12 -70
  250. package/localized/zh-CN/skills/fec-refactoring/references/common/refactoring.md +16 -0
  251. package/localized/zh-CN/skills/fec-refactoring/references/principles.md +9 -39
  252. package/localized/zh-CN/skills/fec-refactoring/references/workflow.md +4 -56
  253. package/localized/zh-CN/skills/fec-security-review/SKILL.md +4 -0
  254. package/localized/zh-CN/skills/fec-security-review/references/common/engineering-practices.md +237 -0
  255. package/localized/zh-CN/skills/fec-security-review/references/common/engineering-practices.rules.json +121 -0
  256. package/localized/zh-CN/skills/fec-security-review/references/common/engineering-practices.sources.json +377 -0
  257. package/localized/zh-CN/skills/fec-security-review/references/engineering-practices.md +73 -0
  258. package/localized/zh-CN/skills/fec-tdd-workflow/SKILL.md +12 -43
  259. package/localized/zh-CN/skills/fec-tdd-workflow/references/common/tdd.md +13 -0
  260. package/localized/zh-CN/skills/fec-testing-strategy/SKILL.md +4 -0
  261. package/localized/zh-CN/skills/fec-testing-strategy/references/common/engineering-practices.md +237 -0
  262. package/localized/zh-CN/skills/fec-testing-strategy/references/common/engineering-practices.rules.json +121 -0
  263. package/localized/zh-CN/skills/fec-testing-strategy/references/common/engineering-practices.sources.json +377 -0
  264. package/localized/zh-CN/skills/fec-testing-strategy/references/engineering-practices.md +73 -0
  265. package/localized/zh-CN/skills/fec-vue3-project-standard/SKILL.md +4 -0
  266. package/localized/zh-CN/skills/fec-vue3-project-standard/references/common/engineering-practices.md +237 -0
  267. package/localized/zh-CN/skills/fec-vue3-project-standard/references/common/engineering-practices.rules.json +121 -0
  268. package/localized/zh-CN/skills/fec-vue3-project-standard/references/common/engineering-practices.sources.json +377 -0
  269. package/localized/zh-CN/skills/fec-vue3-project-standard/references/engineering-practices.md +73 -0
  270. package/localized/zh-CN/skills/fec-vue3-project-standard/references/vue3-project-structure.md +2 -2
  271. package/localized/zh-CN/skills/metadata.json +2246 -1008
  272. package/localized/zh-CN/skills/relations.json +501 -372
  273. package/localized/zh-CN/templates/shared/rules/fec-source-driven-development.md +3 -29
  274. package/localized/zh-CN/templates/shared/rules/fec-typescript.md +4 -4
  275. package/localized/zh-CN/templates/shared/rules/references/common/source-driven-development.md +19 -0
  276. package/openclaw.plugin.json +1 -1
  277. package/package.json +11 -4
  278. package/skills/cc-c-project-standard/SKILL.md +25 -0
  279. package/skills/cc-c-project-standard/examples/engineering/README.md +7 -0
  280. package/skills/cc-c-project-standard/examples/engineering/boundary.c +26 -0
  281. package/skills/cc-c-project-standard/examples/engineering/boundary.h +15 -0
  282. package/skills/cc-c-project-standard/examples/engineering/boundary_test.c +73 -0
  283. package/skills/cc-c-project-standard/references/common/engineering-practices.md +237 -0
  284. package/skills/cc-c-project-standard/references/common/engineering-practices.rules.json +121 -0
  285. package/skills/cc-c-project-standard/references/common/engineering-practices.sources.json +377 -0
  286. package/skills/cc-c-project-standard/references/engineering-practices.md +106 -0
  287. package/skills/cc-c-project-standard/references/practice.md +37 -0
  288. package/skills/cc-cpp-project-standard/SKILL.md +25 -0
  289. package/skills/cc-cpp-project-standard/examples/engineering/README.md +7 -0
  290. package/skills/cc-cpp-project-standard/examples/engineering/boundary.cpp +26 -0
  291. package/skills/cc-cpp-project-standard/examples/engineering/boundary.hpp +12 -0
  292. package/skills/cc-cpp-project-standard/examples/engineering/boundary_test.cpp +38 -0
  293. package/skills/cc-cpp-project-standard/references/common/engineering-practices.md +237 -0
  294. package/skills/cc-cpp-project-standard/references/common/engineering-practices.rules.json +121 -0
  295. package/skills/cc-cpp-project-standard/references/common/engineering-practices.sources.json +377 -0
  296. package/skills/cc-cpp-project-standard/references/engineering-practices.md +106 -0
  297. package/skills/cc-cpp-project-standard/references/practice.md +37 -0
  298. package/skills/cc-debug-methodology/SKILL.md +8 -0
  299. package/skills/cc-debug-methodology/references/method.md +13 -0
  300. package/skills/cc-doc-sync-core/SKILL.md +8 -0
  301. package/skills/cc-doc-sync-core/references/method.md +12 -0
  302. package/skills/{fec-drawio-studio → cc-drawio-studio}/SKILL.md +5 -5
  303. package/skills/{fec-drawio-studio → cc-drawio-studio}/references/flowchart-quality.md +1 -1
  304. package/skills/{fec-drawio-studio → cc-drawio-studio}/references/layout-and-export.md +9 -9
  305. package/skills/cc-electron-project-standard/SKILL.md +21 -0
  306. package/skills/cc-electron-project-standard/examples/engineering/README.md +7 -0
  307. package/skills/cc-electron-project-standard/examples/engineering/ipc-lifecycle.cjs +44 -0
  308. package/skills/cc-electron-project-standard/examples/engineering/ipc-lifecycle.test.cjs +44 -0
  309. package/skills/cc-electron-project-standard/examples/engineering/package.json +8 -0
  310. package/skills/cc-electron-project-standard/examples/minimal/README.md +9 -0
  311. package/skills/cc-electron-project-standard/examples/minimal/boundary.cjs +19 -0
  312. package/skills/cc-electron-project-standard/examples/minimal/boundary.test.cjs +7 -0
  313. package/skills/cc-electron-project-standard/examples/minimal/index.html +1 -0
  314. package/skills/cc-electron-project-standard/examples/minimal/main.cjs +20 -0
  315. package/skills/cc-electron-project-standard/examples/minimal/package.json +9 -0
  316. package/skills/cc-electron-project-standard/examples/minimal/preload.cjs +2 -0
  317. package/skills/cc-electron-project-standard/examples/minimal/renderer.js +4 -0
  318. package/skills/cc-electron-project-standard/references/common/engineering-practices.md +237 -0
  319. package/skills/cc-electron-project-standard/references/common/engineering-practices.rules.json +121 -0
  320. package/skills/cc-electron-project-standard/references/common/engineering-practices.sources.json +377 -0
  321. package/skills/cc-electron-project-standard/references/engineering-practices.md +73 -0
  322. package/skills/cc-electron-project-standard/references/practice.md +19 -0
  323. package/skills/cc-electron-project-standard/references/verification.md +17 -0
  324. package/skills/cc-go-concurrency/SKILL.md +25 -0
  325. package/skills/cc-go-concurrency/references/common/engineering-practices.md +237 -0
  326. package/skills/cc-go-concurrency/references/common/engineering-practices.rules.json +121 -0
  327. package/skills/cc-go-concurrency/references/common/engineering-practices.sources.json +377 -0
  328. package/skills/cc-go-concurrency/references/engineering-practices.md +73 -0
  329. package/skills/cc-go-concurrency/references/practice.md +37 -0
  330. package/skills/cc-go-project-standard/SKILL.md +25 -0
  331. package/skills/cc-go-project-standard/examples/engineering/README.md +7 -0
  332. package/skills/cc-go-project-standard/examples/engineering/go.mod +3 -0
  333. package/skills/cc-go-project-standard/examples/engineering/lifecycle.go +71 -0
  334. package/skills/cc-go-project-standard/examples/engineering/lifecycle_test.go +22 -0
  335. package/skills/cc-go-project-standard/references/common/engineering-practices.md +237 -0
  336. package/skills/cc-go-project-standard/references/common/engineering-practices.rules.json +121 -0
  337. package/skills/cc-go-project-standard/references/common/engineering-practices.sources.json +377 -0
  338. package/skills/cc-go-project-standard/references/engineering-practices.md +106 -0
  339. package/skills/cc-go-project-standard/references/practice.md +37 -0
  340. package/skills/cc-java-project-standard/SKILL.md +25 -0
  341. package/skills/cc-java-project-standard/examples/engineering/README.md +7 -0
  342. package/skills/cc-java-project-standard/examples/engineering/ResourceBoundary.java +26 -0
  343. package/skills/cc-java-project-standard/examples/engineering/ResourceBoundaryTest.java +41 -0
  344. package/skills/cc-java-project-standard/references/common/engineering-practices.md +237 -0
  345. package/skills/cc-java-project-standard/references/common/engineering-practices.rules.json +121 -0
  346. package/skills/cc-java-project-standard/references/common/engineering-practices.sources.json +377 -0
  347. package/skills/cc-java-project-standard/references/engineering-practices.md +106 -0
  348. package/skills/cc-java-project-standard/references/practice.md +35 -0
  349. package/skills/cc-java-runtime/SKILL.md +25 -0
  350. package/skills/cc-java-runtime/references/common/engineering-practices.md +237 -0
  351. package/skills/cc-java-runtime/references/common/engineering-practices.rules.json +121 -0
  352. package/skills/cc-java-runtime/references/common/engineering-practices.sources.json +377 -0
  353. package/skills/cc-java-runtime/references/engineering-practices.md +73 -0
  354. package/skills/cc-java-runtime/references/practice.md +37 -0
  355. package/skills/cc-native-memory-safety/SKILL.md +25 -0
  356. package/skills/cc-native-memory-safety/references/common/engineering-practices.md +237 -0
  357. package/skills/cc-native-memory-safety/references/common/engineering-practices.rules.json +121 -0
  358. package/skills/cc-native-memory-safety/references/common/engineering-practices.sources.json +377 -0
  359. package/skills/cc-native-memory-safety/references/engineering-practices.md +73 -0
  360. package/skills/cc-native-memory-safety/references/practice.md +37 -0
  361. package/skills/cc-python-async/SKILL.md +25 -0
  362. package/skills/cc-python-async/references/common/engineering-practices.md +237 -0
  363. package/skills/cc-python-async/references/common/engineering-practices.rules.json +121 -0
  364. package/skills/cc-python-async/references/common/engineering-practices.sources.json +377 -0
  365. package/skills/cc-python-async/references/engineering-practices.md +73 -0
  366. package/skills/cc-python-async/references/practice.md +37 -0
  367. package/skills/cc-python-project-standard/SKILL.md +25 -0
  368. package/skills/cc-python-project-standard/examples/engineering/README.md +7 -0
  369. package/skills/cc-python-project-standard/examples/engineering/resource_boundary.py +37 -0
  370. package/skills/cc-python-project-standard/examples/engineering/test_resource_boundary.py +49 -0
  371. package/skills/cc-python-project-standard/references/common/engineering-practices.md +237 -0
  372. package/skills/cc-python-project-standard/references/common/engineering-practices.rules.json +121 -0
  373. package/skills/cc-python-project-standard/references/common/engineering-practices.sources.json +377 -0
  374. package/skills/cc-python-project-standard/references/engineering-practices.md +106 -0
  375. package/skills/cc-python-project-standard/references/practice.md +37 -0
  376. package/skills/cc-refactoring-core/SKILL.md +8 -0
  377. package/skills/cc-refactoring-core/references/method.md +16 -0
  378. package/skills/cc-rust-async/SKILL.md +25 -0
  379. package/skills/cc-rust-async/references/common/engineering-practices.md +237 -0
  380. package/skills/cc-rust-async/references/common/engineering-practices.rules.json +121 -0
  381. package/skills/cc-rust-async/references/common/engineering-practices.sources.json +377 -0
  382. package/skills/cc-rust-async/references/engineering-practices.md +73 -0
  383. package/skills/cc-rust-async/references/practice.md +37 -0
  384. package/skills/cc-rust-project-standard/SKILL.md +25 -0
  385. package/skills/cc-rust-project-standard/examples/engineering/Cargo.lock +7 -0
  386. package/skills/cc-rust-project-standard/examples/engineering/Cargo.toml +8 -0
  387. package/skills/cc-rust-project-standard/examples/engineering/README.md +5 -0
  388. package/skills/cc-rust-project-standard/examples/engineering/src/lib.rs +43 -0
  389. package/skills/cc-rust-project-standard/references/common/engineering-practices.md +237 -0
  390. package/skills/cc-rust-project-standard/references/common/engineering-practices.rules.json +121 -0
  391. package/skills/cc-rust-project-standard/references/common/engineering-practices.sources.json +377 -0
  392. package/skills/cc-rust-project-standard/references/engineering-practices.md +106 -0
  393. package/skills/cc-rust-project-standard/references/practice.md +37 -0
  394. package/skills/cc-source-driven-development/SKILL.md +8 -0
  395. package/skills/cc-source-driven-development/references/method.md +19 -0
  396. package/skills/cc-tauri-project-standard/SKILL.md +21 -0
  397. package/skills/cc-tauri-project-standard/examples/minimal/README.md +9 -0
  398. package/skills/cc-tauri-project-standard/examples/minimal/core/Cargo.lock +5 -0
  399. package/skills/cc-tauri-project-standard/examples/minimal/core/Cargo.toml +9 -0
  400. package/skills/cc-tauri-project-standard/examples/minimal/core/src/lib.rs +46 -0
  401. package/skills/cc-tauri-project-standard/examples/minimal/src-tauri/Cargo.toml +12 -0
  402. package/skills/cc-tauri-project-standard/examples/minimal/src-tauri/build.rs +5 -0
  403. package/skills/cc-tauri-project-standard/examples/minimal/src-tauri/capabilities/main.json +6 -0
  404. package/skills/cc-tauri-project-standard/examples/minimal/src-tauri/permissions/documents.toml +4 -0
  405. package/skills/cc-tauri-project-standard/examples/minimal/src-tauri/src/main.rs +22 -0
  406. package/skills/cc-tauri-project-standard/examples/minimal/src-tauri/tauri.conf.json +13 -0
  407. package/skills/cc-tauri-project-standard/examples/minimal/ui/app.js +5 -0
  408. package/skills/cc-tauri-project-standard/examples/minimal/ui/index.html +1 -0
  409. package/skills/cc-tauri-project-standard/references/common/engineering-practices.md +237 -0
  410. package/skills/cc-tauri-project-standard/references/common/engineering-practices.rules.json +121 -0
  411. package/skills/cc-tauri-project-standard/references/common/engineering-practices.sources.json +377 -0
  412. package/skills/cc-tauri-project-standard/references/engineering-practices.md +73 -0
  413. package/skills/cc-tauri-project-standard/references/practice.md +20 -0
  414. package/skills/cc-tauri-project-standard/references/verification.md +18 -0
  415. package/skills/cc-tdd-methodology/SKILL.md +8 -0
  416. package/skills/cc-tdd-methodology/references/method.md +13 -0
  417. package/skills/cc-technical-diagrams/SKILL.md +34 -0
  418. package/skills/{fec-image-generation → cc-technical-diagrams}/assets/interactive-diagram.html +371 -371
  419. package/skills/{fec-image-generation → cc-technical-diagrams}/assets/quality-examples/README.md +5 -5
  420. package/skills/{fec-image-generation → cc-technical-diagrams}/assets/quality-examples/sequence.mmd +21 -21
  421. package/skills/{fec-image-generation → cc-technical-diagrams}/assets/quality-examples/workflow.mmd +7 -7
  422. package/skills/{fec-image-generation → cc-technical-diagrams}/references/diagram-workflows.md +3 -3
  423. package/skills/{fec-image-generation → cc-technical-diagrams}/references/html-technical-diagrams.md +7 -7
  424. package/skills/cc-technical-diagrams/references/png-qa-autofix.md +37 -0
  425. package/{localized/zh-CN/skills/fec-image-generation → skills/cc-technical-diagrams}/scripts/diagram-browser.mjs +77 -14
  426. package/skills/cc-technical-diagrams/scripts/diagram-layout.mjs +176 -0
  427. package/skills/cc-technical-diagrams/scripts/png-qa.mjs +462 -0
  428. package/skills/{fec-typescript-project-standard → cc-typescript-project-standard}/SKILL.md +10 -4
  429. package/skills/cc-typescript-project-standard/examples/engineering/README.md +9 -0
  430. package/skills/cc-typescript-project-standard/examples/engineering/boundary.test.ts +16 -0
  431. package/skills/cc-typescript-project-standard/examples/engineering/input.ts +12 -0
  432. package/skills/cc-typescript-project-standard/examples/engineering/package.json +12 -0
  433. package/skills/cc-typescript-project-standard/examples/engineering/pnpm-lock.yaml +39 -0
  434. package/skills/cc-typescript-project-standard/examples/engineering/pnpm-workspace.yaml +1 -0
  435. package/skills/cc-typescript-project-standard/examples/engineering/tsconfig.json +8 -0
  436. package/skills/cc-typescript-project-standard/references/common/engineering-practices.md +237 -0
  437. package/skills/cc-typescript-project-standard/references/common/engineering-practices.rules.json +121 -0
  438. package/skills/cc-typescript-project-standard/references/common/engineering-practices.sources.json +377 -0
  439. package/skills/cc-typescript-project-standard/references/engineering-practices.md +106 -0
  440. package/skills/{fec-typescript-project-standard → cc-typescript-project-standard}/references/type-safety-patterns.md +6 -35
  441. package/skills/{fec-typescript-project-standard → cc-typescript-project-standard}/references/type-safety.md +7 -1
  442. package/skills/eval_queries.json +741 -319
  443. package/skills/fec-api-integration/SKILL.md +5 -1
  444. package/skills/fec-api-integration/references/common/engineering-practices.md +237 -0
  445. package/skills/fec-api-integration/references/common/engineering-practices.rules.json +121 -0
  446. package/skills/fec-api-integration/references/common/engineering-practices.sources.json +377 -0
  447. package/skills/fec-api-integration/references/engineering-practices.md +73 -0
  448. package/skills/fec-code-review/SKILL.md +4 -0
  449. package/skills/fec-code-review/references/common/engineering-practices.md +237 -0
  450. package/skills/fec-code-review/references/common/engineering-practices.rules.json +121 -0
  451. package/skills/fec-code-review/references/common/engineering-practices.sources.json +377 -0
  452. package/skills/fec-code-review/references/engineering-practices.md +73 -0
  453. package/skills/fec-data-fetching/SKILL.md +4 -0
  454. package/skills/fec-data-fetching/references/common/engineering-practices.md +237 -0
  455. package/skills/fec-data-fetching/references/common/engineering-practices.rules.json +121 -0
  456. package/skills/fec-data-fetching/references/common/engineering-practices.sources.json +377 -0
  457. package/skills/fec-data-fetching/references/engineering-practices.md +73 -0
  458. package/skills/fec-debug-framework/SKILL.md +2 -51
  459. package/skills/fec-debug-framework/references/common/debug.md +13 -0
  460. package/skills/fec-dependency-upgrade/SKILL.md +4 -0
  461. package/skills/fec-dependency-upgrade/references/common/engineering-practices.md +237 -0
  462. package/skills/fec-dependency-upgrade/references/common/engineering-practices.rules.json +121 -0
  463. package/skills/fec-dependency-upgrade/references/common/engineering-practices.sources.json +377 -0
  464. package/skills/fec-dependency-upgrade/references/engineering-practices.md +73 -0
  465. package/skills/fec-doc-sync/SKILL.md +7 -28
  466. package/skills/fec-doc-sync/references/common/doc-sync.md +12 -0
  467. package/skills/fec-image-generation/SKILL.md +7 -102
  468. package/skills/fec-image-generation/references/png-qa-autofix.md +1 -1
  469. package/skills/fec-image-generation/scripts/png-qa.mjs +1 -1
  470. package/skills/fec-react-project-standard/SKILL.md +6 -0
  471. package/skills/fec-react-project-standard/examples/engineering/README.md +7 -0
  472. package/skills/fec-react-project-standard/examples/engineering/package.json +15 -0
  473. package/skills/fec-react-project-standard/examples/engineering/pnpm-lock.yaml +662 -0
  474. package/skills/fec-react-project-standard/examples/engineering/pnpm-workspace.yaml +1 -0
  475. package/skills/fec-react-project-standard/examples/engineering/request-view.mjs +24 -0
  476. package/skills/fec-react-project-standard/examples/engineering/request-view.test.mjs +33 -0
  477. package/skills/fec-react-project-standard/references/common/engineering-practices.md +237 -0
  478. package/skills/fec-react-project-standard/references/common/engineering-practices.rules.json +121 -0
  479. package/skills/fec-react-project-standard/references/common/engineering-practices.sources.json +377 -0
  480. package/skills/fec-react-project-standard/references/engineering-practices.md +73 -0
  481. package/skills/fec-react-project-standard/references/generic-component-types.md +37 -0
  482. package/skills/fec-react-project-standard/references/react-quality-patterns.md +3 -3
  483. package/skills/fec-react-project-standard/references/react-runtime-patterns.md +1 -1
  484. package/skills/fec-refactoring/SKILL.md +12 -70
  485. package/skills/fec-refactoring/references/common/refactoring.md +16 -0
  486. package/skills/fec-refactoring/references/principles.md +9 -56
  487. package/skills/fec-refactoring/references/workflow.md +4 -87
  488. package/skills/fec-security-review/SKILL.md +4 -0
  489. package/skills/fec-security-review/references/common/engineering-practices.md +237 -0
  490. package/skills/fec-security-review/references/common/engineering-practices.rules.json +121 -0
  491. package/skills/fec-security-review/references/common/engineering-practices.sources.json +377 -0
  492. package/skills/fec-security-review/references/engineering-practices.md +73 -0
  493. package/skills/fec-tdd-workflow/SKILL.md +13 -45
  494. package/skills/fec-tdd-workflow/references/common/tdd.md +13 -0
  495. package/skills/fec-testing-strategy/SKILL.md +4 -0
  496. package/skills/fec-testing-strategy/references/common/engineering-practices.md +237 -0
  497. package/skills/fec-testing-strategy/references/common/engineering-practices.rules.json +121 -0
  498. package/skills/fec-testing-strategy/references/common/engineering-practices.sources.json +377 -0
  499. package/skills/fec-testing-strategy/references/engineering-practices.md +73 -0
  500. package/skills/fec-vue3-project-standard/SKILL.md +4 -0
  501. package/skills/fec-vue3-project-standard/references/common/engineering-practices.md +237 -0
  502. package/skills/fec-vue3-project-standard/references/common/engineering-practices.rules.json +121 -0
  503. package/skills/fec-vue3-project-standard/references/common/engineering-practices.sources.json +377 -0
  504. package/skills/fec-vue3-project-standard/references/engineering-practices.md +73 -0
  505. package/skills/fec-vue3-project-standard/references/vue3-project-structure.md +2 -2
  506. package/skills/metadata.json +2246 -1008
  507. package/skills/relations.json +501 -372
  508. package/templates/shared/rules/fec-source-driven-development.md +3 -29
  509. package/templates/shared/rules/fec-typescript.md +4 -4
  510. package/templates/shared/rules/references/common/source-driven-development.md +19 -0
  511. package/localized/zh-CN/skills/fec-image-generation/assets/quality-examples/README.md +0 -14
  512. package/localized/zh-CN/skills/fec-source-driven-development/SKILL.md +0 -87
  513. package/skills/fec-source-driven-development/SKILL.md +0 -87
  514. /package/localized/zh-CN/skills/{fec-drawio-studio → cc-drawio-studio}/data/THIRD_PARTY_NOTICES.md +0 -0
  515. /package/localized/zh-CN/skills/{fec-drawio-studio → cc-drawio-studio}/data/brand-icons.json +0 -0
  516. /package/localized/zh-CN/skills/{fec-drawio-studio → cc-drawio-studio}/data/shape-index.json +0 -0
  517. /package/localized/zh-CN/skills/{fec-drawio-studio → cc-drawio-studio}/references/data-residency.md +0 -0
  518. /package/localized/zh-CN/skills/{fec-drawio-studio → cc-drawio-studio}/references/diagram-patterns.md +0 -0
  519. /package/localized/zh-CN/skills/{fec-drawio-studio → cc-drawio-studio}/references/troubleshooting.md +0 -0
  520. /package/localized/zh-CN/skills/{fec-drawio-studio → cc-drawio-studio}/references/xml-and-mermaid.md +0 -0
  521. /package/localized/zh-CN/skills/{fec-drawio-studio → cc-drawio-studio}/scripts/brand-symbols.mjs +0 -0
  522. /package/localized/zh-CN/skills/{fec-drawio-studio → cc-drawio-studio}/scripts/diagram-lint.mjs +0 -0
  523. /package/localized/zh-CN/skills/{fec-drawio-studio → cc-drawio-studio}/scripts/diagram-url.mjs +0 -0
  524. /package/localized/zh-CN/skills/{fec-drawio-studio → cc-drawio-studio}/scripts/drawio-export.mjs +0 -0
  525. /package/localized/zh-CN/skills/{fec-drawio-studio → cc-drawio-studio}/scripts/layout-graph.mjs +0 -0
  526. /package/localized/zh-CN/skills/{fec-drawio-studio → cc-drawio-studio}/scripts/png-embed-fix.mjs +0 -0
  527. /package/localized/zh-CN/skills/{fec-drawio-studio → cc-drawio-studio}/scripts/scan-go-packages.mjs +0 -0
  528. /package/localized/zh-CN/skills/{fec-drawio-studio → cc-drawio-studio}/scripts/scan-js-modules.mjs +0 -0
  529. /package/localized/zh-CN/skills/{fec-drawio-studio → cc-drawio-studio}/scripts/scan-python-classes.mjs +0 -0
  530. /package/localized/zh-CN/skills/{fec-drawio-studio → cc-drawio-studio}/scripts/scan-python-modules.mjs +0 -0
  531. /package/localized/zh-CN/skills/{fec-drawio-studio → cc-drawio-studio}/scripts/scan-rust-modules.mjs +0 -0
  532. /package/localized/zh-CN/skills/{fec-drawio-studio → cc-drawio-studio}/scripts/scan-ts-modules.mjs +0 -0
  533. /package/localized/zh-CN/skills/{fec-drawio-studio → cc-drawio-studio}/scripts/shape-query.mjs +0 -0
  534. /package/localized/zh-CN/skills/{fec-drawio-studio → cc-drawio-studio}/scripts/studio-core.mjs +0 -0
  535. /package/localized/zh-CN/skills/{fec-drawio-studio → cc-drawio-studio}/styles/built-in/corporate.json +0 -0
  536. /package/localized/zh-CN/skills/{fec-drawio-studio → cc-drawio-studio}/styles/built-in/default.json +0 -0
  537. /package/localized/zh-CN/skills/{fec-drawio-studio → cc-drawio-studio}/styles/built-in/handdrawn.json +0 -0
  538. /package/localized/zh-CN/skills/{fec-drawio-studio → cc-drawio-studio}/styles/schema.json +0 -0
  539. /package/localized/zh-CN/skills/{fec-image-generation → cc-technical-diagrams}/assets/quality-examples/architecture.json +0 -0
  540. /package/localized/zh-CN/skills/{fec-image-generation → cc-technical-diagrams}/assets/quality-examples/invalid-explicit.json +0 -0
  541. /package/localized/zh-CN/skills/{fec-image-generation → cc-technical-diagrams}/assets/quality-examples/sequence.json +0 -0
  542. /package/localized/zh-CN/skills/{fec-image-generation → cc-technical-diagrams}/assets/quality-examples/workflow.json +0 -0
  543. /package/localized/zh-CN/skills/{fec-image-generation → cc-technical-diagrams}/scripts/export-diagram.mjs +0 -0
  544. /package/localized/zh-CN/skills/{fec-image-generation → cc-technical-diagrams}/scripts/interactive-diagram-server.mjs +0 -0
  545. /package/localized/zh-CN/skills/{fec-image-generation → cc-technical-diagrams}/scripts/mermaid-render.mjs +0 -0
  546. /package/localized/zh-CN/skills/{fec-image-generation → cc-technical-diagrams}/scripts/tech-diagram-render.mjs +0 -0
  547. /package/skills/{fec-drawio-studio → cc-drawio-studio}/data/THIRD_PARTY_NOTICES.md +0 -0
  548. /package/skills/{fec-drawio-studio → cc-drawio-studio}/data/brand-icons.json +0 -0
  549. /package/skills/{fec-drawio-studio → cc-drawio-studio}/data/shape-index.json +0 -0
  550. /package/skills/{fec-drawio-studio → cc-drawio-studio}/references/data-residency.md +0 -0
  551. /package/skills/{fec-drawio-studio → cc-drawio-studio}/references/diagram-patterns.md +0 -0
  552. /package/skills/{fec-drawio-studio → cc-drawio-studio}/references/troubleshooting.md +0 -0
  553. /package/skills/{fec-drawio-studio → cc-drawio-studio}/references/xml-and-mermaid.md +0 -0
  554. /package/skills/{fec-drawio-studio → cc-drawio-studio}/scripts/brand-symbols.mjs +0 -0
  555. /package/skills/{fec-drawio-studio → cc-drawio-studio}/scripts/diagram-lint.mjs +0 -0
  556. /package/skills/{fec-drawio-studio → cc-drawio-studio}/scripts/diagram-url.mjs +0 -0
  557. /package/skills/{fec-drawio-studio → cc-drawio-studio}/scripts/drawio-export.mjs +0 -0
  558. /package/skills/{fec-drawio-studio → cc-drawio-studio}/scripts/layout-graph.mjs +0 -0
  559. /package/skills/{fec-drawio-studio → cc-drawio-studio}/scripts/png-embed-fix.mjs +0 -0
  560. /package/skills/{fec-drawio-studio → cc-drawio-studio}/scripts/scan-go-packages.mjs +0 -0
  561. /package/skills/{fec-drawio-studio → cc-drawio-studio}/scripts/scan-js-modules.mjs +0 -0
  562. /package/skills/{fec-drawio-studio → cc-drawio-studio}/scripts/scan-python-classes.mjs +0 -0
  563. /package/skills/{fec-drawio-studio → cc-drawio-studio}/scripts/scan-python-modules.mjs +0 -0
  564. /package/skills/{fec-drawio-studio → cc-drawio-studio}/scripts/scan-rust-modules.mjs +0 -0
  565. /package/skills/{fec-drawio-studio → cc-drawio-studio}/scripts/scan-ts-modules.mjs +0 -0
  566. /package/skills/{fec-drawio-studio → cc-drawio-studio}/scripts/shape-query.mjs +0 -0
  567. /package/skills/{fec-drawio-studio → cc-drawio-studio}/scripts/studio-core.mjs +0 -0
  568. /package/skills/{fec-drawio-studio → cc-drawio-studio}/styles/built-in/corporate.json +0 -0
  569. /package/skills/{fec-drawio-studio → cc-drawio-studio}/styles/built-in/default.json +0 -0
  570. /package/skills/{fec-drawio-studio → cc-drawio-studio}/styles/built-in/handdrawn.json +0 -0
  571. /package/skills/{fec-drawio-studio → cc-drawio-studio}/styles/schema.json +0 -0
  572. /package/skills/{fec-image-generation → cc-technical-diagrams}/assets/quality-examples/architecture.json +0 -0
  573. /package/skills/{fec-image-generation → cc-technical-diagrams}/assets/quality-examples/invalid-explicit.json +0 -0
  574. /package/skills/{fec-image-generation → cc-technical-diagrams}/assets/quality-examples/sequence.json +0 -0
  575. /package/skills/{fec-image-generation → cc-technical-diagrams}/assets/quality-examples/workflow.json +0 -0
  576. /package/skills/{fec-image-generation → cc-technical-diagrams}/scripts/export-diagram.mjs +0 -0
  577. /package/skills/{fec-image-generation → cc-technical-diagrams}/scripts/interactive-diagram-server.mjs +0 -0
  578. /package/skills/{fec-image-generation → cc-technical-diagrams}/scripts/mermaid-render.mjs +0 -0
  579. /package/skills/{fec-image-generation → cc-technical-diagrams}/scripts/tech-diagram-render.mjs +0 -0
package/CONTRIBUTING.md CHANGED
@@ -1,371 +1,381 @@
1
- # Contributing Guide
2
-
3
- Thanks for your interest in `frontend-craft`. Issues, pull requests, documentation fixes, runtime adapters, and better examples are all welcome.
4
-
5
- **Simplified Chinese:** [CONTRIBUTING.zh-CN.md](CONTRIBUTING.zh-CN.md)
6
-
7
- ## Development Setup
8
-
9
- - Node.js >= 22 for the universal installer and OpenClaw package build.
10
- - Git.
11
- - pnpm 12.4.1 (pinned in package.json); installing pnpm through npm requires Node.js >=22.13. The published plugin still supports Node.js >=22.0.0.
12
- - pnpm-lock.yaml is the sole dependency lockfile. pnpm-workspace.yaml permits esbuild build scripts and explicitly skips optional SDK/native setup not used by this project.
13
- - Run `pnpm install --frozen-lockfile` before local development.
14
-
15
- For documentation-only changes, focus on the language and documentation policy plus the pull request checklist. For skill or OpenClaw changes, use the focused sections below before opening a pull request.
16
-
17
- Quick checks (minimum recommended):
18
-
19
- `pnpm lint` checks source code and both content languages. `pnpm format:check` checks changed source/config files without modifying them. `pnpm test` recursively discovers `tests/**/*.test.ts`, so new tests need no script-list update.
20
-
21
- ```bash
22
- pnpm test # General validation
23
- pnpm run pack:skills # Skill changes
24
- pnpm run check:skills-publish # Skill changes
25
- pnpm run typecheck:openclaw # OpenClaw changes
26
- ```
27
-
28
- See the Development Scripts section and Pull Request Checklist for complete scenario-specific checks.
29
-
30
- ## Project Structure
31
-
32
- ```
33
- ├── agents/ # Agent definitions (Markdown + YAML frontmatter)
34
- ├── bin/ # CLI entry point (frontend-craft.ts)
35
- ├── commands/ # Custom commands (fec-init, fec-review, fec-scaffold)
36
- ├── docs/ # Runtime installation docs and localized READMEs
37
- ├── hooks/ # Hook configuration (hooks.json)
38
- ├── scripts/ # Source-run maintenance scripts (build, packaging, publishing checks)
39
- ├── skills/ # Skill definitions (SKILL.md, metadata.json)
40
- ├── src/ # Source code
41
- │ ├── hooks/ # Runtime hook source bundled to dist/hooks/
42
- │ ├── install/ # Installer core (CLI, interactive wizard, runtime converters)
43
- │ └── openclaw/ # OpenClaw runtime TypeScript source
44
- ├── templates/ # Templates (Claude/Codex/OpenClaw configs + shared rules)
45
- ├── tests/ # Test suite
46
- │ ├── converters/ # Converter tests
47
- │ └── install/ # Installer tests (CLI, E2E, all-runtimes dry-run)
48
- └── package.json # Project configuration and scripts
49
- ```
50
-
51
- ## Local Development and Debugging
52
-
53
- ```bash
54
- # 1. Install dependencies
55
- pnpm install
56
-
57
- # 2. Build dist/bin and dist/hooks
58
- pnpm run build
59
-
60
- # 3. Install to a specific runtime (e.g., claude)
61
- node dist/bin/frontend-craft.js install claude --local --dry-run # preview first
62
- node dist/bin/frontend-craft.js install claude --local # actual install
63
-
64
- # 4. Install to all runtimes
65
- node dist/bin/frontend-craft.js install --all --dry-run
66
-
67
- # 5. List all supported runtimes
68
- node dist/bin/frontend-craft.js list
69
- ```
70
-
71
- `pnpm run build` runs `clean`, `typecheck`, and `scripts/build-dist.ts`. Run it before using `dist/bin/frontend-craft.js` or the bundled hook scripts locally.
72
-
73
- ## Testing
74
-
75
- Tests use Node.js built-in `node:test` with `assert/strict`.
76
-
77
- ```bash
78
- # Run all tests
79
- pnpm test
80
-
81
- # Run a single test file
82
- node --import tsx --test tests/install/cli.test.ts
83
-
84
- # Run installer tests
85
- node --import tsx --test tests/install/*.test.ts
86
-
87
- # Run converter tests
88
- node --import tsx --test tests/converters/*.test.ts
89
-
90
- # Run all-runtimes dry-run test
91
- node --import tsx --test tests/install/all-runtimes-dry.test.ts
92
- ```
93
-
94
- For testing the interactive installation wizard, set `FRONTEND_CRAFT_FORCE_INTERACTIVE=1`:
95
-
96
- ```bash
97
- FRONTEND_CRAFT_FORCE_INTERACTIVE=1 node --import tsx --test tests/install/cli.test.ts
98
- ```
99
-
100
- `pnpm test` runs `pnpm run build` first, then executes the curated converter and installer test suite from `tests/`.
101
-
102
- ## OpenClaw Build
103
-
104
- The OpenClaw runtime has its own build pipeline:
105
-
106
- ```bash
107
- pnpm run build:openclaw # Bundle TypeScript to dist/openclaw/ via esbuild
108
- pnpm run typecheck:openclaw # TypeScript type checking
109
- pnpm run check:openclaw-dist # Verify dist integrity
110
- pnpm run pack:openclaw # Full build + verify + package
111
- ```
112
-
113
- Source: `src/openclaw/` (TypeScript) → `dist/openclaw/index.js` (bundled ESM).
114
- TypeScript config: `tsconfig.openclaw.json`.
115
-
116
- ## Standalone Skill Packages
117
-
118
- The canonical skill sources live under `skills/<skill-id>/`. Do not edit generated files under `skill-packages/` by hand.
119
-
120
- ```bash
121
- pnpm run pack:skills # Build one standalone package per skill
122
- pnpm run check:skills-publish # Verify package metadata, index, and copied references
123
- pnpm run pack:all # Build + test + OpenClaw package + standalone skill packages
124
- ```
125
-
126
- `pnpm run pack:skills` writes `skill-packages/<skill-id>/` with `SKILL.md`, only the referenced `references/` files, `metadata.json`, `package.json`, `README.md`, and `LICENSE`. It also writes `skill-packages/index.json` for platform crawlers and release automation.
127
-
128
- When changing a skill, keep these source files aligned:
129
-
130
- - `skills/<skill-id>/SKILL.md` — canonical runtime instruction.
131
- - `skills/metadata.json` — publish metadata, category, tags, keywords, platform targets, and package version.
132
- - `skills/eval_queries.json` — positive and negative trigger examples used by routing quality checks.
133
- - `README.md` and localized README summaries when the public skill list or user-facing behavior changes.
134
-
135
- ## Development Scripts
136
-
137
- Use `package.json` scripts as the public development entrypoints.
138
-
139
- | Script | Purpose |
140
- | ------------------------------ | -------------------------------------------------------------------------------- |
141
- | `pnpm run lint` | Check code and bilingual content declarations. |
142
- | `pnpm run format:check` | Check changed source formatting. |
143
- | `pnpm run check:content` | Validate YAML, names, references and localization structure. |
144
- | `pnpm run clean` | Remove `dist/`. |
145
- | `pnpm run typecheck` | Run main TypeScript checks plus checked skill support scripts. |
146
- | `pnpm run build` | Run `clean`, `typecheck`, and bundle CLI/hooks via `scripts/build-dist.ts`. |
147
- | `pnpm test` | Build, then run the curated `node:test` suite with `tsx`. |
148
- | `pnpm run build:openclaw` | Build the main project, then bundle OpenClaw runtime output. |
149
- | `pnpm run audit:skills` | Build, then report skill instruction size and description overlap signals. |
150
- | `pnpm run typecheck:openclaw` | Run TypeScript checking for OpenClaw with `tsconfig.openclaw.json`. |
151
- | `pnpm run check:openclaw-dist` | Verify the generated OpenClaw dist output. |
152
- | `pnpm run pack:openclaw` | Build, verify, and package the OpenClaw plugin. |
153
- | `pnpm run pack:skills` | Build first, then create standalone packages under `skill-packages/`. |
154
- | `pnpm run check:skills-publish` | Build first, then verify standalone skill package metadata and copied files. |
155
- | `pnpm run pack:all` | Build, run tests, package OpenClaw, package skills, and verify skill output. |
156
- | `pnpm run sync:version` | Sync package version metadata across release manifests. |
157
- | `pnpm run version` | Sync versioned manifests without automatically staging files. |
158
- | `pnpm run prepack` | Build before `npm pack`. |
159
- | `pnpm run prepublishOnly` | Sync versions and run tests before npm publish. |
160
-
161
- For common change types:
162
-
163
- - Skill changes: run `pnpm test`, `pnpm run audit:skills`, `pnpm run pack:skills`, and `pnpm run check:skills-publish`.
164
- - OpenClaw changes: run `pnpm run typecheck:openclaw` and `pnpm run pack:openclaw`.
165
- - Release packaging: CI runs `pnpm run pack:all`; `prepublishOnly` also runs version sync and tests before publish.
166
-
167
- ## Source Maintenance Files
168
-
169
- Maintenance scripts live under `scripts/` and run from source with `tsx`; they are not published as `dist/scripts`.
170
-
171
- | File | Purpose |
172
- | ------------------------------------------ | ------------------------------------ |
173
- | `scripts/audit-skills.ts` | Skill size and trigger-overlap audit |
174
- | `scripts/build-dist.ts` | CLI and runtime hook bundler |
175
- | `scripts/clean-dist.mjs` | Remove generated `dist/` output |
176
- | `scripts/sync-codex-agents-toml.ts` | Sync Codex agents configuration |
177
- | `scripts/sync-version.ts` | Sync release version metadata |
178
- | `scripts/pack-skills.ts` | Standalone skill package builder |
179
- | `scripts/check-skills-publish.ts` | Standalone skill package verifier |
180
- | `scripts/skill-packaging.ts` | Shared skill packaging helpers |
181
- | `scripts/openclaw/build.ts` | OpenClaw esbuild bundler |
182
- | `scripts/openclaw/pack-openclaw.ts` | OpenClaw packaging |
183
- | `scripts/openclaw/verify-openclaw-dist.ts` | Verify OpenClaw dist completeness |
184
-
185
- ## Runtime Hook Scripts
186
-
187
- Hook scripts live under `src/hooks/` and are bundled into `dist/hooks/` for published runtime use. Maintenance scripts live under `scripts/` and run from source with `tsx`; they are not published as `dist/scripts`.
188
-
189
- | Source file | Bundled output | Purpose |
190
- | ---------------------------------- | ----------------------------------- | ---------------------- |
191
- | `src/hooks/cleanup-claude-cache.ts` | `dist/hooks/fec-cleanup-claude-cache.js` | Cache cleanup |
192
- | `src/hooks/run-tests.ts` | `dist/hooks/fec-run-tests.js` | Test runner helper |
193
- | `src/hooks/format-changed-file.ts` | `dist/hooks/fec-format-changed-file.js` | Format changed files |
194
- | `src/hooks/security-check.ts` | `dist/hooks/fec-security-check.js` | Security scanning |
195
- | `src/hooks/notify.ts` | `dist/hooks/fec-notify.js` | Notification script |
196
- | `src/hooks/session-start.ts` | `dist/hooks/fec-session-start.js` | Session initialization |
197
-
198
- ## Architecture Overview
199
-
200
- The universal installer follows this architecture:
201
-
202
- ```
203
- bin/frontend-craft.ts
204
- └─ src/install/cli.ts # CLI entry (parse commands: install/list/version/uninstall)
205
- ├─ src/install/registry.ts # Runtime registry (names + installer map)
206
- ├─ src/install/converters/ # Per-runtime adapters (claude, codex, cursor, copilot, etc.)
207
- ├─ src/install/interactive.ts # Interactive wizard (runtime/location prompts)
208
- ├─ src/install/runtime-homes.ts # Global/local directory conventions
209
- └─ src/install/types.ts # Shared TypeScript types
210
- ```
211
-
212
- Each runtime converter under `src/install/converters/` implements the `InstallContext` interface from `types.ts`, writing skills, agents, commands, hooks, and templates to the target runtime's configuration directory.
213
-
214
- ## Branch Strategy
215
-
216
- - `main` - stable release branch.
217
- - `develop` - development branch, if used.
218
- - `feature/<name>` - new features.
219
- - `fix/<name>` - bug fixes.
220
- - `docs/<name>` - documentation updates.
221
-
222
- ## Commit Convention
223
-
224
- Use [Conventional Commits](https://www.conventionalcommits.org/):
225
-
226
- ```text
227
- <type>(<scope>): <description>
228
-
229
- [optional body]
230
- [optional footer]
231
- ```
232
-
233
- Common types:
234
-
235
- | Type | Meaning |
236
- | ---------- | ------------------------------ |
237
- | `feat` | New feature |
238
- | `fix` | Bug fix |
239
- | `docs` | Documentation |
240
- | `refactor` | Refactoring |
241
- | `test` | Tests |
242
- | `chore` | Build, tooling, or maintenance |
243
-
244
- Examples:
245
-
246
- ```text
247
- feat(skills): add e2e testing skill
248
- fix(hooks): resolve Windows path handling
249
- docs(readme): update installation steps
250
- ```
251
-
252
- ## Language and Documentation Policy
253
-
254
- English is the source language for public project governance, runtime documentation, release notes, and GitHub collaboration templates. Localized README files should stay user-focused and link back to English docs for detailed contributor or maintainer workflows.
255
-
256
- When a pull request changes public behavior, installation steps, runtimes, agents, skills, commands, or hooks:
257
-
258
- - Update `README.md` and `CHANGELOG.md` first (and [`CHANGELOG.zh-CN.md`](CHANGELOG.zh-CN.md) when the change is release-noteworthy for Chinese readers).
259
- - Sync user-facing summaries in `README.zh-CN.md`, `docs/zh-TW/README.md`, `docs/ja-JP/README.md`, and `docs/ko-KR/README.md` when the change affects users.
260
- - Claude Code Marketplace install and update steps are maintained in [`docs/runtimes/claude.md`](docs/runtimes/claude.md) and [`docs/runtimes/claude.zh-CN.md`](docs/runtimes/claude.zh-CN.md). When that flow changes, update those files (the root README and localized READMEs only link there).
261
- - If translations cannot be completed in the same pull request, open or link a follow-up issue and mention it in the PR description.
262
- - Keep code examples, runtime names, command names, file paths, and package names consistent across languages.
263
-
264
- Issues and pull requests are easiest to review in English. If you are more comfortable writing in Chinese, that is also welcome; maintainers can help translate titles and summaries when needed.
265
-
266
- ## Adding a Skill
267
-
268
- 1. Create a directory under `skills/`, for example `skills/fec-my-skill/`.
269
- 2. Add `SKILL.md` with YAML frontmatter and concise instructions:
270
-
271
- ```markdown
272
- ---
273
- name: fec-my-skill
274
- description: Use when the user needs ...
275
- ---
276
-
277
- # Skill Title
278
-
279
- ## When to Use
280
-
281
- - ...
282
-
283
- ## Core Rules
284
-
285
- - ...
286
- ```
287
-
288
- 3. Add an entry to `skills/metadata.json` with `id`, display `name`, taxonomy `category`, `tags`, `summary`, publish metadata, `keywords`, and `platforms`. The `version`, `license`, `homepage`, and `repository` fields should match `package.json`.
289
- 4. Add positive and negative trigger examples to `skills/eval_queries.json`.
290
- 5. Add the skill to the Skills table in `README.md`.
291
- 6. Update the repository tree in `README.md` and localized README files if the visible structure changes.
292
- 7. Run `pnpm test`, `pnpm run pack:skills`, and `pnpm run check:skills-publish`.
293
-
294
- ## Adding an Agent
295
-
296
- 1. Create `agents/my-agent.md`.
297
- 2. Define the YAML frontmatter:
298
-
299
- ```markdown
300
- ---
301
- name: my-agent
302
- description: Use this agent when ...
303
- tools: Read, Edit, Write, Glob, Grep, Bash
304
- model: sonnet
305
- skills:
306
- - relevant-skill
307
- ---
308
- ```
309
-
310
- 1. Update the Agents table in `README.md`.
311
- 2. Sync `README.zh-CN.md`, `docs/*/README.md`, and `.claude-plugin/marketplace.json` when counts or user-facing descriptions change.
312
-
313
- ## Adding a Command
314
-
315
- 1. Create `commands/my-command.md`.
316
- 2. Use YAML frontmatter and Markdown steps.
317
- 3. Update the Commands table in `README.md` and localized user-facing summaries as needed.
318
-
319
- ## Adding a Rule Template
320
-
321
- 1. Create `templates/shared/rules/my-rule.md`.
322
- 2. Add it to the copy list in `commands/fec-init.md`.
323
- 3. Update `templates/claude/CLAUDE.md` rule import examples when applicable.
324
-
325
- ## Universal Installer
326
-
327
- - Entry point: `bin/frontend-craft.ts` (compiled to `dist/bin/frontend-craft.js`).
328
- - Implementation: `src/install/` (converters, registry, path helpers).
329
- - Interactive prompts and input parsing: `src/install/interactive.ts` (tests may set `FRONTEND_CRAFT_FORCE_INTERACTIVE=1` to exercise stdin-fed prompts).
330
- - Register a new runtime in `src/install/registry.ts`.
331
- - Add the runtime installer under `src/install/converters/`.
332
- - Follow global directory conventions from `src/install/runtime-homes.ts`.
333
- - Add or update tests under `tests/install/`.
334
-
335
- ## Adding a Hook
336
-
337
- 1. Update `hooks/hooks.json`.
338
- 2. Put runtime hook scripts under `src/hooks/` and prefer cross-platform Node.js.
339
- 3. Add each new hook entrypoint to `scripts/build-dist.ts` so `pnpm run build` bundles it into `dist/hooks/`.
340
- 4. In `hooks/hooks.json`, use **`${CLAUDE_PLUGIN_ROOT}/dist/hooks/<script>.js`** for bundled hook entrypoints (Claude Code substitutes the root at runtime; see the official [Plugins reference](https://code.claude.com/docs/en/plugins-reference)). The Claude installer in this repo also expands **`${CLAUDE_PLUGIN_ROOT}`** and legacy **`${FRONTEND_CRAFT_ROOT}`** to absolute paths when it writes `hooks.json` under `.claude/`.
341
- 5. Keep repository maintenance scripts under `scripts/`; do not reference them directly from runtime hook configuration.
342
- 6. Update the Hooks table in `README.md`.
343
-
344
- ## Pull Request Checklist
345
-
346
- Before opening a pull request:
347
-
348
- - [ ] The change is scoped and described clearly.
349
- - [ ] `pnpm test` passes.
350
- - [ ] Skill changes pass `pnpm run audit:skills`, `pnpm run pack:skills`, and `pnpm run check:skills-publish`.
351
- - [ ] `pnpm run typecheck:openclaw` and `pnpm run pack:openclaw` pass when OpenClaw code or templates are affected.
352
- - [ ] `README.md` and `CHANGELOG.md` are updated when user-facing behavior changes (and `CHANGELOG.zh-CN.md` when you ship Chinese-facing release notes).
353
- - [ ] Localized README files are synced, or a follow-up translation issue is linked.
354
- - [ ] New runtime, agent, skill, command, hook, or template changes include relevant tests or dry-run coverage.
355
- - [ ] Release packaging changes pass `pnpm run pack:all` or are covered by the `prepublishOnly` publish gate.
356
- - [ ] Security-sensitive changes have been reviewed against `SECURITY.md`.
357
-
358
- ## Code Style
359
-
360
- - Prefer clear Markdown with stable headings and tables.
361
- - Keep skill and agent descriptions concise because model routing depends on them.
362
- - Use cross-platform Node.js scripts for automation.
363
- - Avoid shell-specific assumptions unless a runtime explicitly requires them.
364
-
365
- ## Reporting Issues
366
-
367
- Use [GitHub Issues](https://github.com/bovinphang/frontend-craft/issues) for bugs and feature requests. Include the runtime, operating system, Node.js version, exact command, expected behavior, and actual behavior whenever possible.
368
-
369
- Do not file security-sensitive vulnerabilities as public issues. Follow [SECURITY.md](SECURITY.md) instead.
370
-
371
- When changing review or diagram capabilities, synchronize scope defaults, natural-language examples, tool prerequisites, QA limits, and coverage reporting across README translations and runtime guides. See [review scope and technical diagram delivery](docs/review-and-diagram-workflows.md).
1
+ # Contributing Guide
2
+
3
+ Thanks for your interest in `frontend-craft`. Issues, pull requests, documentation fixes, runtime adapters, and better examples are all welcome.
4
+
5
+ **Simplified Chinese:** [CONTRIBUTING.zh-CN.md](CONTRIBUTING.zh-CN.md)
6
+
7
+ ## Development Setup
8
+
9
+ - Node.js >= 22 for the universal installer and OpenClaw package build.
10
+ - Git.
11
+ - pnpm 12.4.1 (pinned in package.json); installing pnpm through npm requires Node.js >=22.13. The published plugin still supports Node.js >=22.0.0.
12
+ - On Windows, install pnpm through Corepack (`corepack enable pnpm`) or npm rather than the standalone installer; a standalone pnpm 10+ blocks the lifecycle scripts that install the pinned version's native binary and leaves a shim Windows cannot execute.
13
+ - pnpm-lock.yaml is the sole dependency lockfile. pnpm-workspace.yaml permits esbuild build scripts and explicitly skips optional SDK/native setup not used by this project.
14
+ - Run `pnpm install --frozen-lockfile` before local development.
15
+
16
+ For documentation-only changes, focus on the language and documentation policy plus the pull request checklist. For skill or OpenClaw changes, use the focused sections below before opening a pull request.
17
+
18
+ Quick checks (minimum recommended):
19
+
20
+ `pnpm lint` checks source code and both content languages. `pnpm format:check` checks changed source/config files without modifying them. `pnpm test` recursively discovers `tests/**/*.test.ts`, so new tests need no script-list update.
21
+
22
+ ```bash
23
+ pnpm lint # ESLint + content validation
24
+ pnpm typecheck # TypeScript + skill script types
25
+ pnpm run check:common # Read-only common snapshot check
26
+ pnpm test # Build + all tests
27
+ pnpm run pack:skills # Skill changes
28
+ pnpm run check:skills-publish # Skill changes
29
+ pnpm run typecheck:openclaw # OpenClaw changes
30
+ ```
31
+
32
+ See the Development Scripts section and Pull Request Checklist for complete scenario-specific checks.
33
+
34
+ ## Project Structure
35
+
36
+ ```
37
+ ├── agents/ # Agent definitions (Markdown + YAML frontmatter)
38
+ ├── bin/ # CLI entry point (frontend-craft.ts)
39
+ ├── commands/ # Custom commands (fec-init, fec-review, fec-scaffold)
40
+ ├── docs/ # Runtime installation docs and localized READMEs
41
+ ├── hooks/ # Hook configuration (hooks.json)
42
+ ├── scripts/ # Source-run maintenance scripts (build, packaging, publishing checks)
43
+ ├── skills/ # Skill definitions (SKILL.md, metadata.json)
44
+ ├── src/ # Source code
45
+ │ ├── hooks/ # Runtime hook source bundled to dist/hooks/
46
+ │ ├── install/ # Installer core (CLI, interactive wizard, runtime converters)
47
+ │ └── openclaw/ # OpenClaw runtime TypeScript source
48
+ ├── templates/ # Templates (Claude/Codex/OpenClaw configs + shared rules)
49
+ ├── tests/ # Test suite
50
+ │ ├── converters/ # Converter tests
51
+ │ └── install/ # Installer tests (CLI, E2E, all-runtimes dry-run)
52
+ └── package.json # Project configuration and scripts
53
+ ```
54
+
55
+ ## Local Development and Debugging
56
+
57
+ ```bash
58
+ # 1. Install dependencies
59
+ pnpm install
60
+
61
+ # 2. Build dist/bin and dist/hooks
62
+ pnpm run build
63
+
64
+ # 3. Install to a specific runtime (e.g., claude)
65
+ node dist/bin/frontend-craft.js runtime install claude --local --dry-run # preview first
66
+ node dist/bin/frontend-craft.js runtime install claude --local # actual install
67
+
68
+ # 4. Install to all runtimes
69
+ node dist/bin/frontend-craft.js runtime install --all --dry-run
70
+
71
+ # 5. List all supported runtimes
72
+ node dist/bin/frontend-craft.js list
73
+ ```
74
+
75
+ `pnpm run build` runs `clean`, `typecheck`, and `scripts/build-dist.ts`. Run it before using `dist/bin/frontend-craft.js` or the bundled hook scripts locally.
76
+
77
+ Local source checkouts intentionally do not support CLI self-management. Use `node dist/bin/frontend-craft.js runtime update --dry-run` to preview bundled resource updates; test top-level update/uninstall only against isolated npm/pnpm global installations with fake package managers and temporary HOME directories. Top-level `--dry-run` must remain read-only. See the README migration table for the 3.0 command split.
78
+
79
+ ## Testing
80
+
81
+ Tests use Node.js built-in `node:test` with `assert/strict`.
82
+
83
+ ```bash
84
+ # Run all tests
85
+ pnpm test
86
+
87
+ # Run a single test file
88
+ node --import tsx --test tests/install/cli.test.ts
89
+
90
+ # Run installer tests
91
+ node --import tsx --test tests/install/*.test.ts
92
+
93
+ # Run converter tests
94
+ node --import tsx --test tests/converters/*.test.ts
95
+
96
+ # Run all-runtimes dry-run test
97
+ node --import tsx --test tests/install/all-runtimes-dry.test.ts
98
+ ```
99
+
100
+ For testing the interactive installation wizard, set `FRONTEND_CRAFT_FORCE_INTERACTIVE=1`:
101
+
102
+ ```bash
103
+ FRONTEND_CRAFT_FORCE_INTERACTIVE=1 node --import tsx --test tests/install/cli.test.ts
104
+ ```
105
+
106
+ `pnpm test` runs `pnpm run build` first, then recursively discovers every `tests/**/*.test.ts` file and executes them serially with Node.js `node:test`. `pnpm run test:only` runs that suite against an existing build.
107
+
108
+ ## OpenClaw Build
109
+
110
+ The OpenClaw runtime has its own build pipeline:
111
+
112
+ ```bash
113
+ pnpm run build:openclaw # Bundle TypeScript to dist/openclaw/ via esbuild
114
+ pnpm run typecheck:openclaw # TypeScript type checking
115
+ pnpm run check:openclaw-dist # Verify dist integrity
116
+ pnpm run pack:openclaw # Full build + verify + package
117
+ ```
118
+
119
+ Source: `src/openclaw/` (TypeScript) → `dist/openclaw/index.js` (bundled ESM).
120
+ TypeScript config: `tsconfig.openclaw.json`.
121
+
122
+ ## Standalone Skill Packages
123
+
124
+ The canonical skill sources live under `skills/<skill-id>/`. Do not edit generated files under `skill-packages/` by hand.
125
+
126
+ ```bash
127
+ pnpm run pack:skills # Build one standalone package per skill
128
+ pnpm run check:skills-publish # Verify package metadata, index, and copied references
129
+ pnpm run pack:all # Build + test + OpenClaw package + standalone skill packages
130
+ ```
131
+
132
+ `pnpm run pack:skills` writes `skill-packages/<skill-id>/` with `SKILL.md`, referenced `references/` files and required scripts, assets, data and styles, `metadata.json`, `package.json`, `README.md`, and `LICENSE`. It also writes `skill-packages/index.json` for platform crawlers and release automation.
133
+
134
+ When changing a skill, keep these source files aligned:
135
+
136
+ - `skills/<skill-id>/SKILL.md` — canonical runtime instruction.
137
+ - `skills/metadata.json` — publish metadata, category, tags, keywords, platform targets, and package version.
138
+ - `skills/eval_queries.json` — positive and negative trigger examples used by routing quality checks.
139
+ - `README.md` and localized README summaries when the public skill list or user-facing behavior changes.
140
+
141
+ ## Development Scripts
142
+
143
+ Use `package.json` scripts as the public development entrypoints.
144
+
145
+ | Script | Purpose |
146
+ | ------------------------------ | -------------------------------------------------------------------------------- |
147
+ | `pnpm run lint` | Check code and bilingual content declarations. |
148
+ | `pnpm run format:check` | Check changed source formatting. |
149
+ | `pnpm run check:content` | Validate YAML, names, references and localization structure. |
150
+ | `pnpm run clean` | Remove `dist/`. |
151
+ | `pnpm run typecheck` | Run main TypeScript checks plus checked skill support scripts. |
152
+ | `pnpm run build` | Run `clean`, `typecheck`, and bundle CLI/hooks via `scripts/build-dist.ts`. |
153
+ | `pnpm test` | Build, then recursively discover and run all `node:test` tests. |
154
+ | `pnpm run build:openclaw` | Build the main project, then bundle OpenClaw runtime output. |
155
+ | `pnpm run audit:skills` | Build, then report skill instruction size and description overlap signals. |
156
+ | `pnpm run typecheck:openclaw` | Run TypeScript checking for OpenClaw with `tsconfig.openclaw.json`. |
157
+ | `pnpm run check:openclaw-dist` | Verify the generated OpenClaw dist output. |
158
+ | `pnpm run pack:openclaw` | Build, verify, and package the OpenClaw plugin. |
159
+ | `pnpm run pack:skills` | Build first, then create standalone packages under `skill-packages/`. |
160
+ | `pnpm run check:skills-publish` | Build first, then verify standalone skill package metadata and copied files. |
161
+ | `pnpm run pack:all` | Build, run tests, package OpenClaw, package skills, and verify skill output. |
162
+ | `pnpm run sync:version` | Sync package version metadata across release manifests. |
163
+ | `pnpm run version` | Sync versioned manifests without automatically staging files. |
164
+ | `pnpm run prepack` | Build before `npm pack`. |
165
+ | `pnpm run prepublishOnly` | Sync versions and run tests before npm publish. |
166
+
167
+ For common change types:
168
+
169
+ - Skill changes: run `pnpm test`, `pnpm run audit:skills`, `pnpm run pack:skills`, and `pnpm run check:skills-publish`.
170
+ - OpenClaw changes: run `pnpm run typecheck:openclaw` and `pnpm run pack:openclaw`.
171
+ - Release packaging: CI runs `pnpm run pack:all`; `prepublishOnly` also runs version sync and tests before publish.
172
+
173
+ ## Source Maintenance Files
174
+
175
+ Maintenance scripts live under `scripts/` and run from source with `tsx`; they are not published as `dist/scripts`.
176
+
177
+ | File | Purpose |
178
+ | ------------------------------------------ | ------------------------------------ |
179
+ | `scripts/audit-skills.ts` | Skill size and trigger-overlap audit |
180
+ | `scripts/build-dist.ts` | CLI and runtime hook bundler |
181
+ | `scripts/clean-dist.mjs` | Remove generated `dist/` output |
182
+ | `scripts/sync-codex-agents-toml.ts` | Sync Codex agents configuration |
183
+ | `scripts/sync-version.ts` | Sync release version metadata |
184
+ | `scripts/pack-skills.ts` | Standalone skill package builder |
185
+ | `scripts/check-skills-publish.ts` | Standalone skill package verifier |
186
+ | `scripts/skill-packaging.ts` | Shared skill packaging helpers |
187
+ | `scripts/openclaw/build.ts` | OpenClaw esbuild bundler |
188
+ | `scripts/openclaw/pack-openclaw.ts` | OpenClaw packaging |
189
+ | `scripts/openclaw/verify-openclaw-dist.ts` | Verify OpenClaw dist completeness |
190
+
191
+ ## Runtime Hook Scripts
192
+
193
+ Hook scripts live under `src/hooks/` and are bundled into `dist/hooks/` for published runtime use. Maintenance scripts live under `scripts/` and run from source with `tsx`; they are not published as `dist/scripts`.
194
+
195
+ | Source file | Bundled output | Purpose |
196
+ | ---------------------------------- | ----------------------------------- | ---------------------- |
197
+ | `src/hooks/cleanup-claude-cache.ts` | `dist/hooks/fec-cleanup-claude-cache.js` | Cache cleanup |
198
+ | `src/hooks/run-tests.ts` | `dist/hooks/fec-run-tests.js` | Test runner helper |
199
+ | `src/hooks/format-changed-file.ts` | `dist/hooks/fec-format-changed-file.js` | Format changed files |
200
+ | `src/hooks/security-check.ts` | `dist/hooks/fec-security-check.js` | Security scanning |
201
+ | `src/hooks/notify.ts` | `dist/hooks/fec-notify.js` | Notification script |
202
+ | `src/hooks/session-start.ts` | `dist/hooks/fec-session-start.js` | Session initialization |
203
+
204
+ ## Architecture Overview
205
+
206
+ The universal installer follows this architecture:
207
+
208
+ ```
209
+ bin/frontend-craft.ts
210
+ └─ src/install/cli.ts # CLI entry (parse commands: install/list/version/uninstall)
211
+ ├─ src/install/registry.ts # Runtime registry (names + installer map)
212
+ ├─ src/install/converters/ # Per-runtime adapters (claude, codex, cursor, copilot, etc.)
213
+ ├─ src/install/interactive.ts # Interactive wizard (runtime/location prompts)
214
+ ├─ src/install/runtime-homes.ts # Global/local directory conventions
215
+ └─ src/install/types.ts # Shared TypeScript types
216
+ ```
217
+
218
+ Each runtime converter under `src/install/converters/` implements the `InstallContext` interface from `types.ts`, writing skills, agents, commands, hooks, and templates to the target runtime's configuration directory.
219
+
220
+ ## Branch Strategy
221
+
222
+ - `main` - stable release branch.
223
+ - `develop` - development branch, if used.
224
+ - `feature/<name>` - new features.
225
+ - `fix/<name>` - bug fixes.
226
+ - `docs/<name>` - documentation updates.
227
+
228
+ ## Commit Convention
229
+
230
+ Use [Conventional Commits](https://www.conventionalcommits.org/):
231
+
232
+ ```text
233
+ <type>(<scope>): <description>
234
+
235
+ [optional body]
236
+ [optional footer]
237
+ ```
238
+
239
+ Common types:
240
+
241
+ | Type | Meaning |
242
+ | ---------- | ------------------------------ |
243
+ | `feat` | New feature |
244
+ | `fix` | Bug fix |
245
+ | `docs` | Documentation |
246
+ | `refactor` | Refactoring |
247
+ | `test` | Tests |
248
+ | `chore` | Build, tooling, or maintenance |
249
+
250
+ Examples:
251
+
252
+ ```text
253
+ feat(skills): add e2e testing skill
254
+ fix(hooks): resolve Windows path handling
255
+ docs(readme): update installation steps
256
+ ```
257
+
258
+ ## Language and Documentation Policy
259
+
260
+ English is the source language for public project governance, runtime documentation, release notes, and GitHub collaboration templates. Localized README files should stay user-focused and link back to English docs for detailed contributor or maintainer workflows.
261
+
262
+ When a pull request changes public behavior, installation steps, runtimes, agents, skills, commands, or hooks:
263
+
264
+ - Update `README.md` and `CHANGELOG.md` first (and [`CHANGELOG.zh-CN.md`](CHANGELOG.zh-CN.md) when the change is release-noteworthy for Chinese readers).
265
+ - Sync user-facing summaries in `README.zh-CN.md`, `docs/zh-TW/README.md`, `docs/ja-JP/README.md`, and `docs/ko-KR/README.md` when the change affects users.
266
+ - Claude Code Marketplace install and update steps are maintained in [`docs/runtimes/claude.md`](docs/runtimes/claude.md) and [`docs/runtimes/claude.zh-CN.md`](docs/runtimes/claude.zh-CN.md). When that flow changes, update those files (the root README and localized READMEs only link there).
267
+ - If translations cannot be completed in the same pull request, open or link a follow-up issue and mention it in the PR description.
268
+ - Keep code examples, runtime names, command names, file paths, and package names consistent across languages.
269
+
270
+ Issues and pull requests are easiest to review in English. If you are more comfortable writing in Chinese, that is also welcome; maintainers can help translate titles and summaries when needed.
271
+
272
+ ## Adding a Skill
273
+
274
+ 1. Create a directory under `skills/`, for example `skills/fec-my-skill/`.
275
+ 2. Add `SKILL.md` with YAML frontmatter and concise instructions:
276
+
277
+ ```markdown
278
+ ---
279
+ name: fec-my-skill
280
+ description: Use when the user needs ...
281
+ ---
282
+
283
+ # Skill Title
284
+
285
+ ## When to Use
286
+
287
+ - ...
288
+
289
+ ## Core Rules
290
+
291
+ - ...
292
+ ```
293
+
294
+ 3. Add an entry to `skills/metadata.json` with `id`, display `name`, taxonomy `category`, `tags`, `summary`, publish metadata, `keywords`, and `platforms`. The `version`, `license`, `homepage`, and `repository` fields should match `package.json`.
295
+ 4. Add positive and negative trigger examples to `skills/eval_queries.json`.
296
+ 5. Add the skill to the Skills table in `README.md`.
297
+ 6. Update the repository tree in `README.md` and localized README files if the visible structure changes.
298
+ 7. Run `pnpm test`, `pnpm run pack:skills`, and `pnpm run check:skills-publish`.
299
+
300
+ ## Adding an Agent
301
+
302
+ 1. Create `agents/my-agent.md`.
303
+ 2. Define the YAML frontmatter:
304
+
305
+ ```markdown
306
+ ---
307
+ name: my-agent
308
+ description: Use this agent when ...
309
+ tools: Read, Edit, Write, Glob, Grep, Bash
310
+ model: sonnet
311
+ skills:
312
+ - relevant-skill
313
+ ---
314
+ ```
315
+
316
+ 1. Update the Agents table in `README.md`.
317
+ 2. Sync `README.zh-CN.md`, `docs/*/README.md`, and `.claude-plugin/marketplace.json` when counts or user-facing descriptions change.
318
+
319
+ ## Adding a Command
320
+
321
+ 1. Create `commands/my-command.md`.
322
+ 2. Use YAML frontmatter and Markdown steps.
323
+ 3. Update the Commands table in `README.md` and localized user-facing summaries as needed.
324
+
325
+ ## Adding a Rule Template
326
+
327
+ 1. Create `templates/shared/rules/my-rule.md`.
328
+ 2. Add it to the copy list in `commands/fec-init.md`.
329
+ 3. Update `templates/claude/CLAUDE.md` rule import examples when applicable.
330
+
331
+ ## Universal Installer
332
+
333
+ - Entry point: `bin/frontend-craft.ts` (compiled to `dist/bin/frontend-craft.js`).
334
+ - Implementation: `src/install/` (converters, registry, path helpers).
335
+ - Interactive prompts and input parsing: `src/install/interactive.ts` (tests may set `FRONTEND_CRAFT_FORCE_INTERACTIVE=1` to exercise stdin-fed prompts).
336
+ - Register a new runtime in `src/install/registry.ts`.
337
+ - Add the runtime installer under `src/install/converters/`.
338
+ - Follow global directory conventions from `src/install/runtime-homes.ts`.
339
+ - Add or update tests under `tests/install/`.
340
+
341
+ ## Adding a Hook
342
+
343
+ 1. Update `hooks/hooks.json`.
344
+ 2. Put runtime hook scripts under `src/hooks/` and prefer cross-platform Node.js.
345
+ 3. Add each new hook entrypoint to `scripts/build-dist.ts` so `pnpm run build` bundles it into `dist/hooks/`.
346
+ 4. In `hooks/hooks.json`, use **`${CLAUDE_PLUGIN_ROOT}/dist/hooks/<script>.js`** for bundled hook entrypoints (Claude Code substitutes the root at runtime; see the official [Plugins reference](https://code.claude.com/docs/en/plugins-reference)). The Claude installer in this repo also expands **`${CLAUDE_PLUGIN_ROOT}`** and legacy **`${FRONTEND_CRAFT_ROOT}`** to absolute paths when it merges CLI-managed hook entries into `.claude/settings.json`. The source `hooks/hooks.json` remains the native plugin hook configuration.
347
+ 5. Keep repository maintenance scripts under `scripts/`; do not reference them directly from runtime hook configuration.
348
+ 6. Update the Hooks table in `README.md`.
349
+
350
+ ## Pull Request Checklist
351
+
352
+ Before opening a pull request:
353
+
354
+ - [ ] The change is scoped and described clearly.
355
+ - [ ] `pnpm test` passes.
356
+ - [ ] Skill changes pass `pnpm run audit:skills`, `pnpm run pack:skills`, and `pnpm run check:skills-publish`.
357
+ - [ ] `pnpm run typecheck:openclaw` and `pnpm run pack:openclaw` pass when OpenClaw code or templates are affected.
358
+ - [ ] `README.md` and `CHANGELOG.md` are updated when user-facing behavior changes (and `CHANGELOG.zh-CN.md` when you ship Chinese-facing release notes).
359
+ - [ ] Localized README files are synced, or a follow-up translation issue is linked.
360
+ - [ ] New runtime, agent, skill, command, hook, or template changes include relevant tests or dry-run coverage.
361
+ - [ ] Release packaging changes pass `pnpm run pack:all` or are covered by the `prepublishOnly` publish gate.
362
+ - [ ] Security-sensitive changes have been reviewed against `SECURITY.md`.
363
+
364
+ ## Code Style
365
+
366
+ - Prefer clear Markdown with stable headings and tables.
367
+ - Keep skill and agent descriptions concise because model routing depends on them.
368
+ - Use cross-platform Node.js scripts for automation.
369
+ - Avoid shell-specific assumptions unless a runtime explicitly requires them.
370
+
371
+ ## Reporting Issues
372
+
373
+ Use [GitHub Issues](https://github.com/bovinphang/frontend-craft/issues) for bugs and feature requests. Include the runtime, operating system, Node.js version, exact command, expected behavior, and actual behavior whenever possible.
374
+
375
+ Do not file security-sensitive vulnerabilities as public issues. Follow [SECURITY.md](SECURITY.md) instead.
376
+
377
+ When changing review or diagram capabilities, synchronize scope defaults, natural-language examples, tool prerequisites, QA limits, and coverage reporting across README translations and runtime guides. See [review scope and technical diagram delivery](docs/review-and-diagram-workflows.md).
378
+
379
+ ## Maintaining common content
380
+
381
+ `cc-*` skills and embedded common methods are generated from the exact `@bovinphang/craft-common@2.0.0` dependency. Change the upstream common package first, prepare its corresponding package, then run `pnpm run sync:common`. Review `common-content.lock.json` and both language snapshots, then run `pnpm run check:common` and `pnpm lint`. Do not edit generated common content directly. Frontend domain skills, metadata and Chinese mirrors remain maintained here. See [project structure](docs/project-structure.md) and [common migration](docs/common-migration.md).