universal-dev-standards 4.1.0 → 5.0.0-beta.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -3
- package/bin/uds.js +239 -4
- package/bundled/core/acceptance-test-driven-development.md +19 -721
- package/bundled/core/accessibility-standards.md +862 -0
- package/bundled/core/ai-agreement-standards.md +95 -0
- package/bundled/core/ai-friendly-architecture.md +544 -0
- package/bundled/core/ai-instruction-standards.md +2 -0
- package/bundled/core/anti-hallucination.md +90 -637
- package/bundled/core/behavior-driven-development.md +20 -735
- package/bundled/core/changelog-standards.md +4 -0
- package/bundled/core/checkin-standards.md +21 -4
- package/bundled/core/code-review-checklist.md +3 -0
- package/bundled/core/commit-message-guide.md +14 -3
- package/bundled/core/deployment-standards.md +296 -0
- package/bundled/core/developer-memory.md +568 -0
- package/bundled/core/documentation-structure.md +114 -18
- package/bundled/core/documentation-writing-standards.md +272 -2
- package/bundled/core/error-code-standards.md +3 -0
- package/bundled/core/forward-derivation-standards.md +134 -8
- package/bundled/core/git-workflow.md +72 -686
- package/bundled/core/guides/anti-hallucination-guide.md +517 -0
- package/bundled/core/guides/git-workflow-guide.md +954 -0
- package/bundled/core/guides/performance-guide.md +508 -0
- package/bundled/core/guides/refactoring-guide.md +608 -0
- package/bundled/core/guides/security-guide.md +485 -0
- package/bundled/core/logging-standards.md +337 -2
- package/bundled/core/performance-standards.md +231 -0
- package/bundled/core/project-context-memory.md +180 -0
- package/bundled/core/project-structure.md +315 -2
- package/bundled/core/refactoring-standards.md +81 -761
- package/bundled/core/requirement-engineering.md +39 -0
- package/bundled/core/reverse-engineering-standards.md +6 -4
- package/bundled/core/security-standards.md +244 -0
- package/bundled/core/spec-driven-development.md +20 -319
- package/bundled/core/test-completeness-dimensions.md +213 -11
- package/bundled/core/test-driven-development.md +22 -978
- package/bundled/core/testing-standards.md +222 -2903
- package/bundled/core/versioning.md +16 -55
- package/bundled/core/virtual-organization-standards.md +85 -0
- package/bundled/locales/README.md +4 -4
- package/bundled/locales/zh-CN/CHANGELOG.md +18 -18
- package/bundled/locales/zh-CN/CLAUDE.md +3 -3
- package/bundled/locales/zh-CN/MAINTENANCE.md +7 -7
- package/bundled/locales/zh-CN/README.md +211 -510
- package/bundled/locales/zh-CN/STANDARDS-MAPPING.md +1 -1
- package/bundled/locales/zh-CN/adoption/ADOPTION-GUIDE.md +3 -3
- package/bundled/locales/zh-CN/adoption/DAILY-WORKFLOW-GUIDE.md +66 -7
- package/bundled/locales/zh-CN/adoption/STATIC-DYNAMIC-GUIDE.md +22 -22
- package/bundled/locales/zh-CN/adoption/checklists/enterprise.md +5 -5
- package/bundled/locales/zh-CN/adoption/checklists/minimal.md +4 -4
- package/bundled/locales/zh-CN/adoption/checklists/recommended.md +5 -5
- package/bundled/locales/zh-CN/ai/MAINTENANCE.md +13 -13
- package/bundled/locales/zh-CN/core/ai-friendly-architecture.md +306 -0
- package/bundled/locales/zh-CN/core/ai-instruction-standards.md +1 -1
- package/bundled/locales/zh-CN/core/anti-hallucination.md +39 -3
- package/bundled/locales/zh-CN/core/checkin-standards.md +18 -5
- package/bundled/locales/zh-CN/core/commit-message-guide.md +1 -1
- package/bundled/locales/zh-CN/core/developer-memory.md +576 -0
- package/bundled/locales/zh-CN/core/documentation-structure.md +43 -5
- package/bundled/locales/zh-CN/core/documentation-writing-standards.md +146 -5
- package/bundled/locales/zh-CN/core/git-workflow.md +179 -4
- package/bundled/locales/zh-CN/core/logging-standards.md +177 -4
- package/bundled/locales/zh-CN/core/project-structure.md +117 -5
- package/bundled/locales/zh-CN/core/refactoring-standards.md +3 -3
- package/bundled/locales/zh-CN/core/reverse-engineering-standards.md +6 -6
- package/bundled/locales/zh-CN/core/spec-driven-development.md +516 -14
- package/bundled/locales/zh-CN/core/test-completeness-dimensions.md +155 -24
- package/bundled/locales/zh-CN/core/test-driven-development.md +71 -20
- package/bundled/locales/zh-CN/core/testing-standards.md +4 -4
- package/bundled/locales/zh-CN/core/versioning.md +1 -1
- package/bundled/locales/zh-CN/docs/AI-AGENT-ROADMAP.md +145 -46
- package/bundled/locales/zh-CN/docs/CHEATSHEET.md +184 -0
- package/bundled/locales/zh-CN/docs/CLI-FLOW.md +239 -0
- package/bundled/locales/zh-CN/docs/FEATURE-REFERENCE.md +320 -0
- package/bundled/locales/zh-CN/docs/OPERATION-WORKFLOW.md +43 -43
- package/bundled/locales/zh-CN/docs/STANDARDS-REFERENCE.md +440 -0
- package/bundled/locales/zh-CN/docs/USAGE-MODES-COMPARISON.md +1 -1
- package/bundled/locales/zh-CN/docs/WINDOWS-GUIDE.md +1 -1
- package/bundled/locales/zh-CN/integrations/codex/README.md +3 -3
- package/bundled/locales/zh-CN/integrations/gemini-cli/GEMINI.md +35 -3
- package/bundled/locales/zh-CN/integrations/gemini-cli/README.md +3 -3
- package/bundled/locales/zh-CN/integrations/github-copilot/COPILOT-CHAT-REFERENCE.md +89 -3
- package/bundled/locales/zh-CN/integrations/github-copilot/README.md +5 -5
- package/bundled/locales/zh-CN/integrations/github-copilot/copilot-instructions.md +9 -9
- package/bundled/locales/zh-CN/integrations/github-copilot/skills-mapping.md +23 -7
- package/bundled/locales/zh-CN/integrations/google-antigravity/README.md +2 -2
- package/bundled/locales/zh-CN/integrations/opencode/README.md +3 -3
- package/bundled/locales/zh-CN/integrations/opencode/skills-mapping.md +22 -10
- package/bundled/locales/zh-CN/integrations/openspec/README.md +1 -1
- package/bundled/locales/zh-CN/integrations/spec-kit/AGENTS.md +3 -3
- package/bundled/locales/zh-CN/integrations/spec-kit/README.md +1 -1
- package/bundled/locales/zh-CN/options/commit-message/bilingual.md +1 -1
- package/bundled/locales/zh-CN/options/commit-message/english.md +1 -1
- package/bundled/locales/zh-CN/options/commit-message/traditional-chinese.md +1 -1
- package/bundled/locales/zh-CN/options/git-workflow/gitflow.md +1 -1
- package/bundled/locales/zh-CN/options/git-workflow/github-flow.md +1 -1
- package/bundled/locales/zh-CN/options/git-workflow/merge-commit.md +1 -1
- package/bundled/locales/zh-CN/options/git-workflow/rebase-ff.md +1 -1
- package/bundled/locales/zh-CN/options/git-workflow/squash-merge.md +1 -1
- package/bundled/locales/zh-CN/options/git-workflow/trunk-based.md +1 -1
- package/bundled/locales/zh-CN/options/project-structure/dotnet.md +1 -1
- package/bundled/locales/zh-CN/options/project-structure/go.md +1 -1
- package/bundled/locales/zh-CN/options/project-structure/java.md +1 -1
- package/bundled/locales/zh-CN/options/project-structure/nodejs.md +1 -1
- package/bundled/locales/zh-CN/options/project-structure/python.md +1 -1
- package/bundled/locales/zh-CN/options/testing/e2e-testing.md +1 -1
- package/bundled/locales/zh-CN/options/testing/integration-testing.md +1 -1
- package/bundled/locales/zh-CN/options/testing/system-testing.md +1 -1
- package/bundled/locales/zh-CN/options/testing/unit-testing.md +1 -1
- package/bundled/locales/zh-CN/skills/{claude-code/CONTRIBUTING.template.md → CONTRIBUTING.template.md} +2 -2
- package/bundled/locales/zh-CN/skills/README.md +131 -81
- package/bundled/locales/zh-CN/skills/agents/README.md +281 -0
- package/bundled/locales/zh-CN/skills/{claude-code/ai-collaboration-standards → ai-collaboration-standards}/SKILL.md +10 -10
- package/bundled/locales/zh-CN/skills/{claude-code/ai-collaboration-standards → ai-collaboration-standards}/anti-hallucination.md +8 -8
- package/bundled/locales/zh-CN/skills/{claude-code/ai-collaboration-standards → ai-collaboration-standards}/certainty-labels.md +8 -8
- package/bundled/locales/zh-CN/skills/ai-friendly-architecture/SKILL.md +221 -0
- package/bundled/locales/zh-CN/skills/ai-instruction-standards/SKILL.md +214 -0
- package/bundled/locales/zh-CN/skills/atdd-assistant/SKILL.md +71 -0
- package/bundled/locales/zh-CN/skills/atdd-assistant/acceptance-criteria-guide.md +428 -0
- package/bundled/locales/zh-CN/skills/atdd-assistant/atdd-workflow.md +484 -0
- package/bundled/locales/zh-CN/skills/atdd-assistant/guide.md +368 -0
- package/bundled/locales/zh-CN/skills/bdd-assistant/SKILL.md +68 -0
- package/bundled/locales/zh-CN/skills/bdd-assistant/bdd-workflow.md +406 -0
- package/bundled/locales/zh-CN/skills/bdd-assistant/gherkin-guide.md +454 -0
- package/bundled/locales/zh-CN/skills/bdd-assistant/guide.md +324 -0
- package/bundled/locales/zh-CN/skills/changelog-guide/SKILL.md +64 -0
- package/bundled/locales/zh-CN/skills/{claude-code/changelog-guide/SKILL.md → changelog-guide/guide.md} +6 -7
- package/bundled/locales/zh-CN/skills/checkin-assistant/SKILL.md +56 -0
- package/bundled/locales/zh-CN/skills/{claude-code/checkin-assistant/SKILL.md → checkin-assistant/guide.md} +6 -7
- package/bundled/locales/zh-CN/skills/code-review-assistant/SKILL.md +56 -0
- package/bundled/locales/zh-CN/skills/{claude-code/code-review-assistant → code-review-assistant}/checkin-checklist.md +4 -4
- package/bundled/locales/zh-CN/skills/{claude-code/code-review-assistant/SKILL.md → code-review-assistant/guide.md} +5 -6
- package/bundled/locales/zh-CN/skills/{claude-code/code-review-assistant → code-review-assistant}/review-checklist.md +4 -4
- package/bundled/locales/zh-CN/skills/{claude-code/commands → commands}/bdd.md +2 -2
- package/bundled/locales/zh-CN/skills/{claude-code/commands → commands}/methodology.md +3 -3
- package/bundled/locales/zh-CN/skills/{claude-code/commands → commands}/refactor.md +3 -3
- package/bundled/locales/zh-CN/skills/commit-standards/SKILL.md +61 -0
- package/bundled/locales/zh-CN/skills/{claude-code/commit-standards → commit-standards}/conventional-commits.md +4 -4
- package/bundled/locales/zh-CN/skills/{claude-code/commit-standards/SKILL.md → commit-standards/guide.md} +5 -6
- package/bundled/locales/zh-CN/skills/{claude-code/commit-standards → commit-standards}/language-options.md +3 -3
- package/bundled/locales/zh-CN/skills/docs-generator/SKILL.md +59 -0
- package/bundled/locales/zh-CN/skills/docs-generator/guide.md +262 -0
- package/bundled/locales/zh-CN/skills/{claude-code/documentation-guide → documentation-guide}/SKILL.md +7 -8
- package/bundled/locales/zh-CN/skills/{claude-code/documentation-guide → documentation-guide}/documentation-structure.md +4 -4
- package/bundled/locales/zh-CN/skills/{claude-code/documentation-guide → documentation-guide}/readme-template.md +3 -3
- package/bundled/locales/zh-CN/skills/{claude-code/error-code-guide → error-code-guide}/SKILL.md +6 -6
- package/bundled/locales/zh-CN/skills/forward-derivation/SKILL.md +62 -0
- package/bundled/locales/zh-CN/skills/forward-derivation/guide.md +130 -0
- package/bundled/locales/zh-CN/skills/{claude-code/git-workflow-guide → git-workflow-guide}/SKILL.md +6 -6
- package/bundled/locales/zh-CN/skills/{claude-code/git-workflow-guide → git-workflow-guide}/branch-naming.md +3 -3
- package/bundled/locales/zh-CN/skills/{claude-code/git-workflow-guide → git-workflow-guide}/git-workflow.md +4 -4
- package/bundled/locales/zh-CN/skills/{claude-code/logging-guide → logging-guide}/SKILL.md +6 -6
- package/bundled/locales/zh-CN/skills/methodology-system/SKILL.md +78 -0
- package/bundled/locales/zh-CN/skills/{claude-code/methodology-system → methodology-system}/create-methodology.md +2 -2
- package/bundled/locales/zh-CN/skills/{claude-code/methodology-system/SKILL.md → methodology-system/guide.md} +2 -2
- package/bundled/locales/zh-CN/skills/{claude-code/methodology-system → methodology-system}/runtime.md +3 -3
- package/bundled/locales/zh-CN/skills/project-discovery/SKILL.md +66 -0
- package/bundled/locales/zh-CN/skills/project-discovery/guide.md +371 -0
- package/bundled/locales/zh-CN/skills/{claude-code/project-structure-guide → project-structure-guide}/SKILL.md +4 -4
- package/bundled/locales/zh-CN/skills/{claude-code/project-structure-guide → project-structure-guide}/language-patterns.md +1 -1
- package/bundled/locales/zh-CN/skills/refactoring-assistant/SKILL.md +67 -0
- package/bundled/locales/zh-CN/skills/{claude-code/refactoring-assistant/SKILL.md → refactoring-assistant/guide.md} +7 -8
- package/bundled/locales/zh-CN/skills/release-standards/SKILL.md +64 -0
- package/bundled/locales/zh-CN/skills/{claude-code/release-standards → release-standards}/changelog-format.md +3 -3
- package/bundled/locales/zh-CN/skills/{claude-code/release-standards/SKILL.md → release-standards/guide.md} +5 -6
- package/bundled/locales/zh-CN/skills/{claude-code/release-standards → release-standards}/release-workflow.md +7 -7
- package/bundled/locales/zh-CN/skills/{claude-code/release-standards → release-standards}/semantic-versioning.md +3 -3
- package/bundled/locales/zh-CN/skills/requirement-assistant/SKILL.md +67 -0
- package/bundled/locales/zh-CN/skills/{claude-code/requirement-assistant/SKILL.md → requirement-assistant/guide.md} +4 -5
- package/bundled/locales/zh-CN/skills/{claude-code/requirement-assistant → requirement-assistant}/requirement-checklist.md +3 -3
- package/bundled/locales/zh-CN/skills/{claude-code/requirement-assistant → requirement-assistant}/requirement-writing.md +3 -3
- package/bundled/locales/zh-CN/skills/reverse-engineer/SKILL.md +67 -0
- package/bundled/locales/zh-CN/skills/{claude-code/reverse-engineer → reverse-engineer}/bdd-extraction.md +2 -2
- package/bundled/locales/zh-CN/skills/{claude-code/reverse-engineer/SKILL.md → reverse-engineer/guide.md} +17 -18
- package/bundled/locales/zh-CN/skills/{claude-code/reverse-engineer → reverse-engineer}/tdd-analysis.md +2 -2
- package/bundled/locales/zh-CN/skills/{claude-code/reverse-engineer → reverse-engineer}/workflow.md +3 -3
- package/bundled/locales/zh-CN/skills/spec-driven-dev/SKILL.md +75 -0
- package/bundled/locales/zh-CN/skills/{claude-code/spec-driven-dev/SKILL.md → spec-driven-dev/guide.md} +10 -11
- package/bundled/locales/zh-CN/skills/tdd-assistant/SKILL.md +66 -0
- package/bundled/locales/zh-CN/skills/{claude-code/tdd-assistant/SKILL.md → tdd-assistant/guide.md} +12 -16
- package/bundled/locales/zh-CN/skills/{claude-code/tdd-assistant → tdd-assistant}/language-examples.md +3 -3
- package/bundled/locales/zh-CN/skills/{claude-code/tdd-assistant → tdd-assistant}/tdd-workflow.md +3 -3
- package/bundled/locales/zh-CN/skills/test-coverage-assistant/SKILL.md +65 -0
- package/bundled/locales/zh-CN/skills/test-coverage-assistant/guide.md +284 -0
- package/bundled/locales/zh-CN/skills/{claude-code/testing-guide → testing-guide}/SKILL.md +8 -8
- package/bundled/locales/zh-CN/skills/{claude-code/testing-guide → testing-guide}/testing-pyramid.md +4 -4
- package/bundled/locales/zh-CN/skills/{cline → tools/cline}/README.md +1 -1
- package/bundled/locales/zh-CN/skills/{copilot → tools/copilot}/README.md +1 -1
- package/bundled/locales/zh-CN/skills/{copilot → tools/copilot}/copilot-instructions.md +1 -1
- package/bundled/locales/zh-CN/skills/{cursor → tools/cursor}/README.md +1 -1
- package/bundled/locales/zh-CN/skills/{windsurf → tools/windsurf}/README.md +1 -1
- package/bundled/locales/zh-TW/CHANGELOG.md +16 -16
- package/bundled/locales/zh-TW/CLAUDE.md +3 -3
- package/bundled/locales/zh-TW/MAINTENANCE.md +7 -7
- package/bundled/locales/zh-TW/README.md +217 -490
- package/bundled/locales/zh-TW/STANDARDS-MAPPING.md +1 -1
- package/bundled/locales/zh-TW/adoption/ADOPTION-GUIDE.md +4 -4
- package/bundled/locales/zh-TW/adoption/DAILY-WORKFLOW-GUIDE.md +66 -7
- package/bundled/locales/zh-TW/adoption/STATIC-DYNAMIC-GUIDE.md +22 -22
- package/bundled/locales/zh-TW/adoption/checklists/enterprise.md +5 -5
- package/bundled/locales/zh-TW/adoption/checklists/minimal.md +4 -4
- package/bundled/locales/zh-TW/adoption/checklists/recommended.md +5 -5
- package/bundled/locales/zh-TW/ai/MAINTENANCE.md +13 -13
- package/bundled/locales/zh-TW/ai/standards/anti-hallucination.ai.yaml +3 -2
- package/bundled/locales/zh-TW/ai/standards/git-workflow.ai.yaml +4 -3
- package/bundled/locales/zh-TW/ai/standards/spec-driven-development.ai.yaml +3 -3
- package/bundled/locales/zh-TW/ai/standards/testing.ai.yaml +1 -0
- package/bundled/locales/zh-TW/core/ai-friendly-architecture.md +306 -0
- package/bundled/locales/zh-TW/core/ai-instruction-standards.md +1 -1
- package/bundled/locales/zh-TW/core/anti-hallucination.md +38 -701
- package/bundled/locales/zh-TW/core/changelog-standards.md +1 -1
- package/bundled/locales/zh-TW/core/checkin-standards.md +18 -5
- package/bundled/locales/zh-TW/core/code-review-checklist.md +1 -1
- package/bundled/locales/zh-TW/core/commit-message-guide.md +1 -1
- package/bundled/locales/zh-TW/core/developer-memory.md +576 -0
- package/bundled/locales/zh-TW/core/documentation-structure.md +115 -22
- package/bundled/locales/zh-TW/core/documentation-writing-standards.md +126 -5
- package/bundled/locales/zh-TW/core/forward-derivation-standards.md +2 -2
- package/bundled/locales/zh-TW/core/git-workflow.md +38 -812
- package/bundled/locales/zh-TW/core/guides/anti-hallucination-guide.md +779 -0
- package/bundled/locales/zh-TW/core/guides/git-workflow-guide.md +1016 -0
- package/bundled/locales/zh-TW/core/guides/refactoring-guide.md +864 -0
- package/bundled/locales/zh-TW/core/guides/testing-guide.md +2280 -0
- package/bundled/locales/zh-TW/core/logging-standards.md +159 -4
- package/bundled/locales/zh-TW/core/project-structure.md +102 -9
- package/bundled/locales/zh-TW/core/refactoring-standards.md +37 -823
- package/bundled/locales/zh-TW/core/reverse-engineering-standards.md +6 -6
- package/bundled/locales/zh-TW/core/spec-driven-development.md +17 -268
- package/bundled/locales/zh-TW/core/test-completeness-dimensions.md +128 -14
- package/bundled/locales/zh-TW/core/test-driven-development.md +20 -983
- package/bundled/locales/zh-TW/core/testing-standards.md +120 -2105
- package/bundled/locales/zh-TW/core/versioning.md +13 -55
- package/bundled/locales/zh-TW/docs/AI-AGENT-ROADMAP.md +145 -46
- package/bundled/locales/zh-TW/docs/CHEATSHEET.md +184 -0
- package/bundled/locales/zh-TW/docs/CLI-FLOW.md +239 -0
- package/bundled/locales/zh-TW/docs/FEATURE-REFERENCE.md +320 -0
- package/bundled/locales/zh-TW/docs/MIGRATION-V5.md +71 -0
- package/bundled/locales/zh-TW/docs/OPERATION-WORKFLOW.md +42 -42
- package/bundled/locales/zh-TW/docs/STANDARDS-REFERENCE.md +440 -0
- package/bundled/locales/zh-TW/docs/USAGE-MODES-COMPARISON.md +1 -1
- package/bundled/locales/zh-TW/docs/WINDOWS-GUIDE.md +1 -1
- package/bundled/locales/zh-TW/integrations/claude-code/README.md +44 -0
- package/bundled/locales/zh-TW/integrations/gemini-cli/GEMINI.md +35 -3
- package/bundled/locales/zh-TW/integrations/github-copilot/COPILOT-CHAT-REFERENCE.md +89 -3
- package/bundled/locales/zh-TW/integrations/github-copilot/copilot-instructions.md +3 -3
- package/bundled/locales/zh-TW/integrations/github-copilot/skills-mapping.md +23 -7
- package/bundled/locales/zh-TW/integrations/opencode/skills-mapping.md +22 -10
- package/bundled/locales/zh-TW/methodologies/guides/sdd-guide.md +338 -0
- package/bundled/locales/zh-TW/methodologies/guides/tdd-guide.md +1055 -0
- package/bundled/locales/zh-TW/options/commit-message/bilingual.md +1 -1
- package/bundled/locales/zh-TW/options/commit-message/english.md +1 -1
- package/bundled/locales/zh-TW/options/commit-message/traditional-chinese.md +1 -1
- package/bundled/locales/zh-TW/options/git-workflow/gitflow.md +1 -1
- package/bundled/locales/zh-TW/options/git-workflow/github-flow.md +1 -1
- package/bundled/locales/zh-TW/options/git-workflow/merge-commit.md +1 -1
- package/bundled/locales/zh-TW/options/git-workflow/rebase-ff.md +1 -1
- package/bundled/locales/zh-TW/options/git-workflow/squash-merge.md +1 -1
- package/bundled/locales/zh-TW/options/git-workflow/trunk-based.md +1 -1
- package/bundled/locales/zh-TW/options/project-structure/dotnet.md +1 -1
- package/bundled/locales/zh-TW/options/project-structure/go.md +1 -1
- package/bundled/locales/zh-TW/options/project-structure/java.md +1 -1
- package/bundled/locales/zh-TW/options/project-structure/nodejs.md +1 -1
- package/bundled/locales/zh-TW/options/project-structure/python.md +1 -1
- package/bundled/locales/zh-TW/options/testing/e2e-testing.md +1 -1
- package/bundled/locales/zh-TW/options/testing/integration-testing.md +1 -1
- package/bundled/locales/zh-TW/options/testing/system-testing.md +1 -1
- package/bundled/locales/zh-TW/options/testing/unit-testing.md +1 -1
- package/bundled/locales/zh-TW/skills/{claude-code/CONTRIBUTING.template.md → CONTRIBUTING.template.md} +2 -2
- package/bundled/locales/zh-TW/skills/README.md +131 -79
- package/bundled/locales/zh-TW/skills/agents/README.md +281 -0
- package/bundled/locales/zh-TW/skills/{claude-code/ai-collaboration-standards → ai-collaboration-standards}/SKILL.md +7 -7
- package/bundled/locales/zh-TW/skills/{claude-code/ai-collaboration-standards → ai-collaboration-standards}/anti-hallucination.md +8 -8
- package/bundled/locales/zh-TW/skills/{claude-code/ai-collaboration-standards → ai-collaboration-standards}/certainty-labels.md +8 -8
- package/bundled/locales/zh-TW/skills/ai-friendly-architecture/SKILL.md +221 -0
- package/bundled/locales/zh-TW/skills/ai-instruction-standards/SKILL.md +214 -0
- package/bundled/locales/zh-TW/skills/atdd-assistant/SKILL.md +71 -0
- package/bundled/locales/zh-TW/skills/atdd-assistant/acceptance-criteria-guide.md +428 -0
- package/bundled/locales/zh-TW/skills/atdd-assistant/atdd-workflow.md +484 -0
- package/bundled/locales/zh-TW/skills/atdd-assistant/guide.md +368 -0
- package/bundled/locales/zh-TW/skills/bdd-assistant/SKILL.md +68 -0
- package/bundled/locales/zh-TW/skills/bdd-assistant/bdd-workflow.md +406 -0
- package/bundled/locales/zh-TW/skills/bdd-assistant/gherkin-guide.md +454 -0
- package/bundled/locales/zh-TW/skills/bdd-assistant/guide.md +324 -0
- package/bundled/locales/zh-TW/skills/changelog-guide/SKILL.md +64 -0
- package/bundled/locales/zh-TW/skills/{claude-code/changelog-guide/SKILL.md → changelog-guide/guide.md} +6 -7
- package/bundled/locales/zh-TW/skills/checkin-assistant/SKILL.md +56 -0
- package/bundled/locales/zh-TW/skills/{claude-code/checkin-assistant/SKILL.md → checkin-assistant/guide.md} +6 -7
- package/bundled/locales/zh-TW/skills/code-review-assistant/SKILL.md +56 -0
- package/bundled/locales/zh-TW/skills/{claude-code/code-review-assistant → code-review-assistant}/checkin-checklist.md +4 -4
- package/bundled/locales/zh-TW/skills/{claude-code/code-review-assistant/SKILL.md → code-review-assistant/guide.md} +2 -3
- package/bundled/locales/zh-TW/skills/{claude-code/code-review-assistant → code-review-assistant}/review-checklist.md +4 -4
- package/bundled/locales/zh-TW/skills/{claude-code/commands → commands}/bdd.md +2 -2
- package/bundled/locales/zh-TW/skills/{claude-code/commands → commands}/methodology.md +3 -3
- package/bundled/locales/zh-TW/skills/{claude-code/commands → commands}/refactor.md +3 -3
- package/bundled/locales/zh-TW/skills/commit-standards/SKILL.md +61 -0
- package/bundled/locales/zh-TW/skills/{claude-code/commit-standards → commit-standards}/conventional-commits.md +4 -4
- package/bundled/locales/zh-TW/skills/{claude-code/commit-standards/SKILL.md → commit-standards/guide.md} +5 -6
- package/bundled/locales/zh-TW/skills/{claude-code/commit-standards → commit-standards}/language-options.md +3 -3
- package/bundled/locales/zh-TW/skills/docs-generator/SKILL.md +59 -0
- package/bundled/locales/zh-TW/skills/docs-generator/guide.md +262 -0
- package/bundled/locales/zh-TW/skills/{claude-code/documentation-guide → documentation-guide}/SKILL.md +7 -8
- package/bundled/locales/zh-TW/skills/{claude-code/documentation-guide → documentation-guide}/documentation-structure.md +4 -4
- package/bundled/locales/zh-TW/skills/{claude-code/documentation-guide → documentation-guide}/readme-template.md +3 -3
- package/bundled/locales/zh-TW/skills/{claude-code/error-code-guide → error-code-guide}/SKILL.md +6 -6
- package/bundled/locales/zh-TW/skills/forward-derivation/SKILL.md +62 -0
- package/bundled/locales/zh-TW/skills/{claude-code/forward-derivation/SKILL.md → forward-derivation/guide.md} +24 -19
- package/bundled/locales/zh-TW/skills/{claude-code/git-workflow-guide → git-workflow-guide}/SKILL.md +3 -3
- package/bundled/locales/zh-TW/skills/{claude-code/git-workflow-guide → git-workflow-guide}/branch-naming.md +3 -3
- package/bundled/locales/zh-TW/skills/{claude-code/git-workflow-guide → git-workflow-guide}/git-workflow.md +4 -4
- package/bundled/locales/zh-TW/skills/{claude-code/logging-guide → logging-guide}/SKILL.md +6 -6
- package/bundled/locales/zh-TW/skills/methodology-system/SKILL.md +78 -0
- package/bundled/locales/zh-TW/skills/{claude-code/methodology-system → methodology-system}/create-methodology.md +2 -2
- package/bundled/locales/zh-TW/skills/{claude-code/methodology-system/SKILL.md → methodology-system/guide.md} +2 -2
- package/bundled/locales/zh-TW/skills/{claude-code/methodology-system → methodology-system}/runtime.md +3 -3
- package/bundled/locales/zh-TW/skills/project-discovery/SKILL.md +66 -0
- package/bundled/locales/zh-TW/skills/project-discovery/guide.md +371 -0
- package/bundled/locales/zh-TW/skills/project-discovery/workflow.md +574 -0
- package/bundled/locales/zh-TW/skills/{claude-code/project-structure-guide → project-structure-guide}/SKILL.md +4 -4
- package/bundled/locales/zh-TW/skills/{claude-code/project-structure-guide → project-structure-guide}/language-patterns.md +1 -1
- package/bundled/locales/zh-TW/skills/refactoring-assistant/SKILL.md +67 -0
- package/bundled/locales/zh-TW/skills/{claude-code/refactoring-assistant/SKILL.md → refactoring-assistant/guide.md} +7 -8
- package/bundled/locales/zh-TW/skills/release-standards/SKILL.md +64 -0
- package/bundled/locales/zh-TW/skills/{claude-code/release-standards → release-standards}/changelog-format.md +3 -3
- package/bundled/locales/zh-TW/skills/{claude-code/release-standards/SKILL.md → release-standards/guide.md} +2 -3
- package/bundled/locales/zh-TW/skills/{claude-code/release-standards → release-standards}/release-workflow.md +60 -28
- package/bundled/locales/zh-TW/skills/{claude-code/release-standards → release-standards}/semantic-versioning.md +3 -3
- package/bundled/locales/zh-TW/skills/requirement-assistant/SKILL.md +67 -0
- package/bundled/locales/zh-TW/skills/{claude-code/requirement-assistant/SKILL.md → requirement-assistant/guide.md} +2 -3
- package/bundled/locales/zh-TW/skills/{claude-code/requirement-assistant → requirement-assistant}/requirement-checklist.md +3 -3
- package/bundled/locales/zh-TW/skills/{claude-code/requirement-assistant → requirement-assistant}/requirement-writing.md +3 -3
- package/bundled/locales/zh-TW/skills/reverse-engineer/SKILL.md +67 -0
- package/bundled/locales/zh-TW/skills/{claude-code/reverse-engineer → reverse-engineer}/bdd-extraction.md +2 -2
- package/bundled/locales/zh-TW/skills/{claude-code/reverse-engineer/SKILL.md → reverse-engineer/guide.md} +17 -18
- package/bundled/locales/zh-TW/skills/{claude-code/reverse-engineer → reverse-engineer}/tdd-analysis.md +2 -2
- package/bundled/locales/zh-TW/skills/{claude-code/reverse-engineer → reverse-engineer}/workflow.md +3 -3
- package/bundled/locales/zh-TW/skills/spec-driven-dev/SKILL.md +75 -0
- package/bundled/locales/zh-TW/skills/{claude-code/spec-driven-dev/SKILL.md → spec-driven-dev/guide.md} +9 -10
- package/bundled/locales/zh-TW/skills/tdd-assistant/SKILL.md +66 -0
- package/bundled/locales/zh-TW/skills/{claude-code/tdd-assistant/SKILL.md → tdd-assistant/guide.md} +9 -10
- package/bundled/locales/zh-TW/skills/{claude-code/tdd-assistant → tdd-assistant}/language-examples.md +3 -3
- package/bundled/locales/zh-TW/skills/{claude-code/tdd-assistant → tdd-assistant}/tdd-workflow.md +3 -3
- package/bundled/locales/zh-TW/skills/test-coverage-assistant/SKILL.md +65 -0
- package/bundled/locales/zh-TW/skills/{claude-code/test-coverage-assistant/SKILL.md → test-coverage-assistant/guide.md} +27 -24
- package/bundled/locales/zh-TW/skills/{claude-code/testing-guide → testing-guide}/SKILL.md +6 -6
- package/bundled/locales/zh-TW/skills/{claude-code/testing-guide → testing-guide}/testing-pyramid.md +4 -4
- package/bundled/locales/zh-TW/skills/{cline → tools/cline}/README.md +1 -1
- package/bundled/locales/zh-TW/skills/{copilot → tools/copilot}/README.md +1 -1
- package/bundled/locales/zh-TW/skills/{copilot → tools/copilot}/copilot-instructions.md +1 -1
- package/bundled/locales/zh-TW/skills/{cursor → tools/cursor}/README.md +1 -1
- package/bundled/locales/zh-TW/skills/{windsurf → tools/windsurf}/README.md +1 -1
- package/bundled/skills/INTEGRATION-GUIDE.md +210 -0
- package/bundled/skills/README.md +95 -0
- package/bundled/skills/_shared/README.md +60 -0
- package/bundled/skills/agents/README.md +305 -0
- package/bundled/skills/agents/code-architect.md +259 -0
- package/bundled/skills/agents/doc-writer.md +406 -0
- package/bundled/skills/agents/reviewer.md +353 -0
- package/bundled/skills/agents/spec-analyst.md +374 -0
- package/bundled/skills/agents/test-specialist.md +364 -0
- package/bundled/skills/{claude-code/ai-collaboration-standards → ai-collaboration-standards}/SKILL.md +28 -5
- package/bundled/skills/{claude-code/ai-collaboration-standards → ai-collaboration-standards}/anti-hallucination.md +24 -5
- package/bundled/skills/{claude-code/ai-collaboration-standards → ai-collaboration-standards}/certainty-labels.md +31 -6
- package/bundled/skills/ai-friendly-architecture/SKILL.md +216 -0
- package/bundled/skills/ai-instruction-standards/SKILL.md +209 -0
- package/bundled/skills/atdd-assistant/SKILL.md +74 -0
- package/bundled/skills/{claude-code/atdd-assistant → atdd-assistant}/acceptance-criteria-guide.md +1 -1
- package/bundled/skills/{claude-code/atdd-assistant → atdd-assistant}/atdd-workflow.md +1 -1
- package/bundled/skills/{claude-code/atdd-assistant/SKILL.md → atdd-assistant/guide.md} +11 -11
- package/bundled/skills/bdd-assistant/SKILL.md +70 -0
- package/bundled/skills/{claude-code/bdd-assistant → bdd-assistant}/bdd-workflow.md +1 -1
- package/bundled/skills/{claude-code/bdd-assistant → bdd-assistant}/gherkin-guide.md +1 -1
- package/bundled/skills/{claude-code/bdd-assistant/SKILL.md → bdd-assistant/guide.md} +11 -11
- package/bundled/skills/changelog-guide/SKILL.md +66 -0
- package/bundled/skills/{claude-code/changelog-guide/SKILL.md → changelog-guide/guide.md} +8 -6
- package/bundled/skills/checkin-assistant/SKILL.md +52 -0
- package/bundled/skills/{claude-code/checkin-assistant/SKILL.md → checkin-assistant/guide.md} +6 -6
- package/bundled/skills/code-review-assistant/SKILL.md +53 -0
- package/bundled/skills/{claude-code/code-review-assistant → code-review-assistant}/checkin-checklist.md +3 -3
- package/bundled/skills/{claude-code/code-review-assistant/SKILL.md → code-review-assistant/guide.md} +7 -5
- package/bundled/skills/{claude-code/code-review-assistant → code-review-assistant}/review-checklist.md +3 -3
- package/bundled/skills/commands/COMMAND-FAMILY-OVERVIEW.md +290 -0
- package/bundled/skills/{claude-code/commands → commands}/README.md +13 -3
- package/bundled/skills/{claude-code/commands → commands}/atdd.md +3 -3
- package/bundled/skills/{claude-code/commands → commands}/bdd.md +2 -2
- package/bundled/skills/commands/changelog.md +58 -0
- package/bundled/skills/{claude-code/commands → commands}/check.md +1 -1
- package/bundled/skills/commands/checkin.md +53 -0
- package/bundled/skills/{claude-code/commands → commands}/commit.md +3 -3
- package/bundled/skills/{claude-code/commands → commands}/config.md +1 -1
- package/bundled/skills/{claude-code/commands → commands}/coverage.md +5 -4
- package/bundled/skills/commands/derive-all.md +53 -0
- package/bundled/skills/commands/derive-atdd.md +49 -0
- package/bundled/skills/commands/derive-bdd.md +47 -0
- package/bundled/skills/commands/derive-tdd.md +48 -0
- package/bundled/skills/commands/derive.md +72 -0
- package/bundled/skills/commands/discover.md +80 -0
- package/bundled/skills/commands/docgen.md +61 -0
- package/bundled/skills/commands/docs.md +59 -0
- package/bundled/skills/commands/guide.md +44 -0
- package/bundled/skills/{claude-code/commands → commands}/init.md +2 -2
- package/bundled/skills/{claude-code/commands → commands}/methodology.md +32 -16
- package/bundled/skills/{claude-code/commands → commands}/refactor.md +2 -2
- package/bundled/skills/commands/release.md +56 -0
- package/bundled/skills/{claude-code/commands → commands}/requirement.md +3 -3
- package/bundled/skills/commands/reverse-bdd.md +47 -0
- package/bundled/skills/commands/reverse-sdd.md +51 -0
- package/bundled/skills/commands/reverse-tdd.md +51 -0
- package/bundled/skills/commands/reverse.md +63 -0
- package/bundled/skills/{claude-code/commands → commands}/review.md +3 -3
- package/bundled/skills/commands/sdd.md +135 -0
- package/bundled/skills/{claude-code/commands → commands}/tdd.md +3 -3
- package/bundled/skills/{claude-code/commands → commands}/update.md +2 -2
- package/bundled/skills/commit-standards/SKILL.md +60 -0
- package/bundled/skills/{claude-code/commit-standards → commit-standards}/conventional-commits.md +3 -3
- package/bundled/skills/{claude-code/commit-standards/SKILL.md → commit-standards/guide.md} +17 -5
- package/bundled/skills/{claude-code/commit-standards → commit-standards}/language-options.md +2 -2
- package/bundled/skills/docs-generator/SKILL.md +69 -0
- package/bundled/skills/docs-generator/guide.md +258 -0
- package/bundled/skills/{claude-code/documentation-guide → documentation-guide}/SKILL.md +7 -7
- package/bundled/skills/{claude-code/documentation-guide → documentation-guide}/documentation-structure.md +3 -3
- package/bundled/skills/{claude-code/documentation-guide → documentation-guide}/readme-template.md +2 -2
- package/bundled/skills/{claude-code/error-code-guide → error-code-guide}/SKILL.md +7 -5
- package/bundled/skills/forward-derivation/SKILL.md +61 -0
- package/bundled/skills/{claude-code/forward-derivation/SKILL.md → forward-derivation/guide.md} +44 -29
- package/bundled/skills/{claude-code/git-workflow-guide → git-workflow-guide}/SKILL.md +7 -5
- package/bundled/skills/{claude-code/git-workflow-guide → git-workflow-guide}/branch-naming.md +2 -2
- package/bundled/skills/{claude-code/git-workflow-guide → git-workflow-guide}/git-workflow.md +3 -3
- package/bundled/skills/{claude-code/logging-guide → logging-guide}/SKILL.md +7 -5
- package/bundled/skills/methodology-system/SKILL.md +75 -0
- package/bundled/skills/{claude-code/methodology-system → methodology-system}/create-methodology.md +1 -1
- package/bundled/skills/{claude-code/methodology-system/SKILL.md → methodology-system/guide.md} +51 -16
- package/bundled/skills/methodology-system/integrated-flow.md +454 -0
- package/bundled/skills/{claude-code/methodology-system → methodology-system}/runtime.md +2 -2
- package/bundled/skills/project-discovery/SKILL.md +63 -0
- package/bundled/skills/project-discovery/guide.md +367 -0
- package/bundled/skills/project-discovery/workflow.md +566 -0
- package/bundled/skills/{claude-code/project-structure-guide → project-structure-guide}/SKILL.md +14 -4
- package/bundled/skills/refactoring-assistant/SKILL.md +78 -0
- package/bundled/skills/{claude-code/refactoring-assistant/SKILL.md → refactoring-assistant/guide.md} +7 -7
- package/bundled/skills/release-standards/SKILL.md +61 -0
- package/bundled/skills/{claude-code/release-standards → release-standards}/changelog-format.md +2 -2
- package/bundled/skills/{claude-code/release-standards/SKILL.md → release-standards/guide.md} +7 -5
- package/bundled/skills/{claude-code/release-standards → release-standards}/release-workflow.md +59 -24
- package/bundled/skills/{claude-code/release-standards → release-standards}/semantic-versioning.md +2 -2
- package/bundled/skills/requirement-assistant/SKILL.md +66 -0
- package/bundled/skills/{claude-code/requirement-assistant/SKILL.md → requirement-assistant/guide.md} +14 -6
- package/bundled/skills/{claude-code/requirement-assistant → requirement-assistant}/requirement-checklist.md +2 -2
- package/bundled/skills/{claude-code/requirement-assistant → requirement-assistant}/requirement-writing.md +2 -2
- package/bundled/skills/reverse-engineer/SKILL.md +64 -0
- package/bundled/skills/{claude-code/reverse-engineer → reverse-engineer}/bdd-extraction.md +1 -1
- package/bundled/skills/{claude-code/reverse-engineer/SKILL.md → reverse-engineer/guide.md} +21 -18
- package/bundled/skills/{claude-code/reverse-engineer → reverse-engineer}/tdd-analysis.md +1 -1
- package/bundled/skills/{claude-code/reverse-engineer → reverse-engineer}/workflow.md +2 -2
- package/bundled/skills/spec-driven-dev/SKILL.md +80 -0
- package/bundled/skills/{claude-code/spec-driven-dev/SKILL.md → spec-driven-dev/guide.md} +50 -8
- package/bundled/skills/tdd-assistant/SKILL.md +65 -0
- package/bundled/skills/{claude-code/tdd-assistant/SKILL.md → tdd-assistant/guide.md} +10 -10
- package/bundled/skills/{claude-code/tdd-assistant → tdd-assistant}/language-examples.md +3 -3
- package/bundled/skills/{claude-code/tdd-assistant → tdd-assistant}/tdd-workflow.md +2 -2
- package/bundled/skills/test-coverage-assistant/SKILL.md +63 -0
- package/bundled/skills/{claude-code/test-coverage-assistant/SKILL.md → test-coverage-assistant/guide.md} +39 -24
- package/bundled/skills/{claude-code/testing-guide → testing-guide}/SKILL.md +12 -7
- package/bundled/skills/{claude-code/testing-guide → testing-guide}/testing-pyramid.md +3 -3
- package/bundled/skills/testing-guide/testing-theory.md +2291 -0
- package/bundled/skills/tools/cline/.clinerules +79 -0
- package/bundled/skills/tools/cline/README.md +50 -0
- package/bundled/skills/tools/copilot/README.md +99 -0
- package/bundled/skills/tools/copilot/copilot-instructions.md +71 -0
- package/bundled/skills/tools/cursor/.cursorrules +101 -0
- package/bundled/skills/tools/cursor/README.md +50 -0
- package/bundled/skills/tools/windsurf/.windsurfrules +76 -0
- package/bundled/skills/tools/windsurf/README.md +51 -0
- package/bundled/skills/workflows/README.md +303 -0
- package/bundled/skills/workflows/code-review.workflow.yaml +186 -0
- package/bundled/skills/workflows/feature-dev.workflow.yaml +174 -0
- package/bundled/skills/workflows/integrated-flow.workflow.yaml +238 -0
- package/bundled/skills/workflows/large-codebase-analysis.workflow.yaml +226 -0
- package/bundled/skills/workflows/release.workflow.yaml +893 -0
- package/package.json +14 -1
- package/src/commands/agent.js +417 -0
- package/src/commands/ai-context.js +552 -0
- package/src/commands/check.js +196 -131
- package/src/commands/config.js +1262 -0
- package/src/commands/configure.js +3 -950
- package/src/commands/fix.js +53 -0
- package/src/commands/hitl.js +19 -0
- package/src/commands/init.js +320 -1027
- package/src/commands/list.js +1 -1
- package/src/commands/simulate.js +61 -0
- package/src/commands/spec.js +288 -0
- package/src/commands/start.js +373 -0
- package/src/commands/sweep.js +142 -0
- package/src/commands/update.js +136 -19
- package/src/commands/workflow.js +689 -0
- package/src/config/ai-agent-paths.js +292 -28
- package/src/core/constants.js +520 -0
- package/src/core/errors.js +398 -0
- package/src/core/manifest.js +474 -0
- package/src/core/paths.js +398 -0
- package/src/flows/init-flow.js +243 -0
- package/src/hitl/checkpoint.js +80 -0
- package/src/hitl/classifier.js +54 -0
- package/src/hitl/manager.js +88 -0
- package/src/i18n/messages.js +907 -99
- package/src/index.js +1 -0
- package/src/installers/integration-installer.js +237 -0
- package/src/installers/manifest-installer.js +131 -0
- package/src/installers/skills-installer.js +286 -0
- package/src/installers/standards-installer.js +193 -0
- package/src/missions/MissionManager.js +501 -0
- package/src/prompts/init.js +235 -135
- package/src/prompts/integrations.js +13 -1
- package/src/schemas/standard.schema.json +117 -0
- package/src/utils/agent-adapter.js +320 -0
- package/src/utils/agents-installer.js +393 -0
- package/src/utils/config-loader.js +47 -0
- package/src/utils/config-manager.js +108 -0
- package/src/utils/config-merger.js +47 -0
- package/src/utils/context-chunker.js +467 -0
- package/src/utils/copier.js +59 -99
- package/src/utils/github.js +22 -18
- package/src/utils/hasher.js +2 -16
- package/src/utils/inquirer-patch.js +98 -0
- package/src/utils/integration-generator.js +420 -110
- package/src/utils/reference-sync.js +69 -19
- package/src/utils/skills-installer.js +6 -3
- package/src/utils/standard-fixer.js +141 -0
- package/src/utils/standard-validator.js +329 -0
- package/src/utils/workflow-executor.js +886 -0
- package/src/utils/workflow-state.js +404 -0
- package/src/utils/workflows-installer.js +545 -0
- package/src/vibe/auto-sweep.js +349 -0
- package/src/vibe/micro-spec.js +428 -0
- package/standards-registry.json +429 -107
- package/bundled/locales/zh-CN/skills/claude-code/README.md +0 -174
- package/bundled/locales/zh-CN/skills/claude-code/test-coverage-assistant/SKILL.md +0 -282
- package/bundled/locales/zh-TW/skills/claude-code/README.md +0 -174
- package/bundled/skills/claude-code/README.md +0 -207
- package/bundled/skills/claude-code/commands/changelog.md +0 -57
- package/bundled/skills/claude-code/commands/derive-all.md +0 -214
- package/bundled/skills/claude-code/commands/derive-atdd.md +0 -177
- package/bundled/skills/claude-code/commands/derive-bdd.md +0 -158
- package/bundled/skills/claude-code/commands/derive-tdd.md +0 -259
- package/bundled/skills/claude-code/commands/docs.md +0 -75
- package/bundled/skills/claude-code/commands/release.md +0 -50
- package/bundled/skills/claude-code/commands/reverse-bdd.md +0 -264
- package/bundled/skills/claude-code/commands/reverse-spec.md +0 -185
- package/bundled/skills/claude-code/commands/reverse-tdd.md +0 -351
- package/bundled/skills/claude-code/commands/spec.md +0 -69
- package/bundled/skills/claude-code/methodology-system/integrated-flow.md +0 -322
- /package/bundled/skills/{claude-code/CONTRIBUTING.template.md → CONTRIBUTING.template.md} +0 -0
- /package/bundled/skills/{claude-code/ai → ai}/standards/checkin.ai.yaml +0 -0
- /package/bundled/skills/{claude-code/ai → ai}/standards/commit.ai.yaml +0 -0
- /package/bundled/skills/{claude-code/ai → ai}/standards/refactoring.ai.yaml +0 -0
- /package/bundled/skills/{claude-code/ai → ai}/standards/testing.ai.yaml +0 -0
- /package/bundled/skills/{claude-code/project-structure-guide → project-structure-guide}/language-patterns.md +0 -0
package/src/prompts/init.js
CHANGED
|
@@ -1,12 +1,75 @@
|
|
|
1
1
|
import inquirer from 'inquirer';
|
|
2
2
|
import chalk from 'chalk';
|
|
3
3
|
import os from 'os';
|
|
4
|
-
import { t } from '../i18n/messages.js';
|
|
4
|
+
import { t, setLanguage, detectLanguage } from '../i18n/messages.js';
|
|
5
5
|
import {
|
|
6
6
|
getAgentConfig,
|
|
7
7
|
getAgentDisplayName
|
|
8
8
|
} from '../config/ai-agent-paths.js';
|
|
9
|
-
import {
|
|
9
|
+
import { patchCheckboxInstructions } from '../utils/inquirer-patch.js';
|
|
10
|
+
|
|
11
|
+
// Apply inquirer checkbox patch to properly support instructions: false
|
|
12
|
+
// This allows us to show translated checkbox hints instead of the default English text
|
|
13
|
+
patchCheckboxInstructions();
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* Prompt for display language (first prompt in init flow)
|
|
17
|
+
* This sets the language for CLI messages and AI Agent instructions.
|
|
18
|
+
*
|
|
19
|
+
* The prompt uses bilingual format since we don't know user's preferred
|
|
20
|
+
* language at this point. After selection, the CLI language switches
|
|
21
|
+
* immediately for all subsequent prompts.
|
|
22
|
+
*
|
|
23
|
+
* @returns {Promise<string>} Selected language code ('en', 'zh-tw', or 'zh-cn')
|
|
24
|
+
*/
|
|
25
|
+
export async function promptDisplayLanguage() {
|
|
26
|
+
// Detect system language for smart default
|
|
27
|
+
const systemLang = detectLanguage(null);
|
|
28
|
+
|
|
29
|
+
// Use the message from current (initial) language - which is bilingual by design
|
|
30
|
+
const msg = t().displayLanguage;
|
|
31
|
+
|
|
32
|
+
console.log();
|
|
33
|
+
console.log(chalk.cyan(msg.title));
|
|
34
|
+
console.log(chalk.gray(` ${msg.description}`));
|
|
35
|
+
console.log(chalk.gray(` ${t().listHint}`));
|
|
36
|
+
console.log();
|
|
37
|
+
|
|
38
|
+
const { language } = await inquirer.prompt([
|
|
39
|
+
{
|
|
40
|
+
type: 'list',
|
|
41
|
+
name: 'language',
|
|
42
|
+
message: msg.question,
|
|
43
|
+
suffix: ' ',
|
|
44
|
+
choices: [
|
|
45
|
+
{
|
|
46
|
+
name: `English ${chalk.gray('(Default for international teams)')}`,
|
|
47
|
+
value: 'en'
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
name: `繁體中文 ${chalk.gray('(Traditional Chinese)')}`,
|
|
51
|
+
value: 'zh-tw'
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
name: `简体中文 ${chalk.gray('(Simplified Chinese)')}`,
|
|
55
|
+
value: 'zh-cn'
|
|
56
|
+
}
|
|
57
|
+
],
|
|
58
|
+
default: systemLang
|
|
59
|
+
}
|
|
60
|
+
]);
|
|
61
|
+
|
|
62
|
+
// Immediately switch language for all subsequent prompts
|
|
63
|
+
setLanguage(language);
|
|
64
|
+
|
|
65
|
+
// Show confirmation in the selected language
|
|
66
|
+
const selectedMsg = t().displayLanguage;
|
|
67
|
+
console.log();
|
|
68
|
+
console.log(chalk.gray(selectedMsg.explanations[language]));
|
|
69
|
+
console.log();
|
|
70
|
+
|
|
71
|
+
return language;
|
|
72
|
+
}
|
|
10
73
|
|
|
11
74
|
/**
|
|
12
75
|
* Prompt for AI tools being used
|
|
@@ -15,10 +78,12 @@ import { getMarketplaceSkillsInfo } from '../utils/github.js';
|
|
|
15
78
|
*/
|
|
16
79
|
export async function promptAITools(detected = {}) {
|
|
17
80
|
const msg = t().aiTools;
|
|
81
|
+
const checkboxHint = t().checkboxHint;
|
|
18
82
|
|
|
19
83
|
console.log();
|
|
20
84
|
console.log(chalk.cyan(msg.title));
|
|
21
85
|
console.log(chalk.gray(` ${msg.description}`));
|
|
86
|
+
console.log(chalk.gray(` ${checkboxHint}`));
|
|
22
87
|
console.log();
|
|
23
88
|
|
|
24
89
|
const { tools } = await inquirer.prompt([
|
|
@@ -26,14 +91,14 @@ export async function promptAITools(detected = {}) {
|
|
|
26
91
|
type: 'checkbox',
|
|
27
92
|
name: 'tools',
|
|
28
93
|
message: msg.question,
|
|
94
|
+
suffix: ' ',
|
|
95
|
+
instructions: false, // Hide default English hint, we show translated hint above
|
|
29
96
|
choices: [
|
|
30
|
-
new inquirer.Separator(chalk.gray(msg.separators.dynamicSkills)),
|
|
31
97
|
{
|
|
32
|
-
name:
|
|
98
|
+
name: `Claude Code ${chalk.gray('(CLAUDE.md)')}`,
|
|
33
99
|
value: 'claude-code',
|
|
34
100
|
checked: detected.claudeCode || false
|
|
35
101
|
},
|
|
36
|
-
new inquirer.Separator(chalk.gray(msg.separators.staticRules)),
|
|
37
102
|
{
|
|
38
103
|
name: `Cursor ${chalk.gray('(.cursorrules)')}`,
|
|
39
104
|
value: 'cursor',
|
|
@@ -55,38 +120,31 @@ export async function promptAITools(detected = {}) {
|
|
|
55
120
|
checked: detected.copilot || false
|
|
56
121
|
},
|
|
57
122
|
{
|
|
58
|
-
name: `Google Antigravity ${chalk.gray('(INSTRUCTIONS.md)')}
|
|
123
|
+
name: `Google Antigravity ${chalk.gray('(INSTRUCTIONS.md)')}`,
|
|
59
124
|
value: 'antigravity',
|
|
60
125
|
checked: detected.antigravity || false
|
|
61
126
|
},
|
|
62
|
-
new inquirer.Separator(chalk.gray(msg.separators.agentsMd)),
|
|
63
127
|
{
|
|
64
|
-
name: `OpenAI Codex ${chalk.gray('(AGENTS.md)')}
|
|
128
|
+
name: `OpenAI Codex ${chalk.gray('(AGENTS.md)')}`,
|
|
65
129
|
value: 'codex',
|
|
66
130
|
checked: detected.codex || false
|
|
67
131
|
},
|
|
68
132
|
{
|
|
69
|
-
name: `OpenCode ${chalk.gray('(AGENTS.md)')}
|
|
133
|
+
name: `OpenCode ${chalk.gray('(AGENTS.md)')}`,
|
|
70
134
|
value: 'opencode',
|
|
71
135
|
checked: detected.opencode || false
|
|
72
136
|
},
|
|
73
|
-
new inquirer.Separator(chalk.gray(msg.separators.gemini)),
|
|
74
137
|
{
|
|
75
|
-
name: `Gemini CLI ${chalk.gray('(GEMINI.md)')}
|
|
138
|
+
name: `Gemini CLI ${chalk.gray('(GEMINI.md)')}`,
|
|
76
139
|
value: 'gemini-cli',
|
|
77
140
|
checked: detected.geminiCli || false
|
|
78
|
-
},
|
|
79
|
-
new inquirer.Separator(),
|
|
80
|
-
{
|
|
81
|
-
name: chalk.gray(msg.choices.none),
|
|
82
|
-
value: 'none'
|
|
83
141
|
}
|
|
84
142
|
]
|
|
85
143
|
}
|
|
86
144
|
]);
|
|
87
145
|
|
|
88
|
-
// Filter out
|
|
89
|
-
const filtered = tools.filter(tool =>
|
|
146
|
+
// Filter out separators (keep only string values)
|
|
147
|
+
const filtered = tools.filter(tool => typeof tool === 'string');
|
|
90
148
|
return filtered;
|
|
91
149
|
}
|
|
92
150
|
|
|
@@ -108,34 +166,36 @@ export async function promptSkillsInstallLocation(selectedTools = []) {
|
|
|
108
166
|
return [];
|
|
109
167
|
}
|
|
110
168
|
|
|
169
|
+
// Check if Claude Code is selected (for marketplace info)
|
|
170
|
+
const hasClaudeCode = skillsTools.includes('claude-code');
|
|
171
|
+
|
|
172
|
+
// Get translated checkbox hint
|
|
173
|
+
const checkboxHint = t().checkboxHint;
|
|
174
|
+
const marketplaceMsg = t().marketplaceInstall || {};
|
|
175
|
+
|
|
111
176
|
console.log();
|
|
112
177
|
console.log(chalk.cyan(msg.title));
|
|
113
178
|
console.log(chalk.gray(` ${msg.description}`));
|
|
179
|
+
console.log(chalk.gray(` ${checkboxHint}`));
|
|
114
180
|
|
|
115
|
-
//
|
|
116
|
-
const hasClaudeCode = skillsTools.includes('claude-code');
|
|
181
|
+
// Show Marketplace info for Claude Code (not as a selectable option)
|
|
117
182
|
if (hasClaudeCode) {
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
183
|
+
console.log();
|
|
184
|
+
console.log(chalk.yellow(` 💡 ${marketplaceMsg.claudeCodeTip || 'Claude Code can be installed via Marketplace:'}`));
|
|
185
|
+
console.log(chalk.white(' /plugin install universal-dev-standards@asia-ostrich'));
|
|
186
|
+
console.log(chalk.gray(` → ${msg.choices.marketplace}`));
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
// Show git sharing hint for project-level installation
|
|
190
|
+
if (msg.gitSharingHint) {
|
|
191
|
+
console.log();
|
|
192
|
+
console.log(chalk.gray(` 💡 ${msg.gitSharingHint}`));
|
|
124
193
|
}
|
|
125
194
|
console.log();
|
|
126
195
|
|
|
127
196
|
// Build choices dynamically based on selected tools
|
|
128
197
|
const choices = [];
|
|
129
198
|
|
|
130
|
-
// Add Marketplace option for Claude Code (recommended)
|
|
131
|
-
if (hasClaudeCode) {
|
|
132
|
-
choices.push({
|
|
133
|
-
name: `${chalk.green('Plugin Marketplace')} ${chalk.gray(`(${t().recommended})`)} - ${msg.choices.marketplace}`,
|
|
134
|
-
value: 'marketplace'
|
|
135
|
-
});
|
|
136
|
-
choices.push(new inquirer.Separator(chalk.gray(msg.separatorFileInstall)));
|
|
137
|
-
}
|
|
138
|
-
|
|
139
199
|
// Add options for each agent
|
|
140
200
|
for (const tool of skillsTools) {
|
|
141
201
|
const config = getAgentConfig(tool);
|
|
@@ -154,42 +214,22 @@ export async function promptSkillsInstallLocation(selectedTools = []) {
|
|
|
154
214
|
});
|
|
155
215
|
}
|
|
156
216
|
|
|
157
|
-
// Add skip option
|
|
158
|
-
choices.push(new inquirer.Separator());
|
|
159
|
-
choices.push({
|
|
160
|
-
name: `${chalk.gray('Skip')} - ${msg.choices.none}`,
|
|
161
|
-
value: 'none'
|
|
162
|
-
});
|
|
163
|
-
|
|
164
217
|
const { locations } = await inquirer.prompt([
|
|
165
218
|
{
|
|
166
219
|
type: 'checkbox',
|
|
167
220
|
name: 'locations',
|
|
168
221
|
message: msg.questionMulti,
|
|
222
|
+
suffix: ' ',
|
|
169
223
|
choices,
|
|
170
|
-
|
|
171
|
-
// If 'none' is selected, ensure it's the only selection
|
|
172
|
-
if (answer.includes('none') && answer.length > 1) {
|
|
173
|
-
return msg.validationNoMix;
|
|
174
|
-
}
|
|
175
|
-
return true;
|
|
176
|
-
}
|
|
224
|
+
instructions: false // Hide default English hint, we show translated hint above
|
|
177
225
|
}
|
|
178
226
|
]);
|
|
179
227
|
|
|
180
|
-
// Handle
|
|
181
|
-
if (locations.
|
|
228
|
+
// Handle empty selection (user chose to skip)
|
|
229
|
+
if (locations.length === 0) {
|
|
182
230
|
return [];
|
|
183
231
|
}
|
|
184
232
|
|
|
185
|
-
// Handle marketplace selection
|
|
186
|
-
if (locations.includes('marketplace')) {
|
|
187
|
-
console.log();
|
|
188
|
-
console.log(chalk.gray(msg.explanations?.marketplace || '透過 Claude Code Marketplace 安裝,自動更新'));
|
|
189
|
-
console.log();
|
|
190
|
-
return [{ agent: 'claude-code', level: 'marketplace' }];
|
|
191
|
-
}
|
|
192
|
-
|
|
193
233
|
// Parse selections into agent:level pairs
|
|
194
234
|
const installations = locations
|
|
195
235
|
.filter(loc => loc !== 'none' && loc !== 'marketplace')
|
|
@@ -214,6 +254,7 @@ export async function promptSkillsInstallLocation(selectedTools = []) {
|
|
|
214
254
|
*/
|
|
215
255
|
export async function promptCommandsInstallation(selectedTools = []) {
|
|
216
256
|
const msg = t().commandsInstallation || {};
|
|
257
|
+
const checkboxHint = t().checkboxHint;
|
|
217
258
|
|
|
218
259
|
// Filter to only commands-supported tools
|
|
219
260
|
const commandsSupportedTools = selectedTools.filter(tool => {
|
|
@@ -228,6 +269,13 @@ export async function promptCommandsInstallation(selectedTools = []) {
|
|
|
228
269
|
console.log();
|
|
229
270
|
console.log(chalk.cyan(msg.title));
|
|
230
271
|
console.log(chalk.gray(` ${msg.description}`));
|
|
272
|
+
console.log(chalk.gray(` ${checkboxHint}`));
|
|
273
|
+
|
|
274
|
+
// Show git sharing hint for project-level installation
|
|
275
|
+
if (msg.gitSharingHint) {
|
|
276
|
+
console.log();
|
|
277
|
+
console.log(chalk.gray(` 💡 ${msg.gitSharingHint}`));
|
|
278
|
+
}
|
|
231
279
|
console.log();
|
|
232
280
|
|
|
233
281
|
// Build choices dynamically - User Level + Project Level for each agent
|
|
@@ -237,11 +285,13 @@ export async function promptCommandsInstallation(selectedTools = []) {
|
|
|
237
285
|
const config = getAgentConfig(tool);
|
|
238
286
|
const displayName = getAgentDisplayName(tool);
|
|
239
287
|
|
|
240
|
-
// User level option
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
288
|
+
// User level option (skip if user path is null - e.g., Copilot only supports VS Code IDE)
|
|
289
|
+
if (config.commands.user) {
|
|
290
|
+
choices.push({
|
|
291
|
+
name: `${chalk.blue(displayName)} - ${msg.choices.userLevel} ${chalk.gray(`(${config.commands.user.replace(os.homedir(), '~')})`)}`,
|
|
292
|
+
value: `${tool}:user`
|
|
293
|
+
});
|
|
294
|
+
}
|
|
245
295
|
|
|
246
296
|
// Project level option
|
|
247
297
|
choices.push({
|
|
@@ -251,37 +301,24 @@ export async function promptCommandsInstallation(selectedTools = []) {
|
|
|
251
301
|
});
|
|
252
302
|
}
|
|
253
303
|
|
|
254
|
-
// Add skip option
|
|
255
|
-
choices.push(new inquirer.Separator());
|
|
256
|
-
choices.push({
|
|
257
|
-
name: chalk.gray(msg.choices.skip),
|
|
258
|
-
value: 'none'
|
|
259
|
-
});
|
|
260
|
-
|
|
261
304
|
const { locations } = await inquirer.prompt([
|
|
262
305
|
{
|
|
263
306
|
type: 'checkbox',
|
|
264
307
|
name: 'locations',
|
|
265
308
|
message: msg.questionMulti || msg.question,
|
|
309
|
+
suffix: ' ',
|
|
266
310
|
choices,
|
|
267
|
-
|
|
268
|
-
if (answer.includes('none') && answer.length > 1) {
|
|
269
|
-
return msg.validationNoMix || 'Cannot select "Skip" with other options';
|
|
270
|
-
}
|
|
271
|
-
return true;
|
|
272
|
-
}
|
|
311
|
+
instructions: false // Hide default English hint, we show translated hint above
|
|
273
312
|
}
|
|
274
313
|
]);
|
|
275
314
|
|
|
276
|
-
// Handle
|
|
277
|
-
if (locations.
|
|
315
|
+
// Handle empty selection (user chose to skip)
|
|
316
|
+
if (locations.length === 0) {
|
|
278
317
|
return [];
|
|
279
318
|
}
|
|
280
319
|
|
|
281
320
|
// Parse selections into agent:level pairs
|
|
282
|
-
const installations = locations
|
|
283
|
-
.filter(loc => loc !== 'none')
|
|
284
|
-
.map(loc => {
|
|
321
|
+
const installations = locations.map(loc => {
|
|
285
322
|
const [agent, level] = loc.split(':');
|
|
286
323
|
return { agent, level };
|
|
287
324
|
});
|
|
@@ -388,11 +425,14 @@ export async function promptSkillsUpdate(projectInfo, userInfo, latestVersion) {
|
|
|
388
425
|
value: 'none'
|
|
389
426
|
});
|
|
390
427
|
|
|
428
|
+
console.log(chalk.gray(` ${t().listHint}`));
|
|
429
|
+
|
|
391
430
|
const { action } = await inquirer.prompt([
|
|
392
431
|
{
|
|
393
432
|
type: 'list',
|
|
394
433
|
name: 'action',
|
|
395
434
|
message: msg.question,
|
|
435
|
+
suffix: ' ',
|
|
396
436
|
choices,
|
|
397
437
|
default: needsUpdate.length === 2 ? 'both' : needsUpdate[0]
|
|
398
438
|
}
|
|
@@ -430,6 +470,7 @@ export async function promptStandardsScope(hasSkills) {
|
|
|
430
470
|
console.log(chalk.cyan(msg.title));
|
|
431
471
|
console.log(chalk.gray(` ${msg.description}`));
|
|
432
472
|
console.log(chalk.gray(` ${msg.description2}`));
|
|
473
|
+
console.log(chalk.gray(` ${t().listHint}`));
|
|
433
474
|
console.log();
|
|
434
475
|
|
|
435
476
|
const { scope } = await inquirer.prompt([
|
|
@@ -437,13 +478,14 @@ export async function promptStandardsScope(hasSkills) {
|
|
|
437
478
|
type: 'list',
|
|
438
479
|
name: 'scope',
|
|
439
480
|
message: msg.question,
|
|
481
|
+
suffix: ' ',
|
|
440
482
|
choices: [
|
|
441
483
|
{
|
|
442
|
-
name: `${chalk.green(
|
|
484
|
+
name: `${chalk.green(msg.labels.minimal)} ${chalk.gray(`(${t().recommended})`)} - ${msg.choices.minimal}`,
|
|
443
485
|
value: 'minimal'
|
|
444
486
|
},
|
|
445
487
|
{
|
|
446
|
-
name: `${chalk.blue(
|
|
488
|
+
name: `${chalk.blue(msg.labels.full)} - ${msg.choices.full}`,
|
|
447
489
|
value: 'full'
|
|
448
490
|
}
|
|
449
491
|
],
|
|
@@ -477,6 +519,7 @@ export async function promptFormat() {
|
|
|
477
519
|
console.log();
|
|
478
520
|
console.log(chalk.cyan(msg.title));
|
|
479
521
|
console.log(chalk.gray(` ${msg.description}`));
|
|
522
|
+
console.log(chalk.gray(` ${t().listHint}`));
|
|
480
523
|
console.log();
|
|
481
524
|
|
|
482
525
|
const { format } = await inquirer.prompt([
|
|
@@ -484,17 +527,18 @@ export async function promptFormat() {
|
|
|
484
527
|
type: 'list',
|
|
485
528
|
name: 'format',
|
|
486
529
|
message: msg.question,
|
|
530
|
+
suffix: ' ',
|
|
487
531
|
choices: [
|
|
488
532
|
{
|
|
489
|
-
name: `${chalk.green(
|
|
533
|
+
name: `${chalk.green(msg.labels.ai)} ${chalk.gray(`(${t().recommended})`)} - ${msg.choices.ai}`,
|
|
490
534
|
value: 'ai'
|
|
491
535
|
},
|
|
492
536
|
{
|
|
493
|
-
name: `${chalk.blue(
|
|
537
|
+
name: `${chalk.blue(msg.labels.human)} - ${msg.choices.human}`,
|
|
494
538
|
value: 'human'
|
|
495
539
|
},
|
|
496
540
|
{
|
|
497
|
-
name: `${chalk.yellow(
|
|
541
|
+
name: `${chalk.yellow(msg.labels.both)} ${chalk.gray(`(${t().advanced})`)} - ${msg.choices.both}`,
|
|
498
542
|
value: 'both'
|
|
499
543
|
}
|
|
500
544
|
],
|
|
@@ -526,6 +570,7 @@ export async function promptGitWorkflow() {
|
|
|
526
570
|
console.log();
|
|
527
571
|
console.log(chalk.cyan(msg.title));
|
|
528
572
|
console.log(chalk.gray(` ${msg.description}`));
|
|
573
|
+
console.log(chalk.gray(` ${t().listHint}`));
|
|
529
574
|
console.log();
|
|
530
575
|
|
|
531
576
|
const { workflow } = await inquirer.prompt([
|
|
@@ -533,6 +578,7 @@ export async function promptGitWorkflow() {
|
|
|
533
578
|
type: 'list',
|
|
534
579
|
name: 'workflow',
|
|
535
580
|
message: msg.question,
|
|
581
|
+
suffix: ' ',
|
|
536
582
|
choices: [
|
|
537
583
|
{
|
|
538
584
|
name: `${chalk.green('GitHub Flow')} ${chalk.gray(`(${t().recommended})`)} - ${msg.choices['github-flow']}`,
|
|
@@ -577,6 +623,7 @@ export async function promptMergeStrategy() {
|
|
|
577
623
|
console.log();
|
|
578
624
|
console.log(chalk.cyan(msg.title));
|
|
579
625
|
console.log(chalk.gray(` ${msg.description}`));
|
|
626
|
+
console.log(chalk.gray(` ${t().listHint}`));
|
|
580
627
|
console.log();
|
|
581
628
|
|
|
582
629
|
const { strategy } = await inquirer.prompt([
|
|
@@ -584,6 +631,7 @@ export async function promptMergeStrategy() {
|
|
|
584
631
|
type: 'list',
|
|
585
632
|
name: 'strategy',
|
|
586
633
|
message: msg.question,
|
|
634
|
+
suffix: ' ',
|
|
587
635
|
choices: [
|
|
588
636
|
{
|
|
589
637
|
name: `${chalk.green('Squash Merge')} ${chalk.gray(`(${t().recommended})`)} - ${msg.choices.squash}`,
|
|
@@ -614,35 +662,51 @@ export async function promptMergeStrategy() {
|
|
|
614
662
|
|
|
615
663
|
/**
|
|
616
664
|
* Prompt for commit message language
|
|
617
|
-
*
|
|
665
|
+
*
|
|
666
|
+
* The bilingual option is only shown when displayLanguage is Chinese (zh-tw or zh-cn),
|
|
667
|
+
* as bilingual commits are primarily useful for Chinese-speaking teams who want both
|
|
668
|
+
* English and Chinese in their commit messages.
|
|
669
|
+
*
|
|
670
|
+
* @param {string} displayLanguage - Display language ('en', 'zh-tw', or 'zh-cn')
|
|
671
|
+
* @returns {Promise<string>} Selected language ID: 'english', 'traditional-chinese', or 'bilingual'
|
|
618
672
|
*/
|
|
619
|
-
export async function promptCommitLanguage() {
|
|
673
|
+
export async function promptCommitLanguage(displayLanguage = 'en') {
|
|
620
674
|
const msg = t().commitLanguage;
|
|
621
675
|
|
|
622
676
|
console.log();
|
|
623
677
|
console.log(chalk.cyan(msg.title));
|
|
624
678
|
console.log(chalk.gray(` ${msg.description}`));
|
|
679
|
+
console.log(chalk.gray(` ${t().listHint}`));
|
|
625
680
|
console.log();
|
|
626
681
|
|
|
682
|
+
// Build choices - bilingual option only for Chinese display languages
|
|
683
|
+
const choices = [
|
|
684
|
+
{
|
|
685
|
+
name: `${chalk.green(msg.labels.english)} ${chalk.gray(`(${t().recommended})`)} - ${msg.choices.english}`,
|
|
686
|
+
value: 'english'
|
|
687
|
+
},
|
|
688
|
+
{
|
|
689
|
+
name: `${chalk.blue(msg.labels.chinese)} - ${msg.choices.chinese}`,
|
|
690
|
+
value: 'traditional-chinese'
|
|
691
|
+
}
|
|
692
|
+
];
|
|
693
|
+
|
|
694
|
+
// Only show bilingual option for Chinese display languages
|
|
695
|
+
// When zh-cn is selected, bilingual will use Simplified Chinese in the generated content
|
|
696
|
+
if (displayLanguage === 'zh-tw' || displayLanguage === 'zh-cn') {
|
|
697
|
+
choices.push({
|
|
698
|
+
name: `${chalk.yellow(msg.labels.bilingual)} - ${msg.choices.bilingual}`,
|
|
699
|
+
value: 'bilingual'
|
|
700
|
+
});
|
|
701
|
+
}
|
|
702
|
+
|
|
627
703
|
const { language } = await inquirer.prompt([
|
|
628
704
|
{
|
|
629
705
|
type: 'list',
|
|
630
706
|
name: 'language',
|
|
631
707
|
message: msg.question,
|
|
632
|
-
|
|
633
|
-
|
|
634
|
-
name: `${chalk.green(msg.labels.english)} ${chalk.gray(`(${t().recommended})`)} - ${msg.choices.english}`,
|
|
635
|
-
value: 'english'
|
|
636
|
-
},
|
|
637
|
-
{
|
|
638
|
-
name: `${chalk.blue(msg.labels.chinese)} - ${msg.choices.chinese}`,
|
|
639
|
-
value: 'traditional-chinese'
|
|
640
|
-
},
|
|
641
|
-
{
|
|
642
|
-
name: `${chalk.yellow(msg.labels.bilingual)} - ${msg.choices.bilingual}`,
|
|
643
|
-
value: 'bilingual'
|
|
644
|
-
}
|
|
645
|
-
],
|
|
708
|
+
suffix: ' ',
|
|
709
|
+
choices,
|
|
646
710
|
default: 'english'
|
|
647
711
|
}
|
|
648
712
|
]);
|
|
@@ -668,6 +732,7 @@ export async function promptTestLevels() {
|
|
|
668
732
|
console.log(chalk.cyan(msg.title));
|
|
669
733
|
console.log(chalk.gray(` ${msg.description}`));
|
|
670
734
|
console.log(chalk.gray(` ${msg.description2}`));
|
|
735
|
+
console.log(chalk.gray(` ${t().checkboxHint}`));
|
|
671
736
|
console.log();
|
|
672
737
|
|
|
673
738
|
const { levels } = await inquirer.prompt([
|
|
@@ -675,6 +740,8 @@ export async function promptTestLevels() {
|
|
|
675
740
|
type: 'checkbox',
|
|
676
741
|
name: 'levels',
|
|
677
742
|
message: msg.question,
|
|
743
|
+
suffix: ' ',
|
|
744
|
+
instructions: false,
|
|
678
745
|
choices: [
|
|
679
746
|
{
|
|
680
747
|
name: `Unit Testing ${chalk.gray('(70%)')} - ${msg.choices.unit}`,
|
|
@@ -714,17 +781,14 @@ export async function promptTestLevels() {
|
|
|
714
781
|
|
|
715
782
|
/**
|
|
716
783
|
* Prompt for all standard options
|
|
784
|
+
*
|
|
717
785
|
* @param {number} level - Adoption level
|
|
786
|
+
* @param {string} displayLanguage - Display language for bilingual commit option filtering
|
|
718
787
|
* @returns {Promise<Object>} Selected options
|
|
719
788
|
*/
|
|
720
|
-
export async function promptStandardOptions(level) {
|
|
789
|
+
export async function promptStandardOptions(level, displayLanguage = 'en') {
|
|
721
790
|
const options = {};
|
|
722
791
|
|
|
723
|
-
console.log();
|
|
724
|
-
console.log(chalk.cyan('Standard Options:'));
|
|
725
|
-
console.log(chalk.gray(' Configure your preferred options for each standard'));
|
|
726
|
-
console.log();
|
|
727
|
-
|
|
728
792
|
// Git workflow options (level 2+)
|
|
729
793
|
if (level >= 2) {
|
|
730
794
|
options.workflow = await promptGitWorkflow();
|
|
@@ -732,7 +796,8 @@ export async function promptStandardOptions(level) {
|
|
|
732
796
|
}
|
|
733
797
|
|
|
734
798
|
// Commit message options (level 1+)
|
|
735
|
-
|
|
799
|
+
// Pass displayLanguage to filter bilingual option
|
|
800
|
+
options.commit_language = await promptCommitLanguage(displayLanguage);
|
|
736
801
|
|
|
737
802
|
// Testing options (level 2+)
|
|
738
803
|
if (level >= 2) {
|
|
@@ -749,11 +814,14 @@ export async function promptStandardOptions(level) {
|
|
|
749
814
|
export async function promptInstallMode() {
|
|
750
815
|
const msg = t().installMode;
|
|
751
816
|
|
|
817
|
+
console.log(chalk.gray(` ${t().listHint}`));
|
|
818
|
+
|
|
752
819
|
const { mode } = await inquirer.prompt([
|
|
753
820
|
{
|
|
754
821
|
type: 'list',
|
|
755
822
|
name: 'mode',
|
|
756
823
|
message: msg.question,
|
|
824
|
+
suffix: ' ',
|
|
757
825
|
choices: [
|
|
758
826
|
{
|
|
759
827
|
name: `${chalk.green('Skills Mode')} ${chalk.gray(`(${t().recommended})`)} - ${msg.choices.skills}`,
|
|
@@ -789,11 +857,14 @@ export async function promptSkillsUpgrade(installedVersion, latestVersion) {
|
|
|
789
857
|
? `v${installedVersion} → v${latestVersion}`
|
|
790
858
|
: `unknown → v${latestVersion}`;
|
|
791
859
|
|
|
860
|
+
console.log(chalk.gray(` ${t().listHint}`));
|
|
861
|
+
|
|
792
862
|
const { action } = await inquirer.prompt([
|
|
793
863
|
{
|
|
794
864
|
type: 'list',
|
|
795
865
|
name: 'action',
|
|
796
866
|
message: `Skills detected (${versionDisplay}). What would you like to do?`,
|
|
867
|
+
suffix: ' ',
|
|
797
868
|
choices: [
|
|
798
869
|
{
|
|
799
870
|
name: `${chalk.green('Upgrade')} - Update to latest version`,
|
|
@@ -831,6 +902,7 @@ export async function promptLevel() {
|
|
|
831
902
|
console.log();
|
|
832
903
|
console.log(chalk.cyan(msg.title));
|
|
833
904
|
console.log(chalk.gray(` ${msg.description}`));
|
|
905
|
+
console.log(chalk.gray(` ${t().listHint}`));
|
|
834
906
|
console.log();
|
|
835
907
|
|
|
836
908
|
const { level } = await inquirer.prompt([
|
|
@@ -838,21 +910,22 @@ export async function promptLevel() {
|
|
|
838
910
|
type: 'list',
|
|
839
911
|
name: 'level',
|
|
840
912
|
message: msg.question,
|
|
913
|
+
suffix: ' ',
|
|
841
914
|
choices: [
|
|
842
915
|
{
|
|
843
|
-
name: `${chalk.blue(
|
|
916
|
+
name: `${chalk.blue(msg.labels[1])} - ${msg.choices[1]}`,
|
|
844
917
|
value: 1
|
|
845
918
|
},
|
|
846
919
|
{
|
|
847
|
-
name: `${chalk.green(
|
|
920
|
+
name: `${chalk.green(msg.labels[2])} ${chalk.gray(`(${t().recommended})`)} - ${msg.choices[2]}`,
|
|
848
921
|
value: 2
|
|
849
922
|
},
|
|
850
923
|
{
|
|
851
|
-
name: `${chalk.yellow(
|
|
924
|
+
name: `${chalk.yellow(msg.labels[3])} - ${msg.choices[3]}`,
|
|
852
925
|
value: 3
|
|
853
926
|
}
|
|
854
927
|
],
|
|
855
|
-
default:
|
|
928
|
+
default: 1
|
|
856
929
|
}
|
|
857
930
|
]);
|
|
858
931
|
|
|
@@ -885,11 +958,15 @@ export async function promptLanguage(detected) {
|
|
|
885
958
|
return null;
|
|
886
959
|
}
|
|
887
960
|
|
|
961
|
+
console.log(chalk.gray(` ${t().checkboxHint}`));
|
|
962
|
+
|
|
888
963
|
const { languages } = await inquirer.prompt([
|
|
889
964
|
{
|
|
890
965
|
type: 'checkbox',
|
|
891
966
|
name: 'languages',
|
|
892
967
|
message: 'Detected language(s). Select style guides to include:',
|
|
968
|
+
suffix: ' ',
|
|
969
|
+
instructions: false,
|
|
893
970
|
choices
|
|
894
971
|
}
|
|
895
972
|
]);
|
|
@@ -913,11 +990,15 @@ export async function promptFramework(detected) {
|
|
|
913
990
|
return null;
|
|
914
991
|
}
|
|
915
992
|
|
|
993
|
+
console.log(chalk.gray(` ${t().checkboxHint}`));
|
|
994
|
+
|
|
916
995
|
const { frameworks } = await inquirer.prompt([
|
|
917
996
|
{
|
|
918
997
|
type: 'checkbox',
|
|
919
998
|
name: 'frameworks',
|
|
920
999
|
message: 'Detected framework(s). Select patterns to include:',
|
|
1000
|
+
suffix: ' ',
|
|
1001
|
+
instructions: false,
|
|
921
1002
|
choices
|
|
922
1003
|
}
|
|
923
1004
|
]);
|
|
@@ -935,6 +1016,7 @@ export async function promptLocale() {
|
|
|
935
1016
|
type: 'confirm',
|
|
936
1017
|
name: 'useLocale',
|
|
937
1018
|
message: 'Use Traditional Chinese (繁體中文) locale?',
|
|
1019
|
+
suffix: ' ',
|
|
938
1020
|
default: false
|
|
939
1021
|
}
|
|
940
1022
|
]);
|
|
@@ -972,11 +1054,15 @@ export async function promptIntegrations(detected) {
|
|
|
972
1054
|
checked: detected.copilot || false
|
|
973
1055
|
});
|
|
974
1056
|
|
|
1057
|
+
console.log(chalk.gray(` ${t().checkboxHint}`));
|
|
1058
|
+
|
|
975
1059
|
const { integrations } = await inquirer.prompt([
|
|
976
1060
|
{
|
|
977
1061
|
type: 'checkbox',
|
|
978
1062
|
name: 'integrations',
|
|
979
1063
|
message: 'Select AI tool integrations:',
|
|
1064
|
+
suffix: ' ',
|
|
1065
|
+
instructions: false,
|
|
980
1066
|
choices
|
|
981
1067
|
}
|
|
982
1068
|
]);
|
|
@@ -995,6 +1081,7 @@ export async function promptConfirm(message) {
|
|
|
995
1081
|
type: 'confirm',
|
|
996
1082
|
name: 'confirmed',
|
|
997
1083
|
message,
|
|
1084
|
+
suffix: ' ',
|
|
998
1085
|
default: true
|
|
999
1086
|
}
|
|
1000
1087
|
]);
|
|
@@ -1028,6 +1115,7 @@ export async function promptContentMode() {
|
|
|
1028
1115
|
console.log(chalk.cyan(msg.title));
|
|
1029
1116
|
console.log(chalk.gray(` ${msg.description}`));
|
|
1030
1117
|
console.log(chalk.gray(` ${msg.description2}`));
|
|
1118
|
+
console.log(chalk.gray(` ${t().listHint}`));
|
|
1031
1119
|
console.log();
|
|
1032
1120
|
|
|
1033
1121
|
const { mode } = await inquirer.prompt([
|
|
@@ -1035,17 +1123,18 @@ export async function promptContentMode() {
|
|
|
1035
1123
|
type: 'list',
|
|
1036
1124
|
name: 'mode',
|
|
1037
1125
|
message: msg.question,
|
|
1126
|
+
suffix: ' ',
|
|
1038
1127
|
choices: [
|
|
1039
1128
|
{
|
|
1040
|
-
name: `${chalk.green(
|
|
1129
|
+
name: `${chalk.green(msg.labels.index)} ${chalk.gray(`(${t().recommended})`)} - ${msg.choices.index}`,
|
|
1041
1130
|
value: 'index'
|
|
1042
1131
|
},
|
|
1043
1132
|
{
|
|
1044
|
-
name: `${chalk.blue(
|
|
1133
|
+
name: `${chalk.blue(msg.labels.full)} - ${msg.choices.full}`,
|
|
1045
1134
|
value: 'full'
|
|
1046
1135
|
},
|
|
1047
1136
|
{
|
|
1048
|
-
name: `${chalk.gray(
|
|
1137
|
+
name: `${chalk.gray(msg.labels.minimal)} - ${msg.choices.minimal}`,
|
|
1049
1138
|
value: 'minimal'
|
|
1050
1139
|
}
|
|
1051
1140
|
],
|
|
@@ -1110,6 +1199,7 @@ export async function promptManageAITools(currentTools = []) {
|
|
|
1110
1199
|
console.log();
|
|
1111
1200
|
console.log(chalk.cyan(msg.title));
|
|
1112
1201
|
console.log(chalk.gray(` ${msg.currentlyInstalled} ${currentTools.length > 0 ? currentTools.join(', ') : msg.none}`));
|
|
1202
|
+
console.log(chalk.gray(` ${t().listHint}`));
|
|
1113
1203
|
console.log();
|
|
1114
1204
|
|
|
1115
1205
|
const { action } = await inquirer.prompt([
|
|
@@ -1117,6 +1207,7 @@ export async function promptManageAITools(currentTools = []) {
|
|
|
1117
1207
|
type: 'list',
|
|
1118
1208
|
name: 'action',
|
|
1119
1209
|
message: msg.question,
|
|
1210
|
+
suffix: ' ',
|
|
1120
1211
|
choices: [
|
|
1121
1212
|
{ name: msg.choices.add, value: 'add' },
|
|
1122
1213
|
{ name: msg.choices.remove, value: 'remove' },
|
|
@@ -1159,11 +1250,15 @@ export async function promptManageAITools(currentTools = []) {
|
|
|
1159
1250
|
return { action: 'cancel', tools: [] };
|
|
1160
1251
|
}
|
|
1161
1252
|
|
|
1253
|
+
console.log(chalk.gray(` ${t().checkboxHint}`));
|
|
1254
|
+
|
|
1162
1255
|
const { toolsToAdd } = await inquirer.prompt([
|
|
1163
1256
|
{
|
|
1164
1257
|
type: 'checkbox',
|
|
1165
1258
|
name: 'toolsToAdd',
|
|
1166
1259
|
message: msg.selectToAdd,
|
|
1260
|
+
suffix: ' ',
|
|
1261
|
+
instructions: false,
|
|
1167
1262
|
choices: availableTools
|
|
1168
1263
|
}
|
|
1169
1264
|
]);
|
|
@@ -1185,11 +1280,15 @@ export async function promptManageAITools(currentTools = []) {
|
|
|
1185
1280
|
};
|
|
1186
1281
|
});
|
|
1187
1282
|
|
|
1283
|
+
console.log(chalk.gray(` ${t().checkboxHint}`));
|
|
1284
|
+
|
|
1188
1285
|
const { toolsToRemove } = await inquirer.prompt([
|
|
1189
1286
|
{
|
|
1190
1287
|
type: 'checkbox',
|
|
1191
1288
|
name: 'toolsToRemove',
|
|
1192
1289
|
message: msg.selectToRemove,
|
|
1290
|
+
suffix: ' ',
|
|
1291
|
+
instructions: false,
|
|
1193
1292
|
choices: installedChoices
|
|
1194
1293
|
}
|
|
1195
1294
|
]);
|
|
@@ -1207,10 +1306,12 @@ export async function promptManageAITools(currentTools = []) {
|
|
|
1207
1306
|
*/
|
|
1208
1307
|
export async function promptAdoptionLevel(currentLevel) {
|
|
1209
1308
|
const msg = t().adoptionLevelConfig;
|
|
1309
|
+
const levelLabels = t().level.labels;
|
|
1210
1310
|
|
|
1211
1311
|
console.log();
|
|
1212
1312
|
console.log(chalk.cyan(msg.title));
|
|
1213
1313
|
console.log(chalk.gray(` ${msg.currentLevel} ${currentLevel}`));
|
|
1314
|
+
console.log(chalk.gray(` ${t().listHint}`));
|
|
1214
1315
|
console.log();
|
|
1215
1316
|
|
|
1216
1317
|
const { level } = await inquirer.prompt([
|
|
@@ -1218,17 +1319,18 @@ export async function promptAdoptionLevel(currentLevel) {
|
|
|
1218
1319
|
type: 'list',
|
|
1219
1320
|
name: 'level',
|
|
1220
1321
|
message: msg.question,
|
|
1322
|
+
suffix: ' ',
|
|
1221
1323
|
choices: [
|
|
1222
1324
|
{
|
|
1223
|
-
name: `${chalk.blue(
|
|
1325
|
+
name: `${chalk.blue(levelLabels[1])} - ${msg.choices[1]}`,
|
|
1224
1326
|
value: 1
|
|
1225
1327
|
},
|
|
1226
1328
|
{
|
|
1227
|
-
name: `${chalk.green(
|
|
1329
|
+
name: `${chalk.green(levelLabels[2])} ${chalk.gray(`(${t().recommended})`)} - ${msg.choices[2]}`,
|
|
1228
1330
|
value: 2
|
|
1229
1331
|
},
|
|
1230
1332
|
{
|
|
1231
|
-
name: `${chalk.yellow(
|
|
1333
|
+
name: `${chalk.yellow(levelLabels[3])} - ${msg.choices[3]}`,
|
|
1232
1334
|
value: 3
|
|
1233
1335
|
}
|
|
1234
1336
|
],
|
|
@@ -1258,16 +1360,11 @@ export async function promptContentModeChange(currentMode) {
|
|
|
1258
1360
|
const msg = t().contentMode;
|
|
1259
1361
|
const changeMsg = t().contentModeChange;
|
|
1260
1362
|
|
|
1261
|
-
const modeLabels = {
|
|
1262
|
-
index: 'Standard',
|
|
1263
|
-
full: 'Full Embed',
|
|
1264
|
-
minimal: 'Minimal'
|
|
1265
|
-
};
|
|
1266
|
-
|
|
1267
1363
|
console.log();
|
|
1268
1364
|
console.log(chalk.cyan(msg.title));
|
|
1269
|
-
console.log(chalk.gray(` ${changeMsg.currentMode} ${
|
|
1365
|
+
console.log(chalk.gray(` ${changeMsg.currentMode} ${msg.labels[currentMode] || currentMode || msg.labels.minimal}`));
|
|
1270
1366
|
console.log(chalk.gray(` ${msg.description2}`));
|
|
1367
|
+
console.log(chalk.gray(` ${t().listHint}`));
|
|
1271
1368
|
console.log();
|
|
1272
1369
|
|
|
1273
1370
|
const { mode } = await inquirer.prompt([
|
|
@@ -1275,17 +1372,18 @@ export async function promptContentModeChange(currentMode) {
|
|
|
1275
1372
|
type: 'list',
|
|
1276
1373
|
name: 'mode',
|
|
1277
1374
|
message: msg.question,
|
|
1375
|
+
suffix: ' ',
|
|
1278
1376
|
choices: [
|
|
1279
1377
|
{
|
|
1280
|
-
name: `${chalk.green(
|
|
1378
|
+
name: `${chalk.green(msg.labels.index)} ${chalk.gray(`(${t().recommended})`)} - ${msg.choices.index}`,
|
|
1281
1379
|
value: 'index'
|
|
1282
1380
|
},
|
|
1283
1381
|
{
|
|
1284
|
-
name: `${chalk.blue(
|
|
1382
|
+
name: `${chalk.blue(msg.labels.full)} - ${msg.choices.full}`,
|
|
1285
1383
|
value: 'full'
|
|
1286
1384
|
},
|
|
1287
1385
|
{
|
|
1288
|
-
name: `${chalk.gray(
|
|
1386
|
+
name: `${chalk.gray(msg.labels.minimal)} - ${msg.choices.minimal}`,
|
|
1289
1387
|
value: 'minimal'
|
|
1290
1388
|
}
|
|
1291
1389
|
],
|
|
@@ -1313,6 +1411,7 @@ export async function promptMethodology() {
|
|
|
1313
1411
|
console.log(chalk.cyan(msg.title));
|
|
1314
1412
|
console.log(chalk.yellow(` ${msg.experimental}`));
|
|
1315
1413
|
console.log(chalk.gray(` ${msg.description}`));
|
|
1414
|
+
console.log(chalk.gray(` ${t().listHint}`));
|
|
1316
1415
|
console.log();
|
|
1317
1416
|
|
|
1318
1417
|
const { methodology } = await inquirer.prompt([
|
|
@@ -1320,26 +1419,27 @@ export async function promptMethodology() {
|
|
|
1320
1419
|
type: 'list',
|
|
1321
1420
|
name: 'methodology',
|
|
1322
1421
|
message: msg.question,
|
|
1422
|
+
suffix: ' ',
|
|
1323
1423
|
choices: [
|
|
1324
1424
|
{
|
|
1325
|
-
name: `${chalk.red(
|
|
1425
|
+
name: `${chalk.red(msg.labels.tdd)} ${chalk.gray(`- ${msg.choices.tdd}`)}`,
|
|
1326
1426
|
value: 'tdd'
|
|
1327
1427
|
},
|
|
1328
1428
|
{
|
|
1329
|
-
name: `${chalk.green(
|
|
1429
|
+
name: `${chalk.green(msg.labels.bdd)} ${chalk.gray(`- ${msg.choices.bdd}`)}`,
|
|
1330
1430
|
value: 'bdd'
|
|
1331
1431
|
},
|
|
1332
1432
|
{
|
|
1333
|
-
name: `${chalk.blue(
|
|
1433
|
+
name: `${chalk.blue(msg.labels.sdd)} ${chalk.gray(`- ${msg.choices.sdd}`)}`,
|
|
1334
1434
|
value: 'sdd'
|
|
1335
1435
|
},
|
|
1336
1436
|
{
|
|
1337
|
-
name: `${chalk.yellow(
|
|
1437
|
+
name: `${chalk.yellow(msg.labels.atdd)} ${chalk.gray(`- ${msg.choices.atdd}`)}`,
|
|
1338
1438
|
value: 'atdd'
|
|
1339
1439
|
},
|
|
1340
1440
|
new inquirer.Separator(),
|
|
1341
1441
|
{
|
|
1342
|
-
name: `${chalk.gray(
|
|
1442
|
+
name: `${chalk.gray(msg.labels.none)} - ${msg.choices.none}`,
|
|
1343
1443
|
value: null
|
|
1344
1444
|
}
|
|
1345
1445
|
],
|