universal-dev-standards 5.0.0-rc.8 → 5.0.0
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 +5 -3
- package/bundled/ai/standards/acceptance-criteria-traceability.ai.yaml +178 -0
- package/bundled/ai/standards/agent-dispatch.ai.yaml +69 -0
- package/bundled/ai/standards/ai-command-behavior.ai.yaml +45 -0
- package/bundled/ai/standards/api-design-standards.ai.yaml +192 -0
- package/bundled/ai/standards/branch-completion.ai.yaml +82 -0
- package/bundled/ai/standards/change-batching-standards.ai.yaml +195 -0
- package/bundled/ai/standards/database-standards.ai.yaml +220 -0
- package/bundled/ai/standards/error-codes.ai.yaml +37 -2
- package/bundled/ai/standards/git-worktree.ai.yaml +77 -0
- package/bundled/ai/standards/logging.ai.yaml +21 -2
- package/bundled/ai/standards/model-selection.ai.yaml +81 -0
- package/bundled/ai/standards/pipeline-integration-standards.ai.yaml +184 -0
- package/bundled/ai/standards/systematic-debugging.ai.yaml +73 -0
- package/bundled/ai/standards/verification-evidence.ai.yaml +84 -0
- package/bundled/ai/standards/workflow-enforcement.ai.yaml +253 -0
- package/bundled/core/acceptance-criteria-traceability.md +293 -0
- package/bundled/core/agent-dispatch.md +149 -0
- package/bundled/core/ai-command-behavior.md +239 -0
- package/bundled/core/api-design-standards.md +938 -0
- package/bundled/core/branch-completion.md +158 -0
- package/bundled/core/change-batching-standards.md +257 -0
- package/bundled/core/checkin-standards.md +43 -6
- package/bundled/core/database-standards.md +828 -0
- package/bundled/core/error-code-standards.md +228 -2
- package/bundled/core/forward-derivation-standards.md +54 -2
- package/bundled/core/git-worktree.md +131 -0
- package/bundled/core/model-selection.md +153 -0
- package/bundled/core/pipeline-integration-standards.md +230 -0
- package/bundled/core/systematic-debugging.md +156 -0
- package/bundled/core/testing-standards.md +49 -39
- package/bundled/core/verification-evidence.md +172 -0
- package/bundled/core/workflow-enforcement.md +132 -0
- package/bundled/locales/zh-CN/CLAUDE.md +2 -2
- package/bundled/locales/zh-CN/README.md +4 -4
- package/bundled/locales/zh-CN/SECURITY.md +92 -0
- package/bundled/locales/zh-CN/core/acceptance-criteria-traceability.md +301 -0
- package/bundled/locales/zh-CN/core/acceptance-test-driven-development.md +47 -0
- package/bundled/locales/zh-CN/core/accessibility-standards.md +124 -0
- package/bundled/locales/zh-CN/core/agent-dispatch.md +113 -0
- package/bundled/locales/zh-CN/core/ai-agreement-standards.md +103 -0
- package/bundled/locales/zh-CN/core/ai-command-behavior.md +247 -0
- package/bundled/locales/zh-CN/core/api-design-standards.md +946 -0
- package/bundled/locales/zh-CN/core/behavior-driven-development.md +48 -0
- package/bundled/locales/zh-CN/core/branch-completion.md +112 -0
- package/bundled/locales/zh-CN/core/change-batching-standards.md +265 -0
- package/bundled/locales/zh-CN/core/checkin-standards.md +43 -5
- package/bundled/locales/zh-CN/core/context-aware-loading.md +106 -0
- package/bundled/locales/zh-CN/core/database-standards.md +836 -0
- package/bundled/locales/zh-CN/core/deployment-standards.md +80 -0
- package/bundled/locales/zh-CN/core/error-code-standards.md +2 -2
- package/bundled/locales/zh-CN/core/forward-derivation-standards.md +493 -0
- package/bundled/locales/zh-CN/core/git-worktree.md +101 -0
- package/bundled/locales/zh-CN/core/model-selection.md +112 -0
- package/bundled/locales/zh-CN/core/performance-standards.md +104 -0
- package/bundled/locales/zh-CN/core/pipeline-integration-standards.md +238 -0
- package/bundled/locales/zh-CN/core/project-context-memory.md +124 -0
- package/bundled/locales/zh-CN/core/requirement-engineering.md +49 -0
- package/bundled/locales/zh-CN/core/security-standards.md +100 -0
- package/bundled/locales/zh-CN/core/systematic-debugging.md +106 -0
- package/bundled/locales/zh-CN/core/test-governance.md +116 -0
- package/bundled/locales/zh-CN/core/testing-standards.md +392 -156
- package/bundled/locales/zh-CN/core/verification-evidence.md +118 -0
- package/bundled/locales/zh-CN/core/virtual-organization-standards.md +104 -0
- package/bundled/locales/zh-CN/core/workflow-enforcement.md +132 -0
- package/bundled/locales/zh-CN/docs/CHEATSHEET.md +27 -1
- package/bundled/locales/zh-CN/docs/CLI-INIT-OPTIONS.md +9 -1
- package/bundled/locales/zh-CN/docs/FEATURE-REFERENCE.md +37 -9
- package/bundled/locales/zh-CN/docs/USER-MANUAL.md +652 -0
- package/bundled/locales/zh-CN/integrations/github-copilot/copilot-instructions.md +1 -1
- package/bundled/locales/zh-CN/integrations/openspec/AGENTS.md +29 -4
- package/bundled/locales/zh-CN/integrations/spec-kit/AGENTS.md +143 -72
- package/bundled/locales/zh-CN/skills/ac-coverage-assistant/SKILL.md +126 -0
- package/bundled/locales/zh-CN/skills/api-design-assistant/SKILL.md +100 -0
- package/bundled/locales/zh-CN/skills/brainstorm-assistant/SKILL.md +119 -0
- package/bundled/locales/zh-CN/skills/ci-cd-assistant/SKILL.md +82 -0
- package/bundled/locales/zh-CN/skills/commands/ac-coverage.md +97 -0
- package/bundled/locales/zh-CN/skills/commands/api-design.md +94 -0
- package/bundled/locales/zh-CN/skills/commands/atdd.md +163 -0
- package/bundled/locales/zh-CN/skills/commands/audit.md +77 -0
- package/bundled/locales/zh-CN/skills/commands/bdd.md +1 -1
- package/bundled/locales/zh-CN/skills/commands/brainstorm.md +87 -0
- package/bundled/locales/zh-CN/skills/commands/changelog.md +63 -0
- package/bundled/locales/zh-CN/skills/commands/check.md +219 -0
- package/bundled/locales/zh-CN/skills/commands/checkin.md +61 -0
- package/bundled/locales/zh-CN/skills/commands/ci-cd.md +77 -0
- package/bundled/locales/zh-CN/skills/commands/commit.md +81 -0
- package/bundled/locales/zh-CN/skills/commands/config.md +207 -0
- package/bundled/locales/zh-CN/skills/commands/coverage.md +74 -0
- package/bundled/locales/zh-CN/skills/commands/database.md +78 -0
- package/bundled/locales/zh-CN/skills/commands/derive-all.md +58 -0
- package/bundled/locales/zh-CN/skills/commands/derive-atdd.md +54 -0
- package/bundled/locales/zh-CN/skills/commands/derive-bdd.md +53 -0
- package/bundled/locales/zh-CN/skills/commands/derive-tdd.md +54 -0
- package/bundled/locales/zh-CN/skills/commands/derive.md +78 -0
- package/bundled/locales/zh-CN/skills/commands/dev-workflow.md +119 -0
- package/bundled/locales/zh-CN/skills/commands/discover.md +86 -0
- package/bundled/locales/zh-CN/skills/commands/docgen.md +67 -0
- package/bundled/locales/zh-CN/skills/commands/docs.md +65 -0
- package/bundled/locales/zh-CN/skills/commands/durable.md +87 -0
- package/bundled/locales/zh-CN/skills/commands/guide.md +52 -0
- package/bundled/locales/zh-CN/skills/commands/incident.md +92 -0
- package/bundled/locales/zh-CN/skills/commands/init.md +272 -0
- package/bundled/locales/zh-CN/skills/commands/methodology.md +1 -1
- package/bundled/locales/zh-CN/skills/commands/metrics.md +73 -0
- package/bundled/locales/zh-CN/skills/commands/migrate.md +92 -0
- package/bundled/locales/zh-CN/skills/commands/pr.md +80 -0
- package/bundled/locales/zh-CN/skills/commands/refactor.md +1 -1
- package/bundled/locales/zh-CN/skills/commands/release.md +62 -0
- package/bundled/locales/zh-CN/skills/commands/requirement.md +54 -0
- package/bundled/locales/zh-CN/skills/commands/reverse-bdd.md +47 -0
- package/bundled/locales/zh-CN/skills/commands/reverse-sdd.md +51 -0
- package/bundled/locales/zh-CN/skills/commands/reverse-tdd.md +51 -0
- package/bundled/locales/zh-CN/skills/commands/reverse.md +63 -0
- package/bundled/locales/zh-CN/skills/commands/review.md +50 -0
- package/bundled/locales/zh-CN/skills/commands/scan.md +76 -0
- package/bundled/locales/zh-CN/skills/commands/sdd-retro.md +40 -0
- package/bundled/locales/zh-CN/skills/commands/sdd.md +379 -0
- package/bundled/locales/zh-CN/skills/commands/security.md +75 -0
- package/bundled/locales/zh-CN/skills/commands/tdd.md +111 -0
- package/bundled/locales/zh-CN/skills/commands/update.md +337 -0
- package/bundled/locales/zh-CN/skills/commit-standards/SKILL.md +1 -2
- package/bundled/locales/zh-CN/skills/database-assistant/SKILL.md +97 -0
- package/bundled/locales/zh-CN/skills/dev-workflow-guide/SKILL.md +145 -0
- package/bundled/locales/zh-CN/skills/durable-execution-assistant/SKILL.md +84 -0
- package/bundled/locales/zh-CN/skills/incident-response-assistant/SKILL.md +107 -0
- package/bundled/locales/zh-CN/skills/metrics-dashboard-assistant/SKILL.md +67 -0
- package/bundled/locales/zh-CN/skills/migration-assistant/SKILL.md +77 -0
- package/bundled/locales/zh-CN/skills/pr-automation-assistant/SKILL.md +90 -0
- package/bundled/locales/zh-CN/skills/security-assistant/SKILL.md +79 -0
- package/bundled/locales/zh-CN/skills/security-scan-assistant/SKILL.md +72 -0
- package/bundled/locales/zh-CN/skills/spec-driven-dev/SKILL.md +73 -10
- package/bundled/locales/zh-CN/skills/spec-driven-dev/guide.md +267 -122
- package/bundled/locales/zh-TW/CLAUDE.md +2 -2
- package/bundled/locales/zh-TW/README.md +4 -4
- package/bundled/locales/zh-TW/SECURITY.md +92 -0
- package/bundled/locales/zh-TW/core/acceptance-criteria-traceability.md +301 -0
- package/bundled/locales/zh-TW/core/acceptance-test-driven-development.md +47 -0
- package/bundled/locales/zh-TW/core/accessibility-standards.md +84 -0
- package/bundled/locales/zh-TW/core/agent-dispatch.md +89 -0
- package/bundled/locales/zh-TW/core/ai-agreement-standards.md +87 -0
- package/bundled/locales/zh-TW/core/ai-command-behavior.md +247 -0
- package/bundled/locales/zh-TW/core/api-design-standards.md +946 -0
- package/bundled/locales/zh-TW/core/behavior-driven-development.md +63 -0
- package/bundled/locales/zh-TW/core/branch-completion.md +76 -0
- package/bundled/locales/zh-TW/core/change-batching-standards.md +265 -0
- package/bundled/locales/zh-TW/core/checkin-standards.md +39 -5
- package/bundled/locales/zh-TW/core/context-aware-loading.md +86 -0
- package/bundled/locales/zh-TW/core/database-standards.md +836 -0
- package/bundled/locales/zh-TW/core/deployment-standards.md +66 -0
- package/bundled/locales/zh-TW/core/error-code-standards.md +230 -4
- package/bundled/locales/zh-TW/core/forward-derivation-standards.md +62 -2
- package/bundled/locales/zh-TW/core/git-worktree.md +104 -0
- package/bundled/locales/zh-TW/core/model-selection.md +83 -0
- package/bundled/locales/zh-TW/core/performance-standards.md +84 -0
- package/bundled/locales/zh-TW/core/pipeline-integration-standards.md +238 -0
- package/bundled/locales/zh-TW/core/project-context-memory.md +79 -0
- package/bundled/locales/zh-TW/core/requirement-engineering.md +79 -0
- package/bundled/locales/zh-TW/core/security-standards.md +74 -0
- package/bundled/locales/zh-TW/core/systematic-debugging.md +95 -0
- package/bundled/locales/zh-TW/core/test-governance.md +88 -0
- package/bundled/locales/zh-TW/core/testing-standards.md +309 -86
- package/bundled/locales/zh-TW/core/verification-evidence.md +94 -0
- package/bundled/locales/zh-TW/core/virtual-organization-standards.md +88 -0
- package/bundled/locales/zh-TW/core/workflow-enforcement.md +132 -0
- package/bundled/locales/zh-TW/docs/CHEATSHEET.md +27 -1
- package/bundled/locales/zh-TW/docs/CLI-INIT-OPTIONS.md +9 -1
- package/bundled/locales/zh-TW/docs/FEATURE-REFERENCE.md +37 -9
- package/bundled/locales/zh-TW/docs/USER-MANUAL.md +652 -0
- package/bundled/locales/zh-TW/integrations/github-copilot/copilot-instructions.md +1 -1
- package/bundled/locales/zh-TW/integrations/openspec/AGENTS.md +29 -4
- package/bundled/locales/zh-TW/integrations/spec-kit/AGENTS.md +142 -71
- package/bundled/locales/zh-TW/skills/ac-coverage-assistant/SKILL.md +127 -0
- package/bundled/locales/zh-TW/skills/ai-friendly-architecture/SKILL.md +1 -4
- package/bundled/locales/zh-TW/skills/ai-instruction-standards/SKILL.md +1 -4
- package/bundled/locales/zh-TW/skills/api-design-assistant/SKILL.md +97 -0
- package/bundled/locales/zh-TW/skills/atdd-assistant/SKILL.md +1 -4
- package/bundled/locales/zh-TW/skills/audit-assistant/SKILL.md +1 -4
- package/bundled/locales/zh-TW/skills/bdd-assistant/SKILL.md +1 -4
- package/bundled/locales/zh-TW/skills/brainstorm-assistant/SKILL.md +1 -4
- package/bundled/locales/zh-TW/skills/changelog-guide/SKILL.md +1 -4
- package/bundled/locales/zh-TW/skills/checkin-assistant/SKILL.md +1 -4
- package/bundled/locales/zh-TW/skills/ci-cd-assistant/SKILL.md +79 -0
- package/bundled/locales/zh-TW/skills/code-review-assistant/SKILL.md +1 -4
- package/bundled/locales/zh-TW/skills/commands/ac-coverage.md +95 -0
- package/bundled/locales/zh-TW/skills/commands/api-design.md +92 -0
- package/bundled/locales/zh-TW/skills/commands/atdd.md +167 -0
- package/bundled/locales/zh-TW/skills/commands/audit.md +75 -0
- package/bundled/locales/zh-TW/skills/commands/bdd.md +1 -1
- package/bundled/locales/zh-TW/skills/commands/brainstorm.md +91 -0
- package/bundled/locales/zh-TW/skills/commands/changelog.md +67 -0
- package/bundled/locales/zh-TW/skills/commands/check.md +223 -0
- package/bundled/locales/zh-TW/skills/commands/checkin.md +65 -0
- package/bundled/locales/zh-TW/skills/commands/ci-cd.md +75 -0
- package/bundled/locales/zh-TW/skills/commands/commit.md +85 -0
- package/bundled/locales/zh-TW/skills/commands/config.md +211 -0
- package/bundled/locales/zh-TW/skills/commands/coverage.md +78 -0
- package/bundled/locales/zh-TW/skills/commands/database.md +76 -0
- package/bundled/locales/zh-TW/skills/commands/derive-all.md +62 -0
- package/bundled/locales/zh-TW/skills/commands/derive-atdd.md +58 -0
- package/bundled/locales/zh-TW/skills/commands/derive-bdd.md +54 -0
- package/bundled/locales/zh-TW/skills/commands/derive-tdd.md +55 -0
- package/bundled/locales/zh-TW/skills/commands/derive.md +79 -0
- package/bundled/locales/zh-TW/skills/commands/dev-workflow.md +120 -0
- package/bundled/locales/zh-TW/skills/commands/discover.md +87 -0
- package/bundled/locales/zh-TW/skills/commands/docgen.md +68 -0
- package/bundled/locales/zh-TW/skills/commands/docs.md +66 -0
- package/bundled/locales/zh-TW/skills/commands/durable.md +85 -0
- package/bundled/locales/zh-TW/skills/commands/guide.md +51 -0
- package/bundled/locales/zh-TW/skills/commands/incident.md +90 -0
- package/bundled/locales/zh-TW/skills/commands/init.md +273 -0
- package/bundled/locales/zh-TW/skills/commands/methodology.md +1 -1
- package/bundled/locales/zh-TW/skills/commands/metrics.md +71 -0
- package/bundled/locales/zh-TW/skills/commands/migrate.md +90 -0
- package/bundled/locales/zh-TW/skills/commands/pr.md +78 -0
- package/bundled/locales/zh-TW/skills/commands/refactor.md +1 -1
- package/bundled/locales/zh-TW/skills/commands/release.md +63 -0
- package/bundled/locales/zh-TW/skills/commands/requirement.md +61 -0
- package/bundled/locales/zh-TW/skills/commands/reverse-bdd.md +54 -0
- package/bundled/locales/zh-TW/skills/commands/reverse-sdd.md +58 -0
- package/bundled/locales/zh-TW/skills/commands/reverse-tdd.md +58 -0
- package/bundled/locales/zh-TW/skills/commands/reverse.md +70 -0
- package/bundled/locales/zh-TW/skills/commands/review.md +57 -0
- package/bundled/locales/zh-TW/skills/commands/scan.md +74 -0
- package/bundled/locales/zh-TW/skills/commands/sdd-retro.md +47 -0
- package/bundled/locales/zh-TW/skills/commands/sdd.md +362 -0
- package/bundled/locales/zh-TW/skills/commands/security.md +73 -0
- package/bundled/locales/zh-TW/skills/commands/tdd.md +115 -0
- package/bundled/locales/zh-TW/skills/commands/update.md +326 -0
- package/bundled/locales/zh-TW/skills/commit-standards/SKILL.md +2 -6
- package/bundled/locales/zh-TW/skills/database-assistant/SKILL.md +94 -0
- package/bundled/locales/zh-TW/skills/dev-workflow-guide/SKILL.md +140 -0
- package/bundled/locales/zh-TW/skills/docs-generator/SKILL.md +1 -4
- package/bundled/locales/zh-TW/skills/documentation-guide/SKILL.md +1 -4
- package/bundled/locales/zh-TW/skills/durable-execution-assistant/SKILL.md +81 -0
- package/bundled/locales/zh-TW/skills/error-code-guide/SKILL.md +1 -4
- package/bundled/locales/zh-TW/skills/forward-derivation/SKILL.md +1 -4
- package/bundled/locales/zh-TW/skills/git-workflow-guide/SKILL.md +1 -4
- package/bundled/locales/zh-TW/skills/incident-response-assistant/SKILL.md +104 -0
- package/bundled/locales/zh-TW/skills/logging-guide/SKILL.md +1 -4
- package/bundled/locales/zh-TW/skills/methodology-system/SKILL.md +1 -4
- package/bundled/locales/zh-TW/skills/metrics-dashboard-assistant/SKILL.md +64 -0
- package/bundled/locales/zh-TW/skills/migration-assistant/SKILL.md +74 -0
- package/bundled/locales/zh-TW/skills/pr-automation-assistant/SKILL.md +87 -0
- package/bundled/locales/zh-TW/skills/project-discovery/SKILL.md +1 -4
- package/bundled/locales/zh-TW/skills/refactoring-assistant/SKILL.md +1 -4
- package/bundled/locales/zh-TW/skills/release-standards/SKILL.md +1 -4
- package/bundled/locales/zh-TW/skills/requirement-assistant/SKILL.md +1 -4
- package/bundled/locales/zh-TW/skills/reverse-engineer/SKILL.md +1 -4
- package/bundled/locales/zh-TW/skills/security-assistant/SKILL.md +76 -0
- package/bundled/locales/zh-TW/skills/security-scan-assistant/SKILL.md +69 -0
- package/bundled/locales/zh-TW/skills/spec-driven-dev/SKILL.md +74 -14
- package/bundled/locales/zh-TW/skills/spec-driven-dev/guide.md +243 -98
- package/bundled/locales/zh-TW/skills/tdd-assistant/SKILL.md +1 -4
- package/bundled/locales/zh-TW/skills/test-coverage-assistant/SKILL.md +1 -4
- package/bundled/locales/zh-TW/skills/testing-guide/SKILL.md +1 -5
- package/bundled/skills/README.md +11 -0
- package/bundled/skills/ac-coverage-assistant/SKILL.md +127 -0
- package/bundled/skills/ai-collaboration-standards/SKILL.md +10 -0
- package/bundled/skills/ai-friendly-architecture/SKILL.md +10 -0
- package/bundled/skills/ai-instruction-standards/SKILL.md +10 -0
- package/bundled/skills/api-design-assistant/SKILL.md +119 -0
- package/bundled/skills/atdd-assistant/SKILL.md +7 -0
- package/bundled/skills/bdd-assistant/SKILL.md +7 -0
- package/bundled/skills/brainstorm-assistant/SKILL.md +7 -0
- package/bundled/skills/checkin-assistant/SKILL.md +7 -0
- package/bundled/skills/ci-cd-assistant/SKILL.md +97 -0
- package/bundled/skills/code-review-assistant/SKILL.md +7 -0
- package/bundled/skills/commands/README.md +70 -0
- package/bundled/skills/commands/ac-coverage.md +135 -0
- package/bundled/skills/commands/api-design.md +86 -0
- package/bundled/skills/commands/atdd.md +69 -0
- package/bundled/skills/commands/audit.md +69 -0
- package/bundled/skills/commands/bdd.md +101 -0
- package/bundled/skills/commands/brainstorm.md +45 -0
- package/bundled/skills/commands/changelog.md +34 -0
- package/bundled/skills/commands/check.md +52 -1
- package/bundled/skills/commands/checkin.md +46 -0
- package/bundled/skills/commands/ci-cd.md +69 -0
- package/bundled/skills/commands/commit.md +79 -0
- package/bundled/skills/commands/config.md +48 -0
- package/bundled/skills/commands/coverage.md +53 -0
- package/bundled/skills/commands/database.md +70 -0
- package/bundled/skills/commands/derive-all.md +40 -0
- package/bundled/skills/commands/derive-atdd.md +33 -0
- package/bundled/skills/commands/derive-bdd.md +39 -0
- package/bundled/skills/commands/derive-tdd.md +40 -0
- package/bundled/skills/commands/derive.md +47 -0
- package/bundled/skills/commands/dev-workflow.md +104 -7
- package/bundled/skills/commands/discover.md +39 -0
- package/bundled/skills/commands/docgen.md +35 -0
- package/bundled/skills/commands/docs.md +40 -0
- package/bundled/skills/commands/durable.md +79 -0
- package/bundled/skills/commands/incident.md +84 -0
- package/bundled/skills/commands/init.md +55 -0
- package/bundled/skills/commands/methodology.md +72 -0
- package/bundled/skills/commands/metrics.md +65 -0
- package/bundled/skills/commands/migrate.md +84 -0
- package/bundled/skills/commands/pr.md +72 -0
- package/bundled/skills/commands/refactor.md +51 -0
- package/bundled/skills/commands/release.md +60 -0
- package/bundled/skills/commands/requirement.md +38 -0
- package/bundled/skills/commands/reverse-bdd.md +34 -0
- package/bundled/skills/commands/reverse-sdd.md +42 -0
- package/bundled/skills/commands/reverse-tdd.md +40 -0
- package/bundled/skills/commands/reverse.md +41 -0
- package/bundled/skills/commands/review.md +39 -0
- package/bundled/skills/commands/scan.md +68 -0
- package/bundled/skills/commands/sdd-retro.md +48 -0
- package/bundled/skills/commands/sdd.md +220 -0
- package/bundled/skills/commands/security.md +67 -0
- package/bundled/skills/commands/tdd.md +101 -0
- package/bundled/skills/commands/update.md +61 -0
- package/bundled/skills/commit-standards/SKILL.md +8 -2
- package/bundled/skills/database-assistant/SKILL.md +118 -0
- package/bundled/skills/dev-workflow-guide/SKILL.md +53 -7
- package/bundled/skills/dev-workflow-guide/workflow-phases.md +24 -0
- package/bundled/skills/durable-execution-assistant/SKILL.md +116 -0
- package/bundled/skills/forward-derivation/SKILL.md +7 -0
- package/bundled/skills/incident-response-assistant/SKILL.md +132 -0
- package/bundled/skills/methodology-system/SKILL.md +24 -2
- package/bundled/skills/metrics-dashboard-assistant/SKILL.md +109 -0
- package/bundled/skills/migration-assistant/SKILL.md +119 -0
- package/bundled/skills/pr-automation-assistant/SKILL.md +114 -0
- package/bundled/skills/project-discovery/SKILL.md +7 -0
- package/bundled/skills/refactoring-assistant/SKILL.md +7 -0
- package/bundled/skills/release-standards/SKILL.md +7 -0
- package/bundled/skills/requirement-assistant/SKILL.md +7 -0
- package/bundled/skills/reverse-engineer/SKILL.md +7 -0
- package/bundled/skills/security-assistant/SKILL.md +105 -0
- package/bundled/skills/security-scan-assistant/SKILL.md +96 -0
- package/bundled/skills/spec-driven-dev/SKILL.md +84 -4
- package/bundled/skills/spec-driven-dev/guide.md +156 -22
- package/bundled/skills/tdd-assistant/SKILL.md +7 -0
- package/bundled/skills/test-coverage-assistant/SKILL.md +11 -0
- package/bundled/skills/testing-guide/SKILL.md +23 -0
- package/package.json +1 -1
- package/src/commands/check.js +154 -8
- package/src/commands/config.js +231 -104
- package/src/commands/init.js +23 -3
- package/src/commands/update.js +250 -25
- package/src/config/ai-agent-paths.js +16 -0
- package/src/config/workflow-definitions.js +184 -0
- package/src/core/constants.js +6 -0
- package/src/flows/init-flow.js +23 -6
- package/src/i18n/messages.js +51 -3
- package/src/installers/integration-installer.js +67 -2
- package/src/installers/manifest-installer.js +1 -0
- package/src/installers/standards-installer.js +3 -2
- package/src/prompts/init.js +50 -3
- package/src/reconciler/manifest-migrator.js +2 -2
- package/src/reconciler/plan-executor.js +11 -0
- package/src/utils/integration-generator.js +327 -14
- package/src/utils/workflow-gate.js +292 -0
- package/standards-registry.json +160 -5
package/src/flows/init-flow.js
CHANGED
|
@@ -11,7 +11,8 @@ import {
|
|
|
11
11
|
promptContentMode,
|
|
12
12
|
promptMethodology,
|
|
13
13
|
promptCommandsInstallation,
|
|
14
|
-
handleAgentsMdSharing
|
|
14
|
+
handleAgentsMdSharing,
|
|
15
|
+
promptAgentsMd
|
|
15
16
|
} from '../prompts/init.js';
|
|
16
17
|
import {
|
|
17
18
|
promptIntegrationConfig
|
|
@@ -84,6 +85,15 @@ export async function runInitFlow(options, detected, projectPath) {
|
|
|
84
85
|
// === STEP 3: Handle AGENTS.md sharing ===
|
|
85
86
|
aiTools = handleAgentsMdSharing(aiTools);
|
|
86
87
|
|
|
88
|
+
// === STEP 3.5: AGENTS.md universal output ===
|
|
89
|
+
let generateAgentsMd = false;
|
|
90
|
+
if (!options.agentsMd && options.agentsMd !== false) {
|
|
91
|
+
// No explicit flag — prompt user (only if codex/opencode not selected)
|
|
92
|
+
generateAgentsMd = await promptAgentsMd(aiTools);
|
|
93
|
+
} else {
|
|
94
|
+
generateAgentsMd = !!options.agentsMd;
|
|
95
|
+
}
|
|
96
|
+
|
|
87
97
|
const skillsSupportedTools = aiTools.filter(tool => {
|
|
88
98
|
const config = getAgentConfig(tool);
|
|
89
99
|
return config?.supportsSkills && config?.skills;
|
|
@@ -159,12 +169,17 @@ export async function runInitFlow(options, detected, projectPath) {
|
|
|
159
169
|
}
|
|
160
170
|
|
|
161
171
|
// === STEP 6: Standards Format ===
|
|
172
|
+
// Default to 'ai'; only prompt when --experimental flag is used
|
|
162
173
|
if (!format) {
|
|
163
|
-
|
|
174
|
+
if (options.experimental) {
|
|
175
|
+
format = await promptFormat();
|
|
176
|
+
} else {
|
|
177
|
+
format = 'ai';
|
|
178
|
+
}
|
|
164
179
|
}
|
|
165
180
|
|
|
166
181
|
// === STEP 7: Standard Options ===
|
|
167
|
-
standardOptions = await promptStandardOptions(3, displayLanguage);
|
|
182
|
+
standardOptions = await promptStandardOptions(3, displayLanguage, { experimental: options.experimental });
|
|
168
183
|
|
|
169
184
|
// === STEP 8: Language Extensions ===
|
|
170
185
|
if (!languages) {
|
|
@@ -203,8 +218,9 @@ export async function runInitFlow(options, detected, projectPath) {
|
|
|
203
218
|
skillsConfig.integrationConfigs = integrationConfigs;
|
|
204
219
|
|
|
205
220
|
// === STEP 11: Content Mode ===
|
|
206
|
-
|
|
207
|
-
|
|
221
|
+
// Default to 'index'; only prompt when --experimental flag is used
|
|
222
|
+
let contentMode = 'index';
|
|
223
|
+
if (aiTools.length > 0 && options.experimental) {
|
|
208
224
|
contentMode = await promptContentMode();
|
|
209
225
|
}
|
|
210
226
|
skillsConfig.contentMode = contentMode;
|
|
@@ -226,6 +242,7 @@ export async function runInitFlow(options, detected, projectPath) {
|
|
|
226
242
|
skillsConfig,
|
|
227
243
|
aiTools,
|
|
228
244
|
integrations,
|
|
229
|
-
contentMode
|
|
245
|
+
contentMode,
|
|
246
|
+
generateAgentsMd
|
|
230
247
|
};
|
|
231
248
|
}
|
package/src/i18n/messages.js
CHANGED
|
@@ -338,6 +338,14 @@ export const messages = {
|
|
|
338
338
|
}
|
|
339
339
|
},
|
|
340
340
|
|
|
341
|
+
// AGENTS.md Universal Output
|
|
342
|
+
agentsMdPrompt: {
|
|
343
|
+
title: 'AGENTS.md (Universal Standard)',
|
|
344
|
+
description: 'AGENTS.md is an open standard (AAIF) supported by 60K+ open source projects.',
|
|
345
|
+
description2: 'Generating it allows Copilot, Jules, Codex, and other tools to auto-read your project standards.',
|
|
346
|
+
question: 'Generate AGENTS.md as a universal standards summary?'
|
|
347
|
+
},
|
|
348
|
+
|
|
341
349
|
// AI Tools Selection
|
|
342
350
|
aiTools: {
|
|
343
351
|
title: 'AI Development Tools',
|
|
@@ -961,6 +969,9 @@ export const messages = {
|
|
|
961
969
|
generatingClaudeMd: 'Generating CLAUDE.md...',
|
|
962
970
|
generatedClaudeMd: 'Generated CLAUDE.md',
|
|
963
971
|
couldNotGenerateClaudeMd: 'Could not generate CLAUDE.md',
|
|
972
|
+
generatingAgentsMd: 'Generating AGENTS.md (universal summary)...',
|
|
973
|
+
generatedAgentsMd: 'Generated AGENTS.md (universal summary)',
|
|
974
|
+
couldNotGenerateAgentsMd: 'Could not generate AGENTS.md',
|
|
964
975
|
installingSkills: 'Installing Claude Code Skills...',
|
|
965
976
|
installedSkills: 'Installed {count} Skills to {locations}',
|
|
966
977
|
installedSkillsWithErrors: 'Installed {count} Skills with {errors} errors',
|
|
@@ -1103,7 +1114,12 @@ export const messages = {
|
|
|
1103
1114
|
duplicatesFound: 'Found duplicate installations:',
|
|
1104
1115
|
duplicatesCleaned: 'Cleaned {count} duplicate installation(s)',
|
|
1105
1116
|
legacyCleaned: 'Cleaned {count} legacy command file(s)',
|
|
1106
|
-
noDuplicatesFound: 'No duplicate installations found'
|
|
1117
|
+
noDuplicatesFound: 'No duplicate installations found',
|
|
1118
|
+
// Post-update integrity check
|
|
1119
|
+
missingAfterUpdate: '⚠ {count} file(s) still missing after update',
|
|
1120
|
+
restoreMissingPrompt: 'Restore {count} missing file(s)?',
|
|
1121
|
+
restoringMissing: 'Restoring missing files...',
|
|
1122
|
+
restoredCount: 'Restored {restored}/{total} file(s)'
|
|
1107
1123
|
},
|
|
1108
1124
|
|
|
1109
1125
|
// configure command
|
|
@@ -1552,6 +1568,14 @@ export const messages = {
|
|
|
1552
1568
|
}
|
|
1553
1569
|
},
|
|
1554
1570
|
|
|
1571
|
+
// AGENTS.md 通用輸出
|
|
1572
|
+
agentsMdPrompt: {
|
|
1573
|
+
title: 'AGENTS.md(通用標準)',
|
|
1574
|
+
description: 'AGENTS.md 是 AAIF 管理的開放標準,60K+ 開源專案採用。',
|
|
1575
|
+
description2: '生成後,Copilot、Jules、Codex 等工具可自動讀取您的專案標準。',
|
|
1576
|
+
question: '是否生成 AGENTS.md 作為通用標準摘要?'
|
|
1577
|
+
},
|
|
1578
|
+
|
|
1555
1579
|
// AI Tools Selection
|
|
1556
1580
|
aiTools: {
|
|
1557
1581
|
title: 'AI 開發工具',
|
|
@@ -2175,6 +2199,9 @@ export const messages = {
|
|
|
2175
2199
|
generatingClaudeMd: '產生 CLAUDE.md 中...',
|
|
2176
2200
|
generatedClaudeMd: '已產生 CLAUDE.md',
|
|
2177
2201
|
couldNotGenerateClaudeMd: '無法產生 CLAUDE.md',
|
|
2202
|
+
generatingAgentsMd: '產生 AGENTS.md(通用摘要)中...',
|
|
2203
|
+
generatedAgentsMd: '已產生 AGENTS.md(通用摘要)',
|
|
2204
|
+
couldNotGenerateAgentsMd: '無法產生 AGENTS.md',
|
|
2178
2205
|
installingSkills: '安裝 Claude Code Skills 中...',
|
|
2179
2206
|
installedSkills: '已安裝 {count} 個 Skills 到 {locations}',
|
|
2180
2207
|
installedSkillsWithErrors: '已安裝 {count} 個 Skills,有 {errors} 個錯誤',
|
|
@@ -2317,7 +2344,12 @@ export const messages = {
|
|
|
2317
2344
|
duplicatesFound: '發現重複安裝:',
|
|
2318
2345
|
duplicatesCleaned: '已清理 {count} 個重複安裝',
|
|
2319
2346
|
legacyCleaned: '已清理 {count} 個舊版命令檔案',
|
|
2320
|
-
noDuplicatesFound: '未發現重複安裝'
|
|
2347
|
+
noDuplicatesFound: '未發現重複安裝',
|
|
2348
|
+
// Post-update integrity check
|
|
2349
|
+
missingAfterUpdate: '⚠ 更新後仍有 {count} 個檔案缺失',
|
|
2350
|
+
restoreMissingPrompt: '是否批次還原 {count} 個缺失的檔案?',
|
|
2351
|
+
restoringMissing: '正在還原缺失的檔案...',
|
|
2352
|
+
restoredCount: '已還原 {restored}/{total} 個檔案'
|
|
2321
2353
|
},
|
|
2322
2354
|
|
|
2323
2355
|
// configure command
|
|
@@ -2766,6 +2798,14 @@ export const messages = {
|
|
|
2766
2798
|
}
|
|
2767
2799
|
},
|
|
2768
2800
|
|
|
2801
|
+
// AGENTS.md 通用输出
|
|
2802
|
+
agentsMdPrompt: {
|
|
2803
|
+
title: 'AGENTS.md(通用标准)',
|
|
2804
|
+
description: 'AGENTS.md 是 AAIF 管理的开放标准,60K+ 开源项目采用。',
|
|
2805
|
+
description2: '生成后,Copilot、Jules、Codex 等工具可自动读取您的项目标准。',
|
|
2806
|
+
question: '是否生成 AGENTS.md 作为通用标准摘要?'
|
|
2807
|
+
},
|
|
2808
|
+
|
|
2769
2809
|
// AI Tools Selection
|
|
2770
2810
|
aiTools: {
|
|
2771
2811
|
title: 'AI 开发工具',
|
|
@@ -3135,6 +3175,9 @@ export const messages = {
|
|
|
3135
3175
|
generatingClaudeMd: '正在生成 CLAUDE.md...',
|
|
3136
3176
|
generatedClaudeMd: '已生成 CLAUDE.md',
|
|
3137
3177
|
couldNotGenerateClaudeMd: '无法生成 CLAUDE.md',
|
|
3178
|
+
generatingAgentsMd: '正在生成 AGENTS.md(通用摘要)...',
|
|
3179
|
+
generatedAgentsMd: '已生成 AGENTS.md(通用摘要)',
|
|
3180
|
+
couldNotGenerateAgentsMd: '无法生成 AGENTS.md',
|
|
3138
3181
|
installingSkills: '正在安装 Claude Code Skills...',
|
|
3139
3182
|
installedSkills: '已安装 {count} 个 Skills 到 {locations}',
|
|
3140
3183
|
installedSkillsWithErrors: '已安装 {count} 个 Skills,有 {errors} 个错误',
|
|
@@ -3460,7 +3503,12 @@ export const messages = {
|
|
|
3460
3503
|
duplicatesFound: '发现重复安装:',
|
|
3461
3504
|
duplicatesCleaned: '已清理 {count} 个重复安装',
|
|
3462
3505
|
legacyCleaned: '已清理 {count} 个旧版命令文件',
|
|
3463
|
-
noDuplicatesFound: '未发现重复安装'
|
|
3506
|
+
noDuplicatesFound: '未发现重复安装',
|
|
3507
|
+
// Post-update integrity check
|
|
3508
|
+
missingAfterUpdate: '⚠ 更新后仍有 {count} 个文件缺失',
|
|
3509
|
+
restoreMissingPrompt: '是否批量还原 {count} 个缺失的文件?',
|
|
3510
|
+
restoringMissing: '正在还原缺失的文件...',
|
|
3511
|
+
restoredCount: '已还原 {restored}/{total} 个文件'
|
|
3464
3512
|
},
|
|
3465
3513
|
|
|
3466
3514
|
// configure command
|
|
@@ -3,7 +3,8 @@ import { copyIntegration } from '../utils/copier.js';
|
|
|
3
3
|
import {
|
|
4
4
|
writeIntegrationFile,
|
|
5
5
|
integrationFileExists,
|
|
6
|
-
getToolFilePath
|
|
6
|
+
getToolFilePath,
|
|
7
|
+
writeAgentsMdSummary
|
|
7
8
|
} from '../utils/integration-generator.js';
|
|
8
9
|
import { calculateCategoriesFromStandards } from '../utils/reference-sync.js';
|
|
9
10
|
import { t } from '../i18n/messages.js';
|
|
@@ -83,7 +84,8 @@ export async function installIntegrations(config, projectPath) {
|
|
|
83
84
|
const results = {
|
|
84
85
|
integrations: [],
|
|
85
86
|
errors: [],
|
|
86
|
-
integrationBlockHashes: {}
|
|
87
|
+
integrationBlockHashes: {},
|
|
88
|
+
manifestIntegrationConfigs: {}
|
|
87
89
|
};
|
|
88
90
|
|
|
89
91
|
// Early return if no integrations to install
|
|
@@ -136,6 +138,17 @@ export async function installIntegrations(config, projectPath) {
|
|
|
136
138
|
installedAt: new Date().toISOString()
|
|
137
139
|
};
|
|
138
140
|
}
|
|
141
|
+
|
|
142
|
+
// Collect integration config for manifest (enables sync-refs regeneration)
|
|
143
|
+
results.manifestIntegrationConfigs[result.path] = {
|
|
144
|
+
tool: enhancedConfig.tool,
|
|
145
|
+
categories: enhancedConfig.categories,
|
|
146
|
+
language: enhancedConfig.language,
|
|
147
|
+
installedStandards: [...enhancedConfig.installedStandards],
|
|
148
|
+
contentMode: enhancedConfig.contentMode,
|
|
149
|
+
level: enhancedConfig.level,
|
|
150
|
+
commitLanguage: enhancedConfig.commitLanguage,
|
|
151
|
+
};
|
|
139
152
|
} else {
|
|
140
153
|
// Fall back to legacy static file copy
|
|
141
154
|
const mapping = INTEGRATION_MAPPINGS[tool];
|
|
@@ -235,3 +248,55 @@ export async function generateClaudeMd(config, projectPath) {
|
|
|
235
248
|
return { path: null, error: result.error };
|
|
236
249
|
}
|
|
237
250
|
}
|
|
251
|
+
|
|
252
|
+
/**
|
|
253
|
+
* Generate universal AGENTS.md summary if requested and not already generated
|
|
254
|
+
*
|
|
255
|
+
* @param {Object} config - Installation configuration
|
|
256
|
+
* @param {boolean} config.generateAgentsMd - Whether to generate AGENTS.md
|
|
257
|
+
* @param {string[]} config.aiTools - Selected AI tools
|
|
258
|
+
* @param {string[]} config.installedStandards - Installed standard file names
|
|
259
|
+
* @param {Object} config.standardOptions - Standard options
|
|
260
|
+
* @param {string} config.displayLanguage - Display language
|
|
261
|
+
* @param {Object} integrationResults - Results from installIntegrations
|
|
262
|
+
* @param {string[]} integrationResults.integrations - List of generated integration files
|
|
263
|
+
* @param {string} projectPath - Project root path
|
|
264
|
+
* @returns {Promise<Object>} Result with path and blockHashInfo
|
|
265
|
+
*/
|
|
266
|
+
export async function generateUniversalAgentsMd(config, integrationResults, projectPath) {
|
|
267
|
+
// Skip if not requested
|
|
268
|
+
if (!config.generateAgentsMd) {
|
|
269
|
+
return { path: null, error: null };
|
|
270
|
+
}
|
|
271
|
+
|
|
272
|
+
// Skip if AGENTS.md was already generated by codex/opencode integration
|
|
273
|
+
const alreadyGenerated = (integrationResults.integrations || []).includes('AGENTS.md');
|
|
274
|
+
if (alreadyGenerated) {
|
|
275
|
+
return { path: null, error: null };
|
|
276
|
+
}
|
|
277
|
+
|
|
278
|
+
const msg = t().commands.init;
|
|
279
|
+
const spinner = ora(msg.generatingAgentsMd || 'Generating AGENTS.md...').start();
|
|
280
|
+
|
|
281
|
+
const commitLanguage = config.commitLanguage ||
|
|
282
|
+
config.standardOptions?.commit_language ||
|
|
283
|
+
config.skillsConfig?.commitLanguage ||
|
|
284
|
+
'english';
|
|
285
|
+
|
|
286
|
+
const summaryConfig = {
|
|
287
|
+
installedStandards: config.installedStandards || [],
|
|
288
|
+
language: config.displayLanguage || config.commonLanguage || 'en',
|
|
289
|
+
commitLanguage,
|
|
290
|
+
standardOptions: config.standardOptions || {}
|
|
291
|
+
};
|
|
292
|
+
|
|
293
|
+
const result = writeAgentsMdSummary(summaryConfig, projectPath);
|
|
294
|
+
|
|
295
|
+
if (result.success) {
|
|
296
|
+
spinner.succeed(msg.generatedAgentsMd || 'Generated AGENTS.md (universal summary)');
|
|
297
|
+
return { path: result.path, error: null, blockHashInfo: result.blockHashInfo };
|
|
298
|
+
} else {
|
|
299
|
+
spinner.warn(msg.couldNotGenerateAgentsMd || 'Could not generate AGENTS.md');
|
|
300
|
+
return { path: null, error: result.error };
|
|
301
|
+
}
|
|
302
|
+
}
|
|
@@ -37,6 +37,7 @@ export function writeFinalManifest(config, results, projectPath) {
|
|
|
37
37
|
commit_language: config.standardOptions?.commit_language || null,
|
|
38
38
|
test_levels: config.standardOptions?.test_levels || []
|
|
39
39
|
},
|
|
40
|
+
generateAgentsMd: config.generateAgentsMd || false,
|
|
40
41
|
aiTools: config.aiTools || [],
|
|
41
42
|
skills: {
|
|
42
43
|
installed: config.skillsConfig?.installed || false,
|
|
@@ -161,10 +161,11 @@ export async function installStandards(config, projectPath) {
|
|
|
161
161
|
|
|
162
162
|
// Helper to compute and store hash
|
|
163
163
|
const addFileHash = (relativePath) => {
|
|
164
|
-
const
|
|
164
|
+
const normalizedPath = relativePath.replace(/\\/g, '/');
|
|
165
|
+
const fullPath = join(projectPath, normalizedPath);
|
|
165
166
|
const hashInfo = computeFileHash(fullPath);
|
|
166
167
|
if (hashInfo) {
|
|
167
|
-
results.fileHashes[
|
|
168
|
+
results.fileHashes[normalizedPath] = {
|
|
168
169
|
...hashInfo,
|
|
169
170
|
installedAt: now
|
|
170
171
|
};
|
package/src/prompts/init.js
CHANGED
|
@@ -822,13 +822,18 @@ export async function promptTestLevels() {
|
|
|
822
822
|
* @param {string} displayLanguage - Display language for bilingual commit option filtering
|
|
823
823
|
* @returns {Promise<Object>} Selected options
|
|
824
824
|
*/
|
|
825
|
-
export async function promptStandardOptions(level, displayLanguage = 'en') {
|
|
825
|
+
export async function promptStandardOptions(level, displayLanguage = 'en', opts = {}) {
|
|
826
826
|
const options = {};
|
|
827
827
|
|
|
828
828
|
// Git workflow options (level 2+)
|
|
829
829
|
if (level >= 2) {
|
|
830
830
|
options.workflow = await promptGitWorkflow();
|
|
831
|
-
|
|
831
|
+
// Merge strategy: default to 'squash'; only prompt with --experimental
|
|
832
|
+
if (opts.experimental) {
|
|
833
|
+
options.merge_strategy = await promptMergeStrategy();
|
|
834
|
+
} else {
|
|
835
|
+
options.merge_strategy = 'squash';
|
|
836
|
+
}
|
|
832
837
|
}
|
|
833
838
|
|
|
834
839
|
// Commit message options (level 1+)
|
|
@@ -836,8 +841,13 @@ export async function promptStandardOptions(level, displayLanguage = 'en') {
|
|
|
836
841
|
options.commit_language = await promptCommitLanguage(displayLanguage);
|
|
837
842
|
|
|
838
843
|
// Testing options (level 2+)
|
|
844
|
+
// Default to all 4 levels; only prompt with --experimental
|
|
839
845
|
if (level >= 2) {
|
|
840
|
-
|
|
846
|
+
if (opts.experimental) {
|
|
847
|
+
options.test_levels = await promptTestLevels();
|
|
848
|
+
} else {
|
|
849
|
+
options.test_levels = ['unit-testing', 'integration-testing', 'system-testing', 'e2e-testing'];
|
|
850
|
+
}
|
|
841
851
|
}
|
|
842
852
|
|
|
843
853
|
return options;
|
|
@@ -1137,6 +1147,43 @@ export async function promptContentMode() {
|
|
|
1137
1147
|
return mode;
|
|
1138
1148
|
}
|
|
1139
1149
|
|
|
1150
|
+
/**
|
|
1151
|
+
* Prompt for universal AGENTS.md generation
|
|
1152
|
+
* Shown when user has NOT selected codex/opencode (which already generate AGENTS.md)
|
|
1153
|
+
*
|
|
1154
|
+
* @param {string[]} selectedTools - Selected AI tools
|
|
1155
|
+
* @returns {Promise<boolean>} True if user wants AGENTS.md generated
|
|
1156
|
+
*/
|
|
1157
|
+
export async function promptAgentsMd(selectedTools) {
|
|
1158
|
+
const hasCodex = selectedTools.includes('codex');
|
|
1159
|
+
const hasOpencode = selectedTools.includes('opencode');
|
|
1160
|
+
|
|
1161
|
+
// Skip if codex/opencode already selected (they generate AGENTS.md)
|
|
1162
|
+
if (hasCodex || hasOpencode) {
|
|
1163
|
+
return false;
|
|
1164
|
+
}
|
|
1165
|
+
|
|
1166
|
+
const msg = t().agentsMdPrompt || {};
|
|
1167
|
+
|
|
1168
|
+
console.log();
|
|
1169
|
+
console.log(chalk.cyan(msg.title || 'AGENTS.md (Universal Standard)'));
|
|
1170
|
+
console.log(chalk.gray(` ${msg.description || 'AGENTS.md is an open standard supported by 60K+ projects.'}`));
|
|
1171
|
+
console.log(chalk.gray(` ${msg.description2 || 'Generating it allows Copilot, Jules, Codex, and other tools to read your project standards.'}`));
|
|
1172
|
+
console.log();
|
|
1173
|
+
|
|
1174
|
+
const { generate } = await inquirer.prompt([
|
|
1175
|
+
{
|
|
1176
|
+
type: 'confirm',
|
|
1177
|
+
name: 'generate',
|
|
1178
|
+
message: msg.question || 'Generate AGENTS.md as a universal standards summary?',
|
|
1179
|
+
suffix: ' ',
|
|
1180
|
+
default: true
|
|
1181
|
+
}
|
|
1182
|
+
]);
|
|
1183
|
+
|
|
1184
|
+
return generate;
|
|
1185
|
+
}
|
|
1186
|
+
|
|
1140
1187
|
/**
|
|
1141
1188
|
* Handle AGENTS.md sharing notification
|
|
1142
1189
|
* When both Codex and OpenCode are selected, inform user they share the same file
|
|
@@ -101,9 +101,9 @@ export function backfillFileHashes(projectPath, manifest) {
|
|
|
101
101
|
|
|
102
102
|
// Backfill standard file hashes
|
|
103
103
|
for (const standardPath of (updated.standards || [])) {
|
|
104
|
-
const relativePath = standardPath.startsWith('.standards/')
|
|
104
|
+
const relativePath = (standardPath.startsWith('.standards/')
|
|
105
105
|
? standardPath
|
|
106
|
-
: `.standards/${standardPath}
|
|
106
|
+
: `.standards/${standardPath}`).replace(/\\/g, '/');
|
|
107
107
|
const absPath = join(projectPath, relativePath);
|
|
108
108
|
|
|
109
109
|
if (!updated.fileHashes[relativePath] && existsSync(absPath)) {
|
|
@@ -402,6 +402,17 @@ async function executeCommandBatch(projectPath, commandActions, manifest) {
|
|
|
402
402
|
);
|
|
403
403
|
|
|
404
404
|
if (installResult.allFileHashes) {
|
|
405
|
+
// Clean up stale entries for agents being updated before merging
|
|
406
|
+
const updatedPrefixes = new Set(
|
|
407
|
+
Object.keys(installResult.allFileHashes).map(k => k.split('/')[0])
|
|
408
|
+
);
|
|
409
|
+
for (const prefix of updatedPrefixes) {
|
|
410
|
+
for (const key of Object.keys(manifest.commandHashes)) {
|
|
411
|
+
if (key.startsWith(prefix + '/')) {
|
|
412
|
+
delete manifest.commandHashes[key];
|
|
413
|
+
}
|
|
414
|
+
}
|
|
415
|
+
}
|
|
405
416
|
Object.assign(manifest.commandHashes, installResult.allFileHashes);
|
|
406
417
|
}
|
|
407
418
|
|