universal-dev-standards 3.5.1-beta.1 → 3.5.1-beta.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bin/uds.js +2 -0
- package/bundled/core/ai-instruction-standards.md +205 -0
- package/bundled/core/anti-hallucination.md +684 -0
- package/bundled/core/changelog-standards.md +556 -0
- package/bundled/core/checkin-standards.md +935 -0
- package/bundled/core/code-review-checklist.md +684 -0
- package/bundled/core/commit-message-guide.md +915 -0
- package/bundled/core/documentation-structure.md +1117 -0
- package/bundled/core/documentation-writing-standards.md +487 -0
- package/bundled/core/error-code-standards.md +382 -0
- package/bundled/core/git-workflow.md +859 -0
- package/bundled/core/logging-standards.md +323 -0
- package/bundled/core/project-structure.md +354 -0
- package/bundled/core/refactoring-standards.md +636 -0
- package/bundled/core/spec-driven-development.md +207 -0
- package/bundled/core/test-completeness-dimensions.md +536 -0
- package/bundled/core/test-driven-development.md +995 -0
- package/bundled/core/testing-standards.md +3061 -0
- package/bundled/core/versioning.md +902 -0
- package/bundled/locales/README.md +88 -0
- package/bundled/locales/zh-CN/CHANGELOG.md +705 -0
- package/bundled/locales/zh-CN/CLAUDE.md +213 -0
- package/bundled/locales/zh-CN/MAINTENANCE.md +689 -0
- package/bundled/locales/zh-CN/README.md +707 -0
- package/bundled/locales/zh-CN/STANDARDS-MAPPING.md +177 -0
- package/bundled/locales/zh-CN/adoption/ADOPTION-GUIDE.md +392 -0
- package/bundled/locales/zh-CN/adoption/STATIC-DYNAMIC-GUIDE.md +302 -0
- package/bundled/locales/zh-CN/adoption/checklists/enterprise.md +332 -0
- package/bundled/locales/zh-CN/adoption/checklists/minimal.md +141 -0
- package/bundled/locales/zh-CN/adoption/checklists/recommended.md +272 -0
- package/bundled/locales/zh-CN/ai/MAINTENANCE.md +739 -0
- package/bundled/locales/zh-CN/ai/options/changelog/auto-generated.ai.yaml +76 -0
- package/bundled/locales/zh-CN/ai/options/changelog/keep-a-changelog.ai.yaml +99 -0
- package/bundled/locales/zh-CN/ai/options/code-review/automated-review.ai.yaml +120 -0
- package/bundled/locales/zh-CN/ai/options/code-review/pair-programming.ai.yaml +109 -0
- package/bundled/locales/zh-CN/ai/options/code-review/pr-review.ai.yaml +104 -0
- package/bundled/locales/zh-CN/ai/options/commit-message/bilingual.ai.yaml +105 -0
- package/bundled/locales/zh-CN/ai/options/commit-message/english.ai.yaml +79 -0
- package/bundled/locales/zh-CN/ai/options/commit-message/traditional-chinese.ai.yaml +100 -0
- package/bundled/locales/zh-CN/ai/options/documentation/api-docs.ai.yaml +140 -0
- package/bundled/locales/zh-CN/ai/options/documentation/markdown-docs.ai.yaml +89 -0
- package/bundled/locales/zh-CN/ai/options/documentation/wiki-style.ai.yaml +119 -0
- package/bundled/locales/zh-CN/ai/options/git-workflow/gitflow.ai.yaml +133 -0
- package/bundled/locales/zh-CN/ai/options/git-workflow/github-flow.ai.yaml +73 -0
- package/bundled/locales/zh-CN/ai/options/git-workflow/merge-commit.ai.yaml +88 -0
- package/bundled/locales/zh-CN/ai/options/git-workflow/rebase-ff.ai.yaml +113 -0
- package/bundled/locales/zh-CN/ai/options/git-workflow/squash-merge.ai.yaml +85 -0
- package/bundled/locales/zh-CN/ai/options/git-workflow/trunk-based.ai.yaml +117 -0
- package/bundled/locales/zh-CN/ai/options/project-structure/dotnet.ai.yaml +108 -0
- package/bundled/locales/zh-CN/ai/options/project-structure/go.ai.yaml +115 -0
- package/bundled/locales/zh-CN/ai/options/project-structure/java.ai.yaml +113 -0
- package/bundled/locales/zh-CN/ai/options/project-structure/kotlin.ai.yaml +123 -0
- package/bundled/locales/zh-CN/ai/options/project-structure/nodejs.ai.yaml +101 -0
- package/bundled/locales/zh-CN/ai/options/project-structure/php.ai.yaml +147 -0
- package/bundled/locales/zh-CN/ai/options/project-structure/python.ai.yaml +116 -0
- package/bundled/locales/zh-CN/ai/options/project-structure/ruby.ai.yaml +140 -0
- package/bundled/locales/zh-CN/ai/options/project-structure/rust.ai.yaml +117 -0
- package/bundled/locales/zh-CN/ai/options/project-structure/swift.ai.yaml +143 -0
- package/bundled/locales/zh-CN/ai/options/testing/contract-testing.ai.yaml +254 -0
- package/bundled/locales/zh-CN/ai/options/testing/e2e-testing.ai.yaml +116 -0
- package/bundled/locales/zh-CN/ai/options/testing/industry-pyramid.ai.yaml +144 -0
- package/bundled/locales/zh-CN/ai/options/testing/integration-testing.ai.yaml +90 -0
- package/bundled/locales/zh-CN/ai/options/testing/istqb-framework.ai.yaml +108 -0
- package/bundled/locales/zh-CN/ai/options/testing/performance-testing.ai.yaml +272 -0
- package/bundled/locales/zh-CN/ai/options/testing/security-testing.ai.yaml +160 -0
- package/bundled/locales/zh-CN/ai/options/testing/system-testing.ai.yaml +101 -0
- package/bundled/locales/zh-CN/ai/options/testing/unit-testing.ai.yaml +82 -0
- package/bundled/locales/zh-CN/ai/standards/anti-hallucination.ai.yaml +145 -0
- package/bundled/locales/zh-CN/ai/standards/changelog.ai.yaml +146 -0
- package/bundled/locales/zh-CN/ai/standards/checkin-standards.ai.yaml +170 -0
- package/bundled/locales/zh-CN/ai/standards/code-review.ai.yaml +148 -0
- package/bundled/locales/zh-CN/ai/standards/commit-message.ai.yaml +175 -0
- package/bundled/locales/zh-CN/ai/standards/documentation-structure.ai.yaml +124 -0
- package/bundled/locales/zh-CN/ai/standards/documentation-writing-standards.ai.yaml +190 -0
- package/bundled/locales/zh-CN/ai/standards/error-codes.ai.yaml +139 -0
- package/bundled/locales/zh-CN/ai/standards/git-workflow.ai.yaml +95 -0
- package/bundled/locales/zh-CN/ai/standards/logging.ai.yaml +128 -0
- package/bundled/locales/zh-CN/ai/standards/project-structure.ai.yaml +134 -0
- package/bundled/locales/zh-CN/ai/standards/spec-driven-development.ai.yaml +169 -0
- package/bundled/locales/zh-CN/ai/standards/test-completeness-dimensions.ai.yaml +220 -0
- package/bundled/locales/zh-CN/ai/standards/testing.ai.yaml +137 -0
- package/bundled/locales/zh-CN/ai/standards/versioning.ai.yaml +211 -0
- package/bundled/locales/zh-CN/core/ai-instruction-standards.md +213 -0
- package/bundled/locales/zh-CN/core/anti-hallucination.md +691 -0
- package/bundled/locales/zh-CN/core/changelog-standards.md +147 -0
- package/bundled/locales/zh-CN/core/checkin-standards.md +943 -0
- package/bundled/locales/zh-CN/core/code-review-guide.md +693 -0
- package/bundled/locales/zh-CN/core/commit-message-guide.md +129 -0
- package/bundled/locales/zh-CN/core/documentation-structure.md +173 -0
- package/bundled/locales/zh-CN/core/documentation-writing-standards.md +495 -0
- package/bundled/locales/zh-CN/core/error-code-standards.md +180 -0
- package/bundled/locales/zh-CN/core/git-workflow.md +193 -0
- package/bundled/locales/zh-CN/core/logging-standards.md +174 -0
- package/bundled/locales/zh-CN/core/project-structure.md +184 -0
- package/bundled/locales/zh-CN/core/refactoring-standards.md +642 -0
- package/bundled/locales/zh-CN/core/spec-driven-development.md +215 -0
- package/bundled/locales/zh-CN/core/test-completeness-dimensions.md +544 -0
- package/bundled/locales/zh-CN/core/test-driven-development.md +1002 -0
- package/bundled/locales/zh-CN/core/testing-standards.md +170 -0
- package/bundled/locales/zh-CN/core/versioning.md +177 -0
- package/bundled/locales/zh-CN/docs/AI-AGENT-ROADMAP.md +303 -0
- package/bundled/locales/zh-CN/docs/CLI-INIT-OPTIONS.md +990 -0
- package/bundled/locales/zh-CN/docs/OPERATION-WORKFLOW.md +1064 -0
- package/bundled/locales/zh-CN/docs/USAGE-MODES-COMPARISON.md +333 -0
- package/bundled/locales/zh-CN/docs/WINDOWS-GUIDE.md +215 -0
- package/bundled/locales/zh-CN/integrations/codex/AGENTS.md +115 -0
- package/bundled/locales/zh-CN/integrations/codex/README.md +67 -0
- package/bundled/locales/zh-CN/integrations/gemini-cli/GEMINI.md +102 -0
- package/bundled/locales/zh-CN/integrations/gemini-cli/README.md +140 -0
- package/bundled/locales/zh-CN/integrations/github-copilot/COPILOT-CHAT-REFERENCE.md +269 -0
- package/bundled/locales/zh-CN/integrations/github-copilot/README.md +167 -0
- package/bundled/locales/zh-CN/integrations/github-copilot/copilot-instructions.md +263 -0
- package/bundled/locales/zh-CN/integrations/github-copilot/skills-mapping.md +192 -0
- package/bundled/locales/zh-CN/integrations/google-antigravity/INSTRUCTIONS.md +61 -0
- package/bundled/locales/zh-CN/integrations/google-antigravity/README.md +84 -0
- package/bundled/locales/zh-CN/integrations/opencode/AGENTS.md +111 -0
- package/bundled/locales/zh-CN/integrations/opencode/README.md +176 -0
- package/bundled/locales/zh-CN/integrations/opencode/skills-mapping.md +396 -0
- package/bundled/locales/zh-CN/integrations/openspec/AGENTS.md +301 -0
- package/bundled/locales/zh-CN/integrations/openspec/README.md +43 -0
- package/bundled/locales/zh-CN/integrations/spec-kit/AGENTS.md +184 -0
- package/bundled/locales/zh-CN/integrations/spec-kit/README.md +43 -0
- package/bundled/locales/zh-CN/options/commit-message/bilingual.md +161 -0
- package/bundled/locales/zh-CN/options/commit-message/english.md +137 -0
- package/bundled/locales/zh-CN/options/commit-message/traditional-chinese.md +162 -0
- package/bundled/locales/zh-CN/options/git-workflow/gitflow.md +147 -0
- package/bundled/locales/zh-CN/options/git-workflow/github-flow.md +124 -0
- package/bundled/locales/zh-CN/options/git-workflow/merge-commit.md +124 -0
- package/bundled/locales/zh-CN/options/git-workflow/rebase-ff.md +160 -0
- package/bundled/locales/zh-CN/options/git-workflow/squash-merge.md +117 -0
- package/bundled/locales/zh-CN/options/git-workflow/trunk-based.md +125 -0
- package/bundled/locales/zh-CN/options/project-structure/dotnet.md +183 -0
- package/bundled/locales/zh-CN/options/project-structure/go.md +226 -0
- package/bundled/locales/zh-CN/options/project-structure/java.md +213 -0
- package/bundled/locales/zh-CN/options/project-structure/nodejs.md +185 -0
- package/bundled/locales/zh-CN/options/project-structure/python.md +229 -0
- package/bundled/locales/zh-CN/options/testing/e2e-testing.md +207 -0
- package/bundled/locales/zh-CN/options/testing/integration-testing.md +230 -0
- package/bundled/locales/zh-CN/options/testing/system-testing.md +183 -0
- package/bundled/locales/zh-CN/options/testing/unit-testing.md +165 -0
- package/bundled/locales/zh-CN/skills/INTEGRATION-GUIDE.md +218 -0
- package/bundled/locales/zh-CN/skills/README.md +134 -0
- package/bundled/locales/zh-CN/skills/_shared/README.md +68 -0
- package/bundled/locales/zh-CN/skills/claude-code/CONTRIBUTING.template.md +151 -0
- package/bundled/locales/zh-CN/skills/claude-code/README.md +174 -0
- package/bundled/locales/zh-CN/skills/claude-code/ai-collaboration-standards/SKILL.md +175 -0
- package/bundled/locales/zh-CN/skills/claude-code/ai-collaboration-standards/anti-hallucination.md +223 -0
- package/bundled/locales/zh-CN/skills/claude-code/ai-collaboration-standards/certainty-labels.md +132 -0
- package/bundled/locales/zh-CN/skills/claude-code/changelog-guide/SKILL.md +237 -0
- package/bundled/locales/zh-CN/skills/claude-code/checkin-assistant/SKILL.md +407 -0
- package/bundled/locales/zh-CN/skills/claude-code/code-review-assistant/SKILL.md +154 -0
- package/bundled/locales/zh-CN/skills/claude-code/code-review-assistant/checkin-checklist.md +257 -0
- package/bundled/locales/zh-CN/skills/claude-code/code-review-assistant/review-checklist.md +246 -0
- package/bundled/locales/zh-CN/skills/claude-code/commands/bdd.md +142 -0
- package/bundled/locales/zh-CN/skills/claude-code/commands/methodology.md +274 -0
- package/bundled/locales/zh-CN/skills/claude-code/commit-standards/SKILL.md +191 -0
- package/bundled/locales/zh-CN/skills/claude-code/commit-standards/conventional-commits.md +264 -0
- package/bundled/locales/zh-CN/skills/claude-code/commit-standards/language-options.md +172 -0
- package/bundled/locales/zh-CN/skills/claude-code/documentation-guide/SKILL.md +421 -0
- package/bundled/locales/zh-CN/skills/claude-code/documentation-guide/documentation-structure.md +357 -0
- package/bundled/locales/zh-CN/skills/claude-code/documentation-guide/readme-template.md +412 -0
- package/bundled/locales/zh-CN/skills/claude-code/error-code-guide/SKILL.md +269 -0
- package/bundled/locales/zh-CN/skills/claude-code/git-workflow-guide/SKILL.md +218 -0
- package/bundled/locales/zh-CN/skills/claude-code/git-workflow-guide/branch-naming.md +220 -0
- package/bundled/locales/zh-CN/skills/claude-code/git-workflow-guide/git-workflow.md +321 -0
- package/bundled/locales/zh-CN/skills/claude-code/logging-guide/SKILL.md +285 -0
- package/bundled/locales/zh-CN/skills/claude-code/methodology-system/SKILL.md +131 -0
- package/bundled/locales/zh-CN/skills/claude-code/methodology-system/create-methodology.md +350 -0
- package/bundled/locales/zh-CN/skills/claude-code/methodology-system/runtime.md +279 -0
- package/bundled/locales/zh-CN/skills/claude-code/project-structure-guide/SKILL.md +143 -0
- package/bundled/locales/zh-CN/skills/claude-code/project-structure-guide/language-patterns.md +271 -0
- package/bundled/locales/zh-CN/skills/claude-code/refactoring-assistant/SKILL.md +162 -0
- package/bundled/locales/zh-CN/skills/claude-code/release-standards/SKILL.md +191 -0
- package/bundled/locales/zh-CN/skills/claude-code/release-standards/changelog-format.md +247 -0
- package/bundled/locales/zh-CN/skills/claude-code/release-standards/release-workflow.md +345 -0
- package/bundled/locales/zh-CN/skills/claude-code/release-standards/semantic-versioning.md +250 -0
- package/bundled/locales/zh-CN/skills/claude-code/requirement-assistant/SKILL.md +227 -0
- package/bundled/locales/zh-CN/skills/claude-code/requirement-assistant/requirement-checklist.md +325 -0
- package/bundled/locales/zh-CN/skills/claude-code/requirement-assistant/requirement-writing.md +399 -0
- package/bundled/locales/zh-CN/skills/claude-code/spec-driven-dev/SKILL.md +243 -0
- package/bundled/locales/zh-CN/skills/claude-code/tdd-assistant/SKILL.md +332 -0
- package/bundled/locales/zh-CN/skills/claude-code/tdd-assistant/language-examples.md +639 -0
- package/bundled/locales/zh-CN/skills/claude-code/tdd-assistant/tdd-workflow.md +486 -0
- package/bundled/locales/zh-CN/skills/claude-code/test-coverage-assistant/SKILL.md +282 -0
- package/bundled/locales/zh-CN/skills/claude-code/testing-guide/SKILL.md +234 -0
- package/bundled/locales/zh-CN/skills/claude-code/testing-guide/testing-pyramid.md +448 -0
- package/bundled/locales/zh-CN/skills/cline/README.md +58 -0
- package/bundled/locales/zh-CN/skills/copilot/README.md +61 -0
- package/bundled/locales/zh-CN/skills/copilot/copilot-instructions.md +79 -0
- package/bundled/locales/zh-CN/skills/cursor/README.md +58 -0
- package/bundled/locales/zh-CN/skills/windsurf/README.md +59 -0
- package/bundled/locales/zh-TW/CHANGELOG.md +707 -0
- package/bundled/locales/zh-TW/CLAUDE.md +213 -0
- package/bundled/locales/zh-TW/MAINTENANCE.md +683 -0
- package/bundled/locales/zh-TW/README.md +687 -0
- package/bundled/locales/zh-TW/STANDARDS-MAPPING.md +177 -0
- package/bundled/locales/zh-TW/adoption/ADOPTION-GUIDE.md +392 -0
- package/bundled/locales/zh-TW/adoption/STATIC-DYNAMIC-GUIDE.md +299 -0
- package/bundled/locales/zh-TW/adoption/checklists/enterprise.md +332 -0
- package/bundled/locales/zh-TW/adoption/checklists/minimal.md +141 -0
- package/bundled/locales/zh-TW/adoption/checklists/recommended.md +272 -0
- package/bundled/locales/zh-TW/ai/MAINTENANCE.md +754 -0
- package/bundled/locales/zh-TW/ai/options/changelog/auto-generated.ai.yaml +76 -0
- package/bundled/locales/zh-TW/ai/options/changelog/keep-a-changelog.ai.yaml +99 -0
- package/bundled/locales/zh-TW/ai/options/code-review/automated-review.ai.yaml +120 -0
- package/bundled/locales/zh-TW/ai/options/code-review/pair-programming.ai.yaml +109 -0
- package/bundled/locales/zh-TW/ai/options/code-review/pr-review.ai.yaml +104 -0
- package/bundled/locales/zh-TW/ai/options/commit-message/bilingual.ai.yaml +105 -0
- package/bundled/locales/zh-TW/ai/options/commit-message/english.ai.yaml +79 -0
- package/bundled/locales/zh-TW/ai/options/commit-message/traditional-chinese.ai.yaml +100 -0
- package/bundled/locales/zh-TW/ai/options/documentation/api-docs.ai.yaml +140 -0
- package/bundled/locales/zh-TW/ai/options/documentation/markdown-docs.ai.yaml +89 -0
- package/bundled/locales/zh-TW/ai/options/documentation/wiki-style.ai.yaml +119 -0
- package/bundled/locales/zh-TW/ai/options/git-workflow/gitflow.ai.yaml +133 -0
- package/bundled/locales/zh-TW/ai/options/git-workflow/github-flow.ai.yaml +73 -0
- package/bundled/locales/zh-TW/ai/options/git-workflow/merge-commit.ai.yaml +88 -0
- package/bundled/locales/zh-TW/ai/options/git-workflow/rebase-ff.ai.yaml +113 -0
- package/bundled/locales/zh-TW/ai/options/git-workflow/squash-merge.ai.yaml +85 -0
- package/bundled/locales/zh-TW/ai/options/git-workflow/trunk-based.ai.yaml +117 -0
- package/bundled/locales/zh-TW/ai/options/project-structure/dotnet.ai.yaml +108 -0
- package/bundled/locales/zh-TW/ai/options/project-structure/go.ai.yaml +115 -0
- package/bundled/locales/zh-TW/ai/options/project-structure/java.ai.yaml +113 -0
- package/bundled/locales/zh-TW/ai/options/project-structure/kotlin.ai.yaml +123 -0
- package/bundled/locales/zh-TW/ai/options/project-structure/nodejs.ai.yaml +101 -0
- package/bundled/locales/zh-TW/ai/options/project-structure/php.ai.yaml +147 -0
- package/bundled/locales/zh-TW/ai/options/project-structure/python.ai.yaml +116 -0
- package/bundled/locales/zh-TW/ai/options/project-structure/ruby.ai.yaml +140 -0
- package/bundled/locales/zh-TW/ai/options/project-structure/rust.ai.yaml +117 -0
- package/bundled/locales/zh-TW/ai/options/project-structure/swift.ai.yaml +143 -0
- package/bundled/locales/zh-TW/ai/options/testing/contract-testing.ai.yaml +254 -0
- package/bundled/locales/zh-TW/ai/options/testing/e2e-testing.ai.yaml +116 -0
- package/bundled/locales/zh-TW/ai/options/testing/industry-pyramid.ai.yaml +144 -0
- package/bundled/locales/zh-TW/ai/options/testing/integration-testing.ai.yaml +90 -0
- package/bundled/locales/zh-TW/ai/options/testing/istqb-framework.ai.yaml +108 -0
- package/bundled/locales/zh-TW/ai/options/testing/performance-testing.ai.yaml +272 -0
- package/bundled/locales/zh-TW/ai/options/testing/security-testing.ai.yaml +160 -0
- package/bundled/locales/zh-TW/ai/options/testing/system-testing.ai.yaml +101 -0
- package/bundled/locales/zh-TW/ai/options/testing/unit-testing.ai.yaml +82 -0
- package/bundled/locales/zh-TW/ai/standards/anti-hallucination.ai.yaml +145 -0
- package/bundled/locales/zh-TW/ai/standards/changelog.ai.yaml +146 -0
- package/bundled/locales/zh-TW/ai/standards/checkin-standards.ai.yaml +170 -0
- package/bundled/locales/zh-TW/ai/standards/code-review.ai.yaml +148 -0
- package/bundled/locales/zh-TW/ai/standards/commit-message.ai.yaml +175 -0
- package/bundled/locales/zh-TW/ai/standards/documentation-structure.ai.yaml +124 -0
- package/bundled/locales/zh-TW/ai/standards/documentation-writing-standards.ai.yaml +190 -0
- package/bundled/locales/zh-TW/ai/standards/error-codes.ai.yaml +139 -0
- package/bundled/locales/zh-TW/ai/standards/git-workflow.ai.yaml +95 -0
- package/bundled/locales/zh-TW/ai/standards/logging.ai.yaml +128 -0
- package/bundled/locales/zh-TW/ai/standards/project-structure.ai.yaml +134 -0
- package/bundled/locales/zh-TW/ai/standards/spec-driven-development.ai.yaml +169 -0
- package/bundled/locales/zh-TW/ai/standards/test-completeness-dimensions.ai.yaml +220 -0
- package/bundled/locales/zh-TW/ai/standards/testing.ai.yaml +137 -0
- package/bundled/locales/zh-TW/ai/standards/versioning.ai.yaml +211 -0
- package/bundled/locales/zh-TW/core/ai-instruction-standards.md +213 -0
- package/bundled/locales/zh-TW/core/anti-hallucination.md +691 -0
- package/bundled/locales/zh-TW/core/changelog-standards.md +564 -0
- package/bundled/locales/zh-TW/core/checkin-standards.md +943 -0
- package/bundled/locales/zh-TW/core/code-review-checklist.md +693 -0
- package/bundled/locales/zh-TW/core/commit-message-guide.md +809 -0
- package/bundled/locales/zh-TW/core/documentation-structure.md +1125 -0
- package/bundled/locales/zh-TW/core/documentation-writing-standards.md +495 -0
- package/bundled/locales/zh-TW/core/error-code-standards.md +384 -0
- package/bundled/locales/zh-TW/core/git-workflow.md +860 -0
- package/bundled/locales/zh-TW/core/logging-standards.md +325 -0
- package/bundled/locales/zh-TW/core/project-structure.md +362 -0
- package/bundled/locales/zh-TW/core/refactoring-standards.md +642 -0
- package/bundled/locales/zh-TW/core/spec-driven-development.md +215 -0
- package/bundled/locales/zh-TW/core/test-completeness-dimensions.md +544 -0
- package/bundled/locales/zh-TW/core/test-driven-development.md +1004 -0
- package/bundled/locales/zh-TW/core/testing-standards.md +2158 -0
- package/bundled/locales/zh-TW/core/versioning.md +909 -0
- package/bundled/locales/zh-TW/docs/AI-AGENT-ROADMAP.md +303 -0
- package/bundled/locales/zh-TW/docs/CLI-INIT-OPTIONS.md +990 -0
- package/bundled/locales/zh-TW/docs/OPERATION-WORKFLOW.md +1064 -0
- package/bundled/locales/zh-TW/docs/USAGE-MODES-COMPARISON.md +333 -0
- package/bundled/locales/zh-TW/docs/WINDOWS-GUIDE.md +215 -0
- package/bundled/locales/zh-TW/integrations/codex/AGENTS.md +115 -0
- package/bundled/locales/zh-TW/integrations/codex/README.md +113 -0
- package/bundled/locales/zh-TW/integrations/gemini-cli/GEMINI.md +102 -0
- package/bundled/locales/zh-TW/integrations/gemini-cli/README.md +140 -0
- package/bundled/locales/zh-TW/integrations/github-copilot/COPILOT-CHAT-REFERENCE.md +269 -0
- package/bundled/locales/zh-TW/integrations/github-copilot/README.md +167 -0
- package/bundled/locales/zh-TW/integrations/github-copilot/copilot-instructions.md +263 -0
- package/bundled/locales/zh-TW/integrations/github-copilot/skills-mapping.md +192 -0
- package/bundled/locales/zh-TW/integrations/google-antigravity/INSTRUCTIONS.md +61 -0
- package/bundled/locales/zh-TW/integrations/google-antigravity/README.md +84 -0
- package/bundled/locales/zh-TW/integrations/opencode/AGENTS.md +111 -0
- package/bundled/locales/zh-TW/integrations/opencode/README.md +176 -0
- package/bundled/locales/zh-TW/integrations/opencode/skills-mapping.md +396 -0
- package/bundled/locales/zh-TW/integrations/openspec/AGENTS.md +301 -0
- package/bundled/locales/zh-TW/integrations/openspec/README.md +43 -0
- package/bundled/locales/zh-TW/integrations/spec-kit/AGENTS.md +184 -0
- package/bundled/locales/zh-TW/integrations/spec-kit/README.md +43 -0
- package/bundled/locales/zh-TW/options/commit-message/bilingual.md +161 -0
- package/bundled/locales/zh-TW/options/commit-message/english.md +137 -0
- package/bundled/locales/zh-TW/options/commit-message/traditional-chinese.md +162 -0
- package/bundled/locales/zh-TW/options/git-workflow/gitflow.md +147 -0
- package/bundled/locales/zh-TW/options/git-workflow/github-flow.md +124 -0
- package/bundled/locales/zh-TW/options/git-workflow/merge-commit.md +124 -0
- package/bundled/locales/zh-TW/options/git-workflow/rebase-ff.md +160 -0
- package/bundled/locales/zh-TW/options/git-workflow/squash-merge.md +117 -0
- package/bundled/locales/zh-TW/options/git-workflow/trunk-based.md +125 -0
- package/bundled/locales/zh-TW/options/project-structure/dotnet.md +183 -0
- package/bundled/locales/zh-TW/options/project-structure/go.md +226 -0
- package/bundled/locales/zh-TW/options/project-structure/java.md +213 -0
- package/bundled/locales/zh-TW/options/project-structure/nodejs.md +185 -0
- package/bundled/locales/zh-TW/options/project-structure/python.md +229 -0
- package/bundled/locales/zh-TW/options/testing/e2e-testing.md +207 -0
- package/bundled/locales/zh-TW/options/testing/integration-testing.md +230 -0
- package/bundled/locales/zh-TW/options/testing/system-testing.md +183 -0
- package/bundled/locales/zh-TW/options/testing/unit-testing.md +165 -0
- package/bundled/locales/zh-TW/skills/INTEGRATION-GUIDE.md +218 -0
- package/bundled/locales/zh-TW/skills/README.md +132 -0
- package/bundled/locales/zh-TW/skills/_shared/README.md +68 -0
- package/bundled/locales/zh-TW/skills/claude-code/CONTRIBUTING.template.md +151 -0
- package/bundled/locales/zh-TW/skills/claude-code/README.md +174 -0
- package/bundled/locales/zh-TW/skills/claude-code/ai-collaboration-standards/SKILL.md +175 -0
- package/bundled/locales/zh-TW/skills/claude-code/ai-collaboration-standards/anti-hallucination.md +223 -0
- package/bundled/locales/zh-TW/skills/claude-code/ai-collaboration-standards/certainty-labels.md +132 -0
- package/bundled/locales/zh-TW/skills/claude-code/changelog-guide/SKILL.md +237 -0
- package/bundled/locales/zh-TW/skills/claude-code/checkin-assistant/SKILL.md +407 -0
- package/bundled/locales/zh-TW/skills/claude-code/code-review-assistant/SKILL.md +154 -0
- package/bundled/locales/zh-TW/skills/claude-code/code-review-assistant/checkin-checklist.md +257 -0
- package/bundled/locales/zh-TW/skills/claude-code/code-review-assistant/review-checklist.md +246 -0
- package/bundled/locales/zh-TW/skills/claude-code/commands/bdd.md +142 -0
- package/bundled/locales/zh-TW/skills/claude-code/commands/methodology.md +274 -0
- package/bundled/locales/zh-TW/skills/claude-code/commit-standards/SKILL.md +191 -0
- package/bundled/locales/zh-TW/skills/claude-code/commit-standards/conventional-commits.md +264 -0
- package/bundled/locales/zh-TW/skills/claude-code/commit-standards/language-options.md +172 -0
- package/bundled/locales/zh-TW/skills/claude-code/documentation-guide/SKILL.md +421 -0
- package/bundled/locales/zh-TW/skills/claude-code/documentation-guide/documentation-structure.md +357 -0
- package/bundled/locales/zh-TW/skills/claude-code/documentation-guide/readme-template.md +412 -0
- package/bundled/locales/zh-TW/skills/claude-code/error-code-guide/SKILL.md +269 -0
- package/bundled/locales/zh-TW/skills/claude-code/git-workflow-guide/SKILL.md +218 -0
- package/bundled/locales/zh-TW/skills/claude-code/git-workflow-guide/branch-naming.md +220 -0
- package/bundled/locales/zh-TW/skills/claude-code/git-workflow-guide/git-workflow.md +321 -0
- package/bundled/locales/zh-TW/skills/claude-code/logging-guide/SKILL.md +285 -0
- package/bundled/locales/zh-TW/skills/claude-code/methodology-system/SKILL.md +131 -0
- package/bundled/locales/zh-TW/skills/claude-code/methodology-system/create-methodology.md +350 -0
- package/bundled/locales/zh-TW/skills/claude-code/methodology-system/runtime.md +279 -0
- package/bundled/locales/zh-TW/skills/claude-code/project-structure-guide/SKILL.md +143 -0
- package/bundled/locales/zh-TW/skills/claude-code/project-structure-guide/language-patterns.md +271 -0
- package/bundled/locales/zh-TW/skills/claude-code/refactoring-assistant/SKILL.md +162 -0
- package/bundled/locales/zh-TW/skills/claude-code/release-standards/SKILL.md +191 -0
- package/bundled/locales/zh-TW/skills/claude-code/release-standards/changelog-format.md +247 -0
- package/bundled/locales/zh-TW/skills/claude-code/release-standards/release-workflow.md +345 -0
- package/bundled/locales/zh-TW/skills/claude-code/release-standards/semantic-versioning.md +250 -0
- package/bundled/locales/zh-TW/skills/claude-code/requirement-assistant/SKILL.md +227 -0
- package/bundled/locales/zh-TW/skills/claude-code/requirement-assistant/requirement-checklist.md +325 -0
- package/bundled/locales/zh-TW/skills/claude-code/requirement-assistant/requirement-writing.md +399 -0
- package/bundled/locales/zh-TW/skills/claude-code/spec-driven-dev/SKILL.md +243 -0
- package/bundled/locales/zh-TW/skills/claude-code/tdd-assistant/SKILL.md +332 -0
- package/bundled/locales/zh-TW/skills/claude-code/tdd-assistant/language-examples.md +639 -0
- package/bundled/locales/zh-TW/skills/claude-code/tdd-assistant/tdd-workflow.md +486 -0
- package/bundled/locales/zh-TW/skills/claude-code/test-coverage-assistant/SKILL.md +282 -0
- package/bundled/locales/zh-TW/skills/claude-code/testing-guide/SKILL.md +234 -0
- package/bundled/locales/zh-TW/skills/claude-code/testing-guide/testing-pyramid.md +448 -0
- package/bundled/locales/zh-TW/skills/cline/README.md +58 -0
- package/bundled/locales/zh-TW/skills/copilot/README.md +61 -0
- package/bundled/locales/zh-TW/skills/copilot/copilot-instructions.md +79 -0
- package/bundled/locales/zh-TW/skills/cursor/README.md +58 -0
- package/bundled/locales/zh-TW/skills/windsurf/README.md +59 -0
- package/bundled/skills/claude-code/CONTRIBUTING.template.md +141 -0
- package/bundled/skills/claude-code/README.md +196 -0
- package/bundled/skills/claude-code/ai/standards/checkin.ai.yaml +21 -0
- package/bundled/skills/claude-code/ai/standards/commit.ai.yaml +20 -0
- package/bundled/skills/claude-code/ai/standards/refactoring.ai.yaml +34 -0
- package/bundled/skills/claude-code/ai/standards/testing.ai.yaml +41 -0
- package/bundled/skills/claude-code/ai-collaboration-standards/SKILL.md +175 -0
- package/bundled/skills/claude-code/ai-collaboration-standards/anti-hallucination.md +215 -0
- package/bundled/skills/claude-code/ai-collaboration-standards/certainty-labels.md +124 -0
- package/bundled/skills/claude-code/changelog-guide/SKILL.md +232 -0
- package/bundled/skills/claude-code/checkin-assistant/SKILL.md +402 -0
- package/bundled/skills/claude-code/code-review-assistant/SKILL.md +220 -0
- package/bundled/skills/claude-code/code-review-assistant/checkin-checklist.md +249 -0
- package/bundled/skills/claude-code/code-review-assistant/review-checklist.md +238 -0
- package/bundled/skills/claude-code/commands/README.md +78 -0
- package/bundled/skills/claude-code/commands/bdd.md +142 -0
- package/bundled/skills/claude-code/commands/changelog.md +57 -0
- package/bundled/skills/claude-code/commands/check.md +91 -0
- package/bundled/skills/claude-code/commands/commit.md +48 -0
- package/bundled/skills/claude-code/commands/config.md +97 -0
- package/bundled/skills/claude-code/commands/coverage.md +58 -0
- package/bundled/skills/claude-code/commands/docs.md +75 -0
- package/bundled/skills/claude-code/commands/init.md +88 -0
- package/bundled/skills/claude-code/commands/methodology.md +268 -0
- package/bundled/skills/claude-code/commands/release.md +50 -0
- package/bundled/skills/claude-code/commands/requirement.md +54 -0
- package/bundled/skills/claude-code/commands/review.md +50 -0
- package/bundled/skills/claude-code/commands/spec.md +69 -0
- package/bundled/skills/claude-code/commands/tdd.md +86 -0
- package/bundled/skills/claude-code/commands/update.md +122 -0
- package/bundled/skills/claude-code/commit-standards/SKILL.md +249 -0
- package/bundled/skills/claude-code/commit-standards/conventional-commits.md +256 -0
- package/bundled/skills/claude-code/commit-standards/language-options.md +164 -0
- package/bundled/skills/claude-code/documentation-guide/SKILL.md +416 -0
- package/bundled/skills/claude-code/documentation-guide/documentation-structure.md +349 -0
- package/bundled/skills/claude-code/documentation-guide/readme-template.md +404 -0
- package/bundled/skills/claude-code/error-code-guide/SKILL.md +264 -0
- package/bundled/skills/claude-code/git-workflow-guide/SKILL.md +226 -0
- package/bundled/skills/claude-code/git-workflow-guide/branch-naming.md +212 -0
- package/bundled/skills/claude-code/git-workflow-guide/git-workflow.md +313 -0
- package/bundled/skills/claude-code/logging-guide/SKILL.md +280 -0
- package/bundled/skills/claude-code/methodology-system/SKILL.md +215 -0
- package/bundled/skills/claude-code/methodology-system/create-methodology.md +450 -0
- package/bundled/skills/claude-code/methodology-system/runtime.md +271 -0
- package/bundled/skills/claude-code/project-structure-guide/SKILL.md +143 -0
- package/bundled/skills/claude-code/project-structure-guide/language-patterns.md +263 -0
- package/bundled/skills/claude-code/refactoring-assistant/SKILL.md +205 -0
- package/bundled/skills/claude-code/release-standards/SKILL.md +191 -0
- package/bundled/skills/claude-code/release-standards/changelog-format.md +239 -0
- package/bundled/skills/claude-code/release-standards/release-workflow.md +337 -0
- package/bundled/skills/claude-code/release-standards/semantic-versioning.md +242 -0
- package/bundled/skills/claude-code/requirement-assistant/SKILL.md +222 -0
- package/bundled/skills/claude-code/requirement-assistant/requirement-checklist.md +317 -0
- package/bundled/skills/claude-code/requirement-assistant/requirement-writing.md +391 -0
- package/bundled/skills/claude-code/spec-driven-dev/SKILL.md +238 -0
- package/bundled/skills/claude-code/tdd-assistant/SKILL.md +384 -0
- package/bundled/skills/claude-code/tdd-assistant/language-examples.md +1276 -0
- package/bundled/skills/claude-code/tdd-assistant/tdd-workflow.md +659 -0
- package/bundled/skills/claude-code/test-coverage-assistant/SKILL.md +277 -0
- package/bundled/skills/claude-code/testing-guide/SKILL.md +317 -0
- package/bundled/skills/claude-code/testing-guide/testing-pyramid.md +440 -0
- package/package.json +4 -2
- package/src/commands/check.js +38 -6
- package/src/commands/init.js +20 -6
- package/src/commands/list.js +7 -2
- package/src/commands/skills.js +0 -2
- package/src/commands/update.js +271 -0
- package/src/i18n/messages.js +161 -11
- package/src/utils/copier.js +63 -10
- package/src/utils/skills-installer.js +47 -11
- package/standards-registry.json +6 -3
|
@@ -0,0 +1,943 @@
|
|
|
1
|
+
---
|
|
2
|
+
source: core/checkin-standards.md
|
|
3
|
+
source_version: 1.3.0
|
|
4
|
+
translation_version: 1.3.0
|
|
5
|
+
last_synced: 2026-01-05
|
|
6
|
+
status: current
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# 程式碼簽入檢查點標準
|
|
10
|
+
|
|
11
|
+
> **語言**: [English](../../../core/checkin-standards.md) | 繁體中文
|
|
12
|
+
|
|
13
|
+
**版本**: 1.3.0
|
|
14
|
+
**最後更新**: 2026-01-05
|
|
15
|
+
**適用範圍**: 所有使用版本控制的軟體專案
|
|
16
|
+
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
## 目的
|
|
20
|
+
|
|
21
|
+
本標準定義提交程式碼到版本控制前必須通過的品質關卡。確保每次提交都維持程式碼庫的穩定性與品質。
|
|
22
|
+
|
|
23
|
+
---
|
|
24
|
+
|
|
25
|
+
## 核心哲學
|
|
26
|
+
|
|
27
|
+
**每次提交應該**:
|
|
28
|
+
- ✅ 是完整的邏輯工作單元
|
|
29
|
+
- ✅ 讓程式碼庫處於可運作狀態
|
|
30
|
+
- ✅ 可回退而不破壞功能
|
|
31
|
+
- ✅ 包含自己的測試(新功能)
|
|
32
|
+
- ✅ 讓未來開發者能理解
|
|
33
|
+
|
|
34
|
+
---
|
|
35
|
+
|
|
36
|
+
## 必檢清單
|
|
37
|
+
|
|
38
|
+
### 1. 建置驗證
|
|
39
|
+
|
|
40
|
+
- [ ] **程式碼成功編譯**
|
|
41
|
+
- Zero build errors
|
|
42
|
+
- Zero build warnings (or documented exceptions)
|
|
43
|
+
|
|
44
|
+
- [ ] **依賴已滿足**
|
|
45
|
+
- All package dependencies installed
|
|
46
|
+
- Dependency versions locked/documented
|
|
47
|
+
- No missing imports or modules
|
|
48
|
+
|
|
49
|
+
**專案特定建置指令**:
|
|
50
|
+
```bash
|
|
51
|
+
# Example: .NET project
|
|
52
|
+
dotnet build --configuration Release --warnaserror
|
|
53
|
+
|
|
54
|
+
# Example: Node.js project
|
|
55
|
+
npm install && npm run build
|
|
56
|
+
|
|
57
|
+
# Example: Python project
|
|
58
|
+
pip install -r requirements.txt && python -m py_compile src/**/*.py
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
**驗證**:
|
|
62
|
+
- Run the build command locally before committing
|
|
63
|
+
- Ensure exit code is 0 (success)
|
|
64
|
+
- Check build output for warnings
|
|
65
|
+
|
|
66
|
+
---
|
|
67
|
+
|
|
68
|
+
### 2. 測試驗證
|
|
69
|
+
|
|
70
|
+
- [ ] **所有現有測試通過**
|
|
71
|
+
- Unit tests: 100% pass rate
|
|
72
|
+
- Integration tests: 100% pass rate
|
|
73
|
+
- End-to-end tests (if applicable): 100% pass rate
|
|
74
|
+
|
|
75
|
+
- [ ] **新程式碼已測試**
|
|
76
|
+
- New features have corresponding tests
|
|
77
|
+
- Bug fixes include regression tests
|
|
78
|
+
- Edge cases are covered
|
|
79
|
+
|
|
80
|
+
- [ ] **測試覆蓋率維持或提升**
|
|
81
|
+
- Coverage percentage not decreased
|
|
82
|
+
- Critical paths are tested
|
|
83
|
+
|
|
84
|
+
**專案特定測試指令**:
|
|
85
|
+
```bash
|
|
86
|
+
# Example: .NET project
|
|
87
|
+
dotnet test --no-build --verbosity normal
|
|
88
|
+
|
|
89
|
+
# Example: Node.js project with Jest
|
|
90
|
+
npm test -- --coverage
|
|
91
|
+
|
|
92
|
+
# Example: Python project with pytest
|
|
93
|
+
pytest --cov=src tests/
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
**驗證**:
|
|
97
|
+
- Run all test suites locally
|
|
98
|
+
- Review test coverage report
|
|
99
|
+
- Ensure new code paths are tested
|
|
100
|
+
|
|
101
|
+
---
|
|
102
|
+
|
|
103
|
+
### 3. 程式碼品質
|
|
104
|
+
|
|
105
|
+
- [ ] **遵循編碼標準**
|
|
106
|
+
- Naming conventions adhered to
|
|
107
|
+
- Code formatting consistent
|
|
108
|
+
- Comments/documentation present
|
|
109
|
+
|
|
110
|
+
- [ ] **無程式碼異味**
|
|
111
|
+
- Methods ≤50 lines (or project standard)
|
|
112
|
+
- Nesting depth ≤3 levels
|
|
113
|
+
- Cyclomatic complexity ≤10
|
|
114
|
+
- No duplicated code blocks
|
|
115
|
+
|
|
116
|
+
- [ ] **安全性已檢查**
|
|
117
|
+
- No hardcoded secrets (passwords, API keys)
|
|
118
|
+
- No SQL injection vulnerabilities
|
|
119
|
+
- No XSS vulnerabilities
|
|
120
|
+
- No insecure dependencies
|
|
121
|
+
|
|
122
|
+
**專案特定品質工具**:
|
|
123
|
+
```bash
|
|
124
|
+
# Example: ESLint for JavaScript
|
|
125
|
+
npx eslint src/
|
|
126
|
+
|
|
127
|
+
# Example: Pylint for Python
|
|
128
|
+
pylint src/
|
|
129
|
+
|
|
130
|
+
# Example: ReSharper for C#
|
|
131
|
+
dotnet tool run jb inspectcode ProjectName.sln
|
|
132
|
+
|
|
133
|
+
# Example: Security scanner
|
|
134
|
+
npm audit
|
|
135
|
+
pip-audit
|
|
136
|
+
dotnet list package --vulnerable
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
**驗證**:
|
|
140
|
+
- Run linter/formatter tools
|
|
141
|
+
- Review static analysis reports
|
|
142
|
+
- Check for security warnings
|
|
143
|
+
|
|
144
|
+
---
|
|
145
|
+
|
|
146
|
+
### 4. 文件
|
|
147
|
+
|
|
148
|
+
- [ ] **API 文件已更新**
|
|
149
|
+
- Public APIs have doc comments
|
|
150
|
+
- Parameter descriptions complete
|
|
151
|
+
- Return value documented
|
|
152
|
+
- Exceptions documented
|
|
153
|
+
|
|
154
|
+
- [ ] **README 已更新(如需要)**
|
|
155
|
+
- New features documented
|
|
156
|
+
- Breaking changes noted
|
|
157
|
+
- Setup instructions current
|
|
158
|
+
|
|
159
|
+
- [ ] **CHANGELOG 已更新(如適用)**
|
|
160
|
+
- 對於使用者可感知的變更:已新增條目至 `[Unreleased]` 區段
|
|
161
|
+
- Breaking changes marked with **BREAKING** prefix
|
|
162
|
+
- 遵循 [versioning.md](versioning.md) 和 [changelog-standards.md](changelog-standards.md) 排除規則
|
|
163
|
+
- 注意:內部重構、僅測試、僅文件的變更通常不需要 CHANGELOG 條目
|
|
164
|
+
|
|
165
|
+
**文件格式**:
|
|
166
|
+
```
|
|
167
|
+
// Example: C# XML documentation
|
|
168
|
+
/// <summary>
|
|
169
|
+
/// Validates user credentials and returns authentication token
|
|
170
|
+
/// </summary>
|
|
171
|
+
/// <param name="username">User login name</param>
|
|
172
|
+
/// <param name="password">User password</param>
|
|
173
|
+
/// <returns>JWT token if valid, null otherwise</returns>
|
|
174
|
+
/// <exception cref="ArgumentNullException">If username or password is null</exception>
|
|
175
|
+
public string Authenticate(string username, string password)
|
|
176
|
+
|
|
177
|
+
// Example: Python docstring
|
|
178
|
+
def authenticate(username: str, password: str) -> Optional[str]:
|
|
179
|
+
"""
|
|
180
|
+
Validates user credentials and returns authentication token.
|
|
181
|
+
|
|
182
|
+
Args:
|
|
183
|
+
username: User login name
|
|
184
|
+
password: User password
|
|
185
|
+
|
|
186
|
+
Returns:
|
|
187
|
+
JWT token if valid, None otherwise
|
|
188
|
+
|
|
189
|
+
Raises:
|
|
190
|
+
ValueError: If username or password is empty
|
|
191
|
+
"""
|
|
192
|
+
```
|
|
193
|
+
|
|
194
|
+
---
|
|
195
|
+
|
|
196
|
+
### 5. 工作流程合規
|
|
197
|
+
|
|
198
|
+
- [ ] **分支命名正確**
|
|
199
|
+
- Follows project convention (e.g., `feature/`, `fix/`)
|
|
200
|
+
- Descriptive name used
|
|
201
|
+
|
|
202
|
+
- [ ] **Commit 訊息已格式化**
|
|
203
|
+
- Follows conventional commits or project standard
|
|
204
|
+
- Clear and descriptive
|
|
205
|
+
|
|
206
|
+
- [ ] **已與目標分支同步**
|
|
207
|
+
- Merged latest changes from target branch
|
|
208
|
+
- No merge conflicts
|
|
209
|
+
- Rebase completed (if rebasing workflow)
|
|
210
|
+
|
|
211
|
+
**驗證**:
|
|
212
|
+
```bash
|
|
213
|
+
# Check branch name
|
|
214
|
+
git branch --show-current
|
|
215
|
+
|
|
216
|
+
# Sync with target branch (example: develop)
|
|
217
|
+
git fetch origin
|
|
218
|
+
git merge origin/develop
|
|
219
|
+
# OR
|
|
220
|
+
git rebase origin/develop
|
|
221
|
+
|
|
222
|
+
# Verify no conflicts
|
|
223
|
+
git status
|
|
224
|
+
```
|
|
225
|
+
|
|
226
|
+
---
|
|
227
|
+
|
|
228
|
+
## 簽入時機指引
|
|
229
|
+
|
|
230
|
+
### ✅ 適合提交的時機
|
|
231
|
+
|
|
232
|
+
1. **完成功能單元**
|
|
233
|
+
- Feature fully implemented
|
|
234
|
+
- Tests written and passing
|
|
235
|
+
- Documentation updated
|
|
236
|
+
|
|
237
|
+
2. **修復特定 Bug**
|
|
238
|
+
- Bug reproduced and fixed
|
|
239
|
+
- Regression test added
|
|
240
|
+
- Verified fix works
|
|
241
|
+
|
|
242
|
+
3. **獨立重構**
|
|
243
|
+
- Refactoring complete
|
|
244
|
+
- No functional changes
|
|
245
|
+
- All tests still pass
|
|
246
|
+
|
|
247
|
+
4. **可執行狀態**
|
|
248
|
+
- Code compiles without errors
|
|
249
|
+
- Application can run/start
|
|
250
|
+
- Core functionality not broken
|
|
251
|
+
|
|
252
|
+
**範例情境**:
|
|
253
|
+
```
|
|
254
|
+
✅ GOOD: "feat(auth): add OAuth2 Google login support"
|
|
255
|
+
- OAuth flow implemented
|
|
256
|
+
- Tests for happy path and errors
|
|
257
|
+
- README updated with setup instructions
|
|
258
|
+
- All existing tests pass
|
|
259
|
+
|
|
260
|
+
✅ GOOD: "fix(api): resolve memory leak in user session cache"
|
|
261
|
+
- Memory leak identified and fixed
|
|
262
|
+
- Regression test added
|
|
263
|
+
- Load test shows leak resolved
|
|
264
|
+
|
|
265
|
+
✅ GOOD: "refactor(service): extract email validation to helper"
|
|
266
|
+
- Email validation logic extracted
|
|
267
|
+
- All call sites updated
|
|
268
|
+
- Tests confirm identical behavior
|
|
269
|
+
```
|
|
270
|
+
|
|
271
|
+
---
|
|
272
|
+
|
|
273
|
+
## Commit 粒度指引
|
|
274
|
+
|
|
275
|
+
### 理想的 Commit 大小
|
|
276
|
+
|
|
277
|
+
| 指標 | 建議值 | 說明 |
|
|
278
|
+
|------|--------|------|
|
|
279
|
+
| 檔案數量 | 1-10 個 | 超過 10 個檔案應考慮拆分 |
|
|
280
|
+
| 變更行數 | 50-300 行 | 過大難以 review,過小缺乏意義 |
|
|
281
|
+
| 功能範圍 | 單一關注點 | 一個 commit 只做一件事 |
|
|
282
|
+
|
|
283
|
+
### 拆分原則
|
|
284
|
+
|
|
285
|
+
**應該合併為一個 commit**:
|
|
286
|
+
- Feature implementation + corresponding tests
|
|
287
|
+
- Tightly related multi-file changes
|
|
288
|
+
|
|
289
|
+
**應該分開 commit**:
|
|
290
|
+
- Feature A + Feature B → separate
|
|
291
|
+
- Refactoring + new feature → separate
|
|
292
|
+
- Bug fix + incidental refactoring → separate
|
|
293
|
+
|
|
294
|
+
### 頻率建議
|
|
295
|
+
|
|
296
|
+
| 情境 | 建議頻率 |
|
|
297
|
+
|------|---------|
|
|
298
|
+
| 功能開發 | 每完成一個可測試的子功能即 commit |
|
|
299
|
+
| Bug 修復 | 每修復一個獨立的 bug 即 commit |
|
|
300
|
+
| 重構 | 每完成一個安全的重構步驟即 commit(保持測試通過) |
|
|
301
|
+
|
|
302
|
+
---
|
|
303
|
+
|
|
304
|
+
## 協作情境
|
|
305
|
+
|
|
306
|
+
### 多人開發同一功能
|
|
307
|
+
|
|
308
|
+
當多人同時開發同一功能(例如前後端分工):
|
|
309
|
+
|
|
310
|
+
1. **分支策略**: Create sub-branches from feature branch
|
|
311
|
+
```
|
|
312
|
+
feature/order-book
|
|
313
|
+
├── feature/order-book-api (Developer A)
|
|
314
|
+
└── feature/order-book-ui (Developer B)
|
|
315
|
+
```
|
|
316
|
+
|
|
317
|
+
2. **簽入節奏**:
|
|
318
|
+
- Commit and push after each integrable unit
|
|
319
|
+
- Frequently sync with main feature branch to reduce conflicts
|
|
320
|
+
|
|
321
|
+
3. **整合點**:
|
|
322
|
+
- Define clear interfaces/contracts
|
|
323
|
+
- Commit interface definitions first, then implement separately
|
|
324
|
+
|
|
325
|
+
### Code Review 前後
|
|
326
|
+
|
|
327
|
+
**Review 前**:
|
|
328
|
+
- Ensure all commits are complete logical units
|
|
329
|
+
- Clean up commit history (squash WIP commits)
|
|
330
|
+
- Write clear PR description
|
|
331
|
+
|
|
332
|
+
**Review 後**:
|
|
333
|
+
- After making changes based on review feedback, add new commit (don't amend already pushed commits)
|
|
334
|
+
- Commit message can note: `fix(auth): adjust error handling per review feedback`
|
|
335
|
+
|
|
336
|
+
### 避免衝突的簽入策略
|
|
337
|
+
|
|
338
|
+
1. **小批量、高頻率**: Small commits are easier to merge than large ones
|
|
339
|
+
2. **頻繁同步**: At least once daily `git pull origin main`
|
|
340
|
+
3. **避免長時間分支**: Feature branch lifecycle should not exceed 1-2 weeks
|
|
341
|
+
|
|
342
|
+
---
|
|
343
|
+
|
|
344
|
+
## 簽入檢查觸發點
|
|
345
|
+
|
|
346
|
+
### 自動觸發時機
|
|
347
|
+
|
|
348
|
+
在開發工作流程執行過程中,以下時機應觸發簽入提醒:
|
|
349
|
+
|
|
350
|
+
| 觸發點 | 條件 | 提醒強度 |
|
|
351
|
+
|--------|------|---------|
|
|
352
|
+
| Phase 完成 | 完成一個開發階段 | 建議 |
|
|
353
|
+
| Checkpoint | 到達定義的檢查點 | 建議 |
|
|
354
|
+
| 變更累積 | 檔案 ≥5 個 或 行數 ≥200 行 | 建議 |
|
|
355
|
+
| 連續跳過 | 連續跳過簽入 3 次 | 警告 |
|
|
356
|
+
| 工作完成 | 結束前有未 commit 變更 | 強烈建議 |
|
|
357
|
+
|
|
358
|
+
### 提醒行為
|
|
359
|
+
|
|
360
|
+
- **建議性質**: User can choose to skip and continue working
|
|
361
|
+
- **不中斷流程**: After choosing "later", automatically continue to next stage
|
|
362
|
+
- **手動執行**: AI only displays git commands, **must not auto-execute** git add/commit
|
|
363
|
+
|
|
364
|
+
### 提醒格式
|
|
365
|
+
|
|
366
|
+
```
|
|
367
|
+
┌────────────────────────────────────────────────┐
|
|
368
|
+
│ 🔔 簽入檢查點 │
|
|
369
|
+
├────────────────────────────────────────────────┤
|
|
370
|
+
│ Phase 1 已完成 │
|
|
371
|
+
│ │
|
|
372
|
+
│ 變更統計: │
|
|
373
|
+
│ - Files: 5 │
|
|
374
|
+
│ - Added: 180 lines │
|
|
375
|
+
│ - Deleted: 12 lines │
|
|
376
|
+
│ │
|
|
377
|
+
│ Test Status: ✅ Passed │
|
|
378
|
+
│ │
|
|
379
|
+
│ Suggested commit message: │
|
|
380
|
+
│ feat(module): complete Phase 1 Setup │
|
|
381
|
+
│ │
|
|
382
|
+
│ Options: │
|
|
383
|
+
│ [1] Commit now (will show git commands) │
|
|
384
|
+
│ [2] Commit later, continue to next Phase │
|
|
385
|
+
│ [3] View detailed changes │
|
|
386
|
+
└────────────────────────────────────────────────┘
|
|
387
|
+
```
|
|
388
|
+
|
|
389
|
+
### 跳過後的追蹤
|
|
390
|
+
|
|
391
|
+
當用戶選擇「稍後再 commit」時:
|
|
392
|
+
|
|
393
|
+
1. **記錄跳過次數**
|
|
394
|
+
2. **連續跳過 3 次** → Display warning:
|
|
395
|
+
```
|
|
396
|
+
⚠️ Warning: You have skipped check-in 3 times consecutively
|
|
397
|
+
Current accumulated changes: 15 files, +520 lines
|
|
398
|
+
Recommend committing soon to avoid changes becoming too large to review
|
|
399
|
+
```
|
|
400
|
+
3. **工作結束前** → If uncommitted changes exist, strongly recommend check-in
|
|
401
|
+
|
|
402
|
+
---
|
|
403
|
+
|
|
404
|
+
## 特殊情境處理
|
|
405
|
+
|
|
406
|
+
### 緊急離開
|
|
407
|
+
|
|
408
|
+
當需要暫時離開但工作未完成時:
|
|
409
|
+
|
|
410
|
+
**選項 1: Git Stash(推薦)**
|
|
411
|
+
```bash
|
|
412
|
+
# Stash incomplete work
|
|
413
|
+
git stash save "WIP: matching engine - pending price validation"
|
|
414
|
+
|
|
415
|
+
# Resume next day
|
|
416
|
+
git stash pop
|
|
417
|
+
```
|
|
418
|
+
|
|
419
|
+
**選項 2: WIP 分支**
|
|
420
|
+
```bash
|
|
421
|
+
# Create temporary branch
|
|
422
|
+
git checkout -b wip/order-matching-temp
|
|
423
|
+
git add .
|
|
424
|
+
git commit -m "WIP: matching engine progress save (do not merge)"
|
|
425
|
+
|
|
426
|
+
# Return to main branch next day
|
|
427
|
+
git checkout feature/order-matching
|
|
428
|
+
git cherry-pick <wip-commit>
|
|
429
|
+
```
|
|
430
|
+
|
|
431
|
+
⚠️ **禁止**: Committing WIP code directly on feature branch
|
|
432
|
+
|
|
433
|
+
### 實驗性開發
|
|
434
|
+
|
|
435
|
+
進行技術探索或 POC 時:
|
|
436
|
+
|
|
437
|
+
1. **建立實驗分支**
|
|
438
|
+
```bash
|
|
439
|
+
git checkout -b experiment/redis-stream-poc
|
|
440
|
+
```
|
|
441
|
+
|
|
442
|
+
2. **實驗中可自由 commit** (no strict format required)
|
|
443
|
+
|
|
444
|
+
3. **實驗成功後**:
|
|
445
|
+
- Clean up commit history
|
|
446
|
+
- Squash into meaningful commits
|
|
447
|
+
- Merge to feature branch
|
|
448
|
+
|
|
449
|
+
4. **實驗失敗後**:
|
|
450
|
+
- Document lessons learned (optional)
|
|
451
|
+
- Delete experiment branch
|
|
452
|
+
|
|
453
|
+
### 緊急修復
|
|
454
|
+
|
|
455
|
+
生產環境緊急問題:
|
|
456
|
+
|
|
457
|
+
1. **從 main 建立 hotfix 分支**
|
|
458
|
+
```bash
|
|
459
|
+
git checkout main
|
|
460
|
+
git checkout -b hotfix/critical-null-pointer
|
|
461
|
+
```
|
|
462
|
+
|
|
463
|
+
2. **最小化變更**: Only fix the problem, no additional refactoring
|
|
464
|
+
|
|
465
|
+
3. **快速驗證**: Ensure tests pass
|
|
466
|
+
|
|
467
|
+
4. **Commit 訊息標註緊急性**:
|
|
468
|
+
```
|
|
469
|
+
fix(matching): [URGENT] fix null pointer causing match failures
|
|
470
|
+
|
|
471
|
+
- Issue: Market orders missing price field causes NullPointerException
|
|
472
|
+
- Impact: All market orders cannot be matched
|
|
473
|
+
- Fix: Add null check and default value handling
|
|
474
|
+
|
|
475
|
+
Fixes #456
|
|
476
|
+
```
|
|
477
|
+
|
|
478
|
+
---
|
|
479
|
+
|
|
480
|
+
### ❌ 不適合提交的時機
|
|
481
|
+
|
|
482
|
+
1. **建置失敗**
|
|
483
|
+
- Compilation errors present
|
|
484
|
+
- Unresolved dependencies
|
|
485
|
+
|
|
486
|
+
2. **測試失敗**
|
|
487
|
+
- One or more tests failing
|
|
488
|
+
- Tests not yet written for new code
|
|
489
|
+
|
|
490
|
+
3. **未完成功能**
|
|
491
|
+
- Feature partially implemented
|
|
492
|
+
- Would break existing functionality
|
|
493
|
+
- Missing critical components
|
|
494
|
+
|
|
495
|
+
4. **實驗性程式碼**
|
|
496
|
+
- TODO comments scattered
|
|
497
|
+
- Debugging code left in
|
|
498
|
+
- Commented-out code blocks
|
|
499
|
+
|
|
500
|
+
**範例情境**:
|
|
501
|
+
```
|
|
502
|
+
❌ BAD: "WIP: trying to fix login"
|
|
503
|
+
- Build has errors
|
|
504
|
+
- Tests fail
|
|
505
|
+
- Unclear what was attempted
|
|
506
|
+
|
|
507
|
+
❌ BAD: "feat(api): new endpoint (incomplete)"
|
|
508
|
+
- Endpoint returns hardcoded data
|
|
509
|
+
- No validation implemented
|
|
510
|
+
- Tests say "TODO: write tests"
|
|
511
|
+
|
|
512
|
+
❌ BAD: "refactor: experimenting with new structure"
|
|
513
|
+
- Half the files moved
|
|
514
|
+
- Old code commented out instead of deleted
|
|
515
|
+
- Multiple TODOs in code
|
|
516
|
+
```
|
|
517
|
+
|
|
518
|
+
---
|
|
519
|
+
|
|
520
|
+
## AI 助理整合
|
|
521
|
+
|
|
522
|
+
當 AI 助理完成程式碼變更時,必須遵循此工作流程:
|
|
523
|
+
|
|
524
|
+
### Step 1: 評估簽入時機
|
|
525
|
+
|
|
526
|
+
**AI must assess**:
|
|
527
|
+
- Is this a complete logical unit?
|
|
528
|
+
- Is the codebase in a working state?
|
|
529
|
+
- Are there incomplete TODOs?
|
|
530
|
+
|
|
531
|
+
**評估範例**:
|
|
532
|
+
```
|
|
533
|
+
✅ Complete: "Implemented user registration with validation, tests, and docs"
|
|
534
|
+
⚠️ Incomplete: "Added registration form but backend validation pending"
|
|
535
|
+
❌ Not Ready: "Started working on registration, several TODOs remain"
|
|
536
|
+
```
|
|
537
|
+
|
|
538
|
+
---
|
|
539
|
+
|
|
540
|
+
### Step 2: 執行檢查清單
|
|
541
|
+
|
|
542
|
+
**AI must verify**:
|
|
543
|
+
- [ ] Build command succeeds
|
|
544
|
+
- [ ] Tests pass (or note if tests need user verification)
|
|
545
|
+
- [ ] Code follows project standards
|
|
546
|
+
- [ ] Documentation updated
|
|
547
|
+
- [ ] Commit message prepared
|
|
548
|
+
|
|
549
|
+
**檢查清單輸出格式**:
|
|
550
|
+
```
|
|
551
|
+
### 檢查結果
|
|
552
|
+
|
|
553
|
+
✅ Build: dotnet build --no-warnings succeeded
|
|
554
|
+
✅ Code Quality: Follows project C# standards
|
|
555
|
+
⚠️ Tests: Unit tests pass, integration tests need user verification
|
|
556
|
+
✅ Documentation: XML comments added to all public methods
|
|
557
|
+
✅ Commit Message: Prepared following conventional commits format
|
|
558
|
+
```
|
|
559
|
+
|
|
560
|
+
---
|
|
561
|
+
|
|
562
|
+
### Step 3: 提示使用者確認
|
|
563
|
+
|
|
564
|
+
**AI MUST use this mandatory prompt format**:
|
|
565
|
+
|
|
566
|
+
```
|
|
567
|
+
## 請確認是否簽入
|
|
568
|
+
|
|
569
|
+
已完成: [Brief description of work completed]
|
|
570
|
+
|
|
571
|
+
### 檢查結果
|
|
572
|
+
✅ Item 1
|
|
573
|
+
✅ Item 2
|
|
574
|
+
⚠️ Item 3 (needs user verification)
|
|
575
|
+
✅ Item 4
|
|
576
|
+
|
|
577
|
+
建議 commit message:
|
|
578
|
+
```
|
|
579
|
+
<type>(<scope>): <description>
|
|
580
|
+
|
|
581
|
+
<detailed explanation>
|
|
582
|
+
|
|
583
|
+
<footer>
|
|
584
|
+
```
|
|
585
|
+
|
|
586
|
+
是否立即建立 commit?
|
|
587
|
+
```
|
|
588
|
+
|
|
589
|
+
---
|
|
590
|
+
|
|
591
|
+
### Step 4: 等待確認
|
|
592
|
+
|
|
593
|
+
**AI must NOT**:
|
|
594
|
+
- ❌ Automatically execute `git add`
|
|
595
|
+
- ❌ Automatically execute `git commit`
|
|
596
|
+
- ❌ Automatically execute `git push`
|
|
597
|
+
|
|
598
|
+
**AI must**:
|
|
599
|
+
- ✅ Wait for explicit user approval
|
|
600
|
+
- ✅ Provide clear checklist summary
|
|
601
|
+
- ✅ Allow user to decline or request changes
|
|
602
|
+
|
|
603
|
+
---
|
|
604
|
+
|
|
605
|
+
## 專案特定化
|
|
606
|
+
|
|
607
|
+
每個專案應透過以下方式自訂此標準:
|
|
608
|
+
|
|
609
|
+
### 1. 定義建置指令
|
|
610
|
+
|
|
611
|
+
Create a `BUILD.md` or add to `CONTRIBUTING.md`:
|
|
612
|
+
```markdown
|
|
613
|
+
## Build Commands
|
|
614
|
+
|
|
615
|
+
### Development Build
|
|
616
|
+
```bash
|
|
617
|
+
npm run build:dev
|
|
618
|
+
```
|
|
619
|
+
|
|
620
|
+
### Production Build
|
|
621
|
+
```bash
|
|
622
|
+
npm run build:prod
|
|
623
|
+
```
|
|
624
|
+
|
|
625
|
+
### Build with Warnings as Errors
|
|
626
|
+
```bash
|
|
627
|
+
npm run build:strict
|
|
628
|
+
```
|
|
629
|
+
```
|
|
630
|
+
|
|
631
|
+
---
|
|
632
|
+
|
|
633
|
+
### 2. 定義測試指令
|
|
634
|
+
|
|
635
|
+
```markdown
|
|
636
|
+
## Test Commands
|
|
637
|
+
|
|
638
|
+
### Run All Tests
|
|
639
|
+
```bash
|
|
640
|
+
npm test
|
|
641
|
+
```
|
|
642
|
+
|
|
643
|
+
### Run Unit Tests Only
|
|
644
|
+
```bash
|
|
645
|
+
npm run test:unit
|
|
646
|
+
```
|
|
647
|
+
|
|
648
|
+
### Run with Coverage
|
|
649
|
+
```bash
|
|
650
|
+
npm run test:coverage
|
|
651
|
+
```
|
|
652
|
+
|
|
653
|
+
### Minimum Coverage Required
|
|
654
|
+
- Line Coverage: 80%
|
|
655
|
+
- Branch Coverage: 75%
|
|
656
|
+
```
|
|
657
|
+
|
|
658
|
+
---
|
|
659
|
+
|
|
660
|
+
### 3. 定義品質工具
|
|
661
|
+
|
|
662
|
+
```markdown
|
|
663
|
+
## Code Quality Tools
|
|
664
|
+
|
|
665
|
+
### Linter
|
|
666
|
+
```bash
|
|
667
|
+
npm run lint
|
|
668
|
+
```
|
|
669
|
+
|
|
670
|
+
### Formatter
|
|
671
|
+
```bash
|
|
672
|
+
npm run format
|
|
673
|
+
```
|
|
674
|
+
|
|
675
|
+
### Security Audit
|
|
676
|
+
```bash
|
|
677
|
+
npm audit
|
|
678
|
+
```
|
|
679
|
+
|
|
680
|
+
### Acceptable Warnings
|
|
681
|
+
- ESLint `no-console` warnings in development files
|
|
682
|
+
- Deprecated dependency X (upgrading in Q2 2025)
|
|
683
|
+
```
|
|
684
|
+
|
|
685
|
+
---
|
|
686
|
+
|
|
687
|
+
### 4. 定義「完成定義」
|
|
688
|
+
|
|
689
|
+
```markdown
|
|
690
|
+
## 功能完成定義
|
|
691
|
+
|
|
692
|
+
功能完成定義:
|
|
693
|
+
1. ✅ 所有驗收標準達成
|
|
694
|
+
2. ✅ 2 位團隊成員已審查程式碼
|
|
695
|
+
3. ✅ 已撰寫測試(最低 80% 覆蓋率)
|
|
696
|
+
4. ✅ 文件已更新
|
|
697
|
+
5. ✅ 已部署至測試環境
|
|
698
|
+
6. ✅ 產品負責人已核准
|
|
699
|
+
```
|
|
700
|
+
|
|
701
|
+
---
|
|
702
|
+
|
|
703
|
+
## 執行機制
|
|
704
|
+
|
|
705
|
+
### 提交前掛鉤
|
|
706
|
+
|
|
707
|
+
Use Git hooks to automate checks:
|
|
708
|
+
|
|
709
|
+
```bash
|
|
710
|
+
# .git/hooks/pre-commit
|
|
711
|
+
#!/bin/sh
|
|
712
|
+
|
|
713
|
+
echo "Running pre-commit checks..."
|
|
714
|
+
|
|
715
|
+
# Build check
|
|
716
|
+
npm run build
|
|
717
|
+
if [ $? -ne 0 ]; then
|
|
718
|
+
echo "❌ Build failed. Commit rejected."
|
|
719
|
+
exit 1
|
|
720
|
+
fi
|
|
721
|
+
|
|
722
|
+
# Test check
|
|
723
|
+
npm test
|
|
724
|
+
if [ $? -ne 0 ]; then
|
|
725
|
+
echo "❌ Tests failed. Commit rejected."
|
|
726
|
+
exit 1
|
|
727
|
+
fi
|
|
728
|
+
|
|
729
|
+
# Linter check
|
|
730
|
+
npm run lint
|
|
731
|
+
if [ $? -ne 0 ]; then
|
|
732
|
+
echo "❌ Linter failed. Commit rejected."
|
|
733
|
+
exit 1
|
|
734
|
+
fi
|
|
735
|
+
|
|
736
|
+
echo "✅ All checks passed. Proceeding with commit."
|
|
737
|
+
exit 0
|
|
738
|
+
```
|
|
739
|
+
|
|
740
|
+
---
|
|
741
|
+
|
|
742
|
+
### CI/CD 整合
|
|
743
|
+
|
|
744
|
+
Configure CI to reject commits that fail checks:
|
|
745
|
+
|
|
746
|
+
```yaml
|
|
747
|
+
# Example: GitHub Actions
|
|
748
|
+
name: Code Quality Gate
|
|
749
|
+
|
|
750
|
+
on: [push, pull_request]
|
|
751
|
+
|
|
752
|
+
jobs:
|
|
753
|
+
quality:
|
|
754
|
+
runs-on: ubuntu-latest
|
|
755
|
+
steps:
|
|
756
|
+
- uses: actions/checkout@v4
|
|
757
|
+
|
|
758
|
+
- name: Build
|
|
759
|
+
run: npm run build
|
|
760
|
+
|
|
761
|
+
- name: Test
|
|
762
|
+
run: npm test
|
|
763
|
+
|
|
764
|
+
- name: Lint
|
|
765
|
+
run: npm run lint
|
|
766
|
+
|
|
767
|
+
- name: Security Audit
|
|
768
|
+
run: npm audit --audit-level=moderate
|
|
769
|
+
```
|
|
770
|
+
|
|
771
|
+
---
|
|
772
|
+
|
|
773
|
+
## 提交前目錄衛生
|
|
774
|
+
|
|
775
|
+
### IDE 與工具產生檔案
|
|
776
|
+
|
|
777
|
+
提交前,驗證沒有不需要的檔案被加入暫存區:
|
|
778
|
+
|
|
779
|
+
**常見需檢查的檔案**:
|
|
780
|
+
|
|
781
|
+
| Pattern | Source | Action |
|
|
782
|
+
|---------|--------|--------|
|
|
783
|
+
| `.idea/` | JetBrains IDEs | Should be gitignored |
|
|
784
|
+
| `.vs/` | Visual Studio | Should be gitignored |
|
|
785
|
+
| `*.user`, `*.suo` | Visual Studio | Should be gitignored |
|
|
786
|
+
| `.vscode/` | VS Code | Usually gitignored (except shared settings) |
|
|
787
|
+
| `${workspaceFolder}/` | VS Code variable expansion error | Delete immediately |
|
|
788
|
+
| `.DS_Store` | macOS | Should be gitignored |
|
|
789
|
+
| `Thumbs.db` | Windows | Should be gitignored |
|
|
790
|
+
|
|
791
|
+
### 驗證指令
|
|
792
|
+
|
|
793
|
+
```bash
|
|
794
|
+
# Check for common unwanted files in staging area
|
|
795
|
+
git diff --cached --name-only | grep -E '\.idea|\.vs/|\.user$|\.suo$|\.DS_Store|Thumbs\.db'
|
|
796
|
+
|
|
797
|
+
# Check for abnormal directories (e.g., ${workspaceFolder})
|
|
798
|
+
git ls-files | grep -E '^\$'
|
|
799
|
+
|
|
800
|
+
# If abnormal files found, unstage them
|
|
801
|
+
git reset HEAD <file>
|
|
802
|
+
|
|
803
|
+
# If abnormal directories exist but not tracked, remove them
|
|
804
|
+
rm -rf '${workspaceFolder}'
|
|
805
|
+
```
|
|
806
|
+
|
|
807
|
+
### 預防
|
|
808
|
+
|
|
809
|
+
Ensure your `.gitignore` includes:
|
|
810
|
+
|
|
811
|
+
```gitignore
|
|
812
|
+
# IDE
|
|
813
|
+
.idea/
|
|
814
|
+
.vs/
|
|
815
|
+
*.user
|
|
816
|
+
*.suo
|
|
817
|
+
.vscode/
|
|
818
|
+
|
|
819
|
+
# OS
|
|
820
|
+
.DS_Store
|
|
821
|
+
Thumbs.db
|
|
822
|
+
desktop.ini
|
|
823
|
+
|
|
824
|
+
# Build outputs
|
|
825
|
+
dist/
|
|
826
|
+
build/
|
|
827
|
+
bin/
|
|
828
|
+
obj/
|
|
829
|
+
node_modules/
|
|
830
|
+
```
|
|
831
|
+
|
|
832
|
+
---
|
|
833
|
+
|
|
834
|
+
## 常見違規與解決方案
|
|
835
|
+
|
|
836
|
+
### 違規 1: "WIP" 提交
|
|
837
|
+
|
|
838
|
+
**問題**:
|
|
839
|
+
```bash
|
|
840
|
+
git commit -m "WIP"
|
|
841
|
+
git commit -m "save work"
|
|
842
|
+
git commit -m "trying stuff"
|
|
843
|
+
```
|
|
844
|
+
|
|
845
|
+
**為何不好**:
|
|
846
|
+
- No clear purpose
|
|
847
|
+
- Likely contains broken code
|
|
848
|
+
- Pollutes git history
|
|
849
|
+
|
|
850
|
+
**解決方案**:
|
|
851
|
+
- Use `git stash` for temporary saves
|
|
852
|
+
- Only commit when work is complete
|
|
853
|
+
- Squash WIP commits before merging
|
|
854
|
+
|
|
855
|
+
---
|
|
856
|
+
|
|
857
|
+
### 違規 2: 提交註解程式碼
|
|
858
|
+
|
|
859
|
+
**問題**:
|
|
860
|
+
```javascript
|
|
861
|
+
function calculateTotal(items) {
|
|
862
|
+
// Old implementation
|
|
863
|
+
// return items.reduce((sum, item) => sum + item.price, 0);
|
|
864
|
+
|
|
865
|
+
// New implementation
|
|
866
|
+
return items.reduce((sum, item) => sum + item.price * item.quantity, 0);
|
|
867
|
+
}
|
|
868
|
+
```
|
|
869
|
+
|
|
870
|
+
**為何不好**:
|
|
871
|
+
- Clutters codebase
|
|
872
|
+
- Git history already preserves old code
|
|
873
|
+
- Confuses future developers
|
|
874
|
+
|
|
875
|
+
**解決方案**:
|
|
876
|
+
- Delete commented code
|
|
877
|
+
- Rely on git history for old versions
|
|
878
|
+
- Add commit message explaining what changed
|
|
879
|
+
|
|
880
|
+
---
|
|
881
|
+
|
|
882
|
+
### 違規 3: 混合關注點
|
|
883
|
+
|
|
884
|
+
**問題**:
|
|
885
|
+
```bash
|
|
886
|
+
git commit -m "fix bug and refactor and add feature"
|
|
887
|
+
```
|
|
888
|
+
One commit contains:
|
|
889
|
+
- Bug fix in module A
|
|
890
|
+
- Refactoring in module B
|
|
891
|
+
- New feature in module C
|
|
892
|
+
|
|
893
|
+
**為何不好**:
|
|
894
|
+
- Hard to review
|
|
895
|
+
- Can't cherry-pick specific changes
|
|
896
|
+
- Difficult to revert
|
|
897
|
+
|
|
898
|
+
**解決方案**:
|
|
899
|
+
Separate into multiple commits:
|
|
900
|
+
```bash
|
|
901
|
+
git commit -m "fix(module-a): resolve null pointer error"
|
|
902
|
+
git commit -m "refactor(module-b): extract validation logic"
|
|
903
|
+
git commit -m "feat(module-c): add export to CSV feature"
|
|
904
|
+
```
|
|
905
|
+
|
|
906
|
+
---
|
|
907
|
+
|
|
908
|
+
## 版本歷史
|
|
909
|
+
|
|
910
|
+
| 版本 | 日期 | 變更 |
|
|
911
|
+
|---------|------|---------|
|
|
912
|
+
| 1.3.0 | 2026-01-05 | 新增:SWEBOK v4.0 第 6 章(軟體配置管理)至參考資料 |
|
|
913
|
+
| 1.2.5 | 2025-12-16 | Clarified: CHANGELOG update is for user-facing changes only, added to [Unreleased] section |
|
|
914
|
+
| 1.2.4 | 2025-12-11 | Added: Pre-commit directory hygiene section (IDE artifacts, verification commands) |
|
|
915
|
+
| 1.2.3 | 2025-12-05 | Added: Reference to testing-standards.md |
|
|
916
|
+
| 1.2.2 | 2025-12-04 | Updated: GitHub Actions checkout to v4 |
|
|
917
|
+
| 1.2.1 | 2025-12-04 | Added: Cross-reference to versioning.md CHANGELOG exclusion rules |
|
|
918
|
+
| 1.2.0 | 2025-11-28 | Added: Commit granularity guidelines, collaboration scenarios, check-in trigger points, special scenarios (emergency leave, experimental dev, hotfix) |
|
|
919
|
+
| 1.0.0 | 2025-11-12 | Initial standard published |
|
|
920
|
+
|
|
921
|
+
---
|
|
922
|
+
|
|
923
|
+
## 相關標準
|
|
924
|
+
|
|
925
|
+
- [專案結構標準](project-structure.md)
|
|
926
|
+
- [測試標準](testing-standards.md)(或使用 `/testing-guide` 技能)
|
|
927
|
+
- [Commit 訊息規範](commit-message-guide.md)
|
|
928
|
+
- [程式碼審查清單](code-review-checklist.md)
|
|
929
|
+
|
|
930
|
+
---
|
|
931
|
+
|
|
932
|
+
## 參考資料
|
|
933
|
+
|
|
934
|
+
- [Conventional Commits](https://www.conventionalcommits.org/)
|
|
935
|
+
- [The Art of the Commit](https://alistapart.com/article/the-art-of-the-commit/)
|
|
936
|
+
- [Git Best Practices](https://sethrobertson.github.io/GitBestPractices/)
|
|
937
|
+
- [SWEBOK v4.0 - 第 6 章:軟體配置管理](https://www.computer.org/education/bodies-of-knowledge/software-engineering) - IEEE Computer Society
|
|
938
|
+
|
|
939
|
+
---
|
|
940
|
+
|
|
941
|
+
## 授權
|
|
942
|
+
|
|
943
|
+
本標準以 [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/) 授權發布。
|