universal-dev-standards 5.16.0 → 6.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bin/uds.js +13 -135
- 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 +2 -2
- 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/flow-based-testing.ai.yaml +2 -2
- package/bundled/ai/standards/forward-derivation-standards.ai.yaml +26 -2
- 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/refactoring-standards.ai.yaml +68 -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/skill-standard-alignment-check.ai.yaml +37 -2
- package/bundled/ai/standards/user-journey-testing.ai.yaml +107 -0
- 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 +9 -2
- 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 +1 -1
- package/bundled/core/error-code-standards.md +4 -3
- 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/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/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/refactoring-standards.md +44 -3
- package/bundled/core/replay-test.md +1 -1
- 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 +2 -2
- 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/spec-driven-development.md +21 -3
- 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-oracle.md +167 -0
- package/bundled/core/versioning.md +133 -109
- package/bundled/locales/COVERAGE.md +84 -73
- package/bundled/locales/zh-CN/CHANGELOG.md +81 -6
- package/bundled/locales/zh-CN/CLAUDE.md +1 -1
- package/bundled/locales/zh-CN/README.md +22 -9
- package/bundled/locales/zh-CN/SECURITY.md +1 -1
- package/bundled/locales/zh-CN/adoption/DAILY-WORKFLOW-GUIDE.md +2 -2
- 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 +229 -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 +199 -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/full-coverage-testing.md +197 -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 +129 -0
- package/bundled/locales/zh-CN/core/llm-output-validation.md +192 -0
- package/bundled/locales/zh-CN/core/logging-standards.md +130 -8
- package/bundled/locales/zh-CN/core/mock-boundary.md +109 -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 +76 -5
- package/bundled/locales/zh-CN/core/pipeline-security-gates.md +126 -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/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 +96 -0
- package/bundled/locales/zh-CN/core/self-review-protocol.md +167 -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 +55 -5
- package/bundled/locales/zh-CN/core/supply-chain-attestation.md +131 -0
- package/bundled/locales/zh-CN/core/versioning.md +1 -1
- package/bundled/locales/zh-CN/docs/CHEATSHEET.md +31 -6
- package/bundled/locales/zh-CN/docs/FEATURE-REFERENCE.md +61 -34
- 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/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 +109 -13
- package/bundled/locales/zh-CN/skills/brainstorm-assistant/guide.md +30 -8
- 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 +146 -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 +81 -6
- package/bundled/locales/zh-TW/CLAUDE.md +1 -1
- package/bundled/locales/zh-TW/MAINTENANCE.md +25 -2
- package/bundled/locales/zh-TW/README.md +22 -9
- package/bundled/locales/zh-TW/SECURITY.md +1 -1
- package/bundled/locales/zh-TW/adoption/DAILY-WORKFLOW-GUIDE.md +2 -2
- 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/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 +129 -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 +76 -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 +126 -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/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 +96 -0
- package/bundled/locales/zh-TW/core/self-review-protocol.md +2 -2
- 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 +39 -13
- 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-oracle.md +159 -0
- package/bundled/locales/zh-TW/core/versioning.md +112 -112
- package/bundled/locales/zh-TW/docs/CHEATSHEET.md +31 -6
- package/bundled/locales/zh-TW/docs/DEV-WORKFLOW-MAPPING.md +6 -6
- package/bundled/locales/zh-TW/docs/FEATURE-REFERENCE.md +61 -34
- 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/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 +110 -14
- package/bundled/locales/zh-TW/skills/brainstorm-assistant/guide.md +31 -7
- 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 +29 -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 +133 -11
- package/bundled/skills/brainstorm-assistant/guide.md +33 -5
- 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 +27 -0
- 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 +3 -3
- 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 +110 -58
- 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 +58 -146
- 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,165 @@
|
|
|
1
|
+
---
|
|
2
|
+
source: options/project-structure/swift.md
|
|
3
|
+
source_version: 1.0.0
|
|
4
|
+
translation_version: 1.0.0
|
|
5
|
+
status: current
|
|
6
|
+
---
|
|
7
|
+
# Swift 项目结构
|
|
8
|
+
|
|
9
|
+
> **语言**: [English](../../../../options/project-structure/swift.md) | 简体中文
|
|
10
|
+
|
|
11
|
+
**上层标准**: [项目结构](../../core/project-structure.md)
|
|
12
|
+
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
## 概览
|
|
16
|
+
|
|
17
|
+
Swift 项目可使用 Swift Package Manager (SPM) 或 Xcode 来管理。iOS/macOS 应用程序通常使用 Xcode 项目,而库与服务器端 Swift 则使用 SPM。
|
|
18
|
+
|
|
19
|
+
## 项目类型
|
|
20
|
+
|
|
21
|
+
### SPM Library
|
|
22
|
+
|
|
23
|
+
```
|
|
24
|
+
project-root/
|
|
25
|
+
├── Sources/
|
|
26
|
+
│ └── PackageName/
|
|
27
|
+
│ ├── PackageName.swift
|
|
28
|
+
│ ├── Models/
|
|
29
|
+
│ ├── Services/
|
|
30
|
+
│ └── Utilities/
|
|
31
|
+
├── Tests/
|
|
32
|
+
│ └── PackageNameTests/
|
|
33
|
+
│ └── PackageNameTests.swift
|
|
34
|
+
├── Package.swift
|
|
35
|
+
└── README.md
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
### SPM Executable
|
|
39
|
+
|
|
40
|
+
```
|
|
41
|
+
project-root/
|
|
42
|
+
├── Sources/
|
|
43
|
+
│ ├── AppName/
|
|
44
|
+
│ │ └── main.swift
|
|
45
|
+
│ └── AppNameCore/
|
|
46
|
+
│ └── Core.swift
|
|
47
|
+
├── Tests/
|
|
48
|
+
│ └── AppNameTests/
|
|
49
|
+
├── Package.swift
|
|
50
|
+
└── README.md
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
### iOS App
|
|
54
|
+
|
|
55
|
+
```
|
|
56
|
+
project-root/
|
|
57
|
+
├── AppName/
|
|
58
|
+
│ ├── App/
|
|
59
|
+
│ │ ├── AppNameApp.swift
|
|
60
|
+
│ │ └── ContentView.swift
|
|
61
|
+
│ ├── Features/
|
|
62
|
+
│ │ ├── Home/
|
|
63
|
+
│ │ │ ├── HomeView.swift
|
|
64
|
+
│ │ │ └── HomeViewModel.swift
|
|
65
|
+
│ │ └── Settings/
|
|
66
|
+
│ ├── Core/
|
|
67
|
+
│ │ ├── Models/
|
|
68
|
+
│ │ ├── Services/
|
|
69
|
+
│ │ └── Utilities/
|
|
70
|
+
│ ├── Resources/
|
|
71
|
+
│ │ ├── Assets.xcassets
|
|
72
|
+
│ │ └── Localizable.strings
|
|
73
|
+
│ └── Info.plist
|
|
74
|
+
├── AppNameTests/
|
|
75
|
+
├── AppNameUITests/
|
|
76
|
+
├── AppName.xcodeproj
|
|
77
|
+
└── README.md
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
### Vapor(服务器端)
|
|
81
|
+
|
|
82
|
+
```
|
|
83
|
+
project-root/
|
|
84
|
+
├── Sources/
|
|
85
|
+
│ ├── App/
|
|
86
|
+
│ │ ├── configure.swift
|
|
87
|
+
│ │ ├── routes.swift
|
|
88
|
+
│ │ ├── Controllers/
|
|
89
|
+
│ │ ├── Models/
|
|
90
|
+
│ │ └── Migrations/
|
|
91
|
+
│ └── Run/
|
|
92
|
+
│ └── main.swift
|
|
93
|
+
├── Tests/
|
|
94
|
+
│ └── AppTests/
|
|
95
|
+
├── Resources/
|
|
96
|
+
│ └── Views/
|
|
97
|
+
├── Public/
|
|
98
|
+
├── Package.swift
|
|
99
|
+
└── docker-compose.yml
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
## 配置文件
|
|
103
|
+
|
|
104
|
+
| 文件 | 用途 | Required |
|
|
105
|
+
|------|------|----------|
|
|
106
|
+
| `Package.swift` | Swift Package Manager manifest | Yes (SPM) |
|
|
107
|
+
| `*.xcodeproj` | Xcode 项目 | Yes (Xcode) |
|
|
108
|
+
| `*.xcworkspace` | Xcode workspace | No |
|
|
109
|
+
| `.swiftlint.yml` | SwiftLint 配置 | No |
|
|
110
|
+
| `.swift-version` | Swift 版本 | No |
|
|
111
|
+
|
|
112
|
+
## .gitignore
|
|
113
|
+
|
|
114
|
+
```
|
|
115
|
+
.build/
|
|
116
|
+
.swiftpm/
|
|
117
|
+
*.xcodeproj/xcuserdata/
|
|
118
|
+
*.xcworkspace/xcuserdata/
|
|
119
|
+
DerivedData/
|
|
120
|
+
.DS_Store
|
|
121
|
+
Pods/
|
|
122
|
+
Carthage/
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
## 工具
|
|
126
|
+
|
|
127
|
+
| 类别 | 工具 |
|
|
128
|
+
|------|------|
|
|
129
|
+
| Build | Swift Package Manager, Xcode, xcodebuild |
|
|
130
|
+
| Test Runner | XCTest, Quick/Nimble |
|
|
131
|
+
| Linter | SwiftLint, SwiftFormat |
|
|
132
|
+
| Formatter | SwiftFormat, swift-format |
|
|
133
|
+
| Package Manager | Swift Package Manager, CocoaPods, Carthage |
|
|
134
|
+
| Documentation | DocC, Jazzy |
|
|
135
|
+
|
|
136
|
+
## 规则
|
|
137
|
+
|
|
138
|
+
| 规则 | 描述 | Priority |
|
|
139
|
+
|------|------|----------|
|
|
140
|
+
| Feature folders | 按功能分组,包含 View、ViewModel 与 Models | Recommended |
|
|
141
|
+
| SPM targets | 将 library 与 executable 拆分为不同的 target | Recommended |
|
|
142
|
+
| Protocol-oriented | 使用 protocol 进行抽象与依赖注入 | Recommended |
|
|
143
|
+
| Test naming | 使用 `test_methodName_condition_expectedResult` 格式 | Recommended |
|
|
144
|
+
| Access control | 使用最小访问级别(默认为 internal,API 才用 public) | Required |
|
|
145
|
+
|
|
146
|
+
## 相关选项
|
|
147
|
+
|
|
148
|
+
- [Kotlin](./kotlin.md) - Kotlin 项目结构
|
|
149
|
+
- [Rust](./rust.md) - Rust 项目结构
|
|
150
|
+
|
|
151
|
+
---
|
|
152
|
+
|
|
153
|
+
## 参考资料
|
|
154
|
+
|
|
155
|
+
- [Swift Package Manager](https://swift.org/package-manager/)
|
|
156
|
+
- [Apple Developer Documentation](https://developer.apple.com/documentation/)
|
|
157
|
+
- [Vapor](https://vapor.codes/)
|
|
158
|
+
|
|
159
|
+
---
|
|
160
|
+
|
|
161
|
+
## 许可
|
|
162
|
+
|
|
163
|
+
本文档以 [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/) 许可发布。
|
|
164
|
+
|
|
165
|
+
**来源**: [universal-dev-standards](https://github.com/AsiaOstrich/universal-dev-standards)
|
|
@@ -0,0 +1,237 @@
|
|
|
1
|
+
---
|
|
2
|
+
source: options/testing/contract-testing.md
|
|
3
|
+
source_version: 1.0.0
|
|
4
|
+
translation_version: 1.0.0
|
|
5
|
+
status: current
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Contract Testing
|
|
9
|
+
|
|
10
|
+
> **语言**: [English](../../../../options/testing/contract-testing.md) | 简体中文
|
|
11
|
+
|
|
12
|
+
**上层标准**: [Testing Completeness](../../core/test-completeness-dimensions.md)
|
|
13
|
+
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
## 概览
|
|
17
|
+
|
|
18
|
+
Contract testing 通过测试 consumer 与 provider 之间的协议(contract)来验证服务能否正确通信。它让团队可以独立开发与部署,同时确保彼此兼容。
|
|
19
|
+
|
|
20
|
+
## 最适用于
|
|
21
|
+
|
|
22
|
+
- 微服务架构
|
|
23
|
+
- API-first 开发
|
|
24
|
+
- 第三方集成
|
|
25
|
+
- 各自独立工作的团队
|
|
26
|
+
- 分布式系统
|
|
27
|
+
|
|
28
|
+
## Contract 类型
|
|
29
|
+
|
|
30
|
+
### Consumer-Driven Contracts (CDC)
|
|
31
|
+
|
|
32
|
+
由 API consumer 定义的 contract。
|
|
33
|
+
|
|
34
|
+
**流程:**
|
|
35
|
+
1. Consumer 定义预期的交互
|
|
36
|
+
2. 生成 contract(pact 文件)
|
|
37
|
+
3. Provider 依 contract 进行验证
|
|
38
|
+
4. 部署前双方都必须通过
|
|
39
|
+
|
|
40
|
+
**好处:**
|
|
41
|
+
- 由 consumer 的需求驱动 API 设计
|
|
42
|
+
- 解耦的部署
|
|
43
|
+
- 提早检测集成问题
|
|
44
|
+
|
|
45
|
+
### Provider Contracts
|
|
46
|
+
|
|
47
|
+
由 API provider 定义的 contract。
|
|
48
|
+
|
|
49
|
+
**使用场景:** 公开 API、OpenAPI-first 设计
|
|
50
|
+
|
|
51
|
+
**流程:**
|
|
52
|
+
1. Provider 定义 API 规格
|
|
53
|
+
2. Consumer 依规格进行测试
|
|
54
|
+
3. Provider 确保向后兼容性
|
|
55
|
+
|
|
56
|
+
## 工具
|
|
57
|
+
|
|
58
|
+
| 工具 | 类型 | 语言 |
|
|
59
|
+
|------|------|-----------|
|
|
60
|
+
| **Pact** | Consumer-driven | 多语言 |
|
|
61
|
+
| **Spring Cloud Contract** | 两者皆可 | JVM |
|
|
62
|
+
| **Dredd** | OpenAPI | 多语言 |
|
|
63
|
+
| **Prism** | Mock | 多语言 |
|
|
64
|
+
|
|
65
|
+
## Pact 工作流程
|
|
66
|
+
|
|
67
|
+
### Consumer 端
|
|
68
|
+
|
|
69
|
+
**1. 定义交互**
|
|
70
|
+
|
|
71
|
+
```javascript
|
|
72
|
+
const interaction = {
|
|
73
|
+
state: 'user exists',
|
|
74
|
+
uponReceiving: 'a request for user by id',
|
|
75
|
+
withRequest: {
|
|
76
|
+
method: 'GET',
|
|
77
|
+
path: '/users/1',
|
|
78
|
+
headers: { Accept: 'application/json' }
|
|
79
|
+
},
|
|
80
|
+
willRespondWith: {
|
|
81
|
+
status: 200,
|
|
82
|
+
headers: { 'Content-Type': 'application/json' },
|
|
83
|
+
body: {
|
|
84
|
+
id: like(1),
|
|
85
|
+
name: like('John'),
|
|
86
|
+
email: like('john@example.com')
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
};
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
**2. 执行 consumer 测试** - 测试针对 mock provider 执行
|
|
93
|
+
|
|
94
|
+
**3. 发布 contract** - 将 pact 文件上传至 broker
|
|
95
|
+
|
|
96
|
+
### Provider 端
|
|
97
|
+
|
|
98
|
+
**1. 获取 contract** - 从 broker 下载 contract
|
|
99
|
+
|
|
100
|
+
**2. 验证 contract**
|
|
101
|
+
|
|
102
|
+
```javascript
|
|
103
|
+
verifier.verifyProvider({
|
|
104
|
+
provider: 'UserService',
|
|
105
|
+
pactBrokerUrl: 'https://broker.example.com',
|
|
106
|
+
publishVerificationResult: true
|
|
107
|
+
});
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
**3. State 设置** - 为每个交互设置 provider state
|
|
111
|
+
|
|
112
|
+
## Pact Broker
|
|
113
|
+
|
|
114
|
+
contract 的集中式存储库,具备以下功能:
|
|
115
|
+
|
|
116
|
+
- Contract 存储
|
|
117
|
+
- 验证状态
|
|
118
|
+
- 依赖关系图
|
|
119
|
+
- Can-I-Deploy 检查
|
|
120
|
+
- 供 CI/CD 使用的 Webhook
|
|
121
|
+
|
|
122
|
+
### Can-I-Deploy
|
|
123
|
+
|
|
124
|
+
检查部署是否安全:
|
|
125
|
+
|
|
126
|
+
```bash
|
|
127
|
+
pact-broker can-i-deploy \
|
|
128
|
+
--pacticipant UserService \
|
|
129
|
+
--version $(git rev-parse HEAD) \
|
|
130
|
+
--to production
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
## CI 集成
|
|
134
|
+
|
|
135
|
+
### Consumer Pipeline
|
|
136
|
+
|
|
137
|
+
```yaml
|
|
138
|
+
stages:
|
|
139
|
+
- test:
|
|
140
|
+
- Run unit tests
|
|
141
|
+
- Run contract tests (generates pact)
|
|
142
|
+
- publish:
|
|
143
|
+
- Publish pact to broker
|
|
144
|
+
- can-i-deploy:
|
|
145
|
+
- Check deployment safety
|
|
146
|
+
- deploy:
|
|
147
|
+
- Deploy consumer
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
### Provider Pipeline
|
|
151
|
+
|
|
152
|
+
```yaml
|
|
153
|
+
stages:
|
|
154
|
+
- test:
|
|
155
|
+
- Run unit tests
|
|
156
|
+
- Verify consumer contracts
|
|
157
|
+
- publish:
|
|
158
|
+
- Publish verification results
|
|
159
|
+
- can-i-deploy:
|
|
160
|
+
- Check deployment safety
|
|
161
|
+
- deploy:
|
|
162
|
+
- Deploy provider
|
|
163
|
+
```
|
|
164
|
+
|
|
165
|
+
### GitHub Actions 示例
|
|
166
|
+
|
|
167
|
+
```yaml
|
|
168
|
+
name: Consumer Contract Tests
|
|
169
|
+
on: [push, pull_request]
|
|
170
|
+
jobs:
|
|
171
|
+
contract-test:
|
|
172
|
+
runs-on: ubuntu-latest
|
|
173
|
+
steps:
|
|
174
|
+
- uses: actions/checkout@v4
|
|
175
|
+
- name: Run contract tests
|
|
176
|
+
run: npm run test:contract
|
|
177
|
+
- name: Publish pact
|
|
178
|
+
run: npm run pact:publish
|
|
179
|
+
- name: Can I deploy?
|
|
180
|
+
run: |
|
|
181
|
+
pact-broker can-i-deploy \
|
|
182
|
+
--pacticipant MyConsumer \
|
|
183
|
+
--version ${{ github.sha }}
|
|
184
|
+
```
|
|
185
|
+
|
|
186
|
+
## 规则
|
|
187
|
+
|
|
188
|
+
| 规则 | 说明 | 优先级 |
|
|
189
|
+
|------|-------------|----------|
|
|
190
|
+
| Consumer 优先 | 从 consumer 需求出发,而非 provider 实现 | 建议 |
|
|
191
|
+
| 使用 matcher | 使用类型 matcher(like、eachLike)而非精确值 | 必需 |
|
|
192
|
+
| Provider state | 为每个交互定义清晰的 provider state | 必需 |
|
|
193
|
+
| 为 contract 加版本 | 以 consumer 版本与分支为 contract 加上标签 | 必需 |
|
|
194
|
+
| Can-I-Deploy | 一律在 CI/CD 中执行 can-i-deploy 检查 | 必需 |
|
|
195
|
+
| 破坏性变更 | 进行破坏性变更前先与 consumer 团队协调 | 必需 |
|
|
196
|
+
| 异步 contract | 为异步通信纳入 message contract | 建议 |
|
|
197
|
+
|
|
198
|
+
## 快速参考
|
|
199
|
+
|
|
200
|
+
### 工作流程
|
|
201
|
+
|
|
202
|
+
| 步骤 | Consumer | Provider |
|
|
203
|
+
|------|----------|----------|
|
|
204
|
+
| 1. 定义 | 编写预期 | 实现 API |
|
|
205
|
+
| 2. 测试 | 针对 mock 执行 | 验证 contract |
|
|
206
|
+
| 3. 发布 | 上传 pact | 上传结果 |
|
|
207
|
+
| 4. 部署 | Can-I-Deploy | Can-I-Deploy |
|
|
208
|
+
|
|
209
|
+
### 好处
|
|
210
|
+
|
|
211
|
+
| 好处 | 说明 |
|
|
212
|
+
|---------|-------------|
|
|
213
|
+
| 快速反馈 | 不需要完整的集成环境 |
|
|
214
|
+
| 解耦 | 团队可以独立工作 |
|
|
215
|
+
| 安全部署 | Can-I-Deploy 防止破坏性变更 |
|
|
216
|
+
| 活文档 | Contract 记录了 API 行为 |
|
|
217
|
+
|
|
218
|
+
## 相关选项
|
|
219
|
+
|
|
220
|
+
- [Integration Testing](./integration-testing.md) - 组件集成测试
|
|
221
|
+
- [E2E Testing](./e2e-testing.md) - 端到端测试
|
|
222
|
+
|
|
223
|
+
---
|
|
224
|
+
|
|
225
|
+
## 参考资料
|
|
226
|
+
|
|
227
|
+
- [Pact Foundation](https://docs.pact.io/)
|
|
228
|
+
- [Martin Fowler - Contract Test](https://martinfowler.com/bliki/ContractTest.html)
|
|
229
|
+
- [Consumer-Driven Contracts](https://martinfowler.com/articles/consumerDrivenContracts.html)
|
|
230
|
+
|
|
231
|
+
---
|
|
232
|
+
|
|
233
|
+
## 授权
|
|
234
|
+
|
|
235
|
+
本文档以 [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/) 授权发布。
|
|
236
|
+
|
|
237
|
+
**来源**: [universal-dev-standards](https://github.com/AsiaOstrich/universal-dev-standards)
|
|
@@ -0,0 +1,200 @@
|
|
|
1
|
+
---
|
|
2
|
+
source: options/testing/industry-pyramid.md
|
|
3
|
+
source_version: 1.0.0
|
|
4
|
+
translation_version: 1.0.0
|
|
5
|
+
status: current
|
|
6
|
+
---
|
|
7
|
+
# 业界测试金字塔
|
|
8
|
+
|
|
9
|
+
> **语言**: [English](../../../../options/testing/industry-pyramid.md) | 简体中文
|
|
10
|
+
|
|
11
|
+
**上层标准**: [测试完整性](../../core/test-completeness-dimensions.md)
|
|
12
|
+
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
## 概览
|
|
16
|
+
|
|
17
|
+
业界测试金字塔是一套务实的 4 层测试模型,广为敏捷与 DevOps 团队采用。它强调通过大量的 unit test 取得快速反馈、适量的 integration test、用于子系统验证的 system test,以及最少量的端到端测试。
|
|
18
|
+
|
|
19
|
+
## 最适用于
|
|
20
|
+
|
|
21
|
+
- 敏捷/Scrum 开发团队
|
|
22
|
+
- 以 CI/CD 为核心的环境
|
|
23
|
+
- 中小型项目
|
|
24
|
+
- DevOps 实践
|
|
25
|
+
- 快速迭代循环
|
|
26
|
+
|
|
27
|
+
## 金字塔
|
|
28
|
+
|
|
29
|
+
```
|
|
30
|
+
┌─────────┐
|
|
31
|
+
│ E2E │ ← 3% (Slow, expensive)
|
|
32
|
+
├─────────┤
|
|
33
|
+
│ ST │ ← 7% (Medium speed)
|
|
34
|
+
├─────────┤
|
|
35
|
+
│ IT │ ← 20% (Fast)
|
|
36
|
+
├─────────┤
|
|
37
|
+
│ UT │ ← 70% (Very fast, many)
|
|
38
|
+
└─────────┘
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
**目标比例:** 70/20/7/3(UT/IT/ST/E2E)
|
|
42
|
+
|
|
43
|
+
**注意:** 此为 Mike Cohn 的经验性建议,并非强制标准。
|
|
44
|
+
|
|
45
|
+
**理由:**
|
|
46
|
+
- 较多 unit test = 更快的反馈
|
|
47
|
+
- 较少 E2E test = 较低的维护成本
|
|
48
|
+
- integration test 能捕捉接口问题
|
|
49
|
+
- system test 在 stub 外部依赖的情况下验证子系统行为
|
|
50
|
+
|
|
51
|
+
## 测试层级
|
|
52
|
+
|
|
53
|
+
### 单元测试(UT)- 70%
|
|
54
|
+
|
|
55
|
+
| 方面 | 细节 |
|
|
56
|
+
|--------|---------|
|
|
57
|
+
| **定义** | 针对单个函数、方法或类的隔离测试 |
|
|
58
|
+
| **范围** | 单一函数/方法/类 |
|
|
59
|
+
| **速度** | 每个测试 < 100ms |
|
|
60
|
+
| **依赖** | 全部 mock |
|
|
61
|
+
|
|
62
|
+
**特性:**
|
|
63
|
+
- 执行快速
|
|
64
|
+
- 结果具确定性
|
|
65
|
+
- 无 I/O 操作
|
|
66
|
+
- 测试单一行为单元
|
|
67
|
+
|
|
68
|
+
### 集成测试(IT)- 20%
|
|
69
|
+
|
|
70
|
+
| 方面 | 细节 |
|
|
71
|
+
|--------|---------|
|
|
72
|
+
| **定义** | 针对组件交互与数据流的测试 |
|
|
73
|
+
| **范围** | 多个组件相互作用 |
|
|
74
|
+
| **速度** | 每个测试 < 1 秒 |
|
|
75
|
+
| **依赖** | 真实与 mock 混合 |
|
|
76
|
+
|
|
77
|
+
**特性:**
|
|
78
|
+
- 测试真实的集成
|
|
79
|
+
- 可能使用容器(Testcontainers)
|
|
80
|
+
- 验证数据流
|
|
81
|
+
|
|
82
|
+
### 系统测试(ST)- 7%
|
|
83
|
+
|
|
84
|
+
| 方面 | 细节 |
|
|
85
|
+
|--------|---------|
|
|
86
|
+
| **定义** | 在 stub 外部依赖的情况下测试完整子系统 |
|
|
87
|
+
| **范围** | 完整子系统验证 |
|
|
88
|
+
| **速度** | 每个测试 < 10 秒 |
|
|
89
|
+
| **依赖** | 真实内部服务、stub 外部 API |
|
|
90
|
+
|
|
91
|
+
**特性:**
|
|
92
|
+
- 端到端验证子系统行为
|
|
93
|
+
- stub 外部依赖
|
|
94
|
+
- 在 SIT 环境中测试
|
|
95
|
+
|
|
96
|
+
### 端到端测试(E2E)- 3%
|
|
97
|
+
|
|
98
|
+
| 方面 | 细节 |
|
|
99
|
+
|--------|---------|
|
|
100
|
+
| **定义** | 跨整个系统测试完整用户工作流程 |
|
|
101
|
+
| **范围** | 从用户视角的完整用户流程 |
|
|
102
|
+
| **速度** | 每个测试 30 秒至数分钟 |
|
|
103
|
+
| **依赖** | 全部真实 |
|
|
104
|
+
|
|
105
|
+
**特性:**
|
|
106
|
+
- 模拟真实用户行为
|
|
107
|
+
- 仅测试关键路径
|
|
108
|
+
- 最高的维护成本
|
|
109
|
+
|
|
110
|
+
## 覆盖率目标
|
|
111
|
+
|
|
112
|
+
| 指标 | 最低 | 建议 |
|
|
113
|
+
|--------|---------|-------------|
|
|
114
|
+
| 行覆盖率(Line Coverage) | 70% | 85% |
|
|
115
|
+
| 分支覆盖率(Branch Coverage) | 60% | 80% |
|
|
116
|
+
| 函数覆盖率(Function Coverage) | 80% | 90% |
|
|
117
|
+
|
|
118
|
+
## 各层级工具
|
|
119
|
+
|
|
120
|
+
### 单元测试
|
|
121
|
+
|
|
122
|
+
| 语言 | 工具 |
|
|
123
|
+
|----------|-------|
|
|
124
|
+
| JavaScript | Jest, Vitest, Mocha |
|
|
125
|
+
| Python | pytest, unittest |
|
|
126
|
+
| Java | JUnit, TestNG |
|
|
127
|
+
| C# | xUnit, NUnit, MSTest |
|
|
128
|
+
| Go | testing package, testify |
|
|
129
|
+
|
|
130
|
+
### 集成测试
|
|
131
|
+
|
|
132
|
+
| 语言 | 工具 |
|
|
133
|
+
|----------|-------|
|
|
134
|
+
| JavaScript | Supertest, Testcontainers |
|
|
135
|
+
| Python | pytest, Testcontainers |
|
|
136
|
+
| Java | Spring Boot Test, Testcontainers |
|
|
137
|
+
| C# | WebApplicationFactory, Testcontainers |
|
|
138
|
+
|
|
139
|
+
### E2E 测试
|
|
140
|
+
|
|
141
|
+
| 语言 | 工具 |
|
|
142
|
+
|----------|-------|
|
|
143
|
+
| JavaScript | Playwright, Cypress, Puppeteer |
|
|
144
|
+
| Python | Playwright, Selenium |
|
|
145
|
+
| Java | Selenium, Playwright |
|
|
146
|
+
|
|
147
|
+
## 何时选择业界金字塔
|
|
148
|
+
|
|
149
|
+
**选择时机:**
|
|
150
|
+
- 实践敏捷/Scrum 方法论
|
|
151
|
+
- CI/CD 管线至关重要
|
|
152
|
+
- 快速反馈为优先
|
|
153
|
+
- 团队规模小且跨职能
|
|
154
|
+
- 期望最少的文档负担
|
|
155
|
+
|
|
156
|
+
**避免时机:**
|
|
157
|
+
- 需要正式 QA 认证
|
|
158
|
+
- 企业合规需求
|
|
159
|
+
- 专职 QA 团队偏好 ISTQB
|
|
160
|
+
- 需要审计文档
|
|
161
|
+
|
|
162
|
+
## 与 ISTQB 的比较
|
|
163
|
+
|
|
164
|
+
| 业界层级 | ISTQB 对应 | 注意 |
|
|
165
|
+
|----------------|------------------|------|
|
|
166
|
+
| 单元测试(UT) | Component Testing | 概念相同 |
|
|
167
|
+
| 集成测试(IT) | Integration Testing | 概念相同 |
|
|
168
|
+
| 系统测试(ST) | System Testing | 概念相同 |
|
|
169
|
+
| E2E 测试 | Acceptance Testing | 业界 E2E ≈ ISTQB Acceptance |
|
|
170
|
+
|
|
171
|
+
## 规则
|
|
172
|
+
|
|
173
|
+
| 规则 | 描述 | 优先级 |
|
|
174
|
+
|------|-------------|----------|
|
|
175
|
+
| 遵循金字塔比例 | UT/IT/ST/E2E 目标 70/20/7/3 比例(经验性,非强制) | Required |
|
|
176
|
+
| 在最低层级测试 | 在能提供信心的最低层级编写测试 | Recommended |
|
|
177
|
+
| 边界情况避免用 E2E | 边界情况使用 unit test,而非 E2E | Recommended |
|
|
178
|
+
| 边界用集成测试 | 使用 integration test 验证接口契约 | Recommended |
|
|
179
|
+
|
|
180
|
+
## 相关选项
|
|
181
|
+
|
|
182
|
+
- [ISTQB 框架](./istqb-framework.md) - 正式的 4 层测试框架
|
|
183
|
+
- [单元测试](./unit-testing.md) - 详细的单元测试实践
|
|
184
|
+
- [集成测试](./integration-testing.md) - 集成测试实践
|
|
185
|
+
- [E2E 测试](./e2e-testing.md) - 端到端测试实践
|
|
186
|
+
|
|
187
|
+
---
|
|
188
|
+
|
|
189
|
+
## 参考资料
|
|
190
|
+
|
|
191
|
+
- [Martin Fowler's Testing Pyramid](https://martinfowler.com/bliki/TestPyramid.html)
|
|
192
|
+
- [Google Testing Blog](https://testing.googleblog.com)
|
|
193
|
+
|
|
194
|
+
---
|
|
195
|
+
|
|
196
|
+
## 许可
|
|
197
|
+
|
|
198
|
+
本文档以 [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/) 许可发布。
|
|
199
|
+
|
|
200
|
+
**来源**: [universal-dev-standards](https://github.com/AsiaOstrich/universal-dev-standards)
|