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) | [繁體中文](../../zh-TW/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,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
|
+
> **语言**: [English](../../../core/smoke-test.md) | [繁體中文](../../zh-TW/core/smoke-test.md) | 简体中文
|
|
13
|
+
|
|
14
|
+
## 概述
|
|
15
|
+
|
|
16
|
+
Smoke test 是部署后的第一道防线。它在 30 秒内回答一个问题:「系统是否基本正常工作?」如果 smoke test 通过,你可以高度确信部署成功。如果失败,立即回滚——不要在 production 上排查。
|
|
17
|
+
|
|
18
|
+
## 该测什么
|
|
19
|
+
|
|
20
|
+
| ✅ Smoke Test | ❌ 非 Smoke Test |
|
|
21
|
+
|--------------|-----------------|
|
|
22
|
+
| 服务器启动并绑定端口 | 业务逻辑正确性 |
|
|
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
|
+
**范围**: universal
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
---
|
|
2
2
|
source: ../../../core/spec-driven-development.md
|
|
3
|
-
source_version: 2.
|
|
4
|
-
translation_version: 2.
|
|
5
|
-
last_synced: 2026-
|
|
3
|
+
source_version: 2.3.0
|
|
4
|
+
translation_version: 2.3.0
|
|
5
|
+
last_synced: 2026-06-10
|
|
6
|
+
source_hash: 08dd8c2bee20
|
|
6
7
|
status: current
|
|
7
8
|
---
|
|
8
9
|
|
|
@@ -119,6 +120,21 @@ SDD **不是** "ATDD → BDD → TDD" 序列的一部分。相反,它通过正
|
|
|
119
120
|
|
|
120
121
|
---
|
|
121
122
|
|
|
123
|
+
## 快速参考
|
|
124
|
+
|
|
125
|
+
| 方面 | 说明 |
|
|
126
|
+
|------|------|
|
|
127
|
+
| **核心工作流** | 讨论 → 提案 → 审查 → 实现 → 验证 → 归档 |
|
|
128
|
+
| **核心原则** | 规格优先,代码在后 |
|
|
129
|
+
| **AC 格式** | Given/When/Then(GWT,默认——支持 BDD 推导)**或** EARS 记法(可选,XSPEC-263) |
|
|
130
|
+
| **测试生成** | 正向推导(/derive-bdd, /derive-tdd, /derive-all) |
|
|
131
|
+
| **成熟度级别** | 规格优先、规格锚定、规格即源 |
|
|
132
|
+
| **工具** | OpenSpec, Spec Kit, 手动(基于文件) |
|
|
133
|
+
| **I/O 合约** | 可选的结构化输入/输出定义,用于跨规格数据流 |
|
|
134
|
+
| **假设** | 必须的假设追踪章节([Assumption] 和 [Need Confirmation]) |
|
|
135
|
+
| **AC YAML Sidecar** | 推荐使用 .ac.yaml 实现机器可读的 AC(当 AC 数量 > 3 时) |
|
|
136
|
+
| **AI Agent 行为** | 可选章节,定义规格内的 agent 角色、规则、质量检查和约束 |
|
|
137
|
+
|
|
122
138
|
## AC 格式
|
|
123
139
|
|
|
124
140
|
UDS 支持两种 AC 记法。**GWT 为预设与首选**(Forward Derivation/BDD 场景生成依赖它)。**EARS**(Easy Approach to Requirements Syntax,IBM Rational)为可选补充,对事件/状态/恒常/异常需求表达更精准(XSPEC-263)。
|
|
@@ -133,6 +149,26 @@ UDS 支持两种 AC 记法。**GWT 为预设与首选**(Forward Derivation/B
|
|
|
133
149
|
|
|
134
150
|
每个 AC 提供 **GWT 或 EARS** 之一(`.ac.yaml` 的 `given/when/then` 或 `ears`)。BDD 可推导行为优先 GWT;GWT 表达牵强时改用 EARS。不强制两者并存、不移除 GWT。
|
|
135
151
|
|
|
152
|
+
## v2.3.0 新增内容
|
|
153
|
+
|
|
154
|
+
- **EARS 记法**作为可选 AC 格式(XSPEC-263):5 种 EARS 模板 + `.ac.yaml` 的 `ears` 字段。GWT 仍为默认和首选格式;`given/when/then` 从 `required` 放宽(向后兼容)。
|
|
155
|
+
|
|
156
|
+
## v2.2.0 新增内容
|
|
157
|
+
|
|
158
|
+
- **AC YAML Sidecar**:通过 `.ac.yaml` 文件实现机器可读的验收条件(schema: `specs/schemas/acceptance-criteria.schema.yaml`)
|
|
159
|
+
- **I/O 合约章节**:规格模板中的可选结构化输入/输出合约
|
|
160
|
+
- **假设与待厘清章节**:新规格的必须章节,整合防幻觉标签
|
|
161
|
+
- **AI Agent 行为章节**:在规格内定义 AI agent 行为的可选章节
|
|
162
|
+
|
|
163
|
+
> 现有规格**不需要**回填这些章节。
|
|
164
|
+
|
|
165
|
+
## 相关标准
|
|
166
|
+
|
|
167
|
+
- [正向推导标准](forward-derivation-standards.md)
|
|
168
|
+
- [反向工程标准](reverse-engineering-standards.md)
|
|
169
|
+
- [测试驱动开发](test-driven-development.md)
|
|
170
|
+
- [行为驱动开发](behavior-driven-development.md)
|
|
171
|
+
|
|
136
172
|
## 常见陷阱
|
|
137
173
|
|
|
138
174
|
采用 SDD 时避免这些常见陷阱:
|