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
@@ -0,0 +1,544 @@
1
+ ---
2
+ source: ../../../core/test-completeness-dimensions.md
3
+ source_version: 1.0.0
4
+ translation_version: 1.0.0
5
+ last_synced: 2025-12-30
6
+ status: current
7
+ ---
8
+
9
+ # 測試完整性維度
10
+
11
+ **版本**: 1.0.0
12
+ **最後更新**: 2025-12-24
13
+ **適用範圍**: 所有需要測試的軟體專案
14
+
15
+ [English](../../../core/test-completeness-dimensions.md) | [繁體中文](.)
16
+
17
+ ---
18
+
19
+ ## 目的
20
+
21
+ 本文件定義評估測試完整性的系統性框架。為開發者提供檢核清單,確保測試覆蓋多個維度。
22
+
23
+ ---
24
+
25
+ ## 七個維度
26
+
27
+ 完整的測試套件應為每個功能涵蓋以下 7 個維度:
28
+
29
+ ```
30
+ ┌─────────────────────────────────────────────────────────────┐
31
+ │ 測試完整性 = 7 個維度 │
32
+ ├─────────────────────────────────────────────────────────────┤
33
+ │ 1. 正向路徑 正常預期行為 │
34
+ │ 2. 邊界條件 最小/最大值、限制 │
35
+ │ 3. 錯誤處理 無效輸入、例外狀況 │
36
+ │ 4. 權限驗證 角色存取控制 │
37
+ │ 5. 狀態轉換 前後驗證 │
38
+ │ 6. 驗證邏輯 格式、業務規則 │
39
+ │ 7. 整合驗證 實際查詢驗證 │
40
+ └─────────────────────────────────────────────────────────────┘
41
+ ```
42
+
43
+ ---
44
+
45
+ ## 維度詳解
46
+
47
+ ### 1. 正向路徑
48
+
49
+ 測試使用有效輸入的正常預期流程。
50
+
51
+ **測試內容**:
52
+ - 有效輸入產生預期輸出
53
+ - 成功狀態碼/回應
54
+ - 資料正確建立/修改
55
+ - 副作用如預期發生
56
+
57
+ **範例**:
58
+ ```csharp
59
+ [Fact]
60
+ public async Task CreateUser_WithValidData_ReturnsSuccess()
61
+ {
62
+ // Arrange
63
+ var request = new CreateUserRequest
64
+ {
65
+ Username = "newuser",
66
+ Email = "user@example.com",
67
+ Password = "SecurePass123!"
68
+ };
69
+
70
+ // Act
71
+ var result = await _service.CreateUserAsync(request);
72
+
73
+ // Assert
74
+ result.Success.Should().BeTrue();
75
+ result.Data.Username.Should().Be("newuser");
76
+ }
77
+ ```
78
+
79
+ ---
80
+
81
+ ### 2. 邊界條件
82
+
83
+ 測試有效範圍邊緣的值。
84
+
85
+ **測試內容**:
86
+ - 最小有效值
87
+ - 最大有效值
88
+ - 略小於最小值(無效)
89
+ - 略大於最大值(無效)
90
+ - 空集合 vs. 單一項目 vs. 多個項目
91
+
92
+ **範例**:
93
+ ```csharp
94
+ [Theory]
95
+ [InlineData(0, false)] // Below minimum
96
+ [InlineData(1, true)] // Minimum valid
97
+ [InlineData(100, true)] // Maximum valid
98
+ [InlineData(101, false)] // Above maximum
99
+ public void ValidateQuantity_BoundaryValues_ReturnsExpected(
100
+ int quantity, bool expected)
101
+ {
102
+ var result = _validator.IsValidQuantity(quantity);
103
+ result.Should().Be(expected);
104
+ }
105
+
106
+ [Fact]
107
+ public async Task BatchProcess_ExceedingLimit_ReturnsError()
108
+ {
109
+ // Arrange - Create 1001 items (limit is 1000)
110
+ var items = Enumerable.Range(1, 1001)
111
+ .Select(i => new Item { Id = i })
112
+ .ToList();
113
+
114
+ // Act
115
+ var result = await _service.ProcessBatchAsync(items);
116
+
117
+ // Assert
118
+ result.Success.Should().BeFalse();
119
+ result.ErrorCode.Should().Be("LIMIT_EXCEEDED");
120
+ }
121
+ ```
122
+
123
+ ---
124
+
125
+ ### 3. 錯誤處理
126
+
127
+ 測試系統如何處理無效輸入和異常狀況。
128
+
129
+ **測試內容**:
130
+ - 無效輸入格式
131
+ - 缺少必填欄位
132
+ - 重複資料衝突
133
+ - 資源未找到
134
+ - 外部服務故障
135
+
136
+ **範例**:
137
+ ```csharp
138
+ [Fact]
139
+ public async Task CreateUser_DuplicateEmail_ReturnsConflict()
140
+ {
141
+ // Arrange
142
+ var request = new CreateUserRequest
143
+ {
144
+ Email = "existing@example.com" // Already exists
145
+ };
146
+
147
+ // Act
148
+ var result = await _service.CreateUserAsync(request);
149
+
150
+ // Assert
151
+ result.Success.Should().BeFalse();
152
+ result.ErrorCode.Should().Be("DUPLICATE_EMAIL");
153
+ }
154
+
155
+ [Fact]
156
+ public async Task GetUser_NotFound_ReturnsNotFoundError()
157
+ {
158
+ // Arrange
159
+ var nonExistentId = 99999;
160
+
161
+ // Act
162
+ var result = await _service.GetUserAsync(nonExistentId);
163
+
164
+ // Assert
165
+ result.Should().BeNull();
166
+ }
167
+
168
+ [Fact]
169
+ public async Task CreateUser_MissingRequiredFields_ReturnsValidationError()
170
+ {
171
+ // Arrange
172
+ var request = new CreateUserRequest
173
+ {
174
+ Username = "", // Required but empty
175
+ Email = null // Required but null
176
+ };
177
+
178
+ // Act
179
+ var result = await _service.CreateUserAsync(request);
180
+
181
+ // Assert
182
+ result.Success.Should().BeFalse();
183
+ result.ErrorCode.Should().Be("VALIDATION_ERROR");
184
+ }
185
+ ```
186
+
187
+ ---
188
+
189
+ ### 4. 權限驗證
190
+
191
+ 測試每個操作的角色存取控制。
192
+
193
+ **測試內容**:
194
+ - 每個角色允許的操作
195
+ - 每個角色拒絕的操作
196
+ - 未認證存取
197
+ - 跨租戶/跨使用者資料存取
198
+
199
+ **權限測試矩陣**:
200
+
201
+ 為每個功能建立矩陣:
202
+
203
+ | 操作 | Admin | Manager | Member | Guest |
204
+ |------|-------|---------|--------|-------|
205
+ | Create | ✅ | ✅ | ❌ | ❌ |
206
+ | Read All | ✅ | ⚠️ Scoped | ❌ | ❌ |
207
+ | Update | ✅ | ⚠️ Own dept | ❌ | ❌ |
208
+ | Delete | ✅ | ❌ | ❌ | ❌ |
209
+
210
+ 每個儲存格應有對應的測試案例。
211
+
212
+ **範例**:
213
+ ```csharp
214
+ [Fact]
215
+ public async Task DeleteUser_AsAdmin_Succeeds()
216
+ {
217
+ // Arrange
218
+ var adminContext = CreateContext(role: "Admin");
219
+
220
+ // Act
221
+ var result = await _service.DeleteUserAsync(userId, adminContext);
222
+
223
+ // Assert
224
+ result.Success.Should().BeTrue();
225
+ }
226
+
227
+ [Fact]
228
+ public async Task DeleteUser_AsMember_ReturnsForbidden()
229
+ {
230
+ // Arrange
231
+ var memberContext = CreateContext(role: "Member");
232
+
233
+ // Act
234
+ var result = await _service.DeleteUserAsync(userId, memberContext);
235
+
236
+ // Assert
237
+ result.Success.Should().BeFalse();
238
+ result.ErrorCode.Should().Be("FORBIDDEN");
239
+ }
240
+
241
+ [Fact]
242
+ public async Task GetUsers_AsManager_ReturnsOnlyDepartmentMembers()
243
+ {
244
+ // Arrange
245
+ var managerContext = CreateContext(role: "Manager", deptId: 5);
246
+
247
+ // Act
248
+ var result = await _service.GetUsersAsync(managerContext);
249
+
250
+ // Assert
251
+ result.Data.Should().AllSatisfy(u => u.DeptId.Should().Be(5));
252
+ }
253
+ ```
254
+
255
+ ---
256
+
257
+ ### 5. 狀態轉換
258
+
259
+ 驗證操作正確修改系統狀態。
260
+
261
+ **測試內容**:
262
+ - 操作前狀態
263
+ - 操作後狀態
264
+ - 狀態轉換(enabled → disabled, pending → approved)
265
+ - 冪等性(重複操作有相同結果)
266
+
267
+ **範例**:
268
+ ```csharp
269
+ [Fact]
270
+ public async Task DisableUser_UpdatesStateCorrectly()
271
+ {
272
+ // Arrange
273
+ var user = await CreateEnabledUser();
274
+ user.IsEnabled.Should().BeTrue(); // Verify initial state
275
+
276
+ // Act
277
+ await _service.DisableUserAsync(user.Id);
278
+
279
+ // Assert
280
+ var updatedUser = await _repository.GetByIdAsync(user.Id);
281
+ updatedUser.IsEnabled.Should().BeFalse(); // Verify final state
282
+ updatedUser.DisabledAt.Should().BeCloseTo(DateTime.UtcNow, TimeSpan.FromSeconds(5));
283
+ }
284
+
285
+ [Fact]
286
+ public async Task EnableUser_FromDisabledState_UpdatesStateCorrectly()
287
+ {
288
+ // Arrange
289
+ var user = await CreateDisabledUser();
290
+ user.IsEnabled.Should().BeFalse(); // Verify initial state
291
+
292
+ // Act
293
+ await _service.EnableUserAsync(user.Id);
294
+
295
+ // Assert
296
+ var updatedUser = await _repository.GetByIdAsync(user.Id);
297
+ updatedUser.IsEnabled.Should().BeTrue();
298
+ }
299
+ ```
300
+
301
+ ---
302
+
303
+ ### 6. 驗證邏輯
304
+
305
+ 測試業務規則和格式驗證。
306
+
307
+ **測試內容**:
308
+ - 格式驗證(email、phone 等)
309
+ - 業務規則驗證
310
+ - 跨欄位驗證
311
+ - 特定領域限制
312
+
313
+ **範例**:
314
+ ```csharp
315
+ [Theory]
316
+ [InlineData("user@example.com", true)]
317
+ [InlineData("invalid-email", false)]
318
+ [InlineData("", false)]
319
+ [InlineData(null, false)]
320
+ public void ValidateEmail_VariousFormats_ReturnsExpected(
321
+ string email, bool expected)
322
+ {
323
+ var result = _validator.IsValidEmail(email);
324
+ result.Should().Be(expected);
325
+ }
326
+
327
+ [Fact]
328
+ public async Task CreateUser_InvalidUsernameFormat_ReturnsValidationError()
329
+ {
330
+ // Arrange - Username contains special characters
331
+ var request = new CreateUserRequest
332
+ {
333
+ Username = "invalid@user!", // Only alphanumeric allowed
334
+ Email = "valid@example.com"
335
+ };
336
+
337
+ // Act
338
+ var result = await _service.CreateUserAsync(request);
339
+
340
+ // Assert
341
+ result.Success.Should().BeFalse();
342
+ result.Errors.Should().Contain(e => e.Field == "Username");
343
+ }
344
+
345
+ [Fact]
346
+ public async Task CreateOrder_QuantityExceedsStock_ReturnsBusinessRuleError()
347
+ {
348
+ // Arrange
349
+ var product = await CreateProduct(stockQuantity: 10);
350
+ var request = new CreateOrderRequest
351
+ {
352
+ ProductId = product.Id,
353
+ Quantity = 15 // Exceeds available stock
354
+ };
355
+
356
+ // Act
357
+ var result = await _service.CreateOrderAsync(request);
358
+
359
+ // Assert
360
+ result.Success.Should().BeFalse();
361
+ result.ErrorCode.Should().Be("INSUFFICIENT_STOCK");
362
+ }
363
+ ```
364
+
365
+ ---
366
+
367
+ ### 7. 整合驗證
368
+
369
+ 驗證實際資料庫查詢和外部整合正確運作。
370
+
371
+ **何時需要**:
372
+
373
+ 根據[測試標準](testing-standards.md)(或 `/testing-guide` 技能),如果單元測試對查詢參數使用萬用匹配器(`It.IsAny<>`, `any()`, `Arg.Any<>`),必須有整合測試。
374
+
375
+ **測試內容**:
376
+ - 查詢述詞回傳正確資料
377
+ - 實體關聯正確載入
378
+ - 分頁正確運作
379
+ - 排序和篩選正確運作
380
+
381
+ **範例**:
382
+ ```csharp
383
+ // Unit test - cannot verify query logic
384
+ [Fact]
385
+ public async Task GetActiveUsers_MockedRepository_ReturnsUsers()
386
+ {
387
+ // ⚠️ This test uses It.IsAny<> - needs integration test!
388
+ _repoMock.Setup(r => r.FindAsync(It.IsAny<Expression<Func<User, bool>>>()))
389
+ .ReturnsAsync(users);
390
+
391
+ var result = await _service.GetActiveUsersAsync();
392
+ result.Should().NotBeEmpty();
393
+ }
394
+
395
+ // ✅ Integration test - verifies actual query
396
+ [Fact]
397
+ public async Task GetActiveUsers_RealDatabase_ReturnsOnlyActiveUsers()
398
+ {
399
+ // Arrange - Seed database with mixed data
400
+ await SeedUsers(
401
+ new User { Name = "Active1", IsActive = true },
402
+ new User { Name = "Active2", IsActive = true },
403
+ new User { Name = "Inactive", IsActive = false }
404
+ );
405
+
406
+ // Act
407
+ var result = await _service.GetActiveUsersAsync();
408
+
409
+ // Assert
410
+ result.Should().HaveCount(2);
411
+ result.Should().AllSatisfy(u => u.IsActive.Should().BeTrue());
412
+ result.Should().NotContain(u => u.Name == "Inactive");
413
+ }
414
+ ```
415
+
416
+ ---
417
+
418
+ ## 測試案例設計清單
419
+
420
+ 使用此清單檢核每個功能的完整性:
421
+
422
+ ```
423
+ 功能: ___________________
424
+
425
+ □ 正向路徑
426
+ □ 有效輸入產生預期成功
427
+ □ 回傳/建立正確資料
428
+ □ 副作用如預期發生
429
+
430
+ □ 邊界條件
431
+ □ 最小有效值
432
+ □ 最大有效值
433
+ □ 空集合
434
+ □ 單一項目集合
435
+ □ 大型集合(如適用)
436
+
437
+ □ 錯誤處理
438
+ □ 無效輸入格式
439
+ □ 缺少必填欄位
440
+ □ 重複/衝突情境
441
+ □ 未找到情境
442
+ □ 外部服務故障(如適用)
443
+
444
+ □ 權限驗證
445
+ □ 每個允許角色已測試
446
+ □ 每個拒絕角色已測試
447
+ □ 未認證存取已測試
448
+ □ 跨邊界存取已測試
449
+
450
+ □ 狀態變更
451
+ □ 初始狀態已驗證
452
+ □ 最終狀態已驗證
453
+ □ 所有有效狀態轉換已測試
454
+
455
+ □ 驗證
456
+ □ 格式驗證(email、phone 等)
457
+ □ 業務規則驗證
458
+ □ 跨欄位驗證
459
+
460
+ □ 整合(如果單元測試使用萬用匹配器)
461
+ □ 查詢述詞已驗證
462
+ □ 實體關聯已驗證
463
+ □ 分頁已驗證
464
+ □ 排序/篩選已驗證
465
+ ```
466
+
467
+ ---
468
+
469
+ ## 錯誤碼覆蓋矩陣
470
+
471
+ 對於有定義錯誤碼的 API,確保每個錯誤碼都有測試:
472
+
473
+ | 代碼 | 意義 | 測試情境 |
474
+ |------|------|----------|
475
+ | 200 | 成功 | 正向路徑測試 |
476
+ | 400 | 錯誤請求 | 無效格式、缺少欄位 |
477
+ | 401 | 未認證 | 無效/缺少 token |
478
+ | 403 | 禁止 | 有效 token、權限不足 |
479
+ | 404 | 未找到 | 不存在的資源 |
480
+ | 409 | 衝突 | 重複資料 |
481
+ | 422 | 無法處理 | 違反業務規則 |
482
+ | 500 | 伺服器錯誤 | 例外處理 |
483
+
484
+ ---
485
+
486
+ ## 何時應用各維度
487
+
488
+ 並非所有維度都適用於每個功能。使用此指南:
489
+
490
+ | 功能類型 | 必需維度 |
491
+ |---------|---------|
492
+ | CRUD API | 1, 2, 3, 4, 6, 7 |
493
+ | 查詢/搜尋 | 1, 2, 3, 4, 7 |
494
+ | 狀態機 | 1, 3, 4, 5, 6 |
495
+ | 驗證 | 1, 2, 3, 6 |
496
+ | 背景工作 | 1, 3, 5 |
497
+ | 外部整合 | 1, 3, 7 |
498
+
499
+ ---
500
+
501
+ ## 反模式
502
+
503
+ 避免這些常見錯誤:
504
+
505
+ ```
506
+ ❌ 只測試正向路徑
507
+
508
+ ❌ 多角色系統缺少權限測試
509
+
510
+ ❌ 未驗證狀態變更
511
+
512
+ ❌ 單元測試使用萬用匹配器但無對應整合測試
513
+
514
+ ❌ 測試資料的 ID 與業務識別碼使用相同值
515
+
516
+ ❌ 測試實作細節而非行為
517
+ ```
518
+
519
+ ---
520
+
521
+ ## 相關標準
522
+
523
+ - [測試驅動開發](test-driven-development.md) - TDD/BDD/ATDD 方法論
524
+ - [測試標準](testing-standards.md) - 核心測試標準(或使用 `/testing-guide` 技能)
525
+ - [程式碼審查清單](code-review-checklist.md) - 審查測試完整性
526
+ - [簽入標準](checkin-standards.md) - 提交前測試需求
527
+
528
+ ---
529
+
530
+ ## 版本歷史
531
+
532
+ | 版本 | 日期 | 變更 |
533
+ |------|------|------|
534
+ | 1.0.0 | 2025-12-24 | 初始發布,包含 7 維度框架 |
535
+
536
+ ---
537
+
538
+ ## 授權
539
+
540
+ 本標準以 [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/) 授權發布。
541
+
542
+ ---
543
+
544
+ **維護者**: 開發團隊