universal-dev-standards 5.17.0 → 6.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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/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 +71 -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 +39 -3
- 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 +71 -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 +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-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 +2 -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 +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,222 @@
|
|
|
1
|
+
---
|
|
2
|
+
source: ../../../core/feature-manifest-standard.md
|
|
3
|
+
source_version: 1.0.0
|
|
4
|
+
translation_version: 1.0.0
|
|
5
|
+
last_synced: 2026-06-10
|
|
6
|
+
source_hash: 501a97944fd0
|
|
7
|
+
status: current
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# Feature Manifest 标准
|
|
11
|
+
|
|
12
|
+
> **Language**: [English](../../../core/feature-manifest-standard.md) | [繁體中文](../../zh-TW/core/feature-manifest-standard.md) | 简体中文
|
|
13
|
+
|
|
14
|
+
**适用范围**: 将既有系统迁移或重组的迁移与重构项目
|
|
15
|
+
**Scope**: universal
|
|
16
|
+
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
## 概述
|
|
20
|
+
|
|
21
|
+
Feature Manifest 标准定义一种机器可读格式(`feature-manifest.yaml`),用于在迁移或重构开始前,盘点既有系统的所有功能。它在旧系统的能力与新系统的验收标准之间提供结构化的桥梁,让工具(VibeOps `/vo-pipeline --variant migration`)能自动强制执行完整性闸门。
|
|
22
|
+
|
|
23
|
+
## 参考资料
|
|
24
|
+
|
|
25
|
+
| 标准/来源 | 内容 |
|
|
26
|
+
|----------------|---------|
|
|
27
|
+
| XSPEC-200 | 迁移功能盘点与完整性闸门 |
|
|
28
|
+
| XSPEC-201 | 重构/迁移完整性协议 |
|
|
29
|
+
| XSPEC-199 | AC `not_implemented` 状态扩充 |
|
|
30
|
+
|
|
31
|
+
---
|
|
32
|
+
|
|
33
|
+
## 何时使用
|
|
34
|
+
|
|
35
|
+
在以下情况使用 `feature-manifest.yaml`:
|
|
36
|
+
- 将系统从一种语言/框架迁移到另一种(例如 PHP → C# .NET)
|
|
37
|
+
- 将旧系统移植到新架构
|
|
38
|
+
- 启动必须保留既有行为的大型重构
|
|
39
|
+
|
|
40
|
+
**请勿用于** greenfield 开发——manifest 是既有系统的映照,不是设计文档。
|
|
41
|
+
|
|
42
|
+
---
|
|
43
|
+
|
|
44
|
+
## Feature Manifest 格式
|
|
45
|
+
|
|
46
|
+
### 文件位置
|
|
47
|
+
|
|
48
|
+
```
|
|
49
|
+
artifacts/feature-manifest.yaml
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
### 顶层结构
|
|
53
|
+
|
|
54
|
+
```yaml
|
|
55
|
+
manifest_version: "1.0"
|
|
56
|
+
source_system:
|
|
57
|
+
language: php
|
|
58
|
+
framework: laravel
|
|
59
|
+
scan_date: "2026-05-12"
|
|
60
|
+
scan_coverage: "47/47 routes (100%)"
|
|
61
|
+
|
|
62
|
+
features:
|
|
63
|
+
- id: FM-001
|
|
64
|
+
name: UserLogin
|
|
65
|
+
# ... (see Feature Entry below)
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
### Feature Entry 结构描述
|
|
69
|
+
|
|
70
|
+
| 字段 | 类型 | 必填 | 说明 |
|
|
71
|
+
|-------|------|----------|-------------|
|
|
72
|
+
| `id` | string | 是 | `FM-NNN`(补零) |
|
|
73
|
+
| `name` | string | 是 | PascalCase 业务功能名称 |
|
|
74
|
+
| `description` | string | 是 | 以白话描述业务目的 |
|
|
75
|
+
| `http_method` | string | 否 | `GET`、`POST`、`PUT`、`PATCH`、`DELETE`;CLI/后台作业为 `null` |
|
|
76
|
+
| `route` | string | 否 | URL 路径;CLI/后台作业为 `null` |
|
|
77
|
+
| `controller` | string | 是 | `ClassName::methodName` |
|
|
78
|
+
| `confidence` | float | 是 | 0.0–1.0(见 Confidence 评分) |
|
|
79
|
+
| `side_effects` | list | 是 | `DB_READ`、`DB_WRITE`、`EMAIL`、`QUEUE`、`HTTP_CALL`、`FILE` |
|
|
80
|
+
| `migration_risks` | list | 否 | 风险标签(见迁移风险) |
|
|
81
|
+
| `ac_id` | string | 否 | 初始为 `null`;manifest 建立后由 Planner 设定 |
|
|
82
|
+
| `status` | string | 是 | 初始一律为 `not_implemented` |
|
|
83
|
+
|
|
84
|
+
### 完整 Feature Entry 示例
|
|
85
|
+
|
|
86
|
+
```yaml
|
|
87
|
+
features:
|
|
88
|
+
- id: FM-007
|
|
89
|
+
name: OrderCancellation
|
|
90
|
+
description: 取消订单并触发退款流程
|
|
91
|
+
http_method: POST
|
|
92
|
+
route: /api/orders/{id}/cancel
|
|
93
|
+
controller: OrderController::cancel
|
|
94
|
+
confidence: 0.9
|
|
95
|
+
side_effects:
|
|
96
|
+
- DB_WRITE
|
|
97
|
+
- QUEUE
|
|
98
|
+
migration_risks:
|
|
99
|
+
- ORM_DIFFERENCES
|
|
100
|
+
ac_id: null
|
|
101
|
+
status: not_implemented
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
---
|
|
105
|
+
|
|
106
|
+
## Confidence 评分
|
|
107
|
+
|
|
108
|
+
| 数值 | 意义 | 动作 |
|
|
109
|
+
|-------|---------|--------|
|
|
110
|
+
| 1.0 | 功能名称与业务目的明确无歧义 | 进入 AC 产生阶段 |
|
|
111
|
+
| 0.8 | 功能名称合理,目的需要推断 | 附注后继续 |
|
|
112
|
+
| 0.5 | 可能是基础设施/工具程序,非主要业务功能 | 标记供人工审查 |
|
|
113
|
+
| 0.3 | 不明——无法判断业务目的 | **暂停;必须由人工确认** |
|
|
114
|
+
|
|
115
|
+
**规则**:所有 `confidence < 0.5` 的功能,必须先经人工审查,Planner 才能产生 AC。
|
|
116
|
+
|
|
117
|
+
---
|
|
118
|
+
|
|
119
|
+
## 迁移风险
|
|
120
|
+
|
|
121
|
+
### PHP → C# .NET
|
|
122
|
+
|
|
123
|
+
| 标签 | 说明 |
|
|
124
|
+
|-------|-------------|
|
|
125
|
+
| `SESSION_HANDLING` | PHP `$_SESSION` → ASP.NET Core Session/Cookie middleware |
|
|
126
|
+
| `ORM_DIFFERENCES` | Eloquent ORM 与 Entity Framework 的行为差异 |
|
|
127
|
+
| `TIMEZONE_HANDLING` | PHP 时区函数 → .NET `DateTimeOffset` |
|
|
128
|
+
| `FILE_UPLOAD_PATH` | PHP `$_FILES` → ASP.NET Core `IFormFile` |
|
|
129
|
+
| `REGEX_DIFFERENCES` | PHP PCRE 语法与 .NET `System.Text.RegularExpressions` 的差异 |
|
|
130
|
+
| `ARRAY_FUNCTIONS` | PHP `array_*` 函数 → LINQ 对应写法 |
|
|
131
|
+
| `EXCEPTION_HIERARCHY` | PHP 异常层级与 .NET 异常层级的差异 |
|
|
132
|
+
|
|
133
|
+
### 通用
|
|
134
|
+
|
|
135
|
+
| 标签 | 说明 |
|
|
136
|
+
|-------|-------------|
|
|
137
|
+
| `ASYNC_MODEL` | 同步代码 → async/await 迁移 |
|
|
138
|
+
| `NULL_SEMANTICS` | Null 处理差异 |
|
|
139
|
+
| `STRING_ENCODING` | 字符串编码/排序(collation)差异 |
|
|
140
|
+
|
|
141
|
+
---
|
|
142
|
+
|
|
143
|
+
## FEATURE_STUB 标记协议
|
|
144
|
+
|
|
145
|
+
在目标代码库中实现 manifest 内的功能时,使用 `FEATURE_STUB:` 标记作为占位符:
|
|
146
|
+
|
|
147
|
+
### 格式
|
|
148
|
+
|
|
149
|
+
```
|
|
150
|
+
// FEATURE_STUB: <FM-ID> <FeatureName> — <AC-ID> pending
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
### 示例(C#)
|
|
154
|
+
|
|
155
|
+
```csharp
|
|
156
|
+
// FEATURE_STUB: FM-007 OrderCancellation — AC-007 pending
|
|
157
|
+
public async Task<Result<OrderDto>> CancelOrderAsync(string orderId, CancellationReason reason)
|
|
158
|
+
{
|
|
159
|
+
throw new NotImplementedException();
|
|
160
|
+
}
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
### FEATURE_STUB 与 WARNING:STUB 的差异
|
|
164
|
+
|
|
165
|
+
| 标记 | 语义 | 使用时机 |
|
|
166
|
+
|--------|----------|-------------|
|
|
167
|
+
| `// WARNING: STUB` | 临时的假逻辑(程序可执行但行为错误) | 带有错误业务逻辑的占位符 |
|
|
168
|
+
| `// FEATURE_STUB:` | 功能尚未实现(完全没有逻辑) | manifest 中尚未编写代码的功能 |
|
|
169
|
+
|
|
170
|
+
**两种标记都会阻止 CI**(main 分支 push 与 UAT/production 部署)。
|
|
171
|
+
|
|
172
|
+
### 生命周期
|
|
173
|
+
|
|
174
|
+
1. 功能加入 manifest,`status: not_implemented`
|
|
175
|
+
2. 开发人员在目标代码中加入 `FEATURE_STUB:` 占位符
|
|
176
|
+
3. 开发人员实现该功能,移除 `FEATURE_STUB:` 标记
|
|
177
|
+
4. 更新 manifest `status` → `implemented`
|
|
178
|
+
5. 更新 AC traceability `status` → `uncovered` 或 `covered`
|
|
179
|
+
|
|
180
|
+
---
|
|
181
|
+
|
|
182
|
+
## 完整性闸门
|
|
183
|
+
|
|
184
|
+
### Gate 1(Pre-Pipeline)
|
|
185
|
+
|
|
186
|
+
在 `/vo-pipeline --variant migration` 开始前:
|
|
187
|
+
- `artifacts/feature-manifest.yaml` 必须存在
|
|
188
|
+
- `.snapshots/` 目录必须存在且至少含一个 JSON 文件
|
|
189
|
+
|
|
190
|
+
### 功能完整性闸门(Pre-UAT)
|
|
191
|
+
|
|
192
|
+
CI 在以下条件同时成立时阻止 UAT 部署:
|
|
193
|
+
- manifest 中有任何功能的 `status: not_implemented`,且
|
|
194
|
+
- 代码库中存在对应的 `FEATURE_STUB:`
|
|
195
|
+
|
|
196
|
+
---
|
|
197
|
+
|
|
198
|
+
## 反模式
|
|
199
|
+
|
|
200
|
+
| 反模式 | 影响 | 正确做法 |
|
|
201
|
+
|--------------|--------|------------------|
|
|
202
|
+
| 没有 manifest 就开始迁移 | 功能缺口到 UAT 才被发现 | 一律先产生 manifest |
|
|
203
|
+
| 跳过低 confidence 的功能 | 功能被静默遗漏 | 审查并确认所有功能 |
|
|
204
|
+
| 用 `uncovered` 取代 `not_implemented` | CI 不会因缺少功能而阻止 | 代码不存在时使用 `not_implemented` |
|
|
205
|
+
| 实现后未移除 `FEATURE_STUB:` | CI 出现「未完成」的假信号 | 实现后一律清除标记 |
|
|
206
|
+
|
|
207
|
+
---
|
|
208
|
+
|
|
209
|
+
## 相关标准
|
|
210
|
+
|
|
211
|
+
- [Acceptance Criteria Traceability](acceptance-criteria-traceability.md) — `not_implemented` AC 状态
|
|
212
|
+
- [Behavior Snapshot Standard](behavior-snapshot.md) — HTTP parity 基准记录
|
|
213
|
+
- [Refactoring Standards](refactoring-standards.md) — 重构用的 Characterization 测试
|
|
214
|
+
- [Spec-Driven Development](spec-driven-development.md) — AC 产生工作流程
|
|
215
|
+
|
|
216
|
+
---
|
|
217
|
+
|
|
218
|
+
## 版本历史
|
|
219
|
+
|
|
220
|
+
| 版本 | 日期 | 变更 |
|
|
221
|
+
|---------|------|---------|
|
|
222
|
+
| 1.0.0 | 2026-05-12 | 初始版本——FM-NNN schema、confidence 评分、FEATURE_STUB 协议(XSPEC-200) |
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
---
|
|
2
|
+
source: ../../../core/flaky-test-management.md
|
|
3
|
+
source_version: 1.0.0
|
|
4
|
+
translation_version: 1.0.0
|
|
5
|
+
last_synced: 2026-06-10
|
|
6
|
+
source_hash: ed870e072b63
|
|
7
|
+
status: current
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# Flaky 测试管理标准
|
|
11
|
+
|
|
12
|
+
> **Language**: [English](../../../core/flaky-test-management.md) | [繁體中文](../../zh-TW/core/flaky-test-management.md) | 简体中文
|
|
13
|
+
|
|
14
|
+
## 概述
|
|
15
|
+
|
|
16
|
+
在一个 3000 个测试的套件中,只要有一个 flaky 测试,就足以侵蚀 CI 的可信度,让开发人员开始忽略失败。一旦开发人员学会「重跑 CI 就好」,真正的 bug 就会悄悄溜过。消除 flaky 测试的成本,永远低于它们所制造的虚假安全感的成本。
|
|
17
|
+
|
|
18
|
+
## 定义
|
|
19
|
+
|
|
20
|
+
若一个测试在相同代码下连续执行却产生不同结果(pass/fail),即为 **flaky**。2% 门槛:若一个测试在 `main` 上未变更代码的情况下失败率 ≥ 2%,即属 flaky。
|
|
21
|
+
|
|
22
|
+
## 检测
|
|
23
|
+
|
|
24
|
+
大多数 CI 系统可自动检测 flakiness:
|
|
25
|
+
|
|
26
|
+
- **GitHub Actions**:寻找 `Flaky tests detected` 标注
|
|
27
|
+
- **手动**:执行 `npx vitest run --reporter=verbose` 5 次,观察是否有非确定性结果
|
|
28
|
+
- **Vitest**:`vitest run --repeat=5`(每个测试各执行 5 次)
|
|
29
|
+
|
|
30
|
+
## 隔离(Quarantine)工作流程
|
|
31
|
+
|
|
32
|
+
```
|
|
33
|
+
Detected → Quarantine (< 48h) → Track → Fix or Delete (< 30 days)
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
### 隔离标注
|
|
37
|
+
|
|
38
|
+
```typescript
|
|
39
|
+
// TODO: quarantined 2026-05-05 — flaky race condition, see issue #42
|
|
40
|
+
it.skip("reconnects after WebSocket disconnect", async () => {
|
|
41
|
+
// ... test body preserved for reference
|
|
42
|
+
})
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
### 追踪 Issue 模板
|
|
46
|
+
|
|
47
|
+
```markdown
|
|
48
|
+
**Flaky Test**: `describe > test name`
|
|
49
|
+
**File**: `src/path/to/test.ts`
|
|
50
|
+
**Quarantined**: 2026-05-05
|
|
51
|
+
**Failure rate**: ~5% on main
|
|
52
|
+
**Known failure mode**: `Cannot read property 'socket' of undefined`
|
|
53
|
+
**Root cause hypothesis**: Race condition in WebSocket teardown
|
|
54
|
+
**Deadline**: 2026-06-05
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
## 常见根本原因
|
|
58
|
+
|
|
59
|
+
| 根本原因 | 修法 |
|
|
60
|
+
|-----------|-----|
|
|
61
|
+
| Race condition | 使用 `waitFor()`、`vi.waitFor()`、正确的 async 协调 |
|
|
62
|
+
| 共享状态 | 在 `beforeEach`/`afterEach` 中重置状态 |
|
|
63
|
+
| 外部服务 | Mock 该依赖 |
|
|
64
|
+
| 文件系统排序 | 使用确定性排序 |
|
|
65
|
+
| 未设 seed 的随机值 | 在测试中设定固定 seed |
|
|
66
|
+
| 时序相依 | 使用假计时器(`vi.useFakeTimers()`) |
|
|
67
|
+
|
|
68
|
+
## Vitest 设定
|
|
69
|
+
|
|
70
|
+
```typescript
|
|
71
|
+
// vitest.config.ts
|
|
72
|
+
export default defineConfig({
|
|
73
|
+
test: {
|
|
74
|
+
retry: 2, // retry failed tests up to 2 times
|
|
75
|
+
testTimeout: 10000, // 10s timeout prevents infinite hangs
|
|
76
|
+
hookTimeout: 5000, // 5s hook timeout
|
|
77
|
+
}
|
|
78
|
+
})
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
## 相关标准
|
|
82
|
+
|
|
83
|
+
- [Testing Standards](testing-standards.md) — 整体测试金字塔
|
|
84
|
+
- [Test Governance Standards](test-governance.md) — CI 政策
|
|
85
|
+
|
|
86
|
+
|
|
87
|
+
**Scope**: universal
|
|
@@ -0,0 +1,284 @@
|
|
|
1
|
+
---
|
|
2
|
+
source: ../../../core/flow-based-testing.md
|
|
3
|
+
source_version: 1.3.0
|
|
4
|
+
translation_version: 1.3.0
|
|
5
|
+
last_synced: 2026-06-10
|
|
6
|
+
source_hash: a8838e95f84e
|
|
7
|
+
status: stale
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# 流程式测试(Flow-Based Testing)
|
|
11
|
+
|
|
12
|
+
> **语言**: [English](../../../core/flow-based-testing.md) | [繁體中文](../../zh-TW/core/flow-based-testing.md) | 简体中文
|
|
13
|
+
|
|
14
|
+
**版本**: 1.3.0
|
|
15
|
+
**最后更新**: 2026-05-05
|
|
16
|
+
**适用性**: 所有具备多步骤工作流程的软件项目
|
|
17
|
+
**范围**: universal
|
|
18
|
+
**行业标准**: ISO/IEC/IEEE 29119-4(测试技术)、ISTQB Foundation Syllabus
|
|
19
|
+
**参考资料**: Decision Table Testing(ISTQB)、Pairwise Testing、State Transition Testing
|
|
20
|
+
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
## 目的
|
|
24
|
+
|
|
25
|
+
本文档定义测试多步骤流程的系统化方法论。它填补了 AC 中心式测试(孤立验证单个行为)与流程级测试(验证带有累积状态与分支覆盖的顺序行为)之间的差距。
|
|
26
|
+
|
|
27
|
+
---
|
|
28
|
+
|
|
29
|
+
## 核心问题:AC 中心式 vs. 流程中心式测试
|
|
30
|
+
|
|
31
|
+
AC 中心式测试验证每个验收标准在孤立情况下可正常工作。然而,它们会漏掉两类关键 bug:
|
|
32
|
+
|
|
33
|
+
1. **步骤交互 bug**:只有当 Step 1 的输出成为 Step 2 的输入时才会显现的 bug
|
|
34
|
+
2. **分支覆盖缺口**:从未以所有可能值演练过的决策点
|
|
35
|
+
|
|
36
|
+
**示例**:某 pipeline 有 8 个步骤。每个 AC 都独立通过。但当 Step 3 的配额检查依赖 Step 1 与 Step 2 累积的状态时,这个交互从未被测试到。
|
|
37
|
+
|
|
38
|
+
---
|
|
39
|
+
|
|
40
|
+
## 三步骤流程分解
|
|
41
|
+
|
|
42
|
+
### Step 1: 流程识别(Flow Identification)
|
|
43
|
+
|
|
44
|
+
在编写任何测试代码之前,先记录:
|
|
45
|
+
|
|
46
|
+
- **前置条件(Preconditions)**:系统的初始状态
|
|
47
|
+
- **步骤序列(Step sequence)**:按顺序排列的动作列表(Step 1 → Step N)
|
|
48
|
+
- **决策点(Decision points)**:流程中的每一个 if/else/条件
|
|
49
|
+
- **终止状态(Terminal states)**:所有可能的结束状态(成功 + 每一种不同的失败)
|
|
50
|
+
|
|
51
|
+
### Step 2: 决策表展开(Decision Table Expansion)
|
|
52
|
+
|
|
53
|
+
针对每个决策点,列出所有可能的值。然后应用覆盖策略:
|
|
54
|
+
|
|
55
|
+
| 策略 | 使用时机 | 场景数量 |
|
|
56
|
+
|----------|-------------|---------------|
|
|
57
|
+
| **Each-Choice**(最小) | 低风险流程、快速反馈 | 各唯一值的总和 |
|
|
58
|
+
| **Pairwise** | 中风险流程 | ~N × max_values |
|
|
59
|
+
| **All-Combinations** | 认证、支付、安全 | 各值数量的乘积 |
|
|
60
|
+
|
|
61
|
+
**决策表示例**:
|
|
62
|
+
|
|
63
|
+
| 决策点 | 值 |
|
|
64
|
+
|----------------|--------|
|
|
65
|
+
| Authorization | valid / expired / missing |
|
|
66
|
+
| Quota | sufficient / exceeded |
|
|
67
|
+
| External Service | available / timeout / error |
|
|
68
|
+
|
|
69
|
+
Each-Choice 最小值:3 + 2 + 3 = 8 个场景(相比团队实际上通常只写 1-2 个)。
|
|
70
|
+
|
|
71
|
+
### Step 3: 旅程测试结构(Journey Test Structure)
|
|
72
|
+
|
|
73
|
+
以共享状态串联(shared state threading)编写测试——以 `ctx` 对象跨步骤累积状态:
|
|
74
|
+
|
|
75
|
+
```typescript
|
|
76
|
+
describe("Flow: Create Order", () => {
|
|
77
|
+
const ctx: { token?: string; orderId?: string } = {}
|
|
78
|
+
|
|
79
|
+
it("Step 1: Login", async () => {
|
|
80
|
+
ctx.token = await login(credentials)
|
|
81
|
+
expect(ctx.token).toBeTruthy()
|
|
82
|
+
})
|
|
83
|
+
|
|
84
|
+
it("Step 2: Create order (uses Step 1 token)", async () => {
|
|
85
|
+
ctx.orderId = await createOrder(ctx.token!, orderData)
|
|
86
|
+
expect(ctx.orderId).toMatch(/^ord-/)
|
|
87
|
+
})
|
|
88
|
+
|
|
89
|
+
it("Step 3: Verify order state (uses Step 2 orderId)", async () => {
|
|
90
|
+
const order = await getOrder(ctx.token!, ctx.orderId!)
|
|
91
|
+
expect(order.status).toBe("pending")
|
|
92
|
+
})
|
|
93
|
+
})
|
|
94
|
+
|
|
95
|
+
describe("Flow Branch: Quota exceeded path", () => {
|
|
96
|
+
it("should return 429 and NOT create order when quota is exhausted", async () => {
|
|
97
|
+
await exhaustQuota(testUser)
|
|
98
|
+
const response = await attemptCreateOrder(testToken, orderData)
|
|
99
|
+
expect(response.status).toBe(429)
|
|
100
|
+
expect(response.body.code).toBe("QUOTA_EXCEEDED")
|
|
101
|
+
// Verify side effects: no order was created
|
|
102
|
+
const orders = await getOrders(testUser)
|
|
103
|
+
expect(orders.length).toBe(0)
|
|
104
|
+
})
|
|
105
|
+
})
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
---
|
|
109
|
+
|
|
110
|
+
## 反模式(Anti-Patterns)
|
|
111
|
+
|
|
112
|
+
- 只测试 happy path 流程(漏掉失败终止状态)
|
|
113
|
+
- 在步骤之间重置共享状态(破坏状态串联)
|
|
114
|
+
- 孤立测试每个步骤而不验证累积状态
|
|
115
|
+
- 对含多个决策点的流程只用单个测试
|
|
116
|
+
- 对每个流程都应用 All-Combinations(应保留给关键路径)
|
|
117
|
+
- 在分支测试中不验证副作用(或副作用的不存在)
|
|
118
|
+
|
|
119
|
+
---
|
|
120
|
+
|
|
121
|
+
## 与其他标准的关系
|
|
122
|
+
|
|
123
|
+
- **test-completeness-dimensions**:维度 9(Flow Completeness)与维度 10(Branch Coverage)在此定义
|
|
124
|
+
- **behavior-driven-development**:BDD Scenario Outline 表格对应到决策表展开
|
|
125
|
+
- **mock-boundary**:流程测试必须遵守 mock boundary 规则(不 mock 自身模块逻辑)
|
|
126
|
+
- **e2e-testing**:旅程测试在 ST 或 E2E 级别运行;流程测试可在 IT 级别搭配真实 DB 运行
|
|
127
|
+
|
|
128
|
+
---
|
|
129
|
+
|
|
130
|
+
## 多门禁流程验证模型(Multi-Gate Flow Verification Model)
|
|
131
|
+
|
|
132
|
+
流程覆盖不是单一的发布前检查——它是横跨整个 SDLC 的**渐进式验证链**。有两个本质上不同的问题,必须在不同阶段回答:
|
|
133
|
+
|
|
134
|
+
| 验证类型 | 问题 | 执行者 | 时机 |
|
|
135
|
+
|------------------|----------|----------|--------|
|
|
136
|
+
| **覆盖(Coverage)** | 所有终止状态都测试了吗? | 自动化 CI | Dev → Staging → Pre-UAT |
|
|
137
|
+
| **正确性(Correctness)** | 终止状态的定义正确吗? | 人工 UAT | UAT 阶段 |
|
|
138
|
+
|
|
139
|
+
混淆这两者会把 UAT 周期浪费在 CI 早该发现的技术覆盖问题上。
|
|
140
|
+
|
|
141
|
+
### Gate 0 — PRD 签核(实现开始之前)
|
|
142
|
+
|
|
143
|
+
三项可测试性要素必须在写下任何一行代码之前写入 PRD。使用 `templates/requirement-template.md` 的 §2.4 与 §9.4:
|
|
144
|
+
|
|
145
|
+
| 要素 | PRD 章节 | 何时必须 |
|
|
146
|
+
|---------|-------------|---------------|
|
|
147
|
+
| 前置条件 + 有序步骤 | §2.4 | ≥ 3 步骤的流程 |
|
|
148
|
+
| 决策点列表 | §2.4 | 每一个分支条件 |
|
|
149
|
+
| 终止状态列表 | §2.4 | 所有不同的结束状态 |
|
|
150
|
+
| 决策表(Each-Choice) | §9.4 | 所有流程 |
|
|
151
|
+
| 升级到 All-Combinations | §9.4 | 认证 / 支付 / 安全 |
|
|
152
|
+
| UAT 验收脚本(预先填写) | §9.4 | PRD 批准之前 |
|
|
153
|
+
|
|
154
|
+
> **为什么在 PRD 阶段?** 测试工程师无法从只描述 happy path 的规格推导出分支覆盖。在测试设计阶段才发现缺失的决策点会浪费整整一个 sprint。
|
|
155
|
+
|
|
156
|
+
### Gate 1 — PR 合并(每个功能分支)
|
|
157
|
+
|
|
158
|
+
任何触及 ≥ 3 步骤流程的 PR 必须包含覆盖该 PR 所引入或修改之终止状态的自动化测试。若终止状态被加入 §2.4 而没有对应的测试,审查者应阻止合并。
|
|
159
|
+
|
|
160
|
+
### Gate 3 — Pre-UAT 部署(自动化 + QA Lead 签核)
|
|
161
|
+
|
|
162
|
+
CI 必须在 UAT 开始**之前**证明覆盖完整性。UAT 用于正确性验证,不是技术测试。
|
|
163
|
+
|
|
164
|
+
必需的 CI 检查:
|
|
165
|
+
- 所有决策表场景都有通过的自动化测试
|
|
166
|
+
- 没有任何终止状态缺乏测试覆盖
|
|
167
|
+
- 分支覆盖率 ≥ 90%(或项目自定义阈值)
|
|
168
|
+
- 认证 / 支付 / 安全流程的 All-Combinations 全部通过
|
|
169
|
+
|
|
170
|
+
> 未通过 Gate 3 就部署到 UAT,等于强迫业务利益相关者充当技术 QA——这是对 UAT 时间既昂贵又打击士气的滥用。
|
|
171
|
+
|
|
172
|
+
### Gate 4 — UAT 签核(业务正确性,上线前)
|
|
173
|
+
|
|
174
|
+
UAT 验证的是终止状态的**定义是否正确**地对应真实业务规则,而不是它们是否被覆盖。使用 §9.4 的 UAT 验收脚本(直接从决策表推导——不需要另外创建脚本):
|
|
175
|
+
|
|
176
|
+
- 业务利益相关者逐行(终止状态)签核
|
|
177
|
+
- 若 UAT 揭示先前未定义的终止状态:将其加入 §2.4 + 决策表 + 自动化测试,重跑 Gate 3,然后恢复 UAT
|
|
178
|
+
- UAT 期间没有发现新的终止状态 = §2.4 足够周全的强烈信号
|
|
179
|
+
|
|
180
|
+
### 门禁模型总览
|
|
181
|
+
|
|
182
|
+
```
|
|
183
|
+
PRD Sign-off
|
|
184
|
+
│ Gate 0: §2.4 + §9.4 complete (Decision Points, Terminal States,
|
|
185
|
+
│ Decision Table, UAT script pre-filled)
|
|
186
|
+
▼
|
|
187
|
+
Implementation + PR Reviews
|
|
188
|
+
│ Gate 1: Each PR covering a flow includes terminal state tests
|
|
189
|
+
▼
|
|
190
|
+
Staging / Integration
|
|
191
|
+
│ (no formal gate — CI green is sufficient)
|
|
192
|
+
▼
|
|
193
|
+
Pre-UAT Deployment
|
|
194
|
+
│ Gate 3: CI proves 100% terminal state coverage + branch coverage ≥ 90%
|
|
195
|
+
▼
|
|
196
|
+
UAT Execution
|
|
197
|
+
│ Gate 4: Business sign-off on terminal state correctness
|
|
198
|
+
│ New terminal states → back to Gate 3 before proceeding
|
|
199
|
+
▼
|
|
200
|
+
Production
|
|
201
|
+
```
|
|
202
|
+
|
|
203
|
+
---
|
|
204
|
+
|
|
205
|
+
## RQM 集成
|
|
206
|
+
|
|
207
|
+
Gate 3(Pre-UAT CI 覆盖门禁)必须产出 **`flow_gate_report.json`** 产物,供 Release Quality Manifest(`release-quality-manifest.md`,字段 `flow_gate_report`)消费。
|
|
208
|
+
|
|
209
|
+
### flow_gate_report.json Schema
|
|
210
|
+
|
|
211
|
+
```json
|
|
212
|
+
{
|
|
213
|
+
"generated_at": "2026-05-05T04:00:00Z",
|
|
214
|
+
"commit": "abc1234",
|
|
215
|
+
"flows": [
|
|
216
|
+
{
|
|
217
|
+
"flow_id": "login-authentication",
|
|
218
|
+
"spec_ref": "docs/specs/SPEC-001.md#2.4",
|
|
219
|
+
"decision_points": 3,
|
|
220
|
+
"terminal_states": 7,
|
|
221
|
+
"gate_0_complete": true,
|
|
222
|
+
"gate_1_pr_coverage": true,
|
|
223
|
+
"gate_3": {
|
|
224
|
+
"all_scenarios_green": true,
|
|
225
|
+
"terminal_states_covered": 7,
|
|
226
|
+
"terminal_states_defined": 7,
|
|
227
|
+
"branch_coverage_pct": 94,
|
|
228
|
+
"coverage_target": 90,
|
|
229
|
+
"all_combinations_required": false,
|
|
230
|
+
"status": "pass"
|
|
231
|
+
},
|
|
232
|
+
"gate_4_uat_signoff": true
|
|
233
|
+
}
|
|
234
|
+
],
|
|
235
|
+
"summary": {
|
|
236
|
+
"total_flows": 5,
|
|
237
|
+
"gate_0_complete": true,
|
|
238
|
+
"gate_1_pr_coverage": true,
|
|
239
|
+
"gate_3_ci_pass": true,
|
|
240
|
+
"gate_4_uat_signoff": true,
|
|
241
|
+
"status": "pass"
|
|
242
|
+
}
|
|
243
|
+
}
|
|
244
|
+
```
|
|
245
|
+
|
|
246
|
+
### 生成脚本挂钩(Generation Script Hook)
|
|
247
|
+
|
|
248
|
+
在 CI 测试运行之后加入(Gate 3):
|
|
249
|
+
|
|
250
|
+
```bash
|
|
251
|
+
# scripts/generate-flow-gate-report.sh
|
|
252
|
+
node scripts/generate-flow-gate-report.mjs \
|
|
253
|
+
--coverage-report coverage/coverage-summary.json \
|
|
254
|
+
--flow-specs "docs/specs/**/*.md" \
|
|
255
|
+
--uat-signoffs ".release-readiness/*.md" \
|
|
256
|
+
--output flow_gate_report.json
|
|
257
|
+
```
|
|
258
|
+
|
|
259
|
+
`summary.status` 字段会输入 `release-quality-manifest.yaml` 的 `flow_gate_report.status`。
|
|
260
|
+
|
|
261
|
+
---
|
|
262
|
+
|
|
263
|
+
## 快速参考检查清单
|
|
264
|
+
|
|
265
|
+
```
|
|
266
|
+
Flow: ___________________
|
|
267
|
+
|
|
268
|
+
□ Step 1 — Flow Identification
|
|
269
|
+
□ Preconditions documented
|
|
270
|
+
□ Ordered step sequence listed
|
|
271
|
+
□ All decision points extracted
|
|
272
|
+
□ All terminal states defined
|
|
273
|
+
|
|
274
|
+
□ Step 2 — Decision Table
|
|
275
|
+
□ Decision table created
|
|
276
|
+
□ Coverage strategy chosen (Each-Choice / Pairwise / All-Combinations)
|
|
277
|
+
□ Critical flows (auth/payment/security) → All-Combinations
|
|
278
|
+
|
|
279
|
+
□ Step 3 — Journey Test Structure
|
|
280
|
+
□ Happy path journey test (shared ctx, sequential steps)
|
|
281
|
+
□ Each branch outcome has its own describe block
|
|
282
|
+
□ Branch tests verify both response AND absence of side effects
|
|
283
|
+
□ No beforeEach resetting ctx between steps
|
|
284
|
+
```
|
|
@@ -3,7 +3,7 @@ source: ../../../core/forward-derivation-standards.md
|
|
|
3
3
|
source_version: 1.2.0
|
|
4
4
|
translation_version: 1.2.0
|
|
5
5
|
last_synced: 2026-03-23
|
|
6
|
-
status:
|
|
6
|
+
status: stale
|
|
7
7
|
---
|
|
8
8
|
|
|
9
9
|
# 正向推演标准 | Forward Derivation Standards
|
|
@@ -182,20 +182,19 @@ describe('AC-1: 用户以有效凭证登录', () => {
|
|
|
182
182
|
# Generator: forward-derivation v1.0.0
|
|
183
183
|
# Generated at: 2026-01-19T10:00:00Z
|
|
184
184
|
|
|
185
|
-
@SPEC-001
|
|
186
185
|
Feature: 用户认证
|
|
187
186
|
作为用户
|
|
188
187
|
我想要登录系统
|
|
189
188
|
以便访问我的仪表板
|
|
190
189
|
|
|
191
|
-
@AC-1 @happy-path
|
|
190
|
+
@SPEC-001 @AC-1 @happy-path
|
|
192
191
|
Scenario: 用户以有效凭证登录
|
|
193
192
|
# [来源] 来自 SPEC-001 AC-1
|
|
194
193
|
Given 已注册的用户有有效凭证
|
|
195
194
|
When 用户提交登录表单
|
|
196
195
|
Then 用户被导向仪表板
|
|
197
196
|
|
|
198
|
-
@AC-2 @error-handling
|
|
197
|
+
@SPEC-001 @AC-2 @error-handling
|
|
199
198
|
Scenario: 无效凭证登录失败
|
|
200
199
|
# [来源] 来自 SPEC-001 AC-2
|
|
201
200
|
Given 用户有无效凭证
|