thachvd-kit 1.0.29 → 1.0.30
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 +50 -149
- package/bin/cli.js +356 -284
- package/package.json +1 -10
- package/.agent/agents/backend-specialist.md +0 -263
- package/.agent/agents/code-archaeologist.md +0 -106
- package/.agent/agents/database-architect.md +0 -226
- package/.agent/agents/debugger.md +0 -225
- package/.agent/agents/devops-engineer.md +0 -242
- package/.agent/agents/documentation-writer.md +0 -104
- package/.agent/agents/explorer-agent.md +0 -73
- package/.agent/agents/frontend-specialist.md +0 -593
- package/.agent/agents/game-developer.md +0 -162
- package/.agent/agents/mobile-developer.md +0 -377
- package/.agent/agents/orchestrator.md +0 -416
- package/.agent/agents/penetration-tester.md +0 -188
- package/.agent/agents/performance-optimizer.md +0 -187
- package/.agent/agents/product-manager.md +0 -112
- package/.agent/agents/product-owner.md +0 -95
- package/.agent/agents/project-planner.md +0 -406
- package/.agent/agents/qa-automation-engineer.md +0 -103
- package/.agent/agents/security-auditor.md +0 -170
- package/.agent/agents/seo-specialist.md +0 -111
- package/.agent/agents/test-engineer.md +0 -158
- package/.agent/docs/architecture.md +0 -15
- package/.agent/docs/conventions.md +0 -16
- package/.agent/docs/getting-started.md +0 -95
- package/.agent/docs/project.md +0 -59
- package/.agent/docs/tooling.md +0 -136
- package/.agent/docs/workflow.md +0 -79
- package/.agent/rules/GEMINI.md +0 -62
- package/.agent/skills/api-design/SKILL.md +0 -156
- package/.agent/skills/api-patterns/SKILL.md +0 -81
- package/.agent/skills/api-patterns/api-style.md +0 -42
- package/.agent/skills/api-patterns/auth.md +0 -24
- package/.agent/skills/api-patterns/documentation.md +0 -26
- package/.agent/skills/api-patterns/graphql.md +0 -41
- package/.agent/skills/api-patterns/rate-limiting.md +0 -31
- package/.agent/skills/api-patterns/response.md +0 -37
- package/.agent/skills/api-patterns/rest.md +0 -40
- package/.agent/skills/api-patterns/scripts/api_validator.py +0 -211
- package/.agent/skills/api-patterns/security-testing.md +0 -122
- package/.agent/skills/api-patterns/trpc.md +0 -41
- package/.agent/skills/api-patterns/versioning.md +0 -22
- package/.agent/skills/app-builder/SKILL.md +0 -75
- package/.agent/skills/app-builder/agent-coordination.md +0 -71
- package/.agent/skills/app-builder/feature-building.md +0 -53
- package/.agent/skills/app-builder/project-detection.md +0 -34
- package/.agent/skills/app-builder/scaffolding.md +0 -118
- package/.agent/skills/app-builder/tech-stack.md +0 -40
- package/.agent/skills/app-builder/templates/SKILL.md +0 -39
- package/.agent/skills/app-builder/templates/astro-static/TEMPLATE.md +0 -76
- package/.agent/skills/app-builder/templates/chrome-extension/TEMPLATE.md +0 -92
- package/.agent/skills/app-builder/templates/cli-tool/TEMPLATE.md +0 -88
- package/.agent/skills/app-builder/templates/electron-desktop/TEMPLATE.md +0 -88
- package/.agent/skills/app-builder/templates/express-api/TEMPLATE.md +0 -83
- package/.agent/skills/app-builder/templates/flutter-app/TEMPLATE.md +0 -90
- package/.agent/skills/app-builder/templates/monorepo-turborepo/TEMPLATE.md +0 -90
- package/.agent/skills/app-builder/templates/nextjs-fullstack/TEMPLATE.md +0 -122
- package/.agent/skills/app-builder/templates/nextjs-saas/TEMPLATE.md +0 -122
- package/.agent/skills/app-builder/templates/nextjs-static/TEMPLATE.md +0 -169
- package/.agent/skills/app-builder/templates/nuxt-app/TEMPLATE.md +0 -134
- package/.agent/skills/app-builder/templates/python-fastapi/TEMPLATE.md +0 -83
- package/.agent/skills/app-builder/templates/react-native-app/TEMPLATE.md +0 -119
- package/.agent/skills/architecture/SKILL.md +0 -55
- package/.agent/skills/architecture/context-discovery.md +0 -43
- package/.agent/skills/architecture/examples.md +0 -94
- package/.agent/skills/architecture/pattern-selection.md +0 -68
- package/.agent/skills/architecture/patterns-reference.md +0 -50
- package/.agent/skills/architecture/trade-off-analysis.md +0 -77
- package/.agent/skills/bash-linux/SKILL.md +0 -199
- package/.agent/skills/behavioral-modes/SKILL.md +0 -242
- package/.agent/skills/brainstorming/SKILL.md +0 -163
- package/.agent/skills/brainstorming/dynamic-questioning.md +0 -350
- package/.agent/skills/clean-code/SKILL.md +0 -201
- package/.agent/skills/code-review-checklist/SKILL.md +0 -109
- package/.agent/skills/database-design/SKILL.md +0 -52
- package/.agent/skills/database-design/database-selection.md +0 -43
- package/.agent/skills/database-design/indexing.md +0 -39
- package/.agent/skills/database-design/migrations.md +0 -48
- package/.agent/skills/database-design/optimization.md +0 -36
- package/.agent/skills/database-design/orm-selection.md +0 -30
- package/.agent/skills/database-design/schema-design.md +0 -56
- package/.agent/skills/database-design/scripts/schema_validator.py +0 -172
- package/.agent/skills/deployment-procedures/SKILL.md +0 -241
- package/.agent/skills/desktop-design/SKILL.md +0 -25
- package/.agent/skills/dispatching-parallel-agents/SKILL.md +0 -112
- package/.agent/skills/doc.md +0 -177
- package/.agent/skills/docker-patterns/SKILL.md +0 -232
- package/.agent/skills/documentation-templates/SKILL.md +0 -194
- package/.agent/skills/executing-plans/SKILL.md +0 -61
- package/.agent/skills/finishing-a-development-branch/SKILL.md +0 -135
- package/.agent/skills/frontend-design/SKILL.md +0 -418
- package/.agent/skills/frontend-design/animation-guide.md +0 -331
- package/.agent/skills/frontend-design/color-system.md +0 -311
- package/.agent/skills/frontend-design/decision-trees.md +0 -418
- package/.agent/skills/frontend-design/motion-graphics.md +0 -306
- package/.agent/skills/frontend-design/scripts/accessibility_checker.py +0 -183
- package/.agent/skills/frontend-design/scripts/ux_audit.py +0 -722
- package/.agent/skills/frontend-design/typography-system.md +0 -345
- package/.agent/skills/frontend-design/ux-psychology.md +0 -1116
- package/.agent/skills/frontend-design/visual-effects.md +0 -383
- package/.agent/skills/game-development/2d-games/SKILL.md +0 -119
- package/.agent/skills/game-development/3d-games/SKILL.md +0 -135
- package/.agent/skills/game-development/SKILL.md +0 -167
- package/.agent/skills/game-development/game-art/SKILL.md +0 -185
- package/.agent/skills/game-development/game-audio/SKILL.md +0 -190
- package/.agent/skills/game-development/game-design/SKILL.md +0 -129
- package/.agent/skills/game-development/mobile-games/SKILL.md +0 -108
- package/.agent/skills/game-development/multiplayer/SKILL.md +0 -132
- package/.agent/skills/game-development/pc-games/SKILL.md +0 -144
- package/.agent/skills/game-development/vr-ar/SKILL.md +0 -123
- package/.agent/skills/game-development/web-games/SKILL.md +0 -150
- package/.agent/skills/geo-fundamentals/SKILL.md +0 -156
- package/.agent/skills/geo-fundamentals/scripts/geo_checker.py +0 -289
- package/.agent/skills/golang-patterns/SKILL.md +0 -226
- package/.agent/skills/golang-testing/SKILL.md +0 -182
- package/.agent/skills/i18n-localization/SKILL.md +0 -154
- package/.agent/skills/i18n-localization/scripts/i18n_checker.py +0 -241
- package/.agent/skills/intelligent-routing/SKILL.md +0 -335
- package/.agent/skills/laravel-patterns/SKILL.md +0 -224
- package/.agent/skills/laravel-security/SKILL.md +0 -171
- package/.agent/skills/laravel-tdd/SKILL.md +0 -149
- package/.agent/skills/lint-and-validate/SKILL.md +0 -45
- package/.agent/skills/lint-and-validate/scripts/lint_runner.py +0 -184
- package/.agent/skills/lint-and-validate/scripts/type_coverage.py +0 -173
- package/.agent/skills/mcp-builder/SKILL.md +0 -176
- package/.agent/skills/mobile-design/SKILL.md +0 -394
- package/.agent/skills/mobile-design/decision-trees.md +0 -516
- package/.agent/skills/mobile-design/mobile-backend.md +0 -491
- package/.agent/skills/mobile-design/mobile-color-system.md +0 -420
- package/.agent/skills/mobile-design/mobile-debugging.md +0 -122
- package/.agent/skills/mobile-design/mobile-design-thinking.md +0 -357
- package/.agent/skills/mobile-design/mobile-navigation.md +0 -458
- package/.agent/skills/mobile-design/mobile-performance.md +0 -767
- package/.agent/skills/mobile-design/mobile-testing.md +0 -356
- package/.agent/skills/mobile-design/mobile-typography.md +0 -433
- package/.agent/skills/mobile-design/platform-android.md +0 -666
- package/.agent/skills/mobile-design/platform-ios.md +0 -561
- package/.agent/skills/mobile-design/scripts/mobile_audit.py +0 -670
- package/.agent/skills/mobile-design/touch-psychology.md +0 -537
- package/.agent/skills/nextjs-react-expert/1-async-eliminating-waterfalls.md +0 -312
- package/.agent/skills/nextjs-react-expert/2-bundle-bundle-size-optimization.md +0 -240
- package/.agent/skills/nextjs-react-expert/3-server-server-side-performance.md +0 -490
- package/.agent/skills/nextjs-react-expert/4-client-client-side-data-fetching.md +0 -264
- package/.agent/skills/nextjs-react-expert/5-rerender-re-render-optimization.md +0 -581
- package/.agent/skills/nextjs-react-expert/6-rendering-rendering-performance.md +0 -432
- package/.agent/skills/nextjs-react-expert/7-js-javascript-performance.md +0 -684
- package/.agent/skills/nextjs-react-expert/8-advanced-advanced-patterns.md +0 -150
- package/.agent/skills/nextjs-react-expert/SKILL.md +0 -286
- package/.agent/skills/nextjs-react-expert/scripts/convert_rules.py +0 -222
- package/.agent/skills/nextjs-react-expert/scripts/react_performance_checker.py +0 -252
- package/.agent/skills/nodejs-best-practices/SKILL.md +0 -333
- package/.agent/skills/parallel-agents/SKILL.md +0 -175
- package/.agent/skills/performance-profiling/SKILL.md +0 -143
- package/.agent/skills/performance-profiling/scripts/lighthouse_audit.py +0 -76
- package/.agent/skills/plan-writing/SKILL.md +0 -152
- package/.agent/skills/powershell-windows/SKILL.md +0 -167
- package/.agent/skills/project-onboarding/SKILL.md +0 -42
- package/.agent/skills/python-patterns/SKILL.md +0 -441
- package/.agent/skills/react-frontend/SKILL.md +0 -25
- package/.agent/skills/receiving-code-review/SKILL.md +0 -120
- package/.agent/skills/red-team-tactics/SKILL.md +0 -199
- package/.agent/skills/requesting-code-review/SKILL.md +0 -67
- package/.agent/skills/rust-pro/SKILL.md +0 -176
- package/.agent/skills/seo-fundamentals/SKILL.md +0 -129
- package/.agent/skills/seo-fundamentals/scripts/seo_checker.py +0 -219
- package/.agent/skills/server-management/SKILL.md +0 -161
- package/.agent/skills/subagent-driven-development/SKILL.md +0 -76
- package/.agent/skills/systematic-debugging/SKILL.md +0 -109
- package/.agent/skills/tailwind-patterns/SKILL.md +0 -269
- package/.agent/skills/tdd-workflow/SKILL.md +0 -149
- package/.agent/skills/testing-patterns/SKILL.md +0 -178
- package/.agent/skills/testing-patterns/scripts/test_runner.py +0 -219
- package/.agent/skills/using-git-worktrees/SKILL.md +0 -121
- package/.agent/skills/verification-before-completion/SKILL.md +0 -99
- package/.agent/skills/vulnerability-scanner/SKILL.md +0 -276
- package/.agent/skills/vulnerability-scanner/checklists.md +0 -121
- package/.agent/skills/vulnerability-scanner/scripts/security_scan.py +0 -458
- package/.agent/skills/web-design-guidelines/SKILL.md +0 -57
- package/.agent/skills/webapp-testing/SKILL.md +0 -187
- package/.agent/skills/webapp-testing/scripts/playwright_runner.py +0 -173
- package/.agent/skills/writing-skills/SKILL.md +0 -170
- package/.agent/workflows/brainstorm.md +0 -113
- package/.agent/workflows/create.md +0 -59
- package/.agent/workflows/debug.md +0 -103
- package/.agent/workflows/deploy.md +0 -176
- package/.agent/workflows/enhance.md +0 -63
- package/.agent/workflows/forge-debug.md +0 -12
- package/.agent/workflows/forge-fast.md +0 -22
- package/.agent/workflows/forge-release.md +0 -12
- package/.agent/workflows/forge-research.md +0 -24
- package/.agent/workflows/forge-review.md +0 -12
- package/.agent/workflows/forge-task.md +0 -37
- package/.agent/workflows/orchestrate.md +0 -237
- package/.agent/workflows/plan.md +0 -89
- package/.agent/workflows/preview.md +0 -81
- package/.agent/workflows/release.md +0 -42
- package/.agent/workflows/review.md +0 -125
- package/.agent/workflows/simple.md +0 -42
- package/.agent/workflows/spec.md +0 -140
- package/.agent/workflows/status.md +0 -86
- package/.agent/workflows/task.md +0 -59
- package/.agent/workflows/test.md +0 -144
- package/.agent/workflows/ui-ux-pro-max.md +0 -296
- package/agents/backend-specialist.md +0 -263
- package/agents/code-archaeologist.md +0 -106
- package/agents/database-architect.md +0 -226
- package/agents/debugger.md +0 -225
- package/agents/devops-engineer.md +0 -242
- package/agents/documentation-writer.md +0 -104
- package/agents/explorer-agent.md +0 -73
- package/agents/frontend-specialist.md +0 -593
- package/agents/game-developer.md +0 -162
- package/agents/mobile-developer.md +0 -377
- package/agents/orchestrator.md +0 -416
- package/agents/penetration-tester.md +0 -188
- package/agents/performance-optimizer.md +0 -187
- package/agents/product-manager.md +0 -112
- package/agents/product-owner.md +0 -95
- package/agents/project-planner.md +0 -406
- package/agents/qa-automation-engineer.md +0 -103
- package/agents/security-auditor.md +0 -170
- package/agents/seo-specialist.md +0 -111
- package/agents/test-engineer.md +0 -158
- package/commands/forge-debug.md +0 -12
- package/commands/forge-fast.md +0 -22
- package/commands/forge-release.md +0 -12
- package/commands/forge-research.md +0 -24
- package/commands/forge-review.md +0 -12
- package/commands/forge-task.md +0 -37
- package/kit/PROMPT_RECIPE.md +0 -30
- package/kit/README.md +0 -30
- package/prompts/debug.md +0 -11
- package/prompts/release.md +0 -11
- package/prompts/simple.md +0 -11
- package/prompts/spec.md +0 -11
- package/prompts/task.md +0 -12
- package/rules/GEMINI.md +0 -45
- package/scripts/auto_preview.py +0 -148
- package/scripts/checklist.py +0 -217
- package/scripts/session_manager.py +0 -120
- package/scripts/verify_all.py +0 -327
- package/skills/api-design/SKILL.md +0 -156
- package/skills/api-patterns/SKILL.md +0 -81
- package/skills/api-patterns/api-style.md +0 -42
- package/skills/api-patterns/auth.md +0 -24
- package/skills/api-patterns/documentation.md +0 -26
- package/skills/api-patterns/graphql.md +0 -41
- package/skills/api-patterns/rate-limiting.md +0 -31
- package/skills/api-patterns/response.md +0 -37
- package/skills/api-patterns/rest.md +0 -40
- package/skills/api-patterns/scripts/api_validator.py +0 -211
- package/skills/api-patterns/security-testing.md +0 -122
- package/skills/api-patterns/trpc.md +0 -41
- package/skills/api-patterns/versioning.md +0 -22
- package/skills/app-builder/SKILL.md +0 -75
- package/skills/app-builder/agent-coordination.md +0 -71
- package/skills/app-builder/feature-building.md +0 -53
- package/skills/app-builder/project-detection.md +0 -34
- package/skills/app-builder/scaffolding.md +0 -118
- package/skills/app-builder/tech-stack.md +0 -40
- package/skills/app-builder/templates/SKILL.md +0 -39
- package/skills/app-builder/templates/astro-static/TEMPLATE.md +0 -76
- package/skills/app-builder/templates/chrome-extension/TEMPLATE.md +0 -92
- package/skills/app-builder/templates/cli-tool/TEMPLATE.md +0 -88
- package/skills/app-builder/templates/electron-desktop/TEMPLATE.md +0 -88
- package/skills/app-builder/templates/express-api/TEMPLATE.md +0 -83
- package/skills/app-builder/templates/flutter-app/TEMPLATE.md +0 -90
- package/skills/app-builder/templates/monorepo-turborepo/TEMPLATE.md +0 -90
- package/skills/app-builder/templates/nextjs-fullstack/TEMPLATE.md +0 -122
- package/skills/app-builder/templates/nextjs-saas/TEMPLATE.md +0 -122
- package/skills/app-builder/templates/nextjs-static/TEMPLATE.md +0 -169
- package/skills/app-builder/templates/nuxt-app/TEMPLATE.md +0 -134
- package/skills/app-builder/templates/python-fastapi/TEMPLATE.md +0 -83
- package/skills/app-builder/templates/react-native-app/TEMPLATE.md +0 -119
- package/skills/architecture/SKILL.md +0 -55
- package/skills/architecture/context-discovery.md +0 -43
- package/skills/architecture/examples.md +0 -94
- package/skills/architecture/pattern-selection.md +0 -68
- package/skills/architecture/patterns-reference.md +0 -50
- package/skills/architecture/trade-off-analysis.md +0 -77
- package/skills/bash-linux/SKILL.md +0 -199
- package/skills/behavioral-modes/SKILL.md +0 -242
- package/skills/brainstorming/SKILL.md +0 -163
- package/skills/brainstorming/dynamic-questioning.md +0 -350
- package/skills/clean-code/SKILL.md +0 -201
- package/skills/code-review-checklist/SKILL.md +0 -142
- package/skills/database-design/SKILL.md +0 -52
- package/skills/database-design/database-selection.md +0 -43
- package/skills/database-design/indexing.md +0 -39
- package/skills/database-design/migrations.md +0 -48
- package/skills/database-design/optimization.md +0 -36
- package/skills/database-design/orm-selection.md +0 -30
- package/skills/database-design/schema-design.md +0 -56
- package/skills/database-design/scripts/schema_validator.py +0 -172
- package/skills/deployment-procedures/SKILL.md +0 -241
- package/skills/desktop-design/SKILL.md +0 -25
- package/skills/dispatching-parallel-agents/SKILL.md +0 -112
- package/skills/doc.md +0 -177
- package/skills/docker-patterns/SKILL.md +0 -232
- package/skills/documentation-templates/SKILL.md +0 -194
- package/skills/executing-plans/SKILL.md +0 -61
- package/skills/finishing-a-development-branch/SKILL.md +0 -135
- package/skills/frontend-design/SKILL.md +0 -418
- package/skills/frontend-design/animation-guide.md +0 -331
- package/skills/frontend-design/color-system.md +0 -311
- package/skills/frontend-design/decision-trees.md +0 -418
- package/skills/frontend-design/motion-graphics.md +0 -306
- package/skills/frontend-design/scripts/accessibility_checker.py +0 -183
- package/skills/frontend-design/scripts/ux_audit.py +0 -722
- package/skills/frontend-design/typography-system.md +0 -345
- package/skills/frontend-design/ux-psychology.md +0 -1116
- package/skills/frontend-design/visual-effects.md +0 -383
- package/skills/game-development/2d-games/SKILL.md +0 -119
- package/skills/game-development/3d-games/SKILL.md +0 -135
- package/skills/game-development/SKILL.md +0 -167
- package/skills/game-development/game-art/SKILL.md +0 -185
- package/skills/game-development/game-audio/SKILL.md +0 -190
- package/skills/game-development/game-design/SKILL.md +0 -129
- package/skills/game-development/mobile-games/SKILL.md +0 -108
- package/skills/game-development/multiplayer/SKILL.md +0 -132
- package/skills/game-development/pc-games/SKILL.md +0 -144
- package/skills/game-development/vr-ar/SKILL.md +0 -123
- package/skills/game-development/web-games/SKILL.md +0 -150
- package/skills/geo-fundamentals/SKILL.md +0 -156
- package/skills/geo-fundamentals/scripts/geo_checker.py +0 -289
- package/skills/golang-patterns/SKILL.md +0 -226
- package/skills/golang-testing/SKILL.md +0 -182
- package/skills/i18n-localization/SKILL.md +0 -154
- package/skills/i18n-localization/scripts/i18n_checker.py +0 -241
- package/skills/intelligent-routing/SKILL.md +0 -335
- package/skills/laravel-patterns/SKILL.md +0 -224
- package/skills/laravel-security/SKILL.md +0 -171
- package/skills/laravel-tdd/SKILL.md +0 -149
- package/skills/lint-and-validate/SKILL.md +0 -45
- package/skills/lint-and-validate/scripts/lint_runner.py +0 -184
- package/skills/lint-and-validate/scripts/type_coverage.py +0 -173
- package/skills/mcp-builder/SKILL.md +0 -176
- package/skills/mobile-design/SKILL.md +0 -394
- package/skills/mobile-design/decision-trees.md +0 -516
- package/skills/mobile-design/mobile-backend.md +0 -491
- package/skills/mobile-design/mobile-color-system.md +0 -420
- package/skills/mobile-design/mobile-debugging.md +0 -122
- package/skills/mobile-design/mobile-design-thinking.md +0 -357
- package/skills/mobile-design/mobile-navigation.md +0 -458
- package/skills/mobile-design/mobile-performance.md +0 -767
- package/skills/mobile-design/mobile-testing.md +0 -356
- package/skills/mobile-design/mobile-typography.md +0 -433
- package/skills/mobile-design/platform-android.md +0 -666
- package/skills/mobile-design/platform-ios.md +0 -561
- package/skills/mobile-design/scripts/mobile_audit.py +0 -670
- package/skills/mobile-design/touch-psychology.md +0 -537
- package/skills/nextjs-react-expert/1-async-eliminating-waterfalls.md +0 -312
- package/skills/nextjs-react-expert/2-bundle-bundle-size-optimization.md +0 -240
- package/skills/nextjs-react-expert/3-server-server-side-performance.md +0 -490
- package/skills/nextjs-react-expert/4-client-client-side-data-fetching.md +0 -264
- package/skills/nextjs-react-expert/5-rerender-re-render-optimization.md +0 -581
- package/skills/nextjs-react-expert/6-rendering-rendering-performance.md +0 -432
- package/skills/nextjs-react-expert/7-js-javascript-performance.md +0 -684
- package/skills/nextjs-react-expert/8-advanced-advanced-patterns.md +0 -150
- package/skills/nextjs-react-expert/SKILL.md +0 -286
- package/skills/nextjs-react-expert/scripts/convert_rules.py +0 -222
- package/skills/nextjs-react-expert/scripts/react_performance_checker.py +0 -252
- package/skills/nodejs-best-practices/SKILL.md +0 -333
- package/skills/parallel-agents/SKILL.md +0 -175
- package/skills/performance-profiling/SKILL.md +0 -143
- package/skills/performance-profiling/scripts/lighthouse_audit.py +0 -76
- package/skills/plan-writing/SKILL.md +0 -152
- package/skills/powershell-windows/SKILL.md +0 -167
- package/skills/project-onboarding/SKILL.md +0 -42
- package/skills/python-patterns/SKILL.md +0 -441
- package/skills/react-frontend/SKILL.md +0 -25
- package/skills/receiving-code-review/SKILL.md +0 -120
- package/skills/red-team-tactics/SKILL.md +0 -199
- package/skills/requesting-code-review/SKILL.md +0 -67
- package/skills/rust-pro/SKILL.md +0 -176
- package/skills/seo-fundamentals/SKILL.md +0 -129
- package/skills/seo-fundamentals/scripts/seo_checker.py +0 -219
- package/skills/server-management/SKILL.md +0 -161
- package/skills/subagent-driven-development/SKILL.md +0 -76
- package/skills/systematic-debugging/SKILL.md +0 -109
- package/skills/tailwind-patterns/SKILL.md +0 -269
- package/skills/tdd-workflow/SKILL.md +0 -173
- package/skills/testing-patterns/SKILL.md +0 -178
- package/skills/testing-patterns/scripts/test_runner.py +0 -219
- package/skills/using-git-worktrees/SKILL.md +0 -121
- package/skills/verification-before-completion/SKILL.md +0 -113
- package/skills/vulnerability-scanner/SKILL.md +0 -276
- package/skills/vulnerability-scanner/checklists.md +0 -121
- package/skills/vulnerability-scanner/scripts/security_scan.py +0 -458
- package/skills/web-design-guidelines/SKILL.md +0 -57
- package/skills/webapp-testing/SKILL.md +0 -187
- package/skills/webapp-testing/scripts/playwright_runner.py +0 -173
- package/skills/writing-skills/SKILL.md +0 -170
- package/workflows/brainstorm.md +0 -113
- package/workflows/create.md +0 -59
- package/workflows/debug.md +0 -103
- package/workflows/deploy.md +0 -176
- package/workflows/enhance.md +0 -63
- package/workflows/orchestrate.md +0 -237
- package/workflows/plan.md +0 -89
- package/workflows/preview.md +0 -81
- package/workflows/release.md +0 -42
- package/workflows/simple.md +0 -42
- package/workflows/status.md +0 -86
- package/workflows/task.md +0 -59
- package/workflows/test.md +0 -144
- package/workflows/ui-ux-pro-max.md +0 -296
package/bin/cli.js
CHANGED
|
@@ -9,7 +9,9 @@ const packageJson = require('../package.json');
|
|
|
9
9
|
|
|
10
10
|
const sourceDir = path.resolve(__dirname, '..');
|
|
11
11
|
const targetDir = process.cwd();
|
|
12
|
-
const
|
|
12
|
+
const CODEBASE_MEMORY_PACKAGE = 'codebase-memory-mcp';
|
|
13
|
+
const CODEBASE_MEMORY_BINARY = 'codebase-memory-mcp';
|
|
14
|
+
const RTK_INSTALL_COMMAND = 'cargo install --git https://github.com/rtk-ai/rtk --branch master rtk';
|
|
13
15
|
|
|
14
16
|
// --- Skill Resolver ---
|
|
15
17
|
|
|
@@ -119,73 +121,48 @@ const BACKEND_FRAMEWORKS = ['laravel', 'cakephp', 'symfony', 'codeigniter', 'exp
|
|
|
119
121
|
const MOBILE_DESKTOP_FRAMEWORKS = ['tauri', 'flutter', 'react-native'];
|
|
120
122
|
const IGNORED_SCAN_DIRS = new Set(['.git', 'node_modules', 'vendor', 'dist', 'build', 'coverage', '.next', '.nuxt', '.turbo', '.cache', 'storage', 'tmp']);
|
|
121
123
|
|
|
122
|
-
function printHelp() {
|
|
123
|
-
console.log(`
|
|
124
|
-
${pc.bold('Usage:')}
|
|
125
|
-
thachvd-kit [--yes]
|
|
126
|
-
thachvd-kit
|
|
127
|
-
thachvd-kit
|
|
128
|
-
thachvd-kit --
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
--
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
.
|
|
144
|
-
.
|
|
145
|
-
|
|
146
|
-
.
|
|
147
|
-
|
|
124
|
+
function printHelp() {
|
|
125
|
+
console.log(`
|
|
126
|
+
${pc.bold('Usage:')}
|
|
127
|
+
thachvd-kit init [--yes]
|
|
128
|
+
thachvd-kit setup [--yes]
|
|
129
|
+
thachvd-kit doctor
|
|
130
|
+
thachvd-kit --version
|
|
131
|
+
thachvd-kit --help
|
|
132
|
+
|
|
133
|
+
${pc.bold('Commands:')}
|
|
134
|
+
init Generate project context files and documentation
|
|
135
|
+
setup Install/configure optional MCP and local tooling
|
|
136
|
+
doctor Check project context and local integrations
|
|
137
|
+
|
|
138
|
+
${pc.bold('Options:')}
|
|
139
|
+
--yes Overwrite generated files or accept setup defaults
|
|
140
|
+
--no-setup-mcp Skip MCP setup (legacy init compatibility)
|
|
141
|
+
--version Show the installed CLI version
|
|
142
|
+
--help Show this help message
|
|
143
|
+
|
|
144
|
+
${pc.bold('What gets generated:')}
|
|
145
|
+
AGENTS.md Shared instructions for Codex, Antigravity, Claude Code, and Cursor
|
|
146
|
+
CLAUDE.md Claude Code entry file that imports AGENTS.md
|
|
147
|
+
GEMINI.md Antigravity entry file that points to AGENTS.md
|
|
148
|
+
.cursorrules Cursor entry file that points to AGENTS.md
|
|
149
|
+
.agent/docs/ Project context, architecture, conventions, workflow, and tooling docs
|
|
150
|
+
|
|
148
151
|
${pc.bold('Workflow guide:')}
|
|
149
|
-
Every task
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
Npm package release /forge-release Verify, version, tag, publish, and verify the package
|
|
164
|
-
Project state /status Summarize stack, progress, preview, pending work
|
|
165
|
-
Multi-domain work /orchestrate Coordinate frontend, backend, data, security, QA
|
|
166
|
-
|
|
167
|
-
${pc.bold('Common explicit skill prompts:')}
|
|
168
|
-
Use /forge-task to route and continue a request in one turn.
|
|
169
|
-
Use /forge-fast for a one-file fix with no behavior or contract change.
|
|
170
|
-
Use /brainstorm for this feature idea before planning.
|
|
171
|
-
Use /forge-task when requirements or scope need an explicit contract.
|
|
172
|
-
Use /plan for this feature; do not write code yet.
|
|
173
|
-
Use /enhance to implement this planned feature.
|
|
174
|
-
Use /forge-debug for this failing behavior and find the root cause before editing.
|
|
175
|
-
Use /review before claiming this feature/refactor complete.
|
|
176
|
-
Use /forge-release for npm versioning and publishing.
|
|
177
|
-
Use $clean-code before editing this module.
|
|
178
|
-
Use $systematic-debugging to investigate this bug.
|
|
179
|
-
Use $webapp-testing to verify the UI with Playwright.
|
|
180
|
-
Use $verification-before-completion before claiming done.
|
|
181
|
-
Use $writing-skills to improve a SKILL.md description.
|
|
182
|
-
|
|
183
|
-
${pc.bold('Tip:')}
|
|
184
|
-
Skills are copied for Codex/Claude, but you can call them explicitly with $skill-name
|
|
185
|
-
when implicit matching does not fire.
|
|
186
|
-
`);
|
|
187
|
-
|
|
188
|
-
}
|
|
152
|
+
Every task Superpowers Use the matching native Superpowers skill
|
|
153
|
+
Idea is fuzzy brainstorming Clarify intent and tradeoffs before coding
|
|
154
|
+
Scope needs a contract writing-plans Create a detailed plan before implementation
|
|
155
|
+
Execute an approved plan executing-plans Follow the approved plan with verification
|
|
156
|
+
Bug or failing behavior systematic-debugging Find the root cause before editing
|
|
157
|
+
Pre-merge review requesting-code-review Review before completion or merge
|
|
158
|
+
UI / UX work $frontend-design, $webapp-testing
|
|
159
|
+
Project state thachvd-kit doctor
|
|
160
|
+
|
|
161
|
+
${pc.bold('Tip:')}
|
|
162
|
+
Install Superpowers separately for each AI client from its official plugin surface.
|
|
163
|
+
Run thachvd-kit setup for the integration checklist and doctor to verify it.
|
|
164
|
+
`);
|
|
165
|
+
}
|
|
189
166
|
|
|
190
167
|
function formatScanPreviewLines(scanned) {
|
|
191
168
|
return [
|
|
@@ -903,10 +880,10 @@ function resolveAgentTable(data) {
|
|
|
903
880
|
}
|
|
904
881
|
// --- File Generators ---
|
|
905
882
|
|
|
906
|
-
function generateSharedAgentsMd(data) {
|
|
907
|
-
return `# AGENTS.md
|
|
908
|
-
|
|
909
|
-
Shared operating instructions for Codex, Antigravity, Claude Code, and Cursor.
|
|
883
|
+
function generateSharedAgentsMd(data) {
|
|
884
|
+
return `# AGENTS.md
|
|
885
|
+
|
|
886
|
+
Shared operating instructions for Codex, Antigravity, Claude Code, and Cursor.
|
|
910
887
|
|
|
911
888
|
## Startup
|
|
912
889
|
|
|
@@ -914,57 +891,24 @@ Shared operating instructions for Codex, Antigravity, Claude Code, and Cursor.
|
|
|
914
891
|
2. Read \`.agent/docs/project.md\` for detected stack, commands, and routing.
|
|
915
892
|
3. Read \`.agent/docs/workflow.md\` for the task flow before editing.
|
|
916
893
|
4. Read \`.agent/docs/architecture.md\` and \`.agent/docs/conventions.md\` before planning code changes.
|
|
917
|
-
5. Read \`.agent/docs/tooling.md\` when the task needs
|
|
918
|
-
6. Select and load only the agent, skill, or workflow files that match the current task.
|
|
919
|
-
|
|
920
|
-
If any \`.agent/docs/*.md\` file still contains \`TODO: refine\`, update the docs by scanning the project before making product code changes.
|
|
921
|
-
|
|
922
|
-
## Task Flow
|
|
923
|
-
|
|
924
|
-
Forge is the member-facing command suite. Use \`/forge-task <request>\` in Antigravity, Claude Code, or Cursor, and \`$forge-task <request>\` in Codex. The command classifies the request and continues the selected workflow in the same turn; it must not stop at a member-facing \`NEXT\` command.
|
|
925
|
-
|
|
926
|
-
- Questions and analysis without a command: answer directly and do not edit code.
|
|
927
|
-
- Edit requests without a command: route internally as \`forge-task\` before editing.
|
|
928
|
-
- Simple fix: use \`/forge-fast <request>\` only for one-file, unambiguous changes with no behavior or contract change.
|
|
929
|
-
- Bug or failing behavior: use \`/forge-debug <symptom>\` and follow the evidence-first root-cause flow.
|
|
930
|
-
- Research: use \`/forge-research <question>\`; research does not edit product code.
|
|
931
|
-
- Feature or refactor: \`forge-task\` handles research/brainstorm, spec, plan approval, implementation, test, and review in sequence.
|
|
932
|
-
- Pre-merge review: use \`/forge-review\` even when implementation was done by another client or member.
|
|
933
|
-
- Release or npm publish: use \`/forge-release\`; release work never uses the fast path.
|
|
934
|
-
- Multi-domain work: use \`.agent/workflows/orchestrate.md\` and route to the relevant specialist docs.
|
|
935
|
-
- UI work: read \`.agent/agents/frontend-specialist.md\` and applicable design skills before editing.
|
|
936
|
-
|
|
937
|
-
### Fast Path (Forge \`forge-fast\`)
|
|
894
|
+
5. Read \`.agent/docs/tooling.md\` when the task needs MCP, RTK, or browser verification.
|
|
938
895
|
|
|
939
|
-
|
|
896
|
+
If any \`.agent/docs/*.md\` file still contains \`TODO: refine\`, update the docs by scanning the project before making product code changes.
|
|
940
897
|
|
|
941
|
-
|
|
942
|
-
FAST_PATH: simple-fix
|
|
943
|
-
REASON: [why the change is one-file and unambiguous]
|
|
944
|
-
SCOPE: [file or narrow area]
|
|
945
|
-
\`\`\`
|
|
898
|
+
## Workflow
|
|
946
899
|
|
|
947
|
-
|
|
948
|
-
|
|
949
|
-
### Gated Flow (feature or refactor)
|
|
900
|
+
Superpowers is the primary workflow backend. Use its native skills when available:
|
|
950
901
|
|
|
951
|
-
|
|
952
|
-
|
|
953
|
-
|
|
954
|
-
|
|
902
|
+
- New idea or unclear requirement: \`brainstorming\`.
|
|
903
|
+
- Feature/refactor: \`using-git-worktrees\` -> \`writing-plans\` -> explicit approval -> \`executing-plans\` or \`subagent-driven-development\`.
|
|
904
|
+
- Implementation: \`test-driven-development\` and focused verification.
|
|
905
|
+
- Bug or failing behavior: \`systematic-debugging\` followed by a regression test.
|
|
906
|
+
- Before completion: \`requesting-code-review\` and \`verification-before-completion\`.
|
|
907
|
+
- Branch completion: \`finishing-a-development-branch\`.
|
|
955
908
|
|
|
956
|
-
|
|
909
|
+
Questions and research do not edit product code. A simple fix may use a fast path only when it is one-file, unambiguous, and changes no behavior or contract. State the scope and verification before editing. If the scope grows, switch to the full Superpowers flow.
|
|
957
910
|
|
|
958
|
-
|
|
959
|
-
|
|
960
|
-
- Treat \`.agent/skills/\` as the shared source of truth for all kit skills.
|
|
961
|
-
- Codex exposes skills from \`~/.codex/skills/\` in the \`$\` menu; \`thachvd-kit\` copies selected skills there on init.
|
|
962
|
-
- Claude Code project skills live in \`.claude/skills/\`.
|
|
963
|
-
- If a skill is missing from the global dir, fall back to the matching \`.agent/skills/<skill>/SKILL.md\` file.
|
|
964
|
-
- Do not load skill bodies by default; load a skill only when the user mentions it, the task clearly matches its description, or \`.agent/docs/project.md\` routes the task to it.
|
|
965
|
-
- Prefer explicit skill mentions for predictable behavior: \`$clean-code\`, \`$systematic-debugging\`, \`$webapp-testing\`, or any skill listed in \`.agent/docs/project.md\`.
|
|
966
|
-
- Run \`thachvd-kit --help\` to see common workflow and skill recommendations.
|
|
967
|
-
- When creating or improving skills, use \`writing-skills\` first and make the \`description\` field specific enough for implicit invocation.
|
|
911
|
+
If Superpowers is unavailable, follow the plain-language flow in \`.agent/docs/workflow.md\`; do not expect this kit to provide a second copy of the workflow engine.
|
|
968
912
|
|
|
969
913
|
## Rules
|
|
970
914
|
|
|
@@ -972,23 +916,19 @@ A feature/refactor task is not "done" until step 4's exit criteria are met — p
|
|
|
972
916
|
- State assumptions when the request is ambiguous.
|
|
973
917
|
- Prefer the existing project style over new abstractions.
|
|
974
918
|
- Keep changes surgical and remove only dead code introduced by your change.
|
|
975
|
-
- **MCP First**: Prioritize
|
|
919
|
+
- **MCP First**: Prioritize \`codebase-memory-mcp\` for symbols, call paths, architecture, and impact; use \`context7\` for API/docs queries and \`playwright\` for browser/UI verification. Fall back to normal file search when an integration is unavailable.
|
|
976
920
|
- Tests or equivalent verification are mandatory before claiming done.
|
|
977
921
|
- Keep files under ${data.max_file_lines || '300'} lines unless the project already has a different standard in \`.agent/docs/conventions.md\`.
|
|
978
922
|
|
|
979
|
-
## Shared Knowledge
|
|
980
|
-
|
|
981
|
-
- Project
|
|
982
|
-
-
|
|
983
|
-
-
|
|
984
|
-
-
|
|
985
|
-
-
|
|
986
|
-
|
|
987
|
-
|
|
988
|
-
- Antigravity mirror rules: \`.agent/rules/GEMINI.md\`
|
|
989
|
-
- Cursor entry rules: \`.cursorrules\`
|
|
990
|
-
`;
|
|
991
|
-
}
|
|
923
|
+
## Shared Knowledge
|
|
924
|
+
|
|
925
|
+
- Project context: \`.agent/docs/\`
|
|
926
|
+
- Tooling setup: \`.agent/docs/tooling.md\`
|
|
927
|
+
- Superpowers: installed through the AI client's official plugin surface
|
|
928
|
+
- RTK: optional local CLI for compact command output
|
|
929
|
+
- Antigravity and Cursor entry rules: \`GEMINI.md\` and \`.cursorrules\`
|
|
930
|
+
`;
|
|
931
|
+
}
|
|
992
932
|
|
|
993
933
|
function generateSharedClaudeMd() {
|
|
994
934
|
return `@AGENTS.md
|
|
@@ -1074,8 +1014,6 @@ function resolveCommands(data) {
|
|
|
1074
1014
|
|
|
1075
1015
|
function generateProjectDoc(data) {
|
|
1076
1016
|
const commands = resolveCommands(data);
|
|
1077
|
-
const agentRows = resolveAgentTable(data).map(([task, agent, skills]) => `| ${task} | \`${agent}\` | ${skills} |`).join('\n');
|
|
1078
|
-
const skillsList = resolveSkills(data).map(s => `- ${s}`).join('\n');
|
|
1079
1017
|
const evidence = (data.scan_evidence || []).length > 0
|
|
1080
1018
|
? (data.scan_evidence || []).map(line => `- ${line}`).join('\n')
|
|
1081
1019
|
: '- TODO: refine scan evidence by inspecting the project.';
|
|
@@ -1108,29 +1046,20 @@ Generated by thachvd-kit on ${new Date().toISOString().split('T')[0]}.
|
|
|
1108
1046
|
- Test: \`${commands.test}\`
|
|
1109
1047
|
- Lint: \`${commands.lint}\`
|
|
1110
1048
|
|
|
1111
|
-
## Available
|
|
1049
|
+
## Available Integrations
|
|
1112
1050
|
|
|
1113
|
-
Use these
|
|
1051
|
+
Use these integrations when available. Run thachvd-kit doctor to check the current machine.
|
|
1114
1052
|
|
|
1115
1053
|
| MCP | When to Use |
|
|
1116
1054
|
|-----|-------------|
|
|
1117
|
-
| \`
|
|
1055
|
+
| \`codebase-memory-mcp\` | Explore symbols, trace call chains, architecture, and impact |
|
|
1118
1056
|
| \`context7\` | Look up library/framework docs, API signatures, migration guides |
|
|
1119
|
-
| \`playwright\` | Verify UI behavior, take screenshots, test forms and navigation |
|
|
1057
|
+
| \`playwright\` | Verify UI behavior, take screenshots, test forms and navigation |
|
|
1058
|
+
| \`rtk\` | Reduce noisy output from git, tests, builds, and package commands |
|
|
1120
1059
|
|
|
1121
1060
|
> Check \`.agent/docs/tooling.md\` for setup details and additional MCP servers.
|
|
1122
1061
|
|
|
1123
|
-
##
|
|
1124
|
-
|
|
1125
|
-
| Task Type | Agent | Primary Skills |
|
|
1126
|
-
|-----------|-------|----------------|
|
|
1127
|
-
${agentRows}
|
|
1128
|
-
|
|
1129
|
-
## Auto-Resolved Skills
|
|
1130
|
-
|
|
1131
|
-
${skillsList}
|
|
1132
|
-
|
|
1133
|
-
## Scan Evidence
|
|
1062
|
+
## Scan Evidence
|
|
1134
1063
|
|
|
1135
1064
|
${evidence}
|
|
1136
1065
|
`;
|
|
@@ -1182,38 +1111,77 @@ function generateConventionsDoc(data) {
|
|
|
1182
1111
|
`;
|
|
1183
1112
|
}
|
|
1184
1113
|
|
|
1185
|
-
function generateWorkflowDoc() {
|
|
1186
|
-
return `# Agent Workflow
|
|
1114
|
+
function generateWorkflowDoc() {
|
|
1115
|
+
return `# Agent Workflow
|
|
1116
|
+
|
|
1117
|
+
This project uses Superpowers as the workflow backend. thachvd-kit only provides project context and integration setup.
|
|
1118
|
+
|
|
1119
|
+
## Before Every Task
|
|
1120
|
+
|
|
1121
|
+
1. Read AGENTS.md and the relevant files under .agent/docs/.
|
|
1122
|
+
2. Use the native Superpowers skill that matches the request.
|
|
1123
|
+
3. Use codebase-memory MCP for structural discovery when available.
|
|
1124
|
+
4. Make changes only after the required planning gate.
|
|
1125
|
+
5. Verify the change and request review before completion.
|
|
1126
|
+
|
|
1127
|
+
## Route Matrix
|
|
1128
|
+
|
|
1129
|
+
| Situation | Superpowers path | Gate |
|
|
1130
|
+
|---|---|---|
|
|
1131
|
+
| Question or research only | direct answer or research | no product-code edits |
|
|
1132
|
+
| One obvious local fix | fast path | inspect -> edit -> focused verify |
|
|
1133
|
+
| Bug or failing behavior | systematic-debugging | reproduce -> root cause -> regression test -> fix -> verify |
|
|
1134
|
+
| New behavior or refactor | brainstorming -> writing-plans -> executing-plans | explicit plan approval before implementation |
|
|
1135
|
+
| Multi-part implementation | subagent-driven-development | task review and final review |
|
|
1136
|
+
| Pre-merge | requesting-code-review | blocking findings resolved |
|
|
1137
|
+
|
|
1138
|
+
## Standard Feature Flow
|
|
1139
|
+
|
|
1140
|
+
brainstorming -> using-git-worktrees -> writing-plans -> user approval -> test-driven-development -> executing-plans or subagent-driven-development -> requesting-code-review -> verification-before-completion -> finishing-a-development-branch.
|
|
1141
|
+
|
|
1142
|
+
## Fast Path
|
|
1143
|
+
|
|
1144
|
+
Use it only for one-file, unambiguous changes with no behavior, API, schema, security, dependency, CI, workflow, or release contract change. State the narrow scope and verification before editing. If the scope grows, switch to brainstorming and writing-plans.
|
|
1145
|
+
|
|
1146
|
+
## Documentation Maintenance
|
|
1147
|
+
|
|
1148
|
+
- Update architecture.md when structure or boundaries change.
|
|
1149
|
+
- Update conventions.md when repeated project patterns become clear.
|
|
1150
|
+
- Update project.md when stack, scripts, or test tooling changes.
|
|
1151
|
+
- Keep AGENTS.md concise and put project-specific detail under .agent/docs/.
|
|
1152
|
+
`;
|
|
1153
|
+
/* Legacy workflow text below remains unreachable for source compatibility. */
|
|
1154
|
+
return `# Agent Workflow
|
|
1187
1155
|
|
|
1188
1156
|
## Before Every Task
|
|
1189
1157
|
|
|
1190
1158
|
1. Read AGENTS.md.
|
|
1191
1159
|
2. Read .agent/docs/project.md.
|
|
1192
|
-
3. Use
|
|
1160
|
+
3. Use the matching native Superpowers skill for the task.
|
|
1193
1161
|
4. Read only the relevant docs under .agent/agents, .agent/skills, .claude/skills, and .agent/workflows.
|
|
1194
|
-
5.
|
|
1162
|
+
5. Use codebase-memory MCP for structural discovery when available, then verify the actual files before editing.
|
|
1195
1163
|
|
|
1196
1164
|
## Route Matrix
|
|
1197
1165
|
|
|
1198
1166
|
| Situation | Command | Workflow / gate |
|
|
1199
1167
|
|---|---|---|
|
|
1200
1168
|
| Question or analysis only | direct answer | no edits |
|
|
1201
|
-
| One obvious local fix |
|
|
1202
|
-
| Bug, regression, failing test, or unknown error |
|
|
1203
|
-
| Research request |
|
|
1204
|
-
| New behavior, multi-file change, or unclear scope |
|
|
1205
|
-
| Pre-merge review |
|
|
1206
|
-
|
|
|
1207
|
-
| Several specialist domains | \`/orchestrate\` | plan -> approval -> parallel work -> integration verify |
|
|
1169
|
+
| One obvious local fix | fast path | inspect -> edit -> focused verify |
|
|
1170
|
+
| Bug, regression, failing test, or unknown error | systematic-debugging | reproduce -> root cause -> regression test -> fix -> verify |
|
|
1171
|
+
| Research request | direct research | evidence report, no edits |
|
|
1172
|
+
| New behavior, multi-file change, or unclear scope | brainstorming -> writing-plans -> executing-plans | explicit approval before implementation |
|
|
1173
|
+
| Pre-merge review | requesting-code-review | blocking findings resolved |
|
|
1174
|
+
| Several specialist domains | subagent-driven-development | task review and final review |
|
|
1208
1175
|
|
|
1209
1176
|
If a task is not clearly simple, use the standard flow. Never use the fast path for behavior, API, schema, security, CI, dependency, workflow, or release changes.
|
|
1210
1177
|
|
|
1211
|
-
##
|
|
1178
|
+
## Superpowers Skills
|
|
1212
1179
|
|
|
1213
|
-
-
|
|
1214
|
-
-
|
|
1215
|
-
-
|
|
1216
|
-
-
|
|
1180
|
+
- Use brainstorming for unclear requirements.
|
|
1181
|
+
- Use using-git-worktrees and writing-plans before non-trivial implementation.
|
|
1182
|
+
- Use test-driven-development, executing-plans or subagent-driven-development during implementation.
|
|
1183
|
+
- Use systematic-debugging for bugs and requesting-code-review before completion.
|
|
1184
|
+
- thachvd-kit does not copy or replace Superpowers skills.
|
|
1217
1185
|
- Do not load skill bodies by default.
|
|
1218
1186
|
- Load a skill when the user mentions it, the task clearly matches its SKILL.md description, or .agent/docs/project.md routes the task to it.
|
|
1219
1187
|
- Use explicit skill names in prompts for predictable behavior, for example $webapp-testing or $clean-code.
|
|
@@ -1238,9 +1206,9 @@ Then:
|
|
|
1238
1206
|
5. Run verification (prioritize using Playwright MCP for web/UI changes to automate verification and capture screenshots).
|
|
1239
1207
|
6. Summarize changed files and verification evidence.
|
|
1240
1208
|
|
|
1241
|
-
For bugs, use \`/forge-debug\` with
|
|
1209
|
+
For bugs, use \`/forge-debug\` with Superpowers' \`systematic-debugging\` when available, otherwise the matching local skill, plus the \`debugger\` agent and \`testing-patterns\`: reproduce, isolate the root cause, add regression protection, make the smallest fix, and verify.
|
|
1242
1210
|
|
|
1243
|
-
For features or refactors,
|
|
1211
|
+
For features or refactors, prefer the Superpowers chain when available: brainstorm/spec -> worktree -> detailed plan -> approval -> TDD/task execution -> per-task review -> final review -> finish branch. Otherwise use the local gated flow defined in AGENTS.md (spec -> plan -> implement -> review). Steps 3-5 above are the "Implement" phase, and step 6 is not a substitute for the mandatory review gate.
|
|
1244
1212
|
|
|
1245
1213
|
## Definition of Done (feature or refactor)
|
|
1246
1214
|
|
|
@@ -1266,21 +1234,54 @@ Do not report a feature/refactor task as done if any box above is unchecked —
|
|
|
1266
1234
|
}
|
|
1267
1235
|
|
|
1268
1236
|
function generateGettingStartedDoc() {
|
|
1237
|
+
return `# Getting Started
|
|
1238
|
+
|
|
1239
|
+
thachvd-kit creates project context. Superpowers owns the development workflow.
|
|
1240
|
+
|
|
1241
|
+
## Setup
|
|
1242
|
+
|
|
1243
|
+
1. Run \`thachvd-kit init\` in the repository.
|
|
1244
|
+
2. Install Superpowers from the official plugin surface for the AI client you use.
|
|
1245
|
+
3. Run \`thachvd-kit setup\` to configure codebase-memory MCP and print integration guidance.
|
|
1246
|
+
4. Run \`thachvd-kit doctor\` and restart the AI client.
|
|
1247
|
+
|
|
1248
|
+
## Standard Flow
|
|
1249
|
+
|
|
1250
|
+
Use Superpowers native skills:
|
|
1251
|
+
|
|
1252
|
+
1. \`brainstorming\` for unclear requirements.
|
|
1253
|
+
2. \`using-git-worktrees\` for isolated work.
|
|
1254
|
+
3. \`writing-plans\`, then wait for explicit approval.
|
|
1255
|
+
4. \`test-driven-development\` and \`executing-plans\` or \`subagent-driven-development\`.
|
|
1256
|
+
5. \`requesting-code-review\` and \`verification-before-completion\`.
|
|
1257
|
+
6. \`finishing-a-development-branch\`.
|
|
1258
|
+
|
|
1259
|
+
## Bug Flow
|
|
1260
|
+
|
|
1261
|
+
Use \`systematic-debugging\`: reproduce the symptom, inspect the path with codebase-memory MCP, test hypotheses, add regression protection, fix the root cause, and verify.
|
|
1262
|
+
|
|
1263
|
+
## Fast Path
|
|
1264
|
+
|
|
1265
|
+
Use a fast path only for one-file, unambiguous changes with no behavior or contract change. State the scope and verification before editing. If the scope expands, return to brainstorming and writing-plans.
|
|
1266
|
+
`;
|
|
1267
|
+
/* Legacy text below remains unreachable for source compatibility and is removed in a later major cleanup. */
|
|
1269
1268
|
return `# Getting Started With This Kit
|
|
1270
1269
|
|
|
1271
1270
|
Read this after \`thachvd-kit init\`. The kit gives every member one entry point, then selects only the process and expertise the task needs.
|
|
1272
1271
|
|
|
1273
1272
|
## Forge Command Map
|
|
1274
1273
|
|
|
1275
|
-
| Client | Task | Fast | Debug | Research | Review |
|
|
1276
|
-
|
|
1277
|
-
| Codex | \`$forge-task\` | \`$forge-fast\` | \`$forge-debug\` | \`$forge-research\` | \`$forge-review\` |
|
|
1278
|
-
| Antigravity | \`/forge-task\` | \`/forge-fast\` | \`/forge-debug\` | \`/forge-research\` | \`/forge-review\` |
|
|
1279
|
-
| Claude Code | \`/forge-task\` | \`/forge-fast\` | \`/forge-debug\` | \`/forge-research\` | \`/forge-review\` |
|
|
1280
|
-
| Cursor | \`/forge-task\` | \`/forge-fast\` | \`/forge-debug\` | \`/forge-research\` | \`/forge-review\` |
|
|
1274
|
+
| Client | Task | Fast | Debug | Research | Review |
|
|
1275
|
+
|---|---|---|---|---|---|
|
|
1276
|
+
| Codex | \`$forge-task\` | \`$forge-fast\` | \`$forge-debug\` | \`$forge-research\` | \`$forge-review\` |
|
|
1277
|
+
| Antigravity | \`/forge-task\` | \`/forge-fast\` | \`/forge-debug\` | \`/forge-research\` | \`/forge-review\` |
|
|
1278
|
+
| Claude Code | \`/forge-task\` | \`/forge-fast\` | \`/forge-debug\` | \`/forge-research\` | \`/forge-review\` |
|
|
1279
|
+
| Cursor | \`/forge-task\` | \`/forge-fast\` | \`/forge-debug\` | \`/forge-research\` | \`/forge-review\` |
|
|
1281
1280
|
|
|
1282
1281
|
Forge commands accept free-form text after the command and continue the selected workflow in the same turn. Plain questions remain normal chat; edit requests without a command are implicitly routed as \`forge-task\`.
|
|
1283
1282
|
|
|
1283
|
+
Forge is a routing layer. For feature/refactor work, prefer native Superpowers skills when available: brainstorming, using-git-worktrees, writing-plans, subagent-driven-development or executing-plans, test-driven-development, requesting-code-review, and finishing-a-development-branch. If Superpowers is not installed, use the matching \`.agent/skills/\` and \`.agent/workflows/\` fallback; do not maintain a competing duplicate methodology. Install the full execution backend from https://github.com/obra/superpowers#quickstart.
|
|
1284
|
+
|
|
1284
1285
|
Codex Forge skills live in \`~/.codex/skills/forge-*/SKILL.md\`. Antigravity Forge workflows live in \`.agent/workflows/forge-*.md\`. Claude Code Forge commands live in \`.claude/commands/forge-*.md\`. Cursor Forge commands live in \`.cursor/commands/forge-*.md\`.
|
|
1285
1286
|
|
|
1286
1287
|
## Start Every Task With Forge
|
|
@@ -1288,11 +1289,12 @@ Codex Forge skills live in \`~/.codex/skills/forge-*/SKILL.md\`. Antigravity For
|
|
|
1288
1289
|
Use the matching Forge command before editing whenever the request is not a simple question. \`forge-task\` must route internally and continue; it must not stop by asking the member to type a second command.
|
|
1289
1290
|
|
|
1290
1291
|
\`\`\`text
|
|
1291
|
-
ROUTE: question | fast | feature | bug | research | review |
|
|
1292
|
+
ROUTE: question | fast | feature | bug | research | review | multi-domain
|
|
1292
1293
|
WORKFLOW: [exact .agent/workflows/<name>.md file]
|
|
1293
1294
|
SKILLS: [matching skills, or none]
|
|
1294
1295
|
AGENTS: [matching specialist agents, or none]
|
|
1295
1296
|
GATE: fast-path | standard | human-approval
|
|
1297
|
+
BACKEND: superpowers-native | forge-fallback
|
|
1296
1298
|
ACTION: [what the agent is doing next in this turn]
|
|
1297
1299
|
\`\`\`
|
|
1298
1300
|
|
|
@@ -1308,7 +1310,6 @@ A workflow is the process and its gates. A skill is the method or checklist. An
|
|
|
1308
1310
|
| Bug, regression, failing test, or unknown error | \`/forge-debug <symptom>\` | bug | reproduce -> isolate -> regression test -> fix -> verify |
|
|
1309
1311
|
| Research request | \`/forge-research <question>\` | research | evidence report, no edits |
|
|
1310
1312
|
| Pre-merge or independent review | \`/forge-review\` | review | five-axis review; resolve blocking findings |
|
|
1311
|
-
| Version, tag, npm publish, or deployment | \`/forge-release\` | release | release checklist; never fast-path |
|
|
1312
1313
|
| Frontend + backend + data/security together | \`/orchestrate\` | standard | plan -> approval -> specialist work -> integration verify |
|
|
1313
1314
|
|
|
1314
1315
|
## Standard Feature Flow
|
|
@@ -1329,7 +1330,7 @@ Use \`/forge-debug <symptom>\`, not the feature flow, when something is failing
|
|
|
1329
1330
|
6. Run focused tests, then broader verification when the blast radius is shared.
|
|
1330
1331
|
7. Use \`/review\` when the fix touches multiple files, contracts, security, or release behavior.
|
|
1331
1332
|
|
|
1332
|
-
Load
|
|
1333
|
+
Load Superpowers' \`systematic-debugging\` when available, otherwise the matching local skill, plus the \`debugger\` agent and \`testing-patterns\` for this route.
|
|
1333
1334
|
|
|
1334
1335
|
## Simple Fast Path
|
|
1335
1336
|
|
|
@@ -1352,7 +1353,6 @@ This bypasses only Spec, Plan, and the feature/refactor Review gate. It never by
|
|
|
1352
1353
|
- \`forge-debug\`: systematic root-cause investigation and regression protection.
|
|
1353
1354
|
- \`/test\`: add or run tests and assess coverage.
|
|
1354
1355
|
- \`/review\`: five-axis review before completion or merge.
|
|
1355
|
-
- \`forge-release\`: verify, version, tag, publish, and verify npm output.
|
|
1356
1356
|
- \`$clean-code\` and \`$verification-before-completion\`: default implementation hygiene.
|
|
1357
1357
|
- \`$webapp-testing\`: browser/UI verification; use Playwright when available.
|
|
1358
1358
|
|
|
@@ -1382,10 +1382,49 @@ function resolveToolingSetup(data) {
|
|
|
1382
1382
|
return { runner, playwrightCommand };
|
|
1383
1383
|
}
|
|
1384
1384
|
|
|
1385
|
-
function generateToolingDoc(data) {
|
|
1386
|
-
const { runner, playwrightCommand } = resolveToolingSetup(data);
|
|
1387
|
-
|
|
1388
|
-
return `# Optional Tooling
|
|
1385
|
+
function generateToolingDoc(data) {
|
|
1386
|
+
const { runner, playwrightCommand } = resolveToolingSetup(data);
|
|
1387
|
+
|
|
1388
|
+
return `# Optional Tooling
|
|
1389
|
+
|
|
1390
|
+
Run \`thachvd-kit doctor\` to check the current machine. thachvd-kit does not install workflow skills or copy agent folders.
|
|
1391
|
+
|
|
1392
|
+
## Superpowers
|
|
1393
|
+
|
|
1394
|
+
Install Superpowers separately for each AI client from its official plugin surface:
|
|
1395
|
+
|
|
1396
|
+
- Claude Code: \`/plugin install superpowers@claude-plugins-official\`
|
|
1397
|
+
- Antigravity: \`agy plugin install https://github.com/obra/superpowers\`
|
|
1398
|
+
- Codex App: install it from the Plugins sidebar.
|
|
1399
|
+
- Codex CLI: open \`/plugins\` and install Superpowers.
|
|
1400
|
+
- Cursor: \`/add-plugin superpowers\`
|
|
1401
|
+
|
|
1402
|
+
Guide: https://github.com/obra/superpowers#installation
|
|
1403
|
+
|
|
1404
|
+
## Codebase Memory MCP
|
|
1405
|
+
|
|
1406
|
+
Use \`codebase-memory-mcp\` for symbol search, call paths, architecture, and impact analysis.
|
|
1407
|
+
|
|
1408
|
+
- Install: \`npm install -g codebase-memory-mcp\`
|
|
1409
|
+
- Index a repository: \`codebase-memory-mcp cli index_repository --repo-path .\`
|
|
1410
|
+
- Keep local index state out of git unless the team explicitly chooses a shared snapshot.
|
|
1411
|
+
|
|
1412
|
+
## RTK
|
|
1413
|
+
|
|
1414
|
+
RTK is optional command-output compression, not a workflow engine.
|
|
1415
|
+
|
|
1416
|
+
- Install: \`cargo install --git https://github.com/rtk-ai/rtk --branch master rtk\`
|
|
1417
|
+
- Prefer it for verbose git, test, build, package, and container commands when available.
|
|
1418
|
+
|
|
1419
|
+
## Playwright
|
|
1420
|
+
|
|
1421
|
+
- Check: \`${runner} playwright --version\`
|
|
1422
|
+
- Browser install: \`${playwrightCommand}\`
|
|
1423
|
+
- Use the project's existing Playwright scripts when available.
|
|
1424
|
+
`;
|
|
1425
|
+
/* Legacy tooling text below remains unreachable for source compatibility. */
|
|
1426
|
+
|
|
1427
|
+
return `# Optional Tooling
|
|
1389
1428
|
|
|
1390
1429
|
This kit keeps tool setup explicit. Do not assume these tools are available until you verify them in the current environment.
|
|
1391
1430
|
|
|
@@ -1664,6 +1703,19 @@ function copyForgeCommands() {
|
|
|
1664
1703
|
claude: path.join(targetDir, '.claude', 'commands'),
|
|
1665
1704
|
cursor: path.join(targetDir, '.cursor', 'commands')
|
|
1666
1705
|
};
|
|
1706
|
+
|
|
1707
|
+
for (const commandName of REMOVED_FORGE_COMMANDS) {
|
|
1708
|
+
const filename = `${commandName}.md`;
|
|
1709
|
+
for (const destination of Object.values(destinations)) {
|
|
1710
|
+
const commandPath = path.join(destination, filename);
|
|
1711
|
+
if (fs.existsSync(commandPath)) fs.rmSync(commandPath, { force: true });
|
|
1712
|
+
}
|
|
1713
|
+
if (codexSkillsDir) {
|
|
1714
|
+
const codexSkillPath = path.join(codexSkillsDir, commandName);
|
|
1715
|
+
if (fs.existsSync(codexSkillPath)) fs.rmSync(codexSkillPath, { recursive: true, force: true });
|
|
1716
|
+
}
|
|
1717
|
+
}
|
|
1718
|
+
|
|
1667
1719
|
let antigravity = 0;
|
|
1668
1720
|
let claude = 0;
|
|
1669
1721
|
let cursor = 0;
|
|
@@ -1729,23 +1781,85 @@ async function writeGeneratedFile(relativePath, content, assumeYes) {
|
|
|
1729
1781
|
return true;
|
|
1730
1782
|
}
|
|
1731
1783
|
|
|
1732
|
-
function homePath(...parts) {
|
|
1784
|
+
function homePath(...parts) {
|
|
1733
1785
|
const home = process.env.USERPROFILE || process.env.HOME;
|
|
1734
1786
|
return home ? path.join(home, ...parts) : null;
|
|
1735
|
-
}
|
|
1736
|
-
|
|
1737
|
-
function
|
|
1787
|
+
}
|
|
1788
|
+
|
|
1789
|
+
function printSuperpowersInstallGuide() {
|
|
1790
|
+
console.log(`
|
|
1791
|
+
${pc.bold('Superpowers setup')} (official client integrations)
|
|
1792
|
+
Claude Code: /plugin install superpowers@claude-plugins-official
|
|
1793
|
+
Antigravity: agy plugin install https://github.com/obra/superpowers
|
|
1794
|
+
Codex App: install Superpowers from the Plugins sidebar
|
|
1795
|
+
Codex CLI: open /plugins, search Superpowers, then Install Plugin
|
|
1796
|
+
Cursor: /add-plugin superpowers
|
|
1797
|
+
|
|
1798
|
+
Full guide: https://github.com/obra/superpowers#installation
|
|
1799
|
+
`);
|
|
1800
|
+
}
|
|
1801
|
+
|
|
1802
|
+
function runDoctor() {
|
|
1803
|
+
console.log(pc.bold(pc.cyan('thachvd-kit doctor')));
|
|
1804
|
+
const requiredFiles = ['AGENTS.md', 'CLAUDE.md', 'GEMINI.md', '.cursorrules',
|
|
1805
|
+
path.join('.agent', 'docs', 'project.md'), path.join('.agent', 'docs', 'workflow.md')];
|
|
1806
|
+
for (const relativePath of requiredFiles) {
|
|
1807
|
+
const ok = fs.existsSync(path.join(targetDir, relativePath));
|
|
1808
|
+
console.log(` ${ok ? pc.green('OK') : pc.yellow('WARN')} ${relativePath}`);
|
|
1809
|
+
}
|
|
1810
|
+
|
|
1811
|
+
const tools = [
|
|
1812
|
+
[CODEBASE_MEMORY_BINARY, `npm install -g ${CODEBASE_MEMORY_PACKAGE}`],
|
|
1813
|
+
['rtk', RTK_INSTALL_COMMAND],
|
|
1814
|
+
['agy', 'install Antigravity before running its Superpowers plugin command'],
|
|
1815
|
+
['claude', 'install Claude Code before installing its Superpowers plugin'],
|
|
1816
|
+
['codex', 'install Codex before using its Superpowers plugin']
|
|
1817
|
+
];
|
|
1818
|
+
console.log(`\n${pc.bold('Local integrations')}`);
|
|
1819
|
+
for (const [binary, hint] of tools) {
|
|
1820
|
+
const ok = commandExists(binary);
|
|
1821
|
+
console.log(` ${ok ? pc.green('OK') : pc.yellow('WARN')} ${binary}${ok ? '' : ` - ${hint}`}`);
|
|
1822
|
+
}
|
|
1823
|
+
|
|
1824
|
+
console.log(`\n${pc.bold('Next step')}`);
|
|
1825
|
+
console.log(' Run thachvd-kit setup to configure MCP and print client-specific Superpowers setup.');
|
|
1826
|
+
}
|
|
1827
|
+
|
|
1828
|
+
async function runSetup(args) {
|
|
1829
|
+
const skipMcpSetup = args.includes('--no-setup-mcp');
|
|
1830
|
+
console.log(pc.bold(pc.cyan('thachvd-kit setup')));
|
|
1831
|
+
printSuperpowersInstallGuide();
|
|
1832
|
+
if (!skipMcpSetup) {
|
|
1833
|
+
console.log(pc.bold('MCP setup'));
|
|
1834
|
+
for (const result of setupMcpServers({ install: true })) {
|
|
1835
|
+
const marker = result.ok ? pc.green('OK') : pc.yellow('WARN');
|
|
1836
|
+
console.log(` ${marker} ${result.message}`);
|
|
1837
|
+
}
|
|
1838
|
+
}
|
|
1839
|
+
console.log(`\n${pc.bold('RTK')}`);
|
|
1840
|
+
if (commandExists('rtk')) {
|
|
1841
|
+
console.log(` ${pc.green('OK')} rtk already installed`);
|
|
1842
|
+
} else {
|
|
1843
|
+
console.log(` ${pc.yellow('WARN')} rtk is not installed; run: ${RTK_INSTALL_COMMAND}`);
|
|
1844
|
+
}
|
|
1845
|
+
console.log('\nRestart your AI client after installing plugins or changing MCP configuration.');
|
|
1846
|
+
}
|
|
1847
|
+
|
|
1848
|
+
function commandExists(command) {
|
|
1738
1849
|
const checker = process.platform === 'win32' ? 'where' : 'command';
|
|
1739
1850
|
const args = process.platform === 'win32' ? [command] : ['-v', command];
|
|
1740
1851
|
const result = spawnSync(checker, args, { encoding: 'utf8', shell: process.platform !== 'win32' });
|
|
1741
1852
|
return result.status === 0;
|
|
1742
1853
|
}
|
|
1743
1854
|
|
|
1744
|
-
function ensureGlobalNpmPackage(binaryName, packageName) {
|
|
1745
|
-
if (commandExists(binaryName)) {
|
|
1746
|
-
return { ok: true, message: `${binaryName} already installed` };
|
|
1747
|
-
}
|
|
1748
|
-
if (!
|
|
1855
|
+
function ensureGlobalNpmPackage(binaryName, packageName, install = false) {
|
|
1856
|
+
if (commandExists(binaryName)) {
|
|
1857
|
+
return { ok: true, message: `${binaryName} already installed` };
|
|
1858
|
+
}
|
|
1859
|
+
if (!install) {
|
|
1860
|
+
return { ok: false, message: `${binaryName} is missing; run: npm install -g ${packageName}` };
|
|
1861
|
+
}
|
|
1862
|
+
if (!commandExists('npm')) {
|
|
1749
1863
|
return { ok: false, message: `npm not found; run: npm install -g ${packageName}` };
|
|
1750
1864
|
}
|
|
1751
1865
|
const result = spawnSync('npm', ['install', '-g', packageName], {
|
|
@@ -1758,17 +1872,9 @@ function ensureGlobalNpmPackage(binaryName, packageName) {
|
|
|
1758
1872
|
return { ok: true, message: `installed ${binaryName}` };
|
|
1759
1873
|
}
|
|
1760
1874
|
|
|
1761
|
-
function
|
|
1762
|
-
return ensureGlobalNpmPackage(
|
|
1763
|
-
}
|
|
1764
|
-
|
|
1765
|
-
function ensureContext7Cli() {
|
|
1766
|
-
return ensureGlobalNpmPackage('context7-mcp', '@upstash/context7-mcp');
|
|
1767
|
-
}
|
|
1768
|
-
|
|
1769
|
-
function ensurePlaywrightMcpCli() {
|
|
1770
|
-
return ensureGlobalNpmPackage('playwright-mcp', '@playwright/mcp');
|
|
1771
|
-
}
|
|
1875
|
+
function ensureCodebaseMemoryCli(install = false) {
|
|
1876
|
+
return ensureGlobalNpmPackage(CODEBASE_MEMORY_BINARY, CODEBASE_MEMORY_PACKAGE, install);
|
|
1877
|
+
}
|
|
1772
1878
|
|
|
1773
1879
|
function readJsonFile(filePath) {
|
|
1774
1880
|
if (!fs.existsSync(filePath)) return {};
|
|
@@ -1790,10 +1896,10 @@ function mergeMcpJson(filePath, withType = false) {
|
|
|
1790
1896
|
return { ok: false, message: `${filePath} is not valid JSON; skipped` };
|
|
1791
1897
|
}
|
|
1792
1898
|
data.mcpServers = data.mcpServers || {};
|
|
1793
|
-
const baseServers = {
|
|
1794
|
-
|
|
1795
|
-
playwright: { command: 'playwright-mcp' },
|
|
1796
|
-
context7: { command: 'context7-mcp' }
|
|
1899
|
+
const baseServers = {
|
|
1900
|
+
'codebase-memory-mcp': { command: CODEBASE_MEMORY_BINARY, args: [] },
|
|
1901
|
+
playwright: { command: 'playwright-mcp' },
|
|
1902
|
+
context7: { command: 'context7-mcp' }
|
|
1797
1903
|
};
|
|
1798
1904
|
if (data.permissions && Array.isArray(data.permissions.allow)) {
|
|
1799
1905
|
const requiredPermissions = [
|
|
@@ -1827,13 +1933,12 @@ startup_timeout_sec = 20
|
|
|
1827
1933
|
tool_timeout_sec = 120
|
|
1828
1934
|
`);
|
|
1829
1935
|
}
|
|
1830
|
-
if (!/\[mcp_servers\.
|
|
1831
|
-
blocks.push(`[mcp_servers.
|
|
1832
|
-
command = "
|
|
1833
|
-
|
|
1834
|
-
|
|
1835
|
-
|
|
1836
|
-
`);
|
|
1936
|
+
if (!/\[mcp_servers\.codebase-memory-mcp\]/.test(existing)) {
|
|
1937
|
+
blocks.push(`[mcp_servers.codebase-memory-mcp]
|
|
1938
|
+
command = "${CODEBASE_MEMORY_BINARY}"
|
|
1939
|
+
startup_timeout_sec = 20
|
|
1940
|
+
tool_timeout_sec = 120
|
|
1941
|
+
`);
|
|
1837
1942
|
}
|
|
1838
1943
|
if (!/\[mcp_servers\.playwright\]/.test(existing)) {
|
|
1839
1944
|
blocks.push(`[mcp_servers.playwright]
|
|
@@ -1846,7 +1951,7 @@ tool_timeout_sec = 120
|
|
|
1846
1951
|
}
|
|
1847
1952
|
const separator = existing && !existing.endsWith('\n') ? '\n\n' : existing ? '\n' : '';
|
|
1848
1953
|
fs.writeFileSync(filePath, existing + separator + blocks.join('\n'), 'utf8');
|
|
1849
|
-
return { ok: true, message: `configured
|
|
1954
|
+
return { ok: true, message: `configured codebase-memory-mcp, context7, playwright MCP in ${filePath}` };
|
|
1850
1955
|
}
|
|
1851
1956
|
|
|
1852
1957
|
const DOD_HOOK_MARKER = 'feature/refactor Definition-of-Done gate';
|
|
@@ -1921,11 +2026,12 @@ function mergeClaudeProjectHooks(filePath) {
|
|
|
1921
2026
|
return { ok: true, message: `configured Definition-of-Done Stop hook in ${filePath}` };
|
|
1922
2027
|
}
|
|
1923
2028
|
|
|
1924
|
-
function setupMcpServers() {
|
|
1925
|
-
const
|
|
1926
|
-
results
|
|
1927
|
-
results.push(
|
|
1928
|
-
results.push(
|
|
2029
|
+
function setupMcpServers(options = {}) {
|
|
2030
|
+
const install = options.install === true;
|
|
2031
|
+
const results = [];
|
|
2032
|
+
results.push(ensureCodebaseMemoryCli(install));
|
|
2033
|
+
results.push(ensureGlobalNpmPackage('context7-mcp', '@upstash/context7-mcp', install));
|
|
2034
|
+
results.push(ensureGlobalNpmPackage('playwright-mcp', '@playwright/mcp', install));
|
|
1929
2035
|
|
|
1930
2036
|
const codexConfig = homePath('.codex', 'config.toml');
|
|
1931
2037
|
if (codexConfig) results.push(appendMcpTomlIfMissing(codexConfig));
|
|
@@ -1962,12 +2068,22 @@ async function main() {
|
|
|
1962
2068
|
return;
|
|
1963
2069
|
}
|
|
1964
2070
|
|
|
1965
|
-
if (rawArgs.includes('--help') || rawArgs.includes('-h')) {
|
|
1966
|
-
printHelp();
|
|
1967
|
-
return;
|
|
1968
|
-
}
|
|
1969
|
-
|
|
1970
|
-
if (command
|
|
2071
|
+
if (rawArgs.includes('--help') || rawArgs.includes('-h')) {
|
|
2072
|
+
printHelp();
|
|
2073
|
+
return;
|
|
2074
|
+
}
|
|
2075
|
+
|
|
2076
|
+
if (command === 'doctor') {
|
|
2077
|
+
runDoctor();
|
|
2078
|
+
return;
|
|
2079
|
+
}
|
|
2080
|
+
|
|
2081
|
+
if (command === 'setup') {
|
|
2082
|
+
await runSetup(rawArgs.slice(1));
|
|
2083
|
+
return;
|
|
2084
|
+
}
|
|
2085
|
+
|
|
2086
|
+
if (command !== 'init') {
|
|
1971
2087
|
console.error(pc.red(`Unknown command: ${command}`));
|
|
1972
2088
|
printHelp();
|
|
1973
2089
|
process.exit(1);
|
|
@@ -2024,41 +2140,13 @@ async function main() {
|
|
|
2024
2140
|
if (data.uses_docker) data.infrastructure.push('docker');
|
|
2025
2141
|
if (data.cloud !== 'none') data.infrastructure.push(data.cloud);
|
|
2026
2142
|
|
|
2027
|
-
const shouldSetupMcp = !skipMcpSetup;
|
|
2143
|
+
const shouldSetupMcp = args.includes('--setup-mcp') && !skipMcpSetup;
|
|
2028
2144
|
|
|
2029
2145
|
console.log(`\n${pc.bold(pc.cyan('Generating Files'))}`);
|
|
2030
2146
|
|
|
2031
2147
|
// Shared entry files are written after the .agent folder is available.
|
|
2032
2148
|
|
|
2033
|
-
|
|
2034
|
-
const { copied, skipped } = copyAgentFolder();
|
|
2035
|
-
if (copied > 0) {
|
|
2036
|
-
console.log(` ${pc.green('OK')} Copied ${pc.bold('.agent/')} (${copied} file${copied !== 1 ? 's' : ''} added${skipped > 0 ? `, ${skipped} skipped` : ''})`);
|
|
2037
|
-
} else if (skipped > 0) {
|
|
2038
|
-
console.log(` ${pc.yellow('~')} ${pc.bold('.agent/')} already exists - ${skipped} file${skipped !== 1 ? 's' : ''} skipped (no overwrite)`);
|
|
2039
|
-
}
|
|
2040
|
-
|
|
2041
|
-
const nativeSkills = copySelectedSkillFolders(data, assumeYes);
|
|
2042
|
-
if (nativeSkills.copied > 0) {
|
|
2043
|
-
console.log(` ${pc.green('OK')} Copied native skills to ${pc.bold('~/.codex/skills/')} and ${pc.bold('.claude/skills/')} (${nativeSkills.skills.join(', ')})`);
|
|
2044
|
-
} else if (nativeSkills.skipped > 0) {
|
|
2045
|
-
console.log(` ${pc.yellow('~')} Native skills already exist - ${nativeSkills.skipped} file${nativeSkills.skipped !== 1 ? 's' : ''} skipped`);
|
|
2046
|
-
}
|
|
2047
|
-
|
|
2048
|
-
const codexPrompts = copyCodexPrompts();
|
|
2049
|
-
if (codexPrompts.copied > 0) {
|
|
2050
|
-
console.log(` ${pc.green('OK')} Installed Codex custom prompts in ${pc.bold('~/.codex/prompts/')} (${codexPrompts.prompts.map(name => `/prompts:${name}`).join(', ')})`);
|
|
2051
|
-
}
|
|
2052
|
-
|
|
2053
|
-
const legacyClientCommands = copyClientWorkflowCommands();
|
|
2054
|
-
if (legacyClientCommands.claude > 0 || legacyClientCommands.cursor > 0) {
|
|
2055
|
-
console.log(` ${pc.dim('~')} Preserved legacy workflow aliases for Claude Code and Cursor (${legacyClientCommands.claude}/${legacyClientCommands.cursor})`);
|
|
2056
|
-
}
|
|
2057
|
-
|
|
2058
|
-
const forgeCommands = copyForgeCommands();
|
|
2059
|
-
if (forgeCommands.commands.length > 0) {
|
|
2060
|
-
console.log(` ${pc.green('OK')} Installed Forge commands (${forgeCommands.commands.join(', ')}) for Antigravity (${forgeCommands.antigravity}), Claude Code (${forgeCommands.claude}), Cursor (${forgeCommands.cursor}), and Codex skills (${forgeCommands.codex})`);
|
|
2061
|
-
}
|
|
2149
|
+
console.log(` ${pc.green('OK')} Project context generation enabled; workflow skills remain client-managed by Superpowers`);
|
|
2062
2150
|
|
|
2063
2151
|
|
|
2064
2152
|
const generatedFiles = [
|
|
@@ -2080,11 +2168,7 @@ async function main() {
|
|
|
2080
2168
|
else console.log(` ${pc.yellow('~')} Skipped ${pc.bold(relativePath)}`);
|
|
2081
2169
|
}
|
|
2082
2170
|
|
|
2083
|
-
|
|
2084
|
-
const hookResult = mergeClaudeProjectHooks(path.join(targetDir, '.claude', 'settings.json'));
|
|
2085
|
-
console.log(` ${hookResult.ok ? pc.green('OK') : pc.yellow('~')} ${hookResult.message}`);
|
|
2086
|
-
|
|
2087
|
-
if (shouldSetupMcp) {
|
|
2171
|
+
if (shouldSetupMcp) {
|
|
2088
2172
|
console.log(`\n${pc.bold(pc.cyan('Configuring MCP'))}`);
|
|
2089
2173
|
for (const result of setupMcpServers()) {
|
|
2090
2174
|
const marker = result.ok ? pc.green('OK') : pc.yellow('~');
|
|
@@ -2103,40 +2187,28 @@ async function main() {
|
|
|
2103
2187
|
- ${pc.bold('GEMINI.md')} Antigravity entry
|
|
2104
2188
|
- ${pc.bold('.cursorrules')} Cursor entry
|
|
2105
2189
|
- ${pc.bold('.agent/docs/')} scan-based project rules, including ${pc.bold('getting-started.md')} (standard flow vs fast path)
|
|
2106
|
-
- ${pc.bold('.agent/')}
|
|
2107
|
-
- ${pc.bold('~/.codex/skills/')} selected Codex skills installed globally (visible in $ menu)
|
|
2108
|
-
- ${pc.bold('~/.codex/skills/forge-*/')} Forge Codex skills (visible as $forge-task, $forge-fast, and related skills)
|
|
2109
|
-
- ${pc.bold('~/.codex/prompts/')} legacy Codex prompts retained for compatibility
|
|
2110
|
-
- ${pc.bold('.claude/skills/')} selected Claude Code native skills
|
|
2111
|
-
- ${pc.bold('.claude/commands/forge-*.md')} Forge Claude Code commands (visible as /forge-task and related commands)
|
|
2112
|
-
- ${pc.bold('.cursor/commands/forge-*.md')} Forge Cursor commands (visible as /forge-task and related commands)
|
|
2113
|
-
- ${pc.bold('.agent/workflows/forge-*.md')} Forge Antigravity workflows (visible as /forge-task and related commands)
|
|
2114
|
-
- ${pc.bold('.claude/settings.json')} Definition-of-Done Stop hook (Claude Code only — blocks reporting a feature/refactor "done" without a plan + review pass)
|
|
2190
|
+
- ${pc.bold('.agent/docs/')} project context and local operating notes
|
|
2115
2191
|
|
|
2116
2192
|
${pc.bold('MCP/tooling setup:')}
|
|
2117
|
-
-
|
|
2118
|
-
-
|
|
2119
|
-
- Playwright MCP configured for Codex, Gemini/Antigravity, and Claude Code
|
|
2120
|
-
- Browser install hint: ${pc.bold(resolveToolingSetup(data).playwrightCommand)}
|
|
2121
|
-
- Codegraph index hint: run ${pc.bold('codegraph init -i')} when a project index is missing, then keep ${pc.bold('.codegraph/')} uncommitted
|
|
2193
|
+
- Superpowers is the workflow backend; install it from the official client/plugin surface
|
|
2194
|
+
- Run ${pc.bold('thachvd-kit setup')} to configure codebase-memory MCP and optional RTK
|
|
2122
2195
|
|
|
2123
2196
|
${pc.bold('Next steps:')}
|
|
2124
|
-
1. Read ${pc.bold('.agent/docs/getting-started.md')} for the standard flow
|
|
2125
|
-
2.
|
|
2126
|
-
3.
|
|
2127
|
-
4.
|
|
2197
|
+
1. Read ${pc.bold('.agent/docs/getting-started.md')} for the standard Superpowers flow
|
|
2198
|
+
2. Run ${pc.bold('thachvd-kit setup')} for optional integrations
|
|
2199
|
+
3. Run ${pc.bold('thachvd-kit doctor')} to verify the machine
|
|
2200
|
+
4. Commit ${pc.bold('AGENTS.md')}, ${pc.bold('CLAUDE.md')}, ${pc.bold('GEMINI.md')}, ${pc.bold('.cursorrules')}, and ${pc.bold('.agent/docs/')}
|
|
2128
2201
|
|
|
2129
2202
|
${pc.bold('Copy this prompt into your AI editor:')}
|
|
2130
2203
|
${pc.dim('---')}
|
|
2131
|
-
Read CLAUDE.md (if using Claude Code), AGENTS.md, and all files under .agent/docs/.
|
|
2132
|
-
|
|
2133
|
-
|
|
2134
|
-
|
|
2135
|
-
Do not implement product code.
|
|
2136
|
-
|
|
2137
|
-
|
|
2138
|
-
|
|
2139
|
-
}
|
|
2204
|
+
Read CLAUDE.md (if using Claude Code), AGENTS.md, and all files under .agent/docs/.
|
|
2205
|
+
Use Superpowers for the workflow and use codebase-memory MCP for structural code discovery when available.
|
|
2206
|
+
Ask me what this project does and any important conventions I want preserved.
|
|
2207
|
+
Then scan this repository and refine the generated context docs with factual rules.
|
|
2208
|
+
Do not implement product code during onboarding.
|
|
2209
|
+
${pc.dim('---')}
|
|
2210
|
+
`);
|
|
2211
|
+
}
|
|
2140
2212
|
|
|
2141
2213
|
main().catch(err => {
|
|
2142
2214
|
console.error(pc.red('\nError during init:'), err);
|