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,909 @@
|
|
|
1
|
+
---
|
|
2
|
+
source: ../../../core/versioning.md
|
|
3
|
+
source_version: 1.2.0
|
|
4
|
+
translation_version: 1.2.0
|
|
5
|
+
last_synced: 2025-12-30
|
|
6
|
+
status: current
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
> **語言**: [English](../../../core/versioning.md) | 繁體中文
|
|
10
|
+
|
|
11
|
+
# 語義化版本標準
|
|
12
|
+
|
|
13
|
+
**版本**: 1.2.0
|
|
14
|
+
**最後更新**: 2025-12-30
|
|
15
|
+
**適用範圍**: 所有有版本發布的軟體專案
|
|
16
|
+
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
## 目的
|
|
20
|
+
|
|
21
|
+
本標準定義如何使用語義化版本 (SemVer) 為軟體發布編號,以清楚地向使用者和維護者傳達變更。
|
|
22
|
+
|
|
23
|
+
---
|
|
24
|
+
|
|
25
|
+
## 語義化版本格式
|
|
26
|
+
|
|
27
|
+
```
|
|
28
|
+
MAJOR.MINOR.PATCH[-PRERELEASE][+BUILD]
|
|
29
|
+
|
|
30
|
+
例如:
|
|
31
|
+
2.3.1
|
|
32
|
+
1.0.0-alpha.1
|
|
33
|
+
3.2.0-beta.2+20250112
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
### 組成元素
|
|
37
|
+
|
|
38
|
+
| Component | Purpose | When to Increment |
|
|
39
|
+
|-----------|---------|-------------------|
|
|
40
|
+
| **MAJOR** | Breaking changes | Incompatible API changes |
|
|
41
|
+
| **MINOR** | New features | Backward-compatible functionality |
|
|
42
|
+
| **PATCH** | Bug fixes | Backward-compatible bug fixes |
|
|
43
|
+
| **PRERELEASE** | Pre-release identifier | Alpha, beta, rc versions |
|
|
44
|
+
| **BUILD** | Build metadata | Build number, commit hash |
|
|
45
|
+
|
|
46
|
+
---
|
|
47
|
+
|
|
48
|
+
## 遞增規則
|
|
49
|
+
|
|
50
|
+
### MAJOR Version (X.0.0)
|
|
51
|
+
|
|
52
|
+
**遞增時機**:
|
|
53
|
+
- Breaking API changes
|
|
54
|
+
- Removing deprecated features
|
|
55
|
+
- Major architecture changes
|
|
56
|
+
- Incompatible behavior changes
|
|
57
|
+
|
|
58
|
+
**範例**:
|
|
59
|
+
```
|
|
60
|
+
1.9.5 → 2.0.0 # Remove deprecated API
|
|
61
|
+
3.2.1 → 4.0.0 # Change return type of public method
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
**指引**:
|
|
65
|
+
- Reset MINOR and PATCH to 0
|
|
66
|
+
- Document migration guide
|
|
67
|
+
- Provide deprecation warnings in previous MINOR versions
|
|
68
|
+
|
|
69
|
+
---
|
|
70
|
+
|
|
71
|
+
### MINOR Version (x.Y.0)
|
|
72
|
+
|
|
73
|
+
**遞增時機**:
|
|
74
|
+
- Adding new features (backward-compatible)
|
|
75
|
+
- Deprecating features (not removing)
|
|
76
|
+
- Substantial internal improvements
|
|
77
|
+
- New public APIs
|
|
78
|
+
|
|
79
|
+
**範例**:
|
|
80
|
+
```
|
|
81
|
+
2.3.5 → 2.4.0 # Add new API endpoint
|
|
82
|
+
1.12.0 → 1.13.0 # Add optional parameter to existing function
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
**指引**:
|
|
86
|
+
- Reset PATCH to 0
|
|
87
|
+
- Existing functionality unchanged
|
|
88
|
+
- New features are opt-in
|
|
89
|
+
|
|
90
|
+
---
|
|
91
|
+
|
|
92
|
+
### PATCH Version (x.y.Z)
|
|
93
|
+
|
|
94
|
+
**遞增時機**:
|
|
95
|
+
- Bug fixes (no new features)
|
|
96
|
+
- Security patches
|
|
97
|
+
- Documentation corrections
|
|
98
|
+
- Internal refactoring (no API changes)
|
|
99
|
+
|
|
100
|
+
**範例**:
|
|
101
|
+
```
|
|
102
|
+
3.1.2 → 3.1.3 # Fix null pointer exception
|
|
103
|
+
2.0.0 → 2.0.1 # Security vulnerability patch
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
**指引**:
|
|
107
|
+
- No new functionality
|
|
108
|
+
- No API changes
|
|
109
|
+
- Safe to update immediately
|
|
110
|
+
|
|
111
|
+
---
|
|
112
|
+
|
|
113
|
+
## 預發布版本
|
|
114
|
+
|
|
115
|
+
Format: `MAJOR.MINOR.PATCH-PRERELEASE`
|
|
116
|
+
|
|
117
|
+
### 預發布識別碼
|
|
118
|
+
|
|
119
|
+
| Identifier | Purpose | Stability | Audience |
|
|
120
|
+
|------------|---------|-----------|----------|
|
|
121
|
+
| `alpha` | Early testing | Unstable | Internal team |
|
|
122
|
+
| `beta` | Feature complete | Mostly stable | Early adopters |
|
|
123
|
+
| `rc` (release candidate) | Final testing | Stable | Beta testers |
|
|
124
|
+
|
|
125
|
+
### 範例
|
|
126
|
+
|
|
127
|
+
```
|
|
128
|
+
1.0.0-alpha.1 # First alpha release
|
|
129
|
+
1.0.0-alpha.2 # Second alpha release
|
|
130
|
+
1.0.0-beta.1 # First beta release
|
|
131
|
+
1.0.0-beta.2 # Second beta release
|
|
132
|
+
1.0.0-rc.1 # Release candidate 1
|
|
133
|
+
1.0.0 # Stable release
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
### 排序
|
|
137
|
+
|
|
138
|
+
Pre-releases are ordered lexicographically:
|
|
139
|
+
```
|
|
140
|
+
1.0.0-alpha.1 < 1.0.0-alpha.2 < 1.0.0-beta.1 < 1.0.0-rc.1 < 1.0.0
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
---
|
|
144
|
+
|
|
145
|
+
## 建置元資料
|
|
146
|
+
|
|
147
|
+
Format: `MAJOR.MINOR.PATCH+BUILD`
|
|
148
|
+
|
|
149
|
+
### 範例
|
|
150
|
+
|
|
151
|
+
```
|
|
152
|
+
1.0.0+20250112 # Date-based build
|
|
153
|
+
2.3.1+001 # Sequential build number
|
|
154
|
+
3.0.0+sha.5114f85 # Git commit hash
|
|
155
|
+
1.2.0-beta.1+exp.sha.5114f85 # Combined pre-release and build
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
### 指引
|
|
159
|
+
|
|
160
|
+
- Build metadata SHOULD NOT affect version precedence
|
|
161
|
+
- Use for CI/CD tracking
|
|
162
|
+
- Include in artifacts but not in version comparison
|
|
163
|
+
|
|
164
|
+
---
|
|
165
|
+
|
|
166
|
+
## 初始開發
|
|
167
|
+
|
|
168
|
+
### Version 0.x.x
|
|
169
|
+
|
|
170
|
+
```
|
|
171
|
+
0.1.0 # Initial development release
|
|
172
|
+
0.2.0 # Add features
|
|
173
|
+
0.3.0 # Add more features
|
|
174
|
+
...
|
|
175
|
+
1.0.0 # First stable release
|
|
176
|
+
```
|
|
177
|
+
|
|
178
|
+
**指引**:
|
|
179
|
+
- Major version 0 indicates development phase
|
|
180
|
+
- API may change frequently
|
|
181
|
+
- Breaking changes allowed in MINOR versions
|
|
182
|
+
- Move to 1.0.0 when API is stable
|
|
183
|
+
|
|
184
|
+
---
|
|
185
|
+
|
|
186
|
+
## 版本生命週期
|
|
187
|
+
|
|
188
|
+
### 發布週期範例
|
|
189
|
+
|
|
190
|
+
```
|
|
191
|
+
Development Phase:
|
|
192
|
+
0.1.0 → 0.2.0 → 0.9.0
|
|
193
|
+
|
|
194
|
+
First Stable Release:
|
|
195
|
+
1.0.0
|
|
196
|
+
|
|
197
|
+
Feature Additions:
|
|
198
|
+
1.0.0 → 1.1.0 → 1.2.0
|
|
199
|
+
|
|
200
|
+
Bug Fixes:
|
|
201
|
+
1.2.0 → 1.2.1 → 1.2.2
|
|
202
|
+
|
|
203
|
+
Next Major Release:
|
|
204
|
+
1.2.2 → 2.0.0-alpha.1 → 2.0.0-beta.1 → 2.0.0-rc.1 → 2.0.0
|
|
205
|
+
```
|
|
206
|
+
|
|
207
|
+
---
|
|
208
|
+
|
|
209
|
+
## 變更日誌整合
|
|
210
|
+
|
|
211
|
+
> **另見**:完整的 CHANGELOG 撰寫指南,請參閱 [changelog-standards.md](changelog-standards.md)。
|
|
212
|
+
|
|
213
|
+
### CHANGELOG.md Format
|
|
214
|
+
|
|
215
|
+
```markdown
|
|
216
|
+
# Changelog
|
|
217
|
+
|
|
218
|
+
All notable changes to this project will be documented in this file.
|
|
219
|
+
|
|
220
|
+
The format is based on [Keep a Changelog](https://keepachangelog.com/),
|
|
221
|
+
and this project adheres to [Semantic Versioning](https://semver.org/).
|
|
222
|
+
|
|
223
|
+
## [Unreleased]
|
|
224
|
+
|
|
225
|
+
### Added
|
|
226
|
+
- New feature X
|
|
227
|
+
- New API endpoint Y
|
|
228
|
+
|
|
229
|
+
### Changed
|
|
230
|
+
- Updated dependency Z to v3.0
|
|
231
|
+
|
|
232
|
+
### Deprecated
|
|
233
|
+
- Method A will be removed in v3.0
|
|
234
|
+
|
|
235
|
+
### Removed
|
|
236
|
+
- Old API endpoint B
|
|
237
|
+
|
|
238
|
+
### Fixed
|
|
239
|
+
- Bug fix for issue #123
|
|
240
|
+
|
|
241
|
+
### Security
|
|
242
|
+
- Security vulnerability patch
|
|
243
|
+
|
|
244
|
+
## [2.1.0] - 2025-11-12
|
|
245
|
+
|
|
246
|
+
### Added
|
|
247
|
+
- OAuth2 authentication support
|
|
248
|
+
- Email notification system
|
|
249
|
+
|
|
250
|
+
### Fixed
|
|
251
|
+
- Memory leak in user session cache
|
|
252
|
+
|
|
253
|
+
## [2.0.0] - 2025-10-01
|
|
254
|
+
|
|
255
|
+
### Changed
|
|
256
|
+
- **BREAKING**: User API response format
|
|
257
|
+
|
|
258
|
+
### Removed
|
|
259
|
+
- **BREAKING**: Deprecated v1 endpoints
|
|
260
|
+
|
|
261
|
+
## [1.5.2] - 2025-09-15
|
|
262
|
+
|
|
263
|
+
### Fixed
|
|
264
|
+
- Null pointer exception in payment module
|
|
265
|
+
|
|
266
|
+
[Unreleased]: https://github.com/user/repo/compare/v2.1.0...HEAD
|
|
267
|
+
[2.1.0]: https://github.com/user/repo/compare/v2.0.0...v2.1.0
|
|
268
|
+
[2.0.0]: https://github.com/user/repo/compare/v1.5.2...v2.0.0
|
|
269
|
+
[1.5.2]: https://github.com/user/repo/releases/tag/v1.5.2
|
|
270
|
+
```
|
|
271
|
+
|
|
272
|
+
### 排除規則
|
|
273
|
+
|
|
274
|
+
CHANGELOG **不應**記錄以下類型的變更:
|
|
275
|
+
|
|
276
|
+
#### 1. 被 `.gitignore` 排除的目錄
|
|
277
|
+
|
|
278
|
+
被版本控制排除的目錄不會被簽入,因此不應記錄在 CHANGELOG 中。
|
|
279
|
+
|
|
280
|
+
**原則**: 任何在專案 `.gitignore` 中列出的目錄或檔案,都不應記錄在 CHANGELOG 中。
|
|
281
|
+
|
|
282
|
+
**常見排除類別 (範例)**:
|
|
283
|
+
|
|
284
|
+
| 類別 | 常見目錄/檔案 | 原因 |
|
|
285
|
+
|------|--------------|------|
|
|
286
|
+
| AI 協作輔助 | `.claude/`, `.cursor/`, `.ai/` | 本地開發輔助,不納入版控 |
|
|
287
|
+
| 開發規範 | `.standards/`, `docs/internal/` | 本地規範文件,不納入版控 |
|
|
288
|
+
| 建置輸出 | `dist/`, `build/`, `out/` | 建置產物,不納入版控 |
|
|
289
|
+
| 大型資料 | `data/`, `datasets/` | 資料檔案,不納入版控 |
|
|
290
|
+
|
|
291
|
+
**檢查方式**:
|
|
292
|
+
|
|
293
|
+
**macOS / Linux:**
|
|
294
|
+
```bash
|
|
295
|
+
# 產生 CHANGELOG 前,檢查專案的 .gitignore 排除項目
|
|
296
|
+
cat .gitignore | grep -E "^[^#*]" | head -20
|
|
297
|
+
```
|
|
298
|
+
|
|
299
|
+
**Windows PowerShell:**
|
|
300
|
+
```powershell
|
|
301
|
+
# 產生 CHANGELOG 前,檢查專案的 .gitignore 排除項目
|
|
302
|
+
Get-Content .gitignore | Where-Object { $_ -match "^[^#*]" } | Select-Object -First 20
|
|
303
|
+
```
|
|
304
|
+
|
|
305
|
+
**Note**: 每個專案應根據自己的 `.gitignore` 設定來決定排除項目。上表僅為常見範例。
|
|
306
|
+
|
|
307
|
+
#### 2. 建置產物與暫存檔案
|
|
308
|
+
|
|
309
|
+
以下類型的變更也不應記錄:
|
|
310
|
+
|
|
311
|
+
- `bin/`, `obj/`, `Release/`, `Debug/` 等建置輸出
|
|
312
|
+
- `*.log`, `*.tmp` 等暫存檔案
|
|
313
|
+
- `node_modules/`, `packages/` 等依賴目錄
|
|
314
|
+
|
|
315
|
+
#### 3. 環境與設定檔案(敏感資料)
|
|
316
|
+
|
|
317
|
+
包含敏感資料的檔案不應記錄:
|
|
318
|
+
|
|
319
|
+
- `*.env`, `.env.*` 環境變數檔案
|
|
320
|
+
- `*.local.json`, `*.local.yaml` 本地設定檔案 (如 .NET 的 `appsettings.*.local.json`)
|
|
321
|
+
- `*.pem`, `*.key`, `*.p12` 金鑰與憑證檔案
|
|
322
|
+
- `credentials.*`, `secrets.*` 憑證檔案
|
|
323
|
+
|
|
324
|
+
### 最佳實踐
|
|
325
|
+
|
|
326
|
+
產生 CHANGELOG 時應遵循以下流程:
|
|
327
|
+
|
|
328
|
+
1. **列出變更 commits**
|
|
329
|
+
|
|
330
|
+
**macOS / Linux / Windows (Git):**
|
|
331
|
+
```bash
|
|
332
|
+
git log main..HEAD --oneline
|
|
333
|
+
```
|
|
334
|
+
|
|
335
|
+
2. **排除不需記錄的 commits**
|
|
336
|
+
- 含「gitignore」、「版控」、「雜項(版控)」類型的 commits
|
|
337
|
+
- 僅修改被排除目錄的 commits
|
|
338
|
+
|
|
339
|
+
3. **分類記錄**
|
|
340
|
+
- 只記錄會被簽入版本庫的實際程式碼或文件變更
|
|
341
|
+
- 確保所有記錄的檔案路徑在版本庫中存在
|
|
342
|
+
|
|
343
|
+
4. **驗證記錄**
|
|
344
|
+
|
|
345
|
+
**macOS / Linux:**
|
|
346
|
+
```bash
|
|
347
|
+
# 確認記錄的路徑存在於版本庫
|
|
348
|
+
git ls-files | grep -E "path/to/file"
|
|
349
|
+
```
|
|
350
|
+
|
|
351
|
+
**Windows PowerShell:**
|
|
352
|
+
```powershell
|
|
353
|
+
# 確認記錄的路徑存在於版本庫
|
|
354
|
+
git ls-files | Select-String -Pattern "path/to/file"
|
|
355
|
+
```
|
|
356
|
+
|
|
357
|
+
---
|
|
358
|
+
|
|
359
|
+
## 發布流程
|
|
360
|
+
|
|
361
|
+
### 流程概覽
|
|
362
|
+
|
|
363
|
+
完整的 Release 流程包含 5 個階段:
|
|
364
|
+
|
|
365
|
+
1. **Pre-release Diagnosis** (診斷階段) - 強制性
|
|
366
|
+
2. **Environment Preparation** (環境準備)
|
|
367
|
+
3. **Package Generation** (打包生成)
|
|
368
|
+
4. **Deployment Execution** (部署執行)
|
|
369
|
+
5. **Post-release Verification** (驗證階段)
|
|
370
|
+
|
|
371
|
+
### Phase 1: Pre-release Diagnosis (診斷階段) - 強制性
|
|
372
|
+
|
|
373
|
+
**目的**: 在生成升級包前,評估目標伺服器的環境狀態
|
|
374
|
+
|
|
375
|
+
**檢查項目**:
|
|
376
|
+
- 系統工具版本
|
|
377
|
+
- 必要驅動程式
|
|
378
|
+
- 磁碟空間
|
|
379
|
+
- 資料庫連線
|
|
380
|
+
- 應用程式版本
|
|
381
|
+
- 配置項完整性
|
|
382
|
+
|
|
383
|
+
**通過條件** (Quality Gate):
|
|
384
|
+
- 所有必要工具已安裝
|
|
385
|
+
- 磁碟空間充足 (至少 500MB)
|
|
386
|
+
- 資料庫連線正常
|
|
387
|
+
- 無系統級錯誤
|
|
388
|
+
|
|
389
|
+
**失敗處理**:
|
|
390
|
+
- 若診斷失敗,執行環境準備 (Phase 2)
|
|
391
|
+
- 修復後重新執行診斷
|
|
392
|
+
- 不得跳過診斷直接打包
|
|
393
|
+
|
|
394
|
+
---
|
|
395
|
+
|
|
396
|
+
### Phase 2: Environment Preparation (環境準備)
|
|
397
|
+
|
|
398
|
+
**目的**: 依照診斷報告結果,安裝缺失的工具和驅動
|
|
399
|
+
|
|
400
|
+
**驗證標準**:
|
|
401
|
+
- 所有診斷項目通過
|
|
402
|
+
- 資料庫連線測試成功
|
|
403
|
+
- 驗證工具無報錯
|
|
404
|
+
|
|
405
|
+
---
|
|
406
|
+
|
|
407
|
+
### Phase 3: Package Generation (打包生成)
|
|
408
|
+
|
|
409
|
+
**目的**: 生成包含最新版本的升級包
|
|
410
|
+
|
|
411
|
+
**執行步驟**:
|
|
412
|
+
```bash
|
|
413
|
+
# 1. 確認當前分支和版本
|
|
414
|
+
git branch
|
|
415
|
+
git describe --tags
|
|
416
|
+
|
|
417
|
+
# 2. 生成升級包 (使用專案提供的打包腳本)
|
|
418
|
+
./tools/generate-upgrade-package.sh -v v1.2.1 -o ./dist
|
|
419
|
+
|
|
420
|
+
# 3. 驗證升級包內容
|
|
421
|
+
tar -tzf dist/upgrade-package-*.tar.gz | head -20
|
|
422
|
+
```
|
|
423
|
+
|
|
424
|
+
#### 升級包命名規範
|
|
425
|
+
|
|
426
|
+
**格式**: `{PROJECT}-upgrade-v{VERSION}-{DATE}.tar.gz`
|
|
427
|
+
|
|
428
|
+
| 元素 | 說明 | 範例 |
|
|
429
|
+
|------|------|------|
|
|
430
|
+
| `{PROJECT}` | 專案名稱(替換為實際專案名) | `my-app`, `api-server` |
|
|
431
|
+
| `{VERSION}` | 版本號(與 Git tag 一致) | `1.2.1`, `2.0.0-beta.1` |
|
|
432
|
+
| `{DATE}` | 打包日期 (YYYYMMDD) | `20251128` |
|
|
433
|
+
|
|
434
|
+
**範例**(將 `{PROJECT}` 替換為您的專案名稱):
|
|
435
|
+
```
|
|
436
|
+
{PROJECT}-upgrade-v1.2.1-20251127.tar.gz
|
|
437
|
+
{PROJECT}-upgrade-v2.0.0-beta.1-20251201.tar.gz
|
|
438
|
+
```
|
|
439
|
+
|
|
440
|
+
---
|
|
441
|
+
|
|
442
|
+
### Phase 4: Deployment Execution (部署執行)
|
|
443
|
+
|
|
444
|
+
**目的**: 在目標伺服器執行升級
|
|
445
|
+
|
|
446
|
+
**執行步驟**:
|
|
447
|
+
```bash
|
|
448
|
+
# 1. 上傳升級包到目標伺服器
|
|
449
|
+
scp upgrade-package-*.tar.gz user@target:/tmp/
|
|
450
|
+
|
|
451
|
+
# 2. 解壓升級包
|
|
452
|
+
cd /tmp
|
|
453
|
+
tar -xzf upgrade-package-*.tar.gz
|
|
454
|
+
cd upgrade-package-*/
|
|
455
|
+
|
|
456
|
+
# 3. Dry-run 測試 (強烈建議)
|
|
457
|
+
sudo ./upgrade.sh --dry-run
|
|
458
|
+
|
|
459
|
+
# 4. 正式升級
|
|
460
|
+
sudo ./upgrade.sh
|
|
461
|
+
```
|
|
462
|
+
|
|
463
|
+
**部署驗證**:
|
|
464
|
+
- 備份已建立
|
|
465
|
+
- 服務停止成功
|
|
466
|
+
- 檔案部署成功
|
|
467
|
+
- Schema 遷移成功 (若適用)
|
|
468
|
+
- 服務啟動成功
|
|
469
|
+
|
|
470
|
+
---
|
|
471
|
+
|
|
472
|
+
### Phase 5: Post-release Verification (驗證階段)
|
|
473
|
+
|
|
474
|
+
**目的**: 確認升級成功,應用程式正常運行
|
|
475
|
+
|
|
476
|
+
**檢查項目**:
|
|
477
|
+
```bash
|
|
478
|
+
# 1. 檢查服務狀態
|
|
479
|
+
systemctl status your-service
|
|
480
|
+
|
|
481
|
+
# 2. 檢查應用程式版本
|
|
482
|
+
curl http://localhost:PORT/api/version
|
|
483
|
+
|
|
484
|
+
# 3. 檢查日誌無錯誤
|
|
485
|
+
tail -100 /path/to/app.log | grep -i error
|
|
486
|
+
```
|
|
487
|
+
|
|
488
|
+
**成功標準**:
|
|
489
|
+
- 服務正常運行
|
|
490
|
+
- API 回應正確版本號
|
|
491
|
+
- 日誌無致命錯誤
|
|
492
|
+
- 功能驗證通過
|
|
493
|
+
|
|
494
|
+
---
|
|
495
|
+
|
|
496
|
+
### 發布檢查清單
|
|
497
|
+
|
|
498
|
+
**Pre-release (診斷與準備)**:
|
|
499
|
+
- [ ] 執行伺服器診斷
|
|
500
|
+
- [ ] 診斷報告通過所有檢查項目
|
|
501
|
+
- [ ] 環境準備完成 (若有缺失)
|
|
502
|
+
- [ ] 環境驗證工具通過
|
|
503
|
+
|
|
504
|
+
**Release (打包與部署)**:
|
|
505
|
+
- [ ] 升級包生成成功
|
|
506
|
+
- [ ] 升級包內容驗證通過
|
|
507
|
+
- [ ] Dry-run 測試無異常
|
|
508
|
+
- [ ] 備份計劃已準備
|
|
509
|
+
- [ ] 回滾計劃已準備
|
|
510
|
+
|
|
511
|
+
**Post-release (驗證與監控)**:
|
|
512
|
+
- [ ] 服務啟動成功
|
|
513
|
+
- [ ] 版本號正確
|
|
514
|
+
- [ ] 功能驗證通過
|
|
515
|
+
- [ ] 日誌無異常
|
|
516
|
+
|
|
517
|
+
---
|
|
518
|
+
|
|
519
|
+
### 品質門檻
|
|
520
|
+
|
|
521
|
+
以下檢查點**必須通過**,否則不得進入下一階段:
|
|
522
|
+
|
|
523
|
+
| 階段 | 門檻 | 失敗處理 |
|
|
524
|
+
|------|------|---------|
|
|
525
|
+
| **Diagnosis** | 診斷報告無錯誤 | 環境準備 |
|
|
526
|
+
| **Preparation** | 驗證工具通過 | 修復並重新驗證 |
|
|
527
|
+
| **Packaging** | 升級包結構完整 | 重新打包 |
|
|
528
|
+
| **Deployment** | Dry-run 無異常 | 分析日誌並修正 |
|
|
529
|
+
| **Verification** | 服務正常運行 | 回滾 |
|
|
530
|
+
|
|
531
|
+
---
|
|
532
|
+
|
|
533
|
+
### 回滾計劃
|
|
534
|
+
|
|
535
|
+
若升級失敗,執行以下回滾步驟:
|
|
536
|
+
|
|
537
|
+
```bash
|
|
538
|
+
# 1. 停止服務
|
|
539
|
+
sudo systemctl stop your-service
|
|
540
|
+
|
|
541
|
+
# 2. 還原備份
|
|
542
|
+
BACKUP_PATH="/path/to/backup-$(date +%Y%m%d)"
|
|
543
|
+
sudo rm -rf /path/to/app
|
|
544
|
+
sudo mv "$BACKUP_PATH" /path/to/app
|
|
545
|
+
|
|
546
|
+
# 3. 重啟服務
|
|
547
|
+
sudo systemctl start your-service
|
|
548
|
+
|
|
549
|
+
# 4. 驗證回滾成功
|
|
550
|
+
sudo systemctl status your-service
|
|
551
|
+
```
|
|
552
|
+
|
|
553
|
+
---
|
|
554
|
+
|
|
555
|
+
### 合規性
|
|
556
|
+
|
|
557
|
+
**強制性要求**:
|
|
558
|
+
- 不得跳過診斷階段
|
|
559
|
+
- 不得跳過 dry-run 測試
|
|
560
|
+
- 必須留存診斷報告
|
|
561
|
+
- 必須準備回滾計劃
|
|
562
|
+
|
|
563
|
+
**審計追蹤**:
|
|
564
|
+
- 所有 Release 文檔留存至少 12 個月
|
|
565
|
+
- 診斷報告與 Git Tag 關聯
|
|
566
|
+
- 升級日誌保存完整
|
|
567
|
+
|
|
568
|
+
---
|
|
569
|
+
|
|
570
|
+
## Git 版本標籤
|
|
571
|
+
|
|
572
|
+
### 建立標籤
|
|
573
|
+
|
|
574
|
+
```bash
|
|
575
|
+
# Annotated tag (recommended)
|
|
576
|
+
git tag -a v1.2.0 -m "Release version 1.2.0"
|
|
577
|
+
|
|
578
|
+
# Tag with detailed message
|
|
579
|
+
git tag -a v2.0.0 -m "Release version 2.0.0
|
|
580
|
+
|
|
581
|
+
Major changes:
|
|
582
|
+
- New authentication system
|
|
583
|
+
- Redesigned API
|
|
584
|
+
- Performance improvements"
|
|
585
|
+
|
|
586
|
+
# Push tag to remote
|
|
587
|
+
git push origin v1.2.0
|
|
588
|
+
|
|
589
|
+
# Push all tags
|
|
590
|
+
git push origin --tags
|
|
591
|
+
```
|
|
592
|
+
|
|
593
|
+
### 標籤命名慣例
|
|
594
|
+
|
|
595
|
+
```
|
|
596
|
+
v1.0.0 ✅ Recommended (with 'v' prefix)
|
|
597
|
+
1.0.0 ✅ Acceptable (without 'v')
|
|
598
|
+
version-1.0.0 ❌ Avoid (too verbose)
|
|
599
|
+
1.0 ❌ Avoid (incomplete version)
|
|
600
|
+
```
|
|
601
|
+
|
|
602
|
+
---
|
|
603
|
+
|
|
604
|
+
## 自動化工具
|
|
605
|
+
|
|
606
|
+
### standard-version (Node.js)
|
|
607
|
+
|
|
608
|
+
```bash
|
|
609
|
+
# Install
|
|
610
|
+
npm install --save-dev standard-version
|
|
611
|
+
|
|
612
|
+
# Add to package.json
|
|
613
|
+
{
|
|
614
|
+
"scripts": {
|
|
615
|
+
"release": "standard-version"
|
|
616
|
+
}
|
|
617
|
+
}
|
|
618
|
+
|
|
619
|
+
# Create release
|
|
620
|
+
npm run release # Auto-increment based on commits
|
|
621
|
+
npm run release -- --release-as minor # Force minor version
|
|
622
|
+
npm run release -- --release-as 2.0.0 # Specific version
|
|
623
|
+
```
|
|
624
|
+
|
|
625
|
+
### semantic-release (Node.js)
|
|
626
|
+
|
|
627
|
+
```bash
|
|
628
|
+
# Install
|
|
629
|
+
npm install --save-dev semantic-release
|
|
630
|
+
|
|
631
|
+
# Configure in .releaserc.json
|
|
632
|
+
{
|
|
633
|
+
"branches": ["main"],
|
|
634
|
+
"plugins": [
|
|
635
|
+
"@semantic-release/commit-analyzer",
|
|
636
|
+
"@semantic-release/release-notes-generator",
|
|
637
|
+
"@semantic-release/changelog",
|
|
638
|
+
"@semantic-release/npm",
|
|
639
|
+
"@semantic-release/git",
|
|
640
|
+
"@semantic-release/github"
|
|
641
|
+
]
|
|
642
|
+
}
|
|
643
|
+
```
|
|
644
|
+
|
|
645
|
+
---
|
|
646
|
+
|
|
647
|
+
## 依賴版本範圍
|
|
648
|
+
|
|
649
|
+
### npm (package.json)
|
|
650
|
+
|
|
651
|
+
```json
|
|
652
|
+
{
|
|
653
|
+
"dependencies": {
|
|
654
|
+
"exact": "1.2.3", // Exact version
|
|
655
|
+
"patch": "~1.2.3", // >=1.2.3 <1.3.0
|
|
656
|
+
"minor": "^1.2.3", // >=1.2.3 <2.0.0
|
|
657
|
+
"range": ">=1.2.3 <2.0.0", // Explicit range
|
|
658
|
+
"latest": "*" // ❌ Avoid - any version
|
|
659
|
+
}
|
|
660
|
+
}
|
|
661
|
+
```
|
|
662
|
+
|
|
663
|
+
**建議**:
|
|
664
|
+
- Use `^` for most dependencies (minor updates)
|
|
665
|
+
- Use `~` for conservative updates (patch only)
|
|
666
|
+
- Use exact versions for critical dependencies
|
|
667
|
+
- Never use `*` in production
|
|
668
|
+
|
|
669
|
+
---
|
|
670
|
+
|
|
671
|
+
### .NET (csproj)
|
|
672
|
+
|
|
673
|
+
```xml
|
|
674
|
+
<ItemGroup>
|
|
675
|
+
<!-- Exact version -->
|
|
676
|
+
<PackageReference Include="Newtonsoft.Json" Version="13.0.1" />
|
|
677
|
+
|
|
678
|
+
<!-- Minimum version -->
|
|
679
|
+
<PackageReference Include="Microsoft.Extensions.Logging" Version="[8.0.0,)" />
|
|
680
|
+
|
|
681
|
+
<!-- Version range -->
|
|
682
|
+
<PackageReference Include="AutoMapper" Version="[12.0.0,13.0.0)" />
|
|
683
|
+
</ItemGroup>
|
|
684
|
+
```
|
|
685
|
+
|
|
686
|
+
---
|
|
687
|
+
|
|
688
|
+
## 破壞性變更溝通
|
|
689
|
+
|
|
690
|
+
### 1. Deprecation Warnings (N-1 Version)
|
|
691
|
+
|
|
692
|
+
```javascript
|
|
693
|
+
// Version 1.5.0 - Add deprecation warning
|
|
694
|
+
/**
|
|
695
|
+
* @deprecated Use authenticateV2() instead. Will be removed in v2.0.0
|
|
696
|
+
*/
|
|
697
|
+
function authenticate(username, password) {
|
|
698
|
+
console.warn('[DEPRECATED] authenticate() will be removed in v2.0.0. Use authenticateV2()');
|
|
699
|
+
return authenticateV2(username, password);
|
|
700
|
+
}
|
|
701
|
+
```
|
|
702
|
+
|
|
703
|
+
### 2. API 版本化策略
|
|
704
|
+
|
|
705
|
+
根據需求選擇 API 版本化策略:
|
|
706
|
+
|
|
707
|
+
| 策略 | 格式 | 優點 | 缺點 |
|
|
708
|
+
|------|------|------|------|
|
|
709
|
+
| URL 路徑 | `/api/v1/users` | 清晰、易於路由 | URL 污染 |
|
|
710
|
+
| 查詢參數 | `/api/users?version=1` | 可選版本 | 快取問題 |
|
|
711
|
+
| 標頭 | `Accept: application/vnd.api.v1+json` | URL 乾淨 | 較不可見 |
|
|
712
|
+
| 內容協商 | `Accept: application/vnd.api+json;version=1` | RESTful | 複雜 |
|
|
713
|
+
|
|
714
|
+
**建議**:大多數 API 使用 URL 路徑版本化(對開發者最清晰)。
|
|
715
|
+
|
|
716
|
+
### 3. 棄用時間線
|
|
717
|
+
|
|
718
|
+
棄用 API 功能時遵循此時間線:
|
|
719
|
+
|
|
720
|
+
```
|
|
721
|
+
v1.0.0 - 功能引入
|
|
722
|
+
v1.5.0 - 新增棄用警告(最少 N-1 版本)
|
|
723
|
+
v2.0.0 - 移除功能(記錄在遷移指南中)
|
|
724
|
+
```
|
|
725
|
+
|
|
726
|
+
**棄用期間指南**:
|
|
727
|
+
|
|
728
|
+
| API 類型 | 最短棄用期間 |
|
|
729
|
+
|----------|-------------|
|
|
730
|
+
| 內部 API | 1 個次要版本 |
|
|
731
|
+
| 合作夥伴 API | 2 個次要版本 + 3 個月 |
|
|
732
|
+
| 公開 API | 2 個次要版本 + 6 個月 |
|
|
733
|
+
| 關鍵基礎設施 | 最少 1 年 |
|
|
734
|
+
|
|
735
|
+
### 4. 向後相容性檢查清單
|
|
736
|
+
|
|
737
|
+
發布前驗證這些向後相容性規則:
|
|
738
|
+
|
|
739
|
+
**不要破壞(不升級主版本號)**:
|
|
740
|
+
- [ ] 移除公開 API 端點
|
|
741
|
+
- [ ] 移除必填請求欄位
|
|
742
|
+
- [ ] 新增必填請求欄位
|
|
743
|
+
- [ ] 變更回應欄位類型
|
|
744
|
+
- [ ] 變更錯誤碼含義
|
|
745
|
+
- [ ] 移除消費者依賴的回應欄位
|
|
746
|
+
|
|
747
|
+
**安全變更(次要/修補版本)**:
|
|
748
|
+
- [ ] 新增可選請求欄位
|
|
749
|
+
- [ ] 新增回應欄位
|
|
750
|
+
- [ ] 新增端點
|
|
751
|
+
- [ ] 新增錯誤碼
|
|
752
|
+
- [ ] 改善錯誤訊息
|
|
753
|
+
- [ ] 效能改進
|
|
754
|
+
|
|
755
|
+
### 5. 遷移指南(N 版本)
|
|
756
|
+
|
|
757
|
+
```markdown
|
|
758
|
+
# 遷移指南:v1.x 到 v2.0
|
|
759
|
+
|
|
760
|
+
## 破壞性變更
|
|
761
|
+
|
|
762
|
+
### 1. authenticate() 已移除
|
|
763
|
+
|
|
764
|
+
**Before (v1.x)**:
|
|
765
|
+
```javascript
|
|
766
|
+
const token = await authenticate('user', 'pass');
|
|
767
|
+
```
|
|
768
|
+
|
|
769
|
+
**After (v2.0)**:
|
|
770
|
+
```javascript
|
|
771
|
+
const token = await authenticateV2({ username: 'user', password: 'pass' });
|
|
772
|
+
```
|
|
773
|
+
|
|
774
|
+
### 2. API response format changed
|
|
775
|
+
|
|
776
|
+
**Before (v1.x)**:
|
|
777
|
+
```json
|
|
778
|
+
{ "data": { "user": {...} } }
|
|
779
|
+
```
|
|
780
|
+
|
|
781
|
+
**After (v2.0)**:
|
|
782
|
+
```json
|
|
783
|
+
{ "user": {...} }
|
|
784
|
+
```
|
|
785
|
+
|
|
786
|
+
Update your code:
|
|
787
|
+
```javascript
|
|
788
|
+
// Before
|
|
789
|
+
const user = response.data.user;
|
|
790
|
+
|
|
791
|
+
// After
|
|
792
|
+
const user = response.user;
|
|
793
|
+
```
|
|
794
|
+
```
|
|
795
|
+
|
|
796
|
+
---
|
|
797
|
+
|
|
798
|
+
## 專案設定
|
|
799
|
+
|
|
800
|
+
### Document in README.md
|
|
801
|
+
|
|
802
|
+
```markdown
|
|
803
|
+
## Versioning
|
|
804
|
+
|
|
805
|
+
This project follows [Semantic Versioning 2.0.0](https://semver.org/).
|
|
806
|
+
|
|
807
|
+
### Version Format
|
|
808
|
+
`MAJOR.MINOR.PATCH[-PRERELEASE][+BUILD]`
|
|
809
|
+
|
|
810
|
+
### Release Cycle
|
|
811
|
+
- **Major releases**: Annually (breaking changes)
|
|
812
|
+
- **Minor releases**: Quarterly (new features)
|
|
813
|
+
- **Patch releases**: As needed (bug fixes)
|
|
814
|
+
|
|
815
|
+
### Support Policy
|
|
816
|
+
- Latest major version: Full support
|
|
817
|
+
- Previous major version: Security fixes only (1 year)
|
|
818
|
+
- Older versions: No support
|
|
819
|
+
|
|
820
|
+
### Changelog
|
|
821
|
+
See [CHANGELOG.md](CHANGELOG.md) for release history.
|
|
822
|
+
```
|
|
823
|
+
|
|
824
|
+
---
|
|
825
|
+
|
|
826
|
+
## 版本比較
|
|
827
|
+
|
|
828
|
+
### 優先級規則
|
|
829
|
+
|
|
830
|
+
```
|
|
831
|
+
1.0.0 < 2.0.0 < 2.1.0 < 2.1.1
|
|
832
|
+
|
|
833
|
+
1.0.0-alpha < 1.0.0-alpha.1 < 1.0.0-beta < 1.0.0-rc.1 < 1.0.0
|
|
834
|
+
|
|
835
|
+
1.0.0 < 1.0.0+001 (build metadata ignored in precedence)
|
|
836
|
+
```
|
|
837
|
+
|
|
838
|
+
### 程式碼中比較
|
|
839
|
+
|
|
840
|
+
```javascript
|
|
841
|
+
// JavaScript (using semver package)
|
|
842
|
+
const semver = require('semver');
|
|
843
|
+
|
|
844
|
+
semver.gt('1.2.3', '1.2.2'); // true
|
|
845
|
+
semver.satisfies('1.2.3', '^1.0.0'); // true
|
|
846
|
+
semver.major('2.3.1'); // 2
|
|
847
|
+
```
|
|
848
|
+
|
|
849
|
+
---
|
|
850
|
+
|
|
851
|
+
## 常見問題
|
|
852
|
+
|
|
853
|
+
### Q: When should I release 1.0.0?
|
|
854
|
+
|
|
855
|
+
**A**: When your API is stable and you're ready to commit to backward compatibility.
|
|
856
|
+
|
|
857
|
+
---
|
|
858
|
+
|
|
859
|
+
### Q: Should I bump MAJOR for internal breaking changes?
|
|
860
|
+
|
|
861
|
+
**A**: No, only for public API changes. Internal refactoring is PATCH or MINOR.
|
|
862
|
+
|
|
863
|
+
---
|
|
864
|
+
|
|
865
|
+
### Q: Can I skip versions?
|
|
866
|
+
|
|
867
|
+
**A**: Yes, but not recommended. Use sequential versioning for clarity.
|
|
868
|
+
|
|
869
|
+
---
|
|
870
|
+
|
|
871
|
+
### Q: How do I version libraries vs applications?
|
|
872
|
+
|
|
873
|
+
**A**:
|
|
874
|
+
- **Libraries**: Strictly follow SemVer (API matters)
|
|
875
|
+
- **Applications**: Can be more flexible (user experience matters)
|
|
876
|
+
|
|
877
|
+
---
|
|
878
|
+
|
|
879
|
+
## 相關標準
|
|
880
|
+
|
|
881
|
+
- [Changelog Standards](changelog-standards.md) - 變更日誌標準
|
|
882
|
+
- [Git Workflow Standards](git-workflow.md) - Git 工作流程標準
|
|
883
|
+
- [Commit Message Guide](commit-message-guide.md) - Commit 訊息規範
|
|
884
|
+
|
|
885
|
+
---
|
|
886
|
+
|
|
887
|
+
## 版本歷史
|
|
888
|
+
|
|
889
|
+
| Version | Date | Changes |
|
|
890
|
+
|---------|------|---------|
|
|
891
|
+
| 1.1.3 | 2025-12-24 | Added: Related Standards section |
|
|
892
|
+
| 1.1.2 | 2025-12-11 | Improved: Upgrade package naming example to use generic placeholders instead of hardcoded project names |
|
|
893
|
+
| 1.1.1 | 2025-12-04 | Refactored: CHANGELOG exclusion rules to be more generic (removed project-specific directories) |
|
|
894
|
+
| 1.1.0 | 2025-12-04 | Added: CHANGELOG exclusion rules, Release Process section |
|
|
895
|
+
| 1.0.0 | 2025-11-12 | Initial versioning standard |
|
|
896
|
+
|
|
897
|
+
---
|
|
898
|
+
|
|
899
|
+
## 參考資料
|
|
900
|
+
|
|
901
|
+
- [Semantic Versioning 2.0.0](https://semver.org/)
|
|
902
|
+
- [Keep a Changelog](https://keepachangelog.com/)
|
|
903
|
+
- [Calendar Versioning](https://calver.org/) (alternative scheme)
|
|
904
|
+
|
|
905
|
+
---
|
|
906
|
+
|
|
907
|
+
## 授權
|
|
908
|
+
|
|
909
|
+
本標準以 [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/) 授權發布。
|