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,195 @@
1
+ # Multi-Environment E2E Testing Standards
2
+
3
+ > **Version**: 1.0.0 | **Status**: Active | **Updated**: 2026-05-13
4
+ > **AI-optimized version**: `ai/standards/multi-environment-e2e-testing.ai.yaml`
5
+ > **Spec**: XSPEC-204 (UDS Issue #94, #95)
6
+
7
+ **Scope**: universal
8
+ **Applicability**: Any project whose E2E tests must run against more than one deployment
9
+ target (local, local-IIS, UAT, PRD, etc.)
10
+
11
+ ## Overview
12
+
13
+ This standard defines how to configure E2E tests across multiple deployment targets. Its
14
+ core principle is **Executable Environment Documentation**: *the run command IS the
15
+ documentation*. Each environment gets one entry-point script that self-checks its own
16
+ prerequisites and runs the correct test subset — so the script itself becomes the
17
+ authoritative environment setup guide, instead of scattered knowledge in a README, a
18
+ wiki page, and verbal tribal knowledge.
19
+
20
+ > **Anti-pattern**: manually editing `BASE_URL` in `.env` before test runs. This breaks
21
+ > other developers' configs and cannot be committed without affecting everyone.
22
+
23
+ ## Test Framework Multi-Environment Config
24
+
25
+ **Rule**: `BASE_URL` is baked into the test-project config, not read from `.env`. If
26
+ `BASE_URL` comes from `.env`, developers must edit `.env` before running against a
27
+ specific environment — a race condition in teams, and a source of accidental commits of
28
+ the wrong URL.
29
+
30
+ Playwright — one config, one project per environment:
31
+
32
+ ```ts
33
+ // playwright.config.ts
34
+ const ENVS = {
35
+ 'local-iis': 'http://localhost/corp',
36
+ 'local-iis-express': 'http://localhost:18080/lotest',
37
+ 'uat': 'http://portal_uat.example.com/app',
38
+ 'prd': 'https://app.example.com',
39
+ } as const;
40
+
41
+ export default defineConfig({
42
+ projects: Object.entries(ENVS).map(([name, url]) => ({
43
+ name,
44
+ use: { browserName: 'chromium', baseURL: url },
45
+ })),
46
+ });
47
+ ```
48
+
49
+ Cypress — pass the target via `--env target=uat`, defaulting to `local`:
50
+
51
+ ```ts
52
+ // cypress.config.ts
53
+ const ENVS = {
54
+ 'local': { baseUrl: 'http://localhost:3000' },
55
+ 'uat': { baseUrl: 'http://uat.example.com' },
56
+ 'prd': { baseUrl: 'https://app.example.com' },
57
+ };
58
+ ```
59
+
60
+ Rules:
61
+
62
+ - One test config file; distinguish environments via project name or a `--project` /
63
+ `--env` flag.
64
+ - No environment-specific `playwright.config.*.ts` / `cypress.config.*.ts` files.
65
+ - `BASE_URL` is never sourced from `.env` for E2E test configs.
66
+
67
+ ## Runner Script Pattern
68
+
69
+ **Rule**: each environment has one entry-point script,
70
+ `scripts/run-tests-<env>.(ps1|sh)`, that self-checks prerequisites before invoking the
71
+ test runner. Prerequisite checks typically cover: Docker/container runtime, application
72
+ health endpoint, database connectivity (if separate from the app), and any other
73
+ required environment-specific services.
74
+
75
+ ```bash
76
+ #!/bin/bash
77
+ # scripts/run-tests-local.sh
78
+
79
+ # 1. Check Docker
80
+ if ! docker info > /dev/null 2>&1; then
81
+ echo "ERROR: Docker is not running." >&2
82
+ exit 1
83
+ fi
84
+
85
+ # 2. Check App
86
+ if ! curl -s -f http://localhost:3000/health > /dev/null 2>&1; then
87
+ echo "ERROR: App not responding at http://localhost:3000" >&2
88
+ exit 1
89
+ fi
90
+
91
+ npx playwright test --project=local "$@"
92
+ ```
93
+
94
+ (The PowerShell equivalent follows the same three steps: check Docker, check the app
95
+ health endpoint, then run `npx playwright test --project=<env>`.)
96
+
97
+ ## Environment Capability Matrix
98
+
99
+ **Rule**: projects with external dependencies (HTTP services, IdP, payment, messaging)
100
+ MUST maintain an environment capability matrix committed to the repository —
101
+ `docs/testing/environment-capability-matrix.md` or inline in the testing README. Update
102
+ it whenever a new external service dependency is added.
103
+
104
+ ```
105
+ ## Environment Capability Matrix
106
+
107
+ | Service / Feature | local-dev | local-iis | UAT | PRD |
108
+ |-------------------|:---------:|:---------:|:---:|:---:|
109
+ | Auth / SAML | ⚠️ Keycloak stub | ✅ Keycloak local | ✅ Keycloak UAT | ✅ Enterprise IdP |
110
+ | SMS Gateway | ⚠️ stub-server | ⚠️ stub-server | ⚠️ stub-server / ❌ | ✅ Real Gateway + billing |
111
+ | Payment / Finance | ⚠️ stub-server | ⚠️ stub-server | ⚠️ partial | ✅ Real + reconciliation |
112
+ | Background Jobs | ✅ in-process | ✅ in-process | ✅ | ✅ |
113
+ | File Storage | ✅ local | ✅ local | ✅ blob | ✅ blob |
114
+
115
+ Legend: ✅ Full verification possible · ⚠️ Flow passes but through a stub (real-world
116
+ dimensions NOT verified) · ❌ Cannot test in this environment
117
+
118
+ ### Dimensions NOT verifiable in UAT (must defer to PRD smoke)
119
+ - SMS: billing correctness, carrier delivery confirmation, DR reporting
120
+ - Payment: real debit/credit, bank reconciliation, card validation
121
+ ```
122
+
123
+ ## CI Gate Mapping
124
+
125
+ **Rule**: map each CI/CD stage to the environment(s) it must pass, and document which
126
+ gate must pass before each deployment stage.
127
+
128
+ ```yaml
129
+ # .github/workflows/ci.yml or .gitlab-ci.yml
130
+ e2e-smoke-gate: # Must pass → any deployment
131
+ runs-on: ubuntu-latest
132
+ script: scripts/run-tests-local.sh --grep smoke
133
+
134
+ e2e-uat-gate: # Must pass → PRD deployment
135
+ environment: uat
136
+ script: scripts/run-tests-uat.sh
137
+ only: [tags, release-branches]
138
+
139
+ e2e-prd-smoke: # Must pass → mark release as stable
140
+ environment: prd
141
+ script: scripts/run-tests-prd-smoke.sh
142
+ only: [tags]
143
+ ```
144
+
145
+ | Deployment Stage | Required Gates |
146
+ |-------------------|-----------------|
147
+ | Before staging deploy | unit tests, integration tests, e2e-smoke-gate |
148
+ | Before UAT deploy | all staging gates, e2e-uat-gate (if a UAT environment is available) |
149
+ | Before PRD deploy | e2e-uat-gate, sign-off from capability-matrix review |
150
+ | After PRD deploy | e2e-prd-smoke, within 10 minutes of deploy |
151
+
152
+ ## Credential Handling
153
+
154
+ **Rule**: separate what goes into git from what stays gitignored.
155
+
156
+ - **Commit to git**: base URLs per environment (non-secret, team-shared), test
157
+ usernames for non-PRD environments, feature flags and test configuration,
158
+ self-check scripts with no credentials embedded.
159
+ - **Gitignore**: passwords and secrets, API keys and tokens, `.env.test.local`
160
+ (personal overrides).
161
+ - **CI secrets**: PRD test passwords are passed via CI secret variables (GitHub
162
+ Secrets / GitLab CI Variables) — never committed.
163
+
164
+ ```
165
+ # Test credentials
166
+ .env.test.local
167
+ tests/fixtures/auth-secrets.json
168
+ # Base URLs and non-secrets are committed; see playwright.config.ts
169
+ ```
170
+
171
+ ## Rules
172
+
173
+ | Rule | Trigger | Instruction | Priority |
174
+ |------|---------|--------------|----------|
175
+ | `base-url-in-config` | Setting up E2E tests for a project with multiple environments | Define all environment `BASE_URL`s in the test framework config as named projects; do not rely on `.env` for `BASE_URL` | required |
176
+ | `one-runner-per-env` | Adding a new deployment target | Create `scripts/run-tests-<env>.(ps1\|sh)` with self-checking prerequisite steps; verify all required services before invoking the test runner | required |
177
+ | `capability-matrix-required` | Feature has external service dependencies (SMS, payment, IdP, file storage) | Create or update the environment capability matrix; mark ✅/⚠️/❌ per service × environment; list dimensions not verifiable in UAT as "PRD-only smoke" | required |
178
+ | `ci-gate-mapping` | Defining CI/CD pipeline stages | Map each CI gate to the environment(s) it must pass; the E2E gate must specify which environment it targets | required |
179
+
180
+ ## Relationship to Other Standards
181
+
182
+ - **`deployment-standards`** — extends: adds the environment dimension to CI gates and
183
+ deployment readiness.
184
+ - **`test-completeness-dimensions`** — complements: adds dimension 11, Environment
185
+ Verifiability.
186
+ - **`verification-evidence`** — complements: evidence must specify which environment it
187
+ was collected from.
188
+ - **`mock-boundary`** — complements: the capability matrix references Level 2 stub-server
189
+ usage.
190
+
191
+ ## Changelog
192
+
193
+ | Version | Date | Changes |
194
+ |---------|------|---------|
195
+ | v1.0.0 | 2026-05-13 | Initial — executable environment documentation principle, framework config, runner scripts, capability matrix, CI gate mapping, credential handling (XSPEC-204) |
@@ -269,6 +269,7 @@ The combination of (a) producer using auto-extension tar and (b) consumer not ve
269
269
  - [Pipeline Integration Standards](pipeline-integration-standards.md) — CI/CD pipeline configuration
270
270
  - [Checkin Standards](checkin-standards.md) — Quality gates before packaging
271
271
  - [Versioning Standards](versioning.md) — Version numbers used in package artifacts
272
+ - [Supply Chain Attestation](supply-chain-attestation.md) — SBOM / SLSA provenance / signing of the packaged artifact (format integrity here is archive-level; attestation adds source-to-artifact provenance)
272
273
 
273
274
  ---
274
275
 
@@ -2,8 +2,8 @@
2
2
 
3
3
  > **Language**: English | [繁體中文](../locales/zh-TW/core/performance-standards.md)
4
4
 
5
- **Version**: 1.1.0
6
- **Last Updated**: 2026-01-29
5
+ **Version**: 1.2.0
6
+ **Last Updated**: 2026-06-17
7
7
  **Applicability**: All software projects
8
8
  **Scope**: universal
9
9
  **Industry Standards**: ISO/IEC 25010 Performance Efficiency
@@ -323,6 +323,97 @@ Analogous to the SRE Error Budget concept, a Performance Budget defines the tole
323
323
 
324
324
  ---
325
325
 
326
+ ## Migration Non-Functional Parity (XSPEC-286)
327
+
328
+ > Part of the [XSPEC-284](https://github.com/AsiaOstrich/universal-dev-standards) 9-axis migration completeness matrix (**axis ⑥ — non-functional**). Covers the omission class "function is correct, data is correct, but **it runs differently**" during a legacy refactor / rewrite. This section adds **migration-specific** before/after semantics on top of the general baseline/drift machinery above; it does NOT replace the general performance framework.
329
+
330
+ ### Why this is a real gap
331
+
332
+ The general Baseline Management above answers "did *this version* regress vs *its own* prior baseline". It does NOT answer "does the **new** system match the **legacy** system it replaces". In a rewrite (e.g. PHP single-request → .NET shared-state threads) the latency/throughput/isolation characteristics of legacy are **implicit and undocumented**, so per-request functional parity and behavior-snapshot parity both pass while the system silently runs slower, exhausts a smaller pool, or loses a lock semantic.
333
+
334
+ ### Differential oracle, not absolute threshold
335
+
336
+ Migration parity uses **legacy as the baseline** and a **declared tolerance**, not the absolute targets in the tables above. The legacy system's measured behavior is the oracle; "no regression beyond the declared tolerance" is the pass criterion. This makes divergence self-report instead of relying on someone remembering to enumerate every hot path.
337
+
338
+ ### Step 1 — Mechanized non-functional baseline capture (R3)
339
+
340
+ Legacy non-functional characteristics are mostly implicit. Derive the baseline **mechanically** (not from memory) from legacy artifacts:
341
+
342
+ | Source | Derived baseline item |
343
+ |--------|----------------------|
344
+ | Key routes / controllers | p50 / p95 / p99 latency per critical path |
345
+ | Hot queries / slow-query log | Per-query latency, rows scanned |
346
+ | Background jobs / cron | Job duration, throughput (records/min) |
347
+ | Connection pool config | Min/max connections, idle/connection timeout |
348
+ | Timeout / rate-limit config | Per-endpoint timeout, requests/min, burst |
349
+ | Transaction config | Isolation level (READ COMMITTED / REPEATABLE READ / SERIALIZABLE) |
350
+
351
+ The captured set is **both** the comparison baseline for the regression gate **and** the to-verify checklist for resource/limit parity (Step 4).
352
+
353
+ ### Step 2 — Performance regression differential gate (R1)
354
+
355
+ For each baseline path, measure the corresponding path in the new system and compare against the **legacy baseline** within a declared tolerance.
356
+
357
+ | Metric | Default migration tolerance | Block when |
358
+ |--------|----------------------------|-----------|
359
+ | p50 latency | ≤ +10% vs legacy | > +10% |
360
+ | p95 latency | ≤ +15% vs legacy | > +15% |
361
+ | p99 latency | ≤ +20% vs legacy | > +20% |
362
+ | Throughput | ≤ -10% vs legacy | > -10% decrease |
363
+
364
+ Tolerances are **per-path configurable** (a batch job and an interactive endpoint differ). Start in **shadow** (measure-only, do not block) to collect samples and calibrate per-path tolerances, then promote to blocking.
365
+
366
+ **Gate timing**: pre-UAT (catch regression before sign-off) **and** post-cutover (catch regression that only appears under real production load).
367
+
368
+ ```markdown
369
+ ## Migration Performance Parity Report — <path>
370
+
371
+ | Metric | Legacy baseline | New system | Δ | Tolerance | Status |
372
+ |--------|-----------------|------------|---|-----------|--------|
373
+ | p50 | [X]ms | [Y]ms | +[Z]% | +10% | PASS/FAIL |
374
+ | p95 | [X]ms | [Y]ms | +[Z]% | +15% | PASS/FAIL |
375
+ | p99 | [X]ms | [Y]ms | +[Z]% | +20% | PASS/FAIL |
376
+ | Throughput | [X] rps | [Y] rps | -[Z]% | -10% | PASS/FAIL |
377
+
378
+ **Mode**: shadow (measure-only) / blocking
379
+ **Overall**: PASS / FAIL
380
+ ```
381
+
382
+ ### Step 3 — Concurrency isolation verification (R2)
383
+
384
+ The same resource (same record / same account balance / same sequence number) may be accessed by multiple concurrent operations. Legacy lock / transaction-isolation / ordering guarantees are **implicit behavior** and are routinely changed by a rewrite — and **neither functional tests nor behavior-snapshot parity catch this** (per-request parity ≠ concurrency parity, the same blind spot class as "per-request ≠ data-at-rest").
385
+
386
+ **Method**: drive a race with concurrent stress, then assert **domain invariants** rather than checking outputs one-at-a-time.
387
+
388
+ | Invariant class | Example assertion |
389
+ |-----------------|-------------------|
390
+ | Conservation | `SUM(balance)` unchanged after N concurrent transfers |
391
+ | Uniqueness | no duplicate sequence number under concurrent allocation |
392
+ | No lost update | last-writer-wins not silently replacing a committed write |
393
+ | Ordering | events applied in a guaranteed order under concurrency |
394
+
395
+ Detecting an **isolation downgrade** (e.g. legacy SERIALIZABLE → new READ COMMITTED, or a removed row lock) blocks. The invariants themselves are domain-defined; where a concurrency case overlaps a state-transition or temporal invariant, **the state-machine / temporal concern is owned by XSPEC-287** (axis ⑧) and concurrency race is owned here (axis ⑥) — see XSPEC-287 §boundary.
396
+
397
+ **Gate timing**: pre-UAT.
398
+
399
+ ### Step 4 — Resource / limit parity (R4)
400
+
401
+ Verify that legacy resource limits are not **unintentionally** changed by the rewrite (a timeout silently dropping from 30s to 5s fails long jobs; a smaller pool serializes traffic). Add to the non-functional reconciliation checklist:
402
+
403
+ - [ ] Request / operation **timeouts** match legacy (or change is declared)
404
+ - [ ] **Rate limits** (requests/min, burst) match legacy
405
+ - [ ] **Connection pool** min/max and idle/connection timeout match legacy
406
+ - [ ] **Batch sizes** match legacy
407
+ - [ ] **Transaction isolation level** matches legacy (cross-check with Step 3)
408
+
409
+ Each item is either matched or has a **declared, justified** delta. An undeclared delta is a known regression risk and blocks cutover.
410
+
411
+ ### Completeness declaration (matrix alignment)
412
+
413
+ Axis ⑥ of the migration completeness matrix is satisfied when this section declares all three: **derive** (Step 1 mechanized baseline), **oracle** (Step 2 regression differential + Step 3 invariant assertions), and **gate timing** (pre-UAT + post-cutover). Reuse the general baseline/drift and `observability-assistant` measurement machinery — this section adds only the migration before/after and concurrency-isolation semantics, it does not rebuild a general performance framework.
414
+
415
+ ---
416
+
326
417
  ## Per-Release Capacity Sign-off
327
418
 
328
419
  This section defines the **capacity gate** that must be satisfied before production release (Dimension 10 in `release-readiness-gate.md`, Tier-3).
@@ -395,6 +486,8 @@ The capacity sign-off is `N/A` (with documented rationale) when:
395
486
  - [Code Review Checklist](code-review-checklist.md) - Performance review
396
487
  - [Deployment Standards](deployment-standards.md) - Performance validation pre-deployment
397
488
  - [Release Readiness Gate](release-readiness-gate.md) - Dimension 1 (load) and Dimension 10 (capacity)
489
+ - [Behavior Snapshot](behavior-snapshot.md) - Functional parity oracle (complements migration non-functional parity)
490
+ - [Full Coverage Testing](full-coverage-testing.md) - Concurrency dimension cross-reference
398
491
 
399
492
  ---
400
493
 
@@ -402,6 +495,7 @@ The capacity sign-off is `N/A` (with documented rationale) when:
402
495
 
403
496
  | Version | Date | Changes |
404
497
  |---------|------|---------|
498
+ | 1.2.0 | 2026-06-17 | Added Migration Non-Functional Parity (XSPEC-286, axis ⑥): before/after differential regression gate, concurrency isolation verification, resource/limit parity, mechanized baseline capture |
405
499
  | 1.1.0 | 2026-01-29 | Refactored: Split into Rules + Guide, moved explanations to guide |
406
500
  | 1.0.0 | 2026-01-29 | Initial release |
407
501
 
@@ -0,0 +1,148 @@
1
+ # PII Classification and Handling Standards
2
+
3
+ > **Version**: 1.1.0 | **Status**: Active | **Updated**: 2026-06-19
4
+ > **AI-optimized version**: `ai/standards/pii-classification.ai.yaml`
5
+ > **Spec**: XSPEC-066 (cross-project/specs/XSPEC-066-uds-compliance-audit-pack.md)
6
+
7
+ **Scope**: universal
8
+
9
+ ## Overview
10
+
11
+ This standard defines how **Personally Identifiable Information (PII)** and
12
+ sensitive personal data is classified, labeled, stored, transmitted, and disposed
13
+ of. It covers a three-tier data-sensitivity classification, mandatory handling
14
+ controls per tier, data-minimization principles, consent-management requirements,
15
+ retention/deletion schedules, and cross-border transfer restrictions. It is
16
+ aligned with GDPR Article 9, CCPA, and general privacy-by-design principles.
17
+
18
+ It is part of the **compliance & audit pack** (XSPEC-066). The PII tiers it
19
+ defines drive the masking rules executed by `logging-standards` and the
20
+ mandatory data-access events recorded by `audit-trail`.
21
+
22
+ > **Scope.** This standard defines the *classification tiers* and the *handling
23
+ > controls* per tier. The concrete masking/tokenization library, the secrets
24
+ > store for encryption keys, and the PIA workflow tool are adoption choices.
25
+
26
+ ## Requirements
27
+
28
+ | ID | Rule | Level |
29
+ |----|------|-------|
30
+ | REQ-001 | PII data-sensitivity classification (TIER-1/2/3) | MUST |
31
+ | REQ-002 | Data minimization and purpose limitation | MUST |
32
+ | REQ-003 | PII masking and anonymization in non-production | MUST |
33
+ | REQ-004 | Data retention and deletion schedule | MUST |
34
+ | REQ-005 | Cross-border data-transfer controls | MUST |
35
+ | REQ-006 | PII impact assessment (PIA) for new features | SHOULD |
36
+
37
+ ### REQ-001 — PII Data Sensitivity Classification
38
+
39
+ All data fields containing personal information MUST be classified into one of
40
+ three tiers before storage or processing:
41
+
42
+ | Tier | Examples | Required controls |
43
+ |------|----------|-------------------|
44
+ | **TIER-1** (Highly sensitive) | Health data, financial account numbers, government IDs, biometrics, passwords, SSNs | Encryption at rest and in transit, access logging, no caching |
45
+ | **TIER-2** (Sensitive) | Full name + contact-info combination, location history, behavioral profiles, IP addresses | Encryption in transit, access controls |
46
+ | **TIER-3** (General PII) | First name only, country-level location, general demographics | Standard access controls |
47
+
48
+ ### REQ-002 — Data Minimization and Purpose Limitation
49
+
50
+ Systems MUST collect only the minimum PII necessary for the explicitly stated
51
+ purpose. Each PII field in the data model MUST have a documented business purpose
52
+ and legal basis (consent, contract, legitimate interest, legal obligation).
53
+ Collecting PII without a documented purpose is **PROHIBITED**. Purpose limitation
54
+ MUST be enforced: data collected for purpose A MUST NOT be used for an unrelated
55
+ purpose B without separate consent.
56
+
57
+ ### REQ-003 — PII Masking and Anonymization in Non-Production
58
+
59
+ PII MUST NOT exist in non-production environments (development, staging, test)
60
+ unless explicitly required and approved. Test/staging databases MUST use
61
+ anonymized or synthetic data. Any approved exception MUST be time-limited,
62
+ access-controlled, and documented. PII MUST be masked in application logs:
63
+ email as `u***@domain.com`, phone as `+1-XXX-XXX-1234`, card numbers as
64
+ `****-****-****-1234`.
65
+
66
+ ### REQ-004 — Data Retention and Deletion Schedule
67
+
68
+ Every data category containing PII MUST have a documented retention schedule with
69
+ a maximum retention period aligned to legal requirements and business need.
70
+ Automated deletion MUST be implemented for data past its retention period.
71
+ Deletion MUST be verifiable (deletion receipts or audit logs). Users exercising
72
+ the right to erasure MUST receive deletion confirmation within 30 days (GDPR) or
73
+ 45 days (CCPA).
74
+
75
+ ### REQ-005 — Cross-Border Data Transfer Controls
76
+
77
+ Transfers of TIER-1 or TIER-2 PII across national borders MUST comply with
78
+ applicable transfer mechanisms. EU → non-adequate-country transfers MUST use
79
+ Standard Contractual Clauses (SCCs) or Binding Corporate Rules. Data-residency
80
+ requirements MUST be documented in the system design. Cross-border transfers MUST
81
+ be logged with destination country and legal basis.
82
+
83
+ ### REQ-006 — PII Impact Assessment for New Features
84
+
85
+ Any new feature or system change that introduces new PII collection or processing
86
+ SHOULD undergo a Privacy Impact Assessment (PIA) before implementation. The PIA
87
+ MUST document what PII is collected, the purpose, legal basis, retention period,
88
+ third-party sharing, and risk mitigations. Features with TIER-1 PII require a
89
+ mandatory PIA; TIER-2 is recommended.
90
+
91
+ ## Integration with Existing Standards
92
+
93
+ - **`audit-trail`** — TIER-1/TIER-2 PII reads, exports, and erasure requests are
94
+ mandatory audit events.
95
+ - **`logging-standards`** — executes the masking rules this standard mandates.
96
+ - **`security-standards`** — encryption-at-rest/in-transit controls for TIER-1
97
+ reference the project's security baseline.
98
+ - **`database-standards`** — data-dictionary fields carry the PII tier and the
99
+ documented purpose/legal basis from REQ-002.
100
+
101
+ ## PII Discovery & Hand-Off Contract
102
+
103
+ The integrations above name the consumers, but a hand-off needs a defined
104
+ **trigger, interface, owner, and state** — otherwise "drives the masking rules"
105
+ is a claim, not a contract. This reuses the `data-contract` REQ-005
106
+ consumer-registration model and the `agent-communication-protocol` §3
107
+ structured-handoff shape.
108
+
109
+ ### Trigger — when classification fires
110
+
111
+ | When | What happens |
112
+ |------|--------------|
113
+ | New feature design | REQ-006 PII Impact Assessment classifies every new PII field **before** implementation |
114
+ | PR / scan time | A field carrying PII with no tier is a **blocking** finding (CI) |
115
+ | Data-dictionary change | A `database-standards` field gains/loses a PII tier → consumers are re-notified |
116
+
117
+ ### Interface — what crosses
118
+
119
+ The producer artifact is a **PII classification registry** entry per field:
120
+ `{ field, tier (TIER-1/2/3), purpose, legal_basis, masking_rule, retention }`.
121
+ Consumers register against it (per `data-contract` REQ-005) and are notified on change.
122
+
123
+ ### Owners & registered consumers
124
+
125
+ | Party | Responsibility |
126
+ |-------|----------------|
127
+ | Data owner / feature author | **Produces** the classification (REQ-001 / REQ-006) |
128
+ | `logging-standards` (consumer) | Applies `masking_rule` to TIER-1/2 in non-prod and logs |
129
+ | `audit-trail` (consumer) | Records mandatory access / export / erasure events |
130
+ | `security-standards` (consumer) | Enforces encryption-at-rest/in-transit for TIER-1 |
131
+ | Privacy / compliance owner | **Notified** on any new TIER-1 field or classification change |
132
+
133
+ ### State transition
134
+
135
+ `Found → Classified (tier assigned) → Handled (masked / encrypted / retention set) → Verified (consumer confirms the rule is applied)`.
136
+ A field stuck in `Found` (PII with no tier) **blocks release** (REQ-001 + the PR-time trigger above).
137
+
138
+ ## Related Specs
139
+
140
+ - XSPEC-066 — UDS compliance & audit pack (this standard's source)
141
+ - DEC-041 — EU AI Act 2026 compliance (PII handling as a compliance pillar)
142
+
143
+ ## Changelog
144
+
145
+ | Version | Date | Changes |
146
+ |---------|------|---------|
147
+ | v1.1.0 | 2026-06-19 | Added: PII Discovery & Hand-Off Contract (trigger / interface / owners / state) so the claimed hand-off to logging-standards / audit-trail is a defined contract, not a claim (XSPEC-292 T16) |
148
+ | v1.0.0 | 2026-06-17 | Initial — REQ-001~006: PII tiers, data minimization, non-prod masking, retention/deletion, cross-border transfer, PIA (XSPEC-066) |
@@ -2,7 +2,7 @@
2
2
 
3
3
  ## 概述
4
4
 
5
- 本標準定義嵌入 CI pipeline 各階段的安全檢查點,涵蓋 SAST、DAST、SCA(含 SBOM)和機密掃描,並明確規定各類發現的阻斷(Block)、警告(Warn)、記錄(Log)行為。
5
+ 本標準定義嵌入 CI pipeline 各階段的安全檢查點,涵蓋 SAST、DAST、SCA(含 SBOM)、機密掃描,以及發布前的供應鏈簽章驗證,並明確規定各類發現的阻斷(Block)、警告(Warn)、記錄(Log)行為。
6
6
 
7
7
  ---
8
8
 
@@ -11,6 +11,7 @@
11
11
  - **機密掃描在 pre-commit**:所有包含機密的提交都必須被阻擋,不得例外
12
12
  - **SAST 在建置後**:Critical 和 High 等級發現阻斷 pipeline
13
13
  - **SCA + SBOM 在封包階段**:追蹤相依套件風險並產生物料清單
14
+ - **Attestation 驗證在發布前**:封包後、部署前 MUST 驗證 artifact 的 checksum、簽章與 SLSA provenance(消費 supply-chain-attestation 標準的產出,不得「產生 SBOM 卻不驗」)
14
15
  - **DAST 在 staging 部署後**:對運行中的應用進行動態掃描
15
16
  - **安全閘門失敗 = pipeline 失敗**:不得視為可忽略的警告
16
17
  - **任何繞過都需審計軌跡**:禁止靜默跳過安全閘門
@@ -58,7 +59,24 @@
58
59
 
59
60
  ---
60
61
 
61
- ### 4. Post-Staging Deploy — DAST(動態應用安全測試)
62
+ ### 4. Pre-Deploy — Artifact Attestation Verification(供應鏈簽章驗證)
63
+
64
+ | 項目 | 說明 |
65
+ |------|------|
66
+ | 驗證範圍 | 已封包的發布 artifact(檔案壓縮檔 / 容器映像)|
67
+ | 推薦工具 | cosign(`verify-blob` / `verify`)、sha256sum、slsa-verifier |
68
+ | 阻斷條件 | 簽章驗證失敗、checksum 不符、SLSA provenance 缺失 |
69
+ | 警告條件 | SLSA 等級低於目標(公開發布建議 ≥ L2)|
70
+
71
+ 封包階段(gate 3)產生 SBOM 後,**部署/發布前 MUST 驗證** artifact 的完整性與來源證明,
72
+ 避免「產生了 SBOM/簽章卻從不驗證」的假保證:比對 `checksums.txt` 的 SHA256、以
73
+ `cosign verify-blob` 驗 SBOM 與 provenance 簽章、確認 SLSA provenance 存在。完整的
74
+ 產生與驗證指令、Release Bundle 結構見
75
+ [supply-chain-attestation.md](supply-chain-attestation.md)。
76
+
77
+ ---
78
+
79
+ ### 5. Post-Staging Deploy — DAST(動態應用安全測試)
62
80
 
63
81
  | 項目 | 說明 |
64
82
  |------|------|
@@ -97,6 +115,7 @@
97
115
  |---------|------|
98
116
  | 機密管理 | 整合 HashiCorp Vault 或 AWS Secrets Manager 進行機密注入 |
99
117
  | SBOM 註冊表 | 上傳 SBOM 至 dependency-track 或 grype-db 持續監控 |
118
+ | Artifact 簽章 | 發布前以 cosign 驗證 SBOM/provenance 簽章與 checksum(見 supply-chain-attestation)|
100
119
  | 事故回應 | Critical 發現自動建立事故單 |
101
120
 
102
121
  ---
@@ -106,6 +125,7 @@
106
125
  - [security-standards.md](security-standards.md) — 應用安全基礎標準
107
126
  - [pipeline-integration-standards.md](pipeline-integration-standards.md) — CI 管線整合標準
108
127
  - [deployment-standards.md](deployment-standards.md) — 部署基礎原則
128
+ - [supply-chain-attestation.md](supply-chain-attestation.md) — SBOM / SLSA provenance / cosign 簽章的產生與驗證(gate 4 消費)
109
129
  - AI 格式:[../ai/standards/pipeline-security-gates.ai.yaml](../ai/standards/pipeline-security-gates.ai.yaml)
110
130
 
111
131
 
@@ -255,6 +255,8 @@ For lower-severity or recurring incidents that don't warrant a full postmortem:
255
255
  | **Mitigate** | Reduce impact scope and duration | Implement automatic circuit breaker |
256
256
  | **Process** | Improve response procedures | Update on-call handoff checklist |
257
257
 
258
+ > **Hand-off to tech-debt tracking**: a Prevent/Mitigate action item that is a long-lived design/architecture remediation (not a quick fix that closes with the incident) MUST be registered in the tech-debt registry per [tech-debt-standards](tech-debt-standards.md) with `Source = postmortem PM-<id>` — so it is budgeted and tracked rather than lost once the incident closes.
259
+
258
260
  ### Status Tracking
259
261
 
260
262
  ```
@@ -0,0 +1,91 @@
1
+ # Product Requirements Document Standards
2
+
3
+ > **Version**: 1.0.0 | **Status**: Active | **Updated**: 2026-06-17
4
+ > **AI-optimized version**: `ai/standards/prd-standards.ai.yaml`
5
+ > **Spec**: XSPEC-069 (cross-project/specs/XSPEC-069-uds-product-layer-pack.md)
6
+
7
+ **Scope**: universal
8
+
9
+ ## Overview
10
+
11
+ This standard defines the structure, content requirements, and lifecycle
12
+ governance for **Product Requirements Documents (PRDs)**. It covers the five
13
+ mandatory PRD sections, the bridge from PRD requirements to traceable user
14
+ stories, and the revision policy for changes after kickoff. It ensures product
15
+ intent is clearly communicable to engineering, design, and stakeholders with
16
+ measurable success criteria.
17
+
18
+ It is part of the **product-layer pack** (XSPEC-069). The PRD is the *upstream*
19
+ of engineering requirements: PRD → user story → requirement. It bridges to
20
+ `requirement-engineering` (the engineering view of requirements) and consumes
21
+ `product-metrics-standards` for success metrics.
22
+
23
+ > **Scope.** This standard defines the *PRD artifact* (sections, traceability,
24
+ > revision policy). It is a product-layer edge of UDS (per XSPEC-070
25
+ > `standard-admission-criteria`) — the engineering requirement view stays in
26
+ > `requirement-engineering`.
27
+
28
+ ## Requirements
29
+
30
+ | ID | Rule | Level |
31
+ |----|------|-------|
32
+ | REQ-001 | PRD five sections (Problem, Persona, Success Metrics, Scope, Constraints) | MUST |
33
+ | REQ-002 | PRD → user-story bridge (INVEST, traceable to a success metric) | MUST |
34
+ | REQ-003 | Revision policy (formal change process after kickoff) | MUST |
35
+
36
+ ### REQ-001 — PRD Five Sections
37
+
38
+ Every PRD MUST contain five sections in order: (1) **Problem Statement** — the
39
+ user pain/opportunity in observable terms, with quantitative data where
40
+ available; (2) **Target User / Persona** — who is affected, referencing named
41
+ personas (≥1 primary, ≥1 secondary) with role, context, and goals;
42
+ (3) **Success Metrics** — 2–4 measurable outcomes, each with current baseline,
43
+ target value, and measurement method; (4) **Scope In / Out** — explicit
44
+ inclusions and exclusions (out-of-scope may reference future PRDs);
45
+ (5) **Constraints** — technical, regulatory, time, budget, or dependency bounds.
46
+
47
+ ### REQ-002 — PRD to User Story Bridge
48
+
49
+ Each PRD requirement MUST be broken into one or more user stories following the
50
+ INVEST criteria from `requirement-engineering`. Every story derived from a PRD
51
+ MUST be traceable to at least one PRD success metric; stories that cannot be
52
+ linked MUST be flagged for PM review before entering the backlog. The
53
+ traceability link (PRD section ID → user-story ID → success metric) MUST be
54
+ maintained in the backlog tool or as a matrix in the PRD.
55
+
56
+ ### REQ-003 — Revision Policy
57
+
58
+ PRD changes requested after the development kickoff meeting MUST follow a formal
59
+ process: (1) the proposed change is documented with rationale and impact
60
+ assessment; (2) stakeholder sign-off is obtained from PM, Tech Lead, and Design
61
+ Lead; (3) scope impact is assessed — added scope must move a corresponding item
62
+ out of scope or adjust the timeline; (4) version history is updated with date,
63
+ author, change summary, and approver. PRDs modified after kickoff without version
64
+ history are non-compliant. Minor editorial changes (typos, formatting) are exempt
65
+ from sign-off.
66
+
67
+ ## Anti-Patterns
68
+
69
+ - PRD without measurable success metrics (qualitative goals only, e.g. "improve UX").
70
+ - Scope creep without a change log: adding requirements mid-sprint without documented approval.
71
+ - Solution-first PRD: implementation details before the user problem is established.
72
+ - No explicit out-of-scope section, causing boundary disputes during development.
73
+ - Success metrics defined after development starts, making them unverifiable.
74
+
75
+ ## Integration with Existing Standards
76
+
77
+ - **`requirement-engineering`** — PRD requirements decompose into INVEST user stories.
78
+ - **`product-metrics-standards`** — PRD success metrics draw from the metric hierarchy.
79
+ - **`user-story-mapping`** — PRD scope is realized as a story map and MVP slice.
80
+ - **`acceptance-criteria-traceability`** — stories carry AC traceable back to PRD metrics.
81
+
82
+ ## Related Specs
83
+
84
+ - XSPEC-069 — UDS product-layer pack (this standard's source)
85
+ - XSPEC-070 — Governance meta-standards (`standard-admission-criteria` edge review)
86
+
87
+ ## Changelog
88
+
89
+ | Version | Date | Changes |
90
+ |---------|------|---------|
91
+ | v1.0.0 | 2026-06-17 | Initial — REQ-001~003: five sections, PRD→story bridge, revision policy (XSPEC-069) |