universal-dev-standards 5.17.0 → 6.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (539) hide show
  1. package/bin/uds.js +13 -135
  2. package/bundled/ai/standards/acceptance-criteria-traceability.ai.yaml +13 -4
  3. package/bundled/ai/standards/accessibility-standards.ai.yaml +1 -1
  4. package/bundled/ai/standards/ai-response-navigation.ai.yaml +15 -2
  5. package/bundled/ai/standards/api-design-standards.ai.yaml +27 -4
  6. package/bundled/ai/standards/behavior-snapshot.ai.yaml +86 -9
  7. package/bundled/ai/standards/checkin-standards.ai.yaml +2 -2
  8. package/bundled/ai/standards/code-review.ai.yaml +2 -2
  9. package/bundled/ai/standards/context-aware-loading.ai.yaml +3 -3
  10. package/bundled/ai/standards/data-migration-testing.ai.yaml +79 -3
  11. package/bundled/ai/standards/deprecation-standards.ai.yaml +10 -2
  12. package/bundled/ai/standards/developer-memory.ai.yaml +4 -3
  13. package/bundled/ai/standards/flow-based-testing.ai.yaml +2 -2
  14. package/bundled/ai/standards/forward-derivation-standards.ai.yaml +26 -2
  15. package/bundled/ai/standards/full-coverage-testing.ai.yaml +34 -2
  16. package/bundled/ai/standards/git-worktree.ai.yaml +3 -3
  17. package/bundled/ai/standards/logging.ai.yaml +97 -3
  18. package/bundled/ai/standards/mock-boundary.ai.yaml +48 -2
  19. package/bundled/ai/standards/model-provenance.ai.yaml +297 -0
  20. package/bundled/ai/standards/model-selection.ai.yaml +11 -2
  21. package/bundled/ai/standards/observability-standards.ai.yaml +10 -0
  22. package/bundled/ai/standards/performance-standards.ai.yaml +46 -1
  23. package/bundled/ai/standards/pii-classification.ai.yaml +15 -1
  24. package/bundled/ai/standards/pipeline-security-gates.ai.yaml +10 -0
  25. package/bundled/ai/standards/privacy-standards.ai.yaml +2 -2
  26. package/bundled/ai/standards/project-context-memory.ai.yaml +2 -2
  27. package/bundled/ai/standards/refactoring-standards.ai.yaml +68 -3
  28. package/bundled/ai/standards/resource-cost-boundary.ai.yaml +279 -0
  29. package/bundled/ai/standards/reverse-engineering-standards.ai.yaml +55 -2
  30. package/bundled/ai/standards/security-testing.ai.yaml +13 -2
  31. package/bundled/ai/standards/skill-standard-alignment-check.ai.yaml +37 -2
  32. package/bundled/ai/standards/user-journey-testing.ai.yaml +107 -0
  33. package/bundled/ai/standards/verification-oracle.ai.yaml +278 -0
  34. package/bundled/ai/standards/versioning.ai.yaml +32 -38
  35. package/bundled/core/acceptance-criteria-traceability.md +15 -5
  36. package/bundled/core/accessibility-standards.md +8 -4
  37. package/bundled/core/ai-friendly-architecture.md +1 -1
  38. package/bundled/core/ai-response-navigation.md +31 -3
  39. package/bundled/core/anti-sycophancy-prompting.md +1 -1
  40. package/bundled/core/api-design-standards.md +92 -7
  41. package/bundled/core/audit-trail.md +119 -0
  42. package/bundled/core/behavior-snapshot.md +94 -7
  43. package/bundled/core/browser-compatibility-standards.md +15 -2
  44. package/bundled/core/checkin-standards.md +9 -2
  45. package/bundled/core/code-review-checklist.md +10 -2
  46. package/bundled/core/container-image-standards.md +97 -0
  47. package/bundled/core/context-aware-loading.md +2 -2
  48. package/bundled/core/cost-budget-test.md +1 -1
  49. package/bundled/core/cross-flow-regression.md +3 -2
  50. package/bundled/core/data-contract.md +104 -0
  51. package/bundled/core/data-migration-testing.md +90 -0
  52. package/bundled/core/data-pipeline.md +113 -0
  53. package/bundled/core/deprecation-standards.md +16 -2
  54. package/bundled/core/developer-memory.md +13 -8
  55. package/bundled/core/documentation-writing-standards.md +1 -1
  56. package/bundled/core/error-code-standards.md +4 -3
  57. package/bundled/core/flaky-test-management.md +1 -1
  58. package/bundled/core/flow-based-testing.md +3 -3
  59. package/bundled/core/forward-derivation-standards.md +33 -5
  60. package/bundled/core/full-coverage-testing.md +72 -0
  61. package/bundled/core/git-worktree.md +4 -4
  62. package/bundled/core/guides/performance-guide.md +1 -1
  63. package/bundled/core/guides/security-guide.md +1 -1
  64. package/bundled/core/health-check-standards.md +2 -2
  65. package/bundled/core/iac-design-principles.md +97 -0
  66. package/bundled/core/incident-response.md +119 -0
  67. package/bundled/core/license-compliance.md +2 -0
  68. package/bundled/core/logging-standards.md +78 -2
  69. package/bundled/core/mock-boundary.md +54 -2
  70. package/bundled/core/model-provenance.md +181 -0
  71. package/bundled/core/model-selection.md +27 -2
  72. package/bundled/core/packaging-standards.md +1 -0
  73. package/bundled/core/performance-standards.md +96 -2
  74. package/bundled/core/pii-classification.md +148 -0
  75. package/bundled/core/pipeline-security-gates.md +22 -2
  76. package/bundled/core/postmortem-standards.md +2 -0
  77. package/bundled/core/prd-standards.md +91 -0
  78. package/bundled/core/privacy-standards.md +14 -3
  79. package/bundled/core/product-metrics-standards.md +100 -0
  80. package/bundled/core/project-context-memory.md +8 -2
  81. package/bundled/core/prompt-regression.md +1 -1
  82. package/bundled/core/refactoring-standards.md +44 -3
  83. package/bundled/core/replay-test.md +1 -1
  84. package/bundled/core/resource-cost-boundary.md +180 -0
  85. package/bundled/core/reverse-engineering-standards.md +66 -2
  86. package/bundled/core/runbook.md +113 -0
  87. package/bundled/core/schema-evolution.md +105 -0
  88. package/bundled/core/secret-management-standards.md +110 -0
  89. package/bundled/core/security-testing.md +26 -2
  90. package/bundled/core/self-review-protocol.md +2 -2
  91. package/bundled/core/skill-standard-alignment-check.md +53 -0
  92. package/bundled/core/slo-sli.md +109 -0
  93. package/bundled/core/smoke-test.md +1 -1
  94. package/bundled/core/tech-debt-standards.md +1 -1
  95. package/bundled/core/test-data-standards.md +2 -2
  96. package/bundled/core/user-journey-testing.md +102 -0
  97. package/bundled/core/user-story-mapping.md +96 -0
  98. package/bundled/core/verification-oracle.md +167 -0
  99. package/bundled/core/versioning.md +133 -109
  100. package/bundled/locales/COVERAGE.md +84 -73
  101. package/bundled/locales/zh-CN/CHANGELOG.md +71 -6
  102. package/bundled/locales/zh-CN/CLAUDE.md +1 -1
  103. package/bundled/locales/zh-CN/README.md +22 -9
  104. package/bundled/locales/zh-CN/SECURITY.md +1 -1
  105. package/bundled/locales/zh-CN/adoption/DAILY-WORKFLOW-GUIDE.md +2 -2
  106. package/bundled/locales/zh-CN/core/acceptance-criteria-traceability.md +4 -6
  107. package/bundled/locales/zh-CN/core/accessibility-standards.md +1 -1
  108. package/bundled/locales/zh-CN/core/adversarial-test.md +226 -0
  109. package/bundled/locales/zh-CN/core/agent-behavior-discipline.md +187 -0
  110. package/bundled/locales/zh-CN/core/ai-response-navigation.md +32 -6
  111. package/bundled/locales/zh-CN/core/anti-sycophancy-prompting.md +1 -1
  112. package/bundled/locales/zh-CN/core/api-design-standards.md +1 -1
  113. package/bundled/locales/zh-CN/core/behavior-snapshot.md +335 -0
  114. package/bundled/locales/zh-CN/core/browser-compatibility-standards.md +229 -0
  115. package/bundled/locales/zh-CN/core/cd-deployment-strategies.md +135 -0
  116. package/bundled/locales/zh-CN/core/chaos-injection-tests.md +130 -0
  117. package/bundled/locales/zh-CN/core/checkin-standards.md +1 -1
  118. package/bundled/locales/zh-CN/core/code-review-checklist.md +1 -1
  119. package/bundled/locales/zh-CN/core/container-security.md +535 -0
  120. package/bundled/locales/zh-CN/core/context-aware-loading.md +1 -1
  121. package/bundled/locales/zh-CN/core/contract-testing-standards.md +191 -0
  122. package/bundled/locales/zh-CN/core/cost-budget-test.md +86 -0
  123. package/bundled/locales/zh-CN/core/cross-flow-regression.md +199 -0
  124. package/bundled/locales/zh-CN/core/data-migration-testing.md +217 -0
  125. package/bundled/locales/zh-CN/core/deployment-standards.md +328 -9
  126. package/bundled/locales/zh-CN/core/deprecation-standards.md +1 -1
  127. package/bundled/locales/zh-CN/core/developer-memory.md +2 -2
  128. package/bundled/locales/zh-CN/core/disaster-recovery-drill.md +87 -0
  129. package/bundled/locales/zh-CN/core/documentation-structure.md +1 -1
  130. package/bundled/locales/zh-CN/core/documentation-writing-standards.md +1 -1
  131. package/bundled/locales/zh-CN/core/error-code-standards.md +2 -2
  132. package/bundled/locales/zh-CN/core/feature-manifest-standard.md +222 -0
  133. package/bundled/locales/zh-CN/core/flaky-test-management.md +87 -0
  134. package/bundled/locales/zh-CN/core/flow-based-testing.md +284 -0
  135. package/bundled/locales/zh-CN/core/forward-derivation-standards.md +3 -4
  136. package/bundled/locales/zh-CN/core/full-coverage-testing.md +197 -0
  137. package/bundled/locales/zh-CN/core/git-worktree.md +1 -1
  138. package/bundled/locales/zh-CN/core/governance-layer.md +160 -0
  139. package/bundled/locales/zh-CN/core/guides/performance-guide.md +515 -0
  140. package/bundled/locales/zh-CN/core/guides/security-guide.md +494 -0
  141. package/bundled/locales/zh-CN/core/knowledge-graph-memory.md +128 -0
  142. package/bundled/locales/zh-CN/core/license-compliance.md +129 -0
  143. package/bundled/locales/zh-CN/core/llm-output-validation.md +192 -0
  144. package/bundled/locales/zh-CN/core/logging-standards.md +130 -8
  145. package/bundled/locales/zh-CN/core/mock-boundary.md +109 -0
  146. package/bundled/locales/zh-CN/core/model-selection.md +28 -5
  147. package/bundled/locales/zh-CN/core/mutation-testing.md +106 -0
  148. package/bundled/locales/zh-CN/core/no-cicd-deployment.md +219 -0
  149. package/bundled/locales/zh-CN/core/packaging-standards.md +76 -5
  150. package/bundled/locales/zh-CN/core/pipeline-security-gates.md +126 -0
  151. package/bundled/locales/zh-CN/core/policy-as-code-testing.md +203 -0
  152. package/bundled/locales/zh-CN/core/privacy-standards.md +1 -1
  153. package/bundled/locales/zh-CN/core/project-context-memory.md +1 -1
  154. package/bundled/locales/zh-CN/core/prompt-regression.md +88 -0
  155. package/bundled/locales/zh-CN/core/property-based-testing.md +87 -0
  156. package/bundled/locales/zh-CN/core/release-quality-manifest.md +207 -0
  157. package/bundled/locales/zh-CN/core/release-readiness-gate.md +193 -0
  158. package/bundled/locales/zh-CN/core/replay-test.md +102 -0
  159. package/bundled/locales/zh-CN/core/reverse-engineering-standards.md +46 -1
  160. package/bundled/locales/zh-CN/core/rollback-standards.md +120 -0
  161. package/bundled/locales/zh-CN/core/sast-advanced.md +309 -0
  162. package/bundled/locales/zh-CN/core/secure-op.md +328 -0
  163. package/bundled/locales/zh-CN/core/security-testing.md +96 -0
  164. package/bundled/locales/zh-CN/core/self-review-protocol.md +167 -0
  165. package/bundled/locales/zh-CN/core/server-ops-security.md +507 -0
  166. package/bundled/locales/zh-CN/core/smoke-test.md +79 -0
  167. package/bundled/locales/zh-CN/core/spec-driven-development.md +39 -3
  168. package/bundled/locales/zh-CN/core/supply-chain-attestation.md +131 -0
  169. package/bundled/locales/zh-CN/core/versioning.md +1 -1
  170. package/bundled/locales/zh-CN/docs/CHEATSHEET.md +31 -6
  171. package/bundled/locales/zh-CN/docs/FEATURE-REFERENCE.md +61 -34
  172. package/bundled/locales/zh-CN/docs/MIGRATION-v6.md +88 -0
  173. package/bundled/locales/zh-CN/docs/USAGE-MODES-COMPARISON.md +2 -2
  174. package/bundled/locales/zh-CN/docs/USER-MANUAL.md +14 -14
  175. package/bundled/locales/zh-CN/docs/specs/system/memory-adoption-strategy.md +105 -0
  176. package/bundled/locales/zh-CN/docs/user/FAQ.md +132 -0
  177. package/bundled/locales/zh-CN/docs/user/GETTING-STARTED.md +144 -0
  178. package/bundled/locales/zh-CN/docs/user/GLOSSARY.md +178 -0
  179. package/bundled/locales/zh-CN/docs/user/README.md +70 -0
  180. package/bundled/locales/zh-CN/docs/user/TROUBLESHOOTING.md +190 -0
  181. package/bundled/locales/zh-CN/integrations/github-copilot/COPILOT-CHAT-REFERENCE.md +1 -1
  182. package/bundled/locales/zh-CN/integrations/github-copilot/README.md +1 -1
  183. package/bundled/locales/zh-CN/integrations/github-copilot/skills-mapping.md +3 -3
  184. package/bundled/locales/zh-CN/integrations/opencode/skills-mapping.md +3 -3
  185. package/bundled/locales/zh-CN/methodologies/guides/sdd-guide.md +836 -0
  186. package/bundled/locales/zh-CN/options/changelog/auto-generated.md +166 -0
  187. package/bundled/locales/zh-CN/options/changelog/keep-a-changelog.md +140 -0
  188. package/bundled/locales/zh-CN/options/code-review/automated-review.md +214 -0
  189. package/bundled/locales/zh-CN/options/code-review/pair-programming.md +166 -0
  190. package/bundled/locales/zh-CN/options/code-review/pr-review.md +167 -0
  191. package/bundled/locales/zh-CN/options/documentation/api-docs.md +191 -0
  192. package/bundled/locales/zh-CN/options/documentation/markdown-docs.md +150 -0
  193. package/bundled/locales/zh-CN/options/documentation/wiki-style.md +131 -0
  194. package/bundled/locales/zh-CN/options/project-structure/kotlin.md +144 -0
  195. package/bundled/locales/zh-CN/options/project-structure/php.md +168 -0
  196. package/bundled/locales/zh-CN/options/project-structure/ruby.md +156 -0
  197. package/bundled/locales/zh-CN/options/project-structure/rust.md +136 -0
  198. package/bundled/locales/zh-CN/options/project-structure/swift.md +165 -0
  199. package/bundled/locales/zh-CN/options/testing/contract-testing.md +237 -0
  200. package/bundled/locales/zh-CN/options/testing/industry-pyramid.md +200 -0
  201. package/bundled/locales/zh-CN/options/testing/istqb-framework.md +144 -0
  202. package/bundled/locales/zh-CN/options/testing/performance-testing.md +251 -0
  203. package/bundled/locales/zh-CN/options/testing/security-testing.md +192 -0
  204. package/bundled/locales/zh-CN/skills/README.md +89 -126
  205. package/bundled/locales/zh-CN/skills/ac-coverage/SKILL.md +5 -7
  206. package/bundled/locales/zh-CN/skills/adr-assistant/SKILL.md +1 -1
  207. package/bundled/locales/zh-CN/skills/agents/code-architect.md +263 -0
  208. package/bundled/locales/zh-CN/skills/agents/doc-writer.md +410 -0
  209. package/bundled/locales/zh-CN/skills/agents/reviewer.md +357 -0
  210. package/bundled/locales/zh-CN/skills/agents/spec-analyst.md +410 -0
  211. package/bundled/locales/zh-CN/skills/agents/test-specialist.md +368 -0
  212. package/bundled/locales/zh-CN/skills/ai-collaboration-standards/SKILL.md +2 -2
  213. package/bundled/locales/zh-CN/skills/ai-friendly-architecture/SKILL.md +2 -2
  214. package/bundled/locales/zh-CN/skills/ai-instruction-standards/SKILL.md +1 -1
  215. package/bundled/locales/zh-CN/skills/atdd-assistant/acceptance-criteria-guide.md +1 -1
  216. package/bundled/locales/zh-CN/skills/atdd-assistant/atdd-workflow.md +3 -4
  217. package/bundled/locales/zh-CN/skills/audit-assistant/SKILL.md +2 -2
  218. package/bundled/locales/zh-CN/skills/bdd-assistant/guide.md +1 -2
  219. package/bundled/locales/zh-CN/skills/brainstorm-assistant/SKILL.md +109 -13
  220. package/bundled/locales/zh-CN/skills/brainstorm-assistant/guide.md +30 -8
  221. package/bundled/locales/zh-CN/skills/checkin-assistant/SKILL.md +1 -1
  222. package/bundled/locales/zh-CN/skills/ci-cd-assistant/SKILL.md +50 -0
  223. package/bundled/locales/zh-CN/skills/code-review-assistant/SKILL.md +5 -5
  224. package/bundled/locales/zh-CN/skills/commands/ac-coverage.md +1 -1
  225. package/bundled/locales/zh-CN/skills/commands/atdd.md +3 -3
  226. package/bundled/locales/zh-CN/skills/commands/bdd.md +2 -2
  227. package/bundled/locales/zh-CN/skills/commands/brainstorm.md +26 -17
  228. package/bundled/locales/zh-CN/skills/commands/{review.md → code-review.md} +4 -4
  229. package/bundled/locales/zh-CN/skills/commands/derive-all.md +1 -1
  230. package/bundled/locales/zh-CN/skills/commands/derive-atdd.md +1 -1
  231. package/bundled/locales/zh-CN/skills/commands/derive-bdd.md +2 -3
  232. package/bundled/locales/zh-CN/skills/commands/derive-tdd.md +1 -1
  233. package/bundled/locales/zh-CN/skills/commands/derive.md +1 -1
  234. package/bundled/locales/zh-CN/skills/commands/dev-workflow.md +2 -2
  235. package/bundled/locales/zh-CN/skills/commands/methodology.md +4 -4
  236. package/bundled/locales/zh-CN/skills/commands/pr.md +1 -1
  237. package/bundled/locales/zh-CN/skills/commands/tdd.md +1 -1
  238. package/bundled/locales/zh-CN/skills/commit-standards/SKILL.md +1 -1
  239. package/bundled/locales/zh-CN/skills/contract-test-assistant/SKILL.md +1 -1
  240. package/bundled/locales/zh-CN/skills/dev-methodology/SKILL.md +1 -1
  241. package/bundled/locales/zh-CN/skills/dev-methodology/create-methodology.md +456 -0
  242. package/bundled/locales/zh-CN/skills/dev-methodology/guide.md +6 -6
  243. package/bundled/locales/zh-CN/skills/dev-methodology/runtime.md +296 -0
  244. package/bundled/locales/zh-CN/skills/dev-workflow-guide/SKILL.md +5 -5
  245. package/bundled/locales/zh-CN/skills/docs-generator/SKILL.md +1 -1
  246. package/bundled/locales/zh-CN/skills/e2e-assistant/SKILL.md +1 -1
  247. package/bundled/locales/zh-CN/skills/incident-response-assistant/SKILL.md +2 -2
  248. package/bundled/locales/zh-CN/skills/journey-test-assistant/SKILL.md +1 -1
  249. package/bundled/locales/zh-CN/skills/logging-guide/SKILL.md +146 -142
  250. package/bundled/locales/zh-CN/skills/migration-assistant/SKILL.md +1 -1
  251. package/bundled/locales/zh-CN/skills/observability-assistant/guide.md +1 -1
  252. package/bundled/locales/zh-CN/skills/pr-automation-assistant/SKILL.md +1 -1
  253. package/bundled/locales/zh-CN/skills/project-discovery/guide.md +2 -2
  254. package/bundled/locales/zh-CN/skills/reverse-engineer/SKILL.md +1 -1
  255. package/bundled/locales/zh-CN/skills/runbook-assistant/guide.md +1 -1
  256. package/bundled/locales/zh-CN/skills/security-assistant/SKILL.md +1 -1
  257. package/bundled/locales/zh-CN/skills/skill-builder/SKILL.md +3 -3
  258. package/bundled/locales/zh-CN/skills/slo-assistant/guide.md +1 -1
  259. package/bundled/locales/zh-CN/skills/spec-derivation/SKILL.md +1 -1
  260. package/bundled/locales/zh-CN/skills/spec-derivation/guide.md +8 -9
  261. package/bundled/locales/zh-CN/skills/spec-driven-dev/SKILL.md +2 -2
  262. package/bundled/locales/zh-CN/skills/sweep/SKILL.md +1 -1
  263. package/bundled/locales/zh-CN/skills/tdd-assistant/SKILL.md +1 -1
  264. package/bundled/locales/zh-CN/skills/testing-guide/SKILL.md +2 -2
  265. package/bundled/locales/zh-CN/skills/testing-guide/testing-theory.md +2298 -0
  266. package/bundled/locales/zh-CN/skills/workflows/README.md +451 -0
  267. package/bundled/locales/zh-TW/CHANGELOG.md +71 -6
  268. package/bundled/locales/zh-TW/CLAUDE.md +1 -1
  269. package/bundled/locales/zh-TW/MAINTENANCE.md +25 -2
  270. package/bundled/locales/zh-TW/README.md +22 -9
  271. package/bundled/locales/zh-TW/SECURITY.md +1 -1
  272. package/bundled/locales/zh-TW/adoption/DAILY-WORKFLOW-GUIDE.md +2 -2
  273. package/bundled/locales/zh-TW/ai/standards/versioning.ai.yaml +8 -48
  274. package/bundled/locales/zh-TW/core/acceptance-criteria-traceability.md +4 -6
  275. package/bundled/locales/zh-TW/core/accessibility-standards.md +1 -1
  276. package/bundled/locales/zh-TW/core/adversarial-test.md +226 -0
  277. package/bundled/locales/zh-TW/core/agent-behavior-discipline.md +187 -0
  278. package/bundled/locales/zh-TW/core/ai-response-navigation.md +32 -6
  279. package/bundled/locales/zh-TW/core/anti-sycophancy-prompting.md +1 -1
  280. package/bundled/locales/zh-TW/core/api-design-standards.md +91 -9
  281. package/bundled/locales/zh-TW/core/audit-trail.md +110 -0
  282. package/bundled/locales/zh-TW/core/behavior-snapshot.md +335 -0
  283. package/bundled/locales/zh-TW/core/browser-compatibility-standards.md +1 -0
  284. package/bundled/locales/zh-TW/core/cd-deployment-strategies.md +135 -0
  285. package/bundled/locales/zh-TW/core/chaos-injection-tests.md +130 -0
  286. package/bundled/locales/zh-TW/core/checkin-standards.md +1 -1
  287. package/bundled/locales/zh-TW/core/code-review-checklist.md +1 -1
  288. package/bundled/locales/zh-TW/core/container-image-standards.md +93 -0
  289. package/bundled/locales/zh-TW/core/container-security.md +535 -0
  290. package/bundled/locales/zh-TW/core/cost-budget-test.md +86 -0
  291. package/bundled/locales/zh-TW/core/cross-flow-regression.md +1 -0
  292. package/bundled/locales/zh-TW/core/data-contract.md +101 -0
  293. package/bundled/locales/zh-TW/core/data-migration-testing.md +217 -0
  294. package/bundled/locales/zh-TW/core/data-pipeline.md +105 -0
  295. package/bundled/locales/zh-TW/core/deployment-standards.md +363 -25
  296. package/bundled/locales/zh-TW/core/deprecation-standards.md +17 -4
  297. package/bundled/locales/zh-TW/core/developer-memory.md +2 -2
  298. package/bundled/locales/zh-TW/core/disaster-recovery-drill.md +87 -0
  299. package/bundled/locales/zh-TW/core/documentation-writing-standards.md +1 -1
  300. package/bundled/locales/zh-TW/core/error-code-standards.md +2 -2
  301. package/bundled/locales/zh-TW/core/feature-manifest-standard.md +222 -0
  302. package/bundled/locales/zh-TW/core/flaky-test-management.md +87 -0
  303. package/bundled/locales/zh-TW/core/flow-based-testing.md +284 -0
  304. package/bundled/locales/zh-TW/core/forward-derivation-standards.md +3 -4
  305. package/bundled/locales/zh-TW/core/full-coverage-testing.md +250 -0
  306. package/bundled/locales/zh-TW/core/git-worktree.md +1 -1
  307. package/bundled/locales/zh-TW/core/guides/performance-guide.md +515 -0
  308. package/bundled/locales/zh-TW/core/guides/security-guide.md +494 -0
  309. package/bundled/locales/zh-TW/core/iac-design-principles.md +90 -0
  310. package/bundled/locales/zh-TW/core/incident-response.md +111 -0
  311. package/bundled/locales/zh-TW/core/license-compliance.md +129 -0
  312. package/bundled/locales/zh-TW/core/llm-output-validation.md +192 -0
  313. package/bundled/locales/zh-TW/core/logging-standards.md +208 -4
  314. package/bundled/locales/zh-TW/core/mock-boundary.md +161 -0
  315. package/bundled/locales/zh-TW/core/model-provenance.md +173 -0
  316. package/bundled/locales/zh-TW/core/model-selection.md +28 -5
  317. package/bundled/locales/zh-TW/core/mutation-testing.md +106 -0
  318. package/bundled/locales/zh-TW/core/no-cicd-deployment.md +219 -0
  319. package/bundled/locales/zh-TW/core/packaging-standards.md +76 -5
  320. package/bundled/locales/zh-TW/core/performance-standards.md +84 -5
  321. package/bundled/locales/zh-TW/core/pii-classification.md +102 -0
  322. package/bundled/locales/zh-TW/core/pipeline-security-gates.md +126 -0
  323. package/bundled/locales/zh-TW/core/policy-as-code-testing.md +203 -0
  324. package/bundled/locales/zh-TW/core/prd-standards.md +88 -0
  325. package/bundled/locales/zh-TW/core/privacy-standards.md +1 -1
  326. package/bundled/locales/zh-TW/core/product-metrics-standards.md +96 -0
  327. package/bundled/locales/zh-TW/core/project-context-memory.md +1 -1
  328. package/bundled/locales/zh-TW/core/prompt-regression.md +88 -0
  329. package/bundled/locales/zh-TW/core/property-based-testing.md +87 -0
  330. package/bundled/locales/zh-TW/core/refactoring-standards.md +43 -6
  331. package/bundled/locales/zh-TW/core/release-quality-manifest.md +207 -0
  332. package/bundled/locales/zh-TW/core/replay-test.md +102 -0
  333. package/bundled/locales/zh-TW/core/resource-cost-boundary.md +175 -0
  334. package/bundled/locales/zh-TW/core/reverse-engineering-standards.md +64 -5
  335. package/bundled/locales/zh-TW/core/rollback-standards.md +120 -0
  336. package/bundled/locales/zh-TW/core/runbook.md +110 -0
  337. package/bundled/locales/zh-TW/core/sast-advanced.md +309 -0
  338. package/bundled/locales/zh-TW/core/schema-evolution.md +98 -0
  339. package/bundled/locales/zh-TW/core/secret-management-standards.md +101 -0
  340. package/bundled/locales/zh-TW/core/secure-op.md +328 -0
  341. package/bundled/locales/zh-TW/core/security-testing.md +96 -0
  342. package/bundled/locales/zh-TW/core/self-review-protocol.md +2 -2
  343. package/bundled/locales/zh-TW/core/server-ops-security.md +507 -0
  344. package/bundled/locales/zh-TW/core/slo-sli.md +108 -0
  345. package/bundled/locales/zh-TW/core/smoke-test.md +79 -0
  346. package/bundled/locales/zh-TW/core/spec-driven-development.md +19 -11
  347. package/bundled/locales/zh-TW/core/supply-chain-attestation.md +131 -0
  348. package/bundled/locales/zh-TW/core/user-journey-testing.md +111 -0
  349. package/bundled/locales/zh-TW/core/user-story-mapping.md +94 -0
  350. package/bundled/locales/zh-TW/core/verification-oracle.md +159 -0
  351. package/bundled/locales/zh-TW/core/versioning.md +112 -112
  352. package/bundled/locales/zh-TW/docs/CHEATSHEET.md +31 -6
  353. package/bundled/locales/zh-TW/docs/DEV-WORKFLOW-MAPPING.md +6 -6
  354. package/bundled/locales/zh-TW/docs/FEATURE-REFERENCE.md +61 -34
  355. package/bundled/locales/zh-TW/docs/MIGRATION-v6.md +88 -0
  356. package/bundled/locales/zh-TW/docs/USAGE-MODES-COMPARISON.md +2 -2
  357. package/bundled/locales/zh-TW/docs/USER-MANUAL.md +14 -14
  358. package/bundled/locales/zh-TW/docs/specs/system/memory-adoption-strategy.md +105 -0
  359. package/bundled/locales/zh-TW/docs/user/FAQ.md +132 -0
  360. package/bundled/locales/zh-TW/docs/user/GETTING-STARTED.md +144 -0
  361. package/bundled/locales/zh-TW/docs/user/GLOSSARY.md +178 -0
  362. package/bundled/locales/zh-TW/docs/user/README.md +70 -0
  363. package/bundled/locales/zh-TW/docs/user/TROUBLESHOOTING.md +190 -0
  364. package/bundled/locales/zh-TW/integrations/github-copilot/COPILOT-CHAT-REFERENCE.md +1 -1
  365. package/bundled/locales/zh-TW/integrations/github-copilot/README.md +1 -1
  366. package/bundled/locales/zh-TW/integrations/github-copilot/skills-mapping.md +3 -3
  367. package/bundled/locales/zh-TW/integrations/opencode/skills-mapping.md +3 -3
  368. package/bundled/locales/zh-TW/methodologies/guides/sdd-guide.md +523 -26
  369. package/bundled/locales/zh-TW/options/changelog/auto-generated.md +166 -0
  370. package/bundled/locales/zh-TW/options/changelog/keep-a-changelog.md +140 -0
  371. package/bundled/locales/zh-TW/options/code-review/automated-review.md +214 -0
  372. package/bundled/locales/zh-TW/options/code-review/pair-programming.md +166 -0
  373. package/bundled/locales/zh-TW/options/code-review/pr-review.md +167 -0
  374. package/bundled/locales/zh-TW/options/documentation/api-docs.md +191 -0
  375. package/bundled/locales/zh-TW/options/documentation/markdown-docs.md +150 -0
  376. package/bundled/locales/zh-TW/options/documentation/wiki-style.md +131 -0
  377. package/bundled/locales/zh-TW/options/project-structure/kotlin.md +144 -0
  378. package/bundled/locales/zh-TW/options/project-structure/php.md +168 -0
  379. package/bundled/locales/zh-TW/options/project-structure/ruby.md +156 -0
  380. package/bundled/locales/zh-TW/options/project-structure/rust.md +136 -0
  381. package/bundled/locales/zh-TW/options/project-structure/swift.md +165 -0
  382. package/bundled/locales/zh-TW/options/testing/contract-testing.md +237 -0
  383. package/bundled/locales/zh-TW/options/testing/industry-pyramid.md +200 -0
  384. package/bundled/locales/zh-TW/options/testing/istqb-framework.md +144 -0
  385. package/bundled/locales/zh-TW/options/testing/performance-testing.md +251 -0
  386. package/bundled/locales/zh-TW/options/testing/security-testing.md +192 -0
  387. package/bundled/locales/zh-TW/skills/README.md +91 -128
  388. package/bundled/locales/zh-TW/skills/ac-coverage/SKILL.md +4 -6
  389. package/bundled/locales/zh-TW/skills/adr-assistant/SKILL.md +1 -1
  390. package/bundled/locales/zh-TW/skills/agents/code-architect.md +263 -0
  391. package/bundled/locales/zh-TW/skills/agents/doc-writer.md +410 -0
  392. package/bundled/locales/zh-TW/skills/agents/reviewer.md +357 -0
  393. package/bundled/locales/zh-TW/skills/agents/spec-analyst.md +410 -0
  394. package/bundled/locales/zh-TW/skills/agents/test-specialist.md +368 -0
  395. package/bundled/locales/zh-TW/skills/ai-collaboration-standards/SKILL.md +2 -2
  396. package/bundled/locales/zh-TW/skills/ai-friendly-architecture/SKILL.md +2 -2
  397. package/bundled/locales/zh-TW/skills/ai-instruction-standards/SKILL.md +1 -1
  398. package/bundled/locales/zh-TW/skills/atdd-assistant/SKILL.md +2 -0
  399. package/bundled/locales/zh-TW/skills/atdd-assistant/acceptance-criteria-guide.md +1 -1
  400. package/bundled/locales/zh-TW/skills/atdd-assistant/atdd-workflow.md +3 -4
  401. package/bundled/locales/zh-TW/skills/audit-assistant/SKILL.md +2 -2
  402. package/bundled/locales/zh-TW/skills/bdd-assistant/SKILL.md +2 -0
  403. package/bundled/locales/zh-TW/skills/bdd-assistant/guide.md +1 -2
  404. package/bundled/locales/zh-TW/skills/brainstorm-assistant/SKILL.md +110 -14
  405. package/bundled/locales/zh-TW/skills/brainstorm-assistant/guide.md +31 -7
  406. package/bundled/locales/zh-TW/skills/checkin-assistant/SKILL.md +3 -1
  407. package/bundled/locales/zh-TW/skills/ci-cd-assistant/SKILL.md +50 -0
  408. package/bundled/locales/zh-TW/skills/code-review-assistant/SKILL.md +7 -5
  409. package/bundled/locales/zh-TW/skills/commands/ac-coverage.md +1 -1
  410. package/bundled/locales/zh-TW/skills/commands/atdd.md +3 -3
  411. package/bundled/locales/zh-TW/skills/commands/bdd.md +2 -2
  412. package/bundled/locales/zh-TW/skills/commands/brainstorm.md +26 -17
  413. package/bundled/locales/zh-TW/skills/commands/{review.md → code-review.md} +5 -5
  414. package/bundled/locales/zh-TW/skills/commands/derive-all.md +1 -1
  415. package/bundled/locales/zh-TW/skills/commands/derive-atdd.md +1 -1
  416. package/bundled/locales/zh-TW/skills/commands/derive-bdd.md +2 -3
  417. package/bundled/locales/zh-TW/skills/commands/derive-tdd.md +1 -1
  418. package/bundled/locales/zh-TW/skills/commands/derive.md +1 -1
  419. package/bundled/locales/zh-TW/skills/commands/dev-workflow.md +2 -2
  420. package/bundled/locales/zh-TW/skills/commands/methodology.md +4 -4
  421. package/bundled/locales/zh-TW/skills/commands/pr.md +1 -1
  422. package/bundled/locales/zh-TW/skills/commands/tdd.md +1 -1
  423. package/bundled/locales/zh-TW/skills/commit-standards/SKILL.md +1 -1
  424. package/bundled/locales/zh-TW/skills/contract-test-assistant/SKILL.md +1 -1
  425. package/bundled/locales/zh-TW/skills/dev-methodology/create-methodology.md +456 -0
  426. package/bundled/locales/zh-TW/skills/dev-methodology/guide.md +5 -5
  427. package/bundled/locales/zh-TW/skills/dev-methodology/runtime.md +296 -0
  428. package/bundled/locales/zh-TW/skills/dev-workflow-guide/SKILL.md +5 -5
  429. package/bundled/locales/zh-TW/skills/docs-generator/SKILL.md +1 -1
  430. package/bundled/locales/zh-TW/skills/e2e-assistant/SKILL.md +1 -1
  431. package/bundled/locales/zh-TW/skills/incident-response-assistant/SKILL.md +2 -2
  432. package/bundled/locales/zh-TW/skills/logging-guide/SKILL.md +29 -27
  433. package/bundled/locales/zh-TW/skills/migration-assistant/SKILL.md +1 -1
  434. package/bundled/locales/zh-TW/skills/pr-automation-assistant/SKILL.md +3 -1
  435. package/bundled/locales/zh-TW/skills/project-discovery/guide.md +2 -2
  436. package/bundled/locales/zh-TW/skills/reverse-engineer/SKILL.md +1 -1
  437. package/bundled/locales/zh-TW/skills/security-assistant/SKILL.md +1 -1
  438. package/bundled/locales/zh-TW/skills/spec-derivation/guide.md +7 -8
  439. package/bundled/locales/zh-TW/skills/spec-driven-dev/SKILL.md +2 -2
  440. package/bundled/locales/zh-TW/skills/sweep/SKILL.md +1 -1
  441. package/bundled/locales/zh-TW/skills/tdd-assistant/SKILL.md +3 -1
  442. package/bundled/locales/zh-TW/skills/testing-guide/SKILL.md +2 -2
  443. package/bundled/locales/zh-TW/skills/testing-guide/testing-theory.md +2298 -0
  444. package/bundled/locales/zh-TW/skills/workflows/README.md +451 -0
  445. package/bundled/skills/README.md +1 -1
  446. package/bundled/skills/ac-coverage/SKILL.md +17 -7
  447. package/bundled/skills/adr-assistant/SKILL.md +1 -1
  448. package/bundled/skills/agents/code-architect.md +1 -1
  449. package/bundled/skills/agents/doc-writer.md +1 -1
  450. package/bundled/skills/agents/reviewer.md +2 -2
  451. package/bundled/skills/agents/spec-analyst.md +1 -1
  452. package/bundled/skills/agents/test-specialist.md +1 -1
  453. package/bundled/skills/ai-collaboration-standards/SKILL.md +2 -2
  454. package/bundled/skills/ai-friendly-architecture/SKILL.md +2 -2
  455. package/bundled/skills/ai-instruction-standards/SKILL.md +1 -1
  456. package/bundled/skills/atdd-assistant/SKILL.md +7 -0
  457. package/bundled/skills/atdd-assistant/acceptance-criteria-guide.md +1 -1
  458. package/bundled/skills/atdd-assistant/atdd-workflow.md +6 -8
  459. package/bundled/skills/audit-assistant/SKILL.md +2 -2
  460. package/bundled/skills/bdd-assistant/SKILL.md +7 -0
  461. package/bundled/skills/bdd-assistant/guide.md +1 -2
  462. package/bundled/skills/brainstorm-assistant/SKILL.md +133 -11
  463. package/bundled/skills/brainstorm-assistant/guide.md +33 -5
  464. package/bundled/skills/checkin-assistant/SKILL.md +8 -1
  465. package/bundled/skills/ci-cd-assistant/SKILL.md +57 -0
  466. package/bundled/skills/code-review-assistant/SKILL.md +15 -8
  467. package/bundled/skills/commands/COMMAND-FAMILY-OVERVIEW.md +2 -2
  468. package/bundled/skills/commands/COMMAND-INDEX.json +3 -3
  469. package/bundled/skills/commands/README.md +2 -2
  470. package/bundled/skills/commands/ac-coverage.md +1 -1
  471. package/bundled/skills/commands/atdd.md +2 -2
  472. package/bundled/skills/commands/bdd.md +2 -2
  473. package/bundled/skills/commands/brainstorm.md +25 -14
  474. package/bundled/skills/commands/{review.md → code-review.md} +6 -6
  475. package/bundled/skills/commands/derive-all.md +1 -1
  476. package/bundled/skills/commands/derive-atdd.md +1 -1
  477. package/bundled/skills/commands/derive-bdd.md +2 -3
  478. package/bundled/skills/commands/derive-tdd.md +1 -1
  479. package/bundled/skills/commands/derive.md +1 -1
  480. package/bundled/skills/commands/dev-workflow.md +1 -1
  481. package/bundled/skills/commands/journey-test.md +45 -0
  482. package/bundled/skills/commands/methodology.md +4 -4
  483. package/bundled/skills/commands/pr.md +1 -1
  484. package/bundled/skills/commands/skill-builder.md +42 -0
  485. package/bundled/skills/commands/tdd.md +1 -1
  486. package/bundled/skills/dev-methodology/create-methodology.md +1 -1
  487. package/bundled/skills/dev-methodology/guide.md +1 -1
  488. package/bundled/skills/dev-methodology/runtime.md +1 -1
  489. package/bundled/skills/dev-workflow-guide/SKILL.md +3 -3
  490. package/bundled/skills/dev-workflow-guide/workflow-phases.md +3 -3
  491. package/bundled/skills/docs-generator/SKILL.md +3 -3
  492. package/bundled/skills/incident-response-assistant/SKILL.md +2 -2
  493. package/bundled/skills/logging-guide/SKILL.md +38 -2
  494. package/bundled/skills/migration-assistant/SKILL.md +226 -0
  495. package/bundled/skills/observability-assistant/SKILL.md +74 -0
  496. package/bundled/skills/pr-automation-assistant/SKILL.md +5 -1
  497. package/bundled/skills/project-discovery/guide.md +2 -2
  498. package/bundled/skills/push/SKILL.md +1 -1
  499. package/bundled/skills/release-standards/SKILL.md +19 -5
  500. package/bundled/skills/security-assistant/SKILL.md +1 -1
  501. package/bundled/skills/skill-builder/SKILL.md +1 -1
  502. package/bundled/skills/spec-derivation/guide.md +3 -4
  503. package/bundled/skills/spec-driven-dev/SKILL.md +2 -2
  504. package/bundled/skills/sweep/SKILL.md +1 -1
  505. package/bundled/skills/tdd-assistant/SKILL.md +8 -1
  506. package/bundled/skills/testing-guide/SKILL.md +1 -1
  507. package/bundled/skills/testing-guide/testing-theory.md +1 -1
  508. package/bundled/skills/workflows/README.md +2 -2
  509. package/package.json +3 -3
  510. package/src/commands/audit.js +30 -9
  511. package/src/commands/config.js +33 -2
  512. package/src/commands/hitl.js +14 -1
  513. package/src/commands/init.js +110 -58
  514. package/src/commands/quickstart.js +1 -2
  515. package/src/commands/release.js +51 -6
  516. package/src/commands/run-intent.js +9 -0
  517. package/src/commands/spec-split.js +27 -2
  518. package/src/commands/update.js +22 -6
  519. package/src/config/ai-agent-paths.js +3 -1
  520. package/src/i18n/messages.js +3 -102
  521. package/src/missions/MissionManager.js +44 -12
  522. package/src/utils/build-manifest.js +35 -3
  523. package/src/utils/friction-detector.js +71 -22
  524. package/src/utils/health-checker.js +29 -2
  525. package/src/utils/transaction.js +111 -0
  526. package/src/utils/version-promote.js +16 -0
  527. package/standards-registry.json +58 -146
  528. package/bundled/ai/standards/agent-communication-protocol.ai.yaml +0 -42
  529. package/bundled/ai/standards/agent-dispatch.ai.yaml +0 -42
  530. package/bundled/ai/standards/branch-completion.ai.yaml +0 -44
  531. package/bundled/ai/standards/change-batching-standards.ai.yaml +0 -44
  532. package/bundled/ai/standards/execution-history.ai.yaml +0 -42
  533. package/bundled/ai/standards/pipeline-integration-standards.ai.yaml +0 -42
  534. package/bundled/ai/standards/workflow-enforcement.ai.yaml +0 -44
  535. package/bundled/ai/standards/workflow-state-protocol.ai.yaml +0 -43
  536. package/src/commands/flow.js +0 -260
  537. package/src/commands/start.js +0 -372
  538. package/src/commands/sweep.js +0 -151
  539. package/src/commands/workflow.js +0 -681
@@ -0,0 +1,507 @@
1
+ ---
2
+ source: ../../../core/server-ops-security.md
3
+ source_version: 1.0.0
4
+ translation_version: 1.0.0
5
+ last_synced: 2026-06-10
6
+ source_hash: 5d929d539853
7
+ status: current
8
+ ---
9
+
10
+ # 伺服器操作安全標準
11
+
12
+ > **語言**:[English](../../../core/server-ops-security.md) | 繁體中文
13
+
14
+ > **標準 ID**: server-ops-security
15
+ > **版本**: 1.0.0
16
+ > **更新日期**: 2026-05-04
17
+ > **AI 優化格式**: `ai/standards/server-ops-security.ai.yaml`
18
+
19
+ ---
20
+
21
+ ## 1. 概述
22
+
23
+ ### 為什麼 AI 自主運維需要伺服器操作安全?
24
+
25
+ AI 自主運維系統(如 AI Agent / pipeline runtime)在生產環境中以自動化方式執行高權限操作——部署服務、管理容器、調用外部 API、存取資料庫。這些能力若缺乏適當的基礎設施安全防護,將帶來遠超傳統 Web 應用的風險:
26
+
27
+ - **攻擊面擴大**:AI Agent 持續運行,攻擊者只需一個進入點即可橫向移動
28
+ - **自動化即武器**:被入侵的 AI Agent 可自動執行大規模破壞(刪除資料、外洩機密)
29
+ - **責任追溯困難**:若 AI Agent 以 root 身份運行,事後難以區分系統行為與攻擊者行為
30
+
31
+ 本標準涵蓋六大安全域,與 `secure-op.ai.yaml`(AI Agent 決策安全)形成互補:
32
+ - `secure-op` 管控「AI Agent 決策層的安全性」
33
+ - `server-ops-security` 管控「AI Agent 所在基礎設施的安全性」
34
+
35
+ ---
36
+
37
+ ## 2. 六大安全域
38
+
39
+ ### 2.1 SSH 強化(SSH Hardening)
40
+
41
+ **核心原則**:SSH 服務只允許金鑰認證,禁止密碼登入與 root 直接登入。
42
+
43
+ #### 必要的 `/etc/ssh/sshd_config` 設定
44
+
45
+ ```
46
+ PasswordAuthentication no
47
+ PermitRootLogin no
48
+ PubkeyAuthentication yes
49
+ Port 2222 # 改為非預設 Port
50
+ MaxAuthTries 3
51
+ LoginGraceTime 30
52
+ AllowUsers deploy ai-agent # 明確白名單
53
+ ClientAliveInterval 300
54
+ ClientAliveCountMax 2
55
+ ```
56
+
57
+ 套用後重載:
58
+ ```bash
59
+ sudo systemctl reload sshd
60
+ # 驗證設定生效
61
+ sshd -T | grep -E "passwordauthentication|permitrootlogin|port"
62
+ ```
63
+
64
+ #### fail2ban 安裝與設定
65
+
66
+ ```bash
67
+ sudo apt install fail2ban
68
+ ```
69
+
70
+ `/etc/fail2ban/jail.local`:
71
+ ```ini
72
+ [sshd]
73
+ enabled = true
74
+ maxretry = 5
75
+ findtime = 600
76
+ bantime = 3600 # 1 小時,建議生產環境設為 86400(24 小時)
77
+ ```
78
+
79
+ #### 金鑰管理規範
80
+
81
+ | 項目 | 規範 |
82
+ |------|------|
83
+ | 演算法 | Ed25519(禁用 RSA-1024) |
84
+ | 私鑰保護 | 必須設定 passphrase |
85
+ | 輪替週期 | 每年或懷疑洩漏時立即輪替 |
86
+ | 授權金鑰 | `~/.ssh/authorized_keys` 定期審計,刪除離職人員 |
87
+
88
+ **常見陷阱**:
89
+ - 修改 sshd_config 後忘記 reload,設定不生效
90
+ - 將 `AllowUsers` 留空(等同不限制)
91
+ - 用 RSA-2048 金鑰但未停用 RSA-1024 的相容性
92
+
93
+ **ISO 對映**:ISO/IEC 27001:2022 A.8.5(安全認證)、A.8.20(網路安全)
94
+
95
+ ---
96
+
97
+ ### 2.2 主機強化(Host Hardening)
98
+
99
+ **核心原則**:最小化安裝,僅保留必要服務,遵循 CIS Benchmark Level 1。
100
+
101
+ #### 停用不必要的服務
102
+
103
+ ```bash
104
+ # 停用常見不必要服務
105
+ sudo systemctl disable --now avahi-daemon cups bluetooth
106
+ # 確認已停用
107
+ systemctl list-unit-files --state=enabled | grep -E "avahi|cups|bluetooth"
108
+ ```
109
+
110
+ #### 啟用防火牆(UFW)
111
+
112
+ ```bash
113
+ sudo ufw default deny incoming
114
+ sudo ufw default allow outgoing
115
+ sudo ufw allow 2222/tcp # SSH(非預設 Port)
116
+ sudo ufw allow 443/tcp # HTTPS
117
+ sudo ufw enable
118
+ sudo ufw status verbose
119
+ ```
120
+
121
+ #### 啟用 auditd(系統呼叫審計)
122
+
123
+ ```bash
124
+ sudo apt install auditd
125
+ sudo systemctl enable --now auditd
126
+
127
+ # 加入關鍵審計規則 /etc/audit/rules.d/hardening.rules
128
+ -w /etc/passwd -p wa -k identity
129
+ -w /etc/sudoers -p wa -k sudo_changes
130
+ -w /etc/ssh/sshd_config -p wa -k sshd_config
131
+ -a always,exit -F arch=b64 -S execve -k exec_commands
132
+ ```
133
+
134
+ #### sysctl 強化參數
135
+
136
+ `/etc/sysctl.d/99-hardening.conf`:
137
+ ```
138
+ kernel.dmesg_restrict = 1
139
+ kernel.randomize_va_space = 2
140
+ net.ipv4.ip_forward = 0
141
+ net.ipv4.conf.all.accept_redirects = 0
142
+ net.ipv4.conf.all.send_redirects = 0
143
+ net.ipv4.tcp_syncookies = 1
144
+ fs.suid_dumpable = 0
145
+ ```
146
+
147
+ 套用:`sudo sysctl -p /etc/sysctl.d/99-hardening.conf`
148
+
149
+ #### Lynis 合規評分
150
+
151
+ ```bash
152
+ sudo apt install lynis
153
+ sudo lynis audit system
154
+ # 目標:Hardening index >= 75
155
+ ```
156
+
157
+ **常見陷阱**:
158
+ - 安裝 Docker 時自動修改 iptables 規則,繞過 UFW
159
+ - auditd 未設定 `-f 2`(發生審計失敗時停機),在高安全環境應啟用
160
+
161
+ **ISO 對映**:ISO/IEC 27001:2022 A.8.9(組態管理)、NIST SP 800-123
162
+
163
+ ---
164
+
165
+ ### 2.3 特權管理(Privilege Management)
166
+
167
+ **核心原則**:最小特權原則,服務帳號不具 shell 或 sudo 全權。
168
+
169
+ #### AI Agent 服務帳號建立
170
+
171
+ ```bash
172
+ # 建立無 shell 的服務帳號
173
+ sudo useradd -r -s /sbin/nologin -d /opt/ai-agent ai-agent
174
+ sudo mkdir -p /opt/ai-agent
175
+ sudo chown ai-agent:ai-agent /opt/ai-agent
176
+ sudo chmod 750 /opt/ai-agent
177
+
178
+ # 驗證:不可切換到此帳號
179
+ sudo -u ai-agent /bin/bash # 應拒絕
180
+ ```
181
+
182
+ #### sudo 設定(最小授權)
183
+
184
+ `/etc/sudoers.d/ai-agent`:
185
+ ```
186
+ # 允許 ai-agent 重啟特定服務(明確命令)
187
+ ai-agent ALL=(ALL) NOPASSWD: /bin/systemctl restart ai-agent-agent
188
+ # 禁止 NOPASSWD ALL 寫法
189
+ ```
190
+
191
+ 驗證 sudo 設定:`sudo visudo -c`
192
+
193
+ #### PAM 帳號鎖定(pam_faillock)
194
+
195
+ `/etc/security/faillock.conf`:
196
+ ```
197
+ deny = 5
198
+ fail_interval = 300
199
+ unlock_time = 900 # 15 分鐘鎖定
200
+ ```
201
+
202
+ `/etc/pam.d/common-auth` 加入:
203
+ ```
204
+ auth required pam_faillock.so preauth
205
+ auth [default=die] pam_faillock.so authfail
206
+ auth sufficient pam_faillock.so authsucc
207
+ ```
208
+
209
+ #### 季度特權帳號審計
210
+
211
+ ```bash
212
+ # 列出所有有 sudo 權限的帳號
213
+ grep -r "ALL=" /etc/sudoers /etc/sudoers.d/
214
+ # 列出最近 30 天有 sudo 紀錄的使用者
215
+ last | grep -v reboot | awk '{print $1}' | sort -u
216
+ ```
217
+
218
+ **常見陷阱**:
219
+ - `/etc/sudoers.d/` 下檔案不必要地設定 `NOPASSWD ALL`
220
+ - 服務帳號被開發者臨時加入 sudo 後忘記移除
221
+
222
+ **ISO 對映**:ISO/IEC 27001:2022 A.8.2(特權存取權利)、A.8.18
223
+
224
+ ---
225
+
226
+ ### 2.4 堡壘機模式(Bastion Pattern)
227
+
228
+ **核心原則**:生產環境只能透過 Bastion Host 存取,禁止直接 SSH 到 prod 節點。
229
+
230
+ #### 架構設計
231
+
232
+ ```
233
+ 管理者
234
+ │ SSH + MFA
235
+
236
+ Bastion Host(獨立 VM,對外唯一 SSH 入口)
237
+ │ SSH(金鑰)
238
+
239
+ Prod 節點(僅接受來自 Bastion 的 SSH)
240
+ ```
241
+
242
+ #### Prod 節點防火牆規則
243
+
244
+ ```bash
245
+ # 僅允許來自 Bastion IP 的 SSH
246
+ BASTION_IP="10.0.1.5"
247
+ sudo iptables -A INPUT -p tcp --dport 22 -s $BASTION_IP -j ACCEPT
248
+ sudo iptables -A INPUT -p tcp --dport 22 -j DROP
249
+ # 持久化
250
+ sudo apt install iptables-persistent
251
+ sudo netfilter-persistent save
252
+ ```
253
+
254
+ #### Bastion 上的 MFA 設定(TOTP)
255
+
256
+ ```bash
257
+ sudo apt install libpam-google-authenticator
258
+ # 每位使用者執行
259
+ google-authenticator -t -d -f -r 3 -R 30 -w 3
260
+ ```
261
+
262
+ `/etc/pam.d/sshd` 加入:
263
+ ```
264
+ auth required pam_google_authenticator.so
265
+ ```
266
+
267
+ `/etc/ssh/sshd_config` 設定:
268
+ ```
269
+ AuthenticationMethods publickey,keyboard-interactive
270
+ ```
271
+
272
+ #### Session 記錄
273
+
274
+ **方案一:script + tmux**
275
+ ```bash
276
+ # 自動記錄所有 session
277
+ cat >> /etc/profile.d/session-recording.sh << 'EOF'
278
+ if [ -n "$SSH_TTY" ]; then
279
+ SESSION_LOG="/var/log/sessions/$(date +%Y%m%d-%H%M%S)-$(whoami).log"
280
+ mkdir -p /var/log/sessions
281
+ script -q -a "$SESSION_LOG"
282
+ fi
283
+ EOF
284
+ ```
285
+
286
+ **方案二:Teleport(企業環境推薦)**
287
+ - 提供完整的 session 錄製、playback 與審計查詢
288
+
289
+ **常見陷阱**:
290
+ - Staging 環境未要求 Bastion,開發者習慣後在 Prod 也直連
291
+ - Bastion 本身未定期更新,成為攻擊跳板
292
+
293
+ **ISO 對映**:ISO/IEC 27001:2022 A.8.3(資訊存取限制)、NIST SP 800-207(零信任架構)
294
+
295
+ ---
296
+
297
+ ### 2.5 Patch 管理(Patch Management)
298
+
299
+ **核心原則**:定期更新系統與套件,CVE 修補有明確 SLA。
300
+
301
+ #### CVE 修補 SLA
302
+
303
+ | 嚴重等級 | SLA | 逾期處理 |
304
+ |---------|-----|---------|
305
+ | Critical | 24 小時內修補或隔離 | 立即下線 / 網路隔離 |
306
+ | High | 72 小時內修補 | 記錄豁免申請(max 7 天) |
307
+ | Medium | 7 天內修補 | Backlog + 追蹤 |
308
+ | Low | 下次維護視窗(≤ 30 天) | 定期維護週期 |
309
+
310
+ #### Ubuntu/Debian 自動安全更新
311
+
312
+ ```bash
313
+ sudo apt install unattended-upgrades
314
+ sudo dpkg-reconfigure --priority=low unattended-upgrades
315
+ ```
316
+
317
+ `/etc/apt/apt.conf.d/50unattended-upgrades`:
318
+ ```
319
+ Unattended-Upgrade::Allowed-Origins {
320
+ "${distro_id}:${distro_codename}-security";
321
+ };
322
+ Unattended-Upgrade::AutoFixInterruptedDpkg "true";
323
+ Unattended-Upgrade::Remove-Unused-Packages "true";
324
+ Unattended-Upgrade::Automatic-Reboot "false"; # 維護視窗手動重啟
325
+ ```
326
+
327
+ #### 容器映像掃描(Trivy)
328
+
329
+ ```bash
330
+ # 每次 build 後執行
331
+ trivy image --severity HIGH,CRITICAL myapp:latest
332
+
333
+ # CI 整合(阻擋 HIGH/CRITICAL)
334
+ trivy image --exit-code 1 --severity HIGH,CRITICAL myapp:latest
335
+ ```
336
+
337
+ #### AI Agent 容器映像更新規範
338
+
339
+ - 使用官方 base image(`ubuntu:22.04-minimal`、`gcr.io/distroless/nodejs`)
340
+ - 每 30 天(最多 90 天)重新 build,即使無程式碼變更
341
+ - Guardian OPA Sidecar 映像遵循相同 SLA
342
+
343
+ ```bash
344
+ # 查看映像建立日期
345
+ docker inspect <image> | jq '.[0].Created'
346
+ # 超過 90 天的映像應強制更新
347
+ ```
348
+
349
+ **常見陷阱**:
350
+ - 以為 `unattended-upgrades` 包含所有更新(實際上預設只包含 security)
351
+ - 未將 Critical CVE SLA 觸發器整合到告警系統
352
+
353
+ **ISO 對映**:ISO/IEC 27001:2022 A.8.8(技術漏洞管理)
354
+
355
+ ---
356
+
357
+ ### 2.6 網路隔離(Network Isolation)
358
+
359
+ **核心原則**:服務間網路最小化,AI Agent 出站流量使用明確白名單。
360
+
361
+ #### 防火牆分層設計
362
+
363
+ ```
364
+ Internet
365
+
366
+ Load Balancer / API Gateway(唯一對外入口)
367
+
368
+ Internal VPC / Overlay Network
369
+
370
+ ┌──────────────────────────────────────┐
371
+ │ AI Agent │ Database │ Monitoring │
372
+ │ (port: 3000) │ (port: 5432)│ (port: 9090) │
373
+ └──────────────────────────────────────┘
374
+ 所有節點均不直接對外
375
+ ```
376
+
377
+ #### AI Agent 出站白名單設定
378
+
379
+ `/etc/ai-agent/outbound-allowlist.conf`(範例):
380
+ ```
381
+ # AI Agent 出站流量白名單
382
+ ALLOW api.openai.com:443 # OpenAI API
383
+ ALLOW registry.npmjs.org:443 # npm registry
384
+ ALLOW api.github.com:443 # GitHub API
385
+ ALLOW telemetry.asiaostrich.com:443 # 遙測上傳
386
+ # 預設拒絕所有其他出站
387
+ DENY *:*
388
+ ```
389
+
390
+ 使用 iptables 實作出站白名單:
391
+ ```bash
392
+ # 允許 DNS
393
+ sudo iptables -A OUTPUT -p udp --dport 53 -j ACCEPT
394
+ # 允許白名單 IP(事先解析域名)
395
+ sudo iptables -A OUTPUT -d <api.openai.com_IP> -p tcp --dport 443 -j ACCEPT
396
+ # 預設拒絕所有出站
397
+ sudo iptables -A OUTPUT -j DROP
398
+ ```
399
+
400
+ #### 資料庫與監控端口保護
401
+
402
+ ```bash
403
+ # 確認資料庫端口未對外
404
+ sudo iptables -A INPUT -p tcp --dport 5432 -s 10.0.0.0/8 -j ACCEPT
405
+ sudo iptables -A INPUT -p tcp --dport 5432 -j DROP
406
+
407
+ # Prometheus / Grafana 僅內網
408
+ sudo iptables -A INPUT -p tcp --dport 9090 -s 10.0.0.0/8 -j ACCEPT
409
+ sudo iptables -A INPUT -p tcp --dport 9090 -j DROP
410
+ sudo iptables -A INPUT -p tcp --dport 3000 -s 10.0.0.0/8 -j ACCEPT
411
+ sudo iptables -A INPUT -p tcp --dport 3000 -j DROP
412
+ ```
413
+
414
+ **常見陷阱**:
415
+ - Docker 網路模式 `--net=host` 繞過所有 iptables 規則
416
+ - Prometheus exporter 監聽 `0.0.0.0` 而非 `127.0.0.1`
417
+
418
+ **ISO 對映**:ISO/IEC 27001:2022 A.8.20(網路安全)、A.8.22(Web 過濾)
419
+
420
+ ---
421
+
422
+ ## 3. AI Agent 環境特殊考量
423
+
424
+ ### Guardian 整合
425
+
426
+ Guardian OPA Sidecar(XSPEC-146/147)作為 AI Agent 的決策閘道,其所在主機必須滿足本標準的全部要求:
427
+
428
+ | Guardian 元件 | 對應安全域 |
429
+ |--------------|----------|
430
+ | OPA Sidecar 容器 | 2.5 Patch Management(映像需定期更新) |
431
+ | Guardian 服務帳號 | 2.3 Privilege Management(non-root, no shell) |
432
+ | Guardian API 端口 | 2.6 Network Isolation(僅允許 Agent 存取) |
433
+ | Guardian 審計日誌 | 2.2 Host Hardening(auditd 監控寫入) |
434
+
435
+ ### 服務帳號矩陣
436
+
437
+ | 服務 | Unix 帳號 | Shell | Sudo | 說明 |
438
+ |------|----------|-------|------|------|
439
+ | AI Agent | `ai-agent` | /sbin/nologin | 限定指令 | 主要 AI 執行帳號 |
440
+ | Guardian OPA | `guardian` | /sbin/nologin | 無 | OPA 決策引擎 |
441
+ | Prometheus | `prometheus` | /sbin/nologin | 無 | 監控收集 |
442
+ | 部署腳本 | `deployer` | /bin/bash | 限定指令 | CI/CD 用途 |
443
+
444
+ ### 出站白名單文件模板
445
+
446
+ 每個 AI Agent 部署必須隨附出站白名單文件,記錄:
447
+
448
+ ```
449
+ 端點: api.openai.com:443
450
+ 用途: 大型語言模型 API 呼叫
451
+ 負責人: AI 平台維運團隊
452
+ 最後審查: 2026-05-04
453
+ ```
454
+
455
+ ---
456
+
457
+ ## 4. 標準對映表
458
+
459
+ | 安全域 | ISO/IEC 27001:2022 | NIST | CIS |
460
+ |-------|-------------------|------|-----|
461
+ | SSH 強化 | A.8.5, A.8.20 | SP 800-52 | Benchmark 5.x |
462
+ | 主機強化 | A.8.9 | SP 800-123 | Benchmark Level 1 |
463
+ | 特權管理 | A.8.2, A.8.18 | SP 800-53 AC-6 | Benchmark 5.1-5.4 |
464
+ | 堡壘機模式 | A.8.3 | SP 800-207 (ZTA) | - |
465
+ | Patch 管理 | A.8.8 | SP 800-40 | - |
466
+ | 網路隔離 | A.8.20, A.8.22 | SP 800-41 | Benchmark 3.x |
467
+
468
+ ---
469
+
470
+ ## 5. 部署前快速 Checklist
471
+
472
+ ### 通用(所有環境)
473
+
474
+ - [ ] `PasswordAuthentication no` 已設定並生效
475
+ - [ ] `PermitRootLogin no` 已設定並生效
476
+ - [ ] SSH Port 已改為非 22
477
+ - [ ] fail2ban 已啟用,jailtime >= 1 小時
478
+ - [ ] UFW / iptables 防火牆已啟用,預設 deny inbound
479
+ - [ ] unattended-upgrades(security)已啟用
480
+ - [ ] auditd 已啟用並有基本規則
481
+ - [ ] AI Agent 服務帳號:non-root, /sbin/nologin
482
+ - [ ] 無 `NOPASSWD ALL` 的 sudo 設定
483
+
484
+ ### 生產環境額外項目
485
+
486
+ - [ ] Bastion Host 已部署
487
+ - [ ] Bastion 上 MFA 已強制(TOTP 或 YubiKey)
488
+ - [ ] Prod 節點防火牆只允許來自 Bastion 的 SSH
489
+ - [ ] Session 記錄已啟用
490
+ - [ ] 所有 Critical CVE 已修補
491
+ - [ ] AI Agent 出站白名單已設定並文件化
492
+ - [ ] DB/監控端口(5432, 3306, 6379, 9090, 3000)未對外暴露
493
+ - [ ] Guardian OPA Sidecar 映像在 90 天有效期內
494
+ - [ ] Lynis 評分 >= 75
495
+
496
+ ---
497
+
498
+ ## 相關標準
499
+
500
+ - `secure-op.ai.yaml` — AI Agent 決策層安全(Veto pipeline、SOBR 評分、HITL 機制)
501
+ - `security-standards.ai.yaml` — 應用層安全架構
502
+ - `security-testing.ai.yaml` — SAST、DAST、相依套件審計
503
+ - `secret-management-standards.ai.yaml` — 機密管理與憑證衛生
504
+ - `container-image-standards.ai.yaml` — 容器映像安全基準
505
+
506
+
507
+ **Scope**: universal
@@ -0,0 +1,108 @@
1
+ ---
2
+ source: ../../../core/slo-sli.md
3
+ source_version: 1.0.0
4
+ translation_version: 1.0.0
5
+ last_synced: 2026-06-17
6
+ source_hash: 8a24ef8525c7
7
+ status: current
8
+ ---
9
+
10
+ # SLO/SLI 定義標準
11
+
12
+ > **Language**: [English](../../../core/slo-sli.md) | 繁體中文
13
+
14
+ > **版本**: 1.0.0 | **狀態**: Active | **更新日期**: 2026-06-17
15
+ > **AI 最佳化版本**: `ai/standards/slo-sli.ai.yaml`
16
+ > **規格**: XSPEC-063(cross-project/specs/XSPEC-063-uds-sre-standards-pack.md)
17
+
18
+ ## 概觀
19
+
20
+ 本標準定義團隊如何**選取、量測與治理 Service Level Indicators(SLIs)與 Service
21
+ Level Objectives(SLOs)**。涵蓋各服務類型的 SLI 選取、SLO 目標設定方法、error
22
+ budget 政策,以及 multi-window burn-rate 告警。設計目標為銜接工程可靠性工作與
23
+ 面向客戶的 SLA 承諾。
24
+
25
+ 本標準屬於 **SRE/運維標準包**(XSPEC-063),是與 `incident-response`(error
26
+ budget 燃燒常觸發事件)與 `runbook`(error budget 政策由服務 runbook 連結)並列的
27
+ 可靠性目標成員。它補充既有的 `slo-standards` Skill 錨點,並餵養 XSPEC-251
28
+ (Operator)所述的主動可靠性責任。
29
+
30
+ > **範圍**:本標準定義「如何選取 SLI、設定 SLO 目標與治理 error budget」。metrics
31
+ > 後端(Prometheus、Datadog)、dashboard 產品與告警工具屬採用者的選擇,不在本標準
32
+ > 範圍內。
33
+
34
+ ## 需求
35
+
36
+ | ID | 規則 | 等級 |
37
+ |----|------|------|
38
+ | REQ-001 | 各服務類型的 SLI 選取(API/batch/frontend) | MUST |
39
+ | REQ-002 | SLO 目標設定方法(歷史 P5 baseline + buffer) | MUST |
40
+ | REQ-003 | Error budget 政策(freeze + reliability-sprint 觸發) | MUST |
41
+ | REQ-004 | Multi-window burn-rate 告警(fast/medium/slow burn) | SHOULD |
42
+ | REQ-005 | SLO 文件化與檢視節奏(標準 spec + 每季檢視) | MUST |
43
+ | REQ-006 | SLO 合規報告(每月利害關係人報告) | SHOULD |
44
+
45
+ ### REQ-001 — 各服務類型的 SLI 選取
46
+
47
+ 每個 production 服務 MUST 定義至少一個與其服務類型匹配的 SLI。API 服務 MUST 量測
48
+ 可用性(non-5xx/總數)與延遲(低於門檻的請求比例)。Batch job MUST 量測新鮮度
49
+ (data lag ≤ 門檻)與正確性(成功處理/總數)。Frontend 服務 MUST 量測 Core Web
50
+ Vitals(LCP < 2.5s、FID < 100ms、CLS < 0.1)。
51
+
52
+ ### REQ-002 — SLO 目標設定方法
53
+
54
+ SLO 目標 MUST 使用歷史 baseline 資料設定。團隊 MUST 從至少 28 個 rolling day 內
55
+ 觀察到的 P5 表現(第 5 百分位最差時段)起算,再加上小幅 buffer。SLO 目標 MUST
56
+ 嚴格高於任何外部 SLA 承諾(例如 SLA 99.9% → SLO ≥ 99.95%)。切勿將 SLO 設為等於
57
+ SLA;維持 ≥ 0.05% 的 buffer。
58
+
59
+ ### REQ-003 — Error Budget 政策
60
+
61
+ 每個具有 SLO 的服務 MUST 具備書面 Error Budget Policy,明定 error budget 部分或
62
+ 全部耗盡時的動作。政策至少 MUST 定義:(1) freeze 門檻(通常耗盡 50% → 發版凍結)、
63
+ (2) reliability-sprint 觸發(耗盡 100%),以及 (3) SLO 檢視節奏(每季)。error
64
+ budget 計算遵循 `budget = (1 − SLO) × 時間窗口`(例如 99.9% 於 30 天 → 43.2 分鐘)。
65
+
66
+ ### REQ-004 — Multi-Window Burn-Rate 告警
67
+
68
+ 團隊 SHOULD 實作 multi-window burn-rate 告警,以同時捕捉快速與緩慢的 budget 耗盡。
69
+ 建議門檻:fast burn(1 小時內耗用每月 budget 的 2% → P1 page)、medium burn
70
+ (6 小時內 5% → P2 alert)、slow burn(3 天內 10% → P3 ticket)。
71
+
72
+ ### REQ-005 — SLO 文件化與檢視節奏
73
+
74
+ 每個 SLO MUST 記載於標準 SLO spec 檔,內含:服務名稱、SLI 公式、量測窗口、目標值、
75
+ error budget、告警門檻與 owner。SLO spec MUST 每季檢視,並在任何重大架構變更後
76
+ 2 週內更新。
77
+
78
+ ### REQ-006 — SLO 合規報告
79
+
80
+ 團隊 SHOULD 每月向利害關係人發布 SLO 合規報告。報告 MUST 包含達成 vs. 目標 SLI 值、
81
+ 剩餘 error budget、影響 SLO 的重大事件,以及計畫中的可靠性改善。MUST 含 dashboard
82
+ 連結。
83
+
84
+ ## 與既有標準的整合
85
+
86
+ - **`slo-standards`**——既有的 Skill 錨點標準;`slo-sli` 提供其背後的詳細
87
+ 選取/目標/error-budget 方法。
88
+ - **`incident-response`**——error budget burn-rate 告警餵入事件宣告與 severity
89
+ 評估。
90
+ - **`runbook`**——error budget 政策 MUST 由服務 runbook 連結。
91
+ - **`rollback-standards`**——error budget 耗盡可觸發發版凍結,下游則觸發自動
92
+ rollback。
93
+ - **`observability-standards`**——SLI 由其定義的 metric/log/trace 支柱計算。
94
+ - **`alerting-standards`**——burn-rate 告警遵循 symptom-based 告警與 severity
95
+ 分級規則。
96
+
97
+ ## 相關規格
98
+
99
+ - XSPEC-063 — UDS SRE/運維標準包(本標準來源)
100
+ - XSPEC-251 — Operator 主動可靠性(事件上游的 SLO 責任)
101
+ - DEC-041 — EU AI Act 2026 合規(可靠性證據)
102
+ - DEC-042 — Guardian / Governance Agent 模式(error-budget 驅動動作)
103
+
104
+ ## 變更紀錄
105
+
106
+ | 版本 | 日期 | 變更 |
107
+ |------|------|------|
108
+ | v1.0.0 | 2026-06-17 | 初版——REQ-001~006:SLI 選取、SLO 目標方法、error-budget 政策、burn-rate 告警、SLO 文件化/檢視、合規報告(XSPEC-063) |
@@ -0,0 +1,79 @@
1
+ ---
2
+ source: ../../../core/smoke-test.md
3
+ source_version: 1.0.0
4
+ translation_version: 1.0.0
5
+ last_synced: 2026-06-10
6
+ source_hash: 391e5c330eb1
7
+ status: current
8
+ ---
9
+
10
+ # Smoke Test 標準
11
+
12
+ > **Language**: [English](../../../core/smoke-test.md) | 繁體中文
13
+
14
+ ## 概述
15
+
16
+ Smoke test 是部署後的第一道防線。它在 30 秒內回答一個問題:「系統是否基本正常運作?」如果 smoke test 通過,你可以高度確信部署成功。如果失敗,立即回滾——不要在 production 上調查。
17
+
18
+ ## 該測什麼
19
+
20
+ | ✅ Smoke Test | ❌ 非 Smoke Test |
21
+ |--------------|-----------------|
22
+ | 伺服器啟動並綁定 port | 業務邏輯正確性 |
23
+ | Health endpoint 回傳 200 | 邊界案例處理 |
24
+ | 核心 API 路由回傳回應 | 效能基準測試 |
25
+ | 資料庫連線存活 | 完整整合情境 |
26
+
27
+ ## 實作
28
+
29
+ ### Shell 腳本(installer/smoke.sh)
30
+
31
+ ```bash
32
+ #!/usr/bin/env bash
33
+ # SPDX-License-Identifier: AGPL-3.0-only
34
+ set -euo pipefail
35
+
36
+ BASE_URL="${VIBEOPS_URL:-http://localhost:3000}"
37
+ TIMEOUT=5
38
+
39
+ check() {
40
+ local path="$1"
41
+ local expected="${2:-200}"
42
+ local status
43
+ status=$(curl -s -o /dev/null -w "%{http_code}" --max-time "$TIMEOUT" "${BASE_URL}${path}")
44
+ if [[ "$status" != "$expected" ]]; then
45
+ echo "FAIL: ${path} → HTTP ${status} (expected ${expected})"
46
+ exit 1
47
+ fi
48
+ echo "OK: ${path} → HTTP ${status}"
49
+ }
50
+
51
+ echo "=== Smoke Test ==="
52
+ check "/health"
53
+ check "/api/status"
54
+ echo "=== PASS ==="
55
+ ```
56
+
57
+ ### npm 腳本
58
+
59
+ ```json
60
+ { "smoke": "bash installer/smoke.sh" }
61
+ ```
62
+
63
+ ### CI 整合(部署後步驟)
64
+
65
+ ```yaml
66
+ - name: Smoke test
67
+ run: npm run smoke
68
+ env:
69
+ VIBEOPS_URL: http://localhost:3000
70
+ ```
71
+
72
+ ## 相關標準
73
+
74
+ - [Testing Standards](testing-standards.md) — 整體測試金字塔
75
+ - [Deployment Standards](deployment-standards.md) — 部署管線
76
+ - [Performance Standards](performance-standards.md) — 延遲 SLO
77
+
78
+
79
+ **Scope**: universal