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,102 @@
|
|
|
1
|
+
# User Journey Testing Standard
|
|
2
|
+
|
|
3
|
+
> **Language**: English | 繁體中文
|
|
4
|
+
|
|
5
|
+
**Applicability**: Projects with multi-step, stateful user flows that span more than one user story
|
|
6
|
+
**Scope**: universal
|
|
7
|
+
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
## Overview
|
|
11
|
+
|
|
12
|
+
The User Journey Testing Standard defines the **TESTPLAN** format, which makes connected, sequential user journeys a first-class testing artifact. Where acceptance-criteria tests verify a single story in isolation, journey tests verify what AC tests cannot: **cross-story state continuity** — the chain of state that one step leaves behind for the next.
|
|
13
|
+
|
|
14
|
+
A journey is described once in a human-readable `TESTPLAN-NNN.md` and mapped one-to-one onto automated E2E tests through shared `T-NNN` identifiers, so the plan and the executable suite never drift apart.
|
|
15
|
+
|
|
16
|
+
## References
|
|
17
|
+
|
|
18
|
+
| Standard/Source | Content |
|
|
19
|
+
|----------------|---------|
|
|
20
|
+
| journey-test-assistant (skill) | Generates TESTPLAN and journey E2E skeletons |
|
|
21
|
+
| flow-based-testing | Flow archetypes that journeys instantiate |
|
|
22
|
+
| e2e-testing (option) | End-to-end execution layer journeys map onto |
|
|
23
|
+
|
|
24
|
+
---
|
|
25
|
+
|
|
26
|
+
## Guidelines
|
|
27
|
+
|
|
28
|
+
- Every project MUST have at least one `TESTPLAN-NNN.md` documenting the main user journey.
|
|
29
|
+
- TESTPLAN steps MUST be sequential and stateful — each step depends on prior state.
|
|
30
|
+
- Every TESTPLAN MUST define personas before test steps.
|
|
31
|
+
- TESTPLAN and automated E2E tests MUST use the same `T-NNN` identifiers.
|
|
32
|
+
- Journey E2E tests MUST skip gracefully when the environment is unavailable.
|
|
33
|
+
- Journey tests cover what AC tests cannot: cross-story state continuity.
|
|
34
|
+
|
|
35
|
+
---
|
|
36
|
+
|
|
37
|
+
## TESTPLAN Format
|
|
38
|
+
|
|
39
|
+
- **File naming**: `TESTPLAN-NNN-<project-slug>.md`
|
|
40
|
+
- **Location**: `test-plans/`
|
|
41
|
+
|
|
42
|
+
### Required Sections
|
|
43
|
+
|
|
44
|
+
| Section | Description | Format |
|
|
45
|
+
|---------|-------------|--------|
|
|
46
|
+
| **Personas** | Define all test actors with their role and permissions | `\| Actor \| Role \| Key Permissions \|` |
|
|
47
|
+
| **Environment** | List environment prerequisites and verification commands | — |
|
|
48
|
+
| **Test Groups** | `T-NNN` numbered test groups with a sequential dependency chain | — |
|
|
49
|
+
| **Execution Order** | Dependency diagram showing `T-NNN → T-NNN` relationships | — |
|
|
50
|
+
|
|
51
|
+
### Step Markers
|
|
52
|
+
|
|
53
|
+
| Marker | Meaning |
|
|
54
|
+
|--------|---------|
|
|
55
|
+
| `[UI]` | Browser-based action, verify visually |
|
|
56
|
+
| `[API]` | `curl` / API client verification |
|
|
57
|
+
| `[CHECK]` | Expected result to confirm |
|
|
58
|
+
| `[SKIP-if]` | Conditional skip with reason |
|
|
59
|
+
| `★` | High-risk step requiring confirmation |
|
|
60
|
+
|
|
61
|
+
### Step Format
|
|
62
|
+
|
|
63
|
+
Each step declares:
|
|
64
|
+
|
|
65
|
+
- **step_id** — `T-NNN-M` (group-step format)
|
|
66
|
+
- **operation** — what to do, annotated with a `[MARKER]`
|
|
67
|
+
- **expected_result** — what should happen
|
|
68
|
+
- **precondition** — state from a previous `T-NNN` that must be satisfied
|
|
69
|
+
- **depends_on** — comma-separated `T-NNN` identifiers
|
|
70
|
+
|
|
71
|
+
---
|
|
72
|
+
|
|
73
|
+
## Automation Mapping
|
|
74
|
+
|
|
75
|
+
- **Principle**: every `T-NNN` group maps to a `describe()` block; every step maps to an `it()`.
|
|
76
|
+
- **File pattern**: `*.journey.spec.ts` or `*.journey.e2e.test.ts`.
|
|
77
|
+
- **Shared state**: journey tests MUST use shared `let` variables across `it()` blocks so each step builds on previous results.
|
|
78
|
+
- **Skip strategy**: guard with `describe.skipIf(!BASE_URL)` for environment-dependent tests.
|
|
79
|
+
|
|
80
|
+
---
|
|
81
|
+
|
|
82
|
+
## Journey Categories
|
|
83
|
+
|
|
84
|
+
| ID | Description | Required For |
|
|
85
|
+
|----|-------------|--------------|
|
|
86
|
+
| `platform-admin-journey` | Platform admin setup: login → org → project → pipeline | enterprise, saas |
|
|
87
|
+
| `member-journey` | Org member: join → project access → pipeline view | enterprise, saas |
|
|
88
|
+
| `dev-journey` | Developer: new project → spec → pipeline → artifact | all |
|
|
89
|
+
|
|
90
|
+
---
|
|
91
|
+
|
|
92
|
+
## Rules
|
|
93
|
+
|
|
94
|
+
| Rule | Trigger | Instruction | Priority |
|
|
95
|
+
|------|---------|-------------|----------|
|
|
96
|
+
| `testplan-required` | Creating a new project | Generate `TESTPLAN-001.md` with personas, environment, and main journey steps before writing code | required |
|
|
97
|
+
| `journey-before-code` | Starting project implementation | Define the user journey test plan first; journey tests act as living acceptance criteria | recommended |
|
|
98
|
+
| `sequential-state` | Writing journey E2E tests | Use shared state variables (`let token, orgSlug, projectSlug`) so each step builds on previous results | required |
|
|
99
|
+
| `graceful-skip` | Writing journey E2E tests | Guard with `describe.skipIf(!process.env.JOURNEY_BASE_URL)` so tests are skipped in unit CI | required |
|
|
100
|
+
| `t-nnn-alignment` | Writing any E2E test | Reference `T-NNN` identifiers from TESTPLAN in test descriptions for traceability | recommended |
|
|
101
|
+
| `persona-first` | Writing TESTPLAN | Define all user personas before writing any test steps | required |
|
|
102
|
+
| `dependency-chain` | Writing TESTPLAN | Each test group must declare its `depends_on` list so execution order is explicit | required |
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
# User Story Mapping Standards
|
|
2
|
+
|
|
3
|
+
> **Version**: 1.0.0 | **Status**: Active | **Updated**: 2026-06-17
|
|
4
|
+
> **AI-optimized version**: `ai/standards/user-story-mapping.ai.yaml`
|
|
5
|
+
> **Spec**: XSPEC-069 (cross-project/specs/XSPEC-069-uds-product-layer-pack.md)
|
|
6
|
+
|
|
7
|
+
**Scope**: universal
|
|
8
|
+
|
|
9
|
+
## Overview
|
|
10
|
+
|
|
11
|
+
This standard defines how teams construct and use **story maps** to plan product
|
|
12
|
+
releases. It covers the three-layer story-map structure (Backbone activities,
|
|
13
|
+
Walking Skeleton sub-tasks, Detail Stories), the MVP horizontal-slice rule,
|
|
14
|
+
INVEST compliance per story, and Given/When/Then acceptance criteria tied to
|
|
15
|
+
measurable product metrics. It prevents incomplete MVPs and ensures every story is
|
|
16
|
+
testable and traceable.
|
|
17
|
+
|
|
18
|
+
It is part of the **product-layer pack** (XSPEC-069), sitting between
|
|
19
|
+
`prd-standards` (upstream intent) and `requirement-engineering` (downstream INVEST
|
|
20
|
+
stories), with acceptance criteria tied to `product-metrics-standards`.
|
|
21
|
+
|
|
22
|
+
> **Scope.** This standard defines the *story-map structure and MVP-slicing
|
|
23
|
+
> discipline*. Concrete planning tooling (Miro/Jira) is an adoption choice.
|
|
24
|
+
|
|
25
|
+
## Requirements
|
|
26
|
+
|
|
27
|
+
| ID | Rule | Level |
|
|
28
|
+
|----|------|-------|
|
|
29
|
+
| REQ-001 | Story-map three layers (backbone, walking skeleton, detail stories) | MUST |
|
|
30
|
+
| REQ-002 | MVP horizontal-slice rule (no vertical-slice MVP) | MUST |
|
|
31
|
+
| REQ-003 | Story INVEST compliance | MUST |
|
|
32
|
+
| REQ-004 | Acceptance-criteria format (Given/When/Then, metric-tied) | MUST |
|
|
33
|
+
|
|
34
|
+
### REQ-001 — Story Map Three Layers
|
|
35
|
+
|
|
36
|
+
Every story map MUST be structured in three horizontal layers: (1) **Backbone**
|
|
37
|
+
(top row) — user activities at the highest abstraction representing the complete
|
|
38
|
+
end-to-end journey, each a verb phrase from the user's perspective; the backbone
|
|
39
|
+
must represent the full journey, not only implemented features. (2) **Walking
|
|
40
|
+
Skeleton** (middle row) — the minimum sub-tasks to make each backbone activity
|
|
41
|
+
functional, organized vertically under each backbone item. (3) **Detail Stories**
|
|
42
|
+
(bottom rows) — specific stories for variations, enhancements, and edge cases,
|
|
43
|
+
prioritized vertically within each column (higher = higher priority).
|
|
44
|
+
|
|
45
|
+
### REQ-002 — MVP Horizontal Slice Rule
|
|
46
|
+
|
|
47
|
+
The MVP release boundary MUST be a **horizontal slice** across the story map,
|
|
48
|
+
covering all backbone activities at the walking-skeleton level. An MVP covering
|
|
49
|
+
only a subset of backbone activities (a **vertical slice** that perfects one
|
|
50
|
+
activity while others are absent or non-functional) is PROHIBITED, because it
|
|
51
|
+
cannot be evaluated end-to-end by users. **Exception**: single-activity products
|
|
52
|
+
(e.g. a focused utility) are exempt if the full value proposition is delivered by
|
|
53
|
+
that one activity; exceptions MUST be documented with rationale in the story map.
|
|
54
|
+
|
|
55
|
+
### REQ-003 — Story INVEST Compliance
|
|
56
|
+
|
|
57
|
+
Every story in the map MUST comply with the INVEST criteria from
|
|
58
|
+
`requirement-engineering`: **I**ndependent, **N**egotiable, **V**aluable,
|
|
59
|
+
**E**stimable, **S**mall (fits within one sprint at most; split if larger),
|
|
60
|
+
**T**estable (objectively verifiable acceptance criteria exist). Stories that fail
|
|
61
|
+
INVEST must be refined before entering a sprint; the assessment MUST be performed
|
|
62
|
+
during backlog-refinement sessions.
|
|
63
|
+
|
|
64
|
+
### REQ-004 — Acceptance Criteria Format
|
|
65
|
+
|
|
66
|
+
Every story MUST have at least one acceptance criterion in **Given/When/Then**
|
|
67
|
+
format, tied to a measurable product outcome from the `product-metrics-standards`
|
|
68
|
+
hierarchy where applicable. Stories with criteria that cannot be objectively
|
|
69
|
+
verified (e.g. "the page looks good") are non-compliant. Acceptance criteria MUST
|
|
70
|
+
be written before development begins and MUST NOT be modified after it starts
|
|
71
|
+
without PM and dev-lead sign-off (same revision policy as PRD changes).
|
|
72
|
+
|
|
73
|
+
## Anti-Patterns
|
|
74
|
+
|
|
75
|
+
- Vertical MVP slicing: perfecting one activity while other backbone activities are absent.
|
|
76
|
+
- Stories without acceptance criteria entering development (no clear definition of done).
|
|
77
|
+
- Backbone activities mapped to system components instead of actual user goals.
|
|
78
|
+
- Story map used only for planning then discarded, not kept as a living tool.
|
|
79
|
+
- Detail stories added directly without backbone and walking-skeleton context.
|
|
80
|
+
|
|
81
|
+
## Integration with Existing Standards
|
|
82
|
+
|
|
83
|
+
- **`prd-standards`** — PRD scope is realized as a story map and MVP slice.
|
|
84
|
+
- **`requirement-engineering`** — stories follow the INVEST criteria defined there.
|
|
85
|
+
- **`product-metrics-standards`** — acceptance criteria tie to a North Star driver.
|
|
86
|
+
- **`acceptance-criteria-traceability`** — GWT criteria provide the AC traceability spine.
|
|
87
|
+
|
|
88
|
+
## Related Specs
|
|
89
|
+
|
|
90
|
+
- XSPEC-069 — UDS product-layer pack (this standard's source)
|
|
91
|
+
|
|
92
|
+
## Changelog
|
|
93
|
+
|
|
94
|
+
| Version | Date | Changes |
|
|
95
|
+
|---------|------|---------|
|
|
96
|
+
| v1.0.0 | 2026-06-17 | Initial — REQ-001~004: three-layer map, MVP horizontal-slice rule, INVEST compliance, GWT acceptance criteria (XSPEC-069) |
|
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
# Verification Oracle Standards
|
|
2
|
+
|
|
3
|
+
> **Version**: 1.0.0 | **Status**: Active | **Updated**: 2026-06-17
|
|
4
|
+
> **AI-optimized version**: `ai/standards/verification-oracle.ai.yaml`
|
|
5
|
+
> **Spec**: XSPEC-256 (cross-project/specs/XSPEC-256-verification-oracle.md)
|
|
6
|
+
|
|
7
|
+
**Scope**: universal
|
|
8
|
+
|
|
9
|
+
## Overview
|
|
10
|
+
|
|
11
|
+
A **test oracle** is the source of truth that decides whether software output is *correct*.
|
|
12
|
+
Software without an oracle cannot be said to be "right" — you cannot even state whether it
|
|
13
|
+
is right or wrong. This standard makes the **ground-truth oracle a first-class artifact**
|
|
14
|
+
and turns "correct" from a one-time acceptance state into a **maintained invariant**
|
|
15
|
+
re-verified on every change (DEC-077).
|
|
16
|
+
|
|
17
|
+
It is the **correctness** member of the governance-gate family — alongside
|
|
18
|
+
`license-compliance` (XSPEC-193, *licensing*) and `model-provenance` (XSPEC-255, *source*) —
|
|
19
|
+
which all share the same shape: **registry/check → fail-closed gate → audit evidence →
|
|
20
|
+
human-escalation ceiling**. The three are profiles of one mechanism over three axes:
|
|
21
|
+
**licensing / provenance / correctness**.
|
|
22
|
+
|
|
23
|
+
> **Scope.** This standard defines the *correctness oracle mechanism* (registry, grading,
|
|
24
|
+
> gate timing, re-verification, evidence, escalation) and the acceptance evidence it
|
|
25
|
+
> produces. The **oracle content (the correct answers) belongs to the customer** — it is
|
|
26
|
+
> their domain, their ground truth (DEC-075 neutral mechanism / DEC-063 customer-owned
|
|
27
|
+
> output). Enforcement engine wiring (e.g. VibeOps pipeline gates) is a downstream
|
|
28
|
+
> adoption concern, not part of this standard.
|
|
29
|
+
|
|
30
|
+
## The Oracle-ability Spectrum
|
|
31
|
+
|
|
32
|
+
Not every requirement has a ready oracle. Grade each high-stakes feature by how readily its
|
|
33
|
+
oracle exists — this drives cost, beachhead selection, and when a human must step in.
|
|
34
|
+
|
|
35
|
+
| Tier | Oracle shape | Readiness / cost |
|
|
36
|
+
|------|--------------|------------------|
|
|
37
|
+
| 1 | Known-correct output of a legacy system | Most ready, cheapest (parity-provable) |
|
|
38
|
+
| 2 | A batch of hand-computed / existing correct outputs | Ready (reproduce + scale) |
|
|
39
|
+
| 3 | Regulation / formula (rules exist, examples missing) | Needs co-derived worked examples + sign-off (ATDD) |
|
|
40
|
+
| 4 | Vague requirement (oracle must be *mined* from interviews) | Most expensive — the "translation problem" |
|
|
41
|
+
|
|
42
|
+
## Requirements
|
|
43
|
+
|
|
44
|
+
| ID | Rule | Level |
|
|
45
|
+
|----|------|-------|
|
|
46
|
+
| REQ-001 | Ground-truth registry as a first-class artifact, bound to AC | MUST |
|
|
47
|
+
| REQ-002 | Oracle-ability grading (Tier 1–4) for every high-stakes feature | MUST |
|
|
48
|
+
| REQ-003 | Fail-closed verification gate before ship | MUST |
|
|
49
|
+
| REQ-004 | Sustained re-verification on every change (correctness as CI invariant) | MUST |
|
|
50
|
+
| REQ-005 | Auditable verification evidence (N/N reproduced, no drift, trace) | MUST |
|
|
51
|
+
| REQ-006 | Self-serve frontier ceiling — escalate when no oracle / unverifiable high-stakes | MUST |
|
|
52
|
+
| REQ-007 | Oracle content sovereignty — content owned by customer, mechanism neutral | SHOULD |
|
|
53
|
+
|
|
54
|
+
### REQ-001 — Ground-Truth Registry
|
|
55
|
+
|
|
56
|
+
The correct answers a customer provides become a first-class artifact. Each ground-truth
|
|
57
|
+
case carries an **input scenario + expected correct output**, and is **bound to the
|
|
58
|
+
acceptance criterion** it proves (`acceptance-criteria-traceability`). At minimum the
|
|
59
|
+
mechanism MUST support numeric and structured-output comparison, with per-field exemptions
|
|
60
|
+
(e.g. `ignore_fields` for timestamps/ids). Example: a billing case "given orders + org
|
|
61
|
+
state → the *correct* charge amount", not merely "the endpoint returns HTTP 200".
|
|
62
|
+
|
|
63
|
+
### REQ-002 — Oracle-ability Grading
|
|
64
|
+
|
|
65
|
+
Every high-stakes feature MUST be tagged with its oracle Tier (1–4, table above).
|
|
66
|
+
A **Tier-4 (must-mine) feature MUST have a defined hand-off point** to an oracle-manufacturing
|
|
67
|
+
flow (interview / Prototype Probe; XSPEC-252) that pulls the expensive end toward Tier 1–2.
|
|
68
|
+
Beachhead selection SHOULD prefer Tier 1–2 features where the oracle is already ready.
|
|
69
|
+
|
|
70
|
+
### REQ-003 — Fail-Closed Verification Gate
|
|
71
|
+
|
|
72
|
+
Before a system may enter UAT/ship, it MUST **exactly reproduce every registered
|
|
73
|
+
ground-truth case**. A non-reproduction MUST **block ship or escalate** — never silently
|
|
74
|
+
pass (mirrors `license-compliance` blocklist and `model-provenance` denylist). The gate
|
|
75
|
+
plugs into existing reviewer/QA gates and the audit logger.
|
|
76
|
+
|
|
77
|
+
### REQ-004 — Sustained Re-Verification (the soul of this standard)
|
|
78
|
+
|
|
79
|
+
On **every change / regeneration**, the full oracle suite MUST be re-run, making "correct"
|
|
80
|
+
a **CI-grade invariant** rather than a one-time acceptance. **Drift** (was-correct, now-wrong)
|
|
81
|
+
MUST be detected and **blocked**. This is the mechanization of DEC-077's "changed and still
|
|
82
|
+
correct, and provably correct the whole time" — the differentiator a "generate-once, never
|
|
83
|
+
re-verify" competitor cannot match.
|
|
84
|
+
|
|
85
|
+
### REQ-005 — Audit Evidence
|
|
86
|
+
|
|
87
|
+
Each verification run MUST emit an auditable report: *"this delivery reproduced N/N
|
|
88
|
+
ground-truth cases, no drift, trace attached."* It plugs into the audit logger / hash chain,
|
|
89
|
+
the `model-provenance` source evidence (XSPEC-255), and the telemetry allowlist (DEC-066).
|
|
90
|
+
**This report is the outward proof of the correctness/governance moat** and a compliance
|
|
91
|
+
artifact for the customer.
|
|
92
|
+
|
|
93
|
+
### REQ-006 — Self-Serve Frontier Ceiling
|
|
94
|
+
|
|
95
|
+
Where there is **no oracle** (correctness is not decidable) or a **high-stakes but
|
|
96
|
+
unverifiable** path, the system MUST NOT let self-serve silently pass. It MUST flag
|
|
97
|
+
"a human must decide / an oracle must be supplied here" and **escalate** (DEC-076 ceiling).
|
|
98
|
+
Defining correctness and signing off acceptance are **human judgments** (customer / legal /
|
|
99
|
+
regulator) — a product-enforced governance gate, not a consultant trap.
|
|
100
|
+
|
|
101
|
+
### REQ-007 — Oracle Content Sovereignty
|
|
102
|
+
|
|
103
|
+
The verification *mechanism* is domain-neutral (DEC-075); the *correct answers* are owned by
|
|
104
|
+
the customer (DEC-063). Adopters SHOULD keep registries customer-scoped and isolated
|
|
105
|
+
(see `model-provenance` / `license-compliance` per-customer salt patterns, DEC-064).
|
|
106
|
+
|
|
107
|
+
## Principles
|
|
108
|
+
|
|
109
|
+
| ID | Principle |
|
|
110
|
+
|----|-----------|
|
|
111
|
+
| P-1 | Oracle First — no oracle, no "correct"; grade oracle-ability before claiming correctness |
|
|
112
|
+
| P-2 | Maintained Invariant — re-verify on every change; drift is a blocking event (DEC-077) |
|
|
113
|
+
| P-3 | Fail-Closed — non-reproduction blocks or escalates; never silent pass |
|
|
114
|
+
| P-4 | Evidence-Based — every verdict carries a reproducible trace (N/N + diff + audit id) |
|
|
115
|
+
| P-5 | Human Ceiling — unverifiable high-stakes escalates to a human (DEC-076) |
|
|
116
|
+
| P-6 | Content Sovereignty — mechanism neutral, correct answers owned by the customer |
|
|
117
|
+
|
|
118
|
+
## Gate Timing
|
|
119
|
+
|
|
120
|
+
```
|
|
121
|
+
spec(SDD) → generate → [oracle verification gate] ← REQ-003 fail-closed, pre-ship
|
|
122
|
+
│
|
|
123
|
+
on every change ─────┤ → re-run full oracle suite ← REQ-004 drift block
|
|
124
|
+
↓
|
|
125
|
+
audit evidence report ← REQ-005 (outward moat proof)
|
|
126
|
+
│
|
|
127
|
+
no oracle / unverifiable ──┴──→ escalate to human ← REQ-006 ceiling
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
## Relationship to the Governance-Gate Family
|
|
131
|
+
|
|
132
|
+
| Profile | Standard | Axis | Registry/Check | Block trigger |
|
|
133
|
+
|---------|----------|------|----------------|---------------|
|
|
134
|
+
| Licensing | `license-compliance` (XSPEC-193) | legal | blocklist/allowlist/greylist | prohibited license |
|
|
135
|
+
| Provenance | model-provenance (XSPEC-255, planned sibling) | source | model source policy | denied source |
|
|
136
|
+
| **Correctness** | **`verification-oracle` (XSPEC-256)** | **correct** | **ground-truth registry** | **non-reproduction / drift** |
|
|
137
|
+
|
|
138
|
+
All three: fail-closed + audit evidence + customer override telemetered + human-escalation ceiling.
|
|
139
|
+
|
|
140
|
+
## Integration with Existing Standards
|
|
141
|
+
|
|
142
|
+
- **`acceptance-criteria-traceability`** — oracle cases bind to AC; reproduction becomes a
|
|
143
|
+
form of AC coverage.
|
|
144
|
+
- **`verification-evidence`** — the oracle report is a kind of verification evidence (N/N
|
|
145
|
+
reproduction + no-drift + trace).
|
|
146
|
+
- **`test-governance`** — the oracle suite is governed test policy; the gate is a governed gate.
|
|
147
|
+
- **`behavior-snapshot`** — a parity/snapshot gate is REQ-003/REQ-004 instantiated for the
|
|
148
|
+
refactor/migration case; a snapshot is itself an oracle, so the skeleton may be shared.
|
|
149
|
+
|
|
150
|
+
## Related Specs
|
|
151
|
+
|
|
152
|
+
- XSPEC-256 — Verification Oracle complete spec (this standard's source)
|
|
153
|
+
- DEC-077 — Correctness as a maintained invariant (mother decision)
|
|
154
|
+
- DEC-075 — VibeOps domain-neutral positioning (neutral mechanism)
|
|
155
|
+
- DEC-076 — Self-serve customization north star (oracle = self-serve ceiling)
|
|
156
|
+
- DEC-063 — Legal & compliance strategy (customer-owned output / high-stakes)
|
|
157
|
+
- DEC-066 — Telemetry-driven product evolution (audit/telemetry)
|
|
158
|
+
- XSPEC-193 / XSPEC-255 — sibling governance-gate profiles (licensing / provenance)
|
|
159
|
+
- XSPEC-252 — Domain pack requirement translation (oracle manufacturing, Tier-4 hand-off)
|
|
160
|
+
- XSPEC-188 — UAT ship-decision dashboard (business-level UAT anchors)
|
|
161
|
+
- XSPEC-201 — Refactor/migration completeness (behavior-snapshot = an oracle instance)
|
|
162
|
+
|
|
163
|
+
## Changelog
|
|
164
|
+
|
|
165
|
+
| Version | Date | Changes |
|
|
166
|
+
|---------|------|---------|
|
|
167
|
+
| v1.0.0 | 2026-06-17 | Initial — REQ-001~007: ground-truth registry, oracle-ability grading, fail-closed gate, sustained re-verification, audit evidence, self-serve ceiling, content sovereignty (XSPEC-256) |
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
|
|
3
3
|
> **Language**: English | [繁體中文](../locales/zh-TW/core/versioning.md)
|
|
4
4
|
|
|
5
|
-
**Version**: 1.
|
|
6
|
-
**Last Updated**:
|
|
5
|
+
**Version**: 1.5.0
|
|
6
|
+
**Last Updated**: 2026-07-01
|
|
7
7
|
**Applicability**: All software projects with versioned releases
|
|
8
8
|
**Scope**: universal
|
|
9
9
|
**Industry Standards**: Semantic Versioning 2.0.0
|
|
@@ -156,6 +156,94 @@ Format: `MAJOR.MINOR.PATCH+BUILD`
|
|
|
156
156
|
- Use for CI/CD tracking
|
|
157
157
|
- Include in artifacts but not in version comparison
|
|
158
158
|
|
|
159
|
+
> **Critical: build metadata MUST NOT be used as a deployment discriminator.**
|
|
160
|
+
> Because tooling ignores `+build` in precedence and comparison (above), two builds
|
|
161
|
+
> differing only in build metadata (`1.2.3+abc` vs `1.2.3+def`) are **indistinguishable
|
|
162
|
+
> to version-comparison tooling** — rollback targets and `semver` comparison treat them
|
|
163
|
+
> as the same release. Using `+sha` to tell apart behaviorally-different deployed builds
|
|
164
|
+
> is a governance bypass: the version stops being the join key for changelog / SBOM /
|
|
165
|
+
> audit / rollback / SLA / CVE scope. A change that ships MUST get a real version bump or
|
|
166
|
+
> a unique immutable artifact identity (see **Deployment Version Identity** below) —
|
|
167
|
+
> `+sha` is **not** a substitute.
|
|
168
|
+
|
|
169
|
+
---
|
|
170
|
+
|
|
171
|
+
## Deployment Version Identity
|
|
172
|
+
|
|
173
|
+
> Source: a recurring failure mode — multiple behaviorally-different hotfix builds
|
|
174
|
+
> deployed under the same `X.Y.Z`, distinguishable only by `+sha`, so answering
|
|
175
|
+
> "which build is in prod / is fix X actually deployed?" collapses into commit
|
|
176
|
+
> archaeology.
|
|
177
|
+
|
|
178
|
+
This section governs the identity of a **deployable unit** — whatever that unit is for the
|
|
179
|
+
project (a container image, a tarball, a published package). It complements the
|
|
180
|
+
[Release Process](#release-process) below, which describes one concrete single-host release
|
|
181
|
+
flow; the identity rules here apply regardless of the deployment mechanism.
|
|
182
|
+
|
|
183
|
+
### Core invariant
|
|
184
|
+
|
|
185
|
+
**Every distinct deployable build artifact MUST carry a unique, immutable version
|
|
186
|
+
identity (version proper + commit sha).** Deploying, *promoting*, or *rolling back*
|
|
187
|
+
an **existing** artifact MUST NOT change its identity.
|
|
188
|
+
|
|
189
|
+
- **Anchor on the artifact, not the deploy action.** A new build (different source or
|
|
190
|
+
dependencies) ⇒ new version. The *same* build moved between environments
|
|
191
|
+
(staging → prod, build-once-deploy-many), redeployed (blue-green / canary), or
|
|
192
|
+
rolled back is the **same** artifact and keeps its identity — it MUST NOT be
|
|
193
|
+
re-bumped. Re-bumping on promote/rollback makes the version number lie about what
|
|
194
|
+
is actually running. (When a rollback restores a previous artifact, it restores that
|
|
195
|
+
artifact's original identity — it does not mint a new one.)
|
|
196
|
+
- **Never deploy two distinct builds under the same `X.Y.Z`.**
|
|
197
|
+
|
|
198
|
+
### Enforce automatically, not by discipline
|
|
199
|
+
|
|
200
|
+
The invariant SHOULD be enforced by an automatic mechanism rather than human discipline
|
|
201
|
+
alone — the failure mode above *is* a forgotten manual bump. Any of these satisfies it:
|
|
202
|
+
|
|
203
|
+
- **Commit-driven release automation** (`semantic-release` / `standard-version`, see
|
|
204
|
+
[Automation Tools](#automation-tools)): derives and bumps the version from commit
|
|
205
|
+
history in CI, so a human cannot forget to bump.
|
|
206
|
+
- **Git-height–derived versioning** (MinVer / Nerdbank.GitVersioning / GitVersion):
|
|
207
|
+
the version is derived from git commit topology, so a collision is structurally
|
|
208
|
+
impossible. RECOMMENDED for polyglot / .NET / JVM projects (the Automation Tools
|
|
209
|
+
section is otherwise Node-centric) — see the git-height subsection under
|
|
210
|
+
[Automation Tools](#automation-tools). Note caveats for monorepos and squash-merge
|
|
211
|
+
workflows.
|
|
212
|
+
- **A CI uniqueness gate**: fail the release if the computed version already exists
|
|
213
|
+
as a git tag or in the registry.
|
|
214
|
+
|
|
215
|
+
### Immutable artifacts (cross-reference)
|
|
216
|
+
|
|
217
|
+
A unique *number* is necessary but not sufficient — the *artifact* must also be immutable
|
|
218
|
+
and content-addressed (e.g. a container image referenced by digest rather than a mutable
|
|
219
|
+
tag). The concrete artifact-level requirements — pinning deployments to a content address
|
|
220
|
+
and forbidding tag/version reuse — **belong with container-image-standards** and are to be
|
|
221
|
+
specified there; this standard only requires that the version identity itself remain
|
|
222
|
+
unique and immutable.
|
|
223
|
+
|
|
224
|
+
### Build identity is observable (requirement)
|
|
225
|
+
|
|
226
|
+
**A deployed service MUST expose its build identity — `version + commit sha + build time` —
|
|
227
|
+
through a queryable endpoint** (a dedicated `/version`, or embedded in `/health`), so
|
|
228
|
+
operators can determine exactly what is running without inspecting the binary or resorting to
|
|
229
|
+
commit archaeology. Rationale: manual version numbers can collide (above), so ops needs the
|
|
230
|
+
`sha` to tell apart two builds that ship under the same `X.Y.Z`.
|
|
231
|
+
|
|
232
|
+
Requirements:
|
|
233
|
+
|
|
234
|
+
- The exposed `sha` MUST match the deployed artifact's sha — it is **verifiable, not
|
|
235
|
+
self-reported** (derive it from the build, do not hand-type it).
|
|
236
|
+
- The endpoint SHOULD be access-controlled; a public build-identity endpoint leaks internal
|
|
237
|
+
commit identity.
|
|
238
|
+
- Post-release verification MUST assert the returned sha equals the deployed artifact's sha
|
|
239
|
+
(see [Phase 5: Post-release Verification](#phase-5-post-release-verification)), not merely
|
|
240
|
+
that the version number is correct.
|
|
241
|
+
|
|
242
|
+
This is a deployment / observability concern: the concrete verification *mechanism* (how the
|
|
243
|
+
endpoint is scraped and the assertion wired into a gate) **belongs with deployment-standards**
|
|
244
|
+
(to be specified there), and **supply-chain-attestation** already provides provenance as
|
|
245
|
+
the cryptographic backing for "this artifact came from this sha".
|
|
246
|
+
|
|
159
247
|
---
|
|
160
248
|
|
|
161
249
|
## Initial Development
|
|
@@ -431,8 +519,10 @@ sudo ./upgrade.sh
|
|
|
431
519
|
# 1. Check service status
|
|
432
520
|
systemctl status your-service
|
|
433
521
|
|
|
434
|
-
# 2. Check application version
|
|
435
|
-
|
|
522
|
+
# 2. Check application build identity (version + commit sha + build time)
|
|
523
|
+
# Assert the returned sha matches the deployed artifact's sha — not just the version.
|
|
524
|
+
curl http://localhost:PORT/version # or /health, if build identity is embedded there
|
|
525
|
+
# Expected: {"version": "1.2.1", "sha": "<deployed-artifact-sha>", "buildTime": "..."}
|
|
436
526
|
|
|
437
527
|
# 3. Check logs for no errors
|
|
438
528
|
tail -100 /path/to/app.log | grep -i error
|
|
@@ -440,7 +530,9 @@ tail -100 /path/to/app.log | grep -i error
|
|
|
440
530
|
|
|
441
531
|
**Success Criteria**:
|
|
442
532
|
- Service running normally
|
|
443
|
-
-
|
|
533
|
+
- `/version` (or `/health`) returns the correct version number **and** a commit sha that
|
|
534
|
+
matches the deployed artifact — a matching version alone is insufficient, since two builds
|
|
535
|
+
can share one `X.Y.Z` (see [Build identity is observable](#build-identity-is-observable-requirement))
|
|
444
536
|
- No fatal errors in logs
|
|
445
537
|
- Functionality verification passed
|
|
446
538
|
|
|
@@ -595,6 +687,32 @@ npm install --save-dev semantic-release
|
|
|
595
687
|
}
|
|
596
688
|
```
|
|
597
689
|
|
|
690
|
+
### Git-height–derived versioning (polyglot: .NET / JVM / multi-language)
|
|
691
|
+
|
|
692
|
+
The tools above are Node/npm-centric. For **.NET, JVM, or multi-language projects**, prefer
|
|
693
|
+
**git-height–derived versioning**, where the version is computed automatically from the git
|
|
694
|
+
tag graph plus the number of commits since the last tag ("commit height") rather than stored
|
|
695
|
+
in a hand-edited file. Because the version is a deterministic function of git history,
|
|
696
|
+
**two different builds cannot collide on the same version number** and no manual bump step
|
|
697
|
+
can be forgotten — this is what makes it satisfy
|
|
698
|
+
[Deployment Version Identity](#deployment-version-identity) structurally rather than by
|
|
699
|
+
discipline.
|
|
700
|
+
|
|
701
|
+
| Tool | Ecosystem | Notes |
|
|
702
|
+
|------|-----------|-------|
|
|
703
|
+
| **MinVer** | .NET / MSBuild | Derives the version from the nearest git tag plus commit height; no config file, no build server integration required |
|
|
704
|
+
| **Nerdbank.GitVersioning** (nbgv) | .NET (also Node and others) | Reads a `version.json`; stamps version + git height + commit id into assemblies and packages |
|
|
705
|
+
| **GitVersion** | Polyglot (.NET, plus a language-agnostic CLI) | Configurable versioning modes (e.g. Mainline, Continuous Delivery / Continuous Deployment) driven by branch and tag topology |
|
|
706
|
+
|
|
707
|
+
**When to use which:**
|
|
708
|
+
|
|
709
|
+
- **Node / npm projects** → commit-driven automation (`semantic-release` / `standard-version`, above): the bump is derived from Conventional Commits.
|
|
710
|
+
- **Polyglot / .NET / JVM projects** → git-height–derived tools (MinVer / Nerdbank.GitVersioning / GitVersion): the version is derived from git tag + commit height.
|
|
711
|
+
|
|
712
|
+
Both families remove the forgettable manual bump. **Caveats:** in a monorepo a single
|
|
713
|
+
repo-wide commit height may not map cleanly onto per-package versions, and squash-merge
|
|
714
|
+
workflows alter commit height — validate the derived version against your tagging convention.
|
|
715
|
+
|
|
598
716
|
---
|
|
599
717
|
|
|
600
718
|
## Dependency Version Ranges
|
|
@@ -638,113 +756,14 @@ npm install --save-dev semantic-release
|
|
|
638
756
|
|
|
639
757
|
---
|
|
640
758
|
|
|
641
|
-
## Breaking
|
|
642
|
-
|
|
643
|
-
### 1. Deprecation Warnings (N-1 Version)
|
|
644
|
-
|
|
645
|
-
```javascript
|
|
646
|
-
// Version 1.5.0 - Add deprecation warning
|
|
647
|
-
/**
|
|
648
|
-
* @deprecated Use authenticateV2() instead. Will be removed in v2.0.0
|
|
649
|
-
*/
|
|
650
|
-
function authenticate(username, password) {
|
|
651
|
-
console.warn('[DEPRECATED] authenticate() will be removed in v2.0.0. Use authenticateV2()');
|
|
652
|
-
return authenticateV2(username, password);
|
|
653
|
-
}
|
|
654
|
-
```
|
|
655
|
-
|
|
656
|
-
### 2. API Versioning Strategies
|
|
657
|
-
|
|
658
|
-
Choose an API versioning strategy based on your needs:
|
|
659
|
-
|
|
660
|
-
| Strategy | Format | Pros | Cons |
|
|
661
|
-
|----------|--------|------|------|
|
|
662
|
-
| URL Path | `/api/v1/users` | Clear, easy routing | URL pollution |
|
|
663
|
-
| Query Parameter | `/api/users?version=1` | Optional versioning | Cache issues |
|
|
664
|
-
| Header | `Accept: application/vnd.api.v1+json` | Clean URLs | Less visible |
|
|
665
|
-
| Content Negotiation | `Accept: application/vnd.api+json;version=1` | RESTful | Complex |
|
|
759
|
+
## Breaking Changes & Deprecation
|
|
666
760
|
|
|
667
|
-
|
|
761
|
+
Breaking changes drive the **MAJOR** version increment (see [Incrementing Rules](#incrementing-rules)) — that is how SemVer signals an incompatible change to consumers. The *contract-level* details of evolving and retiring an API are owned by the standards responsible for those concerns, so each rule has a single source of truth:
|
|
668
762
|
|
|
669
|
-
|
|
763
|
+
- **API versioning strategies, the backward-compatibility checklist (what counts as a breaking change), deprecation annotations in code, and the migration-guide template** → [API Design Standards](api-design-standards.md#api-versioning-strategies)
|
|
764
|
+
- **The deprecation lifecycle, minimum notice periods by API tier, `Sunset` / `Deprecation` headers, and consumer notification** → [Deprecation & Sunset Standards](deprecation-standards.md#api-deprecation)
|
|
670
765
|
|
|
671
|
-
|
|
672
|
-
|
|
673
|
-
```
|
|
674
|
-
v1.0.0 - Feature introduced
|
|
675
|
-
v1.5.0 - Deprecation warning added (minimum N-1 version)
|
|
676
|
-
v2.0.0 - Feature removed (document in migration guide)
|
|
677
|
-
```
|
|
678
|
-
|
|
679
|
-
**Deprecation Period Guidelines**:
|
|
680
|
-
|
|
681
|
-
| API Type | Minimum Deprecation Period |
|
|
682
|
-
|----------|---------------------------|
|
|
683
|
-
| Internal API | 1 minor version |
|
|
684
|
-
| Partner API | 2 minor versions + 3 months |
|
|
685
|
-
| Public API | 2 minor versions + 6 months |
|
|
686
|
-
| Critical Infrastructure | 1 year minimum |
|
|
687
|
-
|
|
688
|
-
### 4. Backward Compatibility Checklist
|
|
689
|
-
|
|
690
|
-
Before releasing, verify these backward compatibility rules:
|
|
691
|
-
|
|
692
|
-
**DO NOT break (without major version bump)**:
|
|
693
|
-
- [ ] Remove public API endpoints
|
|
694
|
-
- [ ] Remove required request fields
|
|
695
|
-
- [ ] Add required request fields
|
|
696
|
-
- [ ] Change response field types
|
|
697
|
-
- [ ] Change error code meanings
|
|
698
|
-
- [ ] Remove response fields consumers depend on
|
|
699
|
-
|
|
700
|
-
**Safe changes (minor/patch version)**:
|
|
701
|
-
- [ ] Add optional request fields
|
|
702
|
-
- [ ] Add new response fields
|
|
703
|
-
- [ ] Add new endpoints
|
|
704
|
-
- [ ] Add new error codes
|
|
705
|
-
- [ ] Improve error messages
|
|
706
|
-
- [ ] Performance improvements
|
|
707
|
-
|
|
708
|
-
### 5. Migration Guide (N Version)
|
|
709
|
-
|
|
710
|
-
```markdown
|
|
711
|
-
# Migration Guide: v1.x to v2.0
|
|
712
|
-
|
|
713
|
-
## Breaking Changes
|
|
714
|
-
|
|
715
|
-
### 1. authenticate() removed
|
|
716
|
-
|
|
717
|
-
**Before (v1.x)**:
|
|
718
|
-
```javascript
|
|
719
|
-
const token = await authenticate('user', 'pass');
|
|
720
|
-
```
|
|
721
|
-
|
|
722
|
-
**After (v2.0)**:
|
|
723
|
-
```javascript
|
|
724
|
-
const token = await authenticateV2({ username: 'user', password: 'pass' });
|
|
725
|
-
```
|
|
726
|
-
|
|
727
|
-
### 2. API response format changed
|
|
728
|
-
|
|
729
|
-
**Before (v1.x)**:
|
|
730
|
-
```json
|
|
731
|
-
{ "data": { "user": {...} } }
|
|
732
|
-
```
|
|
733
|
-
|
|
734
|
-
**After (v2.0)**:
|
|
735
|
-
```json
|
|
736
|
-
{ "user": {...} }
|
|
737
|
-
```
|
|
738
|
-
|
|
739
|
-
Update your code:
|
|
740
|
-
```javascript
|
|
741
|
-
// Before
|
|
742
|
-
const user = response.data.user;
|
|
743
|
-
|
|
744
|
-
// After
|
|
745
|
-
const user = response.user;
|
|
746
|
-
```
|
|
747
|
-
```
|
|
766
|
+
This standard keeps only the version-numbering rule: an incompatible change MUST ship as a MAJOR bump, and deprecation SHOULD be announced in a prior MINOR before the removing MAJOR (see [MAJOR Version](#major-version-x00) guidelines).
|
|
748
767
|
|
|
749
768
|
---
|
|
750
769
|
|
|
@@ -834,6 +853,8 @@ semver.major('2.3.1'); // 2
|
|
|
834
853
|
- [Changelog Standards](changelog-standards.md)
|
|
835
854
|
- [Git Workflow Standards](git-workflow.md)
|
|
836
855
|
- [Commit Message Guide](commit-message-guide.md)
|
|
856
|
+
- [API Design Standards](api-design-standards.md) — API versioning strategies, backward-compatibility rules, migration guides
|
|
857
|
+
- [Deprecation & Sunset Standards](deprecation-standards.md) — deprecation lifecycle and minimum notice periods
|
|
837
858
|
|
|
838
859
|
---
|
|
839
860
|
|
|
@@ -841,6 +862,9 @@ semver.major('2.3.1'); // 2
|
|
|
841
862
|
|
|
842
863
|
| Version | Date | Changes |
|
|
843
864
|
|---------|------|---------|
|
|
865
|
+
| 1.5.0 | 2026-07-01 | Added: git-height–derived versioning tools (MinVer / Nerdbank.GitVersioning / GitVersion) for polyglot / .NET / JVM projects in Automation Tools (UDS #138 R2); elevated "Build identity is observable" to a requirement — deployed services MUST expose `version + commit sha + build time` via a queryable endpoint — and added a commit-sha + build-time assertion to Phase 5 Post-release Verification (UDS #138 R3) |
|
|
866
|
+
| 1.4.0 | 2026-06-24 | Moved out (to single sources): API Versioning Strategies (de-duplicated), Deprecation Timeline + per-tier periods, Backward Compatibility Checklist, and the Migration Guide template — now owned by api-design-standards / deprecation-standards; versioning cross-references them (XSPEC-298 R8, UDS #126) |
|
|
867
|
+
| 1.3.0 | 2026-06-23 | Added: Deployment Version Identity section; build-metadata-as-deployment-discriminator caveat (from UDS #138) |
|
|
844
868
|
| 1.2.0 | 2025-12-30 | Added: API Versioning Strategies, Deprecation Timeline, Backward Compatibility Checklist |
|
|
845
869
|
| 1.1.3 | 2025-12-24 | Added: Related Standards section |
|
|
846
870
|
| 1.1.2 | 2025-12-11 | Improved: Upgrade package naming example to use generic placeholders instead of hardcoded project names |
|