universal-dev-standards 5.17.0 → 6.1.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 (563) hide show
  1. package/bin/uds.js +13 -135
  2. package/bundled/ai/options/commit-message/bilingual.ai.yaml +19 -1
  3. package/bundled/ai/standards/acceptance-criteria-traceability.ai.yaml +13 -4
  4. package/bundled/ai/standards/accessibility-standards.ai.yaml +1 -1
  5. package/bundled/ai/standards/ai-response-navigation.ai.yaml +15 -2
  6. package/bundled/ai/standards/api-design-standards.ai.yaml +27 -4
  7. package/bundled/ai/standards/behavior-snapshot.ai.yaml +86 -9
  8. package/bundled/ai/standards/checkin-standards.ai.yaml +3 -3
  9. package/bundled/ai/standards/code-review.ai.yaml +2 -2
  10. package/bundled/ai/standards/context-aware-loading.ai.yaml +3 -3
  11. package/bundled/ai/standards/data-migration-testing.ai.yaml +79 -3
  12. package/bundled/ai/standards/deprecation-standards.ai.yaml +10 -2
  13. package/bundled/ai/standards/developer-memory.ai.yaml +4 -3
  14. package/bundled/ai/standards/documentation-writing-standards.ai.yaml +1 -1
  15. package/bundled/ai/standards/flow-based-testing.ai.yaml +2 -2
  16. package/bundled/ai/standards/forward-derivation-standards.ai.yaml +26 -2
  17. package/bundled/ai/standards/frontend-design-standards.ai.yaml +33 -3
  18. package/bundled/ai/standards/full-coverage-testing.ai.yaml +34 -2
  19. package/bundled/ai/standards/git-worktree.ai.yaml +3 -3
  20. package/bundled/ai/standards/logging.ai.yaml +97 -3
  21. package/bundled/ai/standards/mock-boundary.ai.yaml +48 -2
  22. package/bundled/ai/standards/model-provenance.ai.yaml +297 -0
  23. package/bundled/ai/standards/model-selection.ai.yaml +11 -2
  24. package/bundled/ai/standards/observability-standards.ai.yaml +10 -0
  25. package/bundled/ai/standards/performance-standards.ai.yaml +46 -1
  26. package/bundled/ai/standards/pii-classification.ai.yaml +15 -1
  27. package/bundled/ai/standards/pipeline-security-gates.ai.yaml +10 -0
  28. package/bundled/ai/standards/privacy-standards.ai.yaml +2 -2
  29. package/bundled/ai/standards/project-context-memory.ai.yaml +2 -2
  30. package/bundled/ai/standards/push-standards.ai.yaml +14 -3
  31. package/bundled/ai/standards/refactoring-standards.ai.yaml +68 -3
  32. package/bundled/ai/standards/requirement-engineering.ai.yaml +42 -3
  33. package/bundled/ai/standards/resource-cost-boundary.ai.yaml +279 -0
  34. package/bundled/ai/standards/reverse-engineering-standards.ai.yaml +55 -2
  35. package/bundled/ai/standards/security-testing.ai.yaml +13 -2
  36. package/bundled/ai/standards/self-review-protocol.ai.yaml +15 -10
  37. package/bundled/ai/standards/skill-standard-alignment-check.ai.yaml +37 -2
  38. package/bundled/ai/standards/user-journey-testing.ai.yaml +107 -0
  39. package/bundled/ai/standards/verification-evidence.ai.yaml +88 -5
  40. package/bundled/ai/standards/verification-oracle.ai.yaml +278 -0
  41. package/bundled/ai/standards/versioning.ai.yaml +32 -38
  42. package/bundled/core/acceptance-criteria-traceability.md +15 -5
  43. package/bundled/core/accessibility-standards.md +8 -4
  44. package/bundled/core/ai-friendly-architecture.md +1 -1
  45. package/bundled/core/ai-response-navigation.md +31 -3
  46. package/bundled/core/anti-sycophancy-prompting.md +1 -1
  47. package/bundled/core/api-design-standards.md +92 -7
  48. package/bundled/core/audit-trail.md +119 -0
  49. package/bundled/core/behavior-snapshot.md +94 -7
  50. package/bundled/core/browser-compatibility-standards.md +15 -2
  51. package/bundled/core/checkin-standards.md +10 -3
  52. package/bundled/core/code-review-checklist.md +10 -2
  53. package/bundled/core/container-image-standards.md +97 -0
  54. package/bundled/core/context-aware-loading.md +2 -2
  55. package/bundled/core/cost-budget-test.md +1 -1
  56. package/bundled/core/cross-flow-regression.md +3 -2
  57. package/bundled/core/data-contract.md +104 -0
  58. package/bundled/core/data-migration-testing.md +90 -0
  59. package/bundled/core/data-pipeline.md +113 -0
  60. package/bundled/core/deprecation-standards.md +16 -2
  61. package/bundled/core/developer-memory.md +13 -8
  62. package/bundled/core/documentation-writing-standards.md +2 -2
  63. package/bundled/core/error-code-standards.md +4 -3
  64. package/bundled/core/feature-discovery-standards.md +191 -0
  65. package/bundled/core/flaky-test-management.md +1 -1
  66. package/bundled/core/flow-based-testing.md +3 -3
  67. package/bundled/core/forward-derivation-standards.md +33 -5
  68. package/bundled/core/frontend-design-standards.md +93 -4
  69. package/bundled/core/full-coverage-testing.md +72 -0
  70. package/bundled/core/git-worktree.md +4 -4
  71. package/bundled/core/guides/performance-guide.md +1 -1
  72. package/bundled/core/guides/security-guide.md +1 -1
  73. package/bundled/core/health-check-standards.md +2 -2
  74. package/bundled/core/iac-design-principles.md +97 -0
  75. package/bundled/core/incident-response.md +119 -0
  76. package/bundled/core/license-compliance.md +2 -0
  77. package/bundled/core/logging-standards.md +78 -2
  78. package/bundled/core/mock-boundary.md +54 -2
  79. package/bundled/core/model-provenance.md +181 -0
  80. package/bundled/core/model-selection.md +27 -2
  81. package/bundled/core/multi-environment-e2e-testing.md +195 -0
  82. package/bundled/core/packaging-standards.md +1 -0
  83. package/bundled/core/performance-standards.md +96 -2
  84. package/bundled/core/pii-classification.md +148 -0
  85. package/bundled/core/pipeline-security-gates.md +22 -2
  86. package/bundled/core/postmortem-standards.md +2 -0
  87. package/bundled/core/prd-standards.md +91 -0
  88. package/bundled/core/privacy-standards.md +14 -3
  89. package/bundled/core/product-metrics-standards.md +100 -0
  90. package/bundled/core/project-context-memory.md +8 -2
  91. package/bundled/core/prompt-regression.md +1 -1
  92. package/bundled/core/push-standards.md +82 -0
  93. package/bundled/core/refactoring-standards.md +44 -3
  94. package/bundled/core/replay-test.md +1 -1
  95. package/bundled/core/requirement-engineering.md +2 -2
  96. package/bundled/core/resource-cost-boundary.md +180 -0
  97. package/bundled/core/reverse-engineering-standards.md +66 -2
  98. package/bundled/core/runbook.md +113 -0
  99. package/bundled/core/schema-evolution.md +105 -0
  100. package/bundled/core/secret-management-standards.md +110 -0
  101. package/bundled/core/security-testing.md +26 -2
  102. package/bundled/core/self-review-protocol.md +15 -10
  103. package/bundled/core/skill-standard-alignment-check.md +53 -0
  104. package/bundled/core/slo-sli.md +109 -0
  105. package/bundled/core/smoke-test.md +1 -1
  106. package/bundled/core/tech-debt-standards.md +1 -1
  107. package/bundled/core/test-data-standards.md +2 -2
  108. package/bundled/core/user-journey-testing.md +102 -0
  109. package/bundled/core/user-story-mapping.md +96 -0
  110. package/bundled/core/verification-evidence.md +170 -10
  111. package/bundled/core/verification-oracle.md +167 -0
  112. package/bundled/core/versioning.md +133 -109
  113. package/bundled/locales/COVERAGE.md +94 -77
  114. package/bundled/locales/zh-CN/CHANGELOG.md +94 -6
  115. package/bundled/locales/zh-CN/CLAUDE.md +1 -1
  116. package/bundled/locales/zh-CN/MAINTENANCE.md +42 -661
  117. package/bundled/locales/zh-CN/README.md +25 -12
  118. package/bundled/locales/zh-CN/SECURITY.md +2 -2
  119. package/bundled/locales/zh-CN/adoption/DAILY-WORKFLOW-GUIDE.md +2 -2
  120. package/bundled/locales/zh-CN/ai/options/commit-message/bilingual.ai.yaml +6 -1
  121. package/bundled/locales/zh-CN/core/acceptance-criteria-traceability.md +4 -6
  122. package/bundled/locales/zh-CN/core/accessibility-standards.md +1 -1
  123. package/bundled/locales/zh-CN/core/adversarial-test.md +226 -0
  124. package/bundled/locales/zh-CN/core/agent-behavior-discipline.md +187 -0
  125. package/bundled/locales/zh-CN/core/ai-response-navigation.md +32 -6
  126. package/bundled/locales/zh-CN/core/anti-sycophancy-prompting.md +1 -1
  127. package/bundled/locales/zh-CN/core/api-design-standards.md +1 -1
  128. package/bundled/locales/zh-CN/core/behavior-snapshot.md +335 -0
  129. package/bundled/locales/zh-CN/core/browser-compatibility-standards.md +239 -0
  130. package/bundled/locales/zh-CN/core/cd-deployment-strategies.md +135 -0
  131. package/bundled/locales/zh-CN/core/chaos-injection-tests.md +130 -0
  132. package/bundled/locales/zh-CN/core/checkin-standards.md +1 -1
  133. package/bundled/locales/zh-CN/core/code-review-checklist.md +1 -1
  134. package/bundled/locales/zh-CN/core/container-security.md +535 -0
  135. package/bundled/locales/zh-CN/core/context-aware-loading.md +1 -1
  136. package/bundled/locales/zh-CN/core/contract-testing-standards.md +191 -0
  137. package/bundled/locales/zh-CN/core/cost-budget-test.md +86 -0
  138. package/bundled/locales/zh-CN/core/cross-flow-regression.md +200 -0
  139. package/bundled/locales/zh-CN/core/data-migration-testing.md +217 -0
  140. package/bundled/locales/zh-CN/core/deployment-standards.md +328 -9
  141. package/bundled/locales/zh-CN/core/deprecation-standards.md +1 -1
  142. package/bundled/locales/zh-CN/core/developer-memory.md +2 -2
  143. package/bundled/locales/zh-CN/core/disaster-recovery-drill.md +87 -0
  144. package/bundled/locales/zh-CN/core/documentation-structure.md +1 -1
  145. package/bundled/locales/zh-CN/core/documentation-writing-standards.md +1 -1
  146. package/bundled/locales/zh-CN/core/error-code-standards.md +2 -2
  147. package/bundled/locales/zh-CN/core/feature-manifest-standard.md +222 -0
  148. package/bundled/locales/zh-CN/core/flaky-test-management.md +87 -0
  149. package/bundled/locales/zh-CN/core/flow-based-testing.md +284 -0
  150. package/bundled/locales/zh-CN/core/forward-derivation-standards.md +3 -4
  151. package/bundled/locales/zh-CN/core/frontend-design-standards.md +1 -1
  152. package/bundled/locales/zh-CN/core/full-coverage-testing.md +269 -0
  153. package/bundled/locales/zh-CN/core/git-worktree.md +1 -1
  154. package/bundled/locales/zh-CN/core/governance-layer.md +160 -0
  155. package/bundled/locales/zh-CN/core/guides/performance-guide.md +515 -0
  156. package/bundled/locales/zh-CN/core/guides/security-guide.md +494 -0
  157. package/bundled/locales/zh-CN/core/knowledge-graph-memory.md +128 -0
  158. package/bundled/locales/zh-CN/core/license-compliance.md +131 -0
  159. package/bundled/locales/zh-CN/core/llm-output-validation.md +192 -0
  160. package/bundled/locales/zh-CN/core/logging-standards.md +205 -7
  161. package/bundled/locales/zh-CN/core/mock-boundary.md +161 -0
  162. package/bundled/locales/zh-CN/core/model-selection.md +28 -5
  163. package/bundled/locales/zh-CN/core/mutation-testing.md +106 -0
  164. package/bundled/locales/zh-CN/core/no-cicd-deployment.md +219 -0
  165. package/bundled/locales/zh-CN/core/packaging-standards.md +77 -5
  166. package/bundled/locales/zh-CN/core/pipeline-security-gates.md +146 -0
  167. package/bundled/locales/zh-CN/core/policy-as-code-testing.md +203 -0
  168. package/bundled/locales/zh-CN/core/privacy-standards.md +1 -1
  169. package/bundled/locales/zh-CN/core/project-context-memory.md +1 -1
  170. package/bundled/locales/zh-CN/core/prompt-regression.md +88 -0
  171. package/bundled/locales/zh-CN/core/property-based-testing.md +87 -0
  172. package/bundled/locales/zh-CN/core/release-quality-manifest.md +207 -0
  173. package/bundled/locales/zh-CN/core/release-readiness-gate.md +193 -0
  174. package/bundled/locales/zh-CN/core/replay-test.md +102 -0
  175. package/bundled/locales/zh-CN/core/requirement-engineering.md +1 -1
  176. package/bundled/locales/zh-CN/core/reverse-engineering-standards.md +46 -1
  177. package/bundled/locales/zh-CN/core/rollback-standards.md +120 -0
  178. package/bundled/locales/zh-CN/core/sast-advanced.md +309 -0
  179. package/bundled/locales/zh-CN/core/secure-op.md +328 -0
  180. package/bundled/locales/zh-CN/core/security-testing.md +113 -0
  181. package/bundled/locales/zh-CN/core/self-review-protocol.md +172 -0
  182. package/bundled/locales/zh-CN/core/server-ops-security.md +507 -0
  183. package/bundled/locales/zh-CN/core/smoke-test.md +79 -0
  184. package/bundled/locales/zh-CN/core/spec-driven-development.md +39 -3
  185. package/bundled/locales/zh-CN/core/supply-chain-attestation.md +131 -0
  186. package/bundled/locales/zh-CN/core/verification-evidence.md +252 -41
  187. package/bundled/locales/zh-CN/core/versioning.md +1 -1
  188. package/bundled/locales/zh-CN/docs/CHEATSHEET.md +36 -7
  189. package/bundled/locales/zh-CN/docs/FEATURE-REFERENCE.md +71 -53
  190. package/bundled/locales/zh-CN/docs/MIGRATION-v6.md +88 -0
  191. package/bundled/locales/zh-CN/docs/USAGE-MODES-COMPARISON.md +2 -2
  192. package/bundled/locales/zh-CN/docs/USER-MANUAL.md +14 -14
  193. package/bundled/locales/zh-CN/docs/specs/system/memory-adoption-strategy.md +105 -0
  194. package/bundled/locales/zh-CN/docs/user/FAQ.md +132 -0
  195. package/bundled/locales/zh-CN/docs/user/GETTING-STARTED.md +144 -0
  196. package/bundled/locales/zh-CN/docs/user/GLOSSARY.md +178 -0
  197. package/bundled/locales/zh-CN/docs/user/README.md +70 -0
  198. package/bundled/locales/zh-CN/docs/user/TROUBLESHOOTING.md +190 -0
  199. package/bundled/locales/zh-CN/integrations/github-copilot/COPILOT-CHAT-REFERENCE.md +1 -1
  200. package/bundled/locales/zh-CN/integrations/github-copilot/README.md +1 -1
  201. package/bundled/locales/zh-CN/integrations/github-copilot/skills-mapping.md +3 -3
  202. package/bundled/locales/zh-CN/integrations/opencode/skills-mapping.md +3 -3
  203. package/bundled/locales/zh-CN/methodologies/guides/sdd-guide.md +836 -0
  204. package/bundled/locales/zh-CN/options/changelog/auto-generated.md +166 -0
  205. package/bundled/locales/zh-CN/options/changelog/keep-a-changelog.md +140 -0
  206. package/bundled/locales/zh-CN/options/code-review/automated-review.md +214 -0
  207. package/bundled/locales/zh-CN/options/code-review/pair-programming.md +166 -0
  208. package/bundled/locales/zh-CN/options/code-review/pr-review.md +167 -0
  209. package/bundled/locales/zh-CN/options/commit-message/bilingual.md +10 -3
  210. package/bundled/locales/zh-CN/options/documentation/api-docs.md +191 -0
  211. package/bundled/locales/zh-CN/options/documentation/markdown-docs.md +150 -0
  212. package/bundled/locales/zh-CN/options/documentation/wiki-style.md +131 -0
  213. package/bundled/locales/zh-CN/options/project-structure/kotlin.md +144 -0
  214. package/bundled/locales/zh-CN/options/project-structure/php.md +168 -0
  215. package/bundled/locales/zh-CN/options/project-structure/ruby.md +156 -0
  216. package/bundled/locales/zh-CN/options/project-structure/rust.md +136 -0
  217. package/bundled/locales/zh-CN/options/project-structure/swift.md +165 -0
  218. package/bundled/locales/zh-CN/options/testing/contract-testing.md +237 -0
  219. package/bundled/locales/zh-CN/options/testing/industry-pyramid.md +200 -0
  220. package/bundled/locales/zh-CN/options/testing/istqb-framework.md +144 -0
  221. package/bundled/locales/zh-CN/options/testing/performance-testing.md +251 -0
  222. package/bundled/locales/zh-CN/options/testing/security-testing.md +192 -0
  223. package/bundled/locales/zh-CN/skills/README.md +89 -126
  224. package/bundled/locales/zh-CN/skills/ac-coverage/SKILL.md +5 -7
  225. package/bundled/locales/zh-CN/skills/adr-assistant/SKILL.md +1 -1
  226. package/bundled/locales/zh-CN/skills/agents/code-architect.md +263 -0
  227. package/bundled/locales/zh-CN/skills/agents/doc-writer.md +410 -0
  228. package/bundled/locales/zh-CN/skills/agents/reviewer.md +357 -0
  229. package/bundled/locales/zh-CN/skills/agents/spec-analyst.md +410 -0
  230. package/bundled/locales/zh-CN/skills/agents/test-specialist.md +368 -0
  231. package/bundled/locales/zh-CN/skills/ai-collaboration-standards/SKILL.md +2 -2
  232. package/bundled/locales/zh-CN/skills/ai-friendly-architecture/SKILL.md +2 -2
  233. package/bundled/locales/zh-CN/skills/ai-instruction-standards/SKILL.md +1 -1
  234. package/bundled/locales/zh-CN/skills/atdd-assistant/acceptance-criteria-guide.md +1 -1
  235. package/bundled/locales/zh-CN/skills/atdd-assistant/atdd-workflow.md +3 -4
  236. package/bundled/locales/zh-CN/skills/audit-assistant/SKILL.md +2 -2
  237. package/bundled/locales/zh-CN/skills/bdd-assistant/guide.md +1 -2
  238. package/bundled/locales/zh-CN/skills/brainstorm-assistant/SKILL.md +115 -17
  239. package/bundled/locales/zh-CN/skills/brainstorm-assistant/guide.md +37 -12
  240. package/bundled/locales/zh-CN/skills/checkin-assistant/SKILL.md +1 -1
  241. package/bundled/locales/zh-CN/skills/ci-cd-assistant/SKILL.md +50 -0
  242. package/bundled/locales/zh-CN/skills/code-review-assistant/SKILL.md +5 -5
  243. package/bundled/locales/zh-CN/skills/commands/ac-coverage.md +1 -1
  244. package/bundled/locales/zh-CN/skills/commands/atdd.md +3 -3
  245. package/bundled/locales/zh-CN/skills/commands/bdd.md +2 -2
  246. package/bundled/locales/zh-CN/skills/commands/brainstorm.md +26 -17
  247. package/bundled/locales/zh-CN/skills/commands/{review.md → code-review.md} +4 -4
  248. package/bundled/locales/zh-CN/skills/commands/derive-all.md +1 -1
  249. package/bundled/locales/zh-CN/skills/commands/derive-atdd.md +1 -1
  250. package/bundled/locales/zh-CN/skills/commands/derive-bdd.md +2 -3
  251. package/bundled/locales/zh-CN/skills/commands/derive-tdd.md +1 -1
  252. package/bundled/locales/zh-CN/skills/commands/derive.md +1 -1
  253. package/bundled/locales/zh-CN/skills/commands/dev-workflow.md +2 -2
  254. package/bundled/locales/zh-CN/skills/commands/methodology.md +4 -4
  255. package/bundled/locales/zh-CN/skills/commands/pr.md +1 -1
  256. package/bundled/locales/zh-CN/skills/commands/tdd.md +1 -1
  257. package/bundled/locales/zh-CN/skills/commit-standards/SKILL.md +1 -1
  258. package/bundled/locales/zh-CN/skills/contract-test-assistant/SKILL.md +1 -1
  259. package/bundled/locales/zh-CN/skills/dev-methodology/SKILL.md +1 -1
  260. package/bundled/locales/zh-CN/skills/dev-methodology/create-methodology.md +456 -0
  261. package/bundled/locales/zh-CN/skills/dev-methodology/guide.md +6 -6
  262. package/bundled/locales/zh-CN/skills/dev-methodology/runtime.md +296 -0
  263. package/bundled/locales/zh-CN/skills/dev-workflow-guide/SKILL.md +5 -5
  264. package/bundled/locales/zh-CN/skills/docs-generator/SKILL.md +1 -1
  265. package/bundled/locales/zh-CN/skills/e2e-assistant/SKILL.md +1 -1
  266. package/bundled/locales/zh-CN/skills/incident-response-assistant/SKILL.md +2 -2
  267. package/bundled/locales/zh-CN/skills/journey-test-assistant/SKILL.md +1 -1
  268. package/bundled/locales/zh-CN/skills/logging-guide/SKILL.md +169 -142
  269. package/bundled/locales/zh-CN/skills/migration-assistant/SKILL.md +1 -1
  270. package/bundled/locales/zh-CN/skills/observability-assistant/guide.md +1 -1
  271. package/bundled/locales/zh-CN/skills/pr-automation-assistant/SKILL.md +1 -1
  272. package/bundled/locales/zh-CN/skills/project-discovery/guide.md +2 -2
  273. package/bundled/locales/zh-CN/skills/reverse-engineer/SKILL.md +1 -1
  274. package/bundled/locales/zh-CN/skills/runbook-assistant/guide.md +1 -1
  275. package/bundled/locales/zh-CN/skills/security-assistant/SKILL.md +1 -1
  276. package/bundled/locales/zh-CN/skills/skill-builder/SKILL.md +3 -3
  277. package/bundled/locales/zh-CN/skills/slo-assistant/guide.md +1 -1
  278. package/bundled/locales/zh-CN/skills/spec-derivation/SKILL.md +1 -1
  279. package/bundled/locales/zh-CN/skills/spec-derivation/guide.md +8 -9
  280. package/bundled/locales/zh-CN/skills/spec-driven-dev/SKILL.md +2 -2
  281. package/bundled/locales/zh-CN/skills/sweep/SKILL.md +1 -1
  282. package/bundled/locales/zh-CN/skills/tdd-assistant/SKILL.md +1 -1
  283. package/bundled/locales/zh-CN/skills/testing-guide/SKILL.md +2 -2
  284. package/bundled/locales/zh-CN/skills/testing-guide/testing-theory.md +2298 -0
  285. package/bundled/locales/zh-CN/skills/workflows/README.md +451 -0
  286. package/bundled/locales/zh-TW/CHANGELOG.md +94 -6
  287. package/bundled/locales/zh-TW/CLAUDE.md +1 -1
  288. package/bundled/locales/zh-TW/MAINTENANCE.md +51 -4
  289. package/bundled/locales/zh-TW/README.md +25 -12
  290. package/bundled/locales/zh-TW/SECURITY.md +2 -2
  291. package/bundled/locales/zh-TW/adoption/DAILY-WORKFLOW-GUIDE.md +2 -2
  292. package/bundled/locales/zh-TW/ai/options/commit-message/bilingual.ai.yaml +6 -1
  293. package/bundled/locales/zh-TW/ai/standards/versioning.ai.yaml +8 -48
  294. package/bundled/locales/zh-TW/core/acceptance-criteria-traceability.md +4 -6
  295. package/bundled/locales/zh-TW/core/accessibility-standards.md +1 -1
  296. package/bundled/locales/zh-TW/core/adversarial-test.md +226 -0
  297. package/bundled/locales/zh-TW/core/agent-behavior-discipline.md +187 -0
  298. package/bundled/locales/zh-TW/core/ai-response-navigation.md +32 -6
  299. package/bundled/locales/zh-TW/core/anti-sycophancy-prompting.md +1 -1
  300. package/bundled/locales/zh-TW/core/api-design-standards.md +91 -9
  301. package/bundled/locales/zh-TW/core/audit-trail.md +110 -0
  302. package/bundled/locales/zh-TW/core/behavior-snapshot.md +335 -0
  303. package/bundled/locales/zh-TW/core/browser-compatibility-standards.md +1 -0
  304. package/bundled/locales/zh-TW/core/cd-deployment-strategies.md +135 -0
  305. package/bundled/locales/zh-TW/core/chaos-injection-tests.md +130 -0
  306. package/bundled/locales/zh-TW/core/checkin-standards.md +1 -1
  307. package/bundled/locales/zh-TW/core/code-review-checklist.md +1 -1
  308. package/bundled/locales/zh-TW/core/container-image-standards.md +93 -0
  309. package/bundled/locales/zh-TW/core/container-security.md +535 -0
  310. package/bundled/locales/zh-TW/core/cost-budget-test.md +86 -0
  311. package/bundled/locales/zh-TW/core/cross-flow-regression.md +1 -0
  312. package/bundled/locales/zh-TW/core/data-contract.md +101 -0
  313. package/bundled/locales/zh-TW/core/data-migration-testing.md +217 -0
  314. package/bundled/locales/zh-TW/core/data-pipeline.md +105 -0
  315. package/bundled/locales/zh-TW/core/deployment-standards.md +363 -25
  316. package/bundled/locales/zh-TW/core/deprecation-standards.md +17 -4
  317. package/bundled/locales/zh-TW/core/developer-memory.md +2 -2
  318. package/bundled/locales/zh-TW/core/disaster-recovery-drill.md +87 -0
  319. package/bundled/locales/zh-TW/core/documentation-writing-standards.md +1 -1
  320. package/bundled/locales/zh-TW/core/error-code-standards.md +2 -2
  321. package/bundled/locales/zh-TW/core/feature-manifest-standard.md +222 -0
  322. package/bundled/locales/zh-TW/core/flaky-test-management.md +87 -0
  323. package/bundled/locales/zh-TW/core/flow-based-testing.md +284 -0
  324. package/bundled/locales/zh-TW/core/forward-derivation-standards.md +3 -4
  325. package/bundled/locales/zh-TW/core/frontend-design-standards.md +1 -1
  326. package/bundled/locales/zh-TW/core/full-coverage-testing.md +250 -0
  327. package/bundled/locales/zh-TW/core/git-worktree.md +1 -1
  328. package/bundled/locales/zh-TW/core/guides/performance-guide.md +515 -0
  329. package/bundled/locales/zh-TW/core/guides/security-guide.md +494 -0
  330. package/bundled/locales/zh-TW/core/iac-design-principles.md +90 -0
  331. package/bundled/locales/zh-TW/core/incident-response.md +111 -0
  332. package/bundled/locales/zh-TW/core/license-compliance.md +131 -0
  333. package/bundled/locales/zh-TW/core/llm-output-validation.md +192 -0
  334. package/bundled/locales/zh-TW/core/logging-standards.md +208 -4
  335. package/bundled/locales/zh-TW/core/mock-boundary.md +161 -0
  336. package/bundled/locales/zh-TW/core/model-provenance.md +173 -0
  337. package/bundled/locales/zh-TW/core/model-selection.md +28 -5
  338. package/bundled/locales/zh-TW/core/mutation-testing.md +106 -0
  339. package/bundled/locales/zh-TW/core/no-cicd-deployment.md +219 -0
  340. package/bundled/locales/zh-TW/core/packaging-standards.md +77 -5
  341. package/bundled/locales/zh-TW/core/performance-standards.md +84 -5
  342. package/bundled/locales/zh-TW/core/pii-classification.md +102 -0
  343. package/bundled/locales/zh-TW/core/pipeline-security-gates.md +146 -0
  344. package/bundled/locales/zh-TW/core/policy-as-code-testing.md +203 -0
  345. package/bundled/locales/zh-TW/core/prd-standards.md +88 -0
  346. package/bundled/locales/zh-TW/core/privacy-standards.md +1 -1
  347. package/bundled/locales/zh-TW/core/product-metrics-standards.md +96 -0
  348. package/bundled/locales/zh-TW/core/project-context-memory.md +1 -1
  349. package/bundled/locales/zh-TW/core/prompt-regression.md +88 -0
  350. package/bundled/locales/zh-TW/core/property-based-testing.md +87 -0
  351. package/bundled/locales/zh-TW/core/refactoring-standards.md +43 -6
  352. package/bundled/locales/zh-TW/core/release-quality-manifest.md +207 -0
  353. package/bundled/locales/zh-TW/core/replay-test.md +102 -0
  354. package/bundled/locales/zh-TW/core/requirement-engineering.md +1 -1
  355. package/bundled/locales/zh-TW/core/resource-cost-boundary.md +175 -0
  356. package/bundled/locales/zh-TW/core/reverse-engineering-standards.md +64 -5
  357. package/bundled/locales/zh-TW/core/rollback-standards.md +120 -0
  358. package/bundled/locales/zh-TW/core/runbook.md +110 -0
  359. package/bundled/locales/zh-TW/core/sast-advanced.md +309 -0
  360. package/bundled/locales/zh-TW/core/schema-evolution.md +98 -0
  361. package/bundled/locales/zh-TW/core/secret-management-standards.md +101 -0
  362. package/bundled/locales/zh-TW/core/secure-op.md +328 -0
  363. package/bundled/locales/zh-TW/core/security-testing.md +113 -0
  364. package/bundled/locales/zh-TW/core/self-review-protocol.md +18 -13
  365. package/bundled/locales/zh-TW/core/server-ops-security.md +507 -0
  366. package/bundled/locales/zh-TW/core/slo-sli.md +108 -0
  367. package/bundled/locales/zh-TW/core/smoke-test.md +79 -0
  368. package/bundled/locales/zh-TW/core/spec-driven-development.md +19 -11
  369. package/bundled/locales/zh-TW/core/supply-chain-attestation.md +131 -0
  370. package/bundled/locales/zh-TW/core/user-journey-testing.md +111 -0
  371. package/bundled/locales/zh-TW/core/user-story-mapping.md +94 -0
  372. package/bundled/locales/zh-TW/core/verification-evidence.md +260 -31
  373. package/bundled/locales/zh-TW/core/verification-oracle.md +159 -0
  374. package/bundled/locales/zh-TW/core/versioning.md +112 -112
  375. package/bundled/locales/zh-TW/docs/CHEATSHEET.md +36 -7
  376. package/bundled/locales/zh-TW/docs/DEV-WORKFLOW-MAPPING.md +6 -6
  377. package/bundled/locales/zh-TW/docs/FEATURE-REFERENCE.md +71 -53
  378. package/bundled/locales/zh-TW/docs/MIGRATION-v6.md +88 -0
  379. package/bundled/locales/zh-TW/docs/USAGE-MODES-COMPARISON.md +2 -2
  380. package/bundled/locales/zh-TW/docs/USER-MANUAL.md +14 -14
  381. package/bundled/locales/zh-TW/docs/specs/system/memory-adoption-strategy.md +105 -0
  382. package/bundled/locales/zh-TW/docs/user/FAQ.md +132 -0
  383. package/bundled/locales/zh-TW/docs/user/GETTING-STARTED.md +144 -0
  384. package/bundled/locales/zh-TW/docs/user/GLOSSARY.md +178 -0
  385. package/bundled/locales/zh-TW/docs/user/README.md +70 -0
  386. package/bundled/locales/zh-TW/docs/user/TROUBLESHOOTING.md +190 -0
  387. package/bundled/locales/zh-TW/integrations/github-copilot/COPILOT-CHAT-REFERENCE.md +1 -1
  388. package/bundled/locales/zh-TW/integrations/github-copilot/README.md +1 -1
  389. package/bundled/locales/zh-TW/integrations/github-copilot/skills-mapping.md +3 -3
  390. package/bundled/locales/zh-TW/integrations/opencode/skills-mapping.md +3 -3
  391. package/bundled/locales/zh-TW/methodologies/guides/sdd-guide.md +523 -26
  392. package/bundled/locales/zh-TW/options/changelog/auto-generated.md +166 -0
  393. package/bundled/locales/zh-TW/options/changelog/keep-a-changelog.md +140 -0
  394. package/bundled/locales/zh-TW/options/code-review/automated-review.md +214 -0
  395. package/bundled/locales/zh-TW/options/code-review/pair-programming.md +166 -0
  396. package/bundled/locales/zh-TW/options/code-review/pr-review.md +167 -0
  397. package/bundled/locales/zh-TW/options/commit-message/bilingual.md +10 -3
  398. package/bundled/locales/zh-TW/options/documentation/api-docs.md +191 -0
  399. package/bundled/locales/zh-TW/options/documentation/markdown-docs.md +150 -0
  400. package/bundled/locales/zh-TW/options/documentation/wiki-style.md +131 -0
  401. package/bundled/locales/zh-TW/options/project-structure/kotlin.md +144 -0
  402. package/bundled/locales/zh-TW/options/project-structure/php.md +168 -0
  403. package/bundled/locales/zh-TW/options/project-structure/ruby.md +156 -0
  404. package/bundled/locales/zh-TW/options/project-structure/rust.md +136 -0
  405. package/bundled/locales/zh-TW/options/project-structure/swift.md +165 -0
  406. package/bundled/locales/zh-TW/options/testing/contract-testing.md +237 -0
  407. package/bundled/locales/zh-TW/options/testing/industry-pyramid.md +200 -0
  408. package/bundled/locales/zh-TW/options/testing/istqb-framework.md +144 -0
  409. package/bundled/locales/zh-TW/options/testing/performance-testing.md +251 -0
  410. package/bundled/locales/zh-TW/options/testing/security-testing.md +192 -0
  411. package/bundled/locales/zh-TW/skills/README.md +91 -128
  412. package/bundled/locales/zh-TW/skills/ac-coverage/SKILL.md +4 -6
  413. package/bundled/locales/zh-TW/skills/adr-assistant/SKILL.md +1 -1
  414. package/bundled/locales/zh-TW/skills/agents/code-architect.md +263 -0
  415. package/bundled/locales/zh-TW/skills/agents/doc-writer.md +410 -0
  416. package/bundled/locales/zh-TW/skills/agents/reviewer.md +357 -0
  417. package/bundled/locales/zh-TW/skills/agents/spec-analyst.md +410 -0
  418. package/bundled/locales/zh-TW/skills/agents/test-specialist.md +368 -0
  419. package/bundled/locales/zh-TW/skills/ai-collaboration-standards/SKILL.md +2 -2
  420. package/bundled/locales/zh-TW/skills/ai-friendly-architecture/SKILL.md +2 -2
  421. package/bundled/locales/zh-TW/skills/ai-instruction-standards/SKILL.md +1 -1
  422. package/bundled/locales/zh-TW/skills/atdd-assistant/SKILL.md +2 -0
  423. package/bundled/locales/zh-TW/skills/atdd-assistant/acceptance-criteria-guide.md +1 -1
  424. package/bundled/locales/zh-TW/skills/atdd-assistant/atdd-workflow.md +3 -4
  425. package/bundled/locales/zh-TW/skills/audit-assistant/SKILL.md +2 -2
  426. package/bundled/locales/zh-TW/skills/bdd-assistant/SKILL.md +2 -0
  427. package/bundled/locales/zh-TW/skills/bdd-assistant/guide.md +1 -2
  428. package/bundled/locales/zh-TW/skills/brainstorm-assistant/SKILL.md +116 -18
  429. package/bundled/locales/zh-TW/skills/brainstorm-assistant/guide.md +38 -11
  430. package/bundled/locales/zh-TW/skills/checkin-assistant/SKILL.md +3 -1
  431. package/bundled/locales/zh-TW/skills/ci-cd-assistant/SKILL.md +50 -0
  432. package/bundled/locales/zh-TW/skills/code-review-assistant/SKILL.md +7 -5
  433. package/bundled/locales/zh-TW/skills/commands/ac-coverage.md +1 -1
  434. package/bundled/locales/zh-TW/skills/commands/atdd.md +3 -3
  435. package/bundled/locales/zh-TW/skills/commands/bdd.md +2 -2
  436. package/bundled/locales/zh-TW/skills/commands/brainstorm.md +26 -17
  437. package/bundled/locales/zh-TW/skills/commands/{review.md → code-review.md} +5 -5
  438. package/bundled/locales/zh-TW/skills/commands/derive-all.md +1 -1
  439. package/bundled/locales/zh-TW/skills/commands/derive-atdd.md +1 -1
  440. package/bundled/locales/zh-TW/skills/commands/derive-bdd.md +2 -3
  441. package/bundled/locales/zh-TW/skills/commands/derive-tdd.md +1 -1
  442. package/bundled/locales/zh-TW/skills/commands/derive.md +1 -1
  443. package/bundled/locales/zh-TW/skills/commands/dev-workflow.md +2 -2
  444. package/bundled/locales/zh-TW/skills/commands/methodology.md +4 -4
  445. package/bundled/locales/zh-TW/skills/commands/pr.md +1 -1
  446. package/bundled/locales/zh-TW/skills/commands/tdd.md +1 -1
  447. package/bundled/locales/zh-TW/skills/commit-standards/SKILL.md +1 -1
  448. package/bundled/locales/zh-TW/skills/contract-test-assistant/SKILL.md +1 -1
  449. package/bundled/locales/zh-TW/skills/dev-methodology/create-methodology.md +456 -0
  450. package/bundled/locales/zh-TW/skills/dev-methodology/guide.md +5 -5
  451. package/bundled/locales/zh-TW/skills/dev-methodology/runtime.md +296 -0
  452. package/bundled/locales/zh-TW/skills/dev-workflow-guide/SKILL.md +5 -5
  453. package/bundled/locales/zh-TW/skills/docs-generator/SKILL.md +1 -1
  454. package/bundled/locales/zh-TW/skills/e2e-assistant/SKILL.md +1 -1
  455. package/bundled/locales/zh-TW/skills/incident-response-assistant/SKILL.md +2 -2
  456. package/bundled/locales/zh-TW/skills/logging-guide/SKILL.md +52 -27
  457. package/bundled/locales/zh-TW/skills/migration-assistant/SKILL.md +1 -1
  458. package/bundled/locales/zh-TW/skills/pr-automation-assistant/SKILL.md +3 -1
  459. package/bundled/locales/zh-TW/skills/project-discovery/guide.md +2 -2
  460. package/bundled/locales/zh-TW/skills/reverse-engineer/SKILL.md +1 -1
  461. package/bundled/locales/zh-TW/skills/security-assistant/SKILL.md +1 -1
  462. package/bundled/locales/zh-TW/skills/spec-derivation/guide.md +7 -8
  463. package/bundled/locales/zh-TW/skills/spec-driven-dev/SKILL.md +2 -2
  464. package/bundled/locales/zh-TW/skills/sweep/SKILL.md +1 -1
  465. package/bundled/locales/zh-TW/skills/tdd-assistant/SKILL.md +3 -1
  466. package/bundled/locales/zh-TW/skills/testing-guide/SKILL.md +2 -2
  467. package/bundled/locales/zh-TW/skills/testing-guide/testing-theory.md +2298 -0
  468. package/bundled/locales/zh-TW/skills/workflows/README.md +451 -0
  469. package/bundled/skills/README.md +1 -1
  470. package/bundled/skills/ac-coverage/SKILL.md +17 -7
  471. package/bundled/skills/adr-assistant/SKILL.md +1 -1
  472. package/bundled/skills/agents/code-architect.md +1 -1
  473. package/bundled/skills/agents/doc-writer.md +1 -1
  474. package/bundled/skills/agents/reviewer.md +2 -2
  475. package/bundled/skills/agents/spec-analyst.md +1 -1
  476. package/bundled/skills/agents/test-specialist.md +1 -1
  477. package/bundled/skills/ai-collaboration-standards/SKILL.md +2 -2
  478. package/bundled/skills/ai-friendly-architecture/SKILL.md +2 -2
  479. package/bundled/skills/ai-instruction-standards/SKILL.md +1 -1
  480. package/bundled/skills/atdd-assistant/SKILL.md +7 -0
  481. package/bundled/skills/atdd-assistant/acceptance-criteria-guide.md +1 -1
  482. package/bundled/skills/atdd-assistant/atdd-workflow.md +6 -8
  483. package/bundled/skills/audit-assistant/SKILL.md +2 -2
  484. package/bundled/skills/bdd-assistant/SKILL.md +7 -0
  485. package/bundled/skills/bdd-assistant/guide.md +1 -2
  486. package/bundled/skills/brainstorm-assistant/SKILL.md +139 -15
  487. package/bundled/skills/brainstorm-assistant/guide.md +39 -8
  488. package/bundled/skills/checkin-assistant/SKILL.md +8 -1
  489. package/bundled/skills/ci-cd-assistant/SKILL.md +57 -0
  490. package/bundled/skills/code-review-assistant/SKILL.md +15 -8
  491. package/bundled/skills/commands/COMMAND-FAMILY-OVERVIEW.md +2 -2
  492. package/bundled/skills/commands/COMMAND-INDEX.json +3 -3
  493. package/bundled/skills/commands/README.md +2 -2
  494. package/bundled/skills/commands/ac-coverage.md +1 -1
  495. package/bundled/skills/commands/atdd.md +2 -2
  496. package/bundled/skills/commands/bdd.md +2 -2
  497. package/bundled/skills/commands/brainstorm.md +25 -14
  498. package/bundled/skills/commands/{review.md → code-review.md} +6 -6
  499. package/bundled/skills/commands/derive-all.md +1 -1
  500. package/bundled/skills/commands/derive-atdd.md +1 -1
  501. package/bundled/skills/commands/derive-bdd.md +2 -3
  502. package/bundled/skills/commands/derive-tdd.md +1 -1
  503. package/bundled/skills/commands/derive.md +1 -1
  504. package/bundled/skills/commands/dev-workflow.md +1 -1
  505. package/bundled/skills/commands/journey-test.md +45 -0
  506. package/bundled/skills/commands/methodology.md +4 -4
  507. package/bundled/skills/commands/pr.md +1 -1
  508. package/bundled/skills/commands/skill-builder.md +42 -0
  509. package/bundled/skills/commands/tdd.md +1 -1
  510. package/bundled/skills/dev-methodology/create-methodology.md +1 -1
  511. package/bundled/skills/dev-methodology/guide.md +1 -1
  512. package/bundled/skills/dev-methodology/runtime.md +1 -1
  513. package/bundled/skills/dev-workflow-guide/SKILL.md +3 -3
  514. package/bundled/skills/dev-workflow-guide/workflow-phases.md +3 -3
  515. package/bundled/skills/docs-generator/SKILL.md +3 -3
  516. package/bundled/skills/incident-response-assistant/SKILL.md +2 -2
  517. package/bundled/skills/logging-guide/SKILL.md +38 -2
  518. package/bundled/skills/migration-assistant/SKILL.md +226 -0
  519. package/bundled/skills/observability-assistant/SKILL.md +74 -0
  520. package/bundled/skills/pr-automation-assistant/SKILL.md +5 -1
  521. package/bundled/skills/project-discovery/guide.md +2 -2
  522. package/bundled/skills/push/SKILL.md +1 -1
  523. package/bundled/skills/release-standards/SKILL.md +19 -5
  524. package/bundled/skills/security-assistant/SKILL.md +1 -1
  525. package/bundled/skills/skill-builder/SKILL.md +1 -1
  526. package/bundled/skills/spec-derivation/guide.md +3 -4
  527. package/bundled/skills/spec-driven-dev/SKILL.md +13 -2
  528. package/bundled/skills/sweep/SKILL.md +1 -1
  529. package/bundled/skills/tdd-assistant/SKILL.md +8 -1
  530. package/bundled/skills/testing-guide/SKILL.md +1 -1
  531. package/bundled/skills/testing-guide/testing-theory.md +1 -1
  532. package/bundled/skills/workflows/README.md +2 -2
  533. package/package.json +4 -4
  534. package/src/commands/audit.js +30 -9
  535. package/src/commands/config.js +33 -2
  536. package/src/commands/hitl.js +14 -1
  537. package/src/commands/init.js +168 -75
  538. package/src/commands/quickstart.js +1 -2
  539. package/src/commands/release.js +51 -6
  540. package/src/commands/run-intent.js +9 -0
  541. package/src/commands/spec-split.js +27 -2
  542. package/src/commands/update.js +22 -6
  543. package/src/config/ai-agent-paths.js +3 -1
  544. package/src/i18n/messages.js +3 -102
  545. package/src/missions/MissionManager.js +44 -12
  546. package/src/utils/build-manifest.js +35 -3
  547. package/src/utils/friction-detector.js +71 -22
  548. package/src/utils/health-checker.js +29 -2
  549. package/src/utils/transaction.js +111 -0
  550. package/src/utils/version-promote.js +16 -0
  551. package/standards-registry.json +61 -149
  552. package/bundled/ai/standards/agent-communication-protocol.ai.yaml +0 -42
  553. package/bundled/ai/standards/agent-dispatch.ai.yaml +0 -42
  554. package/bundled/ai/standards/branch-completion.ai.yaml +0 -44
  555. package/bundled/ai/standards/change-batching-standards.ai.yaml +0 -44
  556. package/bundled/ai/standards/execution-history.ai.yaml +0 -42
  557. package/bundled/ai/standards/pipeline-integration-standards.ai.yaml +0 -42
  558. package/bundled/ai/standards/workflow-enforcement.ai.yaml +0 -44
  559. package/bundled/ai/standards/workflow-state-protocol.ai.yaml +0 -43
  560. package/src/commands/flow.js +0 -260
  561. package/src/commands/start.js +0 -372
  562. package/src/commands/sweep.js +0 -151
  563. package/src/commands/workflow.js +0 -681
@@ -0,0 +1,161 @@
1
+ ---
2
+ source: ../../../core/mock-boundary.md
3
+ source_version: 1.1.0
4
+ translation_version: 1.1.0
5
+ last_synced: 2026-07-08
6
+ source_hash: fe4715991a4c
7
+ status: current
8
+ ---
9
+
10
+ # Mock 边界标准
11
+
12
+ > **语言**: [English](../../../core/mock-boundary.md) | [繁體中文](../../zh-TW/core/mock-boundary.md) | 简体中文
13
+
14
+ **版本**: 1.1.0
15
+ **最后更新**: 2026-07-01
16
+ **适用性**: 所有具备单元测试与集成测试的软件项目
17
+ **范围**: universal
18
+ **行业标准**: ISTQB Foundation(Test Doubles), xUnit Patterns(Gerard Meszaros)
19
+ **参考**: "Working Effectively with Legacy Code"(Feathers), "Growing Object-Oriented Software"(Freeman & Pryce)
20
+
21
+ ---
22
+
23
+ ## 目的
24
+
25
+ 本文档定义测试中哪些东西可以 mock、哪些不可以。其目标是防止**空心测试(hollow tests)**——永远通过却无法检测真实 bug 的测试,因为它们用 stub 取代了系统的逻辑。
26
+
27
+ ---
28
+
29
+ ## 空心测试问题
30
+
31
+ 空心测试 mock 掉系统的大部分内容,使测试变成 mock 接线的规格说明,而非系统行为的规格说明。经典症状:你可以删掉实现文件,测试仍然通过。
32
+
33
+ **真实案例(Multi-agent pipeline SPEC-002.test.ts)**:
34
+
35
+ ```typescript
36
+ vi.mock('../../src/runner/agent-runner.js') // Core logic replaced
37
+ vi.mock('../../src/runner/guardian-hooks.js') // Core logic replaced
38
+ vi.mock('../../src/runner/prototyper.js') // Core logic replaced
39
+ vi.mock('../../src/runner/iteration-report.js') // Core logic replaced
40
+ vi.mock('../../src/memory/memory-store.js') // Core logic replaced
41
+ vi.mock('node:fs/promises', ...) // I/O replaced
42
+
43
+ // All assertions verify mock call counts — not actual outputs.
44
+ // runPipeline() touches zero real code.
45
+ ```
46
+
47
+ ---
48
+
49
+ ## 可以 Mock 的项目
50
+
51
+ | 类别 | 示例 | 理由 |
52
+ |------|------|------|
53
+ | 外部 HTTP 服务 | LLM API、支付网关、email 服务 | 防止不稳定(flaky)测试;可控制响应场景 |
54
+ | 时间函数 | `Date.now()`、`new Date()`、`setTimeout` | 使测试具确定性 |
55
+ | 环境变量 | `process.env.NODE_ENV`、`process.env.LICENSE_KEY` | 支持配置变化 |
56
+ | 文件系统(仅限单元测试) | `fs.readFile`、`fs.writeFile` | 让快速单元测试避免 I/O |
57
+ | 跨模块边界(须有对应 IT) | 其他模块的 public API | 隔离被测单元 |
58
+ | 进程内后台执行(通过可注入 runner) | `Task.Run`、unawaited promise、`setTimeout`、goroutine、thread-pool dispatch | 注入 runner seam 让测试能 await 到确定完成,消除 race |
59
+
60
+ ---
61
+
62
+ ## 不可 Mock 的项目
63
+
64
+ | 类别 | 违规示例 | 禁止原因 |
65
+ |------|---------|---------|
66
+ | 自身模块的核心逻辑 | 在 pipeline-runner 测试中 `vi.mock('./pipeline-runner.js')` | 使测试形同虚设 |
67
+ | IT/flow/E2E 测试中的数据库 | 在集成测试中 `vi.mock('./db/client.js')` | 隐藏查询 bug、schema 问题 |
68
+ | HTTP 框架内部 | `vi.mock('express')` | 真实路由可能已坏 |
69
+ | 安全控制 | 永远通过的 auth middleware stub | 安全性回归不可见 |
70
+
71
+ ---
72
+
73
+ ## 可注入的后台执行(Injectable Background Execution)
74
+
75
+ fire-and-forget 的后台工作(`Task.Run`、unawaited promise、`setTimeout`、goroutine、`java.util.concurrent` executor 提交,或 `asyncio.create_task`)是一个 **seam**,就跟系统时钟一样。正如你注入 clock 而非直接读取 wall-clock 时间,你也应该注入后台 dispatcher,而非直接生成后台工作。这样测试就能把工作驱动到**确定、可被 await 的完成**,并对其结果(成功、异常或 retry)进行断言——不用 poll、不用 sleep、没有 race。
76
+
77
+ 将 dispatch 抽象成一个小接口(例如 `IBackgroundTaskRunner` / `BackgroundDispatcher`),再提供两种实现:
78
+
79
+ - **Production**:保留真正的 fire-and-forget 语义——dispatch 立即返回,工作以 detached 方式运行。
80
+ - **Test**:以 **inline** 方式执行工作并**追踪底层 Task/promise**,对外暴露一个 handle 供测试 `await`,使完成(及任何失败)可被观察。
81
+
82
+ 语言中立示意(TypeScript 伪代码):
83
+
84
+ ```typescript
85
+ // Seam — 在任何 dispatch 后台工作处注入
86
+ interface BackgroundDispatcher {
87
+ dispatch(work: () => Promise<void>): void
88
+ }
89
+
90
+ // Production:真正的 fire-and-forget——立即返回,工作以 detached 方式运行
91
+ class FireAndForgetDispatcher implements BackgroundDispatcher {
92
+ dispatch(work: () => Promise<void>): void {
93
+ void work() // 刻意不 await
94
+ }
95
+ }
96
+
97
+ // Test:inline 执行 + 追踪 task,让测试能 await 到完成
98
+ class DeterministicDispatcher implements BackgroundDispatcher {
99
+ private readonly tasks: Promise<void>[] = []
100
+ dispatch(work: () => Promise<void>): void {
101
+ this.tasks.push(work()) // inline 启动并保留 handle
102
+ }
103
+ async settle(): Promise<void> {
104
+ await Promise.all(this.tasks) // 测试 await 到确定完成
105
+ }
106
+ }
107
+ ```
108
+
109
+ 测试注入 `DeterministicDispatcher`,执行被测代码,再在断言结果前 `await dispatcher.settle()`——后台副作用此时已完全可观察且具确定性。
110
+
111
+ ---
112
+
113
+ ## 空心测试检测
114
+
115
+ 提交测试文件之前,请检查:
116
+
117
+ 1. **Mock 数量 ≥ import 数量** → 评审:至少要有一个断言验证实际输出
118
+ 2. **所有断言都是 `.toHaveBeenCalled()` 系列** → 加入输出值断言
119
+ 3. **Mock 路径与被测对象目录相同** → 自我引用 mock;移除之
120
+ 4. **Mock 设置行数多于断言行数** → 很可能是空心测试
121
+
122
+ ---
123
+
124
+ ## 反模式
125
+
126
+ - **Total Mock Isolation**:所有 import 都被 mock;只断言 mock 交互
127
+ - **Mock the World**:外部 + 内部 + DB + FS 在同一个测试中全部 mock
128
+ - **Orphan Mock**:跨模块 mock 却没有对应的集成测试
129
+ - **Security Bypass Mock**:auth/权限逻辑被换成直接放行的 stub
130
+ - **Database Mock Cascade**:DB 返回硬编码的数据,隐藏真实查询错误
131
+ - **Poll/Sleep for Background Result**:用 sleep 或 poll 等待 fire-and-forget 后台工作完成。race 依然存在——timeout 只是多数时候把它掩盖住,同时拖慢整个测试套件;在共享 runner 上还会把 flakiness 泄漏到其他 MR 的 CI 中。应改为注入 deterministic runner 并 await 被追踪的 task。
132
+
133
+ ---
134
+
135
+ ## 规则摘要
136
+
137
+ | 规则 | 触发条件 | 动作 |
138
+ |------|---------|------|
139
+ | 禁止 self-mock | 测试文件 mock 自己的模块 | 移除 mock;让真实代码运行 |
140
+ | IT/flow 用真实 DB | 编写 IT 或 flow 测试 | 使用 in-memory SQLite 或测试 schema |
141
+ | IT 对应测试 | mock 跨模块边界 | 确保有对应的 IT 存在 |
142
+ | 禁止 mock 安全机制 | 测试涉及 auth/权限 | 使用真实测试用户 + 真实 token |
143
+ | 空心评审 | Mock 数量 ≥ import 数量 | 加入输出值断言 |
144
+ | 后台工作禁止 poll/sleep | 测试断言某个 fire-and-forget 副作用 | 注入 deterministic runner;await 被追踪的 task |
145
+
146
+ ---
147
+
148
+ ## 与其他标准的关系
149
+
150
+ - **testing**:Mock 边界规则适用于测试金字塔的所有测试级别
151
+ - **test-completeness-dimensions**:维度 8(AI 测试质量)引用了这些规则
152
+ - **flow-based-testing**:Flow 测试必须遵循 mock 边界规则
153
+
154
+ ---
155
+
156
+ ## 版本历史
157
+
158
+ | 版本 | 日期 | 变更 |
159
+ |------|------|------|
160
+ | 1.0.0 | 2026-05-04 | 初始标准:空心测试问题、可/不可 Mock 表格、检测、反模式、规则摘要 |
161
+ | 1.1.0 | 2026-07-01 | 新增可注入的后台执行作为 seam(平行于 clock injection):可 Mock 表格新增行、`可注入的后台执行` 章节、`Poll/Sleep for Background Result` 反模式,以及后台工作禁止 poll/sleep 规则(issue #143) |
@@ -1,8 +1,8 @@
1
1
  ---
2
2
  source: ../../../core/model-selection.md
3
- source_version: 1.0.0
4
- translation_version: 1.0.0
5
- last_synced: 2026-03-24
3
+ source_version: 1.0.1
4
+ translation_version: 1.0.1
5
+ last_synced: 2026-06-10
6
6
  status: current
7
7
  ---
8
8
 
@@ -10,8 +10,8 @@ status: current
10
10
 
11
11
  # AI 模型选择策略
12
12
 
13
- **版本**: 1.0.0
14
- **最后更新**: 2026-03-20
13
+ **版本**: 1.0.1
14
+ **最后更新**: 2026-06-10
15
15
  **适用范围**: 使用多层级模型的 AI 辅助开发
16
16
  **范围**: universal
17
17
  **灵感来源**: [Superpowers](https://github.com/obra/superpowers) — subagent-driven-development (MIT)
@@ -100,6 +100,20 @@ status: current
100
100
 
101
101
  ---
102
102
 
103
+ ## 与下一步建议整合
104
+
105
+ [ai-response-navigation](ai-response-navigation.md) 标准(规则 R6,可选)允许每个「建议下一步」选项携带级别标注。本标准的复杂度信号即为判断依据。
106
+
107
+ **与厂商无关原则**:级别名称(Fast/Standard/Capable)是工具无关的泛称。各平台自行将级别映射到可用模型。
108
+
109
+ | 级别 | 典型能力定位 |
110
+ |------|-------------|
111
+ | Fast | 轻量级 / 指令遵循 |
112
+ | Standard | 均衡推理 + 代码生成 |
113
+ | Capable | 高级推理、架构分析 |
114
+
115
+ ---
116
+
103
117
  ## 相关标准
104
118
 
105
119
  - [代理派遣与并行协调](agent-dispatch.md)
@@ -107,6 +121,15 @@ status: current
107
121
 
108
122
  ---
109
123
 
124
+ ## 版本历史
125
+
126
+ | 版本 | 日期 | 变更 |
127
+ |------|------|------|
128
+ | 1.0.1 | 2026-06-10 | 新增「与下一步建议整合」节(R6 交叉引用;与厂商无关原则) |
129
+ | 1.0.0 | 2026-03-20 | 初始版本 |
130
+
131
+ ---
132
+
110
133
  ## 许可证
111
134
 
112
135
  本标准采用 [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/) 发布。
@@ -0,0 +1,106 @@
1
+ ---
2
+ source: ../../../core/mutation-testing.md
3
+ source_version: 1.0.0
4
+ translation_version: 1.0.0
5
+ last_synced: 2026-06-10
6
+ source_hash: 6a5286d76274
7
+ status: current
8
+ ---
9
+
10
+ # 变异测试标准
11
+
12
+ > **语言**: [English](../../../core/mutation-testing.md) | [繁體中文](../../zh-TW/core/mutation-testing.md) | 简体中文
13
+
14
+ **版本**: 1.0.0
15
+ **最后更新**: 2026-05-04
16
+ **适用性**: 所有具备单元/集成测试的软件项目
17
+ **范围**: universal
18
+ **行业标准**: ISTQB Foundation Syllabus(测试有效性指标)
19
+ **参考**: "Introduction to Software Testing"(Ammann & Offutt), Stryker Mutator 文档
20
+
21
+ ---
22
+
23
+ ## 目的
24
+
25
+ 变异测试(mutation testing)通过注入人工 bug 并检查测试是否能检测到它们,来评估测试套件的有效性。它回答了行覆盖率无法回答的问题:**「我的测试真的在验证正确行为吗?」**
26
+
27
+ ---
28
+
29
+ ## 核心概念:Mutation Score
30
+
31
+ ```
32
+ Mutation Score = Killed Mutants / (Killed + Survived) × 100%
33
+ ```
34
+
35
+ - **Killed**:测试套件检测到人工 bug(测试失败)✅
36
+ - **Survived**:测试套件漏掉了 bug(测试仍通过)❌
37
+
38
+ 一个只有 `expect(x).toBeDefined()` 的测试可以达到 100% 行覆盖率,却会让许多变异存活(因为 `x` 是 `null`、`0` 或 `"wrong"` 都满足 `.toBeDefined()`)。
39
+
40
+ ---
41
+
42
+ ## 工具
43
+
44
+ | 语言 | 工具 | 命令 |
45
+ |------|------|------|
46
+ | TypeScript/JS | Stryker Mutator | `npx stryker run` |
47
+ | Python | mutmut | `mutmut run` |
48
+ | Java | PIT (Pitest) | `mvn pitest:mutationCoverage` |
49
+
50
+ ---
51
+
52
+ ## 阈值
53
+
54
+ | 模块类型 | 最低分数 | 强制程度 |
55
+ |---------|---------|---------|
56
+ | Auth/License/Payment/Security | 80% | 阻断 release |
57
+ | 标准业务逻辑 | 70% | 警告;下次 release 前解决 |
58
+ | AI 生成的测试 | 50% | 必需;低于即拒绝 |
59
+ | 整体项目 | 60% | 跟踪趋势;回归时告警 |
60
+
61
+ ---
62
+
63
+ ## 何时运行
64
+
65
+ | 触发条件 | 命令 | 强制程度 |
66
+ |---------|------|---------|
67
+ | Pre-release 门禁 | `npm run test:mutation` | 整体 ≥ 60% |
68
+ | 关键模块变更 | `npx stryker run --mutate 'src/auth/**'` | ≥ 80% |
69
+ | AI 生成测试评审 | `npx stryker run` | ≥ 50% |
70
+
71
+ **绝不**把变异测试加入 commit hook——它太慢了(10-60 分钟)。
72
+
73
+ ---
74
+
75
+ ## Stryker 快速上手(TypeScript + Vitest)
76
+
77
+ ```bash
78
+ npm install --save-dev @stryker-mutator/core @stryker-mutator/vitest-runner
79
+ ```
80
+
81
+ ```json
82
+ // stryker.config.json
83
+ {
84
+ "testRunner": "vitest",
85
+ "coverageAnalysis": "perTest",
86
+ "mutate": ["src/license/**/*.ts", "!src/**/*.test.ts"],
87
+ "thresholds": { "high": 80, "low": 60, "break": 50 }
88
+ }
89
+ ```
90
+
91
+ ---
92
+
93
+ ## 反模式
94
+
95
+ - 把行覆盖率当作测试有效性的替代指标
96
+ - 在每个 PR 的 CI 中都加入变异测试(太慢)
97
+ - 未经 mutation score 验证就接受 AI 生成的测试
98
+ - 靠加 `toBeDefined()` 断言来杀死变异
99
+
100
+ ---
101
+
102
+ ## 与其他标准的关系
103
+
104
+ - `test-completeness-dimensions`:维度 8(AI 测试质量)引用 mutation score
105
+ - `mock-boundary`:空心测试会让许多变异存活;mock 边界规则防止空心测试
106
+ - `testing`:变异测试是测试金字塔顶端的质量门禁
@@ -0,0 +1,219 @@
1
+ ---
2
+ source: ../../../core/no-cicd-deployment.md
3
+ source_version: 1.0.0
4
+ translation_version: 1.0.0
5
+ last_synced: 2026-06-10
6
+ source_hash: dbe8c04bf6a4
7
+ status: current
8
+ ---
9
+
10
+ # No-CI/CD Deployment Strategy
11
+
12
+ > **Language**: [English](../../../core/no-cicd-deployment.md) | [繁體中文](../../zh-TW/core/no-cicd-deployment.md) | 简体中文
13
+
14
+ > **补充**: 本文档补充 `deployment-standards.md`,专注于无 CI/CD 平台(GitHub Actions / GitLab CI)环境下的可靠部署设计。
15
+
16
+ ## 核心三层架构
17
+
18
+ ```
19
+ Layer 1: 防止错误部署
20
+ └─ set -euo pipefail、版本 tag 强制、deploy.lock
21
+
22
+ Layer 2: 验证部署正确
23
+ └─ Smoke Test、健康检查、版本号比对、自动 rollback
24
+
25
+ Layer 3: 快速恢复能力
26
+ └─ Blue-Green 切换、< 30 秒 rollback
27
+ ```
28
+
29
+ ## Layer 1:防止错误部署
30
+
31
+ ### Shell 脚本强制执行
32
+
33
+ 所有部署脚本必须以下列标头开始:
34
+
35
+ ```bash
36
+ #!/usr/bin/env bash
37
+ set -euo pipefail
38
+ ```
39
+
40
+ - `set -e`:任何命令失败立即退出
41
+ - `set -u`:引用未定义变量视为错误
42
+ - `set -o pipefail`:管线中任何命令失败都会传播错误
43
+
44
+ ### 强制部署顺序
45
+
46
+ ```bash
47
+ echo "[1/4] 执行测试..."
48
+ npm test
49
+
50
+ echo "[2/4] 构建产物..."
51
+ npm run build
52
+
53
+ echo "[3/4] 推送到服务器..."
54
+ rsync -avz --delete ./dist/ user@server:/app/
55
+
56
+ echo "[4/4] 验证部署..."
57
+ ./verify.sh || { echo "验证失败,执行 rollback..."; ./rollback.sh; exit 1; }
58
+ ```
59
+
60
+ ### deploy.lock 防并发
61
+
62
+ ```bash
63
+ LOCK_FILE="/tmp/deploy.lock"
64
+ trap "rm -f $LOCK_FILE" EXIT
65
+
66
+ if [ -f "$LOCK_FILE" ]; then
67
+ echo "❌ 部署进行中(PID: $(cat $LOCK_FILE)),请等待完成"
68
+ exit 1
69
+ fi
70
+
71
+ echo $$ > "$LOCK_FILE"
72
+ ```
73
+
74
+ ### 版本 Tag 强制
75
+
76
+ ```bash
77
+ CURRENT_TAG=$(git describe --exact-match --tags HEAD 2>/dev/null || echo "")
78
+ if [ -z "$CURRENT_TAG" ]; then
79
+ echo "❌ 当前 commit 没有版本 tag,请先执行:"
80
+ echo " git tag v$(cat VERSION) && git push --tags"
81
+ exit 1
82
+ fi
83
+ ```
84
+
85
+ ## Layer 2:验证部署正确
86
+
87
+ ### Smoke Test 脚本 (verify.sh)
88
+
89
+ ```bash
90
+ #!/usr/bin/env bash
91
+ set -euo pipefail
92
+
93
+ HEALTH_URL="${HEALTH_URL:-https://example.com/health}"
94
+ EXPECTED_VERSION=$(cat VERSION)
95
+ MAX_RETRIES=3
96
+ RETRY_INTERVAL=5
97
+
98
+ for i in $(seq 1 $MAX_RETRIES); do
99
+ RESPONSE=$(curl -sf --max-time 10 "$HEALTH_URL" 2>/dev/null) && break
100
+ echo "健康检查失败 ($i/$MAX_RETRIES),等待 ${RETRY_INTERVAL}s..."
101
+ sleep $RETRY_INTERVAL
102
+ done
103
+
104
+ ACTUAL_VERSION=$(echo "$RESPONSE" | python3 -c "import json,sys; print(json.load(sys.stdin)['version'])")
105
+
106
+ if [ "$ACTUAL_VERSION" != "$EXPECTED_VERSION" ]; then
107
+ echo "❌ 版本不符!预期 $EXPECTED_VERSION,实际 $ACTUAL_VERSION"
108
+ exit 1
109
+ fi
110
+
111
+ echo "✅ 版本验证通过:$ACTUAL_VERSION"
112
+ ```
113
+
114
+ ### 健康检查端点规格
115
+
116
+ 应用程序必须提供 `/health` 端点,响应格式:
117
+
118
+ ```json
119
+ {
120
+ "status": "ok",
121
+ "version": "1.2.3",
122
+ "timestamp": "2026-04-26T10:00:00Z"
123
+ }
124
+ ```
125
+
126
+ ## Layer 3:快速恢复能力
127
+
128
+ ### Blue-Green 架构
129
+
130
+ ```
131
+ [Nginx]
132
+
133
+ ├─── Blue (port 3001) ← 稳定版(当前 active)
134
+ └─── Green (port 3002) ← 新版(部署目标)
135
+ ```
136
+
137
+ **Nginx 配置**:
138
+
139
+ ```nginx
140
+ upstream app {
141
+ server 127.0.0.1:3001; # blue
142
+ # server 127.0.0.1:3002; # green(切换时启用此行并停用上一行)
143
+ }
144
+
145
+ server {
146
+ listen 80;
147
+ location / {
148
+ proxy_pass http://app;
149
+ }
150
+ }
151
+ ```
152
+
153
+ ### Rollback 脚本 (rollback.sh)
154
+
155
+ ```bash
156
+ #!/usr/bin/env bash
157
+ set -euo pipefail
158
+
159
+ CURRENT=$(readlink /app/current)
160
+ if [[ "$CURRENT" == *"green"* ]]; then
161
+ TARGET="/app/blue"
162
+ else
163
+ TARGET="/app/green"
164
+ fi
165
+
166
+ ln -sfn "$TARGET" /app/current
167
+ nginx -s reload
168
+
169
+ echo "✅ 已切回 $TARGET($(date -u +%Y-%m-%dT%H:%M:%SZ))"
170
+
171
+ # 记录 rollback 事件
172
+ echo "{\"timestamp\":\"$(date -u +%Y-%m-%dT%H:%M:%SZ)\",\"event\":\"rollback\",\"from\":\"$CURRENT\",\"to\":\"$TARGET\",\"operator\":\"$(whoami)\"}" >> /var/log/deployments.jsonl
173
+ ```
174
+
175
+ ### 完整 Makefile
176
+
177
+ ```makefile
178
+ .PHONY: deploy rollback verify
179
+
180
+ deploy:
181
+ @./deploy.sh
182
+
183
+ rollback:
184
+ @./rollback.sh
185
+
186
+ verify:
187
+ @./verify.sh
188
+
189
+ status:
190
+ @echo "Current: $$(readlink /app/current)"
191
+ @curl -s $${HEALTH_URL:-http://localhost/health} | python3 -m json.tool
192
+ ```
193
+
194
+ ## Deployment Log 格式
195
+
196
+ 每次部署(成功或失败)都必须写入 JSON Lines 格式的日志:
197
+
198
+ ```json
199
+ {"timestamp":"2026-04-26T10:00:00Z","version":"1.2.3","git_commit":"abc1234","operator":"albert","result":"success","duration_seconds":45,"slot":"green"}
200
+ {"timestamp":"2026-04-26T11:30:00Z","version":"1.2.4","git_commit":"def5678","operator":"albert","result":"failure","duration_seconds":12,"slot":"green","error":"version_mismatch"}
201
+ ```
202
+
203
+ ## 适用场景
204
+
205
+ | 场景 | 建议 |
206
+ |------|------|
207
+ | 个人 VPS / 小型项目 | Layer 1 + Layer 2(无需 Blue-Green) |
208
+ | 自架服务器(多人团队) | 三层全套 + deploy.lock |
209
+ | Air-gapped 环境 | 三层全套 + 本地 artifact registry |
210
+ | 容器化部署 | 搭配 `docker compose` 执行 |
211
+
212
+ ## 相关标准
213
+
214
+ - `deployment-standards.ai.yaml` — 有 CI/CD 平台的部署策略(本文档的补充前提)
215
+ - `health-check-standards.ai.yaml` — /health 端点设计规范
216
+ - `circuit-breaker.ai.yaml` — 断路器集成(进阶场景)
217
+
218
+
219
+ **Scope**: universal
@@ -1,8 +1,9 @@
1
1
  ---
2
2
  source: ../../../core/packaging-standards.md
3
- source_version: 1.0.0
4
- translation_version: 1.0.0
5
- last_synced: 2026-04-20
3
+ source_version: 1.1.0
4
+ translation_version: 1.1.0
5
+ last_synced: 2026-06-10
6
+ source_hash: 69ff3afd3c1e
6
7
  status: current
7
8
  ---
8
9
 
@@ -10,8 +11,8 @@ status: current
10
11
 
11
12
  > **语言**: [English](../../../core/packaging-standards.md) | 简体中文
12
13
 
13
- **版本**: 1.0.0
14
- **最后更新**: 2026-04-15
14
+ **版本**: 1.1.0
15
+ **最后更新**: 2026-05-26
15
16
  **适用性**: 使用 UDS-aware 工具链的项目
16
17
  **范围**: 通用 (Universal)
17
18
 
@@ -202,12 +203,82 @@ targets:
202
203
 
203
204
  ---
204
205
 
206
+ ## 归档格式完整性
207
+
208
+ 当打包步骤生成将被部署脚本使用的归档(`.zip`、`.tar.gz`、`.tar.bz2` 等)时,**真实的二进制格式必须与文件扩展名一致**。命名为 `.zip` 的文件必须是真正的 ZIP 归档(PKZip 魔数 `PK\x03\x04`),而不是改名后的 tar 归档。
209
+
210
+ > **为何必须:** 格式不匹配的归档会触发下游静默失败。PowerShell 的 `Expand-Archive` 和 `[System.IO.Compression.ZipFile]::ExtractToDirectory()` 会**不抛出任何错误地**接受 tar 改名为 `.zip` 的文件——文件被读取,但什么都不会被解压,且没有任何异常。若部署脚本的下一步是破坏性操作(例如"删除当前安装目录"),则运行中的安装将被销毁而无任何内容可替换。
211
+
212
+ ### 发布前验证
213
+
214
+ 每个生成归档的打包步骤**必须**在声明成功前包含格式验证。最低验证要求:
215
+
216
+ | 格式 | 验证单行命令 |
217
+ |---|---|
218
+ | `.zip` | `python -c "import zipfile; zipfile.ZipFile('out.zip').namelist()"` 必须成功 |
219
+ | `.zip`(Unix) | `file out.zip` 必须报告 `Zip archive data`,**不得**为 `POSIX tar archive` |
220
+ | `.tar.gz` | `tar -tzf out.tar.gz >/dev/null` 必须成功 |
221
+ | 任意格式 | 可选:对预期文件清单进行哈希比对 |
222
+
223
+ 验证失败必须在发布前终止打包流水线。
224
+
225
+ ### 各平台配置示例
226
+
227
+ **Windows — 应当使用:**
228
+
229
+ ```powershell
230
+ # 选项 A:PowerShell 内置(生成真正的 ZIP)
231
+ Compress-Archive -Path "publish\*" -DestinationPath "dist\patch.zip" -Force
232
+
233
+ # 选项 B:.NET API(生成真正的 ZIP)
234
+ Add-Type -Assembly System.IO.Compression.FileSystem
235
+ [System.IO.Compression.ZipFile]::CreateFromDirectory(
236
+ "publish", "dist\patch.zip", "Optimal", $false
237
+ )
238
+ ```
239
+
240
+ **Windows — 不应使用:**
241
+
242
+ ```bash
243
+ # ❌ git-bash / busybox 的 tar -a -cf 在 Windows 上不可靠
244
+ # -a "按扩展名自动选择格式" 标志会生成带 .zip 扩展名的 POSIX tar 归档。
245
+ # `file patch.zip` → "POSIX tar archive (GNU)"(而非 "Zip archive data")
246
+ cd publish && tar -a -cf "../dist/patch.zip" api/
247
+ ```
248
+
249
+ **类 Unix 系统 — 应当使用:**
250
+
251
+ ```bash
252
+ # 使用 'zip' 生成 ZIP 归档(BSD/Linux)
253
+ zip -r dist/patch.zip publish/
254
+
255
+ # 使用 'tar -czf'(不加 -a)生成 tar.gz 归档——明确、确定
256
+ tar -czf dist/patch.tar.gz publish/
257
+
258
+ # 发布前验证
259
+ file dist/patch.zip # 期望 "Zip archive data"
260
+ python -c "import zipfile; zipfile.ZipFile('dist/patch.zip').namelist()"
261
+ ```
262
+
263
+ ### 消费者侧防御
264
+
265
+ 生产者无法保证消费者会进行验证。消费者(部署脚本)**必须**在任何破坏性操作前验证归档完整性。消费者侧要求参见[部署标准 — 防御性部署排序](deployment-standards.md#防御性部署排序)。
266
+
267
+ ### 失败模式参考(真实事故)
268
+
269
+ 某 Windows IIS 生产部署脚本(2026-05-24)在 git-bash 中使用 `tar -a -cf patch.zip api/` 生成发布归档。消费者侧的 PowerShell 部署脚本随后执行了 `Expand-Archive`(对该 tar 改名文件静默无操作),继续对运行中的 `apiDir` 执行 `Remove-Item -Recurse`,然后从根本不存在的源路径执行 `Copy-Item`(因为什么都没有被解压)。运行中的安装被清空,AppPool 停止,生产环境中断了约 3 分钟,直到基于备份的回滚完成。
270
+
271
+ (a)生产者使用自动扩展名 tar,(b)消费者未验证解压输出——这两个因素共同造成了运行中的安装被销毁,且整个过程无任何错误被报告。
272
+
273
+ ---
274
+
205
275
  ## 相关标准
206
276
 
207
277
  - [部署标准](deployment-standards.md) — 打包后的部署阶段
208
278
  - [Pipeline 整合标准](pipeline-integration-standards.md) — CI/CD pipeline 配置
209
279
  - [Check-in 标准](checkin-standards.md) — 打包前的质量关卡
210
280
  - [版本控制标准](versioning.md) — 包产出物使用的版本号
281
+ - [供应链证明标准](supply-chain-attestation.md) — 打包产出物的 SBOM / SLSA 溯源 / 签名(此处的格式完整性属于归档层级;证明则补充了从源码到产出物的溯源)
211
282
 
212
283
  ---
213
284
 
@@ -215,6 +286,7 @@ targets:
215
286
 
216
287
  | 版本 | 日期 | 变更 |
217
288
  |------|------|------|
289
+ | 1.1.0 | 2026-05-26 | 新增:归档格式完整性章节——真实格式必须与扩展名一致的规则、验证单行命令、Windows 配置 DO/DON'T 列表、真实事故参考(XSPEC-231 / 关闭 issue #113) |
218
290
  | 1.0.0 | 2026-04-15 | 初始发行 — XSPEC-034 Phase 1 |
219
291
 
220
292
  ---