universal-dev-standards 4.2.0 → 5.0.0-beta.10
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/README.md +3 -3
- package/bin/uds.js +165 -5
- package/bundled/core/acceptance-test-driven-development.md +19 -721
- package/bundled/core/accessibility-standards.md +862 -0
- package/bundled/core/ai-agreement-standards.md +95 -0
- package/bundled/core/ai-friendly-architecture.md +2 -0
- package/bundled/core/ai-instruction-standards.md +2 -0
- package/bundled/core/anti-hallucination.md +90 -637
- package/bundled/core/behavior-driven-development.md +20 -735
- package/bundled/core/changelog-standards.md +4 -0
- package/bundled/core/checkin-standards.md +21 -4
- package/bundled/core/code-review-checklist.md +3 -0
- package/bundled/core/commit-message-guide.md +14 -3
- package/bundled/core/deployment-standards.md +296 -0
- package/bundled/core/developer-memory.md +568 -0
- package/bundled/core/documentation-structure.md +114 -18
- package/bundled/core/documentation-writing-standards.md +272 -2
- package/bundled/core/error-code-standards.md +3 -0
- package/bundled/core/forward-derivation-standards.md +134 -8
- package/bundled/core/git-workflow.md +72 -686
- package/bundled/core/guides/anti-hallucination-guide.md +517 -0
- package/bundled/core/guides/git-workflow-guide.md +954 -0
- package/bundled/core/guides/performance-guide.md +508 -0
- package/bundled/core/guides/refactoring-guide.md +608 -0
- package/bundled/core/guides/security-guide.md +485 -0
- package/bundled/core/logging-standards.md +337 -2
- package/bundled/core/performance-standards.md +231 -0
- package/bundled/core/project-context-memory.md +180 -0
- package/bundled/core/project-structure.md +315 -2
- package/bundled/core/refactoring-standards.md +81 -761
- package/bundled/core/requirement-engineering.md +39 -0
- package/bundled/core/reverse-engineering-standards.md +6 -4
- package/bundled/core/security-standards.md +244 -0
- package/bundled/core/spec-driven-development.md +20 -319
- package/bundled/core/test-completeness-dimensions.md +213 -11
- package/bundled/core/test-driven-development.md +22 -978
- package/bundled/core/testing-standards.md +222 -2903
- package/bundled/core/versioning.md +16 -55
- package/bundled/core/virtual-organization-standards.md +85 -0
- package/bundled/locales/README.md +4 -4
- package/bundled/locales/zh-CN/CHANGELOG.md +18 -18
- package/bundled/locales/zh-CN/CLAUDE.md +3 -3
- package/bundled/locales/zh-CN/MAINTENANCE.md +7 -7
- package/bundled/locales/zh-CN/README.md +2 -2
- package/bundled/locales/zh-CN/STANDARDS-MAPPING.md +1 -1
- package/bundled/locales/zh-CN/adoption/ADOPTION-GUIDE.md +3 -3
- package/bundled/locales/zh-CN/adoption/DAILY-WORKFLOW-GUIDE.md +66 -7
- package/bundled/locales/zh-CN/adoption/STATIC-DYNAMIC-GUIDE.md +22 -22
- package/bundled/locales/zh-CN/adoption/checklists/enterprise.md +5 -5
- package/bundled/locales/zh-CN/adoption/checklists/minimal.md +4 -4
- package/bundled/locales/zh-CN/adoption/checklists/recommended.md +5 -5
- package/bundled/locales/zh-CN/ai/MAINTENANCE.md +13 -13
- package/bundled/locales/zh-CN/core/ai-instruction-standards.md +1 -1
- package/bundled/locales/zh-CN/core/anti-hallucination.md +39 -3
- package/bundled/locales/zh-CN/core/checkin-standards.md +18 -5
- package/bundled/locales/zh-CN/core/commit-message-guide.md +1 -1
- package/bundled/locales/zh-CN/core/developer-memory.md +576 -0
- package/bundled/locales/zh-CN/core/documentation-structure.md +43 -5
- package/bundled/locales/zh-CN/core/documentation-writing-standards.md +146 -5
- package/bundled/locales/zh-CN/core/git-workflow.md +179 -4
- package/bundled/locales/zh-CN/core/logging-standards.md +177 -4
- package/bundled/locales/zh-CN/core/project-structure.md +117 -5
- package/bundled/locales/zh-CN/core/refactoring-standards.md +3 -3
- package/bundled/locales/zh-CN/core/reverse-engineering-standards.md +6 -6
- package/bundled/locales/zh-CN/core/spec-driven-development.md +516 -14
- package/bundled/locales/zh-CN/core/test-completeness-dimensions.md +155 -24
- package/bundled/locales/zh-CN/core/test-driven-development.md +71 -20
- package/bundled/locales/zh-CN/core/testing-standards.md +4 -4
- package/bundled/locales/zh-CN/core/versioning.md +1 -1
- package/bundled/locales/zh-CN/docs/AI-AGENT-ROADMAP.md +90 -51
- package/bundled/locales/zh-CN/docs/CHEATSHEET.md +184 -0
- package/bundled/locales/zh-CN/docs/CLI-FLOW.md +239 -0
- package/bundled/locales/zh-CN/docs/FEATURE-REFERENCE.md +320 -0
- package/bundled/locales/zh-CN/docs/OPERATION-WORKFLOW.md +43 -43
- package/bundled/locales/zh-CN/docs/STANDARDS-REFERENCE.md +440 -0
- package/bundled/locales/zh-CN/docs/USAGE-MODES-COMPARISON.md +1 -1
- package/bundled/locales/zh-CN/docs/WINDOWS-GUIDE.md +1 -1
- package/bundled/locales/zh-CN/integrations/codex/README.md +3 -3
- package/bundled/locales/zh-CN/integrations/gemini-cli/README.md +3 -3
- package/bundled/locales/zh-CN/integrations/github-copilot/README.md +5 -5
- package/bundled/locales/zh-CN/integrations/github-copilot/copilot-instructions.md +9 -9
- package/bundled/locales/zh-CN/integrations/github-copilot/skills-mapping.md +18 -6
- package/bundled/locales/zh-CN/integrations/google-antigravity/README.md +2 -2
- package/bundled/locales/zh-CN/integrations/opencode/README.md +3 -3
- package/bundled/locales/zh-CN/integrations/opencode/skills-mapping.md +22 -10
- package/bundled/locales/zh-CN/integrations/openspec/README.md +1 -1
- package/bundled/locales/zh-CN/integrations/spec-kit/AGENTS.md +3 -3
- package/bundled/locales/zh-CN/integrations/spec-kit/README.md +1 -1
- package/bundled/locales/zh-CN/options/commit-message/bilingual.md +1 -1
- package/bundled/locales/zh-CN/options/commit-message/english.md +1 -1
- package/bundled/locales/zh-CN/options/commit-message/traditional-chinese.md +1 -1
- package/bundled/locales/zh-CN/options/git-workflow/gitflow.md +1 -1
- package/bundled/locales/zh-CN/options/git-workflow/github-flow.md +1 -1
- package/bundled/locales/zh-CN/options/git-workflow/merge-commit.md +1 -1
- package/bundled/locales/zh-CN/options/git-workflow/rebase-ff.md +1 -1
- package/bundled/locales/zh-CN/options/git-workflow/squash-merge.md +1 -1
- package/bundled/locales/zh-CN/options/git-workflow/trunk-based.md +1 -1
- package/bundled/locales/zh-CN/options/project-structure/dotnet.md +1 -1
- package/bundled/locales/zh-CN/options/project-structure/go.md +1 -1
- package/bundled/locales/zh-CN/options/project-structure/java.md +1 -1
- package/bundled/locales/zh-CN/options/project-structure/nodejs.md +1 -1
- package/bundled/locales/zh-CN/options/project-structure/python.md +1 -1
- package/bundled/locales/zh-CN/options/testing/e2e-testing.md +1 -1
- package/bundled/locales/zh-CN/options/testing/integration-testing.md +1 -1
- package/bundled/locales/zh-CN/options/testing/system-testing.md +1 -1
- package/bundled/locales/zh-CN/options/testing/unit-testing.md +1 -1
- package/bundled/locales/zh-CN/skills/{claude-code/CONTRIBUTING.template.md → CONTRIBUTING.template.md} +2 -2
- package/bundled/locales/zh-CN/skills/README.md +131 -81
- package/bundled/locales/zh-CN/skills/agents/README.md +281 -0
- package/bundled/locales/zh-CN/skills/{claude-code/ai-collaboration-standards → ai-collaboration-standards}/SKILL.md +10 -10
- package/bundled/locales/zh-CN/skills/{claude-code/ai-collaboration-standards → ai-collaboration-standards}/anti-hallucination.md +8 -8
- package/bundled/locales/zh-CN/skills/{claude-code/ai-collaboration-standards → ai-collaboration-standards}/certainty-labels.md +8 -8
- package/bundled/locales/zh-CN/skills/ai-friendly-architecture/SKILL.md +221 -0
- package/bundled/locales/zh-CN/skills/ai-instruction-standards/SKILL.md +214 -0
- package/bundled/locales/zh-CN/skills/atdd-assistant/SKILL.md +71 -0
- package/bundled/locales/zh-CN/skills/atdd-assistant/acceptance-criteria-guide.md +428 -0
- package/bundled/locales/zh-CN/skills/atdd-assistant/atdd-workflow.md +484 -0
- package/bundled/locales/zh-CN/skills/atdd-assistant/guide.md +368 -0
- package/bundled/locales/zh-CN/skills/bdd-assistant/SKILL.md +68 -0
- package/bundled/locales/zh-CN/skills/bdd-assistant/bdd-workflow.md +406 -0
- package/bundled/locales/zh-CN/skills/bdd-assistant/gherkin-guide.md +454 -0
- package/bundled/locales/zh-CN/skills/bdd-assistant/guide.md +324 -0
- package/bundled/locales/zh-CN/skills/changelog-guide/SKILL.md +64 -0
- package/bundled/locales/zh-CN/skills/{claude-code/changelog-guide/SKILL.md → changelog-guide/guide.md} +6 -7
- package/bundled/locales/zh-CN/skills/checkin-assistant/SKILL.md +56 -0
- package/bundled/locales/zh-CN/skills/{claude-code/checkin-assistant/SKILL.md → checkin-assistant/guide.md} +6 -7
- package/bundled/locales/zh-CN/skills/code-review-assistant/SKILL.md +56 -0
- package/bundled/locales/zh-CN/skills/{claude-code/code-review-assistant → code-review-assistant}/checkin-checklist.md +4 -4
- package/bundled/locales/zh-CN/skills/{claude-code/code-review-assistant/SKILL.md → code-review-assistant/guide.md} +5 -6
- package/bundled/locales/zh-CN/skills/{claude-code/code-review-assistant → code-review-assistant}/review-checklist.md +4 -4
- package/bundled/locales/zh-CN/skills/{claude-code/commands → commands}/bdd.md +2 -2
- package/bundled/locales/zh-CN/skills/{claude-code/commands → commands}/methodology.md +3 -3
- package/bundled/locales/zh-CN/skills/{claude-code/commands → commands}/refactor.md +3 -3
- package/bundled/locales/zh-CN/skills/commit-standards/SKILL.md +61 -0
- package/bundled/locales/zh-CN/skills/{claude-code/commit-standards → commit-standards}/conventional-commits.md +4 -4
- package/bundled/locales/zh-CN/skills/{claude-code/commit-standards/SKILL.md → commit-standards/guide.md} +5 -6
- package/bundled/locales/zh-CN/skills/{claude-code/commit-standards → commit-standards}/language-options.md +3 -3
- package/bundled/locales/zh-CN/skills/docs-generator/SKILL.md +59 -0
- package/bundled/locales/zh-CN/skills/docs-generator/guide.md +262 -0
- package/bundled/locales/zh-CN/skills/{claude-code/documentation-guide → documentation-guide}/SKILL.md +7 -8
- package/bundled/locales/zh-CN/skills/{claude-code/documentation-guide → documentation-guide}/documentation-structure.md +4 -4
- package/bundled/locales/zh-CN/skills/{claude-code/documentation-guide → documentation-guide}/readme-template.md +3 -3
- package/bundled/locales/zh-CN/skills/{claude-code/error-code-guide → error-code-guide}/SKILL.md +6 -6
- package/bundled/locales/zh-CN/skills/forward-derivation/SKILL.md +62 -0
- package/bundled/locales/zh-CN/skills/forward-derivation/guide.md +130 -0
- package/bundled/locales/zh-CN/skills/{claude-code/git-workflow-guide → git-workflow-guide}/SKILL.md +6 -6
- package/bundled/locales/zh-CN/skills/{claude-code/git-workflow-guide → git-workflow-guide}/branch-naming.md +3 -3
- package/bundled/locales/zh-CN/skills/{claude-code/git-workflow-guide → git-workflow-guide}/git-workflow.md +4 -4
- package/bundled/locales/zh-CN/skills/{claude-code/logging-guide → logging-guide}/SKILL.md +6 -6
- package/bundled/locales/zh-CN/skills/methodology-system/SKILL.md +78 -0
- package/bundled/locales/zh-CN/skills/{claude-code/methodology-system → methodology-system}/create-methodology.md +2 -2
- package/bundled/locales/zh-CN/skills/{claude-code/methodology-system/SKILL.md → methodology-system/guide.md} +2 -2
- package/bundled/locales/zh-CN/skills/{claude-code/methodology-system → methodology-system}/runtime.md +3 -3
- package/bundled/locales/zh-CN/skills/project-discovery/SKILL.md +66 -0
- package/bundled/locales/zh-CN/skills/project-discovery/guide.md +371 -0
- package/bundled/locales/zh-CN/skills/{claude-code/project-structure-guide → project-structure-guide}/SKILL.md +4 -4
- package/bundled/locales/zh-CN/skills/{claude-code/project-structure-guide → project-structure-guide}/language-patterns.md +1 -1
- package/bundled/locales/zh-CN/skills/refactoring-assistant/SKILL.md +67 -0
- package/bundled/locales/zh-CN/skills/{claude-code/refactoring-assistant/SKILL.md → refactoring-assistant/guide.md} +7 -8
- package/bundled/locales/zh-CN/skills/release-standards/SKILL.md +64 -0
- package/bundled/locales/zh-CN/skills/{claude-code/release-standards → release-standards}/changelog-format.md +3 -3
- package/bundled/locales/zh-CN/skills/{claude-code/release-standards/SKILL.md → release-standards/guide.md} +5 -6
- package/bundled/locales/zh-CN/skills/{claude-code/release-standards → release-standards}/release-workflow.md +7 -7
- package/bundled/locales/zh-CN/skills/{claude-code/release-standards → release-standards}/semantic-versioning.md +3 -3
- package/bundled/locales/zh-CN/skills/requirement-assistant/SKILL.md +67 -0
- package/bundled/locales/zh-CN/skills/{claude-code/requirement-assistant/SKILL.md → requirement-assistant/guide.md} +4 -5
- package/bundled/locales/zh-CN/skills/{claude-code/requirement-assistant → requirement-assistant}/requirement-checklist.md +3 -3
- package/bundled/locales/zh-CN/skills/{claude-code/requirement-assistant → requirement-assistant}/requirement-writing.md +3 -3
- package/bundled/locales/zh-CN/skills/reverse-engineer/SKILL.md +67 -0
- package/bundled/locales/zh-CN/skills/{claude-code/reverse-engineer → reverse-engineer}/bdd-extraction.md +2 -2
- package/bundled/locales/zh-CN/skills/{claude-code/reverse-engineer/SKILL.md → reverse-engineer/guide.md} +17 -18
- package/bundled/locales/zh-CN/skills/{claude-code/reverse-engineer → reverse-engineer}/tdd-analysis.md +2 -2
- package/bundled/locales/zh-CN/skills/{claude-code/reverse-engineer → reverse-engineer}/workflow.md +3 -3
- package/bundled/locales/zh-CN/skills/spec-driven-dev/SKILL.md +75 -0
- package/bundled/locales/zh-CN/skills/{claude-code/spec-driven-dev/SKILL.md → spec-driven-dev/guide.md} +10 -11
- package/bundled/locales/zh-CN/skills/tdd-assistant/SKILL.md +66 -0
- package/bundled/locales/zh-CN/skills/{claude-code/tdd-assistant/SKILL.md → tdd-assistant/guide.md} +12 -16
- package/bundled/locales/zh-CN/skills/{claude-code/tdd-assistant → tdd-assistant}/language-examples.md +3 -3
- package/bundled/locales/zh-CN/skills/{claude-code/tdd-assistant → tdd-assistant}/tdd-workflow.md +3 -3
- package/bundled/locales/zh-CN/skills/test-coverage-assistant/SKILL.md +65 -0
- package/bundled/locales/zh-CN/skills/test-coverage-assistant/guide.md +284 -0
- package/bundled/locales/zh-CN/skills/{claude-code/testing-guide → testing-guide}/SKILL.md +8 -8
- package/bundled/locales/zh-CN/skills/{claude-code/testing-guide → testing-guide}/testing-pyramid.md +4 -4
- package/bundled/locales/zh-CN/skills/{cline → tools/cline}/README.md +1 -1
- package/bundled/locales/zh-CN/skills/{copilot → tools/copilot}/README.md +1 -1
- package/bundled/locales/zh-CN/skills/{copilot → tools/copilot}/copilot-instructions.md +1 -1
- package/bundled/locales/zh-CN/skills/{cursor → tools/cursor}/README.md +1 -1
- package/bundled/locales/zh-CN/skills/{windsurf → tools/windsurf}/README.md +1 -1
- package/bundled/locales/zh-TW/CHANGELOG.md +16 -16
- package/bundled/locales/zh-TW/CLAUDE.md +3 -3
- package/bundled/locales/zh-TW/MAINTENANCE.md +7 -7
- package/bundled/locales/zh-TW/README.md +13 -7
- package/bundled/locales/zh-TW/STANDARDS-MAPPING.md +1 -1
- package/bundled/locales/zh-TW/adoption/ADOPTION-GUIDE.md +4 -4
- package/bundled/locales/zh-TW/adoption/DAILY-WORKFLOW-GUIDE.md +66 -7
- package/bundled/locales/zh-TW/adoption/STATIC-DYNAMIC-GUIDE.md +22 -22
- package/bundled/locales/zh-TW/adoption/checklists/enterprise.md +5 -5
- package/bundled/locales/zh-TW/adoption/checklists/minimal.md +4 -4
- package/bundled/locales/zh-TW/adoption/checklists/recommended.md +5 -5
- package/bundled/locales/zh-TW/ai/MAINTENANCE.md +13 -13
- package/bundled/locales/zh-TW/ai/standards/anti-hallucination.ai.yaml +3 -2
- package/bundled/locales/zh-TW/ai/standards/git-workflow.ai.yaml +4 -3
- package/bundled/locales/zh-TW/ai/standards/spec-driven-development.ai.yaml +3 -3
- package/bundled/locales/zh-TW/ai/standards/testing.ai.yaml +1 -0
- package/bundled/locales/zh-TW/core/ai-instruction-standards.md +1 -1
- package/bundled/locales/zh-TW/core/anti-hallucination.md +38 -701
- package/bundled/locales/zh-TW/core/changelog-standards.md +1 -1
- package/bundled/locales/zh-TW/core/checkin-standards.md +18 -5
- package/bundled/locales/zh-TW/core/code-review-checklist.md +1 -1
- package/bundled/locales/zh-TW/core/commit-message-guide.md +1 -1
- package/bundled/locales/zh-TW/core/developer-memory.md +576 -0
- package/bundled/locales/zh-TW/core/documentation-structure.md +115 -22
- package/bundled/locales/zh-TW/core/documentation-writing-standards.md +126 -5
- package/bundled/locales/zh-TW/core/forward-derivation-standards.md +2 -2
- package/bundled/locales/zh-TW/core/git-workflow.md +38 -812
- package/bundled/locales/zh-TW/core/guides/anti-hallucination-guide.md +779 -0
- package/bundled/locales/zh-TW/core/guides/git-workflow-guide.md +1016 -0
- package/bundled/locales/zh-TW/core/guides/refactoring-guide.md +864 -0
- package/bundled/locales/zh-TW/core/guides/testing-guide.md +2280 -0
- package/bundled/locales/zh-TW/core/logging-standards.md +159 -4
- package/bundled/locales/zh-TW/core/project-structure.md +102 -9
- package/bundled/locales/zh-TW/core/refactoring-standards.md +37 -823
- package/bundled/locales/zh-TW/core/reverse-engineering-standards.md +6 -6
- package/bundled/locales/zh-TW/core/spec-driven-development.md +17 -268
- package/bundled/locales/zh-TW/core/test-completeness-dimensions.md +128 -14
- package/bundled/locales/zh-TW/core/test-driven-development.md +20 -983
- package/bundled/locales/zh-TW/core/testing-standards.md +120 -2105
- package/bundled/locales/zh-TW/core/versioning.md +13 -55
- package/bundled/locales/zh-TW/docs/AI-AGENT-ROADMAP.md +90 -51
- package/bundled/locales/zh-TW/docs/CHEATSHEET.md +184 -0
- package/bundled/locales/zh-TW/docs/CLI-FLOW.md +239 -0
- package/bundled/locales/zh-TW/docs/FEATURE-REFERENCE.md +320 -0
- package/bundled/locales/zh-TW/docs/MIGRATION-V5.md +71 -0
- package/bundled/locales/zh-TW/docs/OPERATION-WORKFLOW.md +42 -42
- package/bundled/locales/zh-TW/docs/STANDARDS-REFERENCE.md +440 -0
- package/bundled/locales/zh-TW/docs/USAGE-MODES-COMPARISON.md +1 -1
- package/bundled/locales/zh-TW/docs/WINDOWS-GUIDE.md +1 -1
- package/bundled/locales/zh-TW/integrations/claude-code/README.md +44 -0
- package/bundled/locales/zh-TW/integrations/github-copilot/copilot-instructions.md +3 -3
- package/bundled/locales/zh-TW/integrations/github-copilot/skills-mapping.md +18 -6
- package/bundled/locales/zh-TW/integrations/opencode/skills-mapping.md +22 -10
- package/bundled/locales/zh-TW/methodologies/guides/sdd-guide.md +338 -0
- package/bundled/locales/zh-TW/methodologies/guides/tdd-guide.md +1055 -0
- package/bundled/locales/zh-TW/options/commit-message/bilingual.md +1 -1
- package/bundled/locales/zh-TW/options/commit-message/english.md +1 -1
- package/bundled/locales/zh-TW/options/commit-message/traditional-chinese.md +1 -1
- package/bundled/locales/zh-TW/options/git-workflow/gitflow.md +1 -1
- package/bundled/locales/zh-TW/options/git-workflow/github-flow.md +1 -1
- package/bundled/locales/zh-TW/options/git-workflow/merge-commit.md +1 -1
- package/bundled/locales/zh-TW/options/git-workflow/rebase-ff.md +1 -1
- package/bundled/locales/zh-TW/options/git-workflow/squash-merge.md +1 -1
- package/bundled/locales/zh-TW/options/git-workflow/trunk-based.md +1 -1
- package/bundled/locales/zh-TW/options/project-structure/dotnet.md +1 -1
- package/bundled/locales/zh-TW/options/project-structure/go.md +1 -1
- package/bundled/locales/zh-TW/options/project-structure/java.md +1 -1
- package/bundled/locales/zh-TW/options/project-structure/nodejs.md +1 -1
- package/bundled/locales/zh-TW/options/project-structure/python.md +1 -1
- package/bundled/locales/zh-TW/options/testing/e2e-testing.md +1 -1
- package/bundled/locales/zh-TW/options/testing/integration-testing.md +1 -1
- package/bundled/locales/zh-TW/options/testing/system-testing.md +1 -1
- package/bundled/locales/zh-TW/options/testing/unit-testing.md +1 -1
- package/bundled/locales/zh-TW/skills/{claude-code/CONTRIBUTING.template.md → CONTRIBUTING.template.md} +2 -2
- package/bundled/locales/zh-TW/skills/README.md +131 -79
- package/bundled/locales/zh-TW/skills/agents/README.md +281 -0
- package/bundled/locales/zh-TW/skills/{claude-code/ai-collaboration-standards → ai-collaboration-standards}/SKILL.md +7 -7
- package/bundled/locales/zh-TW/skills/{claude-code/ai-collaboration-standards → ai-collaboration-standards}/anti-hallucination.md +8 -8
- package/bundled/locales/zh-TW/skills/{claude-code/ai-collaboration-standards → ai-collaboration-standards}/certainty-labels.md +8 -8
- package/bundled/locales/zh-TW/skills/ai-friendly-architecture/SKILL.md +221 -0
- package/bundled/locales/zh-TW/skills/ai-instruction-standards/SKILL.md +214 -0
- package/bundled/locales/zh-TW/skills/atdd-assistant/SKILL.md +71 -0
- package/bundled/locales/zh-TW/skills/atdd-assistant/acceptance-criteria-guide.md +428 -0
- package/bundled/locales/zh-TW/skills/atdd-assistant/atdd-workflow.md +484 -0
- package/bundled/locales/zh-TW/skills/atdd-assistant/guide.md +368 -0
- package/bundled/locales/zh-TW/skills/bdd-assistant/SKILL.md +68 -0
- package/bundled/locales/zh-TW/skills/bdd-assistant/bdd-workflow.md +406 -0
- package/bundled/locales/zh-TW/skills/bdd-assistant/gherkin-guide.md +454 -0
- package/bundled/locales/zh-TW/skills/bdd-assistant/guide.md +324 -0
- package/bundled/locales/zh-TW/skills/changelog-guide/SKILL.md +64 -0
- package/bundled/locales/zh-TW/skills/{claude-code/changelog-guide/SKILL.md → changelog-guide/guide.md} +6 -7
- package/bundled/locales/zh-TW/skills/checkin-assistant/SKILL.md +56 -0
- package/bundled/locales/zh-TW/skills/{claude-code/checkin-assistant/SKILL.md → checkin-assistant/guide.md} +6 -7
- package/bundled/locales/zh-TW/skills/code-review-assistant/SKILL.md +56 -0
- package/bundled/locales/zh-TW/skills/{claude-code/code-review-assistant → code-review-assistant}/checkin-checklist.md +4 -4
- package/bundled/locales/zh-TW/skills/{claude-code/code-review-assistant/SKILL.md → code-review-assistant/guide.md} +2 -3
- package/bundled/locales/zh-TW/skills/{claude-code/code-review-assistant → code-review-assistant}/review-checklist.md +4 -4
- package/bundled/locales/zh-TW/skills/{claude-code/commands → commands}/bdd.md +2 -2
- package/bundled/locales/zh-TW/skills/{claude-code/commands → commands}/methodology.md +3 -3
- package/bundled/locales/zh-TW/skills/{claude-code/commands → commands}/refactor.md +3 -3
- package/bundled/locales/zh-TW/skills/commit-standards/SKILL.md +61 -0
- package/bundled/locales/zh-TW/skills/{claude-code/commit-standards → commit-standards}/conventional-commits.md +4 -4
- package/bundled/locales/zh-TW/skills/{claude-code/commit-standards/SKILL.md → commit-standards/guide.md} +5 -6
- package/bundled/locales/zh-TW/skills/{claude-code/commit-standards → commit-standards}/language-options.md +3 -3
- package/bundled/locales/zh-TW/skills/docs-generator/SKILL.md +59 -0
- package/bundled/locales/zh-TW/skills/docs-generator/guide.md +262 -0
- package/bundled/locales/zh-TW/skills/{claude-code/documentation-guide → documentation-guide}/SKILL.md +7 -8
- package/bundled/locales/zh-TW/skills/{claude-code/documentation-guide → documentation-guide}/documentation-structure.md +4 -4
- package/bundled/locales/zh-TW/skills/{claude-code/documentation-guide → documentation-guide}/readme-template.md +3 -3
- package/bundled/locales/zh-TW/skills/{claude-code/error-code-guide → error-code-guide}/SKILL.md +6 -6
- package/bundled/locales/zh-TW/skills/forward-derivation/SKILL.md +62 -0
- package/bundled/locales/zh-TW/skills/{claude-code/forward-derivation/SKILL.md → forward-derivation/guide.md} +24 -19
- package/bundled/locales/zh-TW/skills/{claude-code/git-workflow-guide → git-workflow-guide}/SKILL.md +3 -3
- package/bundled/locales/zh-TW/skills/{claude-code/git-workflow-guide → git-workflow-guide}/branch-naming.md +3 -3
- package/bundled/locales/zh-TW/skills/{claude-code/git-workflow-guide → git-workflow-guide}/git-workflow.md +4 -4
- package/bundled/locales/zh-TW/skills/{claude-code/logging-guide → logging-guide}/SKILL.md +6 -6
- package/bundled/locales/zh-TW/skills/methodology-system/SKILL.md +78 -0
- package/bundled/locales/zh-TW/skills/{claude-code/methodology-system → methodology-system}/create-methodology.md +2 -2
- package/bundled/locales/zh-TW/skills/{claude-code/methodology-system/SKILL.md → methodology-system/guide.md} +2 -2
- package/bundled/locales/zh-TW/skills/{claude-code/methodology-system → methodology-system}/runtime.md +3 -3
- package/bundled/locales/zh-TW/skills/project-discovery/SKILL.md +66 -0
- package/bundled/locales/zh-TW/skills/project-discovery/guide.md +371 -0
- package/bundled/locales/zh-TW/skills/project-discovery/workflow.md +574 -0
- package/bundled/locales/zh-TW/skills/{claude-code/project-structure-guide → project-structure-guide}/SKILL.md +4 -4
- package/bundled/locales/zh-TW/skills/{claude-code/project-structure-guide → project-structure-guide}/language-patterns.md +1 -1
- package/bundled/locales/zh-TW/skills/refactoring-assistant/SKILL.md +67 -0
- package/bundled/locales/zh-TW/skills/{claude-code/refactoring-assistant/SKILL.md → refactoring-assistant/guide.md} +7 -8
- package/bundled/locales/zh-TW/skills/release-standards/SKILL.md +64 -0
- package/bundled/locales/zh-TW/skills/{claude-code/release-standards → release-standards}/changelog-format.md +3 -3
- package/bundled/locales/zh-TW/skills/{claude-code/release-standards/SKILL.md → release-standards/guide.md} +2 -3
- package/bundled/locales/zh-TW/skills/{claude-code/release-standards → release-standards}/release-workflow.md +60 -28
- package/bundled/locales/zh-TW/skills/{claude-code/release-standards → release-standards}/semantic-versioning.md +3 -3
- package/bundled/locales/zh-TW/skills/requirement-assistant/SKILL.md +67 -0
- package/bundled/locales/zh-TW/skills/{claude-code/requirement-assistant/SKILL.md → requirement-assistant/guide.md} +2 -3
- package/bundled/locales/zh-TW/skills/{claude-code/requirement-assistant → requirement-assistant}/requirement-checklist.md +3 -3
- package/bundled/locales/zh-TW/skills/{claude-code/requirement-assistant → requirement-assistant}/requirement-writing.md +3 -3
- package/bundled/locales/zh-TW/skills/reverse-engineer/SKILL.md +67 -0
- package/bundled/locales/zh-TW/skills/{claude-code/reverse-engineer → reverse-engineer}/bdd-extraction.md +2 -2
- package/bundled/locales/zh-TW/skills/{claude-code/reverse-engineer/SKILL.md → reverse-engineer/guide.md} +17 -18
- package/bundled/locales/zh-TW/skills/{claude-code/reverse-engineer → reverse-engineer}/tdd-analysis.md +2 -2
- package/bundled/locales/zh-TW/skills/{claude-code/reverse-engineer → reverse-engineer}/workflow.md +3 -3
- package/bundled/locales/zh-TW/skills/spec-driven-dev/SKILL.md +75 -0
- package/bundled/locales/zh-TW/skills/{claude-code/spec-driven-dev/SKILL.md → spec-driven-dev/guide.md} +9 -10
- package/bundled/locales/zh-TW/skills/tdd-assistant/SKILL.md +66 -0
- package/bundled/locales/zh-TW/skills/{claude-code/tdd-assistant/SKILL.md → tdd-assistant/guide.md} +9 -10
- package/bundled/locales/zh-TW/skills/{claude-code/tdd-assistant → tdd-assistant}/language-examples.md +3 -3
- package/bundled/locales/zh-TW/skills/{claude-code/tdd-assistant → tdd-assistant}/tdd-workflow.md +3 -3
- package/bundled/locales/zh-TW/skills/test-coverage-assistant/SKILL.md +65 -0
- package/bundled/locales/zh-TW/skills/{claude-code/test-coverage-assistant/SKILL.md → test-coverage-assistant/guide.md} +27 -24
- package/bundled/locales/zh-TW/skills/{claude-code/testing-guide → testing-guide}/SKILL.md +6 -6
- package/bundled/locales/zh-TW/skills/{claude-code/testing-guide → testing-guide}/testing-pyramid.md +4 -4
- package/bundled/locales/zh-TW/skills/{cline → tools/cline}/README.md +1 -1
- package/bundled/locales/zh-TW/skills/{copilot → tools/copilot}/README.md +1 -1
- package/bundled/locales/zh-TW/skills/{copilot → tools/copilot}/copilot-instructions.md +1 -1
- package/bundled/locales/zh-TW/skills/{cursor → tools/cursor}/README.md +1 -1
- package/bundled/locales/zh-TW/skills/{windsurf → tools/windsurf}/README.md +1 -1
- package/bundled/skills/INTEGRATION-GUIDE.md +210 -0
- package/bundled/skills/README.md +95 -0
- package/bundled/skills/_shared/README.md +60 -0
- package/bundled/skills/{claude-code/agents → agents}/README.md +2 -2
- package/bundled/skills/{claude-code/agents → agents}/code-architect.md +1 -1
- package/bundled/skills/{claude-code/agents → agents}/doc-writer.md +1 -1
- package/bundled/skills/{claude-code/agents → agents}/reviewer.md +1 -1
- package/bundled/skills/{claude-code/agents → agents}/spec-analyst.md +1 -1
- package/bundled/skills/{claude-code/agents → agents}/test-specialist.md +1 -1
- package/bundled/skills/{claude-code/ai-collaboration-standards → ai-collaboration-standards}/SKILL.md +28 -5
- package/bundled/skills/{claude-code/ai-collaboration-standards → ai-collaboration-standards}/anti-hallucination.md +24 -5
- package/bundled/skills/{claude-code/ai-collaboration-standards → ai-collaboration-standards}/certainty-labels.md +31 -6
- package/bundled/skills/ai-friendly-architecture/SKILL.md +216 -0
- package/bundled/skills/ai-instruction-standards/SKILL.md +209 -0
- package/bundled/skills/atdd-assistant/SKILL.md +74 -0
- package/bundled/skills/{claude-code/atdd-assistant → atdd-assistant}/acceptance-criteria-guide.md +1 -1
- package/bundled/skills/{claude-code/atdd-assistant → atdd-assistant}/atdd-workflow.md +1 -1
- package/bundled/skills/{claude-code/atdd-assistant/SKILL.md → atdd-assistant/guide.md} +11 -11
- package/bundled/skills/bdd-assistant/SKILL.md +70 -0
- package/bundled/skills/{claude-code/bdd-assistant → bdd-assistant}/bdd-workflow.md +1 -1
- package/bundled/skills/{claude-code/bdd-assistant → bdd-assistant}/gherkin-guide.md +1 -1
- package/bundled/skills/{claude-code/bdd-assistant/SKILL.md → bdd-assistant/guide.md} +11 -11
- package/bundled/skills/changelog-guide/SKILL.md +66 -0
- package/bundled/skills/{claude-code/changelog-guide/SKILL.md → changelog-guide/guide.md} +8 -6
- package/bundled/skills/checkin-assistant/SKILL.md +52 -0
- package/bundled/skills/{claude-code/checkin-assistant/SKILL.md → checkin-assistant/guide.md} +6 -6
- package/bundled/skills/code-review-assistant/SKILL.md +53 -0
- package/bundled/skills/{claude-code/code-review-assistant → code-review-assistant}/checkin-checklist.md +3 -3
- package/bundled/skills/{claude-code/code-review-assistant/SKILL.md → code-review-assistant/guide.md} +7 -5
- package/bundled/skills/{claude-code/code-review-assistant → code-review-assistant}/review-checklist.md +3 -3
- package/bundled/skills/commands/COMMAND-FAMILY-OVERVIEW.md +290 -0
- package/bundled/skills/{claude-code/commands → commands}/README.md +13 -3
- package/bundled/skills/{claude-code/commands → commands}/atdd.md +3 -3
- package/bundled/skills/{claude-code/commands → commands}/bdd.md +2 -2
- package/bundled/skills/commands/changelog.md +58 -0
- package/bundled/skills/{claude-code/commands → commands}/check.md +1 -1
- package/bundled/skills/commands/checkin.md +53 -0
- package/bundled/skills/{claude-code/commands → commands}/commit.md +3 -3
- package/bundled/skills/{claude-code/commands → commands}/config.md +1 -1
- package/bundled/skills/{claude-code/commands → commands}/coverage.md +5 -4
- package/bundled/skills/commands/derive-all.md +53 -0
- package/bundled/skills/commands/derive-atdd.md +49 -0
- package/bundled/skills/commands/derive-bdd.md +47 -0
- package/bundled/skills/commands/derive-tdd.md +48 -0
- package/bundled/skills/commands/derive.md +72 -0
- package/bundled/skills/commands/discover.md +80 -0
- package/bundled/skills/commands/docgen.md +61 -0
- package/bundled/skills/commands/docs.md +59 -0
- package/bundled/skills/commands/guide.md +44 -0
- package/bundled/skills/{claude-code/commands → commands}/init.md +2 -2
- package/bundled/skills/{claude-code/commands → commands}/methodology.md +32 -16
- package/bundled/skills/{claude-code/commands → commands}/refactor.md +2 -2
- package/bundled/skills/commands/release.md +56 -0
- package/bundled/skills/{claude-code/commands → commands}/requirement.md +3 -3
- package/bundled/skills/commands/reverse-bdd.md +47 -0
- package/bundled/skills/commands/reverse-sdd.md +51 -0
- package/bundled/skills/commands/reverse-tdd.md +51 -0
- package/bundled/skills/commands/reverse.md +63 -0
- package/bundled/skills/{claude-code/commands → commands}/review.md +3 -3
- package/bundled/skills/commands/sdd.md +135 -0
- package/bundled/skills/{claude-code/commands → commands}/tdd.md +3 -3
- package/bundled/skills/{claude-code/commands → commands}/update.md +2 -2
- package/bundled/skills/commit-standards/SKILL.md +60 -0
- package/bundled/skills/{claude-code/commit-standards → commit-standards}/conventional-commits.md +3 -3
- package/bundled/skills/{claude-code/commit-standards/SKILL.md → commit-standards/guide.md} +17 -5
- package/bundled/skills/{claude-code/commit-standards → commit-standards}/language-options.md +2 -2
- package/bundled/skills/docs-generator/SKILL.md +69 -0
- package/bundled/skills/docs-generator/guide.md +258 -0
- package/bundled/skills/{claude-code/documentation-guide → documentation-guide}/SKILL.md +7 -7
- package/bundled/skills/{claude-code/documentation-guide → documentation-guide}/documentation-structure.md +3 -3
- package/bundled/skills/{claude-code/documentation-guide → documentation-guide}/readme-template.md +2 -2
- package/bundled/skills/{claude-code/error-code-guide → error-code-guide}/SKILL.md +7 -5
- package/bundled/skills/forward-derivation/SKILL.md +61 -0
- package/bundled/skills/{claude-code/forward-derivation/SKILL.md → forward-derivation/guide.md} +44 -29
- package/bundled/skills/{claude-code/git-workflow-guide → git-workflow-guide}/SKILL.md +7 -5
- package/bundled/skills/{claude-code/git-workflow-guide → git-workflow-guide}/branch-naming.md +2 -2
- package/bundled/skills/{claude-code/git-workflow-guide → git-workflow-guide}/git-workflow.md +3 -3
- package/bundled/skills/{claude-code/logging-guide → logging-guide}/SKILL.md +7 -5
- package/bundled/skills/methodology-system/SKILL.md +75 -0
- package/bundled/skills/{claude-code/methodology-system → methodology-system}/create-methodology.md +1 -1
- package/bundled/skills/{claude-code/methodology-system/SKILL.md → methodology-system/guide.md} +51 -16
- package/bundled/skills/methodology-system/integrated-flow.md +454 -0
- package/bundled/skills/{claude-code/methodology-system → methodology-system}/runtime.md +2 -2
- package/bundled/skills/project-discovery/SKILL.md +63 -0
- package/bundled/skills/project-discovery/guide.md +367 -0
- package/bundled/skills/project-discovery/workflow.md +566 -0
- package/bundled/skills/{claude-code/project-structure-guide → project-structure-guide}/SKILL.md +14 -4
- package/bundled/skills/refactoring-assistant/SKILL.md +78 -0
- package/bundled/skills/{claude-code/refactoring-assistant/SKILL.md → refactoring-assistant/guide.md} +7 -7
- package/bundled/skills/release-standards/SKILL.md +61 -0
- package/bundled/skills/{claude-code/release-standards → release-standards}/changelog-format.md +2 -2
- package/bundled/skills/{claude-code/release-standards/SKILL.md → release-standards/guide.md} +7 -5
- package/bundled/skills/{claude-code/release-standards → release-standards}/release-workflow.md +59 -24
- package/bundled/skills/{claude-code/release-standards → release-standards}/semantic-versioning.md +2 -2
- package/bundled/skills/requirement-assistant/SKILL.md +66 -0
- package/bundled/skills/{claude-code/requirement-assistant/SKILL.md → requirement-assistant/guide.md} +14 -6
- package/bundled/skills/{claude-code/requirement-assistant → requirement-assistant}/requirement-checklist.md +2 -2
- package/bundled/skills/{claude-code/requirement-assistant → requirement-assistant}/requirement-writing.md +2 -2
- package/bundled/skills/reverse-engineer/SKILL.md +64 -0
- package/bundled/skills/{claude-code/reverse-engineer → reverse-engineer}/bdd-extraction.md +1 -1
- package/bundled/skills/{claude-code/reverse-engineer/SKILL.md → reverse-engineer/guide.md} +21 -18
- package/bundled/skills/{claude-code/reverse-engineer → reverse-engineer}/tdd-analysis.md +1 -1
- package/bundled/skills/{claude-code/reverse-engineer → reverse-engineer}/workflow.md +2 -2
- package/bundled/skills/spec-driven-dev/SKILL.md +80 -0
- package/bundled/skills/{claude-code/spec-driven-dev/SKILL.md → spec-driven-dev/guide.md} +50 -8
- package/bundled/skills/tdd-assistant/SKILL.md +65 -0
- package/bundled/skills/{claude-code/tdd-assistant/SKILL.md → tdd-assistant/guide.md} +10 -10
- package/bundled/skills/{claude-code/tdd-assistant → tdd-assistant}/language-examples.md +3 -3
- package/bundled/skills/{claude-code/tdd-assistant → tdd-assistant}/tdd-workflow.md +2 -2
- package/bundled/skills/test-coverage-assistant/SKILL.md +63 -0
- package/bundled/skills/{claude-code/test-coverage-assistant/SKILL.md → test-coverage-assistant/guide.md} +39 -24
- package/bundled/skills/{claude-code/testing-guide → testing-guide}/SKILL.md +12 -7
- package/bundled/skills/{claude-code/testing-guide → testing-guide}/testing-pyramid.md +3 -3
- package/bundled/skills/testing-guide/testing-theory.md +2291 -0
- package/bundled/skills/tools/cline/.clinerules +79 -0
- package/bundled/skills/tools/cline/README.md +50 -0
- package/bundled/skills/tools/copilot/README.md +99 -0
- package/bundled/skills/tools/copilot/copilot-instructions.md +71 -0
- package/bundled/skills/tools/cursor/.cursorrules +101 -0
- package/bundled/skills/tools/cursor/README.md +50 -0
- package/bundled/skills/tools/windsurf/.windsurfrules +76 -0
- package/bundled/skills/tools/windsurf/README.md +51 -0
- package/bundled/skills/{claude-code/workflows → workflows}/README.md +1 -1
- package/bundled/skills/workflows/release.workflow.yaml +893 -0
- package/package.json +4 -1
- package/src/commands/check.js +195 -130
- package/src/commands/config.js +1262 -0
- package/src/commands/configure.js +3 -950
- package/src/commands/fix.js +53 -0
- package/src/commands/hitl.js +19 -0
- package/src/commands/init.js +320 -1030
- package/src/commands/list.js +1 -1
- package/src/commands/simulate.js +61 -0
- package/src/commands/spec.js +288 -0
- package/src/commands/start.js +373 -0
- package/src/commands/sweep.js +142 -0
- package/src/commands/update.js +136 -19
- package/src/commands/workflow.js +265 -1
- package/src/config/ai-agent-paths.js +89 -29
- package/src/core/constants.js +7 -1
- package/src/core/manifest.js +1 -0
- package/src/flows/init-flow.js +243 -0
- package/src/hitl/checkpoint.js +80 -0
- package/src/hitl/classifier.js +54 -0
- package/src/hitl/manager.js +88 -0
- package/src/i18n/messages.js +907 -99
- package/src/index.js +1 -0
- package/src/installers/integration-installer.js +237 -0
- package/src/installers/manifest-installer.js +131 -0
- package/src/installers/skills-installer.js +286 -0
- package/src/installers/standards-installer.js +193 -0
- package/src/missions/MissionManager.js +501 -0
- package/src/prompts/init.js +228 -130
- package/src/prompts/integrations.js +13 -1
- package/src/schemas/standard.schema.json +117 -0
- package/src/utils/agents-installer.js +2 -2
- package/src/utils/config-loader.js +47 -0
- package/src/utils/config-manager.js +108 -0
- package/src/utils/config-merger.js +47 -0
- package/src/utils/github.js +22 -18
- package/src/utils/inquirer-patch.js +98 -0
- package/src/utils/integration-generator.js +392 -58
- package/src/utils/reference-sync.js +69 -19
- package/src/utils/skills-installer.js +6 -3
- package/src/utils/standard-fixer.js +141 -0
- package/src/utils/standard-validator.js +329 -0
- package/src/utils/workflow-executor.js +886 -0
- package/src/utils/workflow-state.js +404 -0
- package/src/utils/workflows-installer.js +2 -2
- package/src/vibe/auto-sweep.js +349 -0
- package/src/vibe/micro-spec.js +428 -0
- package/standards-registry.json +278 -102
- package/bundled/locales/zh-CN/skills/claude-code/README.md +0 -174
- package/bundled/locales/zh-CN/skills/claude-code/test-coverage-assistant/SKILL.md +0 -282
- package/bundled/locales/zh-TW/skills/claude-code/README.md +0 -174
- package/bundled/skills/claude-code/README.md +0 -215
- package/bundled/skills/claude-code/commands/changelog.md +0 -57
- package/bundled/skills/claude-code/commands/derive-all.md +0 -214
- package/bundled/skills/claude-code/commands/derive-atdd.md +0 -177
- package/bundled/skills/claude-code/commands/derive-bdd.md +0 -158
- package/bundled/skills/claude-code/commands/derive-tdd.md +0 -259
- package/bundled/skills/claude-code/commands/docs.md +0 -75
- package/bundled/skills/claude-code/commands/release.md +0 -50
- package/bundled/skills/claude-code/commands/reverse-bdd.md +0 -264
- package/bundled/skills/claude-code/commands/reverse-spec.md +0 -185
- package/bundled/skills/claude-code/commands/reverse-tdd.md +0 -351
- package/bundled/skills/claude-code/commands/spec.md +0 -69
- package/bundled/skills/claude-code/methodology-system/integrated-flow.md +0 -322
- /package/bundled/skills/{claude-code/CONTRIBUTING.template.md → CONTRIBUTING.template.md} +0 -0
- /package/bundled/skills/{claude-code/ai → ai}/standards/checkin.ai.yaml +0 -0
- /package/bundled/skills/{claude-code/ai → ai}/standards/commit.ai.yaml +0 -0
- /package/bundled/skills/{claude-code/ai → ai}/standards/refactoring.ai.yaml +0 -0
- /package/bundled/skills/{claude-code/ai → ai}/standards/testing.ai.yaml +0 -0
- /package/bundled/skills/{claude-code/project-structure-guide → project-structure-guide}/language-patterns.md +0 -0
- /package/bundled/skills/{claude-code/workflows → workflows}/code-review.workflow.yaml +0 -0
- /package/bundled/skills/{claude-code/workflows → workflows}/feature-dev.workflow.yaml +0 -0
- /package/bundled/skills/{claude-code/workflows → workflows}/integrated-flow.workflow.yaml +0 -0
- /package/bundled/skills/{claude-code/workflows → workflows}/large-codebase-analysis.workflow.yaml +0 -0
|
@@ -1,753 +1,38 @@
|
|
|
1
1
|
# Behavior-Driven Development (BDD) Standards
|
|
2
2
|
|
|
3
|
-
**Version**: 1.
|
|
4
|
-
**Last Updated**: 2026-01-
|
|
3
|
+
**Version**: 1.1.0
|
|
4
|
+
**Last Updated**: 2026-01-25
|
|
5
5
|
**Applicability**: All projects adopting Behavior-Driven Development
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
---
|
|
10
|
-
|
|
11
|
-
## Purpose
|
|
12
|
-
|
|
13
|
-
This standard defines the principles, workflows, and best practices for Behavior-Driven Development (BDD), ensuring that software behavior is specified through collaboration between business and technical stakeholders using a shared language.
|
|
14
|
-
|
|
15
|
-
**Key Benefits**:
|
|
16
|
-
- Shared understanding between business, development, and testing teams
|
|
17
|
-
- Executable specifications that serve as living documentation
|
|
18
|
-
- Tests written in natural language that stakeholders can read and validate
|
|
19
|
-
- Reduced ambiguity in requirements through concrete examples
|
|
20
|
-
- Improved collaboration through Three Amigos sessions
|
|
21
|
-
|
|
22
|
-
---
|
|
23
|
-
|
|
24
|
-
## Table of Contents
|
|
25
|
-
|
|
26
|
-
1. [BDD Core Concepts](#bdd-core-concepts)
|
|
27
|
-
2. [BDD Workflow](#bdd-workflow)
|
|
28
|
-
3. [Gherkin Syntax](#gherkin-syntax)
|
|
29
|
-
4. [Step Definition Guidelines](#step-definition-guidelines)
|
|
30
|
-
5. [Three Amigos Collaboration](#three-amigos-collaboration)
|
|
31
|
-
6. [Living Documentation](#living-documentation)
|
|
32
|
-
7. [BDD vs TDD vs ATDD](#bdd-vs-tdd-vs-atdd)
|
|
33
|
-
8. [Integration with SDD and TDD](#integration-with-sdd-and-tdd)
|
|
34
|
-
9. [Anti-Patterns and Remediation](#anti-patterns-and-remediation)
|
|
35
|
-
10. [Tooling by Language](#tooling-by-language)
|
|
36
|
-
11. [Metrics and Assessment](#metrics-and-assessment)
|
|
37
|
-
12. [Related Standards](#related-standards)
|
|
38
|
-
13. [References](#references)
|
|
39
|
-
14. [Version History](#version-history)
|
|
40
|
-
15. [License](#license)
|
|
41
|
-
|
|
42
|
-
---
|
|
43
|
-
|
|
44
|
-
## BDD Core Concepts
|
|
45
|
-
|
|
46
|
-
### What is BDD?
|
|
47
|
-
|
|
48
|
-
BDD is a collaborative approach to software development that bridges the communication gap between business and technical teams. It was created by Dan North in 2006 as an evolution of TDD.
|
|
49
|
-
|
|
50
|
-
```
|
|
51
|
-
┌─────────────────────────────────────────────────────────────────────────────┐
|
|
52
|
-
│ BDD Core Principles │
|
|
53
|
-
├─────────────────────────────────────────────────────────────────────────────┤
|
|
54
|
-
│ │
|
|
55
|
-
│ 1. COLLABORATION │
|
|
56
|
-
│ Business + Development + Testing work together │
|
|
57
|
-
│ │
|
|
58
|
-
│ 2. UBIQUITOUS LANGUAGE │
|
|
59
|
-
│ Everyone uses the same vocabulary (Domain-Driven Design concept) │
|
|
60
|
-
│ │
|
|
61
|
-
│ 3. OUTSIDE-IN DEVELOPMENT │
|
|
62
|
-
│ Start from behavior (what), then implement (how) │
|
|
63
|
-
│ │
|
|
64
|
-
│ 4. EXECUTABLE SPECIFICATIONS │
|
|
65
|
-
│ Scenarios are both documentation and tests │
|
|
66
|
-
│ │
|
|
67
|
-
│ 5. LIVING DOCUMENTATION │
|
|
68
|
-
│ Specifications stay current because they're executable │
|
|
69
|
-
│ │
|
|
70
|
-
└─────────────────────────────────────────────────────────────────────────────┘
|
|
71
|
-
```
|
|
72
|
-
|
|
73
|
-
### Discovery-Formulation-Automation (DFA) Workflow
|
|
74
|
-
|
|
75
|
-
BDD follows a three-phase iterative process:
|
|
76
|
-
|
|
77
|
-
```
|
|
78
|
-
┌─────────────────────────────────────────────────────────────────────────────┐
|
|
79
|
-
│ BDD Discovery-Formulation-Automation │
|
|
80
|
-
├─────────────────────────────────────────────────────────────────────────────┤
|
|
81
|
-
│ │
|
|
82
|
-
│ ┌───────────┐ ┌─────────────┐ ┌────────────┐ │
|
|
83
|
-
│ │ 🔍 DISCOVERY│─────▶│📝 FORMULATION│─────▶│⚙️ AUTOMATION│ │
|
|
84
|
-
│ └───────────┘ └─────────────┘ └────────────┘ │
|
|
85
|
-
│ ▲ │ │
|
|
86
|
-
│ │ │ │
|
|
87
|
-
│ └──────────────────────────────────────────┘ │
|
|
88
|
-
│ (New behaviors discovered) │
|
|
89
|
-
│ │
|
|
90
|
-
│ 🔍 DISCOVERY (30-60 minutes) │
|
|
91
|
-
│ ├─ Collaborative exploration with stakeholders │
|
|
92
|
-
│ ├─ Understand the "why" behind features │
|
|
93
|
-
│ ├─ Identify concrete examples and edge cases │
|
|
94
|
-
│ └─ Use Example Mapping technique │
|
|
95
|
-
│ │
|
|
96
|
-
│ 📝 FORMULATION (15-30 minutes) │
|
|
97
|
-
│ ├─ Convert examples to Gherkin scenarios │
|
|
98
|
-
│ ├─ Use declarative style (WHAT, not HOW) │
|
|
99
|
-
│ ├─ Apply ubiquitous language │
|
|
100
|
-
│ └─ Review scenarios with stakeholders │
|
|
101
|
-
│ │
|
|
102
|
-
│ ⚙️ AUTOMATION (Variable) │
|
|
103
|
-
│ ├─ Write step definitions │
|
|
104
|
-
│ ├─ Implement feature code using TDD │
|
|
105
|
-
│ ├─ Run scenarios until all pass │
|
|
106
|
-
│ └─ Refactor and maintain │
|
|
107
|
-
│ │
|
|
108
|
-
└─────────────────────────────────────────────────────────────────────────────┘
|
|
109
|
-
```
|
|
110
|
-
|
|
111
|
-
---
|
|
112
|
-
|
|
113
|
-
## BDD Workflow
|
|
114
|
-
|
|
115
|
-
### Phase 1: Discovery
|
|
116
|
-
|
|
117
|
-
**Purpose**: Collaboratively explore requirements and identify concrete examples.
|
|
118
|
-
|
|
119
|
-
#### Example Mapping Technique
|
|
120
|
-
|
|
121
|
-
```
|
|
122
|
-
┌─────────────────────────────────────────────────────────────────┐
|
|
123
|
-
│ Example Mapping │
|
|
124
|
-
├─────────────────────────────────────────────────────────────────┤
|
|
125
|
-
│ │
|
|
126
|
-
│ 🟡 [User Story] │
|
|
127
|
-
│ │ │
|
|
128
|
-
│ ├─ 🔵 Rule 1: "Users must be authenticated" │
|
|
129
|
-
│ │ │ │
|
|
130
|
-
│ │ ├─ 🟢 Example: Login with valid credentials │
|
|
131
|
-
│ │ └─ 🟢 Example: Login with invalid credentials │
|
|
132
|
-
│ │ │
|
|
133
|
-
│ ├─ 🔵 Rule 2: "Locked accounts cannot login" │
|
|
134
|
-
│ │ │ │
|
|
135
|
-
│ │ ├─ 🟢 Example: Attempt login on locked account │
|
|
136
|
-
│ │ └─ 🟢 Example: Account locked after 3 failures │
|
|
137
|
-
│ │ │
|
|
138
|
-
│ └─ 🔴 Question: What about password expiration? │
|
|
139
|
-
│ │
|
|
140
|
-
│ Legend: 🟡 Yellow (Story) 🔵 Blue (Rule) 🟢 Green (Example) │
|
|
141
|
-
│ 🔴 Red (Question) │
|
|
142
|
-
│ │
|
|
143
|
-
└─────────────────────────────────────────────────────────────────┘
|
|
144
|
-
```
|
|
145
|
-
|
|
146
|
-
#### Discovery Session Checklist
|
|
147
|
-
|
|
148
|
-
| Step | Description | Time |
|
|
149
|
-
|------|-------------|------|
|
|
150
|
-
| 1. Present Story | PO explains the user story and value | 5 min |
|
|
151
|
-
| 2. Ask Questions | Team asks clarifying questions | 10 min |
|
|
152
|
-
| 3. Identify Rules | Extract business rules from discussion | 10 min |
|
|
153
|
-
| 4. Find Examples | Create concrete examples for each rule | 15 min |
|
|
154
|
-
| 5. Identify Gaps | Note unanswered questions for follow-up | 5 min |
|
|
155
|
-
|
|
156
|
-
### Phase 2: Formulation
|
|
157
|
-
|
|
158
|
-
**Purpose**: Convert examples into executable Gherkin scenarios.
|
|
159
|
-
|
|
160
|
-
#### Formulation Principles
|
|
161
|
-
|
|
162
|
-
| Principle | Good | Bad |
|
|
163
|
-
|-----------|------|-----|
|
|
164
|
-
| **Declarative** | Given I am logged in | Given I navigate to /login and type "user" in #email field |
|
|
165
|
-
| **Business Language** | When I place an order | When I click the submit button |
|
|
166
|
-
| **Single Behavior** | Then my order is confirmed | Then my order is confirmed and email is sent and inventory is updated |
|
|
167
|
-
| **No Conjunctions** | One action per When | When I add item and click checkout and enter address |
|
|
168
|
-
|
|
169
|
-
### Phase 3: Automation
|
|
170
|
-
|
|
171
|
-
**Purpose**: Implement step definitions and feature code.
|
|
172
|
-
|
|
173
|
-
```
|
|
174
|
-
┌─────────────────────────────────────────────────────────────────┐
|
|
175
|
-
│ BDD + TDD Integration │
|
|
176
|
-
├─────────────────────────────────────────────────────────────────┤
|
|
177
|
-
│ │
|
|
178
|
-
│ BDD Scenario (Feature Level) │
|
|
179
|
-
│ │ │
|
|
180
|
-
│ │ Scenario: User places order │
|
|
181
|
-
│ │ Given items in cart │
|
|
182
|
-
│ │ When checkout │
|
|
183
|
-
│ │ Then order confirmed │
|
|
184
|
-
│ │ │
|
|
185
|
-
│ ▼ │
|
|
186
|
-
│ ┌─────────────────────────────────────────┐ │
|
|
187
|
-
│ │ Step Definition: "items in cart" │ │
|
|
188
|
-
│ │ │ │
|
|
189
|
-
│ │ → TDD Cycle (Unit Level) │ │
|
|
190
|
-
│ │ 🔴 Test Cart.addItem() │ │
|
|
191
|
-
│ │ 🟢 Implement Cart.addItem() │ │
|
|
192
|
-
│ │ 🔵 Refactor │ │
|
|
193
|
-
│ │ │ │
|
|
194
|
-
│ └─────────────────────────────────────────┘ │
|
|
195
|
-
│ │
|
|
196
|
-
│ BDD provides WHAT to build (behavior) │
|
|
197
|
-
│ TDD provides HOW to build it (implementation) │
|
|
198
|
-
│ │
|
|
199
|
-
└─────────────────────────────────────────────────────────────────┘
|
|
200
|
-
```
|
|
201
|
-
|
|
202
|
-
---
|
|
203
|
-
|
|
204
|
-
## Gherkin Syntax
|
|
205
|
-
|
|
206
|
-
### Basic Structure
|
|
207
|
-
|
|
208
|
-
```gherkin
|
|
209
|
-
Feature: Short feature description
|
|
210
|
-
As a [role]
|
|
211
|
-
I want [feature]
|
|
212
|
-
So that [benefit]
|
|
213
|
-
|
|
214
|
-
Background:
|
|
215
|
-
Given common preconditions for all scenarios
|
|
216
|
-
|
|
217
|
-
Scenario: Scenario name describing behavior
|
|
218
|
-
Given [initial context]
|
|
219
|
-
And [additional context]
|
|
220
|
-
When [action or event]
|
|
221
|
-
And [additional action]
|
|
222
|
-
Then [expected outcome]
|
|
223
|
-
And [additional outcome]
|
|
224
|
-
But [exception to outcome]
|
|
225
|
-
|
|
226
|
-
Scenario Outline: Template with examples
|
|
227
|
-
Given <initial_state>
|
|
228
|
-
When <action>
|
|
229
|
-
Then <expected_result>
|
|
230
|
-
|
|
231
|
-
Examples:
|
|
232
|
-
| initial_state | action | expected_result |
|
|
233
|
-
| logged_in | logout | logged_out |
|
|
234
|
-
| logged_out | login | logged_in |
|
|
235
|
-
```
|
|
236
|
-
|
|
237
|
-
### Keywords Reference
|
|
238
|
-
|
|
239
|
-
| Keyword | Purpose | Chinese |
|
|
240
|
-
|---------|---------|---------|
|
|
241
|
-
| `Feature` | Container for related scenarios | 功能 |
|
|
242
|
-
| `Background` | Common preconditions for all scenarios | 背景 |
|
|
243
|
-
| `Scenario` | Single test case | 場景 |
|
|
244
|
-
| `Scenario Outline` | Template with multiple examples | 場景大綱 |
|
|
245
|
-
| `Examples` | Data table for Scenario Outline | 範例 |
|
|
246
|
-
| `Given` | Set up initial context | 假設 |
|
|
247
|
-
| `When` | Trigger action or event | 當 |
|
|
248
|
-
| `Then` | Assert expected outcome | 那麼 |
|
|
249
|
-
| `And` | Continue previous keyword | 且 |
|
|
250
|
-
| `But` | Exception to previous keyword | 但是 |
|
|
251
|
-
|
|
252
|
-
### Complete Example
|
|
253
|
-
|
|
254
|
-
```gherkin
|
|
255
|
-
Feature: Shopping Cart Checkout
|
|
256
|
-
As a customer
|
|
257
|
-
I want to checkout my shopping cart
|
|
258
|
-
So that I can purchase the items I've selected
|
|
259
|
-
|
|
260
|
-
Background:
|
|
261
|
-
Given I am a registered customer
|
|
262
|
-
And I am logged in
|
|
263
|
-
|
|
264
|
-
Scenario: Successful checkout with valid payment
|
|
265
|
-
Given I have the following items in my cart:
|
|
266
|
-
| item | quantity | price |
|
|
267
|
-
| Widget A | 2 | 10.00 |
|
|
268
|
-
| Widget B | 1 | 25.00 |
|
|
269
|
-
And my cart total is $45.00
|
|
270
|
-
When I proceed to checkout
|
|
271
|
-
And I enter valid payment information
|
|
272
|
-
And I confirm my order
|
|
273
|
-
Then my order should be created
|
|
274
|
-
And I should receive an order confirmation email
|
|
275
|
-
And my cart should be empty
|
|
276
|
-
|
|
277
|
-
Scenario: Checkout fails with invalid payment
|
|
278
|
-
Given I have items in my cart totaling $50.00
|
|
279
|
-
When I proceed to checkout
|
|
280
|
-
And I enter invalid payment information
|
|
281
|
-
Then I should see an error message "Payment declined"
|
|
282
|
-
And my cart should still contain my items
|
|
283
|
-
|
|
284
|
-
Scenario Outline: Apply discount codes
|
|
285
|
-
Given I have items in my cart totaling <cart_total>
|
|
286
|
-
When I apply discount code "<code>"
|
|
287
|
-
Then my new total should be <final_total>
|
|
288
|
-
And I should see message "<message>"
|
|
289
|
-
|
|
290
|
-
Examples:
|
|
291
|
-
| cart_total | code | final_total | message |
|
|
292
|
-
| $100.00 | SAVE10 | $90.00 | 10% discount applied |
|
|
293
|
-
| $100.00 | SAVE20 | $80.00 | 20% discount applied |
|
|
294
|
-
| $50.00 | MIN100 | $50.00 | Minimum $100 required|
|
|
295
|
-
```
|
|
296
|
-
|
|
297
|
-
### Tags for Organization
|
|
298
|
-
|
|
299
|
-
```gherkin
|
|
300
|
-
@checkout @critical @smoke
|
|
301
|
-
Feature: Shopping Cart Checkout
|
|
302
|
-
|
|
303
|
-
@happy-path
|
|
304
|
-
Scenario: Successful checkout with valid payment
|
|
305
|
-
...
|
|
306
|
-
|
|
307
|
-
@error-handling @wip
|
|
308
|
-
Scenario: Checkout fails with invalid payment
|
|
309
|
-
...
|
|
310
|
-
```
|
|
311
|
-
|
|
312
|
-
Common tag patterns:
|
|
313
|
-
|
|
314
|
-
| Tag | Purpose |
|
|
315
|
-
|-----|---------|
|
|
316
|
-
| `@wip` | Work in progress, not ready |
|
|
317
|
-
| `@smoke` | Quick sanity tests |
|
|
318
|
-
| `@critical` | High-priority features |
|
|
319
|
-
| `@slow` | Long-running tests |
|
|
320
|
-
| `@manual` | Requires manual verification |
|
|
321
|
-
| `@skip` | Temporarily disabled |
|
|
322
|
-
|
|
323
|
-
---
|
|
324
|
-
|
|
325
|
-
## Step Definition Guidelines
|
|
326
|
-
|
|
327
|
-
### Step Definition Structure
|
|
328
|
-
|
|
329
|
-
```typescript
|
|
330
|
-
// JavaScript/Cucumber.js example
|
|
331
|
-
const { Given, When, Then } = require('@cucumber/cucumber');
|
|
332
|
-
const { expect } = require('chai');
|
|
333
|
-
|
|
334
|
-
Given('I have the following items in my cart:', async function (dataTable) {
|
|
335
|
-
const items = dataTable.hashes();
|
|
336
|
-
for (const item of items) {
|
|
337
|
-
await this.cart.addItem(item.item, item.quantity, item.price);
|
|
338
|
-
}
|
|
339
|
-
});
|
|
340
|
-
|
|
341
|
-
When('I proceed to checkout', async function () {
|
|
342
|
-
this.checkoutResult = await this.checkoutService.initiateCheckout(this.cart);
|
|
343
|
-
});
|
|
344
|
-
|
|
345
|
-
Then('my order should be created', async function () {
|
|
346
|
-
expect(this.checkoutResult.order).to.not.be.null;
|
|
347
|
-
expect(this.checkoutResult.order.status).to.equal('created');
|
|
348
|
-
});
|
|
349
|
-
```
|
|
350
|
-
|
|
351
|
-
### Step Definition Best Practices
|
|
352
|
-
|
|
353
|
-
| Practice | Good | Bad |
|
|
354
|
-
|----------|------|-----|
|
|
355
|
-
| **Reusable** | Generic steps that work across features | Tightly coupled to specific scenarios |
|
|
356
|
-
| **Atomic** | One action per step | Multiple actions combined |
|
|
357
|
-
| **Parameterized** | Use placeholders: `I have {int} items` | Hardcoded: `I have 5 items` |
|
|
358
|
-
| **Stateless** | Use World object for state | Use global variables |
|
|
359
|
-
|
|
360
|
-
### Step Definition Anti-Patterns
|
|
361
|
-
|
|
362
|
-
| Anti-Pattern | Problem | Solution |
|
|
363
|
-
|--------------|---------|----------|
|
|
364
|
-
| **UI Details** | `I click the #submit-btn button` | `I submit the form` |
|
|
365
|
-
| **Technical Jargon** | `I POST to /api/orders` | `I place an order` |
|
|
366
|
-
| **Assertions in Given** | `Given my balance is $100 (assert balance)` | Keep Given for setup only |
|
|
367
|
-
| **Duplicate Steps** | Same logic in multiple step files | Extract to helper functions |
|
|
368
|
-
|
|
369
|
-
---
|
|
370
|
-
|
|
371
|
-
## Three Amigos Collaboration
|
|
372
|
-
|
|
373
|
-
### What are Three Amigos?
|
|
374
|
-
|
|
375
|
-
Three Amigos is a collaborative meeting between three perspectives:
|
|
376
|
-
|
|
377
|
-
```
|
|
378
|
-
┌─────────────────────────────────────────────────────────────────┐
|
|
379
|
-
│ Three Amigos │
|
|
380
|
-
├─────────────────────────────────────────────────────────────────┤
|
|
381
|
-
│ │
|
|
382
|
-
│ 👔 BUSINESS │
|
|
383
|
-
│ (Product Owner / BA) │
|
|
384
|
-
│ "What do we need?" │
|
|
385
|
-
│ "Why is this valuable?" │
|
|
386
|
-
│ │ │
|
|
387
|
-
│ │ │
|
|
388
|
-
│ ┌──────────┴──────────┐ │
|
|
389
|
-
│ │ │ │
|
|
390
|
-
│ ▼ ▼ │
|
|
391
|
-
│ 💻 DEVELOPMENT 🔍 TESTING │
|
|
392
|
-
│ (Developer) (QA / Tester) │
|
|
393
|
-
│ "How do we build it?" "What could go wrong?" │
|
|
394
|
-
│ "What's the impact?" "How do we verify it?" │
|
|
395
|
-
│ │
|
|
396
|
-
└─────────────────────────────────────────────────────────────────┘
|
|
397
|
-
```
|
|
398
|
-
|
|
399
|
-
### Three Amigos Session Format
|
|
400
|
-
|
|
401
|
-
| Phase | Duration | Activities |
|
|
402
|
-
|-------|----------|------------|
|
|
403
|
-
| **1. Story Review** | 10 min | PO presents story and acceptance criteria |
|
|
404
|
-
| **2. Discussion** | 20 min | Team asks questions, identifies gaps |
|
|
405
|
-
| **3. Example Generation** | 20 min | Create concrete examples together |
|
|
406
|
-
| **4. Wrap-up** | 10 min | Summarize, assign follow-ups |
|
|
407
|
-
|
|
408
|
-
### Sample Questions by Role
|
|
409
|
-
|
|
410
|
-
| Role | Sample Questions |
|
|
411
|
-
|------|------------------|
|
|
412
|
-
| **Business** | "What's the business value?", "Who are the users?", "What's the priority?" |
|
|
413
|
-
| **Development** | "What systems are affected?", "Are there performance concerns?", "What about existing data?" |
|
|
414
|
-
| **Testing** | "What could go wrong?", "What are the edge cases?", "How do we verify success?" |
|
|
415
|
-
|
|
416
|
-
---
|
|
417
|
-
|
|
418
|
-
## Living Documentation
|
|
419
|
-
|
|
420
|
-
### What is Living Documentation?
|
|
421
|
-
|
|
422
|
-
Living Documentation refers to specifications that:
|
|
423
|
-
- Are always up-to-date (because they're executable tests)
|
|
424
|
-
- Can be read by non-technical stakeholders
|
|
425
|
-
- Serve as both tests and documentation
|
|
426
|
-
|
|
427
|
-
### Benefits
|
|
428
|
-
|
|
429
|
-
```
|
|
430
|
-
┌─────────────────────────────────────────────────────────────────┐
|
|
431
|
-
│ Living Documentation Benefits │
|
|
432
|
-
├─────────────────────────────────────────────────────────────────┤
|
|
433
|
-
│ │
|
|
434
|
-
│ Traditional Documentation: │
|
|
435
|
-
│ ┌─────────┐ Write ┌─────────┐ Stale ┌─────────┐ │
|
|
436
|
-
│ │ Docs │────────▶│ Code │────────▶│ Drift │ │
|
|
437
|
-
│ └─────────┘ └─────────┘ └─────────┘ │
|
|
438
|
-
│ │
|
|
439
|
-
│ Living Documentation: │
|
|
440
|
-
│ ┌─────────┐ Execute ┌─────────┐ Fail ┌─────────┐ │
|
|
441
|
-
│ │ Specs │──────────▶│ Code │───────▶│ Fix │ │
|
|
442
|
-
│ └─────────┘ └─────────┘ └─────────┘ │
|
|
443
|
-
│ ▲ │ │ │
|
|
444
|
-
│ │ │ │ │
|
|
445
|
-
│ └──────────────────────┴──────────────────┘ │
|
|
446
|
-
│ Always in sync │
|
|
447
|
-
│ │
|
|
448
|
-
└─────────────────────────────────────────────────────────────────┘
|
|
449
|
-
```
|
|
450
|
-
|
|
451
|
-
### Generating Documentation
|
|
452
|
-
|
|
453
|
-
Many BDD tools can generate HTML documentation from feature files:
|
|
454
|
-
|
|
455
|
-
| Tool | Command | Output |
|
|
456
|
-
|------|---------|--------|
|
|
457
|
-
| Cucumber | `cucumber --format html` | HTML report |
|
|
458
|
-
| SpecFlow | `livingdoc` | Living Doc |
|
|
459
|
-
| Behave | `behave --format html` | HTML output |
|
|
460
|
-
|
|
461
|
-
---
|
|
462
|
-
|
|
463
|
-
## BDD vs TDD vs ATDD
|
|
464
|
-
|
|
465
|
-
### Comparison Overview
|
|
466
|
-
|
|
467
|
-
| Aspect | TDD | BDD | ATDD |
|
|
468
|
-
|--------|-----|-----|------|
|
|
469
|
-
| **Focus** | Code units | Behavior | Acceptance criteria |
|
|
470
|
-
| **Language** | Programming code | Natural language (Gherkin) | Business language |
|
|
471
|
-
| **Participants** | Developers | Developers + BA + QA | Entire team + stakeholders |
|
|
472
|
-
| **Test Level** | Unit/Integration | Feature/Scenario | System/Acceptance |
|
|
473
|
-
| **Tools** | xUnit frameworks | Cucumber, Behave, SpecFlow | FitNesse, Concordion |
|
|
474
|
-
| **When** | During coding | Before coding | Before development starts |
|
|
475
|
-
| **Primary Output** | Unit tests | Feature files | Acceptance tests |
|
|
476
|
-
|
|
477
|
-
### When to Use Each
|
|
478
|
-
|
|
479
|
-
```
|
|
480
|
-
┌─────────────────────────────────────────────────────────────────┐
|
|
481
|
-
│ Decision Tree │
|
|
482
|
-
├─────────────────────────────────────────────────────────────────┤
|
|
483
|
-
│ │
|
|
484
|
-
│ Is there a business stakeholder who needs to validate? │
|
|
485
|
-
│ │ │
|
|
486
|
-
│ ├─ Yes → Does stakeholder need to read/sign-off on tests? │
|
|
487
|
-
│ │ │ │
|
|
488
|
-
│ │ ├─ Yes → ATDD → BDD → TDD │
|
|
489
|
-
│ │ │ (Full collaboration cycle) │
|
|
490
|
-
│ │ │ │
|
|
491
|
-
│ │ └─ No → BDD → TDD │
|
|
492
|
-
│ │ (Behavior specs drive development) │
|
|
493
|
-
│ │ │
|
|
494
|
-
│ └─ No → Is it a technical implementation detail? │
|
|
495
|
-
│ │ │
|
|
496
|
-
│ ├─ Yes → TDD only │
|
|
497
|
-
│ │ (Unit-level test-first) │
|
|
498
|
-
│ │ │
|
|
499
|
-
│ └─ No → Consider BDD for documentation │
|
|
500
|
-
│ │
|
|
501
|
-
└─────────────────────────────────────────────────────────────────┘
|
|
502
|
-
```
|
|
503
|
-
|
|
504
|
-
### Integration Pyramid
|
|
505
|
-
|
|
506
|
-
```
|
|
507
|
-
┌─────────────────────────────────────────────────────────────────┐
|
|
508
|
-
│ Complete Test-Driven Development Stack │
|
|
509
|
-
├─────────────────────────────────────────────────────────────────┤
|
|
510
|
-
│ │
|
|
511
|
-
│ Requirements ATDD - Acceptance Test-Driven Development │
|
|
512
|
-
│ Layer (Business acceptance criteria + PO sign-off) │
|
|
513
|
-
│ ↓ │
|
|
514
|
-
│ Feature BDD - Behavior-Driven Development │
|
|
515
|
-
│ Layer (Gherkin scenarios → Step Definitions) │
|
|
516
|
-
│ ↓ │
|
|
517
|
-
│ Development TDD - Test-Driven Development │
|
|
518
|
-
│ Layer (Unit Tests → Implementation Code) │
|
|
519
|
-
│ ↓ │
|
|
520
|
-
│ Integration Integration & System Tests │
|
|
521
|
-
│ Layer │
|
|
522
|
-
│ │
|
|
523
|
-
│ Key: ATDD → BDD → TDD → Integration Tests (top-down flow) │
|
|
524
|
-
│ │
|
|
525
|
-
└─────────────────────────────────────────────────────────────────┘
|
|
526
|
-
```
|
|
527
|
-
|
|
528
|
-
---
|
|
529
|
-
|
|
530
|
-
## Integration with SDD and TDD
|
|
531
|
-
|
|
532
|
-
### BDD + SDD Workflow
|
|
533
|
-
|
|
534
|
-
```
|
|
535
|
-
┌─────────────────────────────────────────────────────────────────────────────┐
|
|
536
|
-
│ SDD + BDD Integrated Workflow │
|
|
537
|
-
├─────────────────────────────────────────────────────────────────────────────┤
|
|
538
|
-
│ │
|
|
539
|
-
│ 1️⃣ SDD: PROPOSAL Phase │
|
|
540
|
-
│ ├─ Write Spec: Define feature, acceptance criteria │
|
|
541
|
-
│ └─ Get stakeholder approval (Spec ID: SPEC-001) │
|
|
542
|
-
│ │
|
|
543
|
-
│ 2️⃣ BDD: DISCOVERY Phase │
|
|
544
|
-
│ ├─ Three Amigos session based on approved spec │
|
|
545
|
-
│ ├─ Example Mapping for each acceptance criterion │
|
|
546
|
-
│ └─ Identify gaps and additional examples │
|
|
547
|
-
│ │
|
|
548
|
-
│ 3️⃣ BDD: FORMULATION Phase │
|
|
549
|
-
│ ├─ Convert examples to Gherkin scenarios │
|
|
550
|
-
│ └─ Reference SPEC-001 in feature file │
|
|
551
|
-
│ │
|
|
552
|
-
│ 4️⃣ BDD + TDD: AUTOMATION Phase │
|
|
553
|
-
│ ├─ Write step definitions (scenarios fail = RED) │
|
|
554
|
-
│ ├─ Use TDD for unit-level implementation │
|
|
555
|
-
│ └─ Iterate until all scenarios pass (GREEN) │
|
|
556
|
-
│ │
|
|
557
|
-
│ 5️⃣ SDD: VERIFICATION Phase │
|
|
558
|
-
│ ├─ All BDD scenarios pass │
|
|
559
|
-
│ └─ Spec acceptance criteria verified │
|
|
560
|
-
│ │
|
|
561
|
-
└─────────────────────────────────────────────────────────────────────────────┘
|
|
562
|
-
```
|
|
563
|
-
|
|
564
|
-
### Referencing Spec in Feature Files
|
|
565
|
-
|
|
566
|
-
```gherkin
|
|
567
|
-
# Spec: SPEC-001 - User Authentication
|
|
568
|
-
# @see specs/SPEC-001-user-authentication.md
|
|
569
|
-
|
|
570
|
-
@SPEC-001
|
|
571
|
-
Feature: User Authentication
|
|
572
|
-
Implements SPEC-001 user authentication requirements.
|
|
573
|
-
|
|
574
|
-
@AC-1
|
|
575
|
-
Scenario: Successful login with valid credentials
|
|
576
|
-
# Acceptance Criterion 1 from SPEC-001
|
|
577
|
-
Given I am on the login page
|
|
578
|
-
When I enter valid credentials
|
|
579
|
-
Then I should be logged in
|
|
580
|
-
|
|
581
|
-
@AC-2
|
|
582
|
-
Scenario: Failed login with invalid password
|
|
583
|
-
# Acceptance Criterion 2 from SPEC-001
|
|
584
|
-
...
|
|
585
|
-
```
|
|
6
|
+
**Scope**: universal
|
|
7
|
+
**Industry Standards**: None (Dan North practice, 2006)
|
|
586
8
|
|
|
587
9
|
---
|
|
588
10
|
|
|
589
|
-
##
|
|
590
|
-
|
|
591
|
-
### Scenario-Level Anti-Patterns
|
|
592
|
-
|
|
593
|
-
| Anti-Pattern | Example | Problem | Solution |
|
|
594
|
-
|--------------|---------|---------|----------|
|
|
595
|
-
| **Imperative Style** | `Given I click the login button` | UI details in scenarios | Use declarative: `Given I am logged in` |
|
|
596
|
-
| **Long Scenarios** | 20+ steps in one scenario | Hard to understand | Split into focused scenarios |
|
|
597
|
-
| **Scenario Coupling** | Scenario 2 depends on Scenario 1 | Tests not independent | Each scenario self-contained |
|
|
598
|
-
| **No Business Value** | `Scenario: Click button test` | Testing UI, not behavior | Focus on user outcomes |
|
|
599
|
-
| **Technical Jargon** | `When I POST to /api/v1/users` | Business can't understand | Use business language |
|
|
600
|
-
|
|
601
|
-
### Process-Level Anti-Patterns
|
|
11
|
+
## Summary
|
|
602
12
|
|
|
603
|
-
|
|
604
|
-
|--------------|---------|----------|
|
|
605
|
-
| **No Discovery** | Jumping straight to writing scenarios | Always have Discovery session |
|
|
606
|
-
| **Developer-Only BDD** | Missing business/QA perspective | Include Three Amigos |
|
|
607
|
-
| **Automation-First** | Writing step definitions before scenarios | Formulation before Automation |
|
|
608
|
-
| **100% Coverage Obsession** | Writing scenarios for everything | Focus on high-value behaviors |
|
|
609
|
-
| **Scenario Explosion** | Too many similar scenarios | Use Scenario Outlines |
|
|
13
|
+
Behavior-Driven Development (BDD) is a traditional development methodology (2006) created by Dan North that bridges the communication gap between business and technical teams. Software behavior is specified through collaboration using **Given-When-Then** scenarios written in Gherkin syntax - a natural language format that stakeholders can read and validate.
|
|
610
14
|
|
|
611
|
-
|
|
612
|
-
|
|
613
|
-
```
|
|
614
|
-
┌─────────────────────────────────────────────────────────────────┐
|
|
615
|
-
│ BDD Anti-Pattern Diagnosis │
|
|
616
|
-
├─────────────────────────────────────────────────────────────────┤
|
|
617
|
-
│ │
|
|
618
|
-
│ Symptom: Scenarios break on UI changes │
|
|
619
|
-
│ ├─ Likely cause: Imperative style, UI details │
|
|
620
|
-
│ └─ Fix: Rewrite using declarative, behavior-focused language │
|
|
621
|
-
│ │
|
|
622
|
-
│ Symptom: Business stakeholders don't read scenarios │
|
|
623
|
-
│ ├─ Likely cause: Technical jargon, poor structure │
|
|
624
|
-
│ └─ Fix: Three Amigos review, use ubiquitous language │
|
|
625
|
-
│ │
|
|
626
|
-
│ Symptom: Scenarios pass but features don't work │
|
|
627
|
-
│ ├─ Likely cause: Missing important scenarios, gaps │
|
|
628
|
-
│ └─ Fix: Better Discovery sessions, Example Mapping │
|
|
629
|
-
│ │
|
|
630
|
-
│ Symptom: Feature files are unmanageable │
|
|
631
|
-
│ ├─ Likely cause: Too many scenarios, poor organization │
|
|
632
|
-
│ └─ Fix: Use tags, split features, prune obsolete scenarios │
|
|
633
|
-
│ │
|
|
634
|
-
└─────────────────────────────────────────────────────────────────┘
|
|
635
|
-
```
|
|
15
|
+
BDD forms the **outer loop** of Double-Loop TDD (GOOS pattern), where BDD scenarios drive feature-level behavior while TDD handles unit-level implementation. The methodology follows a Discovery-Formulation-Automation workflow, with Three Amigos collaboration (Business + Development + Testing) ensuring shared understanding.
|
|
636
16
|
|
|
637
17
|
---
|
|
638
18
|
|
|
639
|
-
|
|
640
|
-
|
|
641
|
-
### BDD Tools by Language
|
|
642
|
-
|
|
643
|
-
| Language | Primary Tool | Alternative Tools |
|
|
644
|
-
|----------|--------------|-------------------|
|
|
645
|
-
| **JavaScript/TypeScript** | Cucumber.js | Jest-Cucumber, Playwright BDD |
|
|
646
|
-
| **Python** | Behave | pytest-bdd, Lettuce |
|
|
647
|
-
| **Java** | Cucumber-JVM | JBehave, Serenity BDD |
|
|
648
|
-
| **C#** | SpecFlow | xBehave.net, LightBDD |
|
|
649
|
-
| **Ruby** | Cucumber | RSpec (BDD-style) |
|
|
650
|
-
| **Go** | Godog | GoBDD |
|
|
651
|
-
| **PHP** | Behat | Codeception BDD |
|
|
652
|
-
|
|
653
|
-
### Tool Selection Guidelines
|
|
654
|
-
|
|
655
|
-
| Consideration | Recommendation |
|
|
656
|
-
|---------------|----------------|
|
|
657
|
-
| **Team Experience** | Use tools the team already knows |
|
|
658
|
-
| **IDE Support** | Choose tools with good IDE integration |
|
|
659
|
-
| **CI/CD Integration** | Ensure tool produces standard reports |
|
|
660
|
-
| **Living Documentation** | Consider tools with doc generation |
|
|
19
|
+
**Full Guide: [BDD Guide](../methodologies/guides/bdd-guide.md)**
|
|
661
20
|
|
|
662
21
|
---
|
|
663
22
|
|
|
664
|
-
##
|
|
665
|
-
|
|
666
|
-
### BDD Maturity Model
|
|
667
|
-
|
|
668
|
-
| Level | Name | Characteristics |
|
|
669
|
-
|-------|------|-----------------|
|
|
670
|
-
| **Level 0** | No BDD | No behavior specifications |
|
|
671
|
-
| **Level 1** | Tool-Focused | Using Cucumber but no collaboration |
|
|
672
|
-
| **Level 2** | Collaborative | Three Amigos sessions, shared language |
|
|
673
|
-
| **Level 3** | Discovery-Driven | Example Mapping, proactive exploration |
|
|
674
|
-
| **Level 4** | Living Documentation | Specs drive development, stakeholders engaged |
|
|
675
|
-
|
|
676
|
-
### Key Metrics
|
|
677
|
-
|
|
678
|
-
| Metric | Target | Warning |
|
|
679
|
-
|--------|--------|---------|
|
|
680
|
-
| **Scenario Coverage** | Key behaviors covered | Major features without scenarios |
|
|
681
|
-
| **Scenario Execution Time** | < 30 min for full suite | > 1 hour |
|
|
682
|
-
| **Flaky Scenario Rate** | 0% | > 2% |
|
|
683
|
-
| **Stakeholder Participation** | 100% of Discovery sessions | < 50% |
|
|
684
|
-
| **Scenario to Unit Test Ratio** | 1:10 to 1:20 | > 1:5 (too many scenarios) |
|
|
23
|
+
## Quick Reference
|
|
685
24
|
|
|
686
|
-
|
|
687
|
-
|
|
688
|
-
|
|
689
|
-
|
|
690
|
-
|
|
691
|
-
|
|
692
|
-
|
|
693
|
-
□ Scenarios written in declarative style
|
|
694
|
-
□ Business language used (ubiquitous language)
|
|
695
|
-
□ Feature files reviewed by stakeholders
|
|
696
|
-
□ Step definitions are reusable
|
|
697
|
-
□ Scenarios are independent
|
|
698
|
-
□ Living documentation generated
|
|
699
|
-
□ Scenarios run in CI/CD
|
|
700
|
-
□ No flaky scenarios
|
|
701
|
-
```
|
|
702
|
-
|
|
703
|
-
---
|
|
25
|
+
| Aspect | Description |
|
|
26
|
+
|--------|-------------|
|
|
27
|
+
| **Core Workflow** | Discovery → Formulation → Automation |
|
|
28
|
+
| **Language** | Gherkin (Given-When-Then) |
|
|
29
|
+
| **Test Level** | Feature/Scenario tests |
|
|
30
|
+
| **Participants** | Developers + BA + QA (Three Amigos) |
|
|
31
|
+
| **Tools** | Cucumber, Behave, SpecFlow |
|
|
704
32
|
|
|
705
33
|
## Related Standards
|
|
706
34
|
|
|
707
|
-
- [Test-Driven Development](test-driven-development.md)
|
|
708
|
-
- [Acceptance Test-Driven Development](acceptance-test-driven-development.md)
|
|
709
|
-
- [Spec-Driven Development](spec-driven-development.md)
|
|
710
|
-
- [Testing Standards](testing-standards.md)
|
|
711
|
-
- [Test Completeness Dimensions](test-completeness-dimensions.md) - 7 dimensions framework
|
|
712
|
-
- [Code Check-in Standards](checkin-standards.md) - Check-in requirements
|
|
713
|
-
|
|
714
|
-
---
|
|
715
|
-
|
|
716
|
-
## References
|
|
717
|
-
|
|
718
|
-
### Books
|
|
719
|
-
|
|
720
|
-
- Dan North - "Introducing BDD" (2006, Blog Post)
|
|
721
|
-
- Gojko Adzic - "Specification by Example" (2011)
|
|
722
|
-
- Gojko Adzic - "Bridging the Communication Gap" (2009)
|
|
723
|
-
- Seb Rose & Matt Wynne - "The Cucumber Book" (2017)
|
|
724
|
-
- John Ferguson Smart - "BDD in Action" (2014)
|
|
725
|
-
|
|
726
|
-
### Online Resources
|
|
727
|
-
|
|
728
|
-
- [Cucumber Documentation](https://cucumber.io/docs)
|
|
729
|
-
- [BDD 101 - Automation Panda](https://automationpanda.com/bdd/)
|
|
730
|
-
- [Example Mapping - Cucumber Blog](https://cucumber.io/blog/bdd/example-mapping-introduction/)
|
|
731
|
-
- [Gherkin Reference](https://cucumber.io/docs/gherkin/reference/)
|
|
732
|
-
- [Three Amigos - Agile Alliance](https://www.agilealliance.org/glossary/three-amigos/)
|
|
733
|
-
|
|
734
|
-
### Standards
|
|
735
|
-
|
|
736
|
-
- [IEEE 29119 - Software Testing Standards](https://www.iso.org/standard/81291.html)
|
|
737
|
-
- [ISTQB Certified Tester Foundation Level](https://www.istqb.org/)
|
|
738
|
-
|
|
739
|
-
---
|
|
740
|
-
|
|
741
|
-
## Version History
|
|
742
|
-
|
|
743
|
-
| Version | Date | Changes |
|
|
744
|
-
|---------|------|---------|
|
|
745
|
-
| 1.0.0 | 2026-01-19 | Initial BDD standard definition |
|
|
746
|
-
|
|
747
|
-
---
|
|
748
|
-
|
|
749
|
-
## License
|
|
750
|
-
|
|
751
|
-
This standard is released under [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/).
|
|
752
|
-
|
|
753
|
-
**Source**: [universal-dev-standards](https://github.com/AsiaOstrich/universal-dev-standards)
|
|
35
|
+
- [Test-Driven Development](test-driven-development.md)
|
|
36
|
+
- [Acceptance Test-Driven Development](acceptance-test-driven-development.md)
|
|
37
|
+
- [Spec-Driven Development](spec-driven-development.md)
|
|
38
|
+
- [Testing Standards](testing-standards.md)
|