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,494 @@
|
|
|
1
|
+
---
|
|
2
|
+
source: core/guides/security-guide.md
|
|
3
|
+
source_version: 1.0.0
|
|
4
|
+
translation_version: 1.0.0
|
|
5
|
+
status: current
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Security Guide
|
|
9
|
+
|
|
10
|
+
> **語言**: [English](../../../../core/guides/security-guide.md) | 繁體中文
|
|
11
|
+
|
|
12
|
+
**版本**: 1.0.0
|
|
13
|
+
**最後更新**: 2026-01-29
|
|
14
|
+
**相關標準**: [Security Standards](../security-standards.md)
|
|
15
|
+
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
## Purpose
|
|
19
|
+
|
|
20
|
+
本指南提供軟體安全的詳細說明、漏洞範例與教學內容。若需要可立即執行的檢查清單、必要演算法與強制標頭,請參閱 [Security Standards](../security-standards.md)。
|
|
21
|
+
|
|
22
|
+
---
|
|
23
|
+
|
|
24
|
+
## Table of Contents
|
|
25
|
+
|
|
26
|
+
1. [Security Principles Explained](#security-principles-explained)
|
|
27
|
+
2. [OWASP Top 10 Detailed Analysis](#owasp-top-10-detailed-analysis)
|
|
28
|
+
3. [Authentication Deep Dive](#authentication-deep-dive)
|
|
29
|
+
4. [Authorization Patterns](#authorization-patterns)
|
|
30
|
+
5. [Input Validation Strategies](#input-validation-strategies)
|
|
31
|
+
6. [Cryptography Explained](#cryptography-explained)
|
|
32
|
+
7. [Secure Coding Patterns](#secure-coding-patterns)
|
|
33
|
+
8. [Security Testing Methods](#security-testing-methods)
|
|
34
|
+
9. [Secrets Management Practices](#secrets-management-practices)
|
|
35
|
+
10. [Security Logging Best Practices](#security-logging-best-practices)
|
|
36
|
+
11. [Incident Response Process](#incident-response-process)
|
|
37
|
+
12. [References](#references)
|
|
38
|
+
|
|
39
|
+
---
|
|
40
|
+
|
|
41
|
+
## Security Principles Explained
|
|
42
|
+
|
|
43
|
+
### Defense in Depth
|
|
44
|
+
|
|
45
|
+
```
|
|
46
|
+
┌─────────────────────────────────────────────────────────────────┐
|
|
47
|
+
│ Defense in Depth Model │
|
|
48
|
+
├─────────────────────────────────────────────────────────────────┤
|
|
49
|
+
│ │
|
|
50
|
+
│ Layer 1: Perimeter Security │
|
|
51
|
+
│ ├── Firewall, WAF, DDoS protection │
|
|
52
|
+
│ └── Network segmentation │
|
|
53
|
+
│ │
|
|
54
|
+
│ Layer 2: Application Security │
|
|
55
|
+
│ ├── Input validation, output encoding │
|
|
56
|
+
│ ├── Authentication, authorization │
|
|
57
|
+
│ └── Secure session management │
|
|
58
|
+
│ │
|
|
59
|
+
│ Layer 3: Data Security │
|
|
60
|
+
│ ├── Encryption at rest and in transit │
|
|
61
|
+
│ ├── Data masking, tokenization │
|
|
62
|
+
│ └── Access controls │
|
|
63
|
+
│ │
|
|
64
|
+
│ Layer 4: Monitoring & Response │
|
|
65
|
+
│ ├── Security logging, SIEM │
|
|
66
|
+
│ ├── Intrusion detection │
|
|
67
|
+
│ └── Incident response │
|
|
68
|
+
│ │
|
|
69
|
+
└─────────────────────────────────────────────────────────────────┘
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
關鍵洞見在於:沒有任何單一的安全控制是完美的。透過分層佈防,即使攻擊者突破了某一層,仍會面臨更多障礙。
|
|
73
|
+
|
|
74
|
+
---
|
|
75
|
+
|
|
76
|
+
## OWASP Top 10 Detailed Analysis
|
|
77
|
+
|
|
78
|
+
### A01:2021 – Broken Access Control
|
|
79
|
+
|
|
80
|
+
**為何位居第一**:存取控制失效從第 5 名躍升至第 1 名,原因在於應用程式越來越依賴複雜的權限系統,而這類系統極易設定錯誤。
|
|
81
|
+
|
|
82
|
+
```
|
|
83
|
+
┌─────────────────────────────────────────────────────────────────┐
|
|
84
|
+
│ Broken Access Control Prevention │
|
|
85
|
+
├─────────────────────────────────────────────────────────────────┤
|
|
86
|
+
│ │
|
|
87
|
+
│ Vulnerabilities: │
|
|
88
|
+
│ ├── IDOR (Insecure Direct Object Reference) │
|
|
89
|
+
│ ├── Missing function-level access control │
|
|
90
|
+
│ ├── Privilege escalation │
|
|
91
|
+
│ └── CORS misconfiguration │
|
|
92
|
+
│ │
|
|
93
|
+
│ Prevention: │
|
|
94
|
+
│ ├── Deny by default, explicit allow list │
|
|
95
|
+
│ ├── Server-side access control (never trust client) │
|
|
96
|
+
│ ├── Validate object ownership on every request │
|
|
97
|
+
│ ├── Log access control failures, alert on anomalies │
|
|
98
|
+
│ └── Rate limit APIs to prevent enumeration │
|
|
99
|
+
│ │
|
|
100
|
+
└─────────────────────────────────────────────────────────────────┘
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
**IDOR 防護範例**:
|
|
104
|
+
```typescript
|
|
105
|
+
// ❌ Bad: Direct object reference without ownership check
|
|
106
|
+
app.get('/api/orders/:orderId', (req, res) => {
|
|
107
|
+
const order = db.orders.findById(req.params.orderId);
|
|
108
|
+
res.json(order);
|
|
109
|
+
});
|
|
110
|
+
|
|
111
|
+
// ✅ Good: Validate ownership
|
|
112
|
+
app.get('/api/orders/:orderId', authenticate, (req, res) => {
|
|
113
|
+
const order = db.orders.findById(req.params.orderId);
|
|
114
|
+
if (!order || order.userId !== req.user.id) {
|
|
115
|
+
return res.status(404).json({ error: 'Order not found' });
|
|
116
|
+
}
|
|
117
|
+
res.json(order);
|
|
118
|
+
});
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
### A03:2021 – Injection
|
|
122
|
+
|
|
123
|
+
**SQL Injection 防護**:
|
|
124
|
+
```typescript
|
|
125
|
+
// ❌ Bad: String concatenation (vulnerable to SQL injection)
|
|
126
|
+
const query = `SELECT * FROM users WHERE id = '${userId}'`;
|
|
127
|
+
|
|
128
|
+
// ✅ Good: Parameterized query
|
|
129
|
+
const query = 'SELECT * FROM users WHERE id = ?';
|
|
130
|
+
db.query(query, [userId]);
|
|
131
|
+
|
|
132
|
+
// ✅ Good: ORM with proper escaping
|
|
133
|
+
const user = await User.findOne({ where: { id: userId } });
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
**Command Injection 防護**:
|
|
137
|
+
```typescript
|
|
138
|
+
// ❌ Bad: Direct shell execution with user input is dangerous
|
|
139
|
+
// Never pass unvalidated user input to shell commands
|
|
140
|
+
|
|
141
|
+
// ✅ Good: Use library APIs with validated input
|
|
142
|
+
import sharp from 'sharp';
|
|
143
|
+
if (!/^[a-zA-Z0-9_-]+$/.test(filename)) {
|
|
144
|
+
throw new Error('Invalid filename');
|
|
145
|
+
}
|
|
146
|
+
await sharp(`${filename}.png`).toFile('output.jpg');
|
|
147
|
+
|
|
148
|
+
// ✅ Good: Use execFile with argument array (no shell)
|
|
149
|
+
import { execFile } from 'child_process';
|
|
150
|
+
execFile('convert', [validatedInput, 'output.jpg']);
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
### A10:2021 – Server-Side Request Forgery (SSRF)
|
|
154
|
+
|
|
155
|
+
```typescript
|
|
156
|
+
// ❌ Bad: Unvalidated URL from user input
|
|
157
|
+
const response = await fetch(userProvidedUrl);
|
|
158
|
+
|
|
159
|
+
// ✅ Good: Allowlist validation
|
|
160
|
+
const ALLOWED_HOSTS = ['api.trusted.com', 'cdn.trusted.com'];
|
|
161
|
+
const url = new URL(userProvidedUrl);
|
|
162
|
+
if (!ALLOWED_HOSTS.includes(url.hostname)) {
|
|
163
|
+
throw new Error('URL not allowed');
|
|
164
|
+
}
|
|
165
|
+
// Also: Block internal IPs (127.0.0.1, 10.x.x.x, 192.168.x.x, etc.)
|
|
166
|
+
```
|
|
167
|
+
|
|
168
|
+
---
|
|
169
|
+
|
|
170
|
+
## Authentication Deep Dive
|
|
171
|
+
|
|
172
|
+
### Password Storage Explained
|
|
173
|
+
|
|
174
|
+
```
|
|
175
|
+
┌─────────────────────────────────────────────────────────────────┐
|
|
176
|
+
│ Password Hashing Standards │
|
|
177
|
+
├─────────────────────────────────────────────────────────────────┤
|
|
178
|
+
│ │
|
|
179
|
+
│ ✅ Recommended Algorithms (in order): │
|
|
180
|
+
│ 1. Argon2id (winner of PHC, memory-hard) │
|
|
181
|
+
│ 2. bcrypt (cost factor ≥ 12) │
|
|
182
|
+
│ 3. scrypt (N=2^17, r=8, p=1) │
|
|
183
|
+
│ │
|
|
184
|
+
│ ❌ Never Use: │
|
|
185
|
+
│ - MD5, SHA1, SHA256 (without salt/iteration) │
|
|
186
|
+
│ - Plain text storage │
|
|
187
|
+
│ - Reversible encryption for passwords │
|
|
188
|
+
│ │
|
|
189
|
+
│ Configuration Example (Argon2id): │
|
|
190
|
+
│ - Memory: 64 MB │
|
|
191
|
+
│ - Iterations: 3 │
|
|
192
|
+
│ - Parallelism: 4 │
|
|
193
|
+
│ - Salt: 16 bytes (random per password) │
|
|
194
|
+
│ │
|
|
195
|
+
└─────────────────────────────────────────────────────────────────┘
|
|
196
|
+
```
|
|
197
|
+
|
|
198
|
+
**為何採用這些演算法?** 它們的設計目的就是要在計算上耗費高昂的成本,使得暴力破解攻擊變得不切實際。Argon2id 屬於 memory-hard(記憶體密集)演算法,意味著攻擊者難以利用 GPU 輕易地平行化攻擊。
|
|
199
|
+
|
|
200
|
+
### JWT Best Practices
|
|
201
|
+
|
|
202
|
+
```typescript
|
|
203
|
+
// ✅ JWT Configuration
|
|
204
|
+
const jwtConfig = {
|
|
205
|
+
algorithm: 'RS256', // Use asymmetric for distributed systems
|
|
206
|
+
expiresIn: '15m', // Short-lived access tokens
|
|
207
|
+
issuer: 'your-app.com',
|
|
208
|
+
audience: 'your-app.com',
|
|
209
|
+
};
|
|
210
|
+
|
|
211
|
+
// ✅ Validation checklist:
|
|
212
|
+
// - Verify signature with correct algorithm
|
|
213
|
+
// - Check exp, iat, nbf claims
|
|
214
|
+
// - Validate iss and aud claims
|
|
215
|
+
// - Use allowlist for algorithms (prevent "none" attack)
|
|
216
|
+
|
|
217
|
+
// ❌ Never:
|
|
218
|
+
// - Store sensitive data in JWT payload
|
|
219
|
+
// - Use symmetric keys for multi-party systems
|
|
220
|
+
// - Set expiresIn > 1 hour for access tokens
|
|
221
|
+
```
|
|
222
|
+
|
|
223
|
+
---
|
|
224
|
+
|
|
225
|
+
## Authorization Patterns
|
|
226
|
+
|
|
227
|
+
### RBAC Model Example
|
|
228
|
+
|
|
229
|
+
```
|
|
230
|
+
┌─────────────────────────────────────────────────────────────────┐
|
|
231
|
+
│ RBAC Model Example │
|
|
232
|
+
├─────────────────────────────────────────────────────────────────┤
|
|
233
|
+
│ │
|
|
234
|
+
│ Roles: │
|
|
235
|
+
│ ├── admin → All permissions │
|
|
236
|
+
│ ├── manager → Read, Write, Delete (own team) │
|
|
237
|
+
│ ├── editor → Read, Write │
|
|
238
|
+
│ └── viewer → Read only │
|
|
239
|
+
│ │
|
|
240
|
+
│ Permissions: │
|
|
241
|
+
│ ├── resource:read │
|
|
242
|
+
│ ├── resource:write │
|
|
243
|
+
│ ├── resource:delete │
|
|
244
|
+
│ └── resource:admin │
|
|
245
|
+
│ │
|
|
246
|
+
│ Assignment: │
|
|
247
|
+
│ User → Role → Permissions │
|
|
248
|
+
│ │
|
|
249
|
+
└─────────────────────────────────────────────────────────────────┘
|
|
250
|
+
```
|
|
251
|
+
|
|
252
|
+
### ABAC for Complex Policies
|
|
253
|
+
|
|
254
|
+
當 RBAC 不足以應付需求時(複雜的政策):
|
|
255
|
+
|
|
256
|
+
```typescript
|
|
257
|
+
// ABAC Policy Example
|
|
258
|
+
const policy = {
|
|
259
|
+
effect: 'allow',
|
|
260
|
+
action: 'document:edit',
|
|
261
|
+
conditions: {
|
|
262
|
+
'user.department': { equals: 'resource.department' },
|
|
263
|
+
'user.clearanceLevel': { greaterThanOrEqual: 'resource.sensitivityLevel' },
|
|
264
|
+
'time.hour': { between: [9, 17] },
|
|
265
|
+
},
|
|
266
|
+
};
|
|
267
|
+
```
|
|
268
|
+
|
|
269
|
+
---
|
|
270
|
+
|
|
271
|
+
## Input Validation Strategies
|
|
272
|
+
|
|
273
|
+
### Validation Layers
|
|
274
|
+
|
|
275
|
+
```
|
|
276
|
+
┌─────────────────────────────────────────────────────────────────┐
|
|
277
|
+
│ Input Validation Layers │
|
|
278
|
+
├─────────────────────────────────────────────────────────────────┤
|
|
279
|
+
│ │
|
|
280
|
+
│ 1. Client-side (UX only, not security) │
|
|
281
|
+
│ └── Immediate feedback, reduce server load │
|
|
282
|
+
│ │
|
|
283
|
+
│ 2. API Gateway / Edge │
|
|
284
|
+
│ └── Rate limiting, basic format validation │
|
|
285
|
+
│ │
|
|
286
|
+
│ 3. Application Layer (PRIMARY) │
|
|
287
|
+
│ ├── Type validation (schema validation) │
|
|
288
|
+
│ ├── Business rule validation │
|
|
289
|
+
│ └── Sanitization │
|
|
290
|
+
│ │
|
|
291
|
+
│ 4. Database Layer │
|
|
292
|
+
│ └── Constraints, triggers (last line of defense) │
|
|
293
|
+
│ │
|
|
294
|
+
└─────────────────────────────────────────────────────────────────┘
|
|
295
|
+
```
|
|
296
|
+
|
|
297
|
+
**關鍵洞見**:用戶端驗證僅用於提升使用者體驗。所有安全驗證都必須在伺服器端進行。
|
|
298
|
+
|
|
299
|
+
---
|
|
300
|
+
|
|
301
|
+
## Cryptography Explained
|
|
302
|
+
|
|
303
|
+
### Key Management Lifecycle
|
|
304
|
+
|
|
305
|
+
```
|
|
306
|
+
┌─────────────────────────────────────────────────────────────────┐
|
|
307
|
+
│ Key Management Lifecycle │
|
|
308
|
+
├─────────────────────────────────────────────────────────────────┤
|
|
309
|
+
│ │
|
|
310
|
+
│ 1. Generation │
|
|
311
|
+
│ ├── Use cryptographically secure RNG │
|
|
312
|
+
│ ├── Generate in secure environment (HSM, KMS) │
|
|
313
|
+
│ └── Never generate client-side │
|
|
314
|
+
│ │
|
|
315
|
+
│ 2. Storage │
|
|
316
|
+
│ ├── Use KMS (AWS KMS, HashiCorp Vault, Azure Key Vault) │
|
|
317
|
+
│ ├── Never store in code or version control │
|
|
318
|
+
│ └── Encrypt keys at rest with master key │
|
|
319
|
+
│ │
|
|
320
|
+
│ 3. Distribution │
|
|
321
|
+
│ ├── Use secure channels only │
|
|
322
|
+
│ └── Implement key wrapping │
|
|
323
|
+
│ │
|
|
324
|
+
│ 4. Rotation │
|
|
325
|
+
│ ├── Define rotation schedule (90 days typical) │
|
|
326
|
+
│ ├── Support graceful rotation (multiple active keys) │
|
|
327
|
+
│ └── Automate rotation where possible │
|
|
328
|
+
│ │
|
|
329
|
+
│ 5. Revocation & Destruction │
|
|
330
|
+
│ ├── Immediate revocation on compromise │
|
|
331
|
+
│ └── Secure deletion (memory wipe, crypto-shredding) │
|
|
332
|
+
│ │
|
|
333
|
+
└─────────────────────────────────────────────────────────────────┘
|
|
334
|
+
```
|
|
335
|
+
|
|
336
|
+
---
|
|
337
|
+
|
|
338
|
+
## Secure Coding Patterns
|
|
339
|
+
|
|
340
|
+
### Error Handling
|
|
341
|
+
|
|
342
|
+
```typescript
|
|
343
|
+
// ❌ Bad: Exposes internal details
|
|
344
|
+
catch (error) {
|
|
345
|
+
res.status(500).json({ error: error.message, stack: error.stack });
|
|
346
|
+
}
|
|
347
|
+
|
|
348
|
+
// ✅ Good: Generic message, log details internally
|
|
349
|
+
catch (error) {
|
|
350
|
+
logger.error('Database error', { error, requestId: req.id });
|
|
351
|
+
res.status(500).json({
|
|
352
|
+
error: 'An internal error occurred',
|
|
353
|
+
requestId: req.id
|
|
354
|
+
});
|
|
355
|
+
}
|
|
356
|
+
```
|
|
357
|
+
|
|
358
|
+
**為什麼?** 錯誤訊息可能洩漏以下資訊:
|
|
359
|
+
- 資料庫結構(SQL 錯誤)
|
|
360
|
+
- 檔案系統路徑(堆疊追蹤)
|
|
361
|
+
- 函式庫版本(有助於鎖定已知漏洞發動攻擊)
|
|
362
|
+
|
|
363
|
+
---
|
|
364
|
+
|
|
365
|
+
## Security Testing Methods
|
|
366
|
+
|
|
367
|
+
### CI/CD Security Integration
|
|
368
|
+
|
|
369
|
+
```yaml
|
|
370
|
+
# Example: GitHub Actions Security Pipeline
|
|
371
|
+
name: Security Checks
|
|
372
|
+
|
|
373
|
+
on: [push, pull_request]
|
|
374
|
+
|
|
375
|
+
jobs:
|
|
376
|
+
security:
|
|
377
|
+
runs-on: ubuntu-latest
|
|
378
|
+
steps:
|
|
379
|
+
- uses: actions/checkout@v4
|
|
380
|
+
|
|
381
|
+
# Dependency vulnerability check
|
|
382
|
+
- name: npm audit
|
|
383
|
+
run: npm audit --audit-level=high
|
|
384
|
+
|
|
385
|
+
# SAST
|
|
386
|
+
- name: Run Semgrep
|
|
387
|
+
uses: returntocorp/semgrep-action@v1
|
|
388
|
+
with:
|
|
389
|
+
config: p/owasp-top-ten
|
|
390
|
+
|
|
391
|
+
# Secrets scanning
|
|
392
|
+
- name: GitLeaks
|
|
393
|
+
uses: gitleaks/gitleaks-action@v2
|
|
394
|
+
|
|
395
|
+
# Container scanning
|
|
396
|
+
- name: Trivy
|
|
397
|
+
uses: aquasecurity/trivy-action@master
|
|
398
|
+
with:
|
|
399
|
+
scan-type: 'fs'
|
|
400
|
+
severity: 'CRITICAL,HIGH'
|
|
401
|
+
```
|
|
402
|
+
|
|
403
|
+
---
|
|
404
|
+
|
|
405
|
+
## Security Logging Best Practices
|
|
406
|
+
|
|
407
|
+
### What to Log
|
|
408
|
+
|
|
409
|
+
| 類別 | 事件 |
|
|
410
|
+
|----------|--------|
|
|
411
|
+
| **Authentication** | 登入成功/失敗、登出、MFA 事件 |
|
|
412
|
+
| **Authorization** | 拒絕存取、權限提升嘗試 |
|
|
413
|
+
| **Data Access** | 敏感資料存取、大量匯出 |
|
|
414
|
+
| **Admin Actions** | 使用者建立、權限變更 |
|
|
415
|
+
| **Security Events** | 輸入驗證失敗、觸及速率限制 |
|
|
416
|
+
|
|
417
|
+
### Log Format
|
|
418
|
+
|
|
419
|
+
```json
|
|
420
|
+
{
|
|
421
|
+
"timestamp": "2025-01-15T10:30:00.123Z",
|
|
422
|
+
"level": "SECURITY",
|
|
423
|
+
"event_type": "authentication_failure",
|
|
424
|
+
"user_id": "usr_12345",
|
|
425
|
+
"ip_address": "203.0.113.50",
|
|
426
|
+
"user_agent": "Mozilla/5.0...",
|
|
427
|
+
"request_id": "req_abc123",
|
|
428
|
+
"details": {
|
|
429
|
+
"reason": "invalid_password",
|
|
430
|
+
"attempt_count": 3
|
|
431
|
+
}
|
|
432
|
+
}
|
|
433
|
+
```
|
|
434
|
+
|
|
435
|
+
---
|
|
436
|
+
|
|
437
|
+
## Incident Response Process
|
|
438
|
+
|
|
439
|
+
```
|
|
440
|
+
┌─────────────────────────────────────────────────────────────────┐
|
|
441
|
+
│ Security Incident Response │
|
|
442
|
+
├─────────────────────────────────────────────────────────────────┤
|
|
443
|
+
│ │
|
|
444
|
+
│ 1. IDENTIFY │
|
|
445
|
+
│ ├── Detect and confirm the incident │
|
|
446
|
+
│ ├── Determine scope and impact │
|
|
447
|
+
│ └── Assign severity level │
|
|
448
|
+
│ │
|
|
449
|
+
│ 2. CONTAIN │
|
|
450
|
+
│ ├── Isolate affected systems │
|
|
451
|
+
│ ├── Preserve evidence │
|
|
452
|
+
│ └── Prevent further damage │
|
|
453
|
+
│ │
|
|
454
|
+
│ 3. ERADICATE │
|
|
455
|
+
│ ├── Remove threat actor access │
|
|
456
|
+
│ ├── Patch vulnerabilities │
|
|
457
|
+
│ └── Reset compromised credentials │
|
|
458
|
+
│ │
|
|
459
|
+
│ 4. RECOVER │
|
|
460
|
+
│ ├── Restore systems from clean backups │
|
|
461
|
+
│ ├── Verify system integrity │
|
|
462
|
+
│ └── Monitor for reoccurrence │
|
|
463
|
+
│ │
|
|
464
|
+
│ 5. LESSONS LEARNED │
|
|
465
|
+
│ ├── Document timeline and actions │
|
|
466
|
+
│ ├── Identify root cause │
|
|
467
|
+
│ └── Update security controls │
|
|
468
|
+
│ │
|
|
469
|
+
└─────────────────────────────────────────────────────────────────┘
|
|
470
|
+
```
|
|
471
|
+
|
|
472
|
+
---
|
|
473
|
+
|
|
474
|
+
## References
|
|
475
|
+
|
|
476
|
+
### Standards
|
|
477
|
+
- [OWASP Top 10 (2021)](https://owasp.org/Top10/)
|
|
478
|
+
- [OWASP ASVS v4.0](https://owasp.org/www-project-application-security-verification-standard/)
|
|
479
|
+
- [OWASP Cheat Sheet Series](https://cheatsheetseries.owasp.org/)
|
|
480
|
+
- [NIST SP 800-53 Rev 5](https://csrc.nist.gov/publications/detail/sp/800-53/rev-5/final)
|
|
481
|
+
- [CWE/SANS Top 25](https://cwe.mitre.org/top25/)
|
|
482
|
+
|
|
483
|
+
### Books
|
|
484
|
+
- OWASP - "OWASP Testing Guide v4"
|
|
485
|
+
- Adam Shostack - "Threat Modeling: Designing for Security" (2014)
|
|
486
|
+
- Dafydd Stuttard - "The Web Application Hacker's Handbook" (2011)
|
|
487
|
+
|
|
488
|
+
---
|
|
489
|
+
|
|
490
|
+
## License
|
|
491
|
+
|
|
492
|
+
本指南以 [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/) 授權發布。
|
|
493
|
+
|
|
494
|
+
**來源**: [core/guides/security-guide.md](../../../../core/guides/security-guide.md)
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
---
|
|
2
|
+
source: ../../../core/iac-design-principles.md
|
|
3
|
+
source_version: 1.0.0
|
|
4
|
+
translation_version: 1.0.0
|
|
5
|
+
last_synced: 2026-06-17
|
|
6
|
+
source_hash: 6cf9c75621e0
|
|
7
|
+
status: current
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# 基礎設施即程式碼設計原則
|
|
11
|
+
|
|
12
|
+
> **Language**: [English](../../../core/iac-design-principles.md) | 繁體中文
|
|
13
|
+
|
|
14
|
+
> **版本**: 1.0.0 | **狀態**: Active | **更新日期**: 2026-06-17
|
|
15
|
+
> **AI 最佳化版本**: `ai/standards/iac-design-principles.ai.yaml`
|
|
16
|
+
> **規格**: XSPEC-065(cross-project/specs/XSPEC-065-uds-infrastructure-pack.md)
|
|
17
|
+
|
|
18
|
+
## 概觀
|
|
19
|
+
|
|
20
|
+
本標準定義基礎設施即程式碼(IaC)撰寫的四項基礎原則:**可重現、不可變、冪等、
|
|
21
|
+
版本化**。涵蓋狀態管理要求(含鎖定的遠端狀態)、漂移偵測類別,以及 CI/CD 整合。
|
|
22
|
+
設計目標為確保基礎設施變更可追溯、可逆,並可重複套用而無非預期副作用。
|
|
23
|
+
|
|
24
|
+
本標準屬於 **IaC 標準包**(XSPEC-065),並作為 `container-image-standards` 與
|
|
25
|
+
`secret-management-standards` 所立基的工具無關基礎(映像與機密後端本身即是版本化、
|
|
26
|
+
可重現的基礎設施)。
|
|
27
|
+
|
|
28
|
+
> **範圍**:本標準定義*撰寫原則*、*狀態管理*規則與*漂移處理分類*。特定 IaC 工具
|
|
29
|
+
> (Terraform/Pulumi/CloudFormation)與後端屬採用者的選擇,不在本標準範圍內。
|
|
30
|
+
|
|
31
|
+
## 需求
|
|
32
|
+
|
|
33
|
+
| ID | 規則 | 等級 |
|
|
34
|
+
|----|------|------|
|
|
35
|
+
| REQ-001 | IaC 四原則(可重現、不可變、冪等、版本化) | MUST |
|
|
36
|
+
| REQ-002 | 狀態管理(遠端後端、鎖定、加密、VCS 不存本地狀態) | MUST |
|
|
37
|
+
| REQ-003 | 漂移偵測(PR 上執行 plan;三類分類) | MUST |
|
|
38
|
+
|
|
39
|
+
### REQ-001 — IaC 四原則
|
|
40
|
+
|
|
41
|
+
所有基礎設施定義 MUST 遵循四項基礎原則:(1) **可重現**——在相同輸入與狀態下,套用
|
|
42
|
+
IaC 產生相同的基礎設施;(2) **不可變**——基礎設施變更以取代資源的方式套用,而非
|
|
43
|
+
就地變更;blue/green 或滾動取代模式優於就地變更;(3) **冪等**——多次套用相同 IaC
|
|
44
|
+
設定產生相同結果,無錯誤或非預期副作用;(4) **版本化**——所有 IaC 定義儲存於版本
|
|
45
|
+
控制並具備有意義的 commit message;不在 VCS 流程外進行任何基礎設施變更。
|
|
46
|
+
|
|
47
|
+
### REQ-002 — 狀態管理
|
|
48
|
+
|
|
49
|
+
IaC 狀態 MUST 儲存於啟用鎖定的遠端後端,以防止並行修改。本地狀態檔 MUST NOT 提交
|
|
50
|
+
至版本控制或用於 CI/CD 管線。建議後端:Terraform Cloud/S3+DynamoDB(Terraform)、
|
|
51
|
+
Pulumi Service/S3(Pulumi)、CloudFormation 原生 stack 狀態。狀態存取 MUST 透過 IAM
|
|
52
|
+
或同等機制限制為獲授權主體。狀態靜態加密為 REQUIRED。
|
|
53
|
+
|
|
54
|
+
### REQ-003 — 漂移偵測
|
|
55
|
+
|
|
56
|
+
團隊 MUST 在每個 pull request 於 CI 執行 `plan`(或同等)以偵測設定漂移。漂移結果
|
|
57
|
+
MUST 分類為三類之一並據以處理:(1) **rollback-to-code**——實際基礎設施因手動變更而
|
|
58
|
+
偏離程式碼;於下次 apply 將實際還原以符合程式碼;(2) **update-code-from-actual**——
|
|
59
|
+
實際反映尚未編碼的有意變更;更新 IaC 以符合,然後 apply;(3) **manual-reconcile**——
|
|
60
|
+
漂移需人為判斷(例如資料 volume 變更);以文件化決策上呈基礎設施負責人。漂移報告
|
|
61
|
+
SHOULD 依排定節奏(例如每日)發布至團隊頻道。
|
|
62
|
+
|
|
63
|
+
## 反模式
|
|
64
|
+
|
|
65
|
+
- 將本地狀態檔(`terraform.tfstate`)提交至版本控制。
|
|
66
|
+
- 套用可變的就地變更(例如以 sed patch 執行中的 VM)而非取代資源。
|
|
67
|
+
- 進行手動 console 變更而未更新對應的 IaC 定義。
|
|
68
|
+
- 不使用遠端鎖定,允許並行 apply 而損毀狀態。
|
|
69
|
+
- pin 至 `latest` provider 或 module 版本,破壞可重現性。
|
|
70
|
+
|
|
71
|
+
## 與既有標準的整合
|
|
72
|
+
|
|
73
|
+
- **`container-image-standards`**——容器映像是依相同原則產生的版本化、可重現產物。
|
|
74
|
+
- **`secret-management-standards`**——機密後端(Vault/KMS)作為具遠端狀態、受存取
|
|
75
|
+
控制的基礎設施管理。
|
|
76
|
+
- **`deployment-standards` / `cd-deployment-strategies`**——不可變取代(REQ-001)
|
|
77
|
+
支撐 blue/green 與滾動部署模式。
|
|
78
|
+
- **`no-cicd-deployment`**——即使無 CI/CD 平台,四原則與狀態管理規則仍適用於腳本化
|
|
79
|
+
的基礎設施變更。
|
|
80
|
+
|
|
81
|
+
## 相關規格
|
|
82
|
+
|
|
83
|
+
- XSPEC-065 — UDS 基礎設施(IaC)標準包(本標準來源)
|
|
84
|
+
- DEC-043 — UDS 覆蓋完整性路線圖(Wave 4 範圍)
|
|
85
|
+
|
|
86
|
+
## 變更紀錄
|
|
87
|
+
|
|
88
|
+
| 版本 | 日期 | 變更 |
|
|
89
|
+
|------|------|------|
|
|
90
|
+
| v1.0.0 | 2026-06-17 | 初版——REQ-001~003:IaC 四原則、狀態管理、漂移偵測(XSPEC-065) |
|