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,693 @@
|
|
|
1
|
+
---
|
|
2
|
+
source: core/code-review-checklist.md
|
|
3
|
+
source_version: 1.3.0
|
|
4
|
+
translation_version: 1.3.0
|
|
5
|
+
last_synced: 2026-01-12
|
|
6
|
+
status: current
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# 程式碼審查檢查清單
|
|
10
|
+
|
|
11
|
+
> **語言**: [English](../../../core/code-review-checklist.md) | 繁體中文
|
|
12
|
+
|
|
13
|
+
**版本**: 1.3.0
|
|
14
|
+
**最後更新**: 2026-01-12
|
|
15
|
+
**適用範圍**: 所有進行程式碼審查的軟體專案
|
|
16
|
+
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
## 目的
|
|
20
|
+
|
|
21
|
+
本標準提供全面的程式碼審查檢查清單,確保合併前的品質、可維護性與一致性。
|
|
22
|
+
|
|
23
|
+
---
|
|
24
|
+
|
|
25
|
+
## 核心原則
|
|
26
|
+
|
|
27
|
+
1. **尊重他人**
|
|
28
|
+
- Review code, not the person
|
|
29
|
+
- Assume good intentions
|
|
30
|
+
- Be constructive, not critical
|
|
31
|
+
|
|
32
|
+
2. **徹底審查**
|
|
33
|
+
- Check functionality, not just syntax
|
|
34
|
+
- Consider edge cases
|
|
35
|
+
- Think about future maintenance
|
|
36
|
+
|
|
37
|
+
3. **及時回應**
|
|
38
|
+
- Review within 24 hours (or team SLA)
|
|
39
|
+
- Don't block progress unnecessarily
|
|
40
|
+
- Prioritize unblocking others
|
|
41
|
+
|
|
42
|
+
4. **清楚表達**
|
|
43
|
+
- Explain WHY, not just WHAT
|
|
44
|
+
- Provide examples when suggesting changes
|
|
45
|
+
- Distinguish blocking vs. non-blocking comments
|
|
46
|
+
|
|
47
|
+
---
|
|
48
|
+
|
|
49
|
+
## 審查檢查清單
|
|
50
|
+
|
|
51
|
+
### 1. 功能性
|
|
52
|
+
|
|
53
|
+
- [ ] **程式碼實現預期功能**
|
|
54
|
+
- Requirement/spec alignment verified
|
|
55
|
+
- Acceptance criteria met
|
|
56
|
+
- Edge cases handled
|
|
57
|
+
|
|
58
|
+
- [ ] **無明顯錯誤**
|
|
59
|
+
- Null/undefined checks present
|
|
60
|
+
- Array bounds checked
|
|
61
|
+
- Error conditions handled
|
|
62
|
+
|
|
63
|
+
- [ ] **邏輯正確**
|
|
64
|
+
- Conditions make sense
|
|
65
|
+
- Loops terminate properly
|
|
66
|
+
- Calculations are accurate
|
|
67
|
+
|
|
68
|
+
---
|
|
69
|
+
|
|
70
|
+
### 2. 設計與架構
|
|
71
|
+
|
|
72
|
+
- [ ] **遵循專案架構**
|
|
73
|
+
- Layering respected (API, service, data layers)
|
|
74
|
+
- Separation of concerns maintained
|
|
75
|
+
- Dependency direction correct
|
|
76
|
+
|
|
77
|
+
- [ ] **使用合適的設計模式**
|
|
78
|
+
- Not over-engineered
|
|
79
|
+
- Not under-engineered
|
|
80
|
+
- Patterns applied correctly
|
|
81
|
+
|
|
82
|
+
- [ ] **程式碼位於正確位置**
|
|
83
|
+
- Files organized logically
|
|
84
|
+
- Related code grouped together
|
|
85
|
+
- Clear module boundaries
|
|
86
|
+
|
|
87
|
+
---
|
|
88
|
+
|
|
89
|
+
### 3. 程式碼品質
|
|
90
|
+
|
|
91
|
+
- [ ] **遵循編碼標準**
|
|
92
|
+
- Naming conventions adhered to
|
|
93
|
+
- Formatting consistent
|
|
94
|
+
- Style guide followed
|
|
95
|
+
|
|
96
|
+
- [ ] **無程式碼異味**
|
|
97
|
+
- Methods ≤50 lines (or project standard)
|
|
98
|
+
- Classes have single responsibility
|
|
99
|
+
- Cyclomatic complexity ≤10
|
|
100
|
+
- No deeply nested conditionals (≤3 levels)
|
|
101
|
+
|
|
102
|
+
- [ ] **遵循 DRY 原則**
|
|
103
|
+
- No duplicated code blocks
|
|
104
|
+
- Common logic extracted
|
|
105
|
+
- Reusable utilities used
|
|
106
|
+
|
|
107
|
+
- [ ] **遵循 SOLID 原則**
|
|
108
|
+
- Single Responsibility
|
|
109
|
+
- Open/Closed
|
|
110
|
+
- Liskov Substitution
|
|
111
|
+
- Interface Segregation
|
|
112
|
+
- Dependency Inversion
|
|
113
|
+
|
|
114
|
+
---
|
|
115
|
+
|
|
116
|
+
### 4. 可讀性與可維護性
|
|
117
|
+
|
|
118
|
+
- [ ] **程式碼易於理解**
|
|
119
|
+
- Variable names are descriptive
|
|
120
|
+
- Function names reveal intent
|
|
121
|
+
- Logic flows naturally
|
|
122
|
+
|
|
123
|
+
- [ ] **註解有幫助**
|
|
124
|
+
- Complex logic explained
|
|
125
|
+
- WHY documented, not WHAT
|
|
126
|
+
- No commented-out code
|
|
127
|
+
- No misleading comments
|
|
128
|
+
|
|
129
|
+
- [ ] **風格一致**
|
|
130
|
+
- Indentation correct
|
|
131
|
+
- Spacing consistent
|
|
132
|
+
- Naming patterns uniform
|
|
133
|
+
|
|
134
|
+
---
|
|
135
|
+
|
|
136
|
+
### 5. 測試
|
|
137
|
+
|
|
138
|
+
- [ ] **存在測試**
|
|
139
|
+
- New code has tests
|
|
140
|
+
- Tests cover happy path
|
|
141
|
+
- Tests cover error cases
|
|
142
|
+
- Edge cases tested
|
|
143
|
+
|
|
144
|
+
- [ ] **測試品質良好**
|
|
145
|
+
- Tests are readable
|
|
146
|
+
- Test names describe scenarios
|
|
147
|
+
- Assertions are clear
|
|
148
|
+
- No flaky tests
|
|
149
|
+
|
|
150
|
+
- [ ] **測試覆蓋率維持**
|
|
151
|
+
- Coverage not decreased
|
|
152
|
+
- Critical paths covered
|
|
153
|
+
- Integration tests for key flows
|
|
154
|
+
|
|
155
|
+
---
|
|
156
|
+
|
|
157
|
+
### 6. 安全性
|
|
158
|
+
|
|
159
|
+
- [ ] **無安全漏洞**
|
|
160
|
+
- No SQL injection risks
|
|
161
|
+
- No XSS vulnerabilities
|
|
162
|
+
- No hardcoded secrets
|
|
163
|
+
- No insecure dependencies
|
|
164
|
+
|
|
165
|
+
- [ ] **存在輸入驗證**
|
|
166
|
+
- User input sanitized
|
|
167
|
+
- Type checking performed
|
|
168
|
+
- Size limits enforced
|
|
169
|
+
|
|
170
|
+
- [ ] **認證/授權正確**
|
|
171
|
+
- Proper auth checks
|
|
172
|
+
- Role-based access enforced
|
|
173
|
+
- Sensitive data protected
|
|
174
|
+
|
|
175
|
+
- [ ] **資料處理安全**
|
|
176
|
+
- Sensitive data encrypted
|
|
177
|
+
- Passwords hashed
|
|
178
|
+
- PII handled appropriately
|
|
179
|
+
|
|
180
|
+
---
|
|
181
|
+
|
|
182
|
+
### 7. 效能
|
|
183
|
+
|
|
184
|
+
- [ ] **無明顯效能問題**
|
|
185
|
+
- No N+1 queries
|
|
186
|
+
- No unnecessary loops
|
|
187
|
+
- No blocking operations in hot paths
|
|
188
|
+
|
|
189
|
+
- [ ] **使用高效演算法**
|
|
190
|
+
- Complexity considered (O(n) vs O(n²))
|
|
191
|
+
- Appropriate data structures
|
|
192
|
+
- Caching where beneficial
|
|
193
|
+
|
|
194
|
+
- [ ] **資源管理適當**
|
|
195
|
+
- Connections closed
|
|
196
|
+
- Memory leaks prevented
|
|
197
|
+
- File handles released
|
|
198
|
+
|
|
199
|
+
---
|
|
200
|
+
|
|
201
|
+
### 8. 錯誤處理
|
|
202
|
+
|
|
203
|
+
- [ ] **錯誤處理適當**
|
|
204
|
+
- Try-catch blocks present
|
|
205
|
+
- Specific exceptions caught
|
|
206
|
+
- Generic catch avoided
|
|
207
|
+
|
|
208
|
+
- [ ] **錯誤訊息有幫助**
|
|
209
|
+
- Messages are descriptive
|
|
210
|
+
- Actionable information included
|
|
211
|
+
- No sensitive data exposed
|
|
212
|
+
|
|
213
|
+
- [ ] **日誌記錄充足**
|
|
214
|
+
- Errors logged with context
|
|
215
|
+
- Log levels appropriate
|
|
216
|
+
- No excessive logging
|
|
217
|
+
|
|
218
|
+
---
|
|
219
|
+
|
|
220
|
+
### 9. 文件
|
|
221
|
+
|
|
222
|
+
- [ ] **API 文件存在**
|
|
223
|
+
- Public methods documented
|
|
224
|
+
- Parameters explained
|
|
225
|
+
- Return values described
|
|
226
|
+
- Exceptions documented
|
|
227
|
+
|
|
228
|
+
- [ ] **README 已更新(如需要)**
|
|
229
|
+
- New features documented
|
|
230
|
+
- Setup instructions current
|
|
231
|
+
- Examples provided
|
|
232
|
+
|
|
233
|
+
- [ ] **CHANGELOG 已更新(如適用)**
|
|
234
|
+
- 對於使用者可感知的變更:已新增條目至 `[Unreleased]` 區段
|
|
235
|
+
- Breaking changes highlighted with **BREAKING** prefix
|
|
236
|
+
- 遵循 [versioning.md](versioning.md) 和 [changelog-standards.md](changelog-standards.md) 排除規則
|
|
237
|
+
|
|
238
|
+
---
|
|
239
|
+
|
|
240
|
+
### 10. 依賴
|
|
241
|
+
|
|
242
|
+
- [ ] **依賴合理**
|
|
243
|
+
- New dependencies necessary
|
|
244
|
+
- License compatible
|
|
245
|
+
- No security vulnerabilities
|
|
246
|
+
- Actively maintained
|
|
247
|
+
|
|
248
|
+
- [ ] **依賴版本鎖定**
|
|
249
|
+
- Exact versions specified
|
|
250
|
+
- No wildcard versions
|
|
251
|
+
- Lock file updated
|
|
252
|
+
|
|
253
|
+
---
|
|
254
|
+
|
|
255
|
+
## 審查評論類型
|
|
256
|
+
|
|
257
|
+
Use these prefixes to clarify comment intent:
|
|
258
|
+
|
|
259
|
+
### 評論前綴
|
|
260
|
+
|
|
261
|
+
| Prefix | Meaning | Action Required |
|
|
262
|
+
|--------|---------|------------------|
|
|
263
|
+
| **❗ BLOCKING** | Must fix before merge | 🔴 Required |
|
|
264
|
+
| **⚠️ IMPORTANT** | Should fix, but not blocking | 🟡 Recommended |
|
|
265
|
+
| **💡 SUGGESTION** | Nice-to-have improvement | 🟢 Optional |
|
|
266
|
+
| **❓ QUESTION** | Need clarification | 🔵 Discuss |
|
|
267
|
+
| **📝 NOTE** | Informational, no action | ⚪ Informational |
|
|
268
|
+
|
|
269
|
+
### 評論範例
|
|
270
|
+
|
|
271
|
+
```markdown
|
|
272
|
+
❗ BLOCKING: Potential SQL injection vulnerability here.
|
|
273
|
+
Please use parameterized queries instead of string concatenation.
|
|
274
|
+
|
|
275
|
+
⚠️ IMPORTANT: This method is doing too much (120 lines).
|
|
276
|
+
Consider extracting validation logic to a separate method.
|
|
277
|
+
|
|
278
|
+
💡 SUGGESTION: Consider using a Map here instead of an array for O(1) lookup.
|
|
279
|
+
Not critical, but could improve performance if list grows large.
|
|
280
|
+
|
|
281
|
+
❓ QUESTION: Why are we using setTimeout here instead of async/await?
|
|
282
|
+
Is there a specific reason for this approach?
|
|
283
|
+
|
|
284
|
+
📝 NOTE: This is a clever solution! Nice use of reduce here.
|
|
285
|
+
```
|
|
286
|
+
|
|
287
|
+
### 替代方案:文字標籤
|
|
288
|
+
|
|
289
|
+
對於偏好純文字標籤(無 emoji)的團隊:
|
|
290
|
+
|
|
291
|
+
| 標籤 | 意義 | Action |
|
|
292
|
+
|------|------|--------|
|
|
293
|
+
| `[必要]` | 必須修正才能合併 | 🔴 Required |
|
|
294
|
+
| `[建議]` | 建議修正但非阻擋 | 🟡 Recommended |
|
|
295
|
+
| `[問題]` | 需要澄清 | 🔵 Discuss |
|
|
296
|
+
| `[NIT]` | 小建議,可忽略 | 🟢 Optional |
|
|
297
|
+
| `[讚]` | 正面回饋 | ⚪ Informational |
|
|
298
|
+
|
|
299
|
+
**評論範例**
|
|
300
|
+
|
|
301
|
+
```markdown
|
|
302
|
+
[必要] 此處有 SQL 注入風險。
|
|
303
|
+
|
|
304
|
+
[建議] 可考慮使用 StringBuilder 提升效能。
|
|
305
|
+
|
|
306
|
+
[問題] 當輸入為 null 時,預期行為是什麼?
|
|
307
|
+
|
|
308
|
+
[NIT] 變數名稱可以更明確。
|
|
309
|
+
|
|
310
|
+
[讚] 優雅的解法!重構得很好。
|
|
311
|
+
```
|
|
312
|
+
|
|
313
|
+
---
|
|
314
|
+
|
|
315
|
+
## 審查流程
|
|
316
|
+
|
|
317
|
+
### 審查者
|
|
318
|
+
|
|
319
|
+
#### Step 1: 理解背景
|
|
320
|
+
|
|
321
|
+
1. Read PR description and linked issues
|
|
322
|
+
2. Understand WHY the change is needed
|
|
323
|
+
3. Review design/spec documents if linked
|
|
324
|
+
|
|
325
|
+
#### Step 2: 高層級審查
|
|
326
|
+
|
|
327
|
+
1. Check overall approach
|
|
328
|
+
2. Verify architecture alignment
|
|
329
|
+
3. Assess scope appropriateness
|
|
330
|
+
|
|
331
|
+
#### Step 3: 詳細審查
|
|
332
|
+
|
|
333
|
+
1. Review each file change
|
|
334
|
+
2. Check functionality and logic
|
|
335
|
+
3. Look for bugs and edge cases
|
|
336
|
+
4. Verify tests
|
|
337
|
+
|
|
338
|
+
#### Step 4: 提供回饋
|
|
339
|
+
|
|
340
|
+
1. Use comment prefixes (BLOCKING, SUGGESTION, etc.)
|
|
341
|
+
2. Be specific and provide examples
|
|
342
|
+
3. Acknowledge good code
|
|
343
|
+
4. Suggest alternatives when criticizing
|
|
344
|
+
|
|
345
|
+
#### Step 5: 核准或要求變更
|
|
346
|
+
|
|
347
|
+
- **Approve**: If no blocking issues
|
|
348
|
+
- **Request Changes**: If blocking issues present
|
|
349
|
+
- **Comment**: If only suggestions/questions
|
|
350
|
+
|
|
351
|
+
---
|
|
352
|
+
|
|
353
|
+
### 作者
|
|
354
|
+
|
|
355
|
+
#### 請求審查前
|
|
356
|
+
|
|
357
|
+
1. **自我審查程式碼**
|
|
358
|
+
2. **本地執行測試**
|
|
359
|
+
3. **檢查 CI 狀態**
|
|
360
|
+
4. **撰寫清楚的 PR 描述**
|
|
361
|
+
|
|
362
|
+
#### 審查期間
|
|
363
|
+
|
|
364
|
+
1. **及時回應**
|
|
365
|
+
2. **處理所有評論**
|
|
366
|
+
3. **不清楚時提問**
|
|
367
|
+
4. **快速推送修正**
|
|
368
|
+
|
|
369
|
+
#### 審查後
|
|
370
|
+
|
|
371
|
+
1. **標記對話已解決**
|
|
372
|
+
2. **需要時重新請求審查**
|
|
373
|
+
3. **感謝審查者**
|
|
374
|
+
|
|
375
|
+
---
|
|
376
|
+
|
|
377
|
+
## 審查自動化
|
|
378
|
+
|
|
379
|
+
### 自動化檢查
|
|
380
|
+
|
|
381
|
+
Configure these checks to run automatically:
|
|
382
|
+
|
|
383
|
+
```yaml
|
|
384
|
+
# Example: GitHub Actions
|
|
385
|
+
name: PR Quality Checks
|
|
386
|
+
|
|
387
|
+
on: [pull_request]
|
|
388
|
+
|
|
389
|
+
jobs:
|
|
390
|
+
quality:
|
|
391
|
+
runs-on: ubuntu-latest
|
|
392
|
+
steps:
|
|
393
|
+
- uses: actions/checkout@v4
|
|
394
|
+
|
|
395
|
+
# Build check
|
|
396
|
+
- name: Build
|
|
397
|
+
run: npm run build
|
|
398
|
+
|
|
399
|
+
# Test check
|
|
400
|
+
- name: Tests
|
|
401
|
+
run: npm test -- --coverage
|
|
402
|
+
|
|
403
|
+
# Linter check
|
|
404
|
+
- name: Lint
|
|
405
|
+
run: npm run lint
|
|
406
|
+
|
|
407
|
+
# Security check
|
|
408
|
+
- name: Security Audit
|
|
409
|
+
run: npm audit --audit-level=high
|
|
410
|
+
|
|
411
|
+
# Coverage check
|
|
412
|
+
- name: Coverage Report
|
|
413
|
+
run: |
|
|
414
|
+
coverage=$(npx nyc report | grep 'Lines' | awk '{print $3}' | sed 's/%//')
|
|
415
|
+
if (( $(echo "$coverage < 80" | bc -l) )); then
|
|
416
|
+
echo "Coverage $coverage% below 80%"
|
|
417
|
+
exit 1
|
|
418
|
+
fi
|
|
419
|
+
|
|
420
|
+
# Complexity check
|
|
421
|
+
- name: Complexity Check
|
|
422
|
+
run: npx eslint src --ext .js,.ts --max-warnings=0
|
|
423
|
+
```
|
|
424
|
+
|
|
425
|
+
---
|
|
426
|
+
|
|
427
|
+
## 程式碼審查反模式
|
|
428
|
+
|
|
429
|
+
### ❌ Nitpicking Style Without Auto-Formatting
|
|
430
|
+
|
|
431
|
+
**Problem**: Spending review time on formatting issues
|
|
432
|
+
**Solution**: Use automated formatters (Prettier, Black, etc.)
|
|
433
|
+
|
|
434
|
+
---
|
|
435
|
+
|
|
436
|
+
### ❌ Approving Without Reading
|
|
437
|
+
|
|
438
|
+
**Problem**: Rubber-stamp approvals
|
|
439
|
+
**Solution**: Actually review the code, or decline to review
|
|
440
|
+
|
|
441
|
+
---
|
|
442
|
+
|
|
443
|
+
### ❌ Being Vague
|
|
444
|
+
|
|
445
|
+
**Bad**: "This doesn't look right"
|
|
446
|
+
**Good**: "Line 45: This condition will always be true because X. Consider Y instead."
|
|
447
|
+
|
|
448
|
+
---
|
|
449
|
+
|
|
450
|
+
### ❌ Blocking on Personal Preferences
|
|
451
|
+
|
|
452
|
+
**Bad**: "I don't like ternary operators, please use if-else"
|
|
453
|
+
**Good**: "💡 SUGGESTION: You could use if-else here for clarity (personal preference)"
|
|
454
|
+
|
|
455
|
+
---
|
|
456
|
+
|
|
457
|
+
### ❌ Not Explaining WHY
|
|
458
|
+
|
|
459
|
+
**Bad**: "Change this"
|
|
460
|
+
**Good**: "Change this because it creates a memory leak when the array grows beyond 10k items"
|
|
461
|
+
|
|
462
|
+
---
|
|
463
|
+
|
|
464
|
+
### ❌ Reviewing Too Much at Once
|
|
465
|
+
|
|
466
|
+
**Problem**: 500+ line PRs are hard to review thoroughly
|
|
467
|
+
**Solution**: Break large changes into smaller PRs
|
|
468
|
+
|
|
469
|
+
---
|
|
470
|
+
|
|
471
|
+
## 審查時間指引
|
|
472
|
+
|
|
473
|
+
### 目標回應時間
|
|
474
|
+
|
|
475
|
+
| PR Size | Initial Response | Complete Review |
|
|
476
|
+
|---------|------------------|-----------------|
|
|
477
|
+
| < 50 lines | 2 hours | 4 hours |
|
|
478
|
+
| 50-200 lines | 4 hours | 1 day |
|
|
479
|
+
| 200-500 lines | 1 day | 2 days |
|
|
480
|
+
| > 500 lines | 🚨 Consider splitting | 3+ days |
|
|
481
|
+
|
|
482
|
+
### 審查者可用性
|
|
483
|
+
|
|
484
|
+
- Set "review hours" in team calendar
|
|
485
|
+
- Use GitHub/GitLab "away" status when unavailable
|
|
486
|
+
- Assign backup reviewers for urgent PRs
|
|
487
|
+
|
|
488
|
+
---
|
|
489
|
+
|
|
490
|
+
## 特殊情況
|
|
491
|
+
|
|
492
|
+
### 緊急修復審查
|
|
493
|
+
|
|
494
|
+
- **加速流程**
|
|
495
|
+
- Focus on: correctness, security, rollback plan
|
|
496
|
+
- Skip: minor style issues, nice-to-have optimizations
|
|
497
|
+
- **Post-merge review** allowed for critical issues
|
|
498
|
+
|
|
499
|
+
---
|
|
500
|
+
|
|
501
|
+
### 依賴更新
|
|
502
|
+
|
|
503
|
+
- Check CHANGELOG for breaking changes
|
|
504
|
+
- Verify test pass
|
|
505
|
+
- Review security advisories
|
|
506
|
+
- Consider automated with Dependabot/Renovate
|
|
507
|
+
|
|
508
|
+
---
|
|
509
|
+
|
|
510
|
+
### 僅文件變更
|
|
511
|
+
|
|
512
|
+
- Check for accuracy
|
|
513
|
+
- Verify formatting (Markdown, etc.)
|
|
514
|
+
- Ensure examples are runnable
|
|
515
|
+
- Lighter review acceptable
|
|
516
|
+
|
|
517
|
+
---
|
|
518
|
+
|
|
519
|
+
### 重構 PR
|
|
520
|
+
|
|
521
|
+
重構變更需要特別注意,以確保行為保持不變的同時改善程式碼品質。
|
|
522
|
+
|
|
523
|
+
#### 審查前檢查清單
|
|
524
|
+
|
|
525
|
+
- [ ] **範圍已記錄**:PR 描述中清楚說明重構範圍
|
|
526
|
+
- [ ] **純重構**:沒有功能變更混入重構
|
|
527
|
+
- [ ] **測試通過**:重構前後所有測試皆通過
|
|
528
|
+
- [ ] **覆蓋率維持**:測試覆蓋率未下降
|
|
529
|
+
|
|
530
|
+
#### 審查重點
|
|
531
|
+
|
|
532
|
+
- [ ] **程式碼異味已處理**:修復了哪些異味?(Long Method、Duplicate Code 等)
|
|
533
|
+
- [ ] **重構模式正確**:是否套用了正確的技術?
|
|
534
|
+
- [ ] **命名改善**:新名稱是否有意義且一致?
|
|
535
|
+
- [ ] **複雜度降低**:程式碼是否可量化地更簡單?(考慮 cyclomatic complexity)
|
|
536
|
+
- [ ] **耦合降低**:依賴關係是否更清晰?
|
|
537
|
+
|
|
538
|
+
#### 大型重構(>500 行變更)
|
|
539
|
+
|
|
540
|
+
- [ ] **計畫已記錄**:連結到重構計畫或設計文件
|
|
541
|
+
- [ ] **增量提交**:每個 commit 可獨立審查
|
|
542
|
+
- [ ] **回滾策略**:如何在問題發生時復原?
|
|
543
|
+
- [ ] **效能評估**:是否影響執行時期效能?
|
|
544
|
+
- [ ] **特徵測試**:遺留程式碼已受行為捕捉測試保護
|
|
545
|
+
|
|
546
|
+
#### 警示信號
|
|
547
|
+
|
|
548
|
+
- ❗ **隱藏新功能**:功能變更偽裝成重構
|
|
549
|
+
- ❗ **測試行為變更**:斷言被修改而非保留
|
|
550
|
+
- ❗ **缺少文件**:沒有說明改了什麼或為什麼改
|
|
551
|
+
- ❗ **無關變更**:格式修正混入邏輯重構
|
|
552
|
+
|
|
553
|
+
#### 最佳實踐
|
|
554
|
+
|
|
555
|
+
- 偏好**多個小 PR** 而非一個大型重構 PR
|
|
556
|
+
- PR 標題使用 **[Refactor]** 前綴以便篩選
|
|
557
|
+
- 包含**重構前後**的程式碼片段或複雜度指標
|
|
558
|
+
- 參考所處理的**程式碼異味**(例如:「修復 UserService.process() 中的 Long Method」)
|
|
559
|
+
|
|
560
|
+
---
|
|
561
|
+
|
|
562
|
+
## 專案特定化
|
|
563
|
+
|
|
564
|
+
Add to `CONTRIBUTING.md`:
|
|
565
|
+
|
|
566
|
+
```markdown
|
|
567
|
+
## Code Review Guidelines
|
|
568
|
+
|
|
569
|
+
### Required Reviewers
|
|
570
|
+
- Backend changes: @backend-team
|
|
571
|
+
- Frontend changes: @frontend-team
|
|
572
|
+
- Database migrations: @db-admin + @backend-lead
|
|
573
|
+
- Security-sensitive: @security-team
|
|
574
|
+
|
|
575
|
+
### Review SLA
|
|
576
|
+
- Small PRs (<100 lines): 4 hours
|
|
577
|
+
- Medium PRs (100-300 lines): 1 day
|
|
578
|
+
- Large PRs (>300 lines): 2 days
|
|
579
|
+
|
|
580
|
+
### Approval Requirements
|
|
581
|
+
- **Standard PRs**: 1 approval
|
|
582
|
+
- **Critical path code**: 2 approvals
|
|
583
|
+
- **Security changes**: 2 approvals (including security team)
|
|
584
|
+
|
|
585
|
+
### Review Focus Areas
|
|
586
|
+
1. [Project-specific concern 1]
|
|
587
|
+
2. [Project-specific concern 2]
|
|
588
|
+
3. [Project-specific concern 3]
|
|
589
|
+
|
|
590
|
+
### Automated Checks
|
|
591
|
+
All PRs must pass:
|
|
592
|
+
- ✅ Build
|
|
593
|
+
- ✅ Unit tests (>80% coverage)
|
|
594
|
+
- ✅ Integration tests
|
|
595
|
+
- ✅ Linter (0 errors, <5 warnings)
|
|
596
|
+
- ✅ Security scan (no high/critical vulnerabilities)
|
|
597
|
+
```
|
|
598
|
+
|
|
599
|
+
---
|
|
600
|
+
|
|
601
|
+
## 工具與整合
|
|
602
|
+
|
|
603
|
+
### 程式碼審查平台
|
|
604
|
+
|
|
605
|
+
- **GitHub Pull Requests**
|
|
606
|
+
- **GitLab Merge Requests**
|
|
607
|
+
- **Bitbucket Pull Requests**
|
|
608
|
+
- **Gerrit** (for git-native workflows)
|
|
609
|
+
- **Review Board**
|
|
610
|
+
|
|
611
|
+
### 檢查與格式化工具
|
|
612
|
+
|
|
613
|
+
| Language | Linter | Formatter |
|
|
614
|
+
|----------|--------|-----------|
|
|
615
|
+
| JavaScript/TypeScript | ESLint | Prettier |
|
|
616
|
+
| Python | Pylint, Flake8 | Black |
|
|
617
|
+
| C# | StyleCop, Roslyn Analyzers | dotnet format |
|
|
618
|
+
| Java | Checkstyle, PMD | Google Java Format |
|
|
619
|
+
| Go | golangci-lint | gofmt |
|
|
620
|
+
| Ruby | RuboCop | RuboCop |
|
|
621
|
+
|
|
622
|
+
### 靜態分析
|
|
623
|
+
|
|
624
|
+
- **SonarQube** - Code quality and security
|
|
625
|
+
- **CodeClimate** - Maintainability analysis
|
|
626
|
+
- **Snyk** - Security vulnerabilities
|
|
627
|
+
- **Coveralls** - Code coverage tracking
|
|
628
|
+
|
|
629
|
+
---
|
|
630
|
+
|
|
631
|
+
## 快速參考卡
|
|
632
|
+
|
|
633
|
+
```
|
|
634
|
+
┌─────────────────────────────────────────┐
|
|
635
|
+
│ Code Review Quick Checklist │
|
|
636
|
+
├─────────────────────────────────────────┤
|
|
637
|
+
│ ✓ Functionality - Does it work? │
|
|
638
|
+
│ ✓ Design - Right architecture? │
|
|
639
|
+
│ ✓ Quality - Clean code? │
|
|
640
|
+
│ ✓ Readability - Easy to understand? │
|
|
641
|
+
│ ✓ Tests - Adequate coverage? │
|
|
642
|
+
│ ✓ Security - No vulnerabilities? │
|
|
643
|
+
│ ✓ Performance - Efficient? │
|
|
644
|
+
│ ✓ Errors - Properly handled? │
|
|
645
|
+
│ ✓ Docs - Updated? │
|
|
646
|
+
│ ✓ Dependencies - Necessary? │
|
|
647
|
+
└─────────────────────────────────────────┘
|
|
648
|
+
|
|
649
|
+
Comment Prefixes:
|
|
650
|
+
❗ BLOCKING - Must fix
|
|
651
|
+
⚠️ IMPORTANT - Should fix
|
|
652
|
+
💡 SUGGESTION - Nice to have
|
|
653
|
+
❓ QUESTION - Need clarification
|
|
654
|
+
📝 NOTE - Informational
|
|
655
|
+
```
|
|
656
|
+
|
|
657
|
+
---
|
|
658
|
+
|
|
659
|
+
## 版本歷史
|
|
660
|
+
|
|
661
|
+
| Version | Date | Changes |
|
|
662
|
+
|---------|------|---------|
|
|
663
|
+
| 1.3.0 | 2026-01-12 | 新增:完整重構 PR 段落,包含審查前檢查清單、審查重點、大型重構指南、警示信號及最佳實踐 |
|
|
664
|
+
| 1.2.0 | 2026-01-05 | 新增:SWEBOK v4.0 第 10 章(軟體品質)至參考資料 |
|
|
665
|
+
| 1.1.0 | 2025-12-22 | Added: Alternative text labels section for review comments (中文標籤支援) |
|
|
666
|
+
| 1.0.3 | 2025-12-16 | Clarified: CHANGELOG section aligned with changelog-standards.md, use markdown links for cross-references |
|
|
667
|
+
| 1.0.2 | 2025-12-05 | Added: Reference to testing-standards.md |
|
|
668
|
+
| 1.0.1 | 2025-12-04 | Updated: GitHub Actions checkout to v4, cross-reference to versioning.md |
|
|
669
|
+
| 1.0.0 | 2025-11-12 | Initial code review checklist |
|
|
670
|
+
|
|
671
|
+
---
|
|
672
|
+
|
|
673
|
+
## 相關標準
|
|
674
|
+
|
|
675
|
+
- [Refactoring Standards](refactoring-standards.md) - 重構標準(遺留程式碼策略、大規模模式、度量指標)
|
|
676
|
+
- [Testing Standards](testing-standards.md) - 測試標準 (UT/IT/ST/E2E)(或使用 `/testing-guide` 技能)
|
|
677
|
+
- [Code Check-in Standards](checkin-standards.md) - 程式碼簽入標準
|
|
678
|
+
- [Commit Message Guide](commit-message-guide.md) - Commit 訊息規範
|
|
679
|
+
|
|
680
|
+
---
|
|
681
|
+
|
|
682
|
+
## 參考資料
|
|
683
|
+
|
|
684
|
+
- [Google Engineering Practices - Code Review](https://google.github.io/eng-practices/review/)
|
|
685
|
+
- [Microsoft Code Review Guidelines](https://docs.microsoft.com/en-us/azure/devops/repos/git/pull-requests)
|
|
686
|
+
- [Effective Code Reviews](https://www.oreilly.com/library/view/making-software/9780596808310/)
|
|
687
|
+
- [SWEBOK v4.0 - 第 10 章:軟體品質](https://www.computer.org/education/bodies-of-knowledge/software-engineering) - IEEE Computer Society
|
|
688
|
+
|
|
689
|
+
---
|
|
690
|
+
|
|
691
|
+
## 授權
|
|
692
|
+
|
|
693
|
+
本標準以 [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/) 授權發布。
|