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.
- package/bin/uds.js +13 -135
- package/bundled/ai/options/commit-message/bilingual.ai.yaml +19 -1
- package/bundled/ai/standards/acceptance-criteria-traceability.ai.yaml +13 -4
- package/bundled/ai/standards/accessibility-standards.ai.yaml +1 -1
- package/bundled/ai/standards/ai-response-navigation.ai.yaml +15 -2
- package/bundled/ai/standards/api-design-standards.ai.yaml +27 -4
- package/bundled/ai/standards/behavior-snapshot.ai.yaml +86 -9
- package/bundled/ai/standards/checkin-standards.ai.yaml +3 -3
- package/bundled/ai/standards/code-review.ai.yaml +2 -2
- package/bundled/ai/standards/context-aware-loading.ai.yaml +3 -3
- package/bundled/ai/standards/data-migration-testing.ai.yaml +79 -3
- package/bundled/ai/standards/deprecation-standards.ai.yaml +10 -2
- package/bundled/ai/standards/developer-memory.ai.yaml +4 -3
- package/bundled/ai/standards/documentation-writing-standards.ai.yaml +1 -1
- package/bundled/ai/standards/flow-based-testing.ai.yaml +2 -2
- package/bundled/ai/standards/forward-derivation-standards.ai.yaml +26 -2
- package/bundled/ai/standards/frontend-design-standards.ai.yaml +33 -3
- package/bundled/ai/standards/full-coverage-testing.ai.yaml +34 -2
- package/bundled/ai/standards/git-worktree.ai.yaml +3 -3
- package/bundled/ai/standards/logging.ai.yaml +97 -3
- package/bundled/ai/standards/mock-boundary.ai.yaml +48 -2
- package/bundled/ai/standards/model-provenance.ai.yaml +297 -0
- package/bundled/ai/standards/model-selection.ai.yaml +11 -2
- package/bundled/ai/standards/observability-standards.ai.yaml +10 -0
- package/bundled/ai/standards/performance-standards.ai.yaml +46 -1
- package/bundled/ai/standards/pii-classification.ai.yaml +15 -1
- package/bundled/ai/standards/pipeline-security-gates.ai.yaml +10 -0
- package/bundled/ai/standards/privacy-standards.ai.yaml +2 -2
- package/bundled/ai/standards/project-context-memory.ai.yaml +2 -2
- package/bundled/ai/standards/push-standards.ai.yaml +14 -3
- package/bundled/ai/standards/refactoring-standards.ai.yaml +68 -3
- package/bundled/ai/standards/requirement-engineering.ai.yaml +42 -3
- package/bundled/ai/standards/resource-cost-boundary.ai.yaml +279 -0
- package/bundled/ai/standards/reverse-engineering-standards.ai.yaml +55 -2
- package/bundled/ai/standards/security-testing.ai.yaml +13 -2
- package/bundled/ai/standards/self-review-protocol.ai.yaml +15 -10
- package/bundled/ai/standards/skill-standard-alignment-check.ai.yaml +37 -2
- package/bundled/ai/standards/user-journey-testing.ai.yaml +107 -0
- package/bundled/ai/standards/verification-evidence.ai.yaml +88 -5
- package/bundled/ai/standards/verification-oracle.ai.yaml +278 -0
- package/bundled/ai/standards/versioning.ai.yaml +32 -38
- package/bundled/core/acceptance-criteria-traceability.md +15 -5
- package/bundled/core/accessibility-standards.md +8 -4
- package/bundled/core/ai-friendly-architecture.md +1 -1
- package/bundled/core/ai-response-navigation.md +31 -3
- package/bundled/core/anti-sycophancy-prompting.md +1 -1
- package/bundled/core/api-design-standards.md +92 -7
- package/bundled/core/audit-trail.md +119 -0
- package/bundled/core/behavior-snapshot.md +94 -7
- package/bundled/core/browser-compatibility-standards.md +15 -2
- package/bundled/core/checkin-standards.md +10 -3
- package/bundled/core/code-review-checklist.md +10 -2
- package/bundled/core/container-image-standards.md +97 -0
- package/bundled/core/context-aware-loading.md +2 -2
- package/bundled/core/cost-budget-test.md +1 -1
- package/bundled/core/cross-flow-regression.md +3 -2
- package/bundled/core/data-contract.md +104 -0
- package/bundled/core/data-migration-testing.md +90 -0
- package/bundled/core/data-pipeline.md +113 -0
- package/bundled/core/deprecation-standards.md +16 -2
- package/bundled/core/developer-memory.md +13 -8
- package/bundled/core/documentation-writing-standards.md +2 -2
- package/bundled/core/error-code-standards.md +4 -3
- package/bundled/core/feature-discovery-standards.md +191 -0
- package/bundled/core/flaky-test-management.md +1 -1
- package/bundled/core/flow-based-testing.md +3 -3
- package/bundled/core/forward-derivation-standards.md +33 -5
- package/bundled/core/frontend-design-standards.md +93 -4
- package/bundled/core/full-coverage-testing.md +72 -0
- package/bundled/core/git-worktree.md +4 -4
- package/bundled/core/guides/performance-guide.md +1 -1
- package/bundled/core/guides/security-guide.md +1 -1
- package/bundled/core/health-check-standards.md +2 -2
- package/bundled/core/iac-design-principles.md +97 -0
- package/bundled/core/incident-response.md +119 -0
- package/bundled/core/license-compliance.md +2 -0
- package/bundled/core/logging-standards.md +78 -2
- package/bundled/core/mock-boundary.md +54 -2
- package/bundled/core/model-provenance.md +181 -0
- package/bundled/core/model-selection.md +27 -2
- package/bundled/core/multi-environment-e2e-testing.md +195 -0
- package/bundled/core/packaging-standards.md +1 -0
- package/bundled/core/performance-standards.md +96 -2
- package/bundled/core/pii-classification.md +148 -0
- package/bundled/core/pipeline-security-gates.md +22 -2
- package/bundled/core/postmortem-standards.md +2 -0
- package/bundled/core/prd-standards.md +91 -0
- package/bundled/core/privacy-standards.md +14 -3
- package/bundled/core/product-metrics-standards.md +100 -0
- package/bundled/core/project-context-memory.md +8 -2
- package/bundled/core/prompt-regression.md +1 -1
- package/bundled/core/push-standards.md +82 -0
- package/bundled/core/refactoring-standards.md +44 -3
- package/bundled/core/replay-test.md +1 -1
- package/bundled/core/requirement-engineering.md +2 -2
- package/bundled/core/resource-cost-boundary.md +180 -0
- package/bundled/core/reverse-engineering-standards.md +66 -2
- package/bundled/core/runbook.md +113 -0
- package/bundled/core/schema-evolution.md +105 -0
- package/bundled/core/secret-management-standards.md +110 -0
- package/bundled/core/security-testing.md +26 -2
- package/bundled/core/self-review-protocol.md +15 -10
- package/bundled/core/skill-standard-alignment-check.md +53 -0
- package/bundled/core/slo-sli.md +109 -0
- package/bundled/core/smoke-test.md +1 -1
- package/bundled/core/tech-debt-standards.md +1 -1
- package/bundled/core/test-data-standards.md +2 -2
- package/bundled/core/user-journey-testing.md +102 -0
- package/bundled/core/user-story-mapping.md +96 -0
- package/bundled/core/verification-evidence.md +170 -10
- package/bundled/core/verification-oracle.md +167 -0
- package/bundled/core/versioning.md +133 -109
- package/bundled/locales/COVERAGE.md +94 -77
- package/bundled/locales/zh-CN/CHANGELOG.md +94 -6
- package/bundled/locales/zh-CN/CLAUDE.md +1 -1
- package/bundled/locales/zh-CN/MAINTENANCE.md +42 -661
- package/bundled/locales/zh-CN/README.md +25 -12
- package/bundled/locales/zh-CN/SECURITY.md +2 -2
- package/bundled/locales/zh-CN/adoption/DAILY-WORKFLOW-GUIDE.md +2 -2
- package/bundled/locales/zh-CN/ai/options/commit-message/bilingual.ai.yaml +6 -1
- package/bundled/locales/zh-CN/core/acceptance-criteria-traceability.md +4 -6
- package/bundled/locales/zh-CN/core/accessibility-standards.md +1 -1
- package/bundled/locales/zh-CN/core/adversarial-test.md +226 -0
- package/bundled/locales/zh-CN/core/agent-behavior-discipline.md +187 -0
- package/bundled/locales/zh-CN/core/ai-response-navigation.md +32 -6
- package/bundled/locales/zh-CN/core/anti-sycophancy-prompting.md +1 -1
- package/bundled/locales/zh-CN/core/api-design-standards.md +1 -1
- package/bundled/locales/zh-CN/core/behavior-snapshot.md +335 -0
- package/bundled/locales/zh-CN/core/browser-compatibility-standards.md +239 -0
- package/bundled/locales/zh-CN/core/cd-deployment-strategies.md +135 -0
- package/bundled/locales/zh-CN/core/chaos-injection-tests.md +130 -0
- package/bundled/locales/zh-CN/core/checkin-standards.md +1 -1
- package/bundled/locales/zh-CN/core/code-review-checklist.md +1 -1
- package/bundled/locales/zh-CN/core/container-security.md +535 -0
- package/bundled/locales/zh-CN/core/context-aware-loading.md +1 -1
- package/bundled/locales/zh-CN/core/contract-testing-standards.md +191 -0
- package/bundled/locales/zh-CN/core/cost-budget-test.md +86 -0
- package/bundled/locales/zh-CN/core/cross-flow-regression.md +200 -0
- package/bundled/locales/zh-CN/core/data-migration-testing.md +217 -0
- package/bundled/locales/zh-CN/core/deployment-standards.md +328 -9
- package/bundled/locales/zh-CN/core/deprecation-standards.md +1 -1
- package/bundled/locales/zh-CN/core/developer-memory.md +2 -2
- package/bundled/locales/zh-CN/core/disaster-recovery-drill.md +87 -0
- package/bundled/locales/zh-CN/core/documentation-structure.md +1 -1
- package/bundled/locales/zh-CN/core/documentation-writing-standards.md +1 -1
- package/bundled/locales/zh-CN/core/error-code-standards.md +2 -2
- package/bundled/locales/zh-CN/core/feature-manifest-standard.md +222 -0
- package/bundled/locales/zh-CN/core/flaky-test-management.md +87 -0
- package/bundled/locales/zh-CN/core/flow-based-testing.md +284 -0
- package/bundled/locales/zh-CN/core/forward-derivation-standards.md +3 -4
- package/bundled/locales/zh-CN/core/frontend-design-standards.md +1 -1
- package/bundled/locales/zh-CN/core/full-coverage-testing.md +269 -0
- package/bundled/locales/zh-CN/core/git-worktree.md +1 -1
- package/bundled/locales/zh-CN/core/governance-layer.md +160 -0
- package/bundled/locales/zh-CN/core/guides/performance-guide.md +515 -0
- package/bundled/locales/zh-CN/core/guides/security-guide.md +494 -0
- package/bundled/locales/zh-CN/core/knowledge-graph-memory.md +128 -0
- package/bundled/locales/zh-CN/core/license-compliance.md +131 -0
- package/bundled/locales/zh-CN/core/llm-output-validation.md +192 -0
- package/bundled/locales/zh-CN/core/logging-standards.md +205 -7
- package/bundled/locales/zh-CN/core/mock-boundary.md +161 -0
- package/bundled/locales/zh-CN/core/model-selection.md +28 -5
- package/bundled/locales/zh-CN/core/mutation-testing.md +106 -0
- package/bundled/locales/zh-CN/core/no-cicd-deployment.md +219 -0
- package/bundled/locales/zh-CN/core/packaging-standards.md +77 -5
- package/bundled/locales/zh-CN/core/pipeline-security-gates.md +146 -0
- package/bundled/locales/zh-CN/core/policy-as-code-testing.md +203 -0
- package/bundled/locales/zh-CN/core/privacy-standards.md +1 -1
- package/bundled/locales/zh-CN/core/project-context-memory.md +1 -1
- package/bundled/locales/zh-CN/core/prompt-regression.md +88 -0
- package/bundled/locales/zh-CN/core/property-based-testing.md +87 -0
- package/bundled/locales/zh-CN/core/release-quality-manifest.md +207 -0
- package/bundled/locales/zh-CN/core/release-readiness-gate.md +193 -0
- package/bundled/locales/zh-CN/core/replay-test.md +102 -0
- package/bundled/locales/zh-CN/core/requirement-engineering.md +1 -1
- package/bundled/locales/zh-CN/core/reverse-engineering-standards.md +46 -1
- package/bundled/locales/zh-CN/core/rollback-standards.md +120 -0
- package/bundled/locales/zh-CN/core/sast-advanced.md +309 -0
- package/bundled/locales/zh-CN/core/secure-op.md +328 -0
- package/bundled/locales/zh-CN/core/security-testing.md +113 -0
- package/bundled/locales/zh-CN/core/self-review-protocol.md +172 -0
- package/bundled/locales/zh-CN/core/server-ops-security.md +507 -0
- package/bundled/locales/zh-CN/core/smoke-test.md +79 -0
- package/bundled/locales/zh-CN/core/spec-driven-development.md +39 -3
- package/bundled/locales/zh-CN/core/supply-chain-attestation.md +131 -0
- package/bundled/locales/zh-CN/core/verification-evidence.md +252 -41
- package/bundled/locales/zh-CN/core/versioning.md +1 -1
- package/bundled/locales/zh-CN/docs/CHEATSHEET.md +36 -7
- package/bundled/locales/zh-CN/docs/FEATURE-REFERENCE.md +71 -53
- package/bundled/locales/zh-CN/docs/MIGRATION-v6.md +88 -0
- package/bundled/locales/zh-CN/docs/USAGE-MODES-COMPARISON.md +2 -2
- package/bundled/locales/zh-CN/docs/USER-MANUAL.md +14 -14
- package/bundled/locales/zh-CN/docs/specs/system/memory-adoption-strategy.md +105 -0
- package/bundled/locales/zh-CN/docs/user/FAQ.md +132 -0
- package/bundled/locales/zh-CN/docs/user/GETTING-STARTED.md +144 -0
- package/bundled/locales/zh-CN/docs/user/GLOSSARY.md +178 -0
- package/bundled/locales/zh-CN/docs/user/README.md +70 -0
- package/bundled/locales/zh-CN/docs/user/TROUBLESHOOTING.md +190 -0
- package/bundled/locales/zh-CN/integrations/github-copilot/COPILOT-CHAT-REFERENCE.md +1 -1
- package/bundled/locales/zh-CN/integrations/github-copilot/README.md +1 -1
- package/bundled/locales/zh-CN/integrations/github-copilot/skills-mapping.md +3 -3
- package/bundled/locales/zh-CN/integrations/opencode/skills-mapping.md +3 -3
- package/bundled/locales/zh-CN/methodologies/guides/sdd-guide.md +836 -0
- package/bundled/locales/zh-CN/options/changelog/auto-generated.md +166 -0
- package/bundled/locales/zh-CN/options/changelog/keep-a-changelog.md +140 -0
- package/bundled/locales/zh-CN/options/code-review/automated-review.md +214 -0
- package/bundled/locales/zh-CN/options/code-review/pair-programming.md +166 -0
- package/bundled/locales/zh-CN/options/code-review/pr-review.md +167 -0
- package/bundled/locales/zh-CN/options/commit-message/bilingual.md +10 -3
- package/bundled/locales/zh-CN/options/documentation/api-docs.md +191 -0
- package/bundled/locales/zh-CN/options/documentation/markdown-docs.md +150 -0
- package/bundled/locales/zh-CN/options/documentation/wiki-style.md +131 -0
- package/bundled/locales/zh-CN/options/project-structure/kotlin.md +144 -0
- package/bundled/locales/zh-CN/options/project-structure/php.md +168 -0
- package/bundled/locales/zh-CN/options/project-structure/ruby.md +156 -0
- package/bundled/locales/zh-CN/options/project-structure/rust.md +136 -0
- package/bundled/locales/zh-CN/options/project-structure/swift.md +165 -0
- package/bundled/locales/zh-CN/options/testing/contract-testing.md +237 -0
- package/bundled/locales/zh-CN/options/testing/industry-pyramid.md +200 -0
- package/bundled/locales/zh-CN/options/testing/istqb-framework.md +144 -0
- package/bundled/locales/zh-CN/options/testing/performance-testing.md +251 -0
- package/bundled/locales/zh-CN/options/testing/security-testing.md +192 -0
- package/bundled/locales/zh-CN/skills/README.md +89 -126
- package/bundled/locales/zh-CN/skills/ac-coverage/SKILL.md +5 -7
- package/bundled/locales/zh-CN/skills/adr-assistant/SKILL.md +1 -1
- package/bundled/locales/zh-CN/skills/agents/code-architect.md +263 -0
- package/bundled/locales/zh-CN/skills/agents/doc-writer.md +410 -0
- package/bundled/locales/zh-CN/skills/agents/reviewer.md +357 -0
- package/bundled/locales/zh-CN/skills/agents/spec-analyst.md +410 -0
- package/bundled/locales/zh-CN/skills/agents/test-specialist.md +368 -0
- package/bundled/locales/zh-CN/skills/ai-collaboration-standards/SKILL.md +2 -2
- package/bundled/locales/zh-CN/skills/ai-friendly-architecture/SKILL.md +2 -2
- package/bundled/locales/zh-CN/skills/ai-instruction-standards/SKILL.md +1 -1
- package/bundled/locales/zh-CN/skills/atdd-assistant/acceptance-criteria-guide.md +1 -1
- package/bundled/locales/zh-CN/skills/atdd-assistant/atdd-workflow.md +3 -4
- package/bundled/locales/zh-CN/skills/audit-assistant/SKILL.md +2 -2
- package/bundled/locales/zh-CN/skills/bdd-assistant/guide.md +1 -2
- package/bundled/locales/zh-CN/skills/brainstorm-assistant/SKILL.md +115 -17
- package/bundled/locales/zh-CN/skills/brainstorm-assistant/guide.md +37 -12
- package/bundled/locales/zh-CN/skills/checkin-assistant/SKILL.md +1 -1
- package/bundled/locales/zh-CN/skills/ci-cd-assistant/SKILL.md +50 -0
- package/bundled/locales/zh-CN/skills/code-review-assistant/SKILL.md +5 -5
- package/bundled/locales/zh-CN/skills/commands/ac-coverage.md +1 -1
- package/bundled/locales/zh-CN/skills/commands/atdd.md +3 -3
- package/bundled/locales/zh-CN/skills/commands/bdd.md +2 -2
- package/bundled/locales/zh-CN/skills/commands/brainstorm.md +26 -17
- package/bundled/locales/zh-CN/skills/commands/{review.md → code-review.md} +4 -4
- package/bundled/locales/zh-CN/skills/commands/derive-all.md +1 -1
- package/bundled/locales/zh-CN/skills/commands/derive-atdd.md +1 -1
- package/bundled/locales/zh-CN/skills/commands/derive-bdd.md +2 -3
- package/bundled/locales/zh-CN/skills/commands/derive-tdd.md +1 -1
- package/bundled/locales/zh-CN/skills/commands/derive.md +1 -1
- package/bundled/locales/zh-CN/skills/commands/dev-workflow.md +2 -2
- package/bundled/locales/zh-CN/skills/commands/methodology.md +4 -4
- package/bundled/locales/zh-CN/skills/commands/pr.md +1 -1
- package/bundled/locales/zh-CN/skills/commands/tdd.md +1 -1
- package/bundled/locales/zh-CN/skills/commit-standards/SKILL.md +1 -1
- package/bundled/locales/zh-CN/skills/contract-test-assistant/SKILL.md +1 -1
- package/bundled/locales/zh-CN/skills/dev-methodology/SKILL.md +1 -1
- package/bundled/locales/zh-CN/skills/dev-methodology/create-methodology.md +456 -0
- package/bundled/locales/zh-CN/skills/dev-methodology/guide.md +6 -6
- package/bundled/locales/zh-CN/skills/dev-methodology/runtime.md +296 -0
- package/bundled/locales/zh-CN/skills/dev-workflow-guide/SKILL.md +5 -5
- package/bundled/locales/zh-CN/skills/docs-generator/SKILL.md +1 -1
- package/bundled/locales/zh-CN/skills/e2e-assistant/SKILL.md +1 -1
- package/bundled/locales/zh-CN/skills/incident-response-assistant/SKILL.md +2 -2
- package/bundled/locales/zh-CN/skills/journey-test-assistant/SKILL.md +1 -1
- package/bundled/locales/zh-CN/skills/logging-guide/SKILL.md +169 -142
- package/bundled/locales/zh-CN/skills/migration-assistant/SKILL.md +1 -1
- package/bundled/locales/zh-CN/skills/observability-assistant/guide.md +1 -1
- package/bundled/locales/zh-CN/skills/pr-automation-assistant/SKILL.md +1 -1
- package/bundled/locales/zh-CN/skills/project-discovery/guide.md +2 -2
- package/bundled/locales/zh-CN/skills/reverse-engineer/SKILL.md +1 -1
- package/bundled/locales/zh-CN/skills/runbook-assistant/guide.md +1 -1
- package/bundled/locales/zh-CN/skills/security-assistant/SKILL.md +1 -1
- package/bundled/locales/zh-CN/skills/skill-builder/SKILL.md +3 -3
- package/bundled/locales/zh-CN/skills/slo-assistant/guide.md +1 -1
- package/bundled/locales/zh-CN/skills/spec-derivation/SKILL.md +1 -1
- package/bundled/locales/zh-CN/skills/spec-derivation/guide.md +8 -9
- package/bundled/locales/zh-CN/skills/spec-driven-dev/SKILL.md +2 -2
- package/bundled/locales/zh-CN/skills/sweep/SKILL.md +1 -1
- package/bundled/locales/zh-CN/skills/tdd-assistant/SKILL.md +1 -1
- package/bundled/locales/zh-CN/skills/testing-guide/SKILL.md +2 -2
- package/bundled/locales/zh-CN/skills/testing-guide/testing-theory.md +2298 -0
- package/bundled/locales/zh-CN/skills/workflows/README.md +451 -0
- package/bundled/locales/zh-TW/CHANGELOG.md +94 -6
- package/bundled/locales/zh-TW/CLAUDE.md +1 -1
- package/bundled/locales/zh-TW/MAINTENANCE.md +51 -4
- package/bundled/locales/zh-TW/README.md +25 -12
- package/bundled/locales/zh-TW/SECURITY.md +2 -2
- package/bundled/locales/zh-TW/adoption/DAILY-WORKFLOW-GUIDE.md +2 -2
- package/bundled/locales/zh-TW/ai/options/commit-message/bilingual.ai.yaml +6 -1
- package/bundled/locales/zh-TW/ai/standards/versioning.ai.yaml +8 -48
- package/bundled/locales/zh-TW/core/acceptance-criteria-traceability.md +4 -6
- package/bundled/locales/zh-TW/core/accessibility-standards.md +1 -1
- package/bundled/locales/zh-TW/core/adversarial-test.md +226 -0
- package/bundled/locales/zh-TW/core/agent-behavior-discipline.md +187 -0
- package/bundled/locales/zh-TW/core/ai-response-navigation.md +32 -6
- package/bundled/locales/zh-TW/core/anti-sycophancy-prompting.md +1 -1
- package/bundled/locales/zh-TW/core/api-design-standards.md +91 -9
- package/bundled/locales/zh-TW/core/audit-trail.md +110 -0
- package/bundled/locales/zh-TW/core/behavior-snapshot.md +335 -0
- package/bundled/locales/zh-TW/core/browser-compatibility-standards.md +1 -0
- package/bundled/locales/zh-TW/core/cd-deployment-strategies.md +135 -0
- package/bundled/locales/zh-TW/core/chaos-injection-tests.md +130 -0
- package/bundled/locales/zh-TW/core/checkin-standards.md +1 -1
- package/bundled/locales/zh-TW/core/code-review-checklist.md +1 -1
- package/bundled/locales/zh-TW/core/container-image-standards.md +93 -0
- package/bundled/locales/zh-TW/core/container-security.md +535 -0
- package/bundled/locales/zh-TW/core/cost-budget-test.md +86 -0
- package/bundled/locales/zh-TW/core/cross-flow-regression.md +1 -0
- package/bundled/locales/zh-TW/core/data-contract.md +101 -0
- package/bundled/locales/zh-TW/core/data-migration-testing.md +217 -0
- package/bundled/locales/zh-TW/core/data-pipeline.md +105 -0
- package/bundled/locales/zh-TW/core/deployment-standards.md +363 -25
- package/bundled/locales/zh-TW/core/deprecation-standards.md +17 -4
- package/bundled/locales/zh-TW/core/developer-memory.md +2 -2
- package/bundled/locales/zh-TW/core/disaster-recovery-drill.md +87 -0
- package/bundled/locales/zh-TW/core/documentation-writing-standards.md +1 -1
- package/bundled/locales/zh-TW/core/error-code-standards.md +2 -2
- package/bundled/locales/zh-TW/core/feature-manifest-standard.md +222 -0
- package/bundled/locales/zh-TW/core/flaky-test-management.md +87 -0
- package/bundled/locales/zh-TW/core/flow-based-testing.md +284 -0
- package/bundled/locales/zh-TW/core/forward-derivation-standards.md +3 -4
- package/bundled/locales/zh-TW/core/frontend-design-standards.md +1 -1
- package/bundled/locales/zh-TW/core/full-coverage-testing.md +250 -0
- package/bundled/locales/zh-TW/core/git-worktree.md +1 -1
- package/bundled/locales/zh-TW/core/guides/performance-guide.md +515 -0
- package/bundled/locales/zh-TW/core/guides/security-guide.md +494 -0
- package/bundled/locales/zh-TW/core/iac-design-principles.md +90 -0
- package/bundled/locales/zh-TW/core/incident-response.md +111 -0
- package/bundled/locales/zh-TW/core/license-compliance.md +131 -0
- package/bundled/locales/zh-TW/core/llm-output-validation.md +192 -0
- package/bundled/locales/zh-TW/core/logging-standards.md +208 -4
- package/bundled/locales/zh-TW/core/mock-boundary.md +161 -0
- package/bundled/locales/zh-TW/core/model-provenance.md +173 -0
- package/bundled/locales/zh-TW/core/model-selection.md +28 -5
- package/bundled/locales/zh-TW/core/mutation-testing.md +106 -0
- package/bundled/locales/zh-TW/core/no-cicd-deployment.md +219 -0
- package/bundled/locales/zh-TW/core/packaging-standards.md +77 -5
- package/bundled/locales/zh-TW/core/performance-standards.md +84 -5
- package/bundled/locales/zh-TW/core/pii-classification.md +102 -0
- package/bundled/locales/zh-TW/core/pipeline-security-gates.md +146 -0
- package/bundled/locales/zh-TW/core/policy-as-code-testing.md +203 -0
- package/bundled/locales/zh-TW/core/prd-standards.md +88 -0
- package/bundled/locales/zh-TW/core/privacy-standards.md +1 -1
- package/bundled/locales/zh-TW/core/product-metrics-standards.md +96 -0
- package/bundled/locales/zh-TW/core/project-context-memory.md +1 -1
- package/bundled/locales/zh-TW/core/prompt-regression.md +88 -0
- package/bundled/locales/zh-TW/core/property-based-testing.md +87 -0
- package/bundled/locales/zh-TW/core/refactoring-standards.md +43 -6
- package/bundled/locales/zh-TW/core/release-quality-manifest.md +207 -0
- package/bundled/locales/zh-TW/core/replay-test.md +102 -0
- package/bundled/locales/zh-TW/core/requirement-engineering.md +1 -1
- package/bundled/locales/zh-TW/core/resource-cost-boundary.md +175 -0
- package/bundled/locales/zh-TW/core/reverse-engineering-standards.md +64 -5
- package/bundled/locales/zh-TW/core/rollback-standards.md +120 -0
- package/bundled/locales/zh-TW/core/runbook.md +110 -0
- package/bundled/locales/zh-TW/core/sast-advanced.md +309 -0
- package/bundled/locales/zh-TW/core/schema-evolution.md +98 -0
- package/bundled/locales/zh-TW/core/secret-management-standards.md +101 -0
- package/bundled/locales/zh-TW/core/secure-op.md +328 -0
- package/bundled/locales/zh-TW/core/security-testing.md +113 -0
- package/bundled/locales/zh-TW/core/self-review-protocol.md +18 -13
- package/bundled/locales/zh-TW/core/server-ops-security.md +507 -0
- package/bundled/locales/zh-TW/core/slo-sli.md +108 -0
- package/bundled/locales/zh-TW/core/smoke-test.md +79 -0
- package/bundled/locales/zh-TW/core/spec-driven-development.md +19 -11
- package/bundled/locales/zh-TW/core/supply-chain-attestation.md +131 -0
- package/bundled/locales/zh-TW/core/user-journey-testing.md +111 -0
- package/bundled/locales/zh-TW/core/user-story-mapping.md +94 -0
- package/bundled/locales/zh-TW/core/verification-evidence.md +260 -31
- package/bundled/locales/zh-TW/core/verification-oracle.md +159 -0
- package/bundled/locales/zh-TW/core/versioning.md +112 -112
- package/bundled/locales/zh-TW/docs/CHEATSHEET.md +36 -7
- package/bundled/locales/zh-TW/docs/DEV-WORKFLOW-MAPPING.md +6 -6
- package/bundled/locales/zh-TW/docs/FEATURE-REFERENCE.md +71 -53
- package/bundled/locales/zh-TW/docs/MIGRATION-v6.md +88 -0
- package/bundled/locales/zh-TW/docs/USAGE-MODES-COMPARISON.md +2 -2
- package/bundled/locales/zh-TW/docs/USER-MANUAL.md +14 -14
- package/bundled/locales/zh-TW/docs/specs/system/memory-adoption-strategy.md +105 -0
- package/bundled/locales/zh-TW/docs/user/FAQ.md +132 -0
- package/bundled/locales/zh-TW/docs/user/GETTING-STARTED.md +144 -0
- package/bundled/locales/zh-TW/docs/user/GLOSSARY.md +178 -0
- package/bundled/locales/zh-TW/docs/user/README.md +70 -0
- package/bundled/locales/zh-TW/docs/user/TROUBLESHOOTING.md +190 -0
- package/bundled/locales/zh-TW/integrations/github-copilot/COPILOT-CHAT-REFERENCE.md +1 -1
- package/bundled/locales/zh-TW/integrations/github-copilot/README.md +1 -1
- package/bundled/locales/zh-TW/integrations/github-copilot/skills-mapping.md +3 -3
- package/bundled/locales/zh-TW/integrations/opencode/skills-mapping.md +3 -3
- package/bundled/locales/zh-TW/methodologies/guides/sdd-guide.md +523 -26
- package/bundled/locales/zh-TW/options/changelog/auto-generated.md +166 -0
- package/bundled/locales/zh-TW/options/changelog/keep-a-changelog.md +140 -0
- package/bundled/locales/zh-TW/options/code-review/automated-review.md +214 -0
- package/bundled/locales/zh-TW/options/code-review/pair-programming.md +166 -0
- package/bundled/locales/zh-TW/options/code-review/pr-review.md +167 -0
- package/bundled/locales/zh-TW/options/commit-message/bilingual.md +10 -3
- package/bundled/locales/zh-TW/options/documentation/api-docs.md +191 -0
- package/bundled/locales/zh-TW/options/documentation/markdown-docs.md +150 -0
- package/bundled/locales/zh-TW/options/documentation/wiki-style.md +131 -0
- package/bundled/locales/zh-TW/options/project-structure/kotlin.md +144 -0
- package/bundled/locales/zh-TW/options/project-structure/php.md +168 -0
- package/bundled/locales/zh-TW/options/project-structure/ruby.md +156 -0
- package/bundled/locales/zh-TW/options/project-structure/rust.md +136 -0
- package/bundled/locales/zh-TW/options/project-structure/swift.md +165 -0
- package/bundled/locales/zh-TW/options/testing/contract-testing.md +237 -0
- package/bundled/locales/zh-TW/options/testing/industry-pyramid.md +200 -0
- package/bundled/locales/zh-TW/options/testing/istqb-framework.md +144 -0
- package/bundled/locales/zh-TW/options/testing/performance-testing.md +251 -0
- package/bundled/locales/zh-TW/options/testing/security-testing.md +192 -0
- package/bundled/locales/zh-TW/skills/README.md +91 -128
- package/bundled/locales/zh-TW/skills/ac-coverage/SKILL.md +4 -6
- package/bundled/locales/zh-TW/skills/adr-assistant/SKILL.md +1 -1
- package/bundled/locales/zh-TW/skills/agents/code-architect.md +263 -0
- package/bundled/locales/zh-TW/skills/agents/doc-writer.md +410 -0
- package/bundled/locales/zh-TW/skills/agents/reviewer.md +357 -0
- package/bundled/locales/zh-TW/skills/agents/spec-analyst.md +410 -0
- package/bundled/locales/zh-TW/skills/agents/test-specialist.md +368 -0
- package/bundled/locales/zh-TW/skills/ai-collaboration-standards/SKILL.md +2 -2
- package/bundled/locales/zh-TW/skills/ai-friendly-architecture/SKILL.md +2 -2
- package/bundled/locales/zh-TW/skills/ai-instruction-standards/SKILL.md +1 -1
- package/bundled/locales/zh-TW/skills/atdd-assistant/SKILL.md +2 -0
- package/bundled/locales/zh-TW/skills/atdd-assistant/acceptance-criteria-guide.md +1 -1
- package/bundled/locales/zh-TW/skills/atdd-assistant/atdd-workflow.md +3 -4
- package/bundled/locales/zh-TW/skills/audit-assistant/SKILL.md +2 -2
- package/bundled/locales/zh-TW/skills/bdd-assistant/SKILL.md +2 -0
- package/bundled/locales/zh-TW/skills/bdd-assistant/guide.md +1 -2
- package/bundled/locales/zh-TW/skills/brainstorm-assistant/SKILL.md +116 -18
- package/bundled/locales/zh-TW/skills/brainstorm-assistant/guide.md +38 -11
- package/bundled/locales/zh-TW/skills/checkin-assistant/SKILL.md +3 -1
- package/bundled/locales/zh-TW/skills/ci-cd-assistant/SKILL.md +50 -0
- package/bundled/locales/zh-TW/skills/code-review-assistant/SKILL.md +7 -5
- package/bundled/locales/zh-TW/skills/commands/ac-coverage.md +1 -1
- package/bundled/locales/zh-TW/skills/commands/atdd.md +3 -3
- package/bundled/locales/zh-TW/skills/commands/bdd.md +2 -2
- package/bundled/locales/zh-TW/skills/commands/brainstorm.md +26 -17
- package/bundled/locales/zh-TW/skills/commands/{review.md → code-review.md} +5 -5
- package/bundled/locales/zh-TW/skills/commands/derive-all.md +1 -1
- package/bundled/locales/zh-TW/skills/commands/derive-atdd.md +1 -1
- package/bundled/locales/zh-TW/skills/commands/derive-bdd.md +2 -3
- package/bundled/locales/zh-TW/skills/commands/derive-tdd.md +1 -1
- package/bundled/locales/zh-TW/skills/commands/derive.md +1 -1
- package/bundled/locales/zh-TW/skills/commands/dev-workflow.md +2 -2
- package/bundled/locales/zh-TW/skills/commands/methodology.md +4 -4
- package/bundled/locales/zh-TW/skills/commands/pr.md +1 -1
- package/bundled/locales/zh-TW/skills/commands/tdd.md +1 -1
- package/bundled/locales/zh-TW/skills/commit-standards/SKILL.md +1 -1
- package/bundled/locales/zh-TW/skills/contract-test-assistant/SKILL.md +1 -1
- package/bundled/locales/zh-TW/skills/dev-methodology/create-methodology.md +456 -0
- package/bundled/locales/zh-TW/skills/dev-methodology/guide.md +5 -5
- package/bundled/locales/zh-TW/skills/dev-methodology/runtime.md +296 -0
- package/bundled/locales/zh-TW/skills/dev-workflow-guide/SKILL.md +5 -5
- package/bundled/locales/zh-TW/skills/docs-generator/SKILL.md +1 -1
- package/bundled/locales/zh-TW/skills/e2e-assistant/SKILL.md +1 -1
- package/bundled/locales/zh-TW/skills/incident-response-assistant/SKILL.md +2 -2
- package/bundled/locales/zh-TW/skills/logging-guide/SKILL.md +52 -27
- package/bundled/locales/zh-TW/skills/migration-assistant/SKILL.md +1 -1
- package/bundled/locales/zh-TW/skills/pr-automation-assistant/SKILL.md +3 -1
- package/bundled/locales/zh-TW/skills/project-discovery/guide.md +2 -2
- package/bundled/locales/zh-TW/skills/reverse-engineer/SKILL.md +1 -1
- package/bundled/locales/zh-TW/skills/security-assistant/SKILL.md +1 -1
- package/bundled/locales/zh-TW/skills/spec-derivation/guide.md +7 -8
- package/bundled/locales/zh-TW/skills/spec-driven-dev/SKILL.md +2 -2
- package/bundled/locales/zh-TW/skills/sweep/SKILL.md +1 -1
- package/bundled/locales/zh-TW/skills/tdd-assistant/SKILL.md +3 -1
- package/bundled/locales/zh-TW/skills/testing-guide/SKILL.md +2 -2
- package/bundled/locales/zh-TW/skills/testing-guide/testing-theory.md +2298 -0
- package/bundled/locales/zh-TW/skills/workflows/README.md +451 -0
- package/bundled/skills/README.md +1 -1
- package/bundled/skills/ac-coverage/SKILL.md +17 -7
- package/bundled/skills/adr-assistant/SKILL.md +1 -1
- package/bundled/skills/agents/code-architect.md +1 -1
- package/bundled/skills/agents/doc-writer.md +1 -1
- package/bundled/skills/agents/reviewer.md +2 -2
- package/bundled/skills/agents/spec-analyst.md +1 -1
- package/bundled/skills/agents/test-specialist.md +1 -1
- package/bundled/skills/ai-collaboration-standards/SKILL.md +2 -2
- package/bundled/skills/ai-friendly-architecture/SKILL.md +2 -2
- package/bundled/skills/ai-instruction-standards/SKILL.md +1 -1
- package/bundled/skills/atdd-assistant/SKILL.md +7 -0
- package/bundled/skills/atdd-assistant/acceptance-criteria-guide.md +1 -1
- package/bundled/skills/atdd-assistant/atdd-workflow.md +6 -8
- package/bundled/skills/audit-assistant/SKILL.md +2 -2
- package/bundled/skills/bdd-assistant/SKILL.md +7 -0
- package/bundled/skills/bdd-assistant/guide.md +1 -2
- package/bundled/skills/brainstorm-assistant/SKILL.md +139 -15
- package/bundled/skills/brainstorm-assistant/guide.md +39 -8
- package/bundled/skills/checkin-assistant/SKILL.md +8 -1
- package/bundled/skills/ci-cd-assistant/SKILL.md +57 -0
- package/bundled/skills/code-review-assistant/SKILL.md +15 -8
- package/bundled/skills/commands/COMMAND-FAMILY-OVERVIEW.md +2 -2
- package/bundled/skills/commands/COMMAND-INDEX.json +3 -3
- package/bundled/skills/commands/README.md +2 -2
- package/bundled/skills/commands/ac-coverage.md +1 -1
- package/bundled/skills/commands/atdd.md +2 -2
- package/bundled/skills/commands/bdd.md +2 -2
- package/bundled/skills/commands/brainstorm.md +25 -14
- package/bundled/skills/commands/{review.md → code-review.md} +6 -6
- package/bundled/skills/commands/derive-all.md +1 -1
- package/bundled/skills/commands/derive-atdd.md +1 -1
- package/bundled/skills/commands/derive-bdd.md +2 -3
- package/bundled/skills/commands/derive-tdd.md +1 -1
- package/bundled/skills/commands/derive.md +1 -1
- package/bundled/skills/commands/dev-workflow.md +1 -1
- package/bundled/skills/commands/journey-test.md +45 -0
- package/bundled/skills/commands/methodology.md +4 -4
- package/bundled/skills/commands/pr.md +1 -1
- package/bundled/skills/commands/skill-builder.md +42 -0
- package/bundled/skills/commands/tdd.md +1 -1
- package/bundled/skills/dev-methodology/create-methodology.md +1 -1
- package/bundled/skills/dev-methodology/guide.md +1 -1
- package/bundled/skills/dev-methodology/runtime.md +1 -1
- package/bundled/skills/dev-workflow-guide/SKILL.md +3 -3
- package/bundled/skills/dev-workflow-guide/workflow-phases.md +3 -3
- package/bundled/skills/docs-generator/SKILL.md +3 -3
- package/bundled/skills/incident-response-assistant/SKILL.md +2 -2
- package/bundled/skills/logging-guide/SKILL.md +38 -2
- package/bundled/skills/migration-assistant/SKILL.md +226 -0
- package/bundled/skills/observability-assistant/SKILL.md +74 -0
- package/bundled/skills/pr-automation-assistant/SKILL.md +5 -1
- package/bundled/skills/project-discovery/guide.md +2 -2
- package/bundled/skills/push/SKILL.md +1 -1
- package/bundled/skills/release-standards/SKILL.md +19 -5
- package/bundled/skills/security-assistant/SKILL.md +1 -1
- package/bundled/skills/skill-builder/SKILL.md +1 -1
- package/bundled/skills/spec-derivation/guide.md +3 -4
- package/bundled/skills/spec-driven-dev/SKILL.md +13 -2
- package/bundled/skills/sweep/SKILL.md +1 -1
- package/bundled/skills/tdd-assistant/SKILL.md +8 -1
- package/bundled/skills/testing-guide/SKILL.md +1 -1
- package/bundled/skills/testing-guide/testing-theory.md +1 -1
- package/bundled/skills/workflows/README.md +2 -2
- package/package.json +4 -4
- package/src/commands/audit.js +30 -9
- package/src/commands/config.js +33 -2
- package/src/commands/hitl.js +14 -1
- package/src/commands/init.js +168 -75
- package/src/commands/quickstart.js +1 -2
- package/src/commands/release.js +51 -6
- package/src/commands/run-intent.js +9 -0
- package/src/commands/spec-split.js +27 -2
- package/src/commands/update.js +22 -6
- package/src/config/ai-agent-paths.js +3 -1
- package/src/i18n/messages.js +3 -102
- package/src/missions/MissionManager.js +44 -12
- package/src/utils/build-manifest.js +35 -3
- package/src/utils/friction-detector.js +71 -22
- package/src/utils/health-checker.js +29 -2
- package/src/utils/transaction.js +111 -0
- package/src/utils/version-promote.js +16 -0
- package/standards-registry.json +61 -149
- package/bundled/ai/standards/agent-communication-protocol.ai.yaml +0 -42
- package/bundled/ai/standards/agent-dispatch.ai.yaml +0 -42
- package/bundled/ai/standards/branch-completion.ai.yaml +0 -44
- package/bundled/ai/standards/change-batching-standards.ai.yaml +0 -44
- package/bundled/ai/standards/execution-history.ai.yaml +0 -42
- package/bundled/ai/standards/pipeline-integration-standards.ai.yaml +0 -42
- package/bundled/ai/standards/workflow-enforcement.ai.yaml +0 -44
- package/bundled/ai/standards/workflow-state-protocol.ai.yaml +0 -43
- package/src/commands/flow.js +0 -260
- package/src/commands/start.js +0 -372
- package/src/commands/sweep.js +0 -151
- 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: 71b84f25a084
|
|
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
|