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
|
@@ -0,0 +1,954 @@
|
|
|
1
|
+
# Git Workflow Guide
|
|
2
|
+
|
|
3
|
+
> **Language**: English | [繁體中文](../../locales/zh-TW/core/guides/git-workflow-guide.md)
|
|
4
|
+
|
|
5
|
+
**Version**: 1.0.0
|
|
6
|
+
**Last Updated**: 2026-01-29
|
|
7
|
+
**Related Standard**: [Git Workflow Standards](../git-workflow.md)
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## Purpose
|
|
12
|
+
|
|
13
|
+
This guide provides detailed explanations, tutorials, and examples for Git workflow strategies. For actionable rules and checklists, see [Git Workflow Standards](../git-workflow.md).
|
|
14
|
+
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
## Table of Contents
|
|
18
|
+
|
|
19
|
+
1. [Workflow Selection Guide](#workflow-selection-guide)
|
|
20
|
+
2. [GitFlow Detailed Tutorial](#gitflow-detailed-tutorial)
|
|
21
|
+
3. [GitHub Flow Detailed Tutorial](#github-flow-detailed-tutorial)
|
|
22
|
+
4. [Trunk-Based Development Tutorial](#trunk-based-development-tutorial)
|
|
23
|
+
5. [Feature Flags Implementation](#feature-flags-implementation)
|
|
24
|
+
6. [Ship/Show/Ask Decision Model](#shipshowask-decision-model)
|
|
25
|
+
7. [Stacked PRs Workflow](#stacked-prs-workflow)
|
|
26
|
+
8. [Conventional PR Titles Guide](#conventional-pr-titles-guide)
|
|
27
|
+
9. [Git Commands Reference](#git-commands-reference)
|
|
28
|
+
10. [Troubleshooting Guide](#troubleshooting-guide)
|
|
29
|
+
|
|
30
|
+
---
|
|
31
|
+
|
|
32
|
+
## Workflow Selection Guide
|
|
33
|
+
|
|
34
|
+
### Decision Tree
|
|
35
|
+
|
|
36
|
+
Use this flowchart to select the appropriate workflow:
|
|
37
|
+
|
|
38
|
+
```
|
|
39
|
+
┌─────────────────────────────────────┐
|
|
40
|
+
│ How often do you deploy to │
|
|
41
|
+
│ production? │
|
|
42
|
+
└───────────────┬─────────────────────┘
|
|
43
|
+
│
|
|
44
|
+
┌───────────────────────┼───────────────────────┐
|
|
45
|
+
▼ ▼ ▼
|
|
46
|
+
┌────────────────┐ ┌────────────────┐ ┌────────────────┐
|
|
47
|
+
│ Multiple times │ │ Weekly to │ │ Monthly or │
|
|
48
|
+
│ per day │ │ bi-weekly │ │ longer │
|
|
49
|
+
└───────┬────────┘ └───────┬────────┘ └───────┬────────┘
|
|
50
|
+
│ │ │
|
|
51
|
+
▼ ▼ ▼
|
|
52
|
+
┌────────────────┐ ┌────────────────┐ ┌────────────────┐
|
|
53
|
+
│ Trunk-Based │ │ GitHub Flow │ │ GitFlow │
|
|
54
|
+
│ Development │ │ │ │ │
|
|
55
|
+
└────────────────┘ └────────────────┘ └────────────────┘
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
### Selection Matrix
|
|
59
|
+
|
|
60
|
+
| Factor | GitFlow | GitHub Flow | Trunk-Based |
|
|
61
|
+
|--------|---------|-------------|-------------|
|
|
62
|
+
| **Release frequency** | Monthly+ | Weekly | Multiple/day |
|
|
63
|
+
| **Team size** | Large (10+) | Medium (5-15) | Small-Medium (3-10) |
|
|
64
|
+
| **CI/CD maturity** | Basic | Intermediate | Advanced |
|
|
65
|
+
| **Feature flags** | Optional | Optional | Required |
|
|
66
|
+
| **Hotfix process** | Dedicated branch | Same as feature | Same as feature |
|
|
67
|
+
| **Complexity** | High | Low | Medium |
|
|
68
|
+
|
|
69
|
+
### Quick Selection Guide
|
|
70
|
+
|
|
71
|
+
**Choose GitFlow if**:
|
|
72
|
+
- You have scheduled release cycles (monthly, quarterly)
|
|
73
|
+
- You maintain multiple production versions simultaneously
|
|
74
|
+
- You have separate teams for development and release management
|
|
75
|
+
|
|
76
|
+
**Choose GitHub Flow if**:
|
|
77
|
+
- You deploy to production weekly or on-demand
|
|
78
|
+
- You have a single production version
|
|
79
|
+
- You want simplicity with good traceability
|
|
80
|
+
|
|
81
|
+
**Choose Trunk-Based if**:
|
|
82
|
+
- You have mature CI/CD with automated testing
|
|
83
|
+
- Your team practices continuous integration
|
|
84
|
+
- You're comfortable with feature flags for incomplete features
|
|
85
|
+
|
|
86
|
+
### Workflow Selection Process
|
|
87
|
+
|
|
88
|
+
**Who Decides**: Tech Lead or Engineering Manager, in consultation with the team.
|
|
89
|
+
|
|
90
|
+
**When to Decide**:
|
|
91
|
+
|
|
92
|
+
| Project Phase | Action |
|
|
93
|
+
|---------------|--------|
|
|
94
|
+
| Project kickoff | Select initial workflow based on team size and release plan |
|
|
95
|
+
| First release | Review and confirm choice; lock for at least one release cycle |
|
|
96
|
+
| Major team change | Re-evaluate if team doubles or halves in size |
|
|
97
|
+
| Release cadence change | Re-evaluate if moving from monthly to weekly or vice versa |
|
|
98
|
+
|
|
99
|
+
**How to Document**:
|
|
100
|
+
|
|
101
|
+
1. **Record in project README** or CONTRIBUTING.md:
|
|
102
|
+
```markdown
|
|
103
|
+
## Git Workflow
|
|
104
|
+
This project uses **GitHub Flow**.
|
|
105
|
+
- Decision date: 2025-01-15
|
|
106
|
+
- Decision maker: @techlead
|
|
107
|
+
- Rationale: Weekly deployments, single production version
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
2. **Configure branch protection** rules to enforce the chosen workflow.
|
|
111
|
+
|
|
112
|
+
3. **Update onboarding docs** to reference the workflow choice.
|
|
113
|
+
|
|
114
|
+
**Changing Workflows**: Workflow changes should be treated as breaking changes. Announce at least one sprint in advance and provide migration documentation.
|
|
115
|
+
|
|
116
|
+
---
|
|
117
|
+
|
|
118
|
+
## GitFlow Detailed Tutorial
|
|
119
|
+
|
|
120
|
+
**Best For**:
|
|
121
|
+
- Scheduled releases (monthly, quarterly)
|
|
122
|
+
- Multiple production versions maintained simultaneously
|
|
123
|
+
- Clear distinction between development and production
|
|
124
|
+
- Large teams with formal release processes
|
|
125
|
+
|
|
126
|
+
### Branch Structure
|
|
127
|
+
|
|
128
|
+
```
|
|
129
|
+
main ─●────────●─────────●── (Production releases: v1.0, v2.0)
|
|
130
|
+
╱ ╲ ╲
|
|
131
|
+
develop ────●────●──────●─────────●── (Development mainline)
|
|
132
|
+
╱ ╲ ╲
|
|
133
|
+
feature/* ─●────────● ╲ (Feature branches)
|
|
134
|
+
╲
|
|
135
|
+
release/* ●───● (Release preparation)
|
|
136
|
+
╱
|
|
137
|
+
hotfix/* ────● (Emergency fixes)
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
### Workflow Steps
|
|
141
|
+
|
|
142
|
+
#### 1. Feature Development
|
|
143
|
+
|
|
144
|
+
```bash
|
|
145
|
+
# Create feature branch from develop
|
|
146
|
+
git checkout develop
|
|
147
|
+
git pull origin develop
|
|
148
|
+
git checkout -b feature/oauth-login
|
|
149
|
+
|
|
150
|
+
# Work on feature
|
|
151
|
+
git add .
|
|
152
|
+
git commit -m "feat(auth): add OAuth2 login"
|
|
153
|
+
|
|
154
|
+
# Push to remote
|
|
155
|
+
git push -u origin feature/oauth-login
|
|
156
|
+
|
|
157
|
+
# Create pull request to develop
|
|
158
|
+
# After review approval, merge to develop
|
|
159
|
+
git checkout develop
|
|
160
|
+
git merge --no-ff feature/oauth-login
|
|
161
|
+
git push origin develop
|
|
162
|
+
|
|
163
|
+
# Delete feature branch
|
|
164
|
+
git branch -d feature/oauth-login
|
|
165
|
+
git push origin --delete feature/oauth-login
|
|
166
|
+
```
|
|
167
|
+
|
|
168
|
+
#### 2. Release Preparation
|
|
169
|
+
|
|
170
|
+
> **CHANGELOG Update**: Move entries from `[Unreleased]` to the new version section and add the release date. See [changelog-standards.md](../changelog-standards.md) for detailed guidelines.
|
|
171
|
+
|
|
172
|
+
```bash
|
|
173
|
+
# Create release branch from develop
|
|
174
|
+
git checkout develop
|
|
175
|
+
git pull origin develop
|
|
176
|
+
git checkout -b release/v1.2.0
|
|
177
|
+
|
|
178
|
+
# Prepare release (version bump, changelog, etc.)
|
|
179
|
+
# 1. Update CHANGELOG.md: move [Unreleased] to [1.2.0] - YYYY-MM-DD
|
|
180
|
+
# 2. Update version in package.json (or equivalent)
|
|
181
|
+
npm version 1.2.0
|
|
182
|
+
git add package.json CHANGELOG.md
|
|
183
|
+
git commit -m "chore(release): prepare v1.2.0"
|
|
184
|
+
|
|
185
|
+
# Merge to main
|
|
186
|
+
git checkout main
|
|
187
|
+
git merge --no-ff release/v1.2.0
|
|
188
|
+
git tag -a v1.2.0 -m "Release version 1.2.0"
|
|
189
|
+
git push origin main --tags
|
|
190
|
+
|
|
191
|
+
# Merge back to develop
|
|
192
|
+
git checkout develop
|
|
193
|
+
git merge --no-ff release/v1.2.0
|
|
194
|
+
git push origin develop
|
|
195
|
+
|
|
196
|
+
# Delete release branch
|
|
197
|
+
git branch -d release/v1.2.0
|
|
198
|
+
git push origin --delete release/v1.2.0
|
|
199
|
+
```
|
|
200
|
+
|
|
201
|
+
#### 3. Hotfix
|
|
202
|
+
|
|
203
|
+
```bash
|
|
204
|
+
# Create hotfix branch from main
|
|
205
|
+
git checkout main
|
|
206
|
+
git pull origin main
|
|
207
|
+
git checkout -b hotfix/critical-security-fix
|
|
208
|
+
|
|
209
|
+
# Fix the issue
|
|
210
|
+
git add .
|
|
211
|
+
git commit -m "fix(security): patch SQL injection vulnerability"
|
|
212
|
+
|
|
213
|
+
# Merge to main
|
|
214
|
+
git checkout main
|
|
215
|
+
git merge --no-ff hotfix/critical-security-fix
|
|
216
|
+
git tag -a v1.2.1 -m "Hotfix version 1.2.1"
|
|
217
|
+
git push origin main --tags
|
|
218
|
+
|
|
219
|
+
# Merge to develop
|
|
220
|
+
git checkout develop
|
|
221
|
+
git merge --no-ff hotfix/critical-security-fix
|
|
222
|
+
git push origin develop
|
|
223
|
+
|
|
224
|
+
# Delete hotfix branch
|
|
225
|
+
git branch -d hotfix/critical-security-fix
|
|
226
|
+
git push origin --delete hotfix/critical-security-fix
|
|
227
|
+
```
|
|
228
|
+
|
|
229
|
+
---
|
|
230
|
+
|
|
231
|
+
## GitHub Flow Detailed Tutorial
|
|
232
|
+
|
|
233
|
+
**Best For**:
|
|
234
|
+
- Continuous deployment
|
|
235
|
+
- Web applications
|
|
236
|
+
- Small to medium teams
|
|
237
|
+
- Fast iteration cycles
|
|
238
|
+
|
|
239
|
+
### Branch Structure
|
|
240
|
+
|
|
241
|
+
```
|
|
242
|
+
main ────●─────────●──────●── (Always deployable)
|
|
243
|
+
╲ ╱ ╱
|
|
244
|
+
feature/* ●───●───● ╱ (Feature + PR)
|
|
245
|
+
╱
|
|
246
|
+
bugfix/* ────● (Bug fixes)
|
|
247
|
+
```
|
|
248
|
+
|
|
249
|
+
### Workflow Steps
|
|
250
|
+
|
|
251
|
+
```bash
|
|
252
|
+
# 1. Create feature branch from main
|
|
253
|
+
git checkout main
|
|
254
|
+
git pull origin main
|
|
255
|
+
git checkout -b feature/user-profile
|
|
256
|
+
|
|
257
|
+
# 2. Work and commit frequently
|
|
258
|
+
git add .
|
|
259
|
+
git commit -m "feat(profile): add avatar upload"
|
|
260
|
+
git push -u origin feature/user-profile
|
|
261
|
+
|
|
262
|
+
# 3. Open pull request to main
|
|
263
|
+
# Use GitHub/GitLab UI to create PR
|
|
264
|
+
|
|
265
|
+
# 4. After CI passes and review approval, merge to main
|
|
266
|
+
# (Usually done via GitHub/GitLab UI with "Squash and merge")
|
|
267
|
+
|
|
268
|
+
# 5. Deploy main to production
|
|
269
|
+
git checkout main
|
|
270
|
+
git pull origin main
|
|
271
|
+
# Trigger deployment pipeline
|
|
272
|
+
|
|
273
|
+
# 6. Delete feature branch (auto-deleted by GitHub/GitLab)
|
|
274
|
+
```
|
|
275
|
+
|
|
276
|
+
### Key Principles
|
|
277
|
+
|
|
278
|
+
1. **`main` is always deployable**
|
|
279
|
+
2. **Branch from `main`**
|
|
280
|
+
3. **Merge to `main` via PR**
|
|
281
|
+
4. **Deploy immediately after merge**
|
|
282
|
+
|
|
283
|
+
---
|
|
284
|
+
|
|
285
|
+
## Trunk-Based Development Tutorial
|
|
286
|
+
|
|
287
|
+
**Best For**:
|
|
288
|
+
- Mature CI/CD pipelines
|
|
289
|
+
- High-trust, experienced teams
|
|
290
|
+
- Frequent integration (multiple times per day)
|
|
291
|
+
- Feature flags for incomplete features
|
|
292
|
+
|
|
293
|
+
### Branch Structure
|
|
294
|
+
|
|
295
|
+
```
|
|
296
|
+
main ────●─●─●─●─●─●─●──► (Single long-lived branch)
|
|
297
|
+
╲│╱ ╲│╱ ╲│╱
|
|
298
|
+
feature/* ● ● ● (Very short-lived, ≤2 days)
|
|
299
|
+
```
|
|
300
|
+
|
|
301
|
+
### Workflow Steps
|
|
302
|
+
|
|
303
|
+
```bash
|
|
304
|
+
# 1. Create short-lived branch
|
|
305
|
+
git checkout main
|
|
306
|
+
git pull origin main
|
|
307
|
+
git checkout -b feature/add-validation
|
|
308
|
+
|
|
309
|
+
# 2. Make small, atomic change
|
|
310
|
+
git add .
|
|
311
|
+
git commit -m "feat(validation): add email format check"
|
|
312
|
+
|
|
313
|
+
# 3. Push and create PR (same day)
|
|
314
|
+
git push -u origin feature/add-validation
|
|
315
|
+
|
|
316
|
+
# 4. Merge quickly after review (within hours)
|
|
317
|
+
# Prefer rebase to keep linear history
|
|
318
|
+
git checkout main
|
|
319
|
+
git pull origin main
|
|
320
|
+
git rebase main feature/add-validation
|
|
321
|
+
git checkout main
|
|
322
|
+
git merge --ff-only feature/add-validation
|
|
323
|
+
git push origin main
|
|
324
|
+
|
|
325
|
+
# 5. Delete branch immediately
|
|
326
|
+
git branch -d feature/add-validation
|
|
327
|
+
git push origin --delete feature/add-validation
|
|
328
|
+
```
|
|
329
|
+
|
|
330
|
+
### Key Principles
|
|
331
|
+
|
|
332
|
+
1. **Integrate frequently** (multiple times per day)
|
|
333
|
+
2. **Keep branches short-lived** (≤2 days)
|
|
334
|
+
3. **Use feature flags** for incomplete features
|
|
335
|
+
4. **Automate everything** (tests, builds, deployments)
|
|
336
|
+
|
|
337
|
+
---
|
|
338
|
+
|
|
339
|
+
## Feature Flags Implementation
|
|
340
|
+
|
|
341
|
+
### Why Feature Flags Are Essential
|
|
342
|
+
|
|
343
|
+
Feature flags enable trunk-based development by decoupling **deployment** from **release**:
|
|
344
|
+
|
|
345
|
+
```
|
|
346
|
+
┌─────────────────────────────────────────────────────────────────┐
|
|
347
|
+
│ Code Lifecycle │
|
|
348
|
+
├─────────────────────────────────────────────────────────────────┤
|
|
349
|
+
│ │
|
|
350
|
+
│ Merge to main Deploy to Prod Enable for Users │
|
|
351
|
+
│ │ │ │ │
|
|
352
|
+
│ ▼ ▼ ▼ │
|
|
353
|
+
│ ┌─────────┐ ┌─────────┐ ┌─────────┐ │
|
|
354
|
+
│ │ Commit │─────►│ Deploy │───────►│ Release │ │
|
|
355
|
+
│ │ (Code) │ │ (Binary)│ │ (Users) │ │
|
|
356
|
+
│ └─────────┘ └─────────┘ └─────────┘ │
|
|
357
|
+
│ │ │ │
|
|
358
|
+
│ │ Feature Flag │ │
|
|
359
|
+
│ └───────────────────┘ │
|
|
360
|
+
│ (Decoupled) │
|
|
361
|
+
└─────────────────────────────────────────────────────────────────┘
|
|
362
|
+
```
|
|
363
|
+
|
|
364
|
+
### Implementation Patterns
|
|
365
|
+
|
|
366
|
+
**Basic Toggle**:
|
|
367
|
+
|
|
368
|
+
```javascript
|
|
369
|
+
// Simple on/off flag
|
|
370
|
+
if (featureFlags.isEnabled('new-checkout-flow')) {
|
|
371
|
+
return newCheckoutFlow(cart);
|
|
372
|
+
} else {
|
|
373
|
+
return legacyCheckoutFlow(cart);
|
|
374
|
+
}
|
|
375
|
+
```
|
|
376
|
+
|
|
377
|
+
**Gradual Rollout**:
|
|
378
|
+
|
|
379
|
+
```javascript
|
|
380
|
+
// Percentage-based rollout
|
|
381
|
+
const flag = featureFlags.get('new-checkout-flow');
|
|
382
|
+
if (flag.isEnabledForPercentage(user.id, 10)) {
|
|
383
|
+
// 10% of users see new flow
|
|
384
|
+
return newCheckoutFlow(cart);
|
|
385
|
+
}
|
|
386
|
+
```
|
|
387
|
+
|
|
388
|
+
**User Segment Targeting**:
|
|
389
|
+
|
|
390
|
+
```javascript
|
|
391
|
+
// Target specific user segments
|
|
392
|
+
if (featureFlags.isEnabledFor('new-checkout-flow', {
|
|
393
|
+
userId: user.id,
|
|
394
|
+
plan: user.plan, // e.g., 'enterprise'
|
|
395
|
+
region: user.region, // e.g., 'asia-pacific'
|
|
396
|
+
betaTester: user.isBetaTester
|
|
397
|
+
})) {
|
|
398
|
+
return newCheckoutFlow(cart);
|
|
399
|
+
}
|
|
400
|
+
```
|
|
401
|
+
|
|
402
|
+
### Feature Flag Lifecycle
|
|
403
|
+
|
|
404
|
+
| Phase | Flag State | Action |
|
|
405
|
+
|-------|------------|--------|
|
|
406
|
+
| Development | Off | Code merged but hidden |
|
|
407
|
+
| Internal Testing | On for team | QA and dogfooding |
|
|
408
|
+
| Beta | On for beta users | Gather feedback |
|
|
409
|
+
| Gradual Rollout | 1% → 10% → 50% → 100% | Monitor metrics |
|
|
410
|
+
| Full Release | On for all | Default behavior |
|
|
411
|
+
| Cleanup | Flag removed | Technical debt cleanup |
|
|
412
|
+
|
|
413
|
+
### Flag Hygiene Best Practices
|
|
414
|
+
|
|
415
|
+
1. **Name flags descriptively**: `enable-new-checkout-v2` not `flag-123`
|
|
416
|
+
2. **Set expiration dates**: Review and remove stale flags
|
|
417
|
+
3. **Limit active flags**: Too many flags = complexity
|
|
418
|
+
4. **Document flag purpose**: What, why, when to remove
|
|
419
|
+
|
|
420
|
+
```javascript
|
|
421
|
+
// Flag metadata example
|
|
422
|
+
{
|
|
423
|
+
"name": "enable-new-checkout-v2",
|
|
424
|
+
"description": "New checkout flow with improved UX",
|
|
425
|
+
"owner": "checkout-team",
|
|
426
|
+
"createdAt": "2026-01-15",
|
|
427
|
+
"targetRemovalDate": "2026-03-15",
|
|
428
|
+
"status": "gradual-rollout"
|
|
429
|
+
}
|
|
430
|
+
```
|
|
431
|
+
|
|
432
|
+
---
|
|
433
|
+
|
|
434
|
+
## Ship/Show/Ask Decision Model
|
|
435
|
+
|
|
436
|
+
### Overview
|
|
437
|
+
|
|
438
|
+
Not all changes need the same review process. The Ship/Show/Ask model helps teams decide:
|
|
439
|
+
|
|
440
|
+
```
|
|
441
|
+
┌─────────────────────────────────────────────────────────────────┐
|
|
442
|
+
│ Ship / Show / Ask │
|
|
443
|
+
├─────────────────────────────────────────────────────────────────┤
|
|
444
|
+
│ │
|
|
445
|
+
│ SHIP SHOW ASK │
|
|
446
|
+
│ ──── ──── ─── │
|
|
447
|
+
│ Push directly Merge, then Open PR, wait │
|
|
448
|
+
│ to main notify team for approval │
|
|
449
|
+
│ │
|
|
450
|
+
│ Low risk Medium risk High risk │
|
|
451
|
+
│ High confidence Need awareness Need discussion │
|
|
452
|
+
│ │
|
|
453
|
+
└─────────────────────────────────────────────────────────────────┘
|
|
454
|
+
```
|
|
455
|
+
|
|
456
|
+
### When to Ship (Direct Push)
|
|
457
|
+
|
|
458
|
+
**Criteria**:
|
|
459
|
+
- Small, low-risk changes
|
|
460
|
+
- High confidence in correctness
|
|
461
|
+
- Easy to revert if wrong
|
|
462
|
+
- Strong test coverage
|
|
463
|
+
|
|
464
|
+
**Examples**:
|
|
465
|
+
- Typo fixes in documentation
|
|
466
|
+
- Adding debug logging
|
|
467
|
+
- Updating dependencies (with CI passing)
|
|
468
|
+
- Config changes (non-breaking)
|
|
469
|
+
- Obvious bug fixes with tests
|
|
470
|
+
|
|
471
|
+
```bash
|
|
472
|
+
# Ship: Direct push to main
|
|
473
|
+
git checkout main
|
|
474
|
+
git pull origin main
|
|
475
|
+
# Make small change
|
|
476
|
+
git add .
|
|
477
|
+
git commit -m "fix: correct typo in error message"
|
|
478
|
+
git push origin main
|
|
479
|
+
```
|
|
480
|
+
|
|
481
|
+
### When to Show (Merge, Then Notify)
|
|
482
|
+
|
|
483
|
+
**Criteria**:
|
|
484
|
+
- Team should be aware
|
|
485
|
+
- Code review is nice-to-have, not blocking
|
|
486
|
+
- Changes are straightforward
|
|
487
|
+
- You want feedback but not blocking approval
|
|
488
|
+
|
|
489
|
+
**Examples**:
|
|
490
|
+
- Refactoring that improves code quality
|
|
491
|
+
- Adding tests for existing functionality
|
|
492
|
+
- Non-critical feature enhancements
|
|
493
|
+
- Updating internal documentation
|
|
494
|
+
|
|
495
|
+
```bash
|
|
496
|
+
# Show: Merge and notify
|
|
497
|
+
git checkout -b refactor/extract-validation
|
|
498
|
+
# Make changes
|
|
499
|
+
git add .
|
|
500
|
+
git commit -m "refactor: extract validation logic"
|
|
501
|
+
git push origin refactor/extract-validation
|
|
502
|
+
|
|
503
|
+
# Create PR and immediately merge (no blocking review)
|
|
504
|
+
gh pr create --title "refactor: extract validation logic" --body "FYI: Extracting validation for reuse"
|
|
505
|
+
gh pr merge --auto --squash
|
|
506
|
+
|
|
507
|
+
# Notify team in Slack/Teams
|
|
508
|
+
```
|
|
509
|
+
|
|
510
|
+
### When to Ask (PR with Blocking Review)
|
|
511
|
+
|
|
512
|
+
**Criteria**:
|
|
513
|
+
- Architectural decisions
|
|
514
|
+
- Breaking changes
|
|
515
|
+
- Security-sensitive code
|
|
516
|
+
- New patterns or conventions
|
|
517
|
+
- Changes you're uncertain about
|
|
518
|
+
|
|
519
|
+
**Examples**:
|
|
520
|
+
- New API endpoints
|
|
521
|
+
- Database schema changes
|
|
522
|
+
- Authentication/authorization changes
|
|
523
|
+
- Changes to shared libraries
|
|
524
|
+
- Performance-critical code
|
|
525
|
+
|
|
526
|
+
```bash
|
|
527
|
+
# Ask: Full PR process
|
|
528
|
+
git checkout -b feature/new-auth-flow
|
|
529
|
+
# Make changes
|
|
530
|
+
git push origin feature/new-auth-flow
|
|
531
|
+
|
|
532
|
+
# Create PR and request review
|
|
533
|
+
gh pr create --title "feat(auth): implement OAuth2 PKCE flow" \
|
|
534
|
+
--body "## What\nNew authentication flow\n\n## Why\nImproved security" \
|
|
535
|
+
--reviewer security-team,backend-team
|
|
536
|
+
```
|
|
537
|
+
|
|
538
|
+
### Decision Flowchart
|
|
539
|
+
|
|
540
|
+
```
|
|
541
|
+
┌────────────────────────────────────────┐
|
|
542
|
+
│ Is this change risky or complex? │
|
|
543
|
+
└────────────────────┬───────────────────┘
|
|
544
|
+
│
|
|
545
|
+
┌───────────┴───────────┐
|
|
546
|
+
▼ ▼
|
|
547
|
+
YES NO
|
|
548
|
+
│ │
|
|
549
|
+
▼ ▼
|
|
550
|
+
┌─────────────────┐ ┌────────────────────────┐
|
|
551
|
+
│ Does it need │ │ Should team be aware? │
|
|
552
|
+
│ discussion? │ └───────────┬────────────┘
|
|
553
|
+
└────────┬────────┘ │
|
|
554
|
+
│ ┌────────┴────────┐
|
|
555
|
+
┌────┴────┐ ▼ ▼
|
|
556
|
+
▼ ▼ YES NO
|
|
557
|
+
YES NO │ │
|
|
558
|
+
│ │ ▼ ▼
|
|
559
|
+
▼ ▼ ┌──────────┐ ┌──────────┐
|
|
560
|
+
┌───────┐ ┌───────┐ │ SHOW │ │ SHIP │
|
|
561
|
+
│ ASK │ │ ASK │ │ (notify) │ │ (direct) │
|
|
562
|
+
│(review)│ │(review)│ └──────────┘ └──────────┘
|
|
563
|
+
└───────┘ └───────┘
|
|
564
|
+
```
|
|
565
|
+
|
|
566
|
+
---
|
|
567
|
+
|
|
568
|
+
## Stacked PRs Workflow
|
|
569
|
+
|
|
570
|
+
### What Are Stacked PRs?
|
|
571
|
+
|
|
572
|
+
Stacked PRs break large features into smaller, dependent pull requests that can be reviewed incrementally:
|
|
573
|
+
|
|
574
|
+
```
|
|
575
|
+
┌─────────────────────────────────────────────────────────────────┐
|
|
576
|
+
│ Stacked PRs Structure │
|
|
577
|
+
├─────────────────────────────────────────────────────────────────┤
|
|
578
|
+
│ │
|
|
579
|
+
│ main ────●─────────────────────────────────────────► │
|
|
580
|
+
│ ╲ │
|
|
581
|
+
│ PR #1 (Database schema) ────● │
|
|
582
|
+
│ ╲ │
|
|
583
|
+
│ PR #2 (API) ────● │
|
|
584
|
+
│ ╲ │
|
|
585
|
+
│ PR #3 (UI) ●│
|
|
586
|
+
│ │
|
|
587
|
+
│ Review: PR #1 first, then #2, then #3 │
|
|
588
|
+
│ Merge: PR #1 → PR #2 → PR #3 │
|
|
589
|
+
└─────────────────────────────────────────────────────────────────┘
|
|
590
|
+
```
|
|
591
|
+
|
|
592
|
+
### When to Use Stacked PRs
|
|
593
|
+
|
|
594
|
+
| Scenario | Stacked PRs Recommended |
|
|
595
|
+
|----------|-------------------------|
|
|
596
|
+
| Feature > 500 lines | Yes |
|
|
597
|
+
| Multiple logical components | Yes |
|
|
598
|
+
| Need early feedback | Yes |
|
|
599
|
+
| Simple bug fix | No, use single PR |
|
|
600
|
+
| Independent changes | No, use parallel PRs |
|
|
601
|
+
|
|
602
|
+
### Creating Stacked PRs
|
|
603
|
+
|
|
604
|
+
**Step 1: Plan the Stack**
|
|
605
|
+
|
|
606
|
+
```
|
|
607
|
+
Feature: User Authentication
|
|
608
|
+
├── PR #1: Database schema for users table
|
|
609
|
+
├── PR #2: User service and repository
|
|
610
|
+
├── PR #3: REST API endpoints
|
|
611
|
+
└── PR #4: Frontend login form
|
|
612
|
+
```
|
|
613
|
+
|
|
614
|
+
**Step 2: Create Base Branch**
|
|
615
|
+
|
|
616
|
+
```bash
|
|
617
|
+
# Start from main
|
|
618
|
+
git checkout main
|
|
619
|
+
git pull origin main
|
|
620
|
+
|
|
621
|
+
# Create first PR branch
|
|
622
|
+
git checkout -b feature/auth-1-schema
|
|
623
|
+
# Make database changes
|
|
624
|
+
git add .
|
|
625
|
+
git commit -m "feat(db): add users table schema"
|
|
626
|
+
git push origin feature/auth-1-schema
|
|
627
|
+
```
|
|
628
|
+
|
|
629
|
+
**Step 3: Stack Next Branch**
|
|
630
|
+
|
|
631
|
+
```bash
|
|
632
|
+
# Branch from previous, NOT from main
|
|
633
|
+
git checkout -b feature/auth-2-service feature/auth-1-schema
|
|
634
|
+
# Make service changes
|
|
635
|
+
git add .
|
|
636
|
+
git commit -m "feat(auth): add user service"
|
|
637
|
+
git push origin feature/auth-2-service
|
|
638
|
+
```
|
|
639
|
+
|
|
640
|
+
**Step 4: Create Linked PRs**
|
|
641
|
+
|
|
642
|
+
```bash
|
|
643
|
+
# PR #1: Against main
|
|
644
|
+
gh pr create --base main --head feature/auth-1-schema \
|
|
645
|
+
--title "feat(db): add users table schema" \
|
|
646
|
+
--body "Part 1/4 of user authentication feature"
|
|
647
|
+
|
|
648
|
+
# PR #2: Against PR #1's branch
|
|
649
|
+
gh pr create --base feature/auth-1-schema --head feature/auth-2-service \
|
|
650
|
+
--title "feat(auth): add user service" \
|
|
651
|
+
--body "Part 2/4 - depends on #1"
|
|
652
|
+
```
|
|
653
|
+
|
|
654
|
+
### Handling Updates to Base PR
|
|
655
|
+
|
|
656
|
+
When PR #1 changes after PR #2 was created:
|
|
657
|
+
|
|
658
|
+
```bash
|
|
659
|
+
# Rebase PR #2 on updated PR #1
|
|
660
|
+
git checkout feature/auth-2-service
|
|
661
|
+
git fetch origin
|
|
662
|
+
git rebase origin/feature/auth-1-schema
|
|
663
|
+
git push --force-with-lease origin feature/auth-2-service
|
|
664
|
+
```
|
|
665
|
+
|
|
666
|
+
### Merging Stacked PRs
|
|
667
|
+
|
|
668
|
+
```bash
|
|
669
|
+
# Merge in order
|
|
670
|
+
# 1. Merge PR #1 to main (squash or merge commit)
|
|
671
|
+
gh pr merge 1 --squash
|
|
672
|
+
|
|
673
|
+
# 2. Update PR #2 base to main (GitHub auto-updates)
|
|
674
|
+
# 3. Merge PR #2 to main
|
|
675
|
+
gh pr merge 2 --squash
|
|
676
|
+
|
|
677
|
+
# Continue for remaining PRs...
|
|
678
|
+
```
|
|
679
|
+
|
|
680
|
+
### Tools for Stacked PRs
|
|
681
|
+
|
|
682
|
+
| Tool | Description |
|
|
683
|
+
|------|-------------|
|
|
684
|
+
| [Graphite](https://graphite.dev/) | Purpose-built for stacked PRs |
|
|
685
|
+
| [ghstack](https://github.com/ezyang/ghstack) | CLI for stacking PRs |
|
|
686
|
+
| [git-branchless](https://github.com/arxanas/git-branchless) | Advanced git workflows |
|
|
687
|
+
| Manual | Use git rebase and gh CLI |
|
|
688
|
+
|
|
689
|
+
---
|
|
690
|
+
|
|
691
|
+
## Conventional PR Titles Guide
|
|
692
|
+
|
|
693
|
+
### Format
|
|
694
|
+
|
|
695
|
+
PR titles should follow the same format as commit messages:
|
|
696
|
+
|
|
697
|
+
```
|
|
698
|
+
<type>(<scope>): <subject>
|
|
699
|
+
```
|
|
700
|
+
|
|
701
|
+
### Type Reference
|
|
702
|
+
|
|
703
|
+
| Type | Purpose | Example |
|
|
704
|
+
|------|---------|---------|
|
|
705
|
+
| `feat` | New feature | `feat(auth): add OAuth2 login` |
|
|
706
|
+
| `fix` | Bug fix | `fix(api): handle null response` |
|
|
707
|
+
| `docs` | Documentation | `docs(readme): update install steps` |
|
|
708
|
+
| `refactor` | Code refactoring | `refactor(utils): extract validation` |
|
|
709
|
+
| `test` | Adding tests | `test(auth): add login unit tests` |
|
|
710
|
+
| `chore` | Maintenance | `chore(deps): update lodash to 4.17.21` |
|
|
711
|
+
| `perf` | Performance | `perf(query): optimize user lookup` |
|
|
712
|
+
| `style` | Code style | `style(lint): fix eslint warnings` |
|
|
713
|
+
| `ci` | CI/CD changes | `ci(actions): add caching step` |
|
|
714
|
+
| `build` | Build system | `build(webpack): upgrade to v5` |
|
|
715
|
+
|
|
716
|
+
### Breaking Changes
|
|
717
|
+
|
|
718
|
+
Indicate breaking changes with `!` after type:
|
|
719
|
+
|
|
720
|
+
```
|
|
721
|
+
feat(api)!: change response format for users endpoint
|
|
722
|
+
```
|
|
723
|
+
|
|
724
|
+
### PR Title Best Practices
|
|
725
|
+
|
|
726
|
+
**Good Examples**:
|
|
727
|
+
```
|
|
728
|
+
feat(checkout): add Apple Pay support
|
|
729
|
+
fix(auth): prevent session fixation attack
|
|
730
|
+
refactor(orders): extract shipping calculator
|
|
731
|
+
docs(api): document rate limiting headers
|
|
732
|
+
chore(deps): update security patches
|
|
733
|
+
```
|
|
734
|
+
|
|
735
|
+
**Bad Examples**:
|
|
736
|
+
```
|
|
737
|
+
❌ Update code (too vague)
|
|
738
|
+
❌ fix bug (not descriptive)
|
|
739
|
+
❌ WIP: working on auth (WIP shouldn't be in title)
|
|
740
|
+
❌ JIRA-1234 (no description)
|
|
741
|
+
❌ Final fixes (meaningless)
|
|
742
|
+
```
|
|
743
|
+
|
|
744
|
+
### Automated Enforcement
|
|
745
|
+
|
|
746
|
+
Configure GitHub Actions to validate PR titles:
|
|
747
|
+
|
|
748
|
+
```yaml
|
|
749
|
+
# .github/workflows/pr-title.yml
|
|
750
|
+
name: PR Title Check
|
|
751
|
+
on:
|
|
752
|
+
pull_request:
|
|
753
|
+
types: [opened, edited, synchronize]
|
|
754
|
+
|
|
755
|
+
jobs:
|
|
756
|
+
validate:
|
|
757
|
+
runs-on: ubuntu-latest
|
|
758
|
+
steps:
|
|
759
|
+
- uses: amannn/action-semantic-pull-request@v5
|
|
760
|
+
env:
|
|
761
|
+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
762
|
+
with:
|
|
763
|
+
types: |
|
|
764
|
+
feat
|
|
765
|
+
fix
|
|
766
|
+
docs
|
|
767
|
+
refactor
|
|
768
|
+
test
|
|
769
|
+
chore
|
|
770
|
+
perf
|
|
771
|
+
style
|
|
772
|
+
ci
|
|
773
|
+
build
|
|
774
|
+
requireScope: false
|
|
775
|
+
subjectPattern: ^[A-Z].+$
|
|
776
|
+
subjectPatternError: |
|
|
777
|
+
Subject must start with uppercase letter
|
|
778
|
+
```
|
|
779
|
+
|
|
780
|
+
---
|
|
781
|
+
|
|
782
|
+
## Git Commands Reference
|
|
783
|
+
|
|
784
|
+
### Daily Operations
|
|
785
|
+
|
|
786
|
+
```bash
|
|
787
|
+
# Check status
|
|
788
|
+
git status
|
|
789
|
+
|
|
790
|
+
# View changes
|
|
791
|
+
git diff
|
|
792
|
+
git diff --staged
|
|
793
|
+
|
|
794
|
+
# Stage changes
|
|
795
|
+
git add file.js
|
|
796
|
+
git add .
|
|
797
|
+
|
|
798
|
+
# Commit
|
|
799
|
+
git commit -m "feat: add feature"
|
|
800
|
+
|
|
801
|
+
# Push
|
|
802
|
+
git push origin feature/my-feature
|
|
803
|
+
|
|
804
|
+
# Pull latest
|
|
805
|
+
git pull origin main
|
|
806
|
+
|
|
807
|
+
# View history
|
|
808
|
+
git log --oneline --graph --all
|
|
809
|
+
```
|
|
810
|
+
|
|
811
|
+
### Branch Operations
|
|
812
|
+
|
|
813
|
+
```bash
|
|
814
|
+
# List branches
|
|
815
|
+
git branch -a
|
|
816
|
+
|
|
817
|
+
# Create branch
|
|
818
|
+
git checkout -b feature/new-feature
|
|
819
|
+
|
|
820
|
+
# Switch branch
|
|
821
|
+
git checkout main
|
|
822
|
+
|
|
823
|
+
# Delete local branch
|
|
824
|
+
git branch -d feature/old-feature
|
|
825
|
+
|
|
826
|
+
# Delete remote branch
|
|
827
|
+
git push origin --delete feature/old-feature
|
|
828
|
+
|
|
829
|
+
# Rename branch
|
|
830
|
+
git branch -m old-name new-name
|
|
831
|
+
```
|
|
832
|
+
|
|
833
|
+
### Advanced Operations
|
|
834
|
+
|
|
835
|
+
```bash
|
|
836
|
+
# Stash changes
|
|
837
|
+
git stash
|
|
838
|
+
git stash pop
|
|
839
|
+
|
|
840
|
+
# Cherry-pick commit
|
|
841
|
+
git cherry-pick <commit-hash>
|
|
842
|
+
|
|
843
|
+
# Revert commit
|
|
844
|
+
git revert <commit-hash>
|
|
845
|
+
|
|
846
|
+
# Reset to previous commit (dangerous!)
|
|
847
|
+
git reset --hard <commit-hash>
|
|
848
|
+
|
|
849
|
+
# Amend last commit
|
|
850
|
+
git commit --amend
|
|
851
|
+
|
|
852
|
+
# Interactive rebase (clean up commits)
|
|
853
|
+
git rebase -i HEAD~3
|
|
854
|
+
```
|
|
855
|
+
|
|
856
|
+
---
|
|
857
|
+
|
|
858
|
+
## Troubleshooting Guide
|
|
859
|
+
|
|
860
|
+
### Accidentally Committed to Wrong Branch
|
|
861
|
+
|
|
862
|
+
```bash
|
|
863
|
+
# Undo last commit but keep changes
|
|
864
|
+
git reset --soft HEAD~1
|
|
865
|
+
|
|
866
|
+
# Switch to correct branch
|
|
867
|
+
git checkout correct-branch
|
|
868
|
+
|
|
869
|
+
# Commit changes
|
|
870
|
+
git add .
|
|
871
|
+
git commit -m "feat: add feature"
|
|
872
|
+
```
|
|
873
|
+
|
|
874
|
+
### Need to Update Branch from Main
|
|
875
|
+
|
|
876
|
+
```bash
|
|
877
|
+
# Option 1: Merge (preserves history)
|
|
878
|
+
git checkout feature/my-feature
|
|
879
|
+
git merge main
|
|
880
|
+
|
|
881
|
+
# Option 2: Rebase (cleaner history)
|
|
882
|
+
git checkout feature/my-feature
|
|
883
|
+
git rebase main
|
|
884
|
+
```
|
|
885
|
+
|
|
886
|
+
### Accidentally Force Pushed to Protected Branch
|
|
887
|
+
|
|
888
|
+
```bash
|
|
889
|
+
# ⚠️ Contact team immediately
|
|
890
|
+
# ⚠️ Check if branch protection was enabled
|
|
891
|
+
# ⚠️ Restore from reflog if needed:
|
|
892
|
+
git reflog
|
|
893
|
+
git reset --hard <previous-commit-hash>
|
|
894
|
+
```
|
|
895
|
+
|
|
896
|
+
---
|
|
897
|
+
|
|
898
|
+
## Project Configuration Template
|
|
899
|
+
|
|
900
|
+
Document your workflow in `CONTRIBUTING.md`:
|
|
901
|
+
|
|
902
|
+
```markdown
|
|
903
|
+
## Git Workflow
|
|
904
|
+
|
|
905
|
+
### Branching Strategy
|
|
906
|
+
This project uses **[GitFlow / GitHub Flow / Trunk-Based Development]**.
|
|
907
|
+
|
|
908
|
+
### Branch Types
|
|
909
|
+
- `main`: Production code
|
|
910
|
+
- `develop`: Development mainline (GitFlow only)
|
|
911
|
+
- `feature/*`: New features
|
|
912
|
+
- `fix/*`: Bug fixes
|
|
913
|
+
- `hotfix/*`: Urgent production fixes
|
|
914
|
+
|
|
915
|
+
### Branch Naming
|
|
916
|
+
Format: `<type>/<description>`
|
|
917
|
+
Example: `feature/oauth-login`, `fix/memory-leak`
|
|
918
|
+
|
|
919
|
+
### Merge Strategy
|
|
920
|
+
- Feature branches: **[Squash / Merge commit / Rebase]**
|
|
921
|
+
- Release branches: Merge commit (--no-ff)
|
|
922
|
+
- Hotfix branches: Merge commit (--no-ff)
|
|
923
|
+
|
|
924
|
+
### Protected Branches
|
|
925
|
+
- `main`: Requires 1 review, CI must pass
|
|
926
|
+
- `develop`: Requires 1 review (if using GitFlow)
|
|
927
|
+
|
|
928
|
+
### Pull Request Process
|
|
929
|
+
1. Create branch from `[main/develop]`
|
|
930
|
+
2. Make changes and push
|
|
931
|
+
3. Open PR with description
|
|
932
|
+
4. Wait for review approval
|
|
933
|
+
5. Ensure CI passes
|
|
934
|
+
6. Merge using **[strategy]**
|
|
935
|
+
```
|
|
936
|
+
|
|
937
|
+
---
|
|
938
|
+
|
|
939
|
+
## References
|
|
940
|
+
|
|
941
|
+
- [GitFlow Original Article](https://nvie.com/posts/a-successful-git-branching-model/)
|
|
942
|
+
- [GitHub Flow Guide](https://guides.github.com/introduction/flow/)
|
|
943
|
+
- [Trunk-Based Development](https://trunkbaseddevelopment.com/)
|
|
944
|
+
- [Semantic Versioning](https://semver.org/)
|
|
945
|
+
- [Ship/Show/Ask](https://martinfowler.com/articles/ship-show-ask.html) - Rouan Wilsenach's decision model for code changes
|
|
946
|
+
- [Feature Flags Best Practices](https://launchdarkly.com/blog/best-practices-feature-flags/) - LaunchDarkly's comprehensive guide
|
|
947
|
+
- [Stacked Diffs](https://graphite.dev/guides/stacked-diffs) - Graphite's guide to stacked PR workflow
|
|
948
|
+
- [Conventional Commits](https://www.conventionalcommits.org/) - Specification for commit messages
|
|
949
|
+
|
|
950
|
+
---
|
|
951
|
+
|
|
952
|
+
## License
|
|
953
|
+
|
|
954
|
+
This guide is released under [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/).
|