universal-dev-standards 4.2.0 → 5.0.0-beta.10

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 (542) hide show
  1. package/README.md +3 -3
  2. package/bin/uds.js +165 -5
  3. package/bundled/core/acceptance-test-driven-development.md +19 -721
  4. package/bundled/core/accessibility-standards.md +862 -0
  5. package/bundled/core/ai-agreement-standards.md +95 -0
  6. package/bundled/core/ai-friendly-architecture.md +2 -0
  7. package/bundled/core/ai-instruction-standards.md +2 -0
  8. package/bundled/core/anti-hallucination.md +90 -637
  9. package/bundled/core/behavior-driven-development.md +20 -735
  10. package/bundled/core/changelog-standards.md +4 -0
  11. package/bundled/core/checkin-standards.md +21 -4
  12. package/bundled/core/code-review-checklist.md +3 -0
  13. package/bundled/core/commit-message-guide.md +14 -3
  14. package/bundled/core/deployment-standards.md +296 -0
  15. package/bundled/core/developer-memory.md +568 -0
  16. package/bundled/core/documentation-structure.md +114 -18
  17. package/bundled/core/documentation-writing-standards.md +272 -2
  18. package/bundled/core/error-code-standards.md +3 -0
  19. package/bundled/core/forward-derivation-standards.md +134 -8
  20. package/bundled/core/git-workflow.md +72 -686
  21. package/bundled/core/guides/anti-hallucination-guide.md +517 -0
  22. package/bundled/core/guides/git-workflow-guide.md +954 -0
  23. package/bundled/core/guides/performance-guide.md +508 -0
  24. package/bundled/core/guides/refactoring-guide.md +608 -0
  25. package/bundled/core/guides/security-guide.md +485 -0
  26. package/bundled/core/logging-standards.md +337 -2
  27. package/bundled/core/performance-standards.md +231 -0
  28. package/bundled/core/project-context-memory.md +180 -0
  29. package/bundled/core/project-structure.md +315 -2
  30. package/bundled/core/refactoring-standards.md +81 -761
  31. package/bundled/core/requirement-engineering.md +39 -0
  32. package/bundled/core/reverse-engineering-standards.md +6 -4
  33. package/bundled/core/security-standards.md +244 -0
  34. package/bundled/core/spec-driven-development.md +20 -319
  35. package/bundled/core/test-completeness-dimensions.md +213 -11
  36. package/bundled/core/test-driven-development.md +22 -978
  37. package/bundled/core/testing-standards.md +222 -2903
  38. package/bundled/core/versioning.md +16 -55
  39. package/bundled/core/virtual-organization-standards.md +85 -0
  40. package/bundled/locales/README.md +4 -4
  41. package/bundled/locales/zh-CN/CHANGELOG.md +18 -18
  42. package/bundled/locales/zh-CN/CLAUDE.md +3 -3
  43. package/bundled/locales/zh-CN/MAINTENANCE.md +7 -7
  44. package/bundled/locales/zh-CN/README.md +2 -2
  45. package/bundled/locales/zh-CN/STANDARDS-MAPPING.md +1 -1
  46. package/bundled/locales/zh-CN/adoption/ADOPTION-GUIDE.md +3 -3
  47. package/bundled/locales/zh-CN/adoption/DAILY-WORKFLOW-GUIDE.md +66 -7
  48. package/bundled/locales/zh-CN/adoption/STATIC-DYNAMIC-GUIDE.md +22 -22
  49. package/bundled/locales/zh-CN/adoption/checklists/enterprise.md +5 -5
  50. package/bundled/locales/zh-CN/adoption/checklists/minimal.md +4 -4
  51. package/bundled/locales/zh-CN/adoption/checklists/recommended.md +5 -5
  52. package/bundled/locales/zh-CN/ai/MAINTENANCE.md +13 -13
  53. package/bundled/locales/zh-CN/core/ai-instruction-standards.md +1 -1
  54. package/bundled/locales/zh-CN/core/anti-hallucination.md +39 -3
  55. package/bundled/locales/zh-CN/core/checkin-standards.md +18 -5
  56. package/bundled/locales/zh-CN/core/commit-message-guide.md +1 -1
  57. package/bundled/locales/zh-CN/core/developer-memory.md +576 -0
  58. package/bundled/locales/zh-CN/core/documentation-structure.md +43 -5
  59. package/bundled/locales/zh-CN/core/documentation-writing-standards.md +146 -5
  60. package/bundled/locales/zh-CN/core/git-workflow.md +179 -4
  61. package/bundled/locales/zh-CN/core/logging-standards.md +177 -4
  62. package/bundled/locales/zh-CN/core/project-structure.md +117 -5
  63. package/bundled/locales/zh-CN/core/refactoring-standards.md +3 -3
  64. package/bundled/locales/zh-CN/core/reverse-engineering-standards.md +6 -6
  65. package/bundled/locales/zh-CN/core/spec-driven-development.md +516 -14
  66. package/bundled/locales/zh-CN/core/test-completeness-dimensions.md +155 -24
  67. package/bundled/locales/zh-CN/core/test-driven-development.md +71 -20
  68. package/bundled/locales/zh-CN/core/testing-standards.md +4 -4
  69. package/bundled/locales/zh-CN/core/versioning.md +1 -1
  70. package/bundled/locales/zh-CN/docs/AI-AGENT-ROADMAP.md +90 -51
  71. package/bundled/locales/zh-CN/docs/CHEATSHEET.md +184 -0
  72. package/bundled/locales/zh-CN/docs/CLI-FLOW.md +239 -0
  73. package/bundled/locales/zh-CN/docs/FEATURE-REFERENCE.md +320 -0
  74. package/bundled/locales/zh-CN/docs/OPERATION-WORKFLOW.md +43 -43
  75. package/bundled/locales/zh-CN/docs/STANDARDS-REFERENCE.md +440 -0
  76. package/bundled/locales/zh-CN/docs/USAGE-MODES-COMPARISON.md +1 -1
  77. package/bundled/locales/zh-CN/docs/WINDOWS-GUIDE.md +1 -1
  78. package/bundled/locales/zh-CN/integrations/codex/README.md +3 -3
  79. package/bundled/locales/zh-CN/integrations/gemini-cli/README.md +3 -3
  80. package/bundled/locales/zh-CN/integrations/github-copilot/README.md +5 -5
  81. package/bundled/locales/zh-CN/integrations/github-copilot/copilot-instructions.md +9 -9
  82. package/bundled/locales/zh-CN/integrations/github-copilot/skills-mapping.md +18 -6
  83. package/bundled/locales/zh-CN/integrations/google-antigravity/README.md +2 -2
  84. package/bundled/locales/zh-CN/integrations/opencode/README.md +3 -3
  85. package/bundled/locales/zh-CN/integrations/opencode/skills-mapping.md +22 -10
  86. package/bundled/locales/zh-CN/integrations/openspec/README.md +1 -1
  87. package/bundled/locales/zh-CN/integrations/spec-kit/AGENTS.md +3 -3
  88. package/bundled/locales/zh-CN/integrations/spec-kit/README.md +1 -1
  89. package/bundled/locales/zh-CN/options/commit-message/bilingual.md +1 -1
  90. package/bundled/locales/zh-CN/options/commit-message/english.md +1 -1
  91. package/bundled/locales/zh-CN/options/commit-message/traditional-chinese.md +1 -1
  92. package/bundled/locales/zh-CN/options/git-workflow/gitflow.md +1 -1
  93. package/bundled/locales/zh-CN/options/git-workflow/github-flow.md +1 -1
  94. package/bundled/locales/zh-CN/options/git-workflow/merge-commit.md +1 -1
  95. package/bundled/locales/zh-CN/options/git-workflow/rebase-ff.md +1 -1
  96. package/bundled/locales/zh-CN/options/git-workflow/squash-merge.md +1 -1
  97. package/bundled/locales/zh-CN/options/git-workflow/trunk-based.md +1 -1
  98. package/bundled/locales/zh-CN/options/project-structure/dotnet.md +1 -1
  99. package/bundled/locales/zh-CN/options/project-structure/go.md +1 -1
  100. package/bundled/locales/zh-CN/options/project-structure/java.md +1 -1
  101. package/bundled/locales/zh-CN/options/project-structure/nodejs.md +1 -1
  102. package/bundled/locales/zh-CN/options/project-structure/python.md +1 -1
  103. package/bundled/locales/zh-CN/options/testing/e2e-testing.md +1 -1
  104. package/bundled/locales/zh-CN/options/testing/integration-testing.md +1 -1
  105. package/bundled/locales/zh-CN/options/testing/system-testing.md +1 -1
  106. package/bundled/locales/zh-CN/options/testing/unit-testing.md +1 -1
  107. package/bundled/locales/zh-CN/skills/{claude-code/CONTRIBUTING.template.md → CONTRIBUTING.template.md} +2 -2
  108. package/bundled/locales/zh-CN/skills/README.md +131 -81
  109. package/bundled/locales/zh-CN/skills/agents/README.md +281 -0
  110. package/bundled/locales/zh-CN/skills/{claude-code/ai-collaboration-standards → ai-collaboration-standards}/SKILL.md +10 -10
  111. package/bundled/locales/zh-CN/skills/{claude-code/ai-collaboration-standards → ai-collaboration-standards}/anti-hallucination.md +8 -8
  112. package/bundled/locales/zh-CN/skills/{claude-code/ai-collaboration-standards → ai-collaboration-standards}/certainty-labels.md +8 -8
  113. package/bundled/locales/zh-CN/skills/ai-friendly-architecture/SKILL.md +221 -0
  114. package/bundled/locales/zh-CN/skills/ai-instruction-standards/SKILL.md +214 -0
  115. package/bundled/locales/zh-CN/skills/atdd-assistant/SKILL.md +71 -0
  116. package/bundled/locales/zh-CN/skills/atdd-assistant/acceptance-criteria-guide.md +428 -0
  117. package/bundled/locales/zh-CN/skills/atdd-assistant/atdd-workflow.md +484 -0
  118. package/bundled/locales/zh-CN/skills/atdd-assistant/guide.md +368 -0
  119. package/bundled/locales/zh-CN/skills/bdd-assistant/SKILL.md +68 -0
  120. package/bundled/locales/zh-CN/skills/bdd-assistant/bdd-workflow.md +406 -0
  121. package/bundled/locales/zh-CN/skills/bdd-assistant/gherkin-guide.md +454 -0
  122. package/bundled/locales/zh-CN/skills/bdd-assistant/guide.md +324 -0
  123. package/bundled/locales/zh-CN/skills/changelog-guide/SKILL.md +64 -0
  124. package/bundled/locales/zh-CN/skills/{claude-code/changelog-guide/SKILL.md → changelog-guide/guide.md} +6 -7
  125. package/bundled/locales/zh-CN/skills/checkin-assistant/SKILL.md +56 -0
  126. package/bundled/locales/zh-CN/skills/{claude-code/checkin-assistant/SKILL.md → checkin-assistant/guide.md} +6 -7
  127. package/bundled/locales/zh-CN/skills/code-review-assistant/SKILL.md +56 -0
  128. package/bundled/locales/zh-CN/skills/{claude-code/code-review-assistant → code-review-assistant}/checkin-checklist.md +4 -4
  129. package/bundled/locales/zh-CN/skills/{claude-code/code-review-assistant/SKILL.md → code-review-assistant/guide.md} +5 -6
  130. package/bundled/locales/zh-CN/skills/{claude-code/code-review-assistant → code-review-assistant}/review-checklist.md +4 -4
  131. package/bundled/locales/zh-CN/skills/{claude-code/commands → commands}/bdd.md +2 -2
  132. package/bundled/locales/zh-CN/skills/{claude-code/commands → commands}/methodology.md +3 -3
  133. package/bundled/locales/zh-CN/skills/{claude-code/commands → commands}/refactor.md +3 -3
  134. package/bundled/locales/zh-CN/skills/commit-standards/SKILL.md +61 -0
  135. package/bundled/locales/zh-CN/skills/{claude-code/commit-standards → commit-standards}/conventional-commits.md +4 -4
  136. package/bundled/locales/zh-CN/skills/{claude-code/commit-standards/SKILL.md → commit-standards/guide.md} +5 -6
  137. package/bundled/locales/zh-CN/skills/{claude-code/commit-standards → commit-standards}/language-options.md +3 -3
  138. package/bundled/locales/zh-CN/skills/docs-generator/SKILL.md +59 -0
  139. package/bundled/locales/zh-CN/skills/docs-generator/guide.md +262 -0
  140. package/bundled/locales/zh-CN/skills/{claude-code/documentation-guide → documentation-guide}/SKILL.md +7 -8
  141. package/bundled/locales/zh-CN/skills/{claude-code/documentation-guide → documentation-guide}/documentation-structure.md +4 -4
  142. package/bundled/locales/zh-CN/skills/{claude-code/documentation-guide → documentation-guide}/readme-template.md +3 -3
  143. package/bundled/locales/zh-CN/skills/{claude-code/error-code-guide → error-code-guide}/SKILL.md +6 -6
  144. package/bundled/locales/zh-CN/skills/forward-derivation/SKILL.md +62 -0
  145. package/bundled/locales/zh-CN/skills/forward-derivation/guide.md +130 -0
  146. package/bundled/locales/zh-CN/skills/{claude-code/git-workflow-guide → git-workflow-guide}/SKILL.md +6 -6
  147. package/bundled/locales/zh-CN/skills/{claude-code/git-workflow-guide → git-workflow-guide}/branch-naming.md +3 -3
  148. package/bundled/locales/zh-CN/skills/{claude-code/git-workflow-guide → git-workflow-guide}/git-workflow.md +4 -4
  149. package/bundled/locales/zh-CN/skills/{claude-code/logging-guide → logging-guide}/SKILL.md +6 -6
  150. package/bundled/locales/zh-CN/skills/methodology-system/SKILL.md +78 -0
  151. package/bundled/locales/zh-CN/skills/{claude-code/methodology-system → methodology-system}/create-methodology.md +2 -2
  152. package/bundled/locales/zh-CN/skills/{claude-code/methodology-system/SKILL.md → methodology-system/guide.md} +2 -2
  153. package/bundled/locales/zh-CN/skills/{claude-code/methodology-system → methodology-system}/runtime.md +3 -3
  154. package/bundled/locales/zh-CN/skills/project-discovery/SKILL.md +66 -0
  155. package/bundled/locales/zh-CN/skills/project-discovery/guide.md +371 -0
  156. package/bundled/locales/zh-CN/skills/{claude-code/project-structure-guide → project-structure-guide}/SKILL.md +4 -4
  157. package/bundled/locales/zh-CN/skills/{claude-code/project-structure-guide → project-structure-guide}/language-patterns.md +1 -1
  158. package/bundled/locales/zh-CN/skills/refactoring-assistant/SKILL.md +67 -0
  159. package/bundled/locales/zh-CN/skills/{claude-code/refactoring-assistant/SKILL.md → refactoring-assistant/guide.md} +7 -8
  160. package/bundled/locales/zh-CN/skills/release-standards/SKILL.md +64 -0
  161. package/bundled/locales/zh-CN/skills/{claude-code/release-standards → release-standards}/changelog-format.md +3 -3
  162. package/bundled/locales/zh-CN/skills/{claude-code/release-standards/SKILL.md → release-standards/guide.md} +5 -6
  163. package/bundled/locales/zh-CN/skills/{claude-code/release-standards → release-standards}/release-workflow.md +7 -7
  164. package/bundled/locales/zh-CN/skills/{claude-code/release-standards → release-standards}/semantic-versioning.md +3 -3
  165. package/bundled/locales/zh-CN/skills/requirement-assistant/SKILL.md +67 -0
  166. package/bundled/locales/zh-CN/skills/{claude-code/requirement-assistant/SKILL.md → requirement-assistant/guide.md} +4 -5
  167. package/bundled/locales/zh-CN/skills/{claude-code/requirement-assistant → requirement-assistant}/requirement-checklist.md +3 -3
  168. package/bundled/locales/zh-CN/skills/{claude-code/requirement-assistant → requirement-assistant}/requirement-writing.md +3 -3
  169. package/bundled/locales/zh-CN/skills/reverse-engineer/SKILL.md +67 -0
  170. package/bundled/locales/zh-CN/skills/{claude-code/reverse-engineer → reverse-engineer}/bdd-extraction.md +2 -2
  171. package/bundled/locales/zh-CN/skills/{claude-code/reverse-engineer/SKILL.md → reverse-engineer/guide.md} +17 -18
  172. package/bundled/locales/zh-CN/skills/{claude-code/reverse-engineer → reverse-engineer}/tdd-analysis.md +2 -2
  173. package/bundled/locales/zh-CN/skills/{claude-code/reverse-engineer → reverse-engineer}/workflow.md +3 -3
  174. package/bundled/locales/zh-CN/skills/spec-driven-dev/SKILL.md +75 -0
  175. package/bundled/locales/zh-CN/skills/{claude-code/spec-driven-dev/SKILL.md → spec-driven-dev/guide.md} +10 -11
  176. package/bundled/locales/zh-CN/skills/tdd-assistant/SKILL.md +66 -0
  177. package/bundled/locales/zh-CN/skills/{claude-code/tdd-assistant/SKILL.md → tdd-assistant/guide.md} +12 -16
  178. package/bundled/locales/zh-CN/skills/{claude-code/tdd-assistant → tdd-assistant}/language-examples.md +3 -3
  179. package/bundled/locales/zh-CN/skills/{claude-code/tdd-assistant → tdd-assistant}/tdd-workflow.md +3 -3
  180. package/bundled/locales/zh-CN/skills/test-coverage-assistant/SKILL.md +65 -0
  181. package/bundled/locales/zh-CN/skills/test-coverage-assistant/guide.md +284 -0
  182. package/bundled/locales/zh-CN/skills/{claude-code/testing-guide → testing-guide}/SKILL.md +8 -8
  183. package/bundled/locales/zh-CN/skills/{claude-code/testing-guide → testing-guide}/testing-pyramid.md +4 -4
  184. package/bundled/locales/zh-CN/skills/{cline → tools/cline}/README.md +1 -1
  185. package/bundled/locales/zh-CN/skills/{copilot → tools/copilot}/README.md +1 -1
  186. package/bundled/locales/zh-CN/skills/{copilot → tools/copilot}/copilot-instructions.md +1 -1
  187. package/bundled/locales/zh-CN/skills/{cursor → tools/cursor}/README.md +1 -1
  188. package/bundled/locales/zh-CN/skills/{windsurf → tools/windsurf}/README.md +1 -1
  189. package/bundled/locales/zh-TW/CHANGELOG.md +16 -16
  190. package/bundled/locales/zh-TW/CLAUDE.md +3 -3
  191. package/bundled/locales/zh-TW/MAINTENANCE.md +7 -7
  192. package/bundled/locales/zh-TW/README.md +13 -7
  193. package/bundled/locales/zh-TW/STANDARDS-MAPPING.md +1 -1
  194. package/bundled/locales/zh-TW/adoption/ADOPTION-GUIDE.md +4 -4
  195. package/bundled/locales/zh-TW/adoption/DAILY-WORKFLOW-GUIDE.md +66 -7
  196. package/bundled/locales/zh-TW/adoption/STATIC-DYNAMIC-GUIDE.md +22 -22
  197. package/bundled/locales/zh-TW/adoption/checklists/enterprise.md +5 -5
  198. package/bundled/locales/zh-TW/adoption/checklists/minimal.md +4 -4
  199. package/bundled/locales/zh-TW/adoption/checklists/recommended.md +5 -5
  200. package/bundled/locales/zh-TW/ai/MAINTENANCE.md +13 -13
  201. package/bundled/locales/zh-TW/ai/standards/anti-hallucination.ai.yaml +3 -2
  202. package/bundled/locales/zh-TW/ai/standards/git-workflow.ai.yaml +4 -3
  203. package/bundled/locales/zh-TW/ai/standards/spec-driven-development.ai.yaml +3 -3
  204. package/bundled/locales/zh-TW/ai/standards/testing.ai.yaml +1 -0
  205. package/bundled/locales/zh-TW/core/ai-instruction-standards.md +1 -1
  206. package/bundled/locales/zh-TW/core/anti-hallucination.md +38 -701
  207. package/bundled/locales/zh-TW/core/changelog-standards.md +1 -1
  208. package/bundled/locales/zh-TW/core/checkin-standards.md +18 -5
  209. package/bundled/locales/zh-TW/core/code-review-checklist.md +1 -1
  210. package/bundled/locales/zh-TW/core/commit-message-guide.md +1 -1
  211. package/bundled/locales/zh-TW/core/developer-memory.md +576 -0
  212. package/bundled/locales/zh-TW/core/documentation-structure.md +115 -22
  213. package/bundled/locales/zh-TW/core/documentation-writing-standards.md +126 -5
  214. package/bundled/locales/zh-TW/core/forward-derivation-standards.md +2 -2
  215. package/bundled/locales/zh-TW/core/git-workflow.md +38 -812
  216. package/bundled/locales/zh-TW/core/guides/anti-hallucination-guide.md +779 -0
  217. package/bundled/locales/zh-TW/core/guides/git-workflow-guide.md +1016 -0
  218. package/bundled/locales/zh-TW/core/guides/refactoring-guide.md +864 -0
  219. package/bundled/locales/zh-TW/core/guides/testing-guide.md +2280 -0
  220. package/bundled/locales/zh-TW/core/logging-standards.md +159 -4
  221. package/bundled/locales/zh-TW/core/project-structure.md +102 -9
  222. package/bundled/locales/zh-TW/core/refactoring-standards.md +37 -823
  223. package/bundled/locales/zh-TW/core/reverse-engineering-standards.md +6 -6
  224. package/bundled/locales/zh-TW/core/spec-driven-development.md +17 -268
  225. package/bundled/locales/zh-TW/core/test-completeness-dimensions.md +128 -14
  226. package/bundled/locales/zh-TW/core/test-driven-development.md +20 -983
  227. package/bundled/locales/zh-TW/core/testing-standards.md +120 -2105
  228. package/bundled/locales/zh-TW/core/versioning.md +13 -55
  229. package/bundled/locales/zh-TW/docs/AI-AGENT-ROADMAP.md +90 -51
  230. package/bundled/locales/zh-TW/docs/CHEATSHEET.md +184 -0
  231. package/bundled/locales/zh-TW/docs/CLI-FLOW.md +239 -0
  232. package/bundled/locales/zh-TW/docs/FEATURE-REFERENCE.md +320 -0
  233. package/bundled/locales/zh-TW/docs/MIGRATION-V5.md +71 -0
  234. package/bundled/locales/zh-TW/docs/OPERATION-WORKFLOW.md +42 -42
  235. package/bundled/locales/zh-TW/docs/STANDARDS-REFERENCE.md +440 -0
  236. package/bundled/locales/zh-TW/docs/USAGE-MODES-COMPARISON.md +1 -1
  237. package/bundled/locales/zh-TW/docs/WINDOWS-GUIDE.md +1 -1
  238. package/bundled/locales/zh-TW/integrations/claude-code/README.md +44 -0
  239. package/bundled/locales/zh-TW/integrations/github-copilot/copilot-instructions.md +3 -3
  240. package/bundled/locales/zh-TW/integrations/github-copilot/skills-mapping.md +18 -6
  241. package/bundled/locales/zh-TW/integrations/opencode/skills-mapping.md +22 -10
  242. package/bundled/locales/zh-TW/methodologies/guides/sdd-guide.md +338 -0
  243. package/bundled/locales/zh-TW/methodologies/guides/tdd-guide.md +1055 -0
  244. package/bundled/locales/zh-TW/options/commit-message/bilingual.md +1 -1
  245. package/bundled/locales/zh-TW/options/commit-message/english.md +1 -1
  246. package/bundled/locales/zh-TW/options/commit-message/traditional-chinese.md +1 -1
  247. package/bundled/locales/zh-TW/options/git-workflow/gitflow.md +1 -1
  248. package/bundled/locales/zh-TW/options/git-workflow/github-flow.md +1 -1
  249. package/bundled/locales/zh-TW/options/git-workflow/merge-commit.md +1 -1
  250. package/bundled/locales/zh-TW/options/git-workflow/rebase-ff.md +1 -1
  251. package/bundled/locales/zh-TW/options/git-workflow/squash-merge.md +1 -1
  252. package/bundled/locales/zh-TW/options/git-workflow/trunk-based.md +1 -1
  253. package/bundled/locales/zh-TW/options/project-structure/dotnet.md +1 -1
  254. package/bundled/locales/zh-TW/options/project-structure/go.md +1 -1
  255. package/bundled/locales/zh-TW/options/project-structure/java.md +1 -1
  256. package/bundled/locales/zh-TW/options/project-structure/nodejs.md +1 -1
  257. package/bundled/locales/zh-TW/options/project-structure/python.md +1 -1
  258. package/bundled/locales/zh-TW/options/testing/e2e-testing.md +1 -1
  259. package/bundled/locales/zh-TW/options/testing/integration-testing.md +1 -1
  260. package/bundled/locales/zh-TW/options/testing/system-testing.md +1 -1
  261. package/bundled/locales/zh-TW/options/testing/unit-testing.md +1 -1
  262. package/bundled/locales/zh-TW/skills/{claude-code/CONTRIBUTING.template.md → CONTRIBUTING.template.md} +2 -2
  263. package/bundled/locales/zh-TW/skills/README.md +131 -79
  264. package/bundled/locales/zh-TW/skills/agents/README.md +281 -0
  265. package/bundled/locales/zh-TW/skills/{claude-code/ai-collaboration-standards → ai-collaboration-standards}/SKILL.md +7 -7
  266. package/bundled/locales/zh-TW/skills/{claude-code/ai-collaboration-standards → ai-collaboration-standards}/anti-hallucination.md +8 -8
  267. package/bundled/locales/zh-TW/skills/{claude-code/ai-collaboration-standards → ai-collaboration-standards}/certainty-labels.md +8 -8
  268. package/bundled/locales/zh-TW/skills/ai-friendly-architecture/SKILL.md +221 -0
  269. package/bundled/locales/zh-TW/skills/ai-instruction-standards/SKILL.md +214 -0
  270. package/bundled/locales/zh-TW/skills/atdd-assistant/SKILL.md +71 -0
  271. package/bundled/locales/zh-TW/skills/atdd-assistant/acceptance-criteria-guide.md +428 -0
  272. package/bundled/locales/zh-TW/skills/atdd-assistant/atdd-workflow.md +484 -0
  273. package/bundled/locales/zh-TW/skills/atdd-assistant/guide.md +368 -0
  274. package/bundled/locales/zh-TW/skills/bdd-assistant/SKILL.md +68 -0
  275. package/bundled/locales/zh-TW/skills/bdd-assistant/bdd-workflow.md +406 -0
  276. package/bundled/locales/zh-TW/skills/bdd-assistant/gherkin-guide.md +454 -0
  277. package/bundled/locales/zh-TW/skills/bdd-assistant/guide.md +324 -0
  278. package/bundled/locales/zh-TW/skills/changelog-guide/SKILL.md +64 -0
  279. package/bundled/locales/zh-TW/skills/{claude-code/changelog-guide/SKILL.md → changelog-guide/guide.md} +6 -7
  280. package/bundled/locales/zh-TW/skills/checkin-assistant/SKILL.md +56 -0
  281. package/bundled/locales/zh-TW/skills/{claude-code/checkin-assistant/SKILL.md → checkin-assistant/guide.md} +6 -7
  282. package/bundled/locales/zh-TW/skills/code-review-assistant/SKILL.md +56 -0
  283. package/bundled/locales/zh-TW/skills/{claude-code/code-review-assistant → code-review-assistant}/checkin-checklist.md +4 -4
  284. package/bundled/locales/zh-TW/skills/{claude-code/code-review-assistant/SKILL.md → code-review-assistant/guide.md} +2 -3
  285. package/bundled/locales/zh-TW/skills/{claude-code/code-review-assistant → code-review-assistant}/review-checklist.md +4 -4
  286. package/bundled/locales/zh-TW/skills/{claude-code/commands → commands}/bdd.md +2 -2
  287. package/bundled/locales/zh-TW/skills/{claude-code/commands → commands}/methodology.md +3 -3
  288. package/bundled/locales/zh-TW/skills/{claude-code/commands → commands}/refactor.md +3 -3
  289. package/bundled/locales/zh-TW/skills/commit-standards/SKILL.md +61 -0
  290. package/bundled/locales/zh-TW/skills/{claude-code/commit-standards → commit-standards}/conventional-commits.md +4 -4
  291. package/bundled/locales/zh-TW/skills/{claude-code/commit-standards/SKILL.md → commit-standards/guide.md} +5 -6
  292. package/bundled/locales/zh-TW/skills/{claude-code/commit-standards → commit-standards}/language-options.md +3 -3
  293. package/bundled/locales/zh-TW/skills/docs-generator/SKILL.md +59 -0
  294. package/bundled/locales/zh-TW/skills/docs-generator/guide.md +262 -0
  295. package/bundled/locales/zh-TW/skills/{claude-code/documentation-guide → documentation-guide}/SKILL.md +7 -8
  296. package/bundled/locales/zh-TW/skills/{claude-code/documentation-guide → documentation-guide}/documentation-structure.md +4 -4
  297. package/bundled/locales/zh-TW/skills/{claude-code/documentation-guide → documentation-guide}/readme-template.md +3 -3
  298. package/bundled/locales/zh-TW/skills/{claude-code/error-code-guide → error-code-guide}/SKILL.md +6 -6
  299. package/bundled/locales/zh-TW/skills/forward-derivation/SKILL.md +62 -0
  300. package/bundled/locales/zh-TW/skills/{claude-code/forward-derivation/SKILL.md → forward-derivation/guide.md} +24 -19
  301. package/bundled/locales/zh-TW/skills/{claude-code/git-workflow-guide → git-workflow-guide}/SKILL.md +3 -3
  302. package/bundled/locales/zh-TW/skills/{claude-code/git-workflow-guide → git-workflow-guide}/branch-naming.md +3 -3
  303. package/bundled/locales/zh-TW/skills/{claude-code/git-workflow-guide → git-workflow-guide}/git-workflow.md +4 -4
  304. package/bundled/locales/zh-TW/skills/{claude-code/logging-guide → logging-guide}/SKILL.md +6 -6
  305. package/bundled/locales/zh-TW/skills/methodology-system/SKILL.md +78 -0
  306. package/bundled/locales/zh-TW/skills/{claude-code/methodology-system → methodology-system}/create-methodology.md +2 -2
  307. package/bundled/locales/zh-TW/skills/{claude-code/methodology-system/SKILL.md → methodology-system/guide.md} +2 -2
  308. package/bundled/locales/zh-TW/skills/{claude-code/methodology-system → methodology-system}/runtime.md +3 -3
  309. package/bundled/locales/zh-TW/skills/project-discovery/SKILL.md +66 -0
  310. package/bundled/locales/zh-TW/skills/project-discovery/guide.md +371 -0
  311. package/bundled/locales/zh-TW/skills/project-discovery/workflow.md +574 -0
  312. package/bundled/locales/zh-TW/skills/{claude-code/project-structure-guide → project-structure-guide}/SKILL.md +4 -4
  313. package/bundled/locales/zh-TW/skills/{claude-code/project-structure-guide → project-structure-guide}/language-patterns.md +1 -1
  314. package/bundled/locales/zh-TW/skills/refactoring-assistant/SKILL.md +67 -0
  315. package/bundled/locales/zh-TW/skills/{claude-code/refactoring-assistant/SKILL.md → refactoring-assistant/guide.md} +7 -8
  316. package/bundled/locales/zh-TW/skills/release-standards/SKILL.md +64 -0
  317. package/bundled/locales/zh-TW/skills/{claude-code/release-standards → release-standards}/changelog-format.md +3 -3
  318. package/bundled/locales/zh-TW/skills/{claude-code/release-standards/SKILL.md → release-standards/guide.md} +2 -3
  319. package/bundled/locales/zh-TW/skills/{claude-code/release-standards → release-standards}/release-workflow.md +60 -28
  320. package/bundled/locales/zh-TW/skills/{claude-code/release-standards → release-standards}/semantic-versioning.md +3 -3
  321. package/bundled/locales/zh-TW/skills/requirement-assistant/SKILL.md +67 -0
  322. package/bundled/locales/zh-TW/skills/{claude-code/requirement-assistant/SKILL.md → requirement-assistant/guide.md} +2 -3
  323. package/bundled/locales/zh-TW/skills/{claude-code/requirement-assistant → requirement-assistant}/requirement-checklist.md +3 -3
  324. package/bundled/locales/zh-TW/skills/{claude-code/requirement-assistant → requirement-assistant}/requirement-writing.md +3 -3
  325. package/bundled/locales/zh-TW/skills/reverse-engineer/SKILL.md +67 -0
  326. package/bundled/locales/zh-TW/skills/{claude-code/reverse-engineer → reverse-engineer}/bdd-extraction.md +2 -2
  327. package/bundled/locales/zh-TW/skills/{claude-code/reverse-engineer/SKILL.md → reverse-engineer/guide.md} +17 -18
  328. package/bundled/locales/zh-TW/skills/{claude-code/reverse-engineer → reverse-engineer}/tdd-analysis.md +2 -2
  329. package/bundled/locales/zh-TW/skills/{claude-code/reverse-engineer → reverse-engineer}/workflow.md +3 -3
  330. package/bundled/locales/zh-TW/skills/spec-driven-dev/SKILL.md +75 -0
  331. package/bundled/locales/zh-TW/skills/{claude-code/spec-driven-dev/SKILL.md → spec-driven-dev/guide.md} +9 -10
  332. package/bundled/locales/zh-TW/skills/tdd-assistant/SKILL.md +66 -0
  333. package/bundled/locales/zh-TW/skills/{claude-code/tdd-assistant/SKILL.md → tdd-assistant/guide.md} +9 -10
  334. package/bundled/locales/zh-TW/skills/{claude-code/tdd-assistant → tdd-assistant}/language-examples.md +3 -3
  335. package/bundled/locales/zh-TW/skills/{claude-code/tdd-assistant → tdd-assistant}/tdd-workflow.md +3 -3
  336. package/bundled/locales/zh-TW/skills/test-coverage-assistant/SKILL.md +65 -0
  337. package/bundled/locales/zh-TW/skills/{claude-code/test-coverage-assistant/SKILL.md → test-coverage-assistant/guide.md} +27 -24
  338. package/bundled/locales/zh-TW/skills/{claude-code/testing-guide → testing-guide}/SKILL.md +6 -6
  339. package/bundled/locales/zh-TW/skills/{claude-code/testing-guide → testing-guide}/testing-pyramid.md +4 -4
  340. package/bundled/locales/zh-TW/skills/{cline → tools/cline}/README.md +1 -1
  341. package/bundled/locales/zh-TW/skills/{copilot → tools/copilot}/README.md +1 -1
  342. package/bundled/locales/zh-TW/skills/{copilot → tools/copilot}/copilot-instructions.md +1 -1
  343. package/bundled/locales/zh-TW/skills/{cursor → tools/cursor}/README.md +1 -1
  344. package/bundled/locales/zh-TW/skills/{windsurf → tools/windsurf}/README.md +1 -1
  345. package/bundled/skills/INTEGRATION-GUIDE.md +210 -0
  346. package/bundled/skills/README.md +95 -0
  347. package/bundled/skills/_shared/README.md +60 -0
  348. package/bundled/skills/{claude-code/agents → agents}/README.md +2 -2
  349. package/bundled/skills/{claude-code/agents → agents}/code-architect.md +1 -1
  350. package/bundled/skills/{claude-code/agents → agents}/doc-writer.md +1 -1
  351. package/bundled/skills/{claude-code/agents → agents}/reviewer.md +1 -1
  352. package/bundled/skills/{claude-code/agents → agents}/spec-analyst.md +1 -1
  353. package/bundled/skills/{claude-code/agents → agents}/test-specialist.md +1 -1
  354. package/bundled/skills/{claude-code/ai-collaboration-standards → ai-collaboration-standards}/SKILL.md +28 -5
  355. package/bundled/skills/{claude-code/ai-collaboration-standards → ai-collaboration-standards}/anti-hallucination.md +24 -5
  356. package/bundled/skills/{claude-code/ai-collaboration-standards → ai-collaboration-standards}/certainty-labels.md +31 -6
  357. package/bundled/skills/ai-friendly-architecture/SKILL.md +216 -0
  358. package/bundled/skills/ai-instruction-standards/SKILL.md +209 -0
  359. package/bundled/skills/atdd-assistant/SKILL.md +74 -0
  360. package/bundled/skills/{claude-code/atdd-assistant → atdd-assistant}/acceptance-criteria-guide.md +1 -1
  361. package/bundled/skills/{claude-code/atdd-assistant → atdd-assistant}/atdd-workflow.md +1 -1
  362. package/bundled/skills/{claude-code/atdd-assistant/SKILL.md → atdd-assistant/guide.md} +11 -11
  363. package/bundled/skills/bdd-assistant/SKILL.md +70 -0
  364. package/bundled/skills/{claude-code/bdd-assistant → bdd-assistant}/bdd-workflow.md +1 -1
  365. package/bundled/skills/{claude-code/bdd-assistant → bdd-assistant}/gherkin-guide.md +1 -1
  366. package/bundled/skills/{claude-code/bdd-assistant/SKILL.md → bdd-assistant/guide.md} +11 -11
  367. package/bundled/skills/changelog-guide/SKILL.md +66 -0
  368. package/bundled/skills/{claude-code/changelog-guide/SKILL.md → changelog-guide/guide.md} +8 -6
  369. package/bundled/skills/checkin-assistant/SKILL.md +52 -0
  370. package/bundled/skills/{claude-code/checkin-assistant/SKILL.md → checkin-assistant/guide.md} +6 -6
  371. package/bundled/skills/code-review-assistant/SKILL.md +53 -0
  372. package/bundled/skills/{claude-code/code-review-assistant → code-review-assistant}/checkin-checklist.md +3 -3
  373. package/bundled/skills/{claude-code/code-review-assistant/SKILL.md → code-review-assistant/guide.md} +7 -5
  374. package/bundled/skills/{claude-code/code-review-assistant → code-review-assistant}/review-checklist.md +3 -3
  375. package/bundled/skills/commands/COMMAND-FAMILY-OVERVIEW.md +290 -0
  376. package/bundled/skills/{claude-code/commands → commands}/README.md +13 -3
  377. package/bundled/skills/{claude-code/commands → commands}/atdd.md +3 -3
  378. package/bundled/skills/{claude-code/commands → commands}/bdd.md +2 -2
  379. package/bundled/skills/commands/changelog.md +58 -0
  380. package/bundled/skills/{claude-code/commands → commands}/check.md +1 -1
  381. package/bundled/skills/commands/checkin.md +53 -0
  382. package/bundled/skills/{claude-code/commands → commands}/commit.md +3 -3
  383. package/bundled/skills/{claude-code/commands → commands}/config.md +1 -1
  384. package/bundled/skills/{claude-code/commands → commands}/coverage.md +5 -4
  385. package/bundled/skills/commands/derive-all.md +53 -0
  386. package/bundled/skills/commands/derive-atdd.md +49 -0
  387. package/bundled/skills/commands/derive-bdd.md +47 -0
  388. package/bundled/skills/commands/derive-tdd.md +48 -0
  389. package/bundled/skills/commands/derive.md +72 -0
  390. package/bundled/skills/commands/discover.md +80 -0
  391. package/bundled/skills/commands/docgen.md +61 -0
  392. package/bundled/skills/commands/docs.md +59 -0
  393. package/bundled/skills/commands/guide.md +44 -0
  394. package/bundled/skills/{claude-code/commands → commands}/init.md +2 -2
  395. package/bundled/skills/{claude-code/commands → commands}/methodology.md +32 -16
  396. package/bundled/skills/{claude-code/commands → commands}/refactor.md +2 -2
  397. package/bundled/skills/commands/release.md +56 -0
  398. package/bundled/skills/{claude-code/commands → commands}/requirement.md +3 -3
  399. package/bundled/skills/commands/reverse-bdd.md +47 -0
  400. package/bundled/skills/commands/reverse-sdd.md +51 -0
  401. package/bundled/skills/commands/reverse-tdd.md +51 -0
  402. package/bundled/skills/commands/reverse.md +63 -0
  403. package/bundled/skills/{claude-code/commands → commands}/review.md +3 -3
  404. package/bundled/skills/commands/sdd.md +135 -0
  405. package/bundled/skills/{claude-code/commands → commands}/tdd.md +3 -3
  406. package/bundled/skills/{claude-code/commands → commands}/update.md +2 -2
  407. package/bundled/skills/commit-standards/SKILL.md +60 -0
  408. package/bundled/skills/{claude-code/commit-standards → commit-standards}/conventional-commits.md +3 -3
  409. package/bundled/skills/{claude-code/commit-standards/SKILL.md → commit-standards/guide.md} +17 -5
  410. package/bundled/skills/{claude-code/commit-standards → commit-standards}/language-options.md +2 -2
  411. package/bundled/skills/docs-generator/SKILL.md +69 -0
  412. package/bundled/skills/docs-generator/guide.md +258 -0
  413. package/bundled/skills/{claude-code/documentation-guide → documentation-guide}/SKILL.md +7 -7
  414. package/bundled/skills/{claude-code/documentation-guide → documentation-guide}/documentation-structure.md +3 -3
  415. package/bundled/skills/{claude-code/documentation-guide → documentation-guide}/readme-template.md +2 -2
  416. package/bundled/skills/{claude-code/error-code-guide → error-code-guide}/SKILL.md +7 -5
  417. package/bundled/skills/forward-derivation/SKILL.md +61 -0
  418. package/bundled/skills/{claude-code/forward-derivation/SKILL.md → forward-derivation/guide.md} +44 -29
  419. package/bundled/skills/{claude-code/git-workflow-guide → git-workflow-guide}/SKILL.md +7 -5
  420. package/bundled/skills/{claude-code/git-workflow-guide → git-workflow-guide}/branch-naming.md +2 -2
  421. package/bundled/skills/{claude-code/git-workflow-guide → git-workflow-guide}/git-workflow.md +3 -3
  422. package/bundled/skills/{claude-code/logging-guide → logging-guide}/SKILL.md +7 -5
  423. package/bundled/skills/methodology-system/SKILL.md +75 -0
  424. package/bundled/skills/{claude-code/methodology-system → methodology-system}/create-methodology.md +1 -1
  425. package/bundled/skills/{claude-code/methodology-system/SKILL.md → methodology-system/guide.md} +51 -16
  426. package/bundled/skills/methodology-system/integrated-flow.md +454 -0
  427. package/bundled/skills/{claude-code/methodology-system → methodology-system}/runtime.md +2 -2
  428. package/bundled/skills/project-discovery/SKILL.md +63 -0
  429. package/bundled/skills/project-discovery/guide.md +367 -0
  430. package/bundled/skills/project-discovery/workflow.md +566 -0
  431. package/bundled/skills/{claude-code/project-structure-guide → project-structure-guide}/SKILL.md +14 -4
  432. package/bundled/skills/refactoring-assistant/SKILL.md +78 -0
  433. package/bundled/skills/{claude-code/refactoring-assistant/SKILL.md → refactoring-assistant/guide.md} +7 -7
  434. package/bundled/skills/release-standards/SKILL.md +61 -0
  435. package/bundled/skills/{claude-code/release-standards → release-standards}/changelog-format.md +2 -2
  436. package/bundled/skills/{claude-code/release-standards/SKILL.md → release-standards/guide.md} +7 -5
  437. package/bundled/skills/{claude-code/release-standards → release-standards}/release-workflow.md +59 -24
  438. package/bundled/skills/{claude-code/release-standards → release-standards}/semantic-versioning.md +2 -2
  439. package/bundled/skills/requirement-assistant/SKILL.md +66 -0
  440. package/bundled/skills/{claude-code/requirement-assistant/SKILL.md → requirement-assistant/guide.md} +14 -6
  441. package/bundled/skills/{claude-code/requirement-assistant → requirement-assistant}/requirement-checklist.md +2 -2
  442. package/bundled/skills/{claude-code/requirement-assistant → requirement-assistant}/requirement-writing.md +2 -2
  443. package/bundled/skills/reverse-engineer/SKILL.md +64 -0
  444. package/bundled/skills/{claude-code/reverse-engineer → reverse-engineer}/bdd-extraction.md +1 -1
  445. package/bundled/skills/{claude-code/reverse-engineer/SKILL.md → reverse-engineer/guide.md} +21 -18
  446. package/bundled/skills/{claude-code/reverse-engineer → reverse-engineer}/tdd-analysis.md +1 -1
  447. package/bundled/skills/{claude-code/reverse-engineer → reverse-engineer}/workflow.md +2 -2
  448. package/bundled/skills/spec-driven-dev/SKILL.md +80 -0
  449. package/bundled/skills/{claude-code/spec-driven-dev/SKILL.md → spec-driven-dev/guide.md} +50 -8
  450. package/bundled/skills/tdd-assistant/SKILL.md +65 -0
  451. package/bundled/skills/{claude-code/tdd-assistant/SKILL.md → tdd-assistant/guide.md} +10 -10
  452. package/bundled/skills/{claude-code/tdd-assistant → tdd-assistant}/language-examples.md +3 -3
  453. package/bundled/skills/{claude-code/tdd-assistant → tdd-assistant}/tdd-workflow.md +2 -2
  454. package/bundled/skills/test-coverage-assistant/SKILL.md +63 -0
  455. package/bundled/skills/{claude-code/test-coverage-assistant/SKILL.md → test-coverage-assistant/guide.md} +39 -24
  456. package/bundled/skills/{claude-code/testing-guide → testing-guide}/SKILL.md +12 -7
  457. package/bundled/skills/{claude-code/testing-guide → testing-guide}/testing-pyramid.md +3 -3
  458. package/bundled/skills/testing-guide/testing-theory.md +2291 -0
  459. package/bundled/skills/tools/cline/.clinerules +79 -0
  460. package/bundled/skills/tools/cline/README.md +50 -0
  461. package/bundled/skills/tools/copilot/README.md +99 -0
  462. package/bundled/skills/tools/copilot/copilot-instructions.md +71 -0
  463. package/bundled/skills/tools/cursor/.cursorrules +101 -0
  464. package/bundled/skills/tools/cursor/README.md +50 -0
  465. package/bundled/skills/tools/windsurf/.windsurfrules +76 -0
  466. package/bundled/skills/tools/windsurf/README.md +51 -0
  467. package/bundled/skills/{claude-code/workflows → workflows}/README.md +1 -1
  468. package/bundled/skills/workflows/release.workflow.yaml +893 -0
  469. package/package.json +4 -1
  470. package/src/commands/check.js +195 -130
  471. package/src/commands/config.js +1262 -0
  472. package/src/commands/configure.js +3 -950
  473. package/src/commands/fix.js +53 -0
  474. package/src/commands/hitl.js +19 -0
  475. package/src/commands/init.js +320 -1030
  476. package/src/commands/list.js +1 -1
  477. package/src/commands/simulate.js +61 -0
  478. package/src/commands/spec.js +288 -0
  479. package/src/commands/start.js +373 -0
  480. package/src/commands/sweep.js +142 -0
  481. package/src/commands/update.js +136 -19
  482. package/src/commands/workflow.js +265 -1
  483. package/src/config/ai-agent-paths.js +89 -29
  484. package/src/core/constants.js +7 -1
  485. package/src/core/manifest.js +1 -0
  486. package/src/flows/init-flow.js +243 -0
  487. package/src/hitl/checkpoint.js +80 -0
  488. package/src/hitl/classifier.js +54 -0
  489. package/src/hitl/manager.js +88 -0
  490. package/src/i18n/messages.js +907 -99
  491. package/src/index.js +1 -0
  492. package/src/installers/integration-installer.js +237 -0
  493. package/src/installers/manifest-installer.js +131 -0
  494. package/src/installers/skills-installer.js +286 -0
  495. package/src/installers/standards-installer.js +193 -0
  496. package/src/missions/MissionManager.js +501 -0
  497. package/src/prompts/init.js +228 -130
  498. package/src/prompts/integrations.js +13 -1
  499. package/src/schemas/standard.schema.json +117 -0
  500. package/src/utils/agents-installer.js +2 -2
  501. package/src/utils/config-loader.js +47 -0
  502. package/src/utils/config-manager.js +108 -0
  503. package/src/utils/config-merger.js +47 -0
  504. package/src/utils/github.js +22 -18
  505. package/src/utils/inquirer-patch.js +98 -0
  506. package/src/utils/integration-generator.js +392 -58
  507. package/src/utils/reference-sync.js +69 -19
  508. package/src/utils/skills-installer.js +6 -3
  509. package/src/utils/standard-fixer.js +141 -0
  510. package/src/utils/standard-validator.js +329 -0
  511. package/src/utils/workflow-executor.js +886 -0
  512. package/src/utils/workflow-state.js +404 -0
  513. package/src/utils/workflows-installer.js +2 -2
  514. package/src/vibe/auto-sweep.js +349 -0
  515. package/src/vibe/micro-spec.js +428 -0
  516. package/standards-registry.json +278 -102
  517. package/bundled/locales/zh-CN/skills/claude-code/README.md +0 -174
  518. package/bundled/locales/zh-CN/skills/claude-code/test-coverage-assistant/SKILL.md +0 -282
  519. package/bundled/locales/zh-TW/skills/claude-code/README.md +0 -174
  520. package/bundled/skills/claude-code/README.md +0 -215
  521. package/bundled/skills/claude-code/commands/changelog.md +0 -57
  522. package/bundled/skills/claude-code/commands/derive-all.md +0 -214
  523. package/bundled/skills/claude-code/commands/derive-atdd.md +0 -177
  524. package/bundled/skills/claude-code/commands/derive-bdd.md +0 -158
  525. package/bundled/skills/claude-code/commands/derive-tdd.md +0 -259
  526. package/bundled/skills/claude-code/commands/docs.md +0 -75
  527. package/bundled/skills/claude-code/commands/release.md +0 -50
  528. package/bundled/skills/claude-code/commands/reverse-bdd.md +0 -264
  529. package/bundled/skills/claude-code/commands/reverse-spec.md +0 -185
  530. package/bundled/skills/claude-code/commands/reverse-tdd.md +0 -351
  531. package/bundled/skills/claude-code/commands/spec.md +0 -69
  532. package/bundled/skills/claude-code/methodology-system/integrated-flow.md +0 -322
  533. /package/bundled/skills/{claude-code/CONTRIBUTING.template.md → CONTRIBUTING.template.md} +0 -0
  534. /package/bundled/skills/{claude-code/ai → ai}/standards/checkin.ai.yaml +0 -0
  535. /package/bundled/skills/{claude-code/ai → ai}/standards/commit.ai.yaml +0 -0
  536. /package/bundled/skills/{claude-code/ai → ai}/standards/refactoring.ai.yaml +0 -0
  537. /package/bundled/skills/{claude-code/ai → ai}/standards/testing.ai.yaml +0 -0
  538. /package/bundled/skills/{claude-code/project-structure-guide → project-structure-guide}/language-patterns.md +0 -0
  539. /package/bundled/skills/{claude-code/workflows → workflows}/code-review.workflow.yaml +0 -0
  540. /package/bundled/skills/{claude-code/workflows → workflows}/feature-dev.workflow.yaml +0 -0
  541. /package/bundled/skills/{claude-code/workflows → workflows}/integrated-flow.workflow.yaml +0 -0
  542. /package/bundled/skills/{claude-code/workflows → workflows}/large-codebase-analysis.workflow.yaml +0 -0
package/src/index.js CHANGED
@@ -6,3 +6,4 @@ export { initCommand } from './commands/init.js';
6
6
  export { checkCommand } from './commands/check.js';
7
7
  export { updateCommand } from './commands/update.js';
8
8
  export { skillsCommand } from './commands/skills.js';
9
+ export { configCommand } from './commands/config.js';
@@ -0,0 +1,237 @@
1
+ import ora from 'ora';
2
+ import { copyIntegration } from '../utils/copier.js';
3
+ import {
4
+ writeIntegrationFile,
5
+ integrationFileExists,
6
+ getToolFilePath
7
+ } from '../utils/integration-generator.js';
8
+ import { calculateCategoriesFromStandards } from '../utils/reference-sync.js';
9
+ import { t } from '../i18n/messages.js';
10
+
11
+ /**
12
+ * Integration file mappings (legacy - for fallback)
13
+ * Maps AI tool names to their source and target file paths
14
+ */
15
+ export const INTEGRATION_MAPPINGS = {
16
+ cursor: {
17
+ source: 'integrations/cursor/.cursorrules',
18
+ target: '.cursorrules'
19
+ },
20
+ windsurf: {
21
+ source: 'integrations/windsurf/.windsurfrules',
22
+ target: '.windsurfrules'
23
+ },
24
+ cline: {
25
+ source: 'integrations/cline/.clinerules',
26
+ target: '.clinerules'
27
+ },
28
+ copilot: {
29
+ source: 'integrations/github-copilot/copilot-instructions.md',
30
+ target: '.github/copilot-instructions.md'
31
+ },
32
+ antigravity: {
33
+ source: 'integrations/google-antigravity/INSTRUCTIONS.md',
34
+ target: 'INSTRUCTIONS.md'
35
+ },
36
+ codex: {
37
+ source: 'integrations/openai-codex/AGENTS.md',
38
+ target: 'AGENTS.md'
39
+ },
40
+ 'gemini-cli': {
41
+ source: 'integrations/gemini-cli/GEMINI.md',
42
+ target: 'GEMINI.md'
43
+ },
44
+ opencode: {
45
+ source: 'integrations/opencode/AGENTS.md',
46
+ target: 'AGENTS.md'
47
+ }
48
+ };
49
+
50
+ /**
51
+ * Install integration files for selected AI tools
52
+ *
53
+ * @param {Object} config - Integration installation configuration
54
+ * @param {Array<string>} config.integrations - List of AI tool names (e.g., ['cursor', 'windsurf'])
55
+ * @param {Object} config.integrationConfigs - Tool-specific configurations
56
+ * @param {Array<string>} config.installedStandards - List of installed standard file names
57
+ * @param {string} config.contentMode - Content mode ('minimal', 'index', 'full')
58
+ * @param {number} config.level - Adoption level (1-3)
59
+ * @param {string} config.commonLanguage - Language setting ('en', 'zh-tw', 'zh-cn', 'bilingual')
60
+ * @param {string} config.commitLanguage - Commit message language preference
61
+ * @param {string} projectPath - Absolute path to the project directory
62
+ * @returns {Promise<Object>} Installation results
63
+ * @returns {Array<string>} .integrations - List of successfully installed integration file paths
64
+ * @returns {Array<string>} .errors - List of error messages
65
+ * @returns {Object} .integrationBlockHashes - Hash information for UDS content blocks
66
+ */
67
+ export async function installIntegrations(config, projectPath) {
68
+ const {
69
+ integrations = [],
70
+ installedStandards = [],
71
+ contentMode = 'minimal',
72
+ level = 2,
73
+ } = config;
74
+
75
+ // Resolve parameters (support both naming conventions from different callers)
76
+ const integrationConfigs = config.integrationConfigs || config.skillsConfig?.integrationConfigs || {};
77
+ const commonLanguage = config.commonLanguage || config.displayLanguage || 'en';
78
+ const commitLanguage = config.commitLanguage || config.standardOptions?.commit_language || 'english';
79
+
80
+ const msg = t().commands.init;
81
+
82
+ // Track results
83
+ const results = {
84
+ integrations: [],
85
+ errors: [],
86
+ integrationBlockHashes: {}
87
+ };
88
+
89
+ // Early return if no integrations to install
90
+ if (integrations.length === 0) {
91
+ return results;
92
+ }
93
+
94
+ // Start installation spinner
95
+ const intSpinner = ora(msg.generatingIntegrations).start();
96
+
97
+ // Track generated files to handle AGENTS.md sharing (codex + opencode)
98
+ const generatedFiles = new Set();
99
+
100
+ for (const tool of integrations) {
101
+ // Check if this file was already generated (for AGENTS.md sharing)
102
+ const targetFile = getToolFilePath(tool);
103
+ if (generatedFiles.has(targetFile)) {
104
+ // Skip - file already generated by another tool (e.g., codex generated AGENTS.md, skip opencode)
105
+ continue;
106
+ }
107
+
108
+ // Build enhanced config with installed standards
109
+ // Filter categories to only those backed by installed standards to avoid orphaned references
110
+ const requestedCategories = integrationConfigs[tool]?.categories || ['anti-hallucination', 'commit-standards', 'code-review'];
111
+ const validCategories = installedStandards.length > 0
112
+ ? requestedCategories.filter(cat => calculateCategoriesFromStandards(installedStandards).includes(cat))
113
+ : requestedCategories;
114
+ const enhancedConfig = {
115
+ ...integrationConfigs[tool],
116
+ tool,
117
+ categories: validCategories,
118
+ language: integrationConfigs[tool]?.language || commonLanguage,
119
+ installedStandards,
120
+ contentMode,
121
+ level,
122
+ // Pass commit_language for dynamic commit standards generation
123
+ commitLanguage
124
+ };
125
+
126
+ // Use dynamic generator
127
+ const result = writeIntegrationFile(tool, enhancedConfig, projectPath);
128
+ if (result.success) {
129
+ results.integrations.push(result.path);
130
+ generatedFiles.add(targetFile);
131
+
132
+ // Capture integration block hash for tracking UDS content
133
+ if (result.blockHashInfo) {
134
+ results.integrationBlockHashes[result.path] = {
135
+ ...result.blockHashInfo,
136
+ installedAt: new Date().toISOString()
137
+ };
138
+ }
139
+ } else {
140
+ // Fall back to legacy static file copy
141
+ const mapping = INTEGRATION_MAPPINGS[tool];
142
+ if (mapping) {
143
+ const copyResult = await copyIntegration(mapping.source, mapping.target, projectPath);
144
+ if (copyResult.success) {
145
+ results.integrations.push(mapping.target);
146
+ generatedFiles.add(targetFile);
147
+ } else {
148
+ results.errors.push(`${tool}: ${result.error || copyResult.error}`);
149
+ }
150
+ } else {
151
+ results.errors.push(`${tool}: ${result.error}`);
152
+ }
153
+ }
154
+ }
155
+
156
+ // Update spinner with result
157
+ const successCount = results.integrations.length;
158
+ if (successCount > 0) {
159
+ intSpinner.succeed(msg.generatedIntegrations.replace('{count}', successCount));
160
+ } else {
161
+ // intSpinner.fail(msg.failedToGenerateIntegrations || 'Failed to generate integration files');
162
+ // Using warn instead of fail to match original behavior if at least some files failed but loop finished
163
+ // But original code used succeed even if errors occurred, just logged errors.
164
+ // Let's stick to succeed if loop finished, but maybe warn if 0 files generated?
165
+ // The original code: intSpinner.succeed(msg.generatedIntegrations.replace('{count}', results.integrations.length));
166
+ intSpinner.succeed(msg.generatedIntegrations.replace('{count}', successCount));
167
+ }
168
+
169
+ return results;
170
+ }
171
+
172
+ /**
173
+ * Generate CLAUDE.md for Claude Code if selected and not already existing
174
+ *
175
+ * @param {Object} config - Claude Code configuration
176
+ * @param {Array<string>} config.aiTools - List of selected AI tools
177
+ * @param {Array<string>} config.installedStandards - List of installed standard file names
178
+ * @param {string} config.contentMode - Content mode ('minimal', 'index', 'full')
179
+ * @param {number} config.level - Adoption level (1-3)
180
+ * @param {string} config.commonLanguage - Language setting ('en', 'zh-tw', 'zh-cn', 'bilingual')
181
+ * @param {string} config.commitLanguage - Commit message language preference
182
+ * @param {string} projectPath - Absolute path to the project directory
183
+ * @returns {Promise<Object>} Generation results
184
+ * @returns {string|null} .path - Path to CLAUDE.md if generated, null if skipped
185
+ * @returns {string|null} .error - Error message if generation failed
186
+ */
187
+ export async function generateClaudeMd(config, projectPath) {
188
+ const {
189
+ aiTools = [],
190
+ installedStandards = [],
191
+ contentMode = 'minimal',
192
+ level = 2,
193
+ } = config;
194
+
195
+ // Resolve parameters (support both naming conventions from different callers)
196
+ const commonLanguage = config.commonLanguage || config.displayLanguage || 'en';
197
+ const commitLanguage = config.commitLanguage || config.standardOptions?.commit_language || 'english';
198
+
199
+ const msg = t().commands.init;
200
+
201
+ // Check if Claude Code is selected and CLAUDE.md doesn't exist
202
+ const claudeCodeSelected = aiTools.includes('claude-code');
203
+ if (!claudeCodeSelected || integrationFileExists('claude-code', projectPath)) {
204
+ return { path: null, error: null };
205
+ }
206
+
207
+ const claudeSpinner = ora(msg.generatingClaudeMd).start();
208
+
209
+ // Derive categories from installedStandards to avoid referencing non-installed standards
210
+ const categories = installedStandards.length > 0
211
+ ? calculateCategoriesFromStandards(installedStandards)
212
+ : ['anti-hallucination', 'commit-standards', 'code-review'];
213
+ const claudeConfig = {
214
+ tool: 'claude-code',
215
+ categories,
216
+ languages: [],
217
+ exclusions: [],
218
+ customRules: [],
219
+ detailLevel: 'standard',
220
+ language: commonLanguage,
221
+ // Enhanced standards compliance fields
222
+ installedStandards,
223
+ contentMode,
224
+ level,
225
+ // Pass commit_language for dynamic commit standards generation
226
+ commitLanguage
227
+ };
228
+
229
+ const result = writeIntegrationFile('claude-code', claudeConfig, projectPath);
230
+ if (result.success) {
231
+ claudeSpinner.succeed(msg.generatedClaudeMd);
232
+ return { path: result.path, error: null };
233
+ } else {
234
+ claudeSpinner.warn(msg.couldNotGenerateClaudeMd);
235
+ return { path: null, error: result.error };
236
+ }
237
+ }
@@ -0,0 +1,131 @@
1
+ import chalk from 'chalk';
2
+ import { getRepositoryInfo } from '../utils/registry.js';
3
+ import { writeManifest } from '../core/manifest.js';
4
+ import { t } from '../i18n/messages.js';
5
+ import { getAgentDisplayName, getSkillsDirForAgent, getCommandsDirForAgent } from '../config/ai-agent-paths.js';
6
+
7
+ /**
8
+ * Create and write the final manifest file, and display installation summary
9
+ *
10
+ * @param {Object} config - Installation configuration
11
+ * @param {Object} results - Combined results from all installers
12
+ * @param {string} projectPath - Project directory path
13
+ */
14
+ export function writeFinalManifest(config, results, projectPath) {
15
+ const msg = t().commands.init;
16
+ const repoInfo = getRepositoryInfo();
17
+
18
+ // Construct manifest object
19
+ const manifest = {
20
+ version: '3.3.0',
21
+ upstream: {
22
+ repo: 'AsiaOstrich/universal-dev-standards',
23
+ version: repoInfo.standards.version,
24
+ installed: new Date().toISOString().split('T')[0]
25
+ },
26
+ level: config.level,
27
+ format: config.format,
28
+ standardsScope: config.standardsScope || 'full',
29
+ contentMode: config.contentMode || 'minimal',
30
+ standards: results.standards || [],
31
+ extensions: results.extensions || [],
32
+ integrations: results.integrations || [],
33
+ integrationConfigs: results.manifestIntegrationConfigs || {},
34
+ options: {
35
+ display_language: config.displayLanguage || 'en',
36
+ workflow: config.standardOptions?.workflow || null,
37
+ merge_strategy: config.standardOptions?.merge_strategy || null,
38
+ commit_language: config.standardOptions?.commit_language || null,
39
+ test_levels: config.standardOptions?.test_levels || []
40
+ },
41
+ aiTools: config.aiTools || [],
42
+ skills: {
43
+ installed: config.skillsConfig?.installed || false,
44
+ location: config.skillsConfig?.location || null,
45
+ names: config.skillsConfig?.location === 'marketplace' ? ['all-via-plugin'] : (results.skills || []),
46
+ version: config.skillsConfig?.installed ? repoInfo.skills.version : null,
47
+ installations: config.skillsConfig?.skillsInstallations || []
48
+ },
49
+ commands: {
50
+ installed: config.skillsConfig?.commandsInstallations?.length > 0,
51
+ names: results.commands || [],
52
+ version: config.skillsConfig?.commandsInstallations?.length > 0 ? repoInfo.skills.version : null,
53
+ installations: config.skillsConfig?.commandsInstallations || []
54
+ },
55
+ methodology: config.methodology ? {
56
+ active: config.methodology,
57
+ available: ['tdd', 'bdd', 'sdd', 'atdd'],
58
+ config: {
59
+ checkpointsEnabled: true,
60
+ reminderIntensity: 'suggest',
61
+ skipLimit: 3
62
+ }
63
+ } : null,
64
+ fileHashes: results.fileHashes || {},
65
+ skillHashes: results.skillHashes || {},
66
+ commandHashes: results.commandHashes || {},
67
+ integrationBlockHashes: results.integrationBlockHashes || {}
68
+ };
69
+
70
+ // Write file
71
+ writeManifest(manifest, projectPath);
72
+
73
+ // --- Display Summary ---
74
+ console.log();
75
+ console.log(chalk.green(msg.initializedSuccess));
76
+ console.log();
77
+
78
+ const totalFiles = (results.standards?.length || 0) + (results.extensions?.length || 0) + (results.integrations?.length || 0);
79
+ console.log(chalk.gray(` ${msg.filesCopied.replace('{count}', totalFiles)}`));
80
+
81
+ if (config.skillsConfig?.installed) {
82
+ if (config.skillsConfig.location === 'marketplace') {
83
+ console.log(chalk.gray(` ${msg.skillsUsingMarketplace}`));
84
+ } else if (results.skills?.length > 0) {
85
+ const skillLocations = (config.skillsConfig.skillsInstallations || []).map(inst => {
86
+ const displayName = getAgentDisplayName(inst.agent);
87
+ const dir = getSkillsDirForAgent(inst.agent, inst.level, projectPath);
88
+ return `${displayName}: ${dir}`;
89
+ }).join(' and ');
90
+ console.log(chalk.gray(` ${msg.skillsInstalledTo.replace('{count}', results.skills.length).replace('{locations}', skillLocations)}`));
91
+ }
92
+ }
93
+
94
+ if (results.commands?.length > 0) {
95
+ const cmdLocations = (config.skillsConfig.commandsInstallations || []).map(item => {
96
+ const agent = typeof item === 'string' ? item : item.agent;
97
+ const level = typeof item === 'string' ? 'project' : (item.level || 'project');
98
+ const displayName = getAgentDisplayName(agent);
99
+ const dir = getCommandsDirForAgent(agent, level, projectPath);
100
+ return `${displayName}: ${dir}`;
101
+ }).join(' and ');
102
+
103
+ console.log(chalk.gray(` ${(msg.commandsInstalledTo || 'Commands ({count}): {locations}').replace('{count}', results.commands.length).replace('{locations}', cmdLocations)}`));
104
+ }
105
+
106
+ console.log(chalk.gray(` ${msg.manifestCreated}`));
107
+
108
+ if (results.errors?.length > 0) {
109
+ console.log();
110
+ console.log(chalk.yellow(msg.errorsOccurred.replace('{count}', results.errors.length)));
111
+ for (const err of results.errors) {
112
+ console.log(chalk.gray(` ${err}`));
113
+ }
114
+ }
115
+
116
+ console.log();
117
+ console.log(chalk.gray(msg.nextSteps));
118
+ console.log(chalk.gray(` ${msg.reviewDirectory}`));
119
+ console.log(chalk.gray(` ${msg.addToVcs}`));
120
+
121
+ if (config.skillsConfig?.installed) {
122
+ const toolNames = config.skillsConfig.skillsInstallations?.length > 0
123
+ ? [...new Set(config.skillsConfig.skillsInstallations.map(inst => getAgentDisplayName(inst.agent)))].join(' / ')
124
+ : 'Claude Code';
125
+ console.log(chalk.gray(` ${msg.restartAgent.replace('{tools}', toolNames)}`));
126
+ console.log(chalk.gray(` 4. ${msg.runCheck}`));
127
+ } else {
128
+ console.log(chalk.gray(` 3. ${msg.runCheck}`));
129
+ }
130
+ console.log();
131
+ }
@@ -0,0 +1,286 @@
1
+ /**
2
+ * Skills and Commands Installer
3
+ *
4
+ * High-level orchestration layer for installing Skills and slash commands
5
+ * across multiple AI agents (Claude Code, OpenCode, Cursor, etc.).
6
+ *
7
+ * Architecture:
8
+ * - Coordinates between low-level installers (utils/skills-installer.js)
9
+ * - Handles remote downloads (utils/github.js)
10
+ * - Aggregates results from multiple agent installations
11
+ * - Provides user feedback via ora spinners
12
+ *
13
+ * @version 1.0.0
14
+ */
15
+
16
+ import ora from 'ora';
17
+ import chalk from 'chalk';
18
+ import {
19
+ installSkillsToMultipleAgents,
20
+ installCommandsToMultipleAgents,
21
+ getAvailableSkillNames,
22
+ getAvailableCommandNames
23
+ } from '../utils/skills-installer.js';
24
+ import {
25
+ downloadSkillToLocation,
26
+ getSkillsDir,
27
+ getProjectSkillsDir,
28
+ writeSkillsManifest
29
+ } from '../utils/github.js';
30
+ import {
31
+ getAgentDisplayName,
32
+ getSkillsDirForAgent,
33
+ getCommandsDirForAgent
34
+ } from '../config/ai-agent-paths.js';
35
+ import { getRepositoryInfo } from '../utils/registry.js';
36
+
37
+ /**
38
+ * Get all skill files mapping (skill name -> file paths)
39
+ * Used for remote download fallback
40
+ * @returns {Object} Mapping of skill names to file paths
41
+ */
42
+ function getSkillFiles() {
43
+ const skills = getAvailableSkillNames();
44
+ const mapping = {};
45
+
46
+ for (const skillName of skills) {
47
+ // Default files in each skill directory
48
+ mapping[skillName] = [
49
+ `skills/claude-code/${skillName}/SKILL.md`,
50
+ `skills/claude-code/${skillName}/README.md`
51
+ ];
52
+ }
53
+
54
+ return mapping;
55
+ }
56
+
57
+ /**
58
+ * Install Skills to multiple AI agents
59
+ *
60
+ * Unified installation flow:
61
+ * 1. Determines installation targets (agents + levels)
62
+ * 2. Calls unified installer for local/bundled skills
63
+ * 3. Falls back to remote download if needed
64
+ * 4. Aggregates results and provides user feedback
65
+ *
66
+ * @param {Object} skillsConfig - Skills configuration
67
+ * @param {boolean} skillsConfig.needsInstall - Whether skills installation is needed
68
+ * @param {Array} skillsConfig.skillsInstallations - Array of {agent, level} objects
69
+ * @param {Array} skillsConfig.updateTargets - Legacy: array of 'user'/'project' strings
70
+ * @param {string} projectPath - Project root path
71
+ * @param {Object} messages - i18n messages object
72
+ * @param {Object} results - Results object to populate
73
+ * @returns {Promise<void>}
74
+ */
75
+ export async function installSkills(skillsConfig, projectPath, messages, results) {
76
+ // Modern unified multi-agent installation
77
+ if (skillsConfig.needsInstall && skillsConfig.skillsInstallations?.length > 0) {
78
+ const skillSpinner = ora(messages.installingSkills).start();
79
+
80
+ // Use new unified installer for multi-agent support
81
+ const installResult = await installSkillsToMultipleAgents(
82
+ skillsConfig.skillsInstallations,
83
+ null, // Install all skills
84
+ projectPath
85
+ );
86
+
87
+ // Collect results
88
+ for (const agentResult of installResult.installations) {
89
+ if (agentResult.installed.length > 0) {
90
+ for (const skillName of agentResult.installed) {
91
+ if (!results.skills.includes(skillName)) {
92
+ results.skills.push(skillName);
93
+ }
94
+ }
95
+ }
96
+ for (const err of agentResult.errors) {
97
+ results.errors.push(`${agentResult.agent} - ${err.skill}: ${err.error}`);
98
+ }
99
+ }
100
+
101
+ // Collect skill file hashes for integrity tracking
102
+ if (installResult.allFileHashes) {
103
+ Object.assign(results.skillHashes, installResult.allFileHashes);
104
+ }
105
+
106
+ // Build location summary for display
107
+ const targetLocations = (skillsConfig.skillsInstallations || []).map(inst => {
108
+ const displayName = getAgentDisplayName(inst.agent);
109
+ const dir = getSkillsDirForAgent(inst.agent, inst.level, projectPath);
110
+ return `${displayName} (${dir})`;
111
+ }).join(', ');
112
+
113
+ if (installResult.totalErrors === 0) {
114
+ skillSpinner.succeed(messages.installedSkills
115
+ .replace('{count}', installResult.totalInstalled)
116
+ .replace('{locations}', targetLocations));
117
+ } else {
118
+ skillSpinner.warn(messages.installedSkillsWithErrors
119
+ .replace('{count}', installResult.totalInstalled)
120
+ .replace('{errors}', installResult.totalErrors));
121
+ }
122
+ } else if (skillsConfig.needsInstall && skillsConfig.updateTargets?.length > 0) {
123
+ // Legacy fallback for backward compatibility (remote download)
124
+ await installSkillsLegacy(skillsConfig, projectPath, messages, results);
125
+ }
126
+ }
127
+
128
+ /**
129
+ * Legacy skills installation (remote download)
130
+ * Used for backward compatibility with older configurations
131
+ *
132
+ * @param {Object} skillsConfig - Skills configuration
133
+ * @param {string} projectPath - Project root path
134
+ * @param {Object} messages - i18n messages object
135
+ * @param {Object} results - Results object to populate
136
+ * @returns {Promise<void>}
137
+ */
138
+ async function installSkillsLegacy(skillsConfig, projectPath, messages, results) {
139
+ const skillSpinner = ora(messages.installingSkills).start();
140
+
141
+ const skillFiles = getSkillFiles();
142
+ let successCount = 0;
143
+ let errorCount = 0;
144
+
145
+ const repoInfo = getRepositoryInfo();
146
+
147
+ for (const target of skillsConfig.updateTargets) {
148
+ for (const [skillName, files] of Object.entries(skillFiles)) {
149
+ const result = await downloadSkillToLocation(
150
+ skillName,
151
+ files,
152
+ target,
153
+ target === 'project' ? projectPath : null
154
+ );
155
+
156
+ if (result.success) {
157
+ successCount++;
158
+ if (!results.skills.includes(skillName)) {
159
+ results.skills.push(skillName);
160
+ }
161
+ } else {
162
+ errorCount++;
163
+ const failedFiles = (result.files || []).filter(f => !f.success).map(f => f.file).join(', ');
164
+ results.errors.push(`Skill ${skillName} (${target}): failed to install ${failedFiles}`);
165
+ }
166
+ }
167
+
168
+ // Write manifest for each target location
169
+ const targetDir = target === 'project'
170
+ ? getProjectSkillsDir(projectPath)
171
+ : getSkillsDir();
172
+ writeSkillsManifest(repoInfo.skills.version, targetDir);
173
+ }
174
+
175
+ const targetLocations = skillsConfig.updateTargets.map(t =>
176
+ t === 'project' ? getProjectSkillsDir(projectPath) : getSkillsDir()
177
+ ).join(', ');
178
+
179
+ if (errorCount === 0) {
180
+ skillSpinner.succeed(messages.installedSkills
181
+ .replace('{count}', successCount)
182
+ .replace('{locations}', targetLocations));
183
+ } else {
184
+ skillSpinner.warn(messages.installedSkillsWithErrors
185
+ .replace('{count}', successCount)
186
+ .replace('{errors}', errorCount));
187
+ }
188
+ }
189
+
190
+ /**
191
+ * Install slash commands to multiple AI agents
192
+ *
193
+ * Supports agents that have separate command directories (OpenCode, Cursor, etc.)
194
+ * Claude Code merged commands into Skills in v2.1.3+
195
+ *
196
+ * @param {Object} skillsConfig - Skills configuration
197
+ * @param {Array} skillsConfig.commandsInstallations - Array of {agent, level} or agent strings
198
+ * @param {string} projectPath - Project root path
199
+ * @param {Object} messages - i18n messages object
200
+ * @param {Object} results - Results object to populate
201
+ * @returns {Promise<void>}
202
+ */
203
+ export async function installCommands(skillsConfig, projectPath, messages, results) {
204
+ if (!skillsConfig.commandsInstallations || skillsConfig.commandsInstallations.length === 0) {
205
+ return;
206
+ }
207
+
208
+ const cmdSpinner = ora(messages.installingCommands || 'Installing slash commands...').start();
209
+
210
+ const cmdResult = await installCommandsToMultipleAgents(
211
+ skillsConfig.commandsInstallations,
212
+ null, // Install all commands
213
+ projectPath
214
+ );
215
+
216
+ // Initialize commands results array if not exists
217
+ results.commands = results.commands || [];
218
+
219
+ // Collect results
220
+ for (const agentResult of cmdResult.installations) {
221
+ if (agentResult.installed.length > 0) {
222
+ for (const cmdName of agentResult.installed) {
223
+ if (!results.commands.includes(cmdName)) {
224
+ results.commands.push(cmdName);
225
+ }
226
+ }
227
+ }
228
+ for (const err of agentResult.errors) {
229
+ results.errors.push(`${agentResult.agent} command - ${err.command}: ${err.error}`);
230
+ }
231
+ }
232
+
233
+ // Collect command file hashes for integrity tracking
234
+ if (cmdResult.allFileHashes) {
235
+ Object.assign(results.commandHashes, cmdResult.allFileHashes);
236
+ }
237
+
238
+ // Build location summary
239
+ const cmdLocations = (skillsConfig.commandsInstallations || []).map(item => {
240
+ // Support both {agent, level} objects and simple agent strings (backward compatibility)
241
+ const agent = typeof item === 'string' ? item : item.agent;
242
+ const level = typeof item === 'string' ? 'project' : (item.level || 'project');
243
+ const displayName = getAgentDisplayName(agent);
244
+ const dir = getCommandsDirForAgent(agent, level, projectPath);
245
+ return `${displayName} (${dir})`;
246
+ }).join(', ');
247
+
248
+ if (cmdResult.totalErrors === 0) {
249
+ cmdSpinner.succeed((messages.installedCommands || 'Installed {count} commands to: {locations}')
250
+ .replace('{count}', cmdResult.totalInstalled)
251
+ .replace('{locations}', cmdLocations));
252
+ } else {
253
+ cmdSpinner.warn((messages.installedCommandsWithErrors || 'Installed {count} commands with {errors} errors')
254
+ .replace('{count}', cmdResult.totalInstalled)
255
+ .replace('{errors}', cmdResult.totalErrors));
256
+ }
257
+ }
258
+
259
+ /**
260
+ * Get summary of installed skills and commands
261
+ *
262
+ * @param {Object} results - Installation results
263
+ * @returns {Object} Summary object
264
+ */
265
+ export function getInstallationSummary(results) {
266
+ return {
267
+ skills: {
268
+ count: results.skills?.length || 0,
269
+ names: results.skills || []
270
+ },
271
+ commands: {
272
+ count: results.commands?.length || 0,
273
+ names: results.commands || []
274
+ },
275
+ errors: {
276
+ count: results.errors?.length || 0,
277
+ messages: results.errors || []
278
+ }
279
+ };
280
+ }
281
+
282
+ export default {
283
+ installSkills,
284
+ installCommands,
285
+ getInstallationSummary
286
+ };