universal-dev-standards 5.17.0 → 6.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (539) hide show
  1. package/bin/uds.js +13 -135
  2. package/bundled/ai/standards/acceptance-criteria-traceability.ai.yaml +13 -4
  3. package/bundled/ai/standards/accessibility-standards.ai.yaml +1 -1
  4. package/bundled/ai/standards/ai-response-navigation.ai.yaml +15 -2
  5. package/bundled/ai/standards/api-design-standards.ai.yaml +27 -4
  6. package/bundled/ai/standards/behavior-snapshot.ai.yaml +86 -9
  7. package/bundled/ai/standards/checkin-standards.ai.yaml +2 -2
  8. package/bundled/ai/standards/code-review.ai.yaml +2 -2
  9. package/bundled/ai/standards/context-aware-loading.ai.yaml +3 -3
  10. package/bundled/ai/standards/data-migration-testing.ai.yaml +79 -3
  11. package/bundled/ai/standards/deprecation-standards.ai.yaml +10 -2
  12. package/bundled/ai/standards/developer-memory.ai.yaml +4 -3
  13. package/bundled/ai/standards/flow-based-testing.ai.yaml +2 -2
  14. package/bundled/ai/standards/forward-derivation-standards.ai.yaml +26 -2
  15. package/bundled/ai/standards/full-coverage-testing.ai.yaml +34 -2
  16. package/bundled/ai/standards/git-worktree.ai.yaml +3 -3
  17. package/bundled/ai/standards/logging.ai.yaml +97 -3
  18. package/bundled/ai/standards/mock-boundary.ai.yaml +48 -2
  19. package/bundled/ai/standards/model-provenance.ai.yaml +297 -0
  20. package/bundled/ai/standards/model-selection.ai.yaml +11 -2
  21. package/bundled/ai/standards/observability-standards.ai.yaml +10 -0
  22. package/bundled/ai/standards/performance-standards.ai.yaml +46 -1
  23. package/bundled/ai/standards/pii-classification.ai.yaml +15 -1
  24. package/bundled/ai/standards/pipeline-security-gates.ai.yaml +10 -0
  25. package/bundled/ai/standards/privacy-standards.ai.yaml +2 -2
  26. package/bundled/ai/standards/project-context-memory.ai.yaml +2 -2
  27. package/bundled/ai/standards/refactoring-standards.ai.yaml +68 -3
  28. package/bundled/ai/standards/resource-cost-boundary.ai.yaml +279 -0
  29. package/bundled/ai/standards/reverse-engineering-standards.ai.yaml +55 -2
  30. package/bundled/ai/standards/security-testing.ai.yaml +13 -2
  31. package/bundled/ai/standards/skill-standard-alignment-check.ai.yaml +37 -2
  32. package/bundled/ai/standards/user-journey-testing.ai.yaml +107 -0
  33. package/bundled/ai/standards/verification-oracle.ai.yaml +278 -0
  34. package/bundled/ai/standards/versioning.ai.yaml +32 -38
  35. package/bundled/core/acceptance-criteria-traceability.md +15 -5
  36. package/bundled/core/accessibility-standards.md +8 -4
  37. package/bundled/core/ai-friendly-architecture.md +1 -1
  38. package/bundled/core/ai-response-navigation.md +31 -3
  39. package/bundled/core/anti-sycophancy-prompting.md +1 -1
  40. package/bundled/core/api-design-standards.md +92 -7
  41. package/bundled/core/audit-trail.md +119 -0
  42. package/bundled/core/behavior-snapshot.md +94 -7
  43. package/bundled/core/browser-compatibility-standards.md +15 -2
  44. package/bundled/core/checkin-standards.md +9 -2
  45. package/bundled/core/code-review-checklist.md +10 -2
  46. package/bundled/core/container-image-standards.md +97 -0
  47. package/bundled/core/context-aware-loading.md +2 -2
  48. package/bundled/core/cost-budget-test.md +1 -1
  49. package/bundled/core/cross-flow-regression.md +3 -2
  50. package/bundled/core/data-contract.md +104 -0
  51. package/bundled/core/data-migration-testing.md +90 -0
  52. package/bundled/core/data-pipeline.md +113 -0
  53. package/bundled/core/deprecation-standards.md +16 -2
  54. package/bundled/core/developer-memory.md +13 -8
  55. package/bundled/core/documentation-writing-standards.md +1 -1
  56. package/bundled/core/error-code-standards.md +4 -3
  57. package/bundled/core/flaky-test-management.md +1 -1
  58. package/bundled/core/flow-based-testing.md +3 -3
  59. package/bundled/core/forward-derivation-standards.md +33 -5
  60. package/bundled/core/full-coverage-testing.md +72 -0
  61. package/bundled/core/git-worktree.md +4 -4
  62. package/bundled/core/guides/performance-guide.md +1 -1
  63. package/bundled/core/guides/security-guide.md +1 -1
  64. package/bundled/core/health-check-standards.md +2 -2
  65. package/bundled/core/iac-design-principles.md +97 -0
  66. package/bundled/core/incident-response.md +119 -0
  67. package/bundled/core/license-compliance.md +2 -0
  68. package/bundled/core/logging-standards.md +78 -2
  69. package/bundled/core/mock-boundary.md +54 -2
  70. package/bundled/core/model-provenance.md +181 -0
  71. package/bundled/core/model-selection.md +27 -2
  72. package/bundled/core/packaging-standards.md +1 -0
  73. package/bundled/core/performance-standards.md +96 -2
  74. package/bundled/core/pii-classification.md +148 -0
  75. package/bundled/core/pipeline-security-gates.md +22 -2
  76. package/bundled/core/postmortem-standards.md +2 -0
  77. package/bundled/core/prd-standards.md +91 -0
  78. package/bundled/core/privacy-standards.md +14 -3
  79. package/bundled/core/product-metrics-standards.md +100 -0
  80. package/bundled/core/project-context-memory.md +8 -2
  81. package/bundled/core/prompt-regression.md +1 -1
  82. package/bundled/core/refactoring-standards.md +44 -3
  83. package/bundled/core/replay-test.md +1 -1
  84. package/bundled/core/resource-cost-boundary.md +180 -0
  85. package/bundled/core/reverse-engineering-standards.md +66 -2
  86. package/bundled/core/runbook.md +113 -0
  87. package/bundled/core/schema-evolution.md +105 -0
  88. package/bundled/core/secret-management-standards.md +110 -0
  89. package/bundled/core/security-testing.md +26 -2
  90. package/bundled/core/self-review-protocol.md +2 -2
  91. package/bundled/core/skill-standard-alignment-check.md +53 -0
  92. package/bundled/core/slo-sli.md +109 -0
  93. package/bundled/core/smoke-test.md +1 -1
  94. package/bundled/core/tech-debt-standards.md +1 -1
  95. package/bundled/core/test-data-standards.md +2 -2
  96. package/bundled/core/user-journey-testing.md +102 -0
  97. package/bundled/core/user-story-mapping.md +96 -0
  98. package/bundled/core/verification-oracle.md +167 -0
  99. package/bundled/core/versioning.md +133 -109
  100. package/bundled/locales/COVERAGE.md +84 -73
  101. package/bundled/locales/zh-CN/CHANGELOG.md +71 -6
  102. package/bundled/locales/zh-CN/CLAUDE.md +1 -1
  103. package/bundled/locales/zh-CN/README.md +22 -9
  104. package/bundled/locales/zh-CN/SECURITY.md +1 -1
  105. package/bundled/locales/zh-CN/adoption/DAILY-WORKFLOW-GUIDE.md +2 -2
  106. package/bundled/locales/zh-CN/core/acceptance-criteria-traceability.md +4 -6
  107. package/bundled/locales/zh-CN/core/accessibility-standards.md +1 -1
  108. package/bundled/locales/zh-CN/core/adversarial-test.md +226 -0
  109. package/bundled/locales/zh-CN/core/agent-behavior-discipline.md +187 -0
  110. package/bundled/locales/zh-CN/core/ai-response-navigation.md +32 -6
  111. package/bundled/locales/zh-CN/core/anti-sycophancy-prompting.md +1 -1
  112. package/bundled/locales/zh-CN/core/api-design-standards.md +1 -1
  113. package/bundled/locales/zh-CN/core/behavior-snapshot.md +335 -0
  114. package/bundled/locales/zh-CN/core/browser-compatibility-standards.md +229 -0
  115. package/bundled/locales/zh-CN/core/cd-deployment-strategies.md +135 -0
  116. package/bundled/locales/zh-CN/core/chaos-injection-tests.md +130 -0
  117. package/bundled/locales/zh-CN/core/checkin-standards.md +1 -1
  118. package/bundled/locales/zh-CN/core/code-review-checklist.md +1 -1
  119. package/bundled/locales/zh-CN/core/container-security.md +535 -0
  120. package/bundled/locales/zh-CN/core/context-aware-loading.md +1 -1
  121. package/bundled/locales/zh-CN/core/contract-testing-standards.md +191 -0
  122. package/bundled/locales/zh-CN/core/cost-budget-test.md +86 -0
  123. package/bundled/locales/zh-CN/core/cross-flow-regression.md +199 -0
  124. package/bundled/locales/zh-CN/core/data-migration-testing.md +217 -0
  125. package/bundled/locales/zh-CN/core/deployment-standards.md +328 -9
  126. package/bundled/locales/zh-CN/core/deprecation-standards.md +1 -1
  127. package/bundled/locales/zh-CN/core/developer-memory.md +2 -2
  128. package/bundled/locales/zh-CN/core/disaster-recovery-drill.md +87 -0
  129. package/bundled/locales/zh-CN/core/documentation-structure.md +1 -1
  130. package/bundled/locales/zh-CN/core/documentation-writing-standards.md +1 -1
  131. package/bundled/locales/zh-CN/core/error-code-standards.md +2 -2
  132. package/bundled/locales/zh-CN/core/feature-manifest-standard.md +222 -0
  133. package/bundled/locales/zh-CN/core/flaky-test-management.md +87 -0
  134. package/bundled/locales/zh-CN/core/flow-based-testing.md +284 -0
  135. package/bundled/locales/zh-CN/core/forward-derivation-standards.md +3 -4
  136. package/bundled/locales/zh-CN/core/full-coverage-testing.md +197 -0
  137. package/bundled/locales/zh-CN/core/git-worktree.md +1 -1
  138. package/bundled/locales/zh-CN/core/governance-layer.md +160 -0
  139. package/bundled/locales/zh-CN/core/guides/performance-guide.md +515 -0
  140. package/bundled/locales/zh-CN/core/guides/security-guide.md +494 -0
  141. package/bundled/locales/zh-CN/core/knowledge-graph-memory.md +128 -0
  142. package/bundled/locales/zh-CN/core/license-compliance.md +129 -0
  143. package/bundled/locales/zh-CN/core/llm-output-validation.md +192 -0
  144. package/bundled/locales/zh-CN/core/logging-standards.md +130 -8
  145. package/bundled/locales/zh-CN/core/mock-boundary.md +109 -0
  146. package/bundled/locales/zh-CN/core/model-selection.md +28 -5
  147. package/bundled/locales/zh-CN/core/mutation-testing.md +106 -0
  148. package/bundled/locales/zh-CN/core/no-cicd-deployment.md +219 -0
  149. package/bundled/locales/zh-CN/core/packaging-standards.md +76 -5
  150. package/bundled/locales/zh-CN/core/pipeline-security-gates.md +126 -0
  151. package/bundled/locales/zh-CN/core/policy-as-code-testing.md +203 -0
  152. package/bundled/locales/zh-CN/core/privacy-standards.md +1 -1
  153. package/bundled/locales/zh-CN/core/project-context-memory.md +1 -1
  154. package/bundled/locales/zh-CN/core/prompt-regression.md +88 -0
  155. package/bundled/locales/zh-CN/core/property-based-testing.md +87 -0
  156. package/bundled/locales/zh-CN/core/release-quality-manifest.md +207 -0
  157. package/bundled/locales/zh-CN/core/release-readiness-gate.md +193 -0
  158. package/bundled/locales/zh-CN/core/replay-test.md +102 -0
  159. package/bundled/locales/zh-CN/core/reverse-engineering-standards.md +46 -1
  160. package/bundled/locales/zh-CN/core/rollback-standards.md +120 -0
  161. package/bundled/locales/zh-CN/core/sast-advanced.md +309 -0
  162. package/bundled/locales/zh-CN/core/secure-op.md +328 -0
  163. package/bundled/locales/zh-CN/core/security-testing.md +96 -0
  164. package/bundled/locales/zh-CN/core/self-review-protocol.md +167 -0
  165. package/bundled/locales/zh-CN/core/server-ops-security.md +507 -0
  166. package/bundled/locales/zh-CN/core/smoke-test.md +79 -0
  167. package/bundled/locales/zh-CN/core/spec-driven-development.md +39 -3
  168. package/bundled/locales/zh-CN/core/supply-chain-attestation.md +131 -0
  169. package/bundled/locales/zh-CN/core/versioning.md +1 -1
  170. package/bundled/locales/zh-CN/docs/CHEATSHEET.md +31 -6
  171. package/bundled/locales/zh-CN/docs/FEATURE-REFERENCE.md +61 -34
  172. package/bundled/locales/zh-CN/docs/MIGRATION-v6.md +88 -0
  173. package/bundled/locales/zh-CN/docs/USAGE-MODES-COMPARISON.md +2 -2
  174. package/bundled/locales/zh-CN/docs/USER-MANUAL.md +14 -14
  175. package/bundled/locales/zh-CN/docs/specs/system/memory-adoption-strategy.md +105 -0
  176. package/bundled/locales/zh-CN/docs/user/FAQ.md +132 -0
  177. package/bundled/locales/zh-CN/docs/user/GETTING-STARTED.md +144 -0
  178. package/bundled/locales/zh-CN/docs/user/GLOSSARY.md +178 -0
  179. package/bundled/locales/zh-CN/docs/user/README.md +70 -0
  180. package/bundled/locales/zh-CN/docs/user/TROUBLESHOOTING.md +190 -0
  181. package/bundled/locales/zh-CN/integrations/github-copilot/COPILOT-CHAT-REFERENCE.md +1 -1
  182. package/bundled/locales/zh-CN/integrations/github-copilot/README.md +1 -1
  183. package/bundled/locales/zh-CN/integrations/github-copilot/skills-mapping.md +3 -3
  184. package/bundled/locales/zh-CN/integrations/opencode/skills-mapping.md +3 -3
  185. package/bundled/locales/zh-CN/methodologies/guides/sdd-guide.md +836 -0
  186. package/bundled/locales/zh-CN/options/changelog/auto-generated.md +166 -0
  187. package/bundled/locales/zh-CN/options/changelog/keep-a-changelog.md +140 -0
  188. package/bundled/locales/zh-CN/options/code-review/automated-review.md +214 -0
  189. package/bundled/locales/zh-CN/options/code-review/pair-programming.md +166 -0
  190. package/bundled/locales/zh-CN/options/code-review/pr-review.md +167 -0
  191. package/bundled/locales/zh-CN/options/documentation/api-docs.md +191 -0
  192. package/bundled/locales/zh-CN/options/documentation/markdown-docs.md +150 -0
  193. package/bundled/locales/zh-CN/options/documentation/wiki-style.md +131 -0
  194. package/bundled/locales/zh-CN/options/project-structure/kotlin.md +144 -0
  195. package/bundled/locales/zh-CN/options/project-structure/php.md +168 -0
  196. package/bundled/locales/zh-CN/options/project-structure/ruby.md +156 -0
  197. package/bundled/locales/zh-CN/options/project-structure/rust.md +136 -0
  198. package/bundled/locales/zh-CN/options/project-structure/swift.md +165 -0
  199. package/bundled/locales/zh-CN/options/testing/contract-testing.md +237 -0
  200. package/bundled/locales/zh-CN/options/testing/industry-pyramid.md +200 -0
  201. package/bundled/locales/zh-CN/options/testing/istqb-framework.md +144 -0
  202. package/bundled/locales/zh-CN/options/testing/performance-testing.md +251 -0
  203. package/bundled/locales/zh-CN/options/testing/security-testing.md +192 -0
  204. package/bundled/locales/zh-CN/skills/README.md +89 -126
  205. package/bundled/locales/zh-CN/skills/ac-coverage/SKILL.md +5 -7
  206. package/bundled/locales/zh-CN/skills/adr-assistant/SKILL.md +1 -1
  207. package/bundled/locales/zh-CN/skills/agents/code-architect.md +263 -0
  208. package/bundled/locales/zh-CN/skills/agents/doc-writer.md +410 -0
  209. package/bundled/locales/zh-CN/skills/agents/reviewer.md +357 -0
  210. package/bundled/locales/zh-CN/skills/agents/spec-analyst.md +410 -0
  211. package/bundled/locales/zh-CN/skills/agents/test-specialist.md +368 -0
  212. package/bundled/locales/zh-CN/skills/ai-collaboration-standards/SKILL.md +2 -2
  213. package/bundled/locales/zh-CN/skills/ai-friendly-architecture/SKILL.md +2 -2
  214. package/bundled/locales/zh-CN/skills/ai-instruction-standards/SKILL.md +1 -1
  215. package/bundled/locales/zh-CN/skills/atdd-assistant/acceptance-criteria-guide.md +1 -1
  216. package/bundled/locales/zh-CN/skills/atdd-assistant/atdd-workflow.md +3 -4
  217. package/bundled/locales/zh-CN/skills/audit-assistant/SKILL.md +2 -2
  218. package/bundled/locales/zh-CN/skills/bdd-assistant/guide.md +1 -2
  219. package/bundled/locales/zh-CN/skills/brainstorm-assistant/SKILL.md +109 -13
  220. package/bundled/locales/zh-CN/skills/brainstorm-assistant/guide.md +30 -8
  221. package/bundled/locales/zh-CN/skills/checkin-assistant/SKILL.md +1 -1
  222. package/bundled/locales/zh-CN/skills/ci-cd-assistant/SKILL.md +50 -0
  223. package/bundled/locales/zh-CN/skills/code-review-assistant/SKILL.md +5 -5
  224. package/bundled/locales/zh-CN/skills/commands/ac-coverage.md +1 -1
  225. package/bundled/locales/zh-CN/skills/commands/atdd.md +3 -3
  226. package/bundled/locales/zh-CN/skills/commands/bdd.md +2 -2
  227. package/bundled/locales/zh-CN/skills/commands/brainstorm.md +26 -17
  228. package/bundled/locales/zh-CN/skills/commands/{review.md → code-review.md} +4 -4
  229. package/bundled/locales/zh-CN/skills/commands/derive-all.md +1 -1
  230. package/bundled/locales/zh-CN/skills/commands/derive-atdd.md +1 -1
  231. package/bundled/locales/zh-CN/skills/commands/derive-bdd.md +2 -3
  232. package/bundled/locales/zh-CN/skills/commands/derive-tdd.md +1 -1
  233. package/bundled/locales/zh-CN/skills/commands/derive.md +1 -1
  234. package/bundled/locales/zh-CN/skills/commands/dev-workflow.md +2 -2
  235. package/bundled/locales/zh-CN/skills/commands/methodology.md +4 -4
  236. package/bundled/locales/zh-CN/skills/commands/pr.md +1 -1
  237. package/bundled/locales/zh-CN/skills/commands/tdd.md +1 -1
  238. package/bundled/locales/zh-CN/skills/commit-standards/SKILL.md +1 -1
  239. package/bundled/locales/zh-CN/skills/contract-test-assistant/SKILL.md +1 -1
  240. package/bundled/locales/zh-CN/skills/dev-methodology/SKILL.md +1 -1
  241. package/bundled/locales/zh-CN/skills/dev-methodology/create-methodology.md +456 -0
  242. package/bundled/locales/zh-CN/skills/dev-methodology/guide.md +6 -6
  243. package/bundled/locales/zh-CN/skills/dev-methodology/runtime.md +296 -0
  244. package/bundled/locales/zh-CN/skills/dev-workflow-guide/SKILL.md +5 -5
  245. package/bundled/locales/zh-CN/skills/docs-generator/SKILL.md +1 -1
  246. package/bundled/locales/zh-CN/skills/e2e-assistant/SKILL.md +1 -1
  247. package/bundled/locales/zh-CN/skills/incident-response-assistant/SKILL.md +2 -2
  248. package/bundled/locales/zh-CN/skills/journey-test-assistant/SKILL.md +1 -1
  249. package/bundled/locales/zh-CN/skills/logging-guide/SKILL.md +146 -142
  250. package/bundled/locales/zh-CN/skills/migration-assistant/SKILL.md +1 -1
  251. package/bundled/locales/zh-CN/skills/observability-assistant/guide.md +1 -1
  252. package/bundled/locales/zh-CN/skills/pr-automation-assistant/SKILL.md +1 -1
  253. package/bundled/locales/zh-CN/skills/project-discovery/guide.md +2 -2
  254. package/bundled/locales/zh-CN/skills/reverse-engineer/SKILL.md +1 -1
  255. package/bundled/locales/zh-CN/skills/runbook-assistant/guide.md +1 -1
  256. package/bundled/locales/zh-CN/skills/security-assistant/SKILL.md +1 -1
  257. package/bundled/locales/zh-CN/skills/skill-builder/SKILL.md +3 -3
  258. package/bundled/locales/zh-CN/skills/slo-assistant/guide.md +1 -1
  259. package/bundled/locales/zh-CN/skills/spec-derivation/SKILL.md +1 -1
  260. package/bundled/locales/zh-CN/skills/spec-derivation/guide.md +8 -9
  261. package/bundled/locales/zh-CN/skills/spec-driven-dev/SKILL.md +2 -2
  262. package/bundled/locales/zh-CN/skills/sweep/SKILL.md +1 -1
  263. package/bundled/locales/zh-CN/skills/tdd-assistant/SKILL.md +1 -1
  264. package/bundled/locales/zh-CN/skills/testing-guide/SKILL.md +2 -2
  265. package/bundled/locales/zh-CN/skills/testing-guide/testing-theory.md +2298 -0
  266. package/bundled/locales/zh-CN/skills/workflows/README.md +451 -0
  267. package/bundled/locales/zh-TW/CHANGELOG.md +71 -6
  268. package/bundled/locales/zh-TW/CLAUDE.md +1 -1
  269. package/bundled/locales/zh-TW/MAINTENANCE.md +25 -2
  270. package/bundled/locales/zh-TW/README.md +22 -9
  271. package/bundled/locales/zh-TW/SECURITY.md +1 -1
  272. package/bundled/locales/zh-TW/adoption/DAILY-WORKFLOW-GUIDE.md +2 -2
  273. package/bundled/locales/zh-TW/ai/standards/versioning.ai.yaml +8 -48
  274. package/bundled/locales/zh-TW/core/acceptance-criteria-traceability.md +4 -6
  275. package/bundled/locales/zh-TW/core/accessibility-standards.md +1 -1
  276. package/bundled/locales/zh-TW/core/adversarial-test.md +226 -0
  277. package/bundled/locales/zh-TW/core/agent-behavior-discipline.md +187 -0
  278. package/bundled/locales/zh-TW/core/ai-response-navigation.md +32 -6
  279. package/bundled/locales/zh-TW/core/anti-sycophancy-prompting.md +1 -1
  280. package/bundled/locales/zh-TW/core/api-design-standards.md +91 -9
  281. package/bundled/locales/zh-TW/core/audit-trail.md +110 -0
  282. package/bundled/locales/zh-TW/core/behavior-snapshot.md +335 -0
  283. package/bundled/locales/zh-TW/core/browser-compatibility-standards.md +1 -0
  284. package/bundled/locales/zh-TW/core/cd-deployment-strategies.md +135 -0
  285. package/bundled/locales/zh-TW/core/chaos-injection-tests.md +130 -0
  286. package/bundled/locales/zh-TW/core/checkin-standards.md +1 -1
  287. package/bundled/locales/zh-TW/core/code-review-checklist.md +1 -1
  288. package/bundled/locales/zh-TW/core/container-image-standards.md +93 -0
  289. package/bundled/locales/zh-TW/core/container-security.md +535 -0
  290. package/bundled/locales/zh-TW/core/cost-budget-test.md +86 -0
  291. package/bundled/locales/zh-TW/core/cross-flow-regression.md +1 -0
  292. package/bundled/locales/zh-TW/core/data-contract.md +101 -0
  293. package/bundled/locales/zh-TW/core/data-migration-testing.md +217 -0
  294. package/bundled/locales/zh-TW/core/data-pipeline.md +105 -0
  295. package/bundled/locales/zh-TW/core/deployment-standards.md +363 -25
  296. package/bundled/locales/zh-TW/core/deprecation-standards.md +17 -4
  297. package/bundled/locales/zh-TW/core/developer-memory.md +2 -2
  298. package/bundled/locales/zh-TW/core/disaster-recovery-drill.md +87 -0
  299. package/bundled/locales/zh-TW/core/documentation-writing-standards.md +1 -1
  300. package/bundled/locales/zh-TW/core/error-code-standards.md +2 -2
  301. package/bundled/locales/zh-TW/core/feature-manifest-standard.md +222 -0
  302. package/bundled/locales/zh-TW/core/flaky-test-management.md +87 -0
  303. package/bundled/locales/zh-TW/core/flow-based-testing.md +284 -0
  304. package/bundled/locales/zh-TW/core/forward-derivation-standards.md +3 -4
  305. package/bundled/locales/zh-TW/core/full-coverage-testing.md +250 -0
  306. package/bundled/locales/zh-TW/core/git-worktree.md +1 -1
  307. package/bundled/locales/zh-TW/core/guides/performance-guide.md +515 -0
  308. package/bundled/locales/zh-TW/core/guides/security-guide.md +494 -0
  309. package/bundled/locales/zh-TW/core/iac-design-principles.md +90 -0
  310. package/bundled/locales/zh-TW/core/incident-response.md +111 -0
  311. package/bundled/locales/zh-TW/core/license-compliance.md +129 -0
  312. package/bundled/locales/zh-TW/core/llm-output-validation.md +192 -0
  313. package/bundled/locales/zh-TW/core/logging-standards.md +208 -4
  314. package/bundled/locales/zh-TW/core/mock-boundary.md +161 -0
  315. package/bundled/locales/zh-TW/core/model-provenance.md +173 -0
  316. package/bundled/locales/zh-TW/core/model-selection.md +28 -5
  317. package/bundled/locales/zh-TW/core/mutation-testing.md +106 -0
  318. package/bundled/locales/zh-TW/core/no-cicd-deployment.md +219 -0
  319. package/bundled/locales/zh-TW/core/packaging-standards.md +76 -5
  320. package/bundled/locales/zh-TW/core/performance-standards.md +84 -5
  321. package/bundled/locales/zh-TW/core/pii-classification.md +102 -0
  322. package/bundled/locales/zh-TW/core/pipeline-security-gates.md +126 -0
  323. package/bundled/locales/zh-TW/core/policy-as-code-testing.md +203 -0
  324. package/bundled/locales/zh-TW/core/prd-standards.md +88 -0
  325. package/bundled/locales/zh-TW/core/privacy-standards.md +1 -1
  326. package/bundled/locales/zh-TW/core/product-metrics-standards.md +96 -0
  327. package/bundled/locales/zh-TW/core/project-context-memory.md +1 -1
  328. package/bundled/locales/zh-TW/core/prompt-regression.md +88 -0
  329. package/bundled/locales/zh-TW/core/property-based-testing.md +87 -0
  330. package/bundled/locales/zh-TW/core/refactoring-standards.md +43 -6
  331. package/bundled/locales/zh-TW/core/release-quality-manifest.md +207 -0
  332. package/bundled/locales/zh-TW/core/replay-test.md +102 -0
  333. package/bundled/locales/zh-TW/core/resource-cost-boundary.md +175 -0
  334. package/bundled/locales/zh-TW/core/reverse-engineering-standards.md +64 -5
  335. package/bundled/locales/zh-TW/core/rollback-standards.md +120 -0
  336. package/bundled/locales/zh-TW/core/runbook.md +110 -0
  337. package/bundled/locales/zh-TW/core/sast-advanced.md +309 -0
  338. package/bundled/locales/zh-TW/core/schema-evolution.md +98 -0
  339. package/bundled/locales/zh-TW/core/secret-management-standards.md +101 -0
  340. package/bundled/locales/zh-TW/core/secure-op.md +328 -0
  341. package/bundled/locales/zh-TW/core/security-testing.md +96 -0
  342. package/bundled/locales/zh-TW/core/self-review-protocol.md +2 -2
  343. package/bundled/locales/zh-TW/core/server-ops-security.md +507 -0
  344. package/bundled/locales/zh-TW/core/slo-sli.md +108 -0
  345. package/bundled/locales/zh-TW/core/smoke-test.md +79 -0
  346. package/bundled/locales/zh-TW/core/spec-driven-development.md +19 -11
  347. package/bundled/locales/zh-TW/core/supply-chain-attestation.md +131 -0
  348. package/bundled/locales/zh-TW/core/user-journey-testing.md +111 -0
  349. package/bundled/locales/zh-TW/core/user-story-mapping.md +94 -0
  350. package/bundled/locales/zh-TW/core/verification-oracle.md +159 -0
  351. package/bundled/locales/zh-TW/core/versioning.md +112 -112
  352. package/bundled/locales/zh-TW/docs/CHEATSHEET.md +31 -6
  353. package/bundled/locales/zh-TW/docs/DEV-WORKFLOW-MAPPING.md +6 -6
  354. package/bundled/locales/zh-TW/docs/FEATURE-REFERENCE.md +61 -34
  355. package/bundled/locales/zh-TW/docs/MIGRATION-v6.md +88 -0
  356. package/bundled/locales/zh-TW/docs/USAGE-MODES-COMPARISON.md +2 -2
  357. package/bundled/locales/zh-TW/docs/USER-MANUAL.md +14 -14
  358. package/bundled/locales/zh-TW/docs/specs/system/memory-adoption-strategy.md +105 -0
  359. package/bundled/locales/zh-TW/docs/user/FAQ.md +132 -0
  360. package/bundled/locales/zh-TW/docs/user/GETTING-STARTED.md +144 -0
  361. package/bundled/locales/zh-TW/docs/user/GLOSSARY.md +178 -0
  362. package/bundled/locales/zh-TW/docs/user/README.md +70 -0
  363. package/bundled/locales/zh-TW/docs/user/TROUBLESHOOTING.md +190 -0
  364. package/bundled/locales/zh-TW/integrations/github-copilot/COPILOT-CHAT-REFERENCE.md +1 -1
  365. package/bundled/locales/zh-TW/integrations/github-copilot/README.md +1 -1
  366. package/bundled/locales/zh-TW/integrations/github-copilot/skills-mapping.md +3 -3
  367. package/bundled/locales/zh-TW/integrations/opencode/skills-mapping.md +3 -3
  368. package/bundled/locales/zh-TW/methodologies/guides/sdd-guide.md +523 -26
  369. package/bundled/locales/zh-TW/options/changelog/auto-generated.md +166 -0
  370. package/bundled/locales/zh-TW/options/changelog/keep-a-changelog.md +140 -0
  371. package/bundled/locales/zh-TW/options/code-review/automated-review.md +214 -0
  372. package/bundled/locales/zh-TW/options/code-review/pair-programming.md +166 -0
  373. package/bundled/locales/zh-TW/options/code-review/pr-review.md +167 -0
  374. package/bundled/locales/zh-TW/options/documentation/api-docs.md +191 -0
  375. package/bundled/locales/zh-TW/options/documentation/markdown-docs.md +150 -0
  376. package/bundled/locales/zh-TW/options/documentation/wiki-style.md +131 -0
  377. package/bundled/locales/zh-TW/options/project-structure/kotlin.md +144 -0
  378. package/bundled/locales/zh-TW/options/project-structure/php.md +168 -0
  379. package/bundled/locales/zh-TW/options/project-structure/ruby.md +156 -0
  380. package/bundled/locales/zh-TW/options/project-structure/rust.md +136 -0
  381. package/bundled/locales/zh-TW/options/project-structure/swift.md +165 -0
  382. package/bundled/locales/zh-TW/options/testing/contract-testing.md +237 -0
  383. package/bundled/locales/zh-TW/options/testing/industry-pyramid.md +200 -0
  384. package/bundled/locales/zh-TW/options/testing/istqb-framework.md +144 -0
  385. package/bundled/locales/zh-TW/options/testing/performance-testing.md +251 -0
  386. package/bundled/locales/zh-TW/options/testing/security-testing.md +192 -0
  387. package/bundled/locales/zh-TW/skills/README.md +91 -128
  388. package/bundled/locales/zh-TW/skills/ac-coverage/SKILL.md +4 -6
  389. package/bundled/locales/zh-TW/skills/adr-assistant/SKILL.md +1 -1
  390. package/bundled/locales/zh-TW/skills/agents/code-architect.md +263 -0
  391. package/bundled/locales/zh-TW/skills/agents/doc-writer.md +410 -0
  392. package/bundled/locales/zh-TW/skills/agents/reviewer.md +357 -0
  393. package/bundled/locales/zh-TW/skills/agents/spec-analyst.md +410 -0
  394. package/bundled/locales/zh-TW/skills/agents/test-specialist.md +368 -0
  395. package/bundled/locales/zh-TW/skills/ai-collaboration-standards/SKILL.md +2 -2
  396. package/bundled/locales/zh-TW/skills/ai-friendly-architecture/SKILL.md +2 -2
  397. package/bundled/locales/zh-TW/skills/ai-instruction-standards/SKILL.md +1 -1
  398. package/bundled/locales/zh-TW/skills/atdd-assistant/SKILL.md +2 -0
  399. package/bundled/locales/zh-TW/skills/atdd-assistant/acceptance-criteria-guide.md +1 -1
  400. package/bundled/locales/zh-TW/skills/atdd-assistant/atdd-workflow.md +3 -4
  401. package/bundled/locales/zh-TW/skills/audit-assistant/SKILL.md +2 -2
  402. package/bundled/locales/zh-TW/skills/bdd-assistant/SKILL.md +2 -0
  403. package/bundled/locales/zh-TW/skills/bdd-assistant/guide.md +1 -2
  404. package/bundled/locales/zh-TW/skills/brainstorm-assistant/SKILL.md +110 -14
  405. package/bundled/locales/zh-TW/skills/brainstorm-assistant/guide.md +31 -7
  406. package/bundled/locales/zh-TW/skills/checkin-assistant/SKILL.md +3 -1
  407. package/bundled/locales/zh-TW/skills/ci-cd-assistant/SKILL.md +50 -0
  408. package/bundled/locales/zh-TW/skills/code-review-assistant/SKILL.md +7 -5
  409. package/bundled/locales/zh-TW/skills/commands/ac-coverage.md +1 -1
  410. package/bundled/locales/zh-TW/skills/commands/atdd.md +3 -3
  411. package/bundled/locales/zh-TW/skills/commands/bdd.md +2 -2
  412. package/bundled/locales/zh-TW/skills/commands/brainstorm.md +26 -17
  413. package/bundled/locales/zh-TW/skills/commands/{review.md → code-review.md} +5 -5
  414. package/bundled/locales/zh-TW/skills/commands/derive-all.md +1 -1
  415. package/bundled/locales/zh-TW/skills/commands/derive-atdd.md +1 -1
  416. package/bundled/locales/zh-TW/skills/commands/derive-bdd.md +2 -3
  417. package/bundled/locales/zh-TW/skills/commands/derive-tdd.md +1 -1
  418. package/bundled/locales/zh-TW/skills/commands/derive.md +1 -1
  419. package/bundled/locales/zh-TW/skills/commands/dev-workflow.md +2 -2
  420. package/bundled/locales/zh-TW/skills/commands/methodology.md +4 -4
  421. package/bundled/locales/zh-TW/skills/commands/pr.md +1 -1
  422. package/bundled/locales/zh-TW/skills/commands/tdd.md +1 -1
  423. package/bundled/locales/zh-TW/skills/commit-standards/SKILL.md +1 -1
  424. package/bundled/locales/zh-TW/skills/contract-test-assistant/SKILL.md +1 -1
  425. package/bundled/locales/zh-TW/skills/dev-methodology/create-methodology.md +456 -0
  426. package/bundled/locales/zh-TW/skills/dev-methodology/guide.md +5 -5
  427. package/bundled/locales/zh-TW/skills/dev-methodology/runtime.md +296 -0
  428. package/bundled/locales/zh-TW/skills/dev-workflow-guide/SKILL.md +5 -5
  429. package/bundled/locales/zh-TW/skills/docs-generator/SKILL.md +1 -1
  430. package/bundled/locales/zh-TW/skills/e2e-assistant/SKILL.md +1 -1
  431. package/bundled/locales/zh-TW/skills/incident-response-assistant/SKILL.md +2 -2
  432. package/bundled/locales/zh-TW/skills/logging-guide/SKILL.md +29 -27
  433. package/bundled/locales/zh-TW/skills/migration-assistant/SKILL.md +1 -1
  434. package/bundled/locales/zh-TW/skills/pr-automation-assistant/SKILL.md +3 -1
  435. package/bundled/locales/zh-TW/skills/project-discovery/guide.md +2 -2
  436. package/bundled/locales/zh-TW/skills/reverse-engineer/SKILL.md +1 -1
  437. package/bundled/locales/zh-TW/skills/security-assistant/SKILL.md +1 -1
  438. package/bundled/locales/zh-TW/skills/spec-derivation/guide.md +7 -8
  439. package/bundled/locales/zh-TW/skills/spec-driven-dev/SKILL.md +2 -2
  440. package/bundled/locales/zh-TW/skills/sweep/SKILL.md +1 -1
  441. package/bundled/locales/zh-TW/skills/tdd-assistant/SKILL.md +3 -1
  442. package/bundled/locales/zh-TW/skills/testing-guide/SKILL.md +2 -2
  443. package/bundled/locales/zh-TW/skills/testing-guide/testing-theory.md +2298 -0
  444. package/bundled/locales/zh-TW/skills/workflows/README.md +451 -0
  445. package/bundled/skills/README.md +1 -1
  446. package/bundled/skills/ac-coverage/SKILL.md +17 -7
  447. package/bundled/skills/adr-assistant/SKILL.md +1 -1
  448. package/bundled/skills/agents/code-architect.md +1 -1
  449. package/bundled/skills/agents/doc-writer.md +1 -1
  450. package/bundled/skills/agents/reviewer.md +2 -2
  451. package/bundled/skills/agents/spec-analyst.md +1 -1
  452. package/bundled/skills/agents/test-specialist.md +1 -1
  453. package/bundled/skills/ai-collaboration-standards/SKILL.md +2 -2
  454. package/bundled/skills/ai-friendly-architecture/SKILL.md +2 -2
  455. package/bundled/skills/ai-instruction-standards/SKILL.md +1 -1
  456. package/bundled/skills/atdd-assistant/SKILL.md +7 -0
  457. package/bundled/skills/atdd-assistant/acceptance-criteria-guide.md +1 -1
  458. package/bundled/skills/atdd-assistant/atdd-workflow.md +6 -8
  459. package/bundled/skills/audit-assistant/SKILL.md +2 -2
  460. package/bundled/skills/bdd-assistant/SKILL.md +7 -0
  461. package/bundled/skills/bdd-assistant/guide.md +1 -2
  462. package/bundled/skills/brainstorm-assistant/SKILL.md +133 -11
  463. package/bundled/skills/brainstorm-assistant/guide.md +33 -5
  464. package/bundled/skills/checkin-assistant/SKILL.md +8 -1
  465. package/bundled/skills/ci-cd-assistant/SKILL.md +57 -0
  466. package/bundled/skills/code-review-assistant/SKILL.md +15 -8
  467. package/bundled/skills/commands/COMMAND-FAMILY-OVERVIEW.md +2 -2
  468. package/bundled/skills/commands/COMMAND-INDEX.json +3 -3
  469. package/bundled/skills/commands/README.md +2 -2
  470. package/bundled/skills/commands/ac-coverage.md +1 -1
  471. package/bundled/skills/commands/atdd.md +2 -2
  472. package/bundled/skills/commands/bdd.md +2 -2
  473. package/bundled/skills/commands/brainstorm.md +25 -14
  474. package/bundled/skills/commands/{review.md → code-review.md} +6 -6
  475. package/bundled/skills/commands/derive-all.md +1 -1
  476. package/bundled/skills/commands/derive-atdd.md +1 -1
  477. package/bundled/skills/commands/derive-bdd.md +2 -3
  478. package/bundled/skills/commands/derive-tdd.md +1 -1
  479. package/bundled/skills/commands/derive.md +1 -1
  480. package/bundled/skills/commands/dev-workflow.md +1 -1
  481. package/bundled/skills/commands/journey-test.md +45 -0
  482. package/bundled/skills/commands/methodology.md +4 -4
  483. package/bundled/skills/commands/pr.md +1 -1
  484. package/bundled/skills/commands/skill-builder.md +42 -0
  485. package/bundled/skills/commands/tdd.md +1 -1
  486. package/bundled/skills/dev-methodology/create-methodology.md +1 -1
  487. package/bundled/skills/dev-methodology/guide.md +1 -1
  488. package/bundled/skills/dev-methodology/runtime.md +1 -1
  489. package/bundled/skills/dev-workflow-guide/SKILL.md +3 -3
  490. package/bundled/skills/dev-workflow-guide/workflow-phases.md +3 -3
  491. package/bundled/skills/docs-generator/SKILL.md +3 -3
  492. package/bundled/skills/incident-response-assistant/SKILL.md +2 -2
  493. package/bundled/skills/logging-guide/SKILL.md +38 -2
  494. package/bundled/skills/migration-assistant/SKILL.md +226 -0
  495. package/bundled/skills/observability-assistant/SKILL.md +74 -0
  496. package/bundled/skills/pr-automation-assistant/SKILL.md +5 -1
  497. package/bundled/skills/project-discovery/guide.md +2 -2
  498. package/bundled/skills/push/SKILL.md +1 -1
  499. package/bundled/skills/release-standards/SKILL.md +19 -5
  500. package/bundled/skills/security-assistant/SKILL.md +1 -1
  501. package/bundled/skills/skill-builder/SKILL.md +1 -1
  502. package/bundled/skills/spec-derivation/guide.md +3 -4
  503. package/bundled/skills/spec-driven-dev/SKILL.md +2 -2
  504. package/bundled/skills/sweep/SKILL.md +1 -1
  505. package/bundled/skills/tdd-assistant/SKILL.md +8 -1
  506. package/bundled/skills/testing-guide/SKILL.md +1 -1
  507. package/bundled/skills/testing-guide/testing-theory.md +1 -1
  508. package/bundled/skills/workflows/README.md +2 -2
  509. package/package.json +3 -3
  510. package/src/commands/audit.js +30 -9
  511. package/src/commands/config.js +33 -2
  512. package/src/commands/hitl.js +14 -1
  513. package/src/commands/init.js +110 -58
  514. package/src/commands/quickstart.js +1 -2
  515. package/src/commands/release.js +51 -6
  516. package/src/commands/run-intent.js +9 -0
  517. package/src/commands/spec-split.js +27 -2
  518. package/src/commands/update.js +22 -6
  519. package/src/config/ai-agent-paths.js +3 -1
  520. package/src/i18n/messages.js +3 -102
  521. package/src/missions/MissionManager.js +44 -12
  522. package/src/utils/build-manifest.js +35 -3
  523. package/src/utils/friction-detector.js +71 -22
  524. package/src/utils/health-checker.js +29 -2
  525. package/src/utils/transaction.js +111 -0
  526. package/src/utils/version-promote.js +16 -0
  527. package/standards-registry.json +58 -146
  528. package/bundled/ai/standards/agent-communication-protocol.ai.yaml +0 -42
  529. package/bundled/ai/standards/agent-dispatch.ai.yaml +0 -42
  530. package/bundled/ai/standards/branch-completion.ai.yaml +0 -44
  531. package/bundled/ai/standards/change-batching-standards.ai.yaml +0 -44
  532. package/bundled/ai/standards/execution-history.ai.yaml +0 -42
  533. package/bundled/ai/standards/pipeline-integration-standards.ai.yaml +0 -42
  534. package/bundled/ai/standards/workflow-enforcement.ai.yaml +0 -44
  535. package/bundled/ai/standards/workflow-state-protocol.ai.yaml +0 -43
  536. package/src/commands/flow.js +0 -260
  537. package/src/commands/start.js +0 -372
  538. package/src/commands/sweep.js +0 -151
  539. package/src/commands/workflow.js +0 -681
@@ -1,681 +0,0 @@
1
- /**
2
- * Workflow Command
3
- *
4
- * CLI commands for listing and installing UDS workflows.
5
- *
6
- * @version 1.0.0
7
- * @deprecated XSPEC-095 (2026-04-28): Runtime relocated to adoption layer.
8
- * The orchestration logic is adoption-layer responsibility:
9
- * adoption layers must implement equivalent workflow commands in
10
- * their own toolchain.
11
- *
12
- * 棄用理由:UDS 專注於活動定義;流程編排由採用層承擔(XSPEC-086 /
13
- * DEC-049 — orchestration runtime moved to adoption layer 2026-04-28)。
14
- * UDS 5.x 仍維持本命令可用(向後相容),UDS 6.0.0 將移除。
15
- * 建議遷移:實作於採用層工具鏈。
16
- */
17
-
18
- import chalk from 'chalk';
19
- import { select } from '@inquirer/prompts';
20
- import {
21
- getAvailableWorkflowNames,
22
- getWorkflowContent,
23
- parseWorkflow,
24
- installWorkflowsForTool,
25
- getInstalledWorkflowsForTool
26
- } from '../utils/workflows-installer.js';
27
- import {
28
- getWorkflowsSupportedAgents,
29
- getAgentConfig,
30
- supportsTask
31
- } from '../config/ai-agent-paths.js';
32
- import { setLanguage, isLanguageExplicitlySet } from '../i18n/messages.js';
33
- import { readManifest, isInitialized } from '../utils/copier.js';
34
- import { WorkflowExecutor } from '../utils/workflow-executor.js';
35
- import { WorkflowStateManager } from '../utils/workflow-state.js';
36
-
37
- /**
38
- * Workflow list command - list available and installed workflows
39
- */
40
- export async function workflowListCommand(options) {
41
- const projectPath = process.cwd();
42
-
43
- // Set UI language based on project's display_language if initialized
44
- if (!isLanguageExplicitlySet() && isInitialized(projectPath)) {
45
- const manifest = readManifest(projectPath);
46
- if (manifest?.options?.display_language) {
47
- const uiLang = manifest.options.display_language;
48
- setLanguage(uiLang);
49
- }
50
- }
51
-
52
- console.log();
53
- console.log(chalk.bold('🔄 UDS Workflows'));
54
- console.log(chalk.gray('─'.repeat(50)));
55
- console.log();
56
-
57
- // List available workflows
58
- const availableWorkflows = getAvailableWorkflowNames();
59
-
60
- if (availableWorkflows.length === 0) {
61
- console.log(chalk.yellow('No workflows available.'));
62
- console.log();
63
- return;
64
- }
65
-
66
- console.log(chalk.bold('Available Workflows:'));
67
- console.log();
68
-
69
- for (const workflowName of availableWorkflows) {
70
- const content = getWorkflowContent(workflowName);
71
- const workflow = parseWorkflow(content || '');
72
-
73
- const categoryIcon = getCategoryIcon(workflow.metadata?.category);
74
- const description = workflow.description
75
- ? truncateDescription(workflow.description)
76
- : 'No description';
77
- const steps = workflow.steps?.length || 0;
78
-
79
- console.log(` ${categoryIcon} ${chalk.cyan(workflowName)}`);
80
- console.log(` ${chalk.gray(description)}`);
81
- console.log(` ${chalk.gray(`Steps: ${steps}`)}`);
82
-
83
- if (workflow.metadata?.difficulty) {
84
- const difficultyColor = getDifficultyColor(workflow.metadata.difficulty);
85
- console.log(` ${chalk.gray('Difficulty:')} ${difficultyColor(workflow.metadata.difficulty)}`);
86
- }
87
- console.log();
88
- }
89
-
90
- // Show installation status if --installed flag
91
- if (options.installed) {
92
- console.log(chalk.gray('─'.repeat(50)));
93
- console.log(chalk.bold('Installation Status:'));
94
- console.log();
95
-
96
- const supportedTools = getWorkflowsSupportedAgents();
97
-
98
- for (const tool of supportedTools) {
99
- const config = getAgentConfig(tool);
100
-
101
- // Check project level
102
- const projectInfo = getInstalledWorkflowsForTool(tool, 'project', projectPath);
103
- // Check user level
104
- const userInfo = getInstalledWorkflowsForTool(tool, 'user');
105
-
106
- if (projectInfo || userInfo) {
107
- console.log(` ${chalk.blue(config.name)}`);
108
-
109
- if (projectInfo) {
110
- console.log(` ${chalk.green('✓')} Project: ${projectInfo.count} workflows`);
111
- }
112
- if (userInfo) {
113
- console.log(` ${chalk.green('✓')} User: ${userInfo.count} workflows`);
114
- }
115
- console.log();
116
- }
117
- }
118
- }
119
-
120
- // Show supported AI tools
121
- console.log(chalk.gray('─'.repeat(50)));
122
- console.log(chalk.bold('Supported AI Tools:'));
123
- console.log();
124
-
125
- const supportedTools = getWorkflowsSupportedAgents();
126
-
127
- for (const tool of supportedTools) {
128
- const config = getAgentConfig(tool);
129
- const hasTask = supportsTask(tool);
130
- const icon = hasTask ? chalk.green('●') : chalk.yellow('○');
131
- const modeNote = hasTask ? 'auto-execute' : 'guided checklist';
132
-
133
- console.log(` ${icon} ${config.name} ${chalk.gray(`[${modeNote}]`)}`);
134
- }
135
-
136
- console.log();
137
- console.log(chalk.gray('Note: Workflows marked ● can auto-execute steps with Task tool'));
138
- console.log();
139
- }
140
-
141
- /**
142
- * Workflow install command - install workflows for AI tool
143
- */
144
- export async function workflowInstallCommand(workflowName, options) {
145
- const projectPath = process.cwd();
146
-
147
- console.log();
148
- console.log(chalk.bold('🔄 Install UDS Workflows'));
149
- console.log(chalk.gray('─'.repeat(50)));
150
- console.log();
151
-
152
- // Determine which workflows to install
153
- let workflowsToInstall = null; // null = all
154
- if (workflowName && workflowName !== 'all') {
155
- const availableWorkflows = getAvailableWorkflowNames();
156
- if (!availableWorkflows.includes(workflowName)) {
157
- console.log(chalk.red(`Workflow not found: ${workflowName}`));
158
- console.log(chalk.gray(`Available workflows: ${availableWorkflows.join(', ')}`));
159
- console.log();
160
- return;
161
- }
162
- workflowsToInstall = [workflowName];
163
- }
164
-
165
- // Determine target AI tool
166
- let targetTool = options.tool || 'claude-code';
167
- const supportedTools = getWorkflowsSupportedAgents();
168
-
169
- if (!supportedTools.includes(targetTool)) {
170
- console.log(chalk.red(`AI tool '${targetTool}' does not support workflows.`));
171
- console.log(chalk.gray(`Supported tools: ${supportedTools.join(', ')}`));
172
- console.log();
173
- return;
174
- }
175
-
176
- // Determine installation level
177
- let level = options.global ? 'user' : 'project';
178
-
179
- // Interactive mode if no options specified
180
- if (!options.yes && !options.tool && !options.global) {
181
- const selectedTool = await select({
182
- message: 'Select AI tool:',
183
- choices: supportedTools.map(t => {
184
- const config = getAgentConfig(t);
185
- const hasTask = supportsTask(t);
186
- const mode = hasTask ? 'auto-execute' : 'guided';
187
- return {
188
- name: `${config.name} [${mode}]`,
189
- value: t
190
- };
191
- }),
192
- default: 'claude-code'
193
- });
194
-
195
- const selectedLevel = await select({
196
- message: 'Installation level:',
197
- choices: [
198
- { name: 'Project (.claude/workflows/)', value: 'project' },
199
- { name: 'User (~/.claude/workflows/)', value: 'user' }
200
- ],
201
- default: 'project'
202
- });
203
-
204
- targetTool = selectedTool;
205
- level = selectedLevel;
206
- }
207
-
208
- // Perform installation
209
- console.log(chalk.gray(`Installing workflows for ${getAgentConfig(targetTool).name}...`));
210
- console.log();
211
-
212
- const result = await installWorkflowsForTool(
213
- targetTool,
214
- level,
215
- workflowsToInstall,
216
- level === 'project' ? projectPath : null
217
- );
218
-
219
- if (result.success) {
220
- console.log(chalk.green(`✓ Installed ${result.installed.length} workflow(s)`));
221
-
222
- for (const workflow of result.installed) {
223
- console.log(` ${chalk.green('✓')} ${workflow}`);
224
- }
225
-
226
- console.log();
227
- console.log(chalk.gray(`Location: ${result.targetDir}`));
228
-
229
- // Show execution mode info
230
- if (supportsTask(targetTool)) {
231
- console.log();
232
- console.log(chalk.cyan('Workflows can be auto-executed with Task tool support.'));
233
- } else {
234
- console.log();
235
- console.log(chalk.yellow('Note: This tool will use guided checklist mode.'));
236
- console.log(chalk.gray('Workflows will be presented as step-by-step guides.'));
237
- }
238
- } else {
239
- console.log(chalk.red('✗ Installation failed'));
240
- if (result.error) {
241
- console.log(chalk.red(` ${result.error}`));
242
- }
243
- for (const err of result.errors) {
244
- console.log(chalk.red(` ${err.workflow}: ${err.error}`));
245
- }
246
- }
247
-
248
- console.log();
249
- }
250
-
251
- /**
252
- * Workflow info command - show details about a workflow
253
- */
254
- export async function workflowInfoCommand(workflowName, _options) {
255
- if (!workflowName) {
256
- console.log(chalk.red('Please specify a workflow name.'));
257
- console.log(chalk.gray('Usage: uds workflow info <workflow-name>'));
258
- return;
259
- }
260
-
261
- const content = getWorkflowContent(workflowName);
262
-
263
- if (!content) {
264
- console.log(chalk.red(`Workflow not found: ${workflowName}`));
265
- const available = getAvailableWorkflowNames();
266
- console.log(chalk.gray(`Available workflows: ${available.join(', ')}`));
267
- return;
268
- }
269
-
270
- const workflow = parseWorkflow(content);
271
-
272
- console.log();
273
- console.log(chalk.bold(`🔄 Workflow: ${workflowName}`));
274
- console.log(chalk.gray('─'.repeat(50)));
275
- console.log();
276
-
277
- console.log(`${chalk.bold('Name:')} ${workflow.name || workflowName}`);
278
- console.log(`${chalk.bold('Version:')} ${workflow.version || '1.0.0'}`);
279
-
280
- if (workflow.metadata) {
281
- if (workflow.metadata.category) {
282
- console.log(`${chalk.bold('Category:')} ${workflow.metadata.category}`);
283
- }
284
- if (workflow.metadata.difficulty) {
285
- const difficultyColor = getDifficultyColor(workflow.metadata.difficulty);
286
- console.log(`${chalk.bold('Difficulty:')} ${difficultyColor(workflow.metadata.difficulty)}`);
287
- }
288
- if (workflow.metadata.estimated_steps) {
289
- console.log(`${chalk.bold('Estimated Steps:')} ${workflow.metadata.estimated_steps}`);
290
- }
291
- }
292
-
293
- if (workflow.description) {
294
- console.log();
295
- console.log(chalk.bold('Description:'));
296
- console.log(chalk.gray(cleanDescription(workflow.description)));
297
- }
298
-
299
- if (workflow.prerequisites && workflow.prerequisites.length > 0) {
300
- console.log();
301
- console.log(chalk.bold('Prerequisites:'));
302
- for (const prereq of workflow.prerequisites) {
303
- console.log(` • ${prereq}`);
304
- }
305
- }
306
-
307
- if (workflow.steps && workflow.steps.length > 0) {
308
- console.log();
309
- console.log(chalk.bold('Steps:'));
310
- console.log();
311
-
312
- for (let i = 0; i < workflow.steps.length; i++) {
313
- const step = workflow.steps[i];
314
- const typeIcon = getStepTypeIcon(step.type);
315
- const phaseLabel = step.phase ? chalk.gray(`[${step.phase}]`) : '';
316
-
317
- console.log(` ${chalk.cyan(`${i + 1}.`)} ${typeIcon} ${step.name} ${phaseLabel}`);
318
-
319
- if (step.agent) {
320
- console.log(` ${chalk.gray('Agent:')} ${step.agent}`);
321
- }
322
- if (step.description) {
323
- const desc = cleanDescription(step.description).substring(0, 60);
324
- console.log(` ${chalk.gray(desc)}${step.description.length > 60 ? '...' : ''}`);
325
- }
326
- }
327
- }
328
-
329
- if (workflow.outputs && workflow.outputs.length > 0) {
330
- console.log();
331
- console.log(chalk.bold('Outputs:'));
332
- for (const output of workflow.outputs) {
333
- console.log(` • ${output.name}: ${output.description || 'No description'}`);
334
- }
335
- }
336
-
337
- console.log();
338
- }
339
-
340
- /**
341
- * Get category icon
342
- * @param {string} category - Workflow category
343
- * @returns {string} Icon
344
- */
345
- function getCategoryIcon(category) {
346
- switch (category) {
347
- case 'development':
348
- return chalk.green('⚙');
349
- case 'review':
350
- return chalk.yellow('👁');
351
- case 'testing':
352
- return chalk.blue('🧪');
353
- case 'documentation':
354
- return chalk.magenta('📝');
355
- default:
356
- return chalk.gray('○');
357
- }
358
- }
359
-
360
- /**
361
- * Get step type icon
362
- * @param {string} type - Step type
363
- * @returns {string} Icon
364
- */
365
- function getStepTypeIcon(type) {
366
- switch (type) {
367
- case 'agent':
368
- return chalk.green('●');
369
- case 'manual':
370
- return chalk.yellow('○');
371
- case 'conditional':
372
- return chalk.blue('◇');
373
- default:
374
- return chalk.gray('○');
375
- }
376
- }
377
-
378
- /**
379
- * Get difficulty color function
380
- * @param {string} difficulty - Difficulty level
381
- * @returns {Function} Chalk color function
382
- */
383
- function getDifficultyColor(difficulty) {
384
- switch (difficulty) {
385
- case 'beginner':
386
- return chalk.green;
387
- case 'intermediate':
388
- return chalk.yellow;
389
- case 'advanced':
390
- return chalk.red;
391
- default:
392
- return chalk.gray;
393
- }
394
- }
395
-
396
- /**
397
- * Truncate description for display
398
- * @param {string} description - Full description
399
- * @returns {string} Truncated description
400
- */
401
- function truncateDescription(description) {
402
- const cleaned = cleanDescription(description);
403
- const firstLine = cleaned.split('\n')[0].trim();
404
- if (firstLine.length <= 60) return firstLine;
405
- return firstLine.substring(0, 57) + '...';
406
- }
407
-
408
- /**
409
- * Clean description text
410
- * @param {string} description - Description text
411
- * @returns {string} Cleaned description
412
- */
413
- function cleanDescription(description) {
414
- if (!description) return '';
415
- return description
416
- .replace(/^\|?\s*/, '')
417
- .replace(/\s+/g, ' ')
418
- .trim();
419
- }
420
-
421
- /**
422
- * Workflow execute command - execute a workflow step by step
423
- * @param {string} workflowName - Name of the workflow to execute
424
- * @param {Object} options - Command options
425
- */
426
- export async function workflowExecuteCommand(workflowName, options) {
427
- const projectPath = process.cwd();
428
-
429
- // Set UI language based on project's display_language if initialized
430
- if (!isLanguageExplicitlySet() && isInitialized(projectPath)) {
431
- const manifest = readManifest(projectPath);
432
- if (manifest?.options?.display_language) {
433
- const uiLang = manifest.options.display_language;
434
- setLanguage(uiLang);
435
- }
436
- }
437
-
438
- // Validate workflow name
439
- if (!workflowName) {
440
- console.log(chalk.red('Please specify a workflow name.'));
441
- console.log(chalk.gray('Usage: uds workflow execute <workflow-name>'));
442
- console.log();
443
-
444
- const available = getAvailableWorkflowNames();
445
- if (available.length > 0) {
446
- console.log(chalk.gray('Available workflows:'));
447
- for (const name of available) {
448
- console.log(chalk.gray(` - ${name}`));
449
- }
450
- }
451
- return;
452
- }
453
-
454
- // Check if workflow exists
455
- const content = getWorkflowContent(workflowName);
456
- if (!content) {
457
- console.log(chalk.red(`Workflow not found: ${workflowName}`));
458
- const available = getAvailableWorkflowNames();
459
- console.log(chalk.gray(`Available workflows: ${available.join(', ')}`));
460
- return;
461
- }
462
-
463
- // Determine target AI tool
464
- let targetTool = options.tool || 'claude-code';
465
- const supportedTools = getWorkflowsSupportedAgents();
466
-
467
- if (!supportedTools.includes(targetTool)) {
468
- console.log(chalk.red(`AI tool '${targetTool}' does not support workflows.`));
469
- console.log(chalk.gray(`Supported tools: ${supportedTools.join(', ')}`));
470
- return;
471
- }
472
-
473
- // Check for resume mode
474
- if (options.resume) {
475
- const stateManager = new WorkflowStateManager(workflowName, projectPath);
476
- if (!stateManager.exists()) {
477
- console.log(chalk.yellow('No saved state found for this workflow.'));
478
- console.log(chalk.gray('Starting fresh execution...'));
479
- console.log();
480
- options.resume = false;
481
- } else if (!stateManager.canResume()) {
482
- console.log(chalk.yellow('Workflow state exists but cannot be resumed.'));
483
- console.log(chalk.gray('Starting fresh execution...'));
484
- console.log();
485
- options.resume = false;
486
- }
487
- }
488
-
489
- // Create executor
490
- const executor = new WorkflowExecutor({
491
- aiTool: targetTool,
492
- projectPath,
493
- verbose: options.verbose || false,
494
- dryRun: options.dryRun || false,
495
- interactive: !options.yes
496
- });
497
-
498
- // Execute or resume
499
- let result;
500
- if (options.resume) {
501
- result = await executor.resume(workflowName);
502
- } else {
503
- result = await executor.execute(workflowName, {
504
- restart: options.restart || false
505
- });
506
- }
507
-
508
- // Handle result
509
- if (!result.success) {
510
- if (result.paused) {
511
- console.log();
512
- console.log(chalk.yellow('Workflow paused.'));
513
- console.log(chalk.gray('Run with --resume to continue from where you left off:'));
514
- console.log(chalk.gray(` uds workflow execute ${workflowName} --resume`));
515
- } else {
516
- console.log();
517
- console.log(chalk.red(`Workflow execution failed: ${result.error}`));
518
-
519
- if (result.failedStep) {
520
- console.log(chalk.gray(`Failed at step: ${result.failedStep}`));
521
- }
522
- }
523
- return;
524
- }
525
-
526
- // Success
527
- if (result.dryRun) {
528
- console.log();
529
- console.log(chalk.cyan('Dry run complete. No changes were made.'));
530
- console.log(chalk.gray('Remove --dry-run to execute the workflow.'));
531
- }
532
-
533
- console.log();
534
- }
535
-
536
- /**
537
- * Workflow status command - show current execution status
538
- * @param {string} workflowName - Name of the workflow
539
- * @param {Object} options - Command options
540
- */
541
- export async function workflowStatusCommand(workflowName, _options) {
542
- const projectPath = process.cwd();
543
-
544
- if (!workflowName) {
545
- // List all workflows with saved state
546
- console.log();
547
- console.log(chalk.bold('📊 Workflow Execution Status'));
548
- console.log(chalk.gray('─'.repeat(50)));
549
- console.log();
550
-
551
- const available = getAvailableWorkflowNames();
552
- let foundAny = false;
553
-
554
- for (const name of available) {
555
- const stateManager = new WorkflowStateManager(name, projectPath);
556
- if (stateManager.exists()) {
557
- stateManager.load();
558
- const summary = stateManager.getSummary();
559
-
560
- if (summary) {
561
- foundAny = true;
562
- const statusIcon = getStatusIcon(summary.status);
563
- console.log(` ${statusIcon} ${chalk.cyan(name)}`);
564
- console.log(` Status: ${summary.status}`);
565
- console.log(` Progress: ${summary.progress.completed}/${summary.progress.total} steps`);
566
-
567
- if (summary.currentStepId) {
568
- console.log(` Current: ${summary.currentStepId}`);
569
- }
570
-
571
- console.log();
572
- }
573
- }
574
- }
575
-
576
- if (!foundAny) {
577
- console.log(chalk.gray('No workflows currently in progress.'));
578
- console.log();
579
- }
580
-
581
- return;
582
- }
583
-
584
- // Show status for specific workflow
585
- const stateManager = new WorkflowStateManager(workflowName, projectPath);
586
-
587
- if (!stateManager.exists()) {
588
- console.log(chalk.yellow(`No execution state found for workflow: ${workflowName}`));
589
- return;
590
- }
591
-
592
- stateManager.load();
593
- const summary = stateManager.getSummary();
594
- const state = stateManager.getState();
595
-
596
- console.log();
597
- console.log(chalk.bold(`📊 Workflow Status: ${workflowName}`));
598
- console.log(chalk.gray('─'.repeat(50)));
599
- console.log();
600
-
601
- console.log(`Status: ${getStatusIcon(summary.status)} ${summary.status}`);
602
- console.log(`Progress: ${summary.progress.completed}/${summary.progress.total} steps (${summary.progress.percentage}%)`);
603
-
604
- if (summary.startedAt) {
605
- console.log(`Started: ${summary.startedAt}`);
606
- }
607
-
608
- if (summary.completedAt) {
609
- console.log(`Completed: ${summary.completedAt}`);
610
- }
611
-
612
- console.log();
613
- console.log(chalk.bold('Steps:'));
614
- console.log();
615
-
616
- for (const [stepId, stepState] of Object.entries(state.steps)) {
617
- const statusIcon = getStepStatusIcon(stepState.status);
618
- console.log(` ${statusIcon} ${stepId}: ${stepState.status}`);
619
-
620
- if (stepState.error) {
621
- console.log(chalk.red(` Error: ${stepState.error}`));
622
- }
623
- }
624
-
625
- console.log();
626
-
627
- if (stateManager.canResume()) {
628
- console.log(chalk.cyan('To resume: uds workflow execute ' + workflowName + ' --resume'));
629
- console.log();
630
- }
631
- }
632
-
633
- /**
634
- * Get status icon for workflow status
635
- * @param {string} status - Workflow status
636
- * @returns {string} Icon
637
- */
638
- function getStatusIcon(status) {
639
- switch (status) {
640
- case 'completed':
641
- return chalk.green('✓');
642
- case 'in_progress':
643
- return chalk.yellow('◐');
644
- case 'paused':
645
- return chalk.blue('⏸');
646
- case 'failed':
647
- return chalk.red('✗');
648
- default:
649
- return chalk.gray('○');
650
- }
651
- }
652
-
653
- /**
654
- * Get status icon for step status
655
- * @param {string} status - Step status
656
- * @returns {string} Icon
657
- */
658
- function getStepStatusIcon(status) {
659
- switch (status) {
660
- case 'completed':
661
- return chalk.green('✓');
662
- case 'in_progress':
663
- return chalk.yellow('◐');
664
- case 'pending':
665
- return chalk.gray('○');
666
- case 'failed':
667
- return chalk.red('✗');
668
- case 'skipped':
669
- return chalk.gray('⊘');
670
- default:
671
- return chalk.gray('○');
672
- }
673
- }
674
-
675
- export default {
676
- workflowListCommand,
677
- workflowInstallCommand,
678
- workflowInfoCommand,
679
- workflowExecuteCommand,
680
- workflowStatusCommand
681
- };