universal-dev-standards 3.5.1-beta.1 → 3.5.1-beta.11

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 (433) hide show
  1. package/bin/uds.js +2 -0
  2. package/bundled/core/ai-instruction-standards.md +205 -0
  3. package/bundled/core/anti-hallucination.md +684 -0
  4. package/bundled/core/changelog-standards.md +556 -0
  5. package/bundled/core/checkin-standards.md +935 -0
  6. package/bundled/core/code-review-checklist.md +684 -0
  7. package/bundled/core/commit-message-guide.md +915 -0
  8. package/bundled/core/documentation-structure.md +1117 -0
  9. package/bundled/core/documentation-writing-standards.md +487 -0
  10. package/bundled/core/error-code-standards.md +382 -0
  11. package/bundled/core/git-workflow.md +859 -0
  12. package/bundled/core/logging-standards.md +323 -0
  13. package/bundled/core/project-structure.md +354 -0
  14. package/bundled/core/refactoring-standards.md +636 -0
  15. package/bundled/core/spec-driven-development.md +207 -0
  16. package/bundled/core/test-completeness-dimensions.md +536 -0
  17. package/bundled/core/test-driven-development.md +995 -0
  18. package/bundled/core/testing-standards.md +3061 -0
  19. package/bundled/core/versioning.md +902 -0
  20. package/bundled/locales/README.md +88 -0
  21. package/bundled/locales/zh-CN/CHANGELOG.md +705 -0
  22. package/bundled/locales/zh-CN/CLAUDE.md +213 -0
  23. package/bundled/locales/zh-CN/MAINTENANCE.md +689 -0
  24. package/bundled/locales/zh-CN/README.md +707 -0
  25. package/bundled/locales/zh-CN/STANDARDS-MAPPING.md +177 -0
  26. package/bundled/locales/zh-CN/adoption/ADOPTION-GUIDE.md +392 -0
  27. package/bundled/locales/zh-CN/adoption/STATIC-DYNAMIC-GUIDE.md +302 -0
  28. package/bundled/locales/zh-CN/adoption/checklists/enterprise.md +332 -0
  29. package/bundled/locales/zh-CN/adoption/checklists/minimal.md +141 -0
  30. package/bundled/locales/zh-CN/adoption/checklists/recommended.md +272 -0
  31. package/bundled/locales/zh-CN/ai/MAINTENANCE.md +739 -0
  32. package/bundled/locales/zh-CN/ai/options/changelog/auto-generated.ai.yaml +76 -0
  33. package/bundled/locales/zh-CN/ai/options/changelog/keep-a-changelog.ai.yaml +99 -0
  34. package/bundled/locales/zh-CN/ai/options/code-review/automated-review.ai.yaml +120 -0
  35. package/bundled/locales/zh-CN/ai/options/code-review/pair-programming.ai.yaml +109 -0
  36. package/bundled/locales/zh-CN/ai/options/code-review/pr-review.ai.yaml +104 -0
  37. package/bundled/locales/zh-CN/ai/options/commit-message/bilingual.ai.yaml +105 -0
  38. package/bundled/locales/zh-CN/ai/options/commit-message/english.ai.yaml +79 -0
  39. package/bundled/locales/zh-CN/ai/options/commit-message/traditional-chinese.ai.yaml +100 -0
  40. package/bundled/locales/zh-CN/ai/options/documentation/api-docs.ai.yaml +140 -0
  41. package/bundled/locales/zh-CN/ai/options/documentation/markdown-docs.ai.yaml +89 -0
  42. package/bundled/locales/zh-CN/ai/options/documentation/wiki-style.ai.yaml +119 -0
  43. package/bundled/locales/zh-CN/ai/options/git-workflow/gitflow.ai.yaml +133 -0
  44. package/bundled/locales/zh-CN/ai/options/git-workflow/github-flow.ai.yaml +73 -0
  45. package/bundled/locales/zh-CN/ai/options/git-workflow/merge-commit.ai.yaml +88 -0
  46. package/bundled/locales/zh-CN/ai/options/git-workflow/rebase-ff.ai.yaml +113 -0
  47. package/bundled/locales/zh-CN/ai/options/git-workflow/squash-merge.ai.yaml +85 -0
  48. package/bundled/locales/zh-CN/ai/options/git-workflow/trunk-based.ai.yaml +117 -0
  49. package/bundled/locales/zh-CN/ai/options/project-structure/dotnet.ai.yaml +108 -0
  50. package/bundled/locales/zh-CN/ai/options/project-structure/go.ai.yaml +115 -0
  51. package/bundled/locales/zh-CN/ai/options/project-structure/java.ai.yaml +113 -0
  52. package/bundled/locales/zh-CN/ai/options/project-structure/kotlin.ai.yaml +123 -0
  53. package/bundled/locales/zh-CN/ai/options/project-structure/nodejs.ai.yaml +101 -0
  54. package/bundled/locales/zh-CN/ai/options/project-structure/php.ai.yaml +147 -0
  55. package/bundled/locales/zh-CN/ai/options/project-structure/python.ai.yaml +116 -0
  56. package/bundled/locales/zh-CN/ai/options/project-structure/ruby.ai.yaml +140 -0
  57. package/bundled/locales/zh-CN/ai/options/project-structure/rust.ai.yaml +117 -0
  58. package/bundled/locales/zh-CN/ai/options/project-structure/swift.ai.yaml +143 -0
  59. package/bundled/locales/zh-CN/ai/options/testing/contract-testing.ai.yaml +254 -0
  60. package/bundled/locales/zh-CN/ai/options/testing/e2e-testing.ai.yaml +116 -0
  61. package/bundled/locales/zh-CN/ai/options/testing/industry-pyramid.ai.yaml +144 -0
  62. package/bundled/locales/zh-CN/ai/options/testing/integration-testing.ai.yaml +90 -0
  63. package/bundled/locales/zh-CN/ai/options/testing/istqb-framework.ai.yaml +108 -0
  64. package/bundled/locales/zh-CN/ai/options/testing/performance-testing.ai.yaml +272 -0
  65. package/bundled/locales/zh-CN/ai/options/testing/security-testing.ai.yaml +160 -0
  66. package/bundled/locales/zh-CN/ai/options/testing/system-testing.ai.yaml +101 -0
  67. package/bundled/locales/zh-CN/ai/options/testing/unit-testing.ai.yaml +82 -0
  68. package/bundled/locales/zh-CN/ai/standards/anti-hallucination.ai.yaml +145 -0
  69. package/bundled/locales/zh-CN/ai/standards/changelog.ai.yaml +146 -0
  70. package/bundled/locales/zh-CN/ai/standards/checkin-standards.ai.yaml +170 -0
  71. package/bundled/locales/zh-CN/ai/standards/code-review.ai.yaml +148 -0
  72. package/bundled/locales/zh-CN/ai/standards/commit-message.ai.yaml +175 -0
  73. package/bundled/locales/zh-CN/ai/standards/documentation-structure.ai.yaml +124 -0
  74. package/bundled/locales/zh-CN/ai/standards/documentation-writing-standards.ai.yaml +190 -0
  75. package/bundled/locales/zh-CN/ai/standards/error-codes.ai.yaml +139 -0
  76. package/bundled/locales/zh-CN/ai/standards/git-workflow.ai.yaml +95 -0
  77. package/bundled/locales/zh-CN/ai/standards/logging.ai.yaml +128 -0
  78. package/bundled/locales/zh-CN/ai/standards/project-structure.ai.yaml +134 -0
  79. package/bundled/locales/zh-CN/ai/standards/spec-driven-development.ai.yaml +169 -0
  80. package/bundled/locales/zh-CN/ai/standards/test-completeness-dimensions.ai.yaml +220 -0
  81. package/bundled/locales/zh-CN/ai/standards/testing.ai.yaml +137 -0
  82. package/bundled/locales/zh-CN/ai/standards/versioning.ai.yaml +211 -0
  83. package/bundled/locales/zh-CN/core/ai-instruction-standards.md +213 -0
  84. package/bundled/locales/zh-CN/core/anti-hallucination.md +691 -0
  85. package/bundled/locales/zh-CN/core/changelog-standards.md +147 -0
  86. package/bundled/locales/zh-CN/core/checkin-standards.md +943 -0
  87. package/bundled/locales/zh-CN/core/code-review-guide.md +693 -0
  88. package/bundled/locales/zh-CN/core/commit-message-guide.md +129 -0
  89. package/bundled/locales/zh-CN/core/documentation-structure.md +173 -0
  90. package/bundled/locales/zh-CN/core/documentation-writing-standards.md +495 -0
  91. package/bundled/locales/zh-CN/core/error-code-standards.md +180 -0
  92. package/bundled/locales/zh-CN/core/git-workflow.md +193 -0
  93. package/bundled/locales/zh-CN/core/logging-standards.md +174 -0
  94. package/bundled/locales/zh-CN/core/project-structure.md +184 -0
  95. package/bundled/locales/zh-CN/core/refactoring-standards.md +642 -0
  96. package/bundled/locales/zh-CN/core/spec-driven-development.md +215 -0
  97. package/bundled/locales/zh-CN/core/test-completeness-dimensions.md +544 -0
  98. package/bundled/locales/zh-CN/core/test-driven-development.md +1002 -0
  99. package/bundled/locales/zh-CN/core/testing-standards.md +170 -0
  100. package/bundled/locales/zh-CN/core/versioning.md +177 -0
  101. package/bundled/locales/zh-CN/docs/AI-AGENT-ROADMAP.md +303 -0
  102. package/bundled/locales/zh-CN/docs/CLI-INIT-OPTIONS.md +990 -0
  103. package/bundled/locales/zh-CN/docs/OPERATION-WORKFLOW.md +1064 -0
  104. package/bundled/locales/zh-CN/docs/USAGE-MODES-COMPARISON.md +333 -0
  105. package/bundled/locales/zh-CN/docs/WINDOWS-GUIDE.md +215 -0
  106. package/bundled/locales/zh-CN/integrations/codex/AGENTS.md +115 -0
  107. package/bundled/locales/zh-CN/integrations/codex/README.md +67 -0
  108. package/bundled/locales/zh-CN/integrations/gemini-cli/GEMINI.md +102 -0
  109. package/bundled/locales/zh-CN/integrations/gemini-cli/README.md +140 -0
  110. package/bundled/locales/zh-CN/integrations/github-copilot/COPILOT-CHAT-REFERENCE.md +269 -0
  111. package/bundled/locales/zh-CN/integrations/github-copilot/README.md +167 -0
  112. package/bundled/locales/zh-CN/integrations/github-copilot/copilot-instructions.md +263 -0
  113. package/bundled/locales/zh-CN/integrations/github-copilot/skills-mapping.md +192 -0
  114. package/bundled/locales/zh-CN/integrations/google-antigravity/INSTRUCTIONS.md +61 -0
  115. package/bundled/locales/zh-CN/integrations/google-antigravity/README.md +84 -0
  116. package/bundled/locales/zh-CN/integrations/opencode/AGENTS.md +111 -0
  117. package/bundled/locales/zh-CN/integrations/opencode/README.md +176 -0
  118. package/bundled/locales/zh-CN/integrations/opencode/skills-mapping.md +396 -0
  119. package/bundled/locales/zh-CN/integrations/openspec/AGENTS.md +301 -0
  120. package/bundled/locales/zh-CN/integrations/openspec/README.md +43 -0
  121. package/bundled/locales/zh-CN/integrations/spec-kit/AGENTS.md +184 -0
  122. package/bundled/locales/zh-CN/integrations/spec-kit/README.md +43 -0
  123. package/bundled/locales/zh-CN/options/commit-message/bilingual.md +161 -0
  124. package/bundled/locales/zh-CN/options/commit-message/english.md +137 -0
  125. package/bundled/locales/zh-CN/options/commit-message/traditional-chinese.md +162 -0
  126. package/bundled/locales/zh-CN/options/git-workflow/gitflow.md +147 -0
  127. package/bundled/locales/zh-CN/options/git-workflow/github-flow.md +124 -0
  128. package/bundled/locales/zh-CN/options/git-workflow/merge-commit.md +124 -0
  129. package/bundled/locales/zh-CN/options/git-workflow/rebase-ff.md +160 -0
  130. package/bundled/locales/zh-CN/options/git-workflow/squash-merge.md +117 -0
  131. package/bundled/locales/zh-CN/options/git-workflow/trunk-based.md +125 -0
  132. package/bundled/locales/zh-CN/options/project-structure/dotnet.md +183 -0
  133. package/bundled/locales/zh-CN/options/project-structure/go.md +226 -0
  134. package/bundled/locales/zh-CN/options/project-structure/java.md +213 -0
  135. package/bundled/locales/zh-CN/options/project-structure/nodejs.md +185 -0
  136. package/bundled/locales/zh-CN/options/project-structure/python.md +229 -0
  137. package/bundled/locales/zh-CN/options/testing/e2e-testing.md +207 -0
  138. package/bundled/locales/zh-CN/options/testing/integration-testing.md +230 -0
  139. package/bundled/locales/zh-CN/options/testing/system-testing.md +183 -0
  140. package/bundled/locales/zh-CN/options/testing/unit-testing.md +165 -0
  141. package/bundled/locales/zh-CN/skills/INTEGRATION-GUIDE.md +218 -0
  142. package/bundled/locales/zh-CN/skills/README.md +134 -0
  143. package/bundled/locales/zh-CN/skills/_shared/README.md +68 -0
  144. package/bundled/locales/zh-CN/skills/claude-code/CONTRIBUTING.template.md +151 -0
  145. package/bundled/locales/zh-CN/skills/claude-code/README.md +174 -0
  146. package/bundled/locales/zh-CN/skills/claude-code/ai-collaboration-standards/SKILL.md +175 -0
  147. package/bundled/locales/zh-CN/skills/claude-code/ai-collaboration-standards/anti-hallucination.md +223 -0
  148. package/bundled/locales/zh-CN/skills/claude-code/ai-collaboration-standards/certainty-labels.md +132 -0
  149. package/bundled/locales/zh-CN/skills/claude-code/changelog-guide/SKILL.md +237 -0
  150. package/bundled/locales/zh-CN/skills/claude-code/checkin-assistant/SKILL.md +407 -0
  151. package/bundled/locales/zh-CN/skills/claude-code/code-review-assistant/SKILL.md +154 -0
  152. package/bundled/locales/zh-CN/skills/claude-code/code-review-assistant/checkin-checklist.md +257 -0
  153. package/bundled/locales/zh-CN/skills/claude-code/code-review-assistant/review-checklist.md +246 -0
  154. package/bundled/locales/zh-CN/skills/claude-code/commands/bdd.md +142 -0
  155. package/bundled/locales/zh-CN/skills/claude-code/commands/methodology.md +274 -0
  156. package/bundled/locales/zh-CN/skills/claude-code/commit-standards/SKILL.md +191 -0
  157. package/bundled/locales/zh-CN/skills/claude-code/commit-standards/conventional-commits.md +264 -0
  158. package/bundled/locales/zh-CN/skills/claude-code/commit-standards/language-options.md +172 -0
  159. package/bundled/locales/zh-CN/skills/claude-code/documentation-guide/SKILL.md +421 -0
  160. package/bundled/locales/zh-CN/skills/claude-code/documentation-guide/documentation-structure.md +357 -0
  161. package/bundled/locales/zh-CN/skills/claude-code/documentation-guide/readme-template.md +412 -0
  162. package/bundled/locales/zh-CN/skills/claude-code/error-code-guide/SKILL.md +269 -0
  163. package/bundled/locales/zh-CN/skills/claude-code/git-workflow-guide/SKILL.md +218 -0
  164. package/bundled/locales/zh-CN/skills/claude-code/git-workflow-guide/branch-naming.md +220 -0
  165. package/bundled/locales/zh-CN/skills/claude-code/git-workflow-guide/git-workflow.md +321 -0
  166. package/bundled/locales/zh-CN/skills/claude-code/logging-guide/SKILL.md +285 -0
  167. package/bundled/locales/zh-CN/skills/claude-code/methodology-system/SKILL.md +131 -0
  168. package/bundled/locales/zh-CN/skills/claude-code/methodology-system/create-methodology.md +350 -0
  169. package/bundled/locales/zh-CN/skills/claude-code/methodology-system/runtime.md +279 -0
  170. package/bundled/locales/zh-CN/skills/claude-code/project-structure-guide/SKILL.md +143 -0
  171. package/bundled/locales/zh-CN/skills/claude-code/project-structure-guide/language-patterns.md +271 -0
  172. package/bundled/locales/zh-CN/skills/claude-code/refactoring-assistant/SKILL.md +162 -0
  173. package/bundled/locales/zh-CN/skills/claude-code/release-standards/SKILL.md +191 -0
  174. package/bundled/locales/zh-CN/skills/claude-code/release-standards/changelog-format.md +247 -0
  175. package/bundled/locales/zh-CN/skills/claude-code/release-standards/release-workflow.md +345 -0
  176. package/bundled/locales/zh-CN/skills/claude-code/release-standards/semantic-versioning.md +250 -0
  177. package/bundled/locales/zh-CN/skills/claude-code/requirement-assistant/SKILL.md +227 -0
  178. package/bundled/locales/zh-CN/skills/claude-code/requirement-assistant/requirement-checklist.md +325 -0
  179. package/bundled/locales/zh-CN/skills/claude-code/requirement-assistant/requirement-writing.md +399 -0
  180. package/bundled/locales/zh-CN/skills/claude-code/spec-driven-dev/SKILL.md +243 -0
  181. package/bundled/locales/zh-CN/skills/claude-code/tdd-assistant/SKILL.md +332 -0
  182. package/bundled/locales/zh-CN/skills/claude-code/tdd-assistant/language-examples.md +639 -0
  183. package/bundled/locales/zh-CN/skills/claude-code/tdd-assistant/tdd-workflow.md +486 -0
  184. package/bundled/locales/zh-CN/skills/claude-code/test-coverage-assistant/SKILL.md +282 -0
  185. package/bundled/locales/zh-CN/skills/claude-code/testing-guide/SKILL.md +234 -0
  186. package/bundled/locales/zh-CN/skills/claude-code/testing-guide/testing-pyramid.md +448 -0
  187. package/bundled/locales/zh-CN/skills/cline/README.md +58 -0
  188. package/bundled/locales/zh-CN/skills/copilot/README.md +61 -0
  189. package/bundled/locales/zh-CN/skills/copilot/copilot-instructions.md +79 -0
  190. package/bundled/locales/zh-CN/skills/cursor/README.md +58 -0
  191. package/bundled/locales/zh-CN/skills/windsurf/README.md +59 -0
  192. package/bundled/locales/zh-TW/CHANGELOG.md +707 -0
  193. package/bundled/locales/zh-TW/CLAUDE.md +213 -0
  194. package/bundled/locales/zh-TW/MAINTENANCE.md +683 -0
  195. package/bundled/locales/zh-TW/README.md +687 -0
  196. package/bundled/locales/zh-TW/STANDARDS-MAPPING.md +177 -0
  197. package/bundled/locales/zh-TW/adoption/ADOPTION-GUIDE.md +392 -0
  198. package/bundled/locales/zh-TW/adoption/STATIC-DYNAMIC-GUIDE.md +299 -0
  199. package/bundled/locales/zh-TW/adoption/checklists/enterprise.md +332 -0
  200. package/bundled/locales/zh-TW/adoption/checklists/minimal.md +141 -0
  201. package/bundled/locales/zh-TW/adoption/checklists/recommended.md +272 -0
  202. package/bundled/locales/zh-TW/ai/MAINTENANCE.md +754 -0
  203. package/bundled/locales/zh-TW/ai/options/changelog/auto-generated.ai.yaml +76 -0
  204. package/bundled/locales/zh-TW/ai/options/changelog/keep-a-changelog.ai.yaml +99 -0
  205. package/bundled/locales/zh-TW/ai/options/code-review/automated-review.ai.yaml +120 -0
  206. package/bundled/locales/zh-TW/ai/options/code-review/pair-programming.ai.yaml +109 -0
  207. package/bundled/locales/zh-TW/ai/options/code-review/pr-review.ai.yaml +104 -0
  208. package/bundled/locales/zh-TW/ai/options/commit-message/bilingual.ai.yaml +105 -0
  209. package/bundled/locales/zh-TW/ai/options/commit-message/english.ai.yaml +79 -0
  210. package/bundled/locales/zh-TW/ai/options/commit-message/traditional-chinese.ai.yaml +100 -0
  211. package/bundled/locales/zh-TW/ai/options/documentation/api-docs.ai.yaml +140 -0
  212. package/bundled/locales/zh-TW/ai/options/documentation/markdown-docs.ai.yaml +89 -0
  213. package/bundled/locales/zh-TW/ai/options/documentation/wiki-style.ai.yaml +119 -0
  214. package/bundled/locales/zh-TW/ai/options/git-workflow/gitflow.ai.yaml +133 -0
  215. package/bundled/locales/zh-TW/ai/options/git-workflow/github-flow.ai.yaml +73 -0
  216. package/bundled/locales/zh-TW/ai/options/git-workflow/merge-commit.ai.yaml +88 -0
  217. package/bundled/locales/zh-TW/ai/options/git-workflow/rebase-ff.ai.yaml +113 -0
  218. package/bundled/locales/zh-TW/ai/options/git-workflow/squash-merge.ai.yaml +85 -0
  219. package/bundled/locales/zh-TW/ai/options/git-workflow/trunk-based.ai.yaml +117 -0
  220. package/bundled/locales/zh-TW/ai/options/project-structure/dotnet.ai.yaml +108 -0
  221. package/bundled/locales/zh-TW/ai/options/project-structure/go.ai.yaml +115 -0
  222. package/bundled/locales/zh-TW/ai/options/project-structure/java.ai.yaml +113 -0
  223. package/bundled/locales/zh-TW/ai/options/project-structure/kotlin.ai.yaml +123 -0
  224. package/bundled/locales/zh-TW/ai/options/project-structure/nodejs.ai.yaml +101 -0
  225. package/bundled/locales/zh-TW/ai/options/project-structure/php.ai.yaml +147 -0
  226. package/bundled/locales/zh-TW/ai/options/project-structure/python.ai.yaml +116 -0
  227. package/bundled/locales/zh-TW/ai/options/project-structure/ruby.ai.yaml +140 -0
  228. package/bundled/locales/zh-TW/ai/options/project-structure/rust.ai.yaml +117 -0
  229. package/bundled/locales/zh-TW/ai/options/project-structure/swift.ai.yaml +143 -0
  230. package/bundled/locales/zh-TW/ai/options/testing/contract-testing.ai.yaml +254 -0
  231. package/bundled/locales/zh-TW/ai/options/testing/e2e-testing.ai.yaml +116 -0
  232. package/bundled/locales/zh-TW/ai/options/testing/industry-pyramid.ai.yaml +144 -0
  233. package/bundled/locales/zh-TW/ai/options/testing/integration-testing.ai.yaml +90 -0
  234. package/bundled/locales/zh-TW/ai/options/testing/istqb-framework.ai.yaml +108 -0
  235. package/bundled/locales/zh-TW/ai/options/testing/performance-testing.ai.yaml +272 -0
  236. package/bundled/locales/zh-TW/ai/options/testing/security-testing.ai.yaml +160 -0
  237. package/bundled/locales/zh-TW/ai/options/testing/system-testing.ai.yaml +101 -0
  238. package/bundled/locales/zh-TW/ai/options/testing/unit-testing.ai.yaml +82 -0
  239. package/bundled/locales/zh-TW/ai/standards/anti-hallucination.ai.yaml +145 -0
  240. package/bundled/locales/zh-TW/ai/standards/changelog.ai.yaml +146 -0
  241. package/bundled/locales/zh-TW/ai/standards/checkin-standards.ai.yaml +170 -0
  242. package/bundled/locales/zh-TW/ai/standards/code-review.ai.yaml +148 -0
  243. package/bundled/locales/zh-TW/ai/standards/commit-message.ai.yaml +175 -0
  244. package/bundled/locales/zh-TW/ai/standards/documentation-structure.ai.yaml +124 -0
  245. package/bundled/locales/zh-TW/ai/standards/documentation-writing-standards.ai.yaml +190 -0
  246. package/bundled/locales/zh-TW/ai/standards/error-codes.ai.yaml +139 -0
  247. package/bundled/locales/zh-TW/ai/standards/git-workflow.ai.yaml +95 -0
  248. package/bundled/locales/zh-TW/ai/standards/logging.ai.yaml +128 -0
  249. package/bundled/locales/zh-TW/ai/standards/project-structure.ai.yaml +134 -0
  250. package/bundled/locales/zh-TW/ai/standards/spec-driven-development.ai.yaml +169 -0
  251. package/bundled/locales/zh-TW/ai/standards/test-completeness-dimensions.ai.yaml +220 -0
  252. package/bundled/locales/zh-TW/ai/standards/testing.ai.yaml +137 -0
  253. package/bundled/locales/zh-TW/ai/standards/versioning.ai.yaml +211 -0
  254. package/bundled/locales/zh-TW/core/ai-instruction-standards.md +213 -0
  255. package/bundled/locales/zh-TW/core/anti-hallucination.md +691 -0
  256. package/bundled/locales/zh-TW/core/changelog-standards.md +564 -0
  257. package/bundled/locales/zh-TW/core/checkin-standards.md +943 -0
  258. package/bundled/locales/zh-TW/core/code-review-checklist.md +693 -0
  259. package/bundled/locales/zh-TW/core/commit-message-guide.md +809 -0
  260. package/bundled/locales/zh-TW/core/documentation-structure.md +1125 -0
  261. package/bundled/locales/zh-TW/core/documentation-writing-standards.md +495 -0
  262. package/bundled/locales/zh-TW/core/error-code-standards.md +384 -0
  263. package/bundled/locales/zh-TW/core/git-workflow.md +860 -0
  264. package/bundled/locales/zh-TW/core/logging-standards.md +325 -0
  265. package/bundled/locales/zh-TW/core/project-structure.md +362 -0
  266. package/bundled/locales/zh-TW/core/refactoring-standards.md +642 -0
  267. package/bundled/locales/zh-TW/core/spec-driven-development.md +215 -0
  268. package/bundled/locales/zh-TW/core/test-completeness-dimensions.md +544 -0
  269. package/bundled/locales/zh-TW/core/test-driven-development.md +1004 -0
  270. package/bundled/locales/zh-TW/core/testing-standards.md +2158 -0
  271. package/bundled/locales/zh-TW/core/versioning.md +909 -0
  272. package/bundled/locales/zh-TW/docs/AI-AGENT-ROADMAP.md +303 -0
  273. package/bundled/locales/zh-TW/docs/CLI-INIT-OPTIONS.md +990 -0
  274. package/bundled/locales/zh-TW/docs/OPERATION-WORKFLOW.md +1064 -0
  275. package/bundled/locales/zh-TW/docs/USAGE-MODES-COMPARISON.md +333 -0
  276. package/bundled/locales/zh-TW/docs/WINDOWS-GUIDE.md +215 -0
  277. package/bundled/locales/zh-TW/integrations/codex/AGENTS.md +115 -0
  278. package/bundled/locales/zh-TW/integrations/codex/README.md +113 -0
  279. package/bundled/locales/zh-TW/integrations/gemini-cli/GEMINI.md +102 -0
  280. package/bundled/locales/zh-TW/integrations/gemini-cli/README.md +140 -0
  281. package/bundled/locales/zh-TW/integrations/github-copilot/COPILOT-CHAT-REFERENCE.md +269 -0
  282. package/bundled/locales/zh-TW/integrations/github-copilot/README.md +167 -0
  283. package/bundled/locales/zh-TW/integrations/github-copilot/copilot-instructions.md +263 -0
  284. package/bundled/locales/zh-TW/integrations/github-copilot/skills-mapping.md +192 -0
  285. package/bundled/locales/zh-TW/integrations/google-antigravity/INSTRUCTIONS.md +61 -0
  286. package/bundled/locales/zh-TW/integrations/google-antigravity/README.md +84 -0
  287. package/bundled/locales/zh-TW/integrations/opencode/AGENTS.md +111 -0
  288. package/bundled/locales/zh-TW/integrations/opencode/README.md +176 -0
  289. package/bundled/locales/zh-TW/integrations/opencode/skills-mapping.md +396 -0
  290. package/bundled/locales/zh-TW/integrations/openspec/AGENTS.md +301 -0
  291. package/bundled/locales/zh-TW/integrations/openspec/README.md +43 -0
  292. package/bundled/locales/zh-TW/integrations/spec-kit/AGENTS.md +184 -0
  293. package/bundled/locales/zh-TW/integrations/spec-kit/README.md +43 -0
  294. package/bundled/locales/zh-TW/options/commit-message/bilingual.md +161 -0
  295. package/bundled/locales/zh-TW/options/commit-message/english.md +137 -0
  296. package/bundled/locales/zh-TW/options/commit-message/traditional-chinese.md +162 -0
  297. package/bundled/locales/zh-TW/options/git-workflow/gitflow.md +147 -0
  298. package/bundled/locales/zh-TW/options/git-workflow/github-flow.md +124 -0
  299. package/bundled/locales/zh-TW/options/git-workflow/merge-commit.md +124 -0
  300. package/bundled/locales/zh-TW/options/git-workflow/rebase-ff.md +160 -0
  301. package/bundled/locales/zh-TW/options/git-workflow/squash-merge.md +117 -0
  302. package/bundled/locales/zh-TW/options/git-workflow/trunk-based.md +125 -0
  303. package/bundled/locales/zh-TW/options/project-structure/dotnet.md +183 -0
  304. package/bundled/locales/zh-TW/options/project-structure/go.md +226 -0
  305. package/bundled/locales/zh-TW/options/project-structure/java.md +213 -0
  306. package/bundled/locales/zh-TW/options/project-structure/nodejs.md +185 -0
  307. package/bundled/locales/zh-TW/options/project-structure/python.md +229 -0
  308. package/bundled/locales/zh-TW/options/testing/e2e-testing.md +207 -0
  309. package/bundled/locales/zh-TW/options/testing/integration-testing.md +230 -0
  310. package/bundled/locales/zh-TW/options/testing/system-testing.md +183 -0
  311. package/bundled/locales/zh-TW/options/testing/unit-testing.md +165 -0
  312. package/bundled/locales/zh-TW/skills/INTEGRATION-GUIDE.md +218 -0
  313. package/bundled/locales/zh-TW/skills/README.md +132 -0
  314. package/bundled/locales/zh-TW/skills/_shared/README.md +68 -0
  315. package/bundled/locales/zh-TW/skills/claude-code/CONTRIBUTING.template.md +151 -0
  316. package/bundled/locales/zh-TW/skills/claude-code/README.md +174 -0
  317. package/bundled/locales/zh-TW/skills/claude-code/ai-collaboration-standards/SKILL.md +175 -0
  318. package/bundled/locales/zh-TW/skills/claude-code/ai-collaboration-standards/anti-hallucination.md +223 -0
  319. package/bundled/locales/zh-TW/skills/claude-code/ai-collaboration-standards/certainty-labels.md +132 -0
  320. package/bundled/locales/zh-TW/skills/claude-code/changelog-guide/SKILL.md +237 -0
  321. package/bundled/locales/zh-TW/skills/claude-code/checkin-assistant/SKILL.md +407 -0
  322. package/bundled/locales/zh-TW/skills/claude-code/code-review-assistant/SKILL.md +154 -0
  323. package/bundled/locales/zh-TW/skills/claude-code/code-review-assistant/checkin-checklist.md +257 -0
  324. package/bundled/locales/zh-TW/skills/claude-code/code-review-assistant/review-checklist.md +246 -0
  325. package/bundled/locales/zh-TW/skills/claude-code/commands/bdd.md +142 -0
  326. package/bundled/locales/zh-TW/skills/claude-code/commands/methodology.md +274 -0
  327. package/bundled/locales/zh-TW/skills/claude-code/commit-standards/SKILL.md +191 -0
  328. package/bundled/locales/zh-TW/skills/claude-code/commit-standards/conventional-commits.md +264 -0
  329. package/bundled/locales/zh-TW/skills/claude-code/commit-standards/language-options.md +172 -0
  330. package/bundled/locales/zh-TW/skills/claude-code/documentation-guide/SKILL.md +421 -0
  331. package/bundled/locales/zh-TW/skills/claude-code/documentation-guide/documentation-structure.md +357 -0
  332. package/bundled/locales/zh-TW/skills/claude-code/documentation-guide/readme-template.md +412 -0
  333. package/bundled/locales/zh-TW/skills/claude-code/error-code-guide/SKILL.md +269 -0
  334. package/bundled/locales/zh-TW/skills/claude-code/git-workflow-guide/SKILL.md +218 -0
  335. package/bundled/locales/zh-TW/skills/claude-code/git-workflow-guide/branch-naming.md +220 -0
  336. package/bundled/locales/zh-TW/skills/claude-code/git-workflow-guide/git-workflow.md +321 -0
  337. package/bundled/locales/zh-TW/skills/claude-code/logging-guide/SKILL.md +285 -0
  338. package/bundled/locales/zh-TW/skills/claude-code/methodology-system/SKILL.md +131 -0
  339. package/bundled/locales/zh-TW/skills/claude-code/methodology-system/create-methodology.md +350 -0
  340. package/bundled/locales/zh-TW/skills/claude-code/methodology-system/runtime.md +279 -0
  341. package/bundled/locales/zh-TW/skills/claude-code/project-structure-guide/SKILL.md +143 -0
  342. package/bundled/locales/zh-TW/skills/claude-code/project-structure-guide/language-patterns.md +271 -0
  343. package/bundled/locales/zh-TW/skills/claude-code/refactoring-assistant/SKILL.md +162 -0
  344. package/bundled/locales/zh-TW/skills/claude-code/release-standards/SKILL.md +191 -0
  345. package/bundled/locales/zh-TW/skills/claude-code/release-standards/changelog-format.md +247 -0
  346. package/bundled/locales/zh-TW/skills/claude-code/release-standards/release-workflow.md +345 -0
  347. package/bundled/locales/zh-TW/skills/claude-code/release-standards/semantic-versioning.md +250 -0
  348. package/bundled/locales/zh-TW/skills/claude-code/requirement-assistant/SKILL.md +227 -0
  349. package/bundled/locales/zh-TW/skills/claude-code/requirement-assistant/requirement-checklist.md +325 -0
  350. package/bundled/locales/zh-TW/skills/claude-code/requirement-assistant/requirement-writing.md +399 -0
  351. package/bundled/locales/zh-TW/skills/claude-code/spec-driven-dev/SKILL.md +243 -0
  352. package/bundled/locales/zh-TW/skills/claude-code/tdd-assistant/SKILL.md +332 -0
  353. package/bundled/locales/zh-TW/skills/claude-code/tdd-assistant/language-examples.md +639 -0
  354. package/bundled/locales/zh-TW/skills/claude-code/tdd-assistant/tdd-workflow.md +486 -0
  355. package/bundled/locales/zh-TW/skills/claude-code/test-coverage-assistant/SKILL.md +282 -0
  356. package/bundled/locales/zh-TW/skills/claude-code/testing-guide/SKILL.md +234 -0
  357. package/bundled/locales/zh-TW/skills/claude-code/testing-guide/testing-pyramid.md +448 -0
  358. package/bundled/locales/zh-TW/skills/cline/README.md +58 -0
  359. package/bundled/locales/zh-TW/skills/copilot/README.md +61 -0
  360. package/bundled/locales/zh-TW/skills/copilot/copilot-instructions.md +79 -0
  361. package/bundled/locales/zh-TW/skills/cursor/README.md +58 -0
  362. package/bundled/locales/zh-TW/skills/windsurf/README.md +59 -0
  363. package/bundled/skills/claude-code/CONTRIBUTING.template.md +141 -0
  364. package/bundled/skills/claude-code/README.md +196 -0
  365. package/bundled/skills/claude-code/ai/standards/checkin.ai.yaml +21 -0
  366. package/bundled/skills/claude-code/ai/standards/commit.ai.yaml +20 -0
  367. package/bundled/skills/claude-code/ai/standards/refactoring.ai.yaml +34 -0
  368. package/bundled/skills/claude-code/ai/standards/testing.ai.yaml +41 -0
  369. package/bundled/skills/claude-code/ai-collaboration-standards/SKILL.md +175 -0
  370. package/bundled/skills/claude-code/ai-collaboration-standards/anti-hallucination.md +215 -0
  371. package/bundled/skills/claude-code/ai-collaboration-standards/certainty-labels.md +124 -0
  372. package/bundled/skills/claude-code/changelog-guide/SKILL.md +232 -0
  373. package/bundled/skills/claude-code/checkin-assistant/SKILL.md +402 -0
  374. package/bundled/skills/claude-code/code-review-assistant/SKILL.md +220 -0
  375. package/bundled/skills/claude-code/code-review-assistant/checkin-checklist.md +249 -0
  376. package/bundled/skills/claude-code/code-review-assistant/review-checklist.md +238 -0
  377. package/bundled/skills/claude-code/commands/README.md +78 -0
  378. package/bundled/skills/claude-code/commands/bdd.md +142 -0
  379. package/bundled/skills/claude-code/commands/changelog.md +57 -0
  380. package/bundled/skills/claude-code/commands/check.md +91 -0
  381. package/bundled/skills/claude-code/commands/commit.md +48 -0
  382. package/bundled/skills/claude-code/commands/config.md +97 -0
  383. package/bundled/skills/claude-code/commands/coverage.md +58 -0
  384. package/bundled/skills/claude-code/commands/docs.md +75 -0
  385. package/bundled/skills/claude-code/commands/init.md +88 -0
  386. package/bundled/skills/claude-code/commands/methodology.md +268 -0
  387. package/bundled/skills/claude-code/commands/release.md +50 -0
  388. package/bundled/skills/claude-code/commands/requirement.md +54 -0
  389. package/bundled/skills/claude-code/commands/review.md +50 -0
  390. package/bundled/skills/claude-code/commands/spec.md +69 -0
  391. package/bundled/skills/claude-code/commands/tdd.md +86 -0
  392. package/bundled/skills/claude-code/commands/update.md +122 -0
  393. package/bundled/skills/claude-code/commit-standards/SKILL.md +249 -0
  394. package/bundled/skills/claude-code/commit-standards/conventional-commits.md +256 -0
  395. package/bundled/skills/claude-code/commit-standards/language-options.md +164 -0
  396. package/bundled/skills/claude-code/documentation-guide/SKILL.md +416 -0
  397. package/bundled/skills/claude-code/documentation-guide/documentation-structure.md +349 -0
  398. package/bundled/skills/claude-code/documentation-guide/readme-template.md +404 -0
  399. package/bundled/skills/claude-code/error-code-guide/SKILL.md +264 -0
  400. package/bundled/skills/claude-code/git-workflow-guide/SKILL.md +226 -0
  401. package/bundled/skills/claude-code/git-workflow-guide/branch-naming.md +212 -0
  402. package/bundled/skills/claude-code/git-workflow-guide/git-workflow.md +313 -0
  403. package/bundled/skills/claude-code/logging-guide/SKILL.md +280 -0
  404. package/bundled/skills/claude-code/methodology-system/SKILL.md +215 -0
  405. package/bundled/skills/claude-code/methodology-system/create-methodology.md +450 -0
  406. package/bundled/skills/claude-code/methodology-system/runtime.md +271 -0
  407. package/bundled/skills/claude-code/project-structure-guide/SKILL.md +143 -0
  408. package/bundled/skills/claude-code/project-structure-guide/language-patterns.md +263 -0
  409. package/bundled/skills/claude-code/refactoring-assistant/SKILL.md +205 -0
  410. package/bundled/skills/claude-code/release-standards/SKILL.md +191 -0
  411. package/bundled/skills/claude-code/release-standards/changelog-format.md +239 -0
  412. package/bundled/skills/claude-code/release-standards/release-workflow.md +337 -0
  413. package/bundled/skills/claude-code/release-standards/semantic-versioning.md +242 -0
  414. package/bundled/skills/claude-code/requirement-assistant/SKILL.md +222 -0
  415. package/bundled/skills/claude-code/requirement-assistant/requirement-checklist.md +317 -0
  416. package/bundled/skills/claude-code/requirement-assistant/requirement-writing.md +391 -0
  417. package/bundled/skills/claude-code/spec-driven-dev/SKILL.md +238 -0
  418. package/bundled/skills/claude-code/tdd-assistant/SKILL.md +384 -0
  419. package/bundled/skills/claude-code/tdd-assistant/language-examples.md +1276 -0
  420. package/bundled/skills/claude-code/tdd-assistant/tdd-workflow.md +659 -0
  421. package/bundled/skills/claude-code/test-coverage-assistant/SKILL.md +277 -0
  422. package/bundled/skills/claude-code/testing-guide/SKILL.md +317 -0
  423. package/bundled/skills/claude-code/testing-guide/testing-pyramid.md +440 -0
  424. package/package.json +4 -2
  425. package/src/commands/check.js +38 -6
  426. package/src/commands/init.js +20 -6
  427. package/src/commands/list.js +7 -2
  428. package/src/commands/skills.js +0 -2
  429. package/src/commands/update.js +271 -0
  430. package/src/i18n/messages.js +161 -11
  431. package/src/utils/copier.js +63 -10
  432. package/src/utils/skills-installer.js +47 -11
  433. package/standards-registry.json +6 -3
@@ -26,6 +26,7 @@ import {
26
26
  } from '../utils/skills-installer.js';
27
27
  import {
28
28
  getAgentDisplayName,
29
+ getAgentConfig,
29
30
  getSkillsDirForAgent,
30
31
  getCommandsDirForAgent
31
32
  } from '../config/ai-agent-paths.js';
@@ -404,6 +405,83 @@ export async function updateCommand(options) {
404
405
  }
405
406
  }
406
407
 
408
+ // Check for new features (Skills/Commands) not yet installed
409
+ if (!options.standardsOnly) {
410
+ const { missingSkills, missingCommands } = checkNewFeatures(projectPath, manifest);
411
+
412
+ if (missingSkills.length > 0 || missingCommands.length > 0) {
413
+ if (!options.yes) {
414
+ // Interactive mode: prompt user to install
415
+ const { installSkills, installCommands } = await promptNewFeatureInstallation(
416
+ missingSkills,
417
+ missingCommands
418
+ );
419
+
420
+ // Install Skills if user agreed
421
+ if (installSkills.length > 0) {
422
+ const skillSpinner = ora(msg.installingNewSkills || 'Installing Skills...').start();
423
+ const skillResult = await installSkillsToMultipleAgents(installSkills, null, projectPath);
424
+
425
+ // Update manifest
426
+ if (!manifest.skills) manifest.skills = {};
427
+ manifest.skills.installed = true;
428
+ manifest.skills.version = repoInfo.skills.version;
429
+ manifest.skills.installations = [
430
+ ...(manifest.skills.installations || []),
431
+ ...installSkills
432
+ ];
433
+
434
+ if (skillResult.totalErrors === 0) {
435
+ skillSpinner.succeed((msg.newSkillsInstalled || 'Installed Skills for {count} AI tools')
436
+ .replace('{count}', installSkills.length));
437
+ } else {
438
+ skillSpinner.warn((msg.newSkillsInstalledWithErrors || 'Installed Skills with {errors} errors')
439
+ .replace('{errors}', skillResult.totalErrors));
440
+ }
441
+ }
442
+
443
+ // Install Commands if user agreed
444
+ if (installCommands.length > 0) {
445
+ const cmdSpinner = ora(msg.installingNewCommands || 'Installing commands...').start();
446
+ const cmdResult = await installCommandsToMultipleAgents(installCommands, null, projectPath);
447
+
448
+ // Update manifest
449
+ if (!manifest.commands) manifest.commands = {};
450
+ manifest.commands.installed = true;
451
+ manifest.commands.installations = [
452
+ ...(manifest.commands.installations || []),
453
+ ...installCommands
454
+ ];
455
+
456
+ if (cmdResult.totalErrors === 0) {
457
+ cmdSpinner.succeed((msg.newCommandsInstalled || 'Installed commands for {count} AI tools')
458
+ .replace('{count}', installCommands.length));
459
+ } else {
460
+ cmdSpinner.warn((msg.newCommandsInstalledWithErrors || 'Installed commands with {errors} errors')
461
+ .replace('{errors}', cmdResult.totalErrors));
462
+ }
463
+ }
464
+
465
+ // Write updated manifest if anything was installed
466
+ if (installSkills.length > 0 || installCommands.length > 0) {
467
+ writeManifest(manifest, projectPath);
468
+ }
469
+ } else {
470
+ // --yes mode: show hint but don't auto-install (conservative behavior)
471
+ console.log();
472
+ console.log(chalk.cyan(msg.newFeaturesAvailableHint || 'Note: New features available for your AI tools'));
473
+ if (missingSkills.length > 0) {
474
+ const toolNames = missingSkills.map(s => s.displayName).join(', ');
475
+ console.log(chalk.gray(` • Skills (${toolNames}): run "uds update --skills" or "uds init" to install`));
476
+ }
477
+ if (missingCommands.length > 0) {
478
+ const toolNames = missingCommands.map(c => c.displayName).join(', ');
479
+ console.log(chalk.gray(` • Commands (${toolNames}): run "uds update --commands" or "uds init" to install`));
480
+ }
481
+ }
482
+ }
483
+ }
484
+
407
485
  // Skills update reminder
408
486
  if (manifest.skills?.installed) {
409
487
  const skillsVersion = repoInfo.skills.version;
@@ -835,3 +913,196 @@ async function updateCommandsOnly(projectPath, manifest) {
835
913
  console.log();
836
914
  process.exit(0);
837
915
  }
916
+
917
+ /**
918
+ * Check manifest.aiTools and detect missing Skills/Commands
919
+ * @param {string} projectPath - Project path
920
+ * @param {Object} manifest - Manifest object
921
+ * @returns {{missingSkills: Array, missingCommands: Array}}
922
+ */
923
+ function checkNewFeatures(projectPath, manifest) {
924
+ const aiTools = manifest.aiTools || [];
925
+
926
+ if (aiTools.length === 0) {
927
+ return { missingSkills: [], missingCommands: [] };
928
+ }
929
+
930
+ const missingSkills = [];
931
+ const missingCommands = [];
932
+
933
+ for (const tool of aiTools) {
934
+ const config = getAgentConfig(tool);
935
+ if (!config) continue;
936
+
937
+ // Check Skills support
938
+ if (config.supportsSkills && config.skills) {
939
+ // Check if skills are installed for this agent
940
+ const projectInfo = getInstalledSkillsInfoForAgent(tool, 'project', projectPath);
941
+ const userInfo = getInstalledSkillsInfoForAgent(tool, 'user');
942
+
943
+ // Check if already in manifest.skills.installations
944
+ const existingInstallations = manifest.skills?.installations || [];
945
+ const isInManifest = existingInstallations.some(
946
+ inst => inst.agent === tool || (inst.agent === 'claude-code' && tool === 'claude-code')
947
+ );
948
+
949
+ // Check if using marketplace (Claude Code only)
950
+ const usingMarketplace = manifest.skills?.location === 'marketplace' && tool === 'claude-code';
951
+
952
+ const hasSkills = projectInfo?.installed || userInfo?.installed || isInManifest || usingMarketplace;
953
+
954
+ if (!hasSkills) {
955
+ missingSkills.push({
956
+ agent: tool,
957
+ displayName: getAgentDisplayName(tool),
958
+ paths: config.skills
959
+ });
960
+ }
961
+ }
962
+
963
+ // Check Commands support
964
+ if (config.commands !== null && config.commands) {
965
+ const cmdInfo = getInstalledCommandsForAgent(tool, projectPath);
966
+
967
+ // Check if already in manifest.commands.installations
968
+ const existingCmdInstallations = manifest.commands?.installations || [];
969
+ const isInCmdManifest = existingCmdInstallations.includes(tool);
970
+
971
+ const hasCommands = cmdInfo?.installed || isInCmdManifest;
972
+
973
+ if (!hasCommands) {
974
+ missingCommands.push({
975
+ agent: tool,
976
+ displayName: getAgentDisplayName(tool),
977
+ path: config.commands.project
978
+ });
979
+ }
980
+ }
981
+ }
982
+
983
+ return { missingSkills, missingCommands };
984
+ }
985
+
986
+ /**
987
+ * Prompt user to install new features discovered during update
988
+ * @param {Array} missingSkills - Array of {agent, displayName, paths}
989
+ * @param {Array} missingCommands - Array of {agent, displayName, path}
990
+ * @returns {Promise<{installSkills: Array, installCommands: Array}>}
991
+ */
992
+ async function promptNewFeatureInstallation(missingSkills, missingCommands) {
993
+ const msg = t().commands.update;
994
+
995
+ // If nothing missing, return empty
996
+ if (missingSkills.length === 0 && missingCommands.length === 0) {
997
+ return { installSkills: [], installCommands: [] };
998
+ }
999
+
1000
+ console.log();
1001
+ console.log(chalk.cyan('━'.repeat(50)));
1002
+ console.log(chalk.cyan.bold(msg.newFeaturesAvailable || 'New Features Available'));
1003
+ console.log(chalk.cyan('━'.repeat(50)));
1004
+ console.log();
1005
+
1006
+ const result = { installSkills: [], installCommands: [] };
1007
+
1008
+ // Handle missing Skills with checkbox selection
1009
+ if (missingSkills.length > 0) {
1010
+ console.log(chalk.yellow(msg.skillsNotInstalledFor || 'Skills not yet installed for these AI tools:'));
1011
+ for (const skill of missingSkills) {
1012
+ console.log(chalk.gray(` • ${skill.displayName}`));
1013
+ }
1014
+ console.log();
1015
+
1016
+ // Build checkbox choices
1017
+ const skillChoices = missingSkills.map(skill => ({
1018
+ name: skill.displayName,
1019
+ value: skill.agent,
1020
+ checked: true // Default checked for opt-out behavior
1021
+ }));
1022
+
1023
+ // Add skip option
1024
+ skillChoices.push(new inquirer.Separator());
1025
+ skillChoices.push({
1026
+ name: chalk.gray(msg.skipSkillsInstallation || 'Skip Skills installation'),
1027
+ value: '__skip__'
1028
+ });
1029
+
1030
+ const { selectedSkillAgents } = await inquirer.prompt([{
1031
+ type: 'checkbox',
1032
+ name: 'selectedSkillAgents',
1033
+ message: msg.selectSkillsToInstall || 'Select AI tools to install Skills for:',
1034
+ choices: skillChoices,
1035
+ validate: (answer) => {
1036
+ // If skip is selected, ensure it's the only selection
1037
+ if (answer.includes('__skip__') && answer.length > 1) {
1038
+ return msg.skipValidationError || 'Cannot select Skip with other options';
1039
+ }
1040
+ return true;
1041
+ }
1042
+ }]);
1043
+
1044
+ // Filter out skip and handle selection
1045
+ const filteredSkillAgents = selectedSkillAgents.filter(a => a !== '__skip__');
1046
+
1047
+ if (filteredSkillAgents.length > 0) {
1048
+ // Prompt for installation level
1049
+ const { skillsLevel } = await inquirer.prompt([{
1050
+ type: 'list',
1051
+ name: 'skillsLevel',
1052
+ message: msg.skillsLevelQuestion || 'Where should Skills be installed?',
1053
+ choices: [
1054
+ { name: `${msg.projectLevel || 'Project level'} (.claude/skills/, etc.)`, value: 'project' },
1055
+ { name: `${msg.userLevel || 'User level'} (~/.claude/skills/, etc.)`, value: 'user' }
1056
+ ],
1057
+ default: 'project'
1058
+ }]);
1059
+
1060
+ result.installSkills = filteredSkillAgents.map(agent => ({
1061
+ agent,
1062
+ level: skillsLevel
1063
+ }));
1064
+ }
1065
+ console.log();
1066
+ }
1067
+
1068
+ // Handle missing Commands with checkbox selection
1069
+ if (missingCommands.length > 0) {
1070
+ console.log(chalk.yellow(msg.commandsNotInstalledFor || 'Slash commands not yet installed for these AI tools:'));
1071
+ for (const cmd of missingCommands) {
1072
+ console.log(chalk.gray(` • ${cmd.displayName} → ${cmd.path}`));
1073
+ }
1074
+ console.log();
1075
+
1076
+ // Build checkbox choices
1077
+ const commandChoices = missingCommands.map(cmd => ({
1078
+ name: `${cmd.displayName} ${chalk.gray(`(${cmd.path})`)}`,
1079
+ value: cmd.agent,
1080
+ checked: true // Default checked for opt-out behavior
1081
+ }));
1082
+
1083
+ // Add skip option
1084
+ commandChoices.push(new inquirer.Separator());
1085
+ commandChoices.push({
1086
+ name: chalk.gray(msg.skipCommandsInstallation || 'Skip Commands installation'),
1087
+ value: '__skip__'
1088
+ });
1089
+
1090
+ const { selectedCommandAgents } = await inquirer.prompt([{
1091
+ type: 'checkbox',
1092
+ name: 'selectedCommandAgents',
1093
+ message: msg.selectCommandsToInstall || 'Select AI tools to install Commands for:',
1094
+ choices: commandChoices,
1095
+ validate: (answer) => {
1096
+ if (answer.includes('__skip__') && answer.length > 1) {
1097
+ return msg.skipValidationError || 'Cannot select Skip with other options';
1098
+ }
1099
+ return true;
1100
+ }
1101
+ }]);
1102
+
1103
+ // Filter out skip
1104
+ result.installCommands = selectedCommandAgents.filter(a => a !== '__skip__');
1105
+ }
1106
+
1107
+ return result;
1108
+ }
@@ -594,7 +594,17 @@ export const messages = {
594
594
  runNpmUpdate: 'Run: npm update -g universal-dev-standards',
595
595
  // Final status
596
596
  projectCompliant: '✓ Project is compliant with standards',
597
- issuesDetected: '⚠ Some issues detected. Review above for details.'
597
+ issuesDetected: '⚠ Some issues detected. Review above for details.',
598
+ // Installation prompts
599
+ offerSkillsInstallation: 'Skills Installation',
600
+ offerCommandsInstallation: 'Commands Installation',
601
+ selectSkillsToInstall: 'Select AI tools to install Skills for:',
602
+ selectCommandsToInstall: 'Select AI tools to install Commands for:',
603
+ skipInstallation: 'Skip',
604
+ skillsInstalledSuccess: 'Installed Skills for {count} AI tools',
605
+ commandsInstalledSuccess: 'Installed commands for {count} AI tools',
606
+ // Read-only hint
607
+ missingSkillsHint: 'Tip: Run `uds update` to install missing Skills/Commands'
598
608
  },
599
609
 
600
610
  // init command (commands/init.js)
@@ -744,7 +754,28 @@ export const messages = {
744
754
  categoriesChanged: 'Categories: {old} → {new}',
745
755
  failedToUpdate: '✗ Failed to update {path}: {error}',
746
756
  updatedCount: '✓ Updated {count} integration file(s)',
747
- skippedCount: 'Skipped {count} file(s) (already in sync or not found)'
757
+ skippedCount: 'Skipped {count} file(s) (already in sync or not found)',
758
+ // New features discovery
759
+ newFeaturesAvailable: 'New Features Available',
760
+ newFeaturesAvailableHint: 'Note: New features available for your AI tools',
761
+ skillsNotInstalledFor: 'Skills not yet installed for these AI tools:',
762
+ commandsNotInstalledFor: 'Slash commands not yet installed for these AI tools:',
763
+ installSkillsNow: 'Would you like to install Skills for these AI tools?',
764
+ installCommandsNow: 'Would you like to install slash commands for these AI tools?',
765
+ selectSkillsToInstall: 'Select AI tools to install Skills for:',
766
+ selectCommandsToInstall: 'Select AI tools to install Commands for:',
767
+ skipSkillsInstallation: 'Skip Skills installation',
768
+ skipCommandsInstallation: 'Skip Commands installation',
769
+ skipValidationError: 'Cannot select Skip with other options',
770
+ skillsLevelQuestion: 'Where should Skills be installed?',
771
+ projectLevel: 'Project level',
772
+ userLevel: 'User level',
773
+ installingNewSkills: 'Installing Skills...',
774
+ installingNewCommands: 'Installing commands...',
775
+ newSkillsInstalled: 'Installed Skills for {count} AI tools',
776
+ newSkillsInstalledWithErrors: 'Installed Skills with {errors} errors',
777
+ newCommandsInstalled: 'Installed commands for {count} AI tools',
778
+ newCommandsInstalledWithErrors: 'Installed commands with {errors} errors'
748
779
  },
749
780
 
750
781
  // configure command
@@ -1403,7 +1434,17 @@ export const messages = {
1403
1434
  runNpmUpdate: '執行:npm update -g universal-dev-standards',
1404
1435
  // Final status
1405
1436
  projectCompliant: '✓ 專案符合標準',
1406
- issuesDetected: '⚠ 偵測到一些問題。請檢視上方詳情。'
1437
+ issuesDetected: '⚠ 偵測到一些問題。請檢視上方詳情。',
1438
+ // Installation prompts
1439
+ offerSkillsInstallation: 'Skills 安裝',
1440
+ offerCommandsInstallation: '斜線命令安裝',
1441
+ selectSkillsToInstall: '選擇要安裝 Skills 的 AI 工具:',
1442
+ selectCommandsToInstall: '選擇要安裝斜線命令的 AI 工具:',
1443
+ skipInstallation: '跳過',
1444
+ skillsInstalledSuccess: '已為 {count} 個 AI 工具安裝 Skills',
1445
+ commandsInstalledSuccess: '已為 {count} 個 AI 工具安裝斜線命令',
1446
+ // Read-only hint
1447
+ missingSkillsHint: '提示:執行 `uds update` 安裝缺少的 Skills/斜線命令'
1407
1448
  },
1408
1449
 
1409
1450
  // init command (commands/init.js)
@@ -1553,7 +1594,28 @@ export const messages = {
1553
1594
  categoriesChanged: '分類:{old} → {new}',
1554
1595
  failedToUpdate: '✗ 更新 {path} 失敗:{error}',
1555
1596
  updatedCount: '✓ 已更新 {count} 個整合檔案',
1556
- skippedCount: '已跳過 {count} 個檔案(已同步或找不到)'
1597
+ skippedCount: '已跳過 {count} 個檔案(已同步或找不到)',
1598
+ // New features discovery
1599
+ newFeaturesAvailable: '發現新功能',
1600
+ newFeaturesAvailableHint: '提示:您的 AI 工具有新功能可用',
1601
+ skillsNotInstalledFor: '以下 AI 工具尚未安裝 Skills:',
1602
+ commandsNotInstalledFor: '以下 AI 工具尚未安裝斜線命令:',
1603
+ installSkillsNow: '是否要為這些 AI 工具安裝 Skills?',
1604
+ installCommandsNow: '是否要為這些 AI 工具安裝斜線命令?',
1605
+ selectSkillsToInstall: '選擇要安裝 Skills 的 AI 工具:',
1606
+ selectCommandsToInstall: '選擇要安裝斜線命令的 AI 工具:',
1607
+ skipSkillsInstallation: '跳過 Skills 安裝',
1608
+ skipCommandsInstallation: '跳過斜線命令安裝',
1609
+ skipValidationError: '選擇「跳過」時不能同時選擇其他選項',
1610
+ skillsLevelQuestion: 'Skills 要安裝到哪裡?',
1611
+ projectLevel: '專案層級',
1612
+ userLevel: '使用者層級',
1613
+ installingNewSkills: '安裝 Skills 中...',
1614
+ installingNewCommands: '安裝斜線命令中...',
1615
+ newSkillsInstalled: '已為 {count} 個 AI 工具安裝 Skills',
1616
+ newSkillsInstalledWithErrors: '安裝 Skills 時發生 {errors} 個錯誤',
1617
+ newCommandsInstalled: '已為 {count} 個 AI 工具安裝斜線命令',
1618
+ newCommandsInstalledWithErrors: '安裝斜線命令時發生 {errors} 個錯誤'
1557
1619
  },
1558
1620
 
1559
1621
  // configure command
@@ -1908,14 +1970,71 @@ export const messages = {
1908
1970
  // init command
1909
1971
  init: {
1910
1972
  title: '通用开发标准 - 初始化',
1911
- alreadyInitialized: '⚠ 此项目已经初始化标准。',
1973
+ alreadyInitialized: '⚠ 此项目已初始化标准。',
1912
1974
  useUpdateOrDelete: '使用 `uds update` 更新,或删除 .standards/ 重新初始化。',
1913
- success: '✓ 标准初始化成功!',
1914
- filesCopied: '{count} 文件已复制到项目',
1915
- nextSteps: '下一步:',
1975
+ // Detection
1976
+ detectingProject: '正在检测项目特性...',
1977
+ analysisComplete: '项目分析完成',
1978
+ languages: '编程语言',
1979
+ frameworks: '框架',
1980
+ aiTools: 'AI 工具',
1981
+ // Skills status
1982
+ skillsStatus: 'Skills 状态:',
1983
+ projectLevel: '项目级别',
1984
+ userLevel: '用户级别',
1985
+ notInstalled: '未安装',
1986
+ noSkillsDetected: '未检测到 Skills 安装',
1987
+ // Integration
1988
+ integrationConfig: '集成配置:',
1989
+ sharedRuleConfig: '所有选中的工具将共享相同的规则配置。',
1990
+ // Config summary
1991
+ configSummary: '配置摘要:',
1992
+ standardsScope: '标准范围',
1993
+ standardsScopeLean: '精简(Skills 处理其余)',
1994
+ standardsScopeComplete: '完整',
1995
+ contentModeLabel: '内容模式',
1996
+ contentModeFull: '完整嵌入',
1997
+ contentModeIndex: '标准(推荐)',
1998
+ contentModeMinimal: '最小(仅核心)',
1999
+ locale: '地区设置',
2000
+ localeDefault: '默认(英文)',
2001
+ integrations: '集成',
2002
+ skillsLabel: 'Skills',
2003
+ skillsMarketplace: 'Plugin Marketplace(由 Claude Code 管理)',
2004
+ skillsInstallTo: '安装/更新到 {location}',
2005
+ skillsUsingExisting: '使用现有({location})',
2006
+ gitWorkflow: 'Git 工作流',
2007
+ mergeStrategy: '合并策略',
2008
+ commitLanguage: '提交消息语言',
2009
+ testLevels: '测试级别',
2010
+ // Prompts
2011
+ proceedInstall: '继续安装?',
2012
+ installCancelled: '安装已取消。',
2013
+ // Spinners
2014
+ copyingStandards: '正在复制标准...',
2015
+ copiedStandards: '已复制 {count} 个标准文件',
2016
+ copyingExtensions: '正在复制扩展...',
2017
+ copiedExtensions: '已复制 {count} 个扩展文件',
2018
+ generatingIntegrations: '正在生成集成文件...',
2019
+ generatedIntegrations: '已生成 {count} 个集成文件',
2020
+ generatingClaudeMd: '正在生成 CLAUDE.md...',
2021
+ generatedClaudeMd: '已生成 CLAUDE.md',
2022
+ couldNotGenerateClaudeMd: '无法生成 CLAUDE.md',
2023
+ installingSkills: '正在安装 Claude Code Skills...',
2024
+ installedSkills: '已安装 {count} 个 Skills 到 {locations}',
2025
+ installedSkillsWithErrors: '已安装 {count} 个 Skills,有 {errors} 个错误',
2026
+ // Success
2027
+ initializedSuccess: '✓ 标准初始化成功!',
2028
+ filesCopied: '已复制 {count} 个文件到项目',
2029
+ skillsUsingMarketplace: 'Skills:使用 Plugin Marketplace 安装',
2030
+ skillsInstalledTo: '已安装 {count} 个 Skills 到 {locations}',
2031
+ manifestCreated: 'Manifest 已创建于 .standards/manifest.json',
2032
+ errorsOccurred: '⚠ 发生 {count} 个错误:',
2033
+ // Next steps
2034
+ nextSteps: '后续步骤:',
1916
2035
  reviewDirectory: '1. 查看 .standards/ 目录',
1917
2036
  addToVcs: '2. 将 .standards/ 添加到版本控制',
1918
- restartClaude: '3. 重启 Claude Code 加载新 Skills',
2037
+ restartClaude: '3. 重启 Claude Code 以加载新 Skills',
1919
2038
  runCheck: '执行 `uds check` 验证采用状态'
1920
2039
  },
1921
2040
 
@@ -2058,7 +2177,17 @@ export const messages = {
2058
2177
  runNpmUpdate: '执行:npm update -g universal-dev-standards',
2059
2178
  // Final status
2060
2179
  projectCompliant: '✓ 项目符合标准',
2061
- issuesDetected: '⚠ 检测到一些问题。详情请查看上文。'
2180
+ issuesDetected: '⚠ 检测到一些问题。详情请查看上文。',
2181
+ // Installation prompts
2182
+ offerSkillsInstallation: 'Skills 安装',
2183
+ offerCommandsInstallation: '斜线命令安装',
2184
+ selectSkillsToInstall: '选择要安装 Skills 的 AI 工具:',
2185
+ selectCommandsToInstall: '选择要安装斜线命令的 AI 工具:',
2186
+ skipInstallation: '跳过',
2187
+ skillsInstalledSuccess: '已为 {count} 个 AI 工具安装 Skills',
2188
+ commandsInstalledSuccess: '已为 {count} 个 AI 工具安装斜线命令',
2189
+ // Read-only hint
2190
+ missingSkillsHint: '提示:执行 `uds update` 安装缺少的 Skills/斜线命令'
2062
2191
  },
2063
2192
 
2064
2193
  // update command
@@ -2137,7 +2266,28 @@ export const messages = {
2137
2266
  categoriesChanged: '类别:{old} → {new}',
2138
2267
  failedToUpdate: '✗ 更新 {path} 失败:{error}',
2139
2268
  updatedCount: '✓ 已更新 {count} 个集成文件',
2140
- skippedCount: '跳过 {count} 个文件(已同步或未找到)'
2269
+ skippedCount: '跳过 {count} 个文件(已同步或未找到)',
2270
+ // New features discovery
2271
+ newFeaturesAvailable: '发现新功能',
2272
+ newFeaturesAvailableHint: '提示:您的 AI 工具有新功能可用',
2273
+ skillsNotInstalledFor: '以下 AI 工具尚未安装 Skills:',
2274
+ commandsNotInstalledFor: '以下 AI 工具尚未安装斜线命令:',
2275
+ installSkillsNow: '是否要为这些 AI 工具安装 Skills?',
2276
+ installCommandsNow: '是否要为这些 AI 工具安装斜线命令?',
2277
+ selectSkillsToInstall: '选择要安装 Skills 的 AI 工具:',
2278
+ selectCommandsToInstall: '选择要安装斜线命令的 AI 工具:',
2279
+ skipSkillsInstallation: '跳过 Skills 安装',
2280
+ skipCommandsInstallation: '跳过斜线命令安装',
2281
+ skipValidationError: '选择「跳过」时不能同时选择其他选项',
2282
+ skillsLevelQuestion: 'Skills 要安装到哪里?',
2283
+ projectLevel: '项目级别',
2284
+ userLevel: '用户级别',
2285
+ installingNewSkills: '正在安装 Skills...',
2286
+ installingNewCommands: '正在安装斜线命令...',
2287
+ newSkillsInstalled: '已为 {count} 个 AI 工具安装 Skills',
2288
+ newSkillsInstalledWithErrors: '安装 Skills 时发生 {errors} 个错误',
2289
+ newCommandsInstalled: '已为 {count} 个 AI 工具安装斜线命令',
2290
+ newCommandsInstalledWithErrors: '安装斜线命令时发生 {errors} 个错误'
2141
2291
  },
2142
2292
 
2143
2293
  // configure command
@@ -6,8 +6,35 @@ import { downloadStandard, downloadIntegration } from './github.js';
6
6
  const __filename = fileURLToPath(import.meta.url);
7
7
  const __dirname = dirname(__filename);
8
8
 
9
+ // CLI package root (where package.json is located)
10
+ const CLI_ROOT = join(__dirname, '../..');
11
+
12
+ // Bundled files directory (for npm-installed CLI)
13
+ const BUNDLED_ROOT = join(CLI_ROOT, 'bundled');
14
+
9
15
  // Root of the universal-dev-standards repository (for local development)
10
- const REPO_ROOT = join(__dirname, '../../..');
16
+ const REPO_ROOT = join(CLI_ROOT, '..');
17
+
18
+ /**
19
+ * Get the source file path, checking bundled first, then repo root
20
+ * @param {string} sourcePath - Relative path (e.g., 'core/anti-hallucination.md')
21
+ * @returns {string|null} Absolute path to source file, or null if not found
22
+ */
23
+ function getSourcePath(sourcePath) {
24
+ // Priority 1: Bundled files (for npm-installed CLI)
25
+ const bundledPath = join(BUNDLED_ROOT, sourcePath);
26
+ if (existsSync(bundledPath)) {
27
+ return bundledPath;
28
+ }
29
+
30
+ // Priority 2: Repository root (for local development)
31
+ const repoPath = join(REPO_ROOT, sourcePath);
32
+ if (existsSync(repoPath)) {
33
+ return repoPath;
34
+ }
35
+
36
+ return null;
37
+ }
11
38
 
12
39
  /**
13
40
  * Copy a standard file to the target project
@@ -18,7 +45,6 @@ const REPO_ROOT = join(__dirname, '../../..');
18
45
  * @returns {Promise<Object>} Result with success status and copied path
19
46
  */
20
47
  export async function copyStandard(sourcePath, targetDir, projectPath) {
21
- const source = join(REPO_ROOT, sourcePath);
22
48
  const targetFolder = join(projectPath, targetDir);
23
49
  const targetFile = join(targetFolder, basename(sourcePath));
24
50
 
@@ -27,8 +53,9 @@ export async function copyStandard(sourcePath, targetDir, projectPath) {
27
53
  mkdirSync(targetFolder, { recursive: true });
28
54
  }
29
55
 
30
- // Try local copy first
31
- if (existsSync(source)) {
56
+ // Try local copy first (bundled or repo)
57
+ const source = getSourcePath(sourcePath);
58
+ if (source) {
32
59
  try {
33
60
  copyFileSync(source, targetFile);
34
61
  return {
@@ -46,7 +73,18 @@ export async function copyStandard(sourcePath, targetDir, projectPath) {
46
73
  }
47
74
 
48
75
  // Fall back to downloading from GitHub
49
- return downloadStandard(sourcePath, targetDir, projectPath);
76
+ const result = await downloadStandard(sourcePath, targetDir, projectPath);
77
+
78
+ // If download failed, provide a more helpful error message
79
+ if (!result.success && result.error?.includes('404')) {
80
+ return {
81
+ success: false,
82
+ error: `File not available: ${sourcePath}. This may be a beta version issue - try updating the CLI first.`,
83
+ path: null
84
+ };
85
+ }
86
+
87
+ return result;
50
88
  }
51
89
 
52
90
  /**
@@ -58,7 +96,6 @@ export async function copyStandard(sourcePath, targetDir, projectPath) {
58
96
  * @returns {Promise<Object>} Result
59
97
  */
60
98
  export async function copyIntegration(sourcePath, targetPath, projectPath) {
61
- const source = join(REPO_ROOT, sourcePath);
62
99
  const target = join(projectPath, targetPath);
63
100
 
64
101
  // Ensure target directory exists
@@ -67,8 +104,9 @@ export async function copyIntegration(sourcePath, targetPath, projectPath) {
67
104
  mkdirSync(targetDir, { recursive: true });
68
105
  }
69
106
 
70
- // Try local copy first
71
- if (existsSync(source)) {
107
+ // Try local copy first (bundled or repo)
108
+ const source = getSourcePath(sourcePath);
109
+ if (source) {
72
110
  try {
73
111
  copyFileSync(source, target);
74
112
  return {
@@ -86,7 +124,18 @@ export async function copyIntegration(sourcePath, targetPath, projectPath) {
86
124
  }
87
125
 
88
126
  // Fall back to downloading from GitHub
89
- return downloadIntegration(sourcePath, targetPath, projectPath);
127
+ const result = await downloadIntegration(sourcePath, targetPath, projectPath);
128
+
129
+ // If download failed, provide a more helpful error message
130
+ if (!result.success && result.error?.includes('404')) {
131
+ return {
132
+ success: false,
133
+ error: `File not available: ${sourcePath}. This may be a beta version issue - try updating the CLI first.`,
134
+ path: null
135
+ };
136
+ }
137
+
138
+ return result;
90
139
  }
91
140
 
92
141
  /**
@@ -135,9 +184,13 @@ export function isInitialized(projectPath) {
135
184
  }
136
185
 
137
186
  /**
138
- * Get the repository root path
187
+ * Get the repository root path (bundled or repo, whichever is available)
139
188
  * @returns {string} Repository root path
140
189
  */
141
190
  export function getRepoRoot() {
191
+ // Prefer bundled files for npm-installed CLI
192
+ if (existsSync(join(BUNDLED_ROOT, 'core'))) {
193
+ return BUNDLED_ROOT;
194
+ }
142
195
  return REPO_ROOT;
143
196
  }