prjct-cli 0.11.4 → 0.12.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/CHANGELOG.md +72 -0
- package/README.md +81 -25
- package/bin/dev.js +1 -1
- package/bin/generate-views.js +209 -0
- package/bin/migrate-to-json.js +742 -0
- package/bin/prjct +5 -5
- package/bin/serve.js +246 -54
- package/core/__tests__/agentic/{memory-system.test.js → memory-system.test.ts} +12 -23
- package/core/__tests__/agentic/{plan-mode.test.js → plan-mode.test.ts} +26 -24
- package/core/__tests__/agentic/{prompt-builder.test.js → prompt-builder.test.ts} +3 -8
- package/core/__tests__/utils/date-helper.test.ts +405 -0
- package/core/__tests__/utils/{output.test.js → output.test.ts} +12 -24
- package/core/agentic/agent-router.ts +137 -0
- package/core/agentic/chain-of-thought.ts +228 -0
- package/core/agentic/command-executor/command-executor.ts +384 -0
- package/core/agentic/command-executor/index.ts +16 -0
- package/core/agentic/command-executor/status-signal.ts +38 -0
- package/core/agentic/command-executor/types.ts +79 -0
- package/core/agentic/command-executor.ts +8 -0
- package/core/agentic/{context-builder.js → context-builder.ts} +99 -89
- package/core/agentic/context-filter.ts +365 -0
- package/core/agentic/ground-truth/index.ts +76 -0
- package/core/agentic/ground-truth/types.ts +33 -0
- package/core/agentic/ground-truth/utils.ts +48 -0
- package/core/agentic/ground-truth/verifiers/analyze.ts +54 -0
- package/core/agentic/ground-truth/verifiers/done.ts +75 -0
- package/core/agentic/ground-truth/verifiers/feature.ts +70 -0
- package/core/agentic/ground-truth/verifiers/index.ts +37 -0
- package/core/agentic/ground-truth/verifiers/init.ts +52 -0
- package/core/agentic/ground-truth/verifiers/now.ts +57 -0
- package/core/agentic/ground-truth/verifiers/ship.ts +85 -0
- package/core/agentic/ground-truth/verifiers/spec.ts +45 -0
- package/core/agentic/ground-truth/verifiers/sync.ts +47 -0
- package/core/agentic/ground-truth/verifiers.ts +6 -0
- package/core/agentic/ground-truth.ts +8 -0
- package/core/agentic/loop-detector/error-analysis.ts +97 -0
- package/core/agentic/loop-detector/hallucination.ts +71 -0
- package/core/agentic/loop-detector/index.ts +41 -0
- package/core/agentic/loop-detector/loop-detector.ts +222 -0
- package/core/agentic/loop-detector/types.ts +66 -0
- package/core/agentic/loop-detector.ts +8 -0
- package/core/agentic/memory-system/history.ts +53 -0
- package/core/agentic/memory-system/index.ts +192 -0
- package/core/agentic/memory-system/patterns.ts +156 -0
- package/core/agentic/memory-system/semantic-memories.ts +277 -0
- package/core/agentic/memory-system/session.ts +21 -0
- package/core/agentic/memory-system/types.ts +159 -0
- package/core/agentic/memory-system.ts +8 -0
- package/core/agentic/parallel-tools.ts +165 -0
- package/core/agentic/plan-mode/approval.ts +57 -0
- package/core/agentic/plan-mode/constants.ts +44 -0
- package/core/agentic/plan-mode/index.ts +28 -0
- package/core/agentic/plan-mode/plan-mode.ts +406 -0
- package/core/agentic/plan-mode/types.ts +193 -0
- package/core/agentic/plan-mode.ts +8 -0
- package/core/agentic/prompt-builder.ts +566 -0
- package/core/agentic/response-templates.ts +164 -0
- package/core/agentic/semantic-compression.ts +273 -0
- package/core/agentic/services.ts +206 -0
- package/core/agentic/smart-context.ts +476 -0
- package/core/agentic/{template-loader.js → template-loader.ts} +35 -18
- package/core/agentic/think-blocks.ts +202 -0
- package/core/agentic/tool-registry.ts +119 -0
- package/core/agentic/validation-rules.ts +313 -0
- package/core/agents/index.ts +28 -0
- package/core/agents/performance.ts +444 -0
- package/core/agents/types.ts +126 -0
- package/core/bus/{index.js → index.ts} +57 -61
- package/core/command-registry/categories.ts +23 -0
- package/core/command-registry/commands.ts +15 -0
- package/core/command-registry/core-commands.ts +319 -0
- package/core/command-registry/index.ts +158 -0
- package/core/command-registry/optional-commands.ts +119 -0
- package/core/command-registry/setup-commands.ts +53 -0
- package/core/command-registry/types.ts +59 -0
- package/core/command-registry.ts +9 -0
- package/core/commands/analysis.ts +298 -0
- package/core/commands/analytics.ts +288 -0
- package/core/commands/base.ts +273 -0
- package/core/commands/index.ts +211 -0
- package/core/commands/maintenance.ts +226 -0
- package/core/commands/planning.ts +311 -0
- package/core/commands/setup.ts +309 -0
- package/core/commands/shipping.ts +188 -0
- package/core/commands/types.ts +183 -0
- package/core/commands/workflow.ts +226 -0
- package/core/commands.ts +11 -0
- package/core/constants/formats.ts +187 -0
- package/core/constants/index.ts +7 -0
- package/core/{context-sync.js → context-sync.ts} +59 -26
- package/core/data/agents-manager.ts +76 -0
- package/core/data/analysis-manager.ts +83 -0
- package/core/data/base-manager.ts +156 -0
- package/core/data/ideas-manager.ts +81 -0
- package/core/data/index.ts +32 -0
- package/core/data/outcomes-manager.ts +96 -0
- package/core/data/project-manager.ts +75 -0
- package/core/data/roadmap-manager.ts +118 -0
- package/core/data/shipped-manager.ts +65 -0
- package/core/data/state-manager.ts +214 -0
- package/core/domain/{agent-generator.js → agent-generator.ts} +77 -57
- package/core/domain/{agent-loader.js → agent-loader.ts} +65 -56
- package/core/domain/{agent-matcher.js → agent-matcher.ts} +51 -24
- package/core/domain/{agent-validator.js → agent-validator.ts} +70 -37
- package/core/domain/{analyzer.js → analyzer.ts} +91 -85
- package/core/domain/{architect-session.js → architect-session.ts} +49 -34
- package/core/domain/{architecture-generator.js → architecture-generator.ts} +25 -13
- package/core/domain/{context-estimator.js → context-estimator.ts} +57 -36
- package/core/domain/{product-standards.js → product-standards.ts} +40 -26
- package/core/domain/{smart-cache.js → smart-cache.ts} +39 -30
- package/core/domain/{snapshot-manager.js → snapshot-manager.ts} +103 -100
- package/core/domain/{task-analyzer.js → task-analyzer.ts} +82 -43
- package/core/domain/task-stack/index.ts +19 -0
- package/core/domain/task-stack/parser.ts +86 -0
- package/core/domain/task-stack/storage.ts +123 -0
- package/core/domain/task-stack/task-stack.ts +340 -0
- package/core/domain/task-stack/types.ts +51 -0
- package/core/domain/task-stack.ts +8 -0
- package/core/{index.js → index.ts} +61 -18
- package/core/infrastructure/{agent-detector.js → agent-detector.ts} +62 -23
- package/core/infrastructure/agents/{claude-agent.js → claude-agent.ts} +61 -21
- package/core/infrastructure/{author-detector.js → author-detector.ts} +42 -49
- package/core/infrastructure/{capability-installer.js → capability-installer.ts} +51 -27
- package/core/infrastructure/{command-installer.js → command-installer/command-installer.ts} +43 -144
- package/core/infrastructure/command-installer/global-config.ts +106 -0
- package/core/infrastructure/command-installer/index.ts +25 -0
- package/core/infrastructure/command-installer/types.ts +41 -0
- package/core/infrastructure/command-installer.ts +8 -0
- package/core/infrastructure/{config-manager.js → config-manager.ts} +60 -80
- package/core/infrastructure/{editors-config.js → editors-config.ts} +33 -31
- package/core/infrastructure/legacy-installer-detector/cleanup.ts +216 -0
- package/core/infrastructure/legacy-installer-detector/detection.ts +95 -0
- package/core/infrastructure/legacy-installer-detector/index.ts +171 -0
- package/core/infrastructure/legacy-installer-detector/migration.ts +87 -0
- package/core/infrastructure/legacy-installer-detector/types.ts +42 -0
- package/core/infrastructure/legacy-installer-detector.ts +7 -0
- package/core/infrastructure/migrator/file-operations.ts +125 -0
- package/core/infrastructure/migrator/index.ts +288 -0
- package/core/infrastructure/migrator/project-scanner.ts +89 -0
- package/core/infrastructure/migrator/reports.ts +117 -0
- package/core/infrastructure/migrator/types.ts +124 -0
- package/core/infrastructure/migrator/validation.ts +94 -0
- package/core/infrastructure/migrator/version-migration.ts +117 -0
- package/core/infrastructure/migrator.ts +10 -0
- package/core/infrastructure/{path-manager.js → path-manager.ts} +51 -91
- package/core/infrastructure/session-manager/index.ts +23 -0
- package/core/infrastructure/session-manager/migration.ts +88 -0
- package/core/infrastructure/session-manager/session-manager.ts +307 -0
- package/core/infrastructure/session-manager/types.ts +45 -0
- package/core/infrastructure/session-manager.ts +8 -0
- package/core/infrastructure/{setup.js → setup.ts} +29 -21
- package/core/infrastructure/{update-checker.js → update-checker.ts} +40 -18
- package/core/outcomes/analyzer.ts +333 -0
- package/core/outcomes/index.ts +34 -0
- package/core/outcomes/recorder.ts +194 -0
- package/core/outcomes/types.ts +145 -0
- package/core/plugin/{hooks.js → hooks.ts} +56 -58
- package/core/plugin/{index.js → index.ts} +19 -8
- package/core/plugin/{loader.js → loader.ts} +87 -69
- package/core/plugin/{registry.js → registry.ts} +49 -45
- package/core/plugins/{webhook.js → webhook.ts} +43 -27
- package/core/schemas/agents.ts +27 -0
- package/core/schemas/analysis.ts +41 -0
- package/core/schemas/ideas.ts +83 -0
- package/core/schemas/index.ts +73 -0
- package/core/schemas/outcomes.ts +22 -0
- package/core/schemas/project.ts +26 -0
- package/core/schemas/roadmap.ts +90 -0
- package/core/schemas/shipped.ts +82 -0
- package/core/schemas/state.ts +107 -0
- package/core/session/index.ts +17 -0
- package/core/session/{metrics.js → metrics.ts} +64 -46
- package/core/session/{index.js → session-manager.ts} +51 -117
- package/core/session/types.ts +29 -0
- package/core/session/utils.ts +57 -0
- package/core/state/index.ts +25 -0
- package/core/state/manager.ts +376 -0
- package/core/state/types.ts +185 -0
- package/core/tsconfig.json +22 -0
- package/core/types/index.ts +506 -0
- package/core/utils/{animations.js → animations.ts} +74 -28
- package/core/utils/{branding.js → branding.ts} +29 -4
- package/core/utils/{date-helper.js → date-helper.ts} +31 -74
- package/core/utils/file-helper.ts +262 -0
- package/core/utils/{jsonl-helper.js → jsonl-helper.ts} +71 -107
- package/core/utils/{logger.js → logger.ts} +24 -12
- package/core/utils/{output.js → output.ts} +25 -13
- package/core/utils/{project-capabilities.js → project-capabilities.ts} +31 -18
- package/core/utils/{session-helper.js → session-helper.ts} +79 -66
- package/core/utils/{version.js → version.ts} +23 -31
- package/core/view-generator.ts +536 -0
- package/package.json +23 -17
- package/packages/shared/.turbo/turbo-build.log +14 -0
- package/packages/shared/dist/index.d.ts +8 -613
- package/packages/shared/dist/index.d.ts.map +1 -0
- package/packages/shared/dist/index.js +4110 -118
- package/packages/shared/dist/schemas.d.ts +408 -0
- package/packages/shared/dist/schemas.d.ts.map +1 -0
- package/packages/shared/dist/types.d.ts +144 -0
- package/packages/shared/dist/types.d.ts.map +1 -0
- package/packages/shared/dist/unified.d.ts +139 -0
- package/packages/shared/dist/unified.d.ts.map +1 -0
- package/packages/shared/dist/utils.d.ts +60 -0
- package/packages/shared/dist/utils.d.ts.map +1 -0
- package/packages/shared/package.json +4 -4
- package/packages/shared/src/index.ts +1 -0
- package/packages/shared/src/unified.ts +174 -0
- package/packages/web/app/api/claude/sessions/route.ts +1 -1
- package/packages/web/app/api/claude/status/route.ts +1 -1
- package/packages/web/app/api/migrate/route.ts +46 -0
- package/packages/web/app/api/projects/[id]/route.ts +1 -1
- package/packages/web/app/api/projects/[id]/stats/route.ts +30 -2
- package/packages/web/app/api/projects/[id]/status/route.ts +1 -1
- package/packages/web/app/api/projects/route.ts +1 -1
- package/packages/web/app/api/settings/route.ts +97 -0
- package/packages/web/app/api/v2/projects/[id]/unified/route.ts +57 -0
- package/packages/web/app/globals.css +38 -0
- package/packages/web/app/layout.tsx +10 -2
- package/packages/web/app/page.tsx +9 -224
- package/packages/web/app/project/[id]/page.tsx +191 -63
- package/packages/web/app/project/[id]/stats/loading.tsx +43 -0
- package/packages/web/app/project/[id]/stats/page.tsx +203 -403
- package/packages/web/app/settings/page.tsx +222 -2
- package/packages/web/components/ActivityTimeline/ActivityTimeline.constants.ts +2 -0
- package/packages/web/components/ActivityTimeline/ActivityTimeline.tsx +50 -0
- package/packages/web/components/ActivityTimeline/ActivityTimeline.types.ts +8 -0
- package/packages/web/components/ActivityTimeline/hooks/index.ts +2 -0
- package/packages/web/components/ActivityTimeline/hooks/useExpandable.ts +9 -0
- package/packages/web/components/ActivityTimeline/hooks/useGroupedEvents.ts +23 -0
- package/packages/web/components/ActivityTimeline/index.ts +2 -0
- package/packages/web/components/AgentsCard/AgentsCard.tsx +63 -0
- package/packages/web/components/AgentsCard/AgentsCard.types.ts +13 -0
- package/packages/web/components/AgentsCard/index.ts +2 -0
- package/packages/web/components/AppSidebar/AppSidebar.tsx +134 -0
- package/packages/web/components/AppSidebar/index.ts +1 -0
- package/packages/web/components/BackLink/BackLink.tsx +18 -0
- package/packages/web/components/BackLink/BackLink.types.ts +5 -0
- package/packages/web/components/BackLink/index.ts +2 -0
- package/packages/web/components/BentoCard/BentoCard.constants.ts +16 -0
- package/packages/web/components/BentoCard/BentoCard.tsx +47 -0
- package/packages/web/components/BentoCard/BentoCard.types.ts +15 -0
- package/packages/web/components/BentoCard/index.ts +2 -0
- package/packages/web/components/BentoCardSkeleton/BentoCardSkeleton.constants.ts +9 -0
- package/packages/web/components/BentoCardSkeleton/BentoCardSkeleton.tsx +18 -0
- package/packages/web/components/BentoCardSkeleton/BentoCardSkeleton.types.ts +5 -0
- package/packages/web/components/BentoCardSkeleton/index.ts +2 -0
- package/packages/web/components/BentoGrid/BentoGrid.tsx +18 -0
- package/packages/web/components/BentoGrid/BentoGrid.types.ts +4 -0
- package/packages/web/components/BentoGrid/index.ts +2 -0
- package/packages/web/components/CommandButton/index.ts +1 -0
- package/packages/web/components/ConnectionStatus/index.ts +1 -0
- package/packages/web/components/DashboardContent/DashboardContent.tsx +254 -0
- package/packages/web/components/DashboardContent/index.ts +1 -0
- package/packages/web/components/DateGroup/DateGroup.tsx +18 -0
- package/packages/web/components/DateGroup/DateGroup.types.ts +6 -0
- package/packages/web/components/DateGroup/DateGroup.utils.ts +11 -0
- package/packages/web/components/DateGroup/index.ts +2 -0
- package/packages/web/components/EmptyState/EmptyState.tsx +58 -0
- package/packages/web/components/EmptyState/EmptyState.types.ts +10 -0
- package/packages/web/components/EmptyState/index.ts +2 -0
- package/packages/web/components/EventRow/EventRow.constants.ts +10 -0
- package/packages/web/components/EventRow/EventRow.tsx +49 -0
- package/packages/web/components/EventRow/EventRow.types.ts +7 -0
- package/packages/web/components/EventRow/EventRow.utils.ts +49 -0
- package/packages/web/components/EventRow/index.ts +2 -0
- package/packages/web/components/ExpandButton/ExpandButton.tsx +18 -0
- package/packages/web/components/ExpandButton/ExpandButton.types.ts +6 -0
- package/packages/web/components/ExpandButton/index.ts +2 -0
- package/packages/web/components/HealthGradientBackground/HealthGradientBackground.tsx +14 -0
- package/packages/web/components/HealthGradientBackground/HealthGradientBackground.types.ts +5 -0
- package/packages/web/components/HealthGradientBackground/HealthGradientBackground.utils.ts +13 -0
- package/packages/web/components/HealthGradientBackground/index.ts +2 -0
- package/packages/web/components/HeroSection/HeroSection.tsx +55 -0
- package/packages/web/components/HeroSection/HeroSection.types.ts +14 -0
- package/packages/web/components/HeroSection/HeroSection.utils.ts +7 -0
- package/packages/web/components/HeroSection/hooks/index.ts +2 -0
- package/packages/web/components/HeroSection/hooks/useCountUp.ts +45 -0
- package/packages/web/components/HeroSection/hooks/useWeeklyActivity.ts +18 -0
- package/packages/web/components/HeroSection/index.ts +2 -0
- package/packages/web/components/IdeasCard/IdeasCard.tsx +48 -0
- package/packages/web/components/IdeasCard/IdeasCard.types.ts +9 -0
- package/packages/web/components/IdeasCard/index.ts +2 -0
- package/packages/web/components/InsightMessage/InsightMessage.tsx +9 -0
- package/packages/web/components/InsightMessage/InsightMessage.types.ts +3 -0
- package/packages/web/components/InsightMessage/index.ts +2 -0
- package/packages/web/components/Logo/index.ts +1 -0
- package/packages/web/components/MarkdownContent/index.ts +1 -0
- package/packages/web/components/NowCard/NowCard.tsx +93 -0
- package/packages/web/components/NowCard/NowCard.types.ts +15 -0
- package/packages/web/components/NowCard/index.ts +2 -0
- package/packages/web/components/ProgressRing/ProgressRing.constants.ts +20 -0
- package/packages/web/components/ProgressRing/ProgressRing.tsx +51 -0
- package/packages/web/components/ProgressRing/ProgressRing.types.ts +11 -0
- package/packages/web/components/ProgressRing/index.ts +2 -0
- package/packages/web/components/ProjectAvatar/index.ts +1 -0
- package/packages/web/components/Providers/index.ts +1 -0
- package/packages/web/components/QueueCard/QueueCard.tsx +72 -0
- package/packages/web/components/QueueCard/QueueCard.types.ts +11 -0
- package/packages/web/components/QueueCard/QueueCard.utils.ts +12 -0
- package/packages/web/components/QueueCard/index.ts +2 -0
- package/packages/web/components/RoadmapCard/RoadmapCard.tsx +77 -0
- package/packages/web/components/RoadmapCard/RoadmapCard.types.ts +15 -0
- package/packages/web/components/RoadmapCard/index.ts +2 -0
- package/packages/web/components/ShipsCard/ShipsCard.tsx +52 -0
- package/packages/web/components/ShipsCard/ShipsCard.types.ts +12 -0
- package/packages/web/components/ShipsCard/ShipsCard.utils.ts +4 -0
- package/packages/web/components/ShipsCard/index.ts +2 -0
- package/packages/web/components/SparklineChart/SparklineChart.tsx +38 -0
- package/packages/web/components/SparklineChart/SparklineChart.types.ts +6 -0
- package/packages/web/components/SparklineChart/index.ts +2 -0
- package/packages/web/components/StreakCard/StreakCard.constants.ts +2 -0
- package/packages/web/components/StreakCard/StreakCard.tsx +53 -0
- package/packages/web/components/StreakCard/StreakCard.types.ts +4 -0
- package/packages/web/components/StreakCard/index.ts +2 -0
- package/packages/web/components/TasksCounter/TasksCounter.tsx +14 -0
- package/packages/web/components/TasksCounter/TasksCounter.types.ts +3 -0
- package/packages/web/components/TasksCounter/index.ts +2 -0
- package/packages/web/components/TechStackBadges/index.ts +1 -0
- package/packages/web/components/{TerminalTab.tsx → TerminalTabs/TerminalTab.tsx} +11 -0
- package/packages/web/components/{TerminalTabs.tsx → TerminalTabs/TerminalTabs.tsx} +29 -28
- package/packages/web/components/TerminalTabs/index.ts +1 -0
- package/packages/web/components/VelocityBadge/VelocityBadge.tsx +27 -0
- package/packages/web/components/VelocityBadge/VelocityBadge.types.ts +3 -0
- package/packages/web/components/VelocityBadge/index.ts +2 -0
- package/packages/web/components/VelocityCard/VelocityCard.tsx +71 -0
- package/packages/web/components/VelocityCard/VelocityCard.types.ts +7 -0
- package/packages/web/components/VelocityCard/index.ts +2 -0
- package/packages/web/components/WeeklySparkline/WeeklySparkline.tsx +13 -0
- package/packages/web/components/WeeklySparkline/WeeklySparkline.types.ts +3 -0
- package/packages/web/components/WeeklySparkline/index.ts +2 -0
- package/packages/web/components/ui/input.tsx +21 -0
- package/packages/web/components/ui/tooltip.tsx +2 -2
- package/packages/web/context/TerminalTabsContext.tsx +46 -1
- package/packages/web/hooks/useClaudeTerminal.ts +71 -21
- package/packages/web/hooks/useProjectStats.ts +55 -0
- package/packages/web/hooks/useProjects.ts +6 -6
- package/packages/web/lib/actions/projects.ts +15 -0
- package/packages/web/lib/json-loader.ts +630 -0
- package/packages/web/lib/services/index.ts +9 -0
- package/packages/web/lib/services/migration.server.ts +598 -0
- package/packages/web/lib/services/projects.server.ts +52 -0
- package/packages/web/lib/services/stats.server.ts +264 -0
- package/packages/web/lib/unified-loader.ts +396 -0
- package/packages/web/next-env.d.ts +1 -1
- package/packages/web/package.json +10 -6
- package/packages/web/server.ts +36 -6
- package/templates/commands/done.md +76 -32
- package/templates/commands/feature.md +121 -47
- package/templates/commands/idea.md +81 -8
- package/templates/commands/now.md +41 -17
- package/templates/commands/ship.md +64 -25
- package/templates/commands/sync.md +28 -3
- package/core/agentic/agent-router.js +0 -128
- package/core/agentic/chain-of-thought.js +0 -578
- package/core/agentic/command-executor.js +0 -421
- package/core/agentic/context-filter.js +0 -354
- package/core/agentic/ground-truth.js +0 -591
- package/core/agentic/loop-detector.js +0 -406
- package/core/agentic/memory-system.js +0 -850
- package/core/agentic/parallel-tools.js +0 -366
- package/core/agentic/plan-mode.js +0 -572
- package/core/agentic/prompt-builder.js +0 -338
- package/core/agentic/response-templates.js +0 -290
- package/core/agentic/semantic-compression.js +0 -517
- package/core/agentic/think-blocks.js +0 -657
- package/core/agentic/tool-registry.js +0 -184
- package/core/agentic/validation-rules.js +0 -380
- package/core/command-registry.js +0 -698
- package/core/commands.js +0 -2237
- package/core/domain/task-stack.js +0 -497
- package/core/infrastructure/legacy-installer-detector.js +0 -546
- package/core/infrastructure/migrator.js +0 -799
- package/core/infrastructure/session-manager.js +0 -390
- package/core/utils/file-helper.js +0 -329
- package/packages/web/app/api/projects/[id]/delete/route.ts +0 -21
- package/packages/web/app/api/stats/route.ts +0 -38
- package/packages/web/components/AppSidebar.tsx +0 -113
- package/packages/web/hooks/useStats.ts +0 -28
- /package/packages/web/components/{CommandButton.tsx → CommandButton/CommandButton.tsx} +0 -0
- /package/packages/web/components/{ConnectionStatus.tsx → ConnectionStatus/ConnectionStatus.tsx} +0 -0
- /package/packages/web/components/{Logo.tsx → Logo/Logo.tsx} +0 -0
- /package/packages/web/components/{MarkdownContent.tsx → MarkdownContent/MarkdownContent.tsx} +0 -0
- /package/packages/web/components/{ProjectAvatar.tsx → ProjectAvatar/ProjectAvatar.tsx} +0 -0
- /package/packages/web/components/{providers.tsx → Providers/Providers.tsx} +0 -0
- /package/packages/web/components/{TechStackBadges.tsx → TechStackBadges/TechStackBadges.tsx} +0 -0
package/core/command-registry.js
DELETED
|
@@ -1,698 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Command Registry - Single Source of Truth
|
|
3
|
-
*
|
|
4
|
-
* All prjct commands are defined here with metadata.
|
|
5
|
-
* This registry is used by:
|
|
6
|
-
* - bin/prjct (terminal CLI)
|
|
7
|
-
* - website/Commands.tsx (documentation site)
|
|
8
|
-
* - CLAUDE.md (AI assistant instructions)
|
|
9
|
-
* - scripts/validate-commands.js (validation)
|
|
10
|
-
*
|
|
11
|
-
* @version 0.9.0 - Simplified commands with pause/resume and intelligent idea development
|
|
12
|
-
*/
|
|
13
|
-
|
|
14
|
-
const COMMANDS = [
|
|
15
|
-
// ===== CORE WORKFLOW COMMANDS (13 essential) =====
|
|
16
|
-
|
|
17
|
-
// 1. Initialize
|
|
18
|
-
{
|
|
19
|
-
name: 'init',
|
|
20
|
-
category: 'core',
|
|
21
|
-
description: 'Deep project analysis and initialization',
|
|
22
|
-
usage: {
|
|
23
|
-
claude: '/p:init "[idea]"',
|
|
24
|
-
terminal: 'prjct init "[idea]"',
|
|
25
|
-
},
|
|
26
|
-
params: '[idea]',
|
|
27
|
-
implemented: true,
|
|
28
|
-
hasTemplate: true,
|
|
29
|
-
icon: 'Zap',
|
|
30
|
-
requiresInit: false,
|
|
31
|
-
blockingRules: null,
|
|
32
|
-
features: [
|
|
33
|
-
'Architect mode for blank projects',
|
|
34
|
-
'Auto tech stack recommendation',
|
|
35
|
-
'Project structure generation',
|
|
36
|
-
'Initial roadmap creation',
|
|
37
|
-
'Analyzes existing codebases',
|
|
38
|
-
],
|
|
39
|
-
},
|
|
40
|
-
|
|
41
|
-
// 2. Idea Development - Transform ideas into complete architectures
|
|
42
|
-
{
|
|
43
|
-
name: 'idea',
|
|
44
|
-
category: 'core',
|
|
45
|
-
description: 'Transform ideas into complete technical architectures',
|
|
46
|
-
usage: {
|
|
47
|
-
claude: '/p:idea "build a CRM with AI"',
|
|
48
|
-
terminal: 'prjct idea "build a CRM with AI"',
|
|
49
|
-
},
|
|
50
|
-
params: '<description>',
|
|
51
|
-
implemented: true,
|
|
52
|
-
hasTemplate: true,
|
|
53
|
-
icon: 'Lightbulb',
|
|
54
|
-
requiresInit: true,
|
|
55
|
-
blockingRules: null,
|
|
56
|
-
features: [
|
|
57
|
-
'Simple ideas → Quick capture',
|
|
58
|
-
'Complex ideas → Full architecture',
|
|
59
|
-
'Interactive discovery process',
|
|
60
|
-
'Tech stack recommendation',
|
|
61
|
-
'Complete roadmap generation',
|
|
62
|
-
'Database schema design',
|
|
63
|
-
'API specification',
|
|
64
|
-
],
|
|
65
|
-
},
|
|
66
|
-
|
|
67
|
-
// 3. Feature with Roadmap
|
|
68
|
-
{
|
|
69
|
-
name: 'feature',
|
|
70
|
-
category: 'core',
|
|
71
|
-
description: 'Add feature with value analysis, roadmap, and task breakdown',
|
|
72
|
-
usage: {
|
|
73
|
-
claude: '/p:feature "add unit testing"',
|
|
74
|
-
terminal: 'prjct feature "add unit testing"',
|
|
75
|
-
},
|
|
76
|
-
params: '<description>',
|
|
77
|
-
implemented: true,
|
|
78
|
-
hasTemplate: true,
|
|
79
|
-
icon: 'Package',
|
|
80
|
-
requiresInit: true,
|
|
81
|
-
blockingRules: null,
|
|
82
|
-
features: [
|
|
83
|
-
'Value analysis (impact/effort/timing)',
|
|
84
|
-
'Auto roadmap generation',
|
|
85
|
-
'Task breakdown',
|
|
86
|
-
'Auto-start first task',
|
|
87
|
-
'Timing recommendations',
|
|
88
|
-
],
|
|
89
|
-
},
|
|
90
|
-
|
|
91
|
-
// 3.5. Spec-Driven Development (P1.2)
|
|
92
|
-
{
|
|
93
|
-
name: 'spec',
|
|
94
|
-
category: 'core',
|
|
95
|
-
description: 'Create detailed specifications for complex features',
|
|
96
|
-
usage: {
|
|
97
|
-
claude: '/p:spec "Dark Mode"',
|
|
98
|
-
terminal: 'prjct spec "Dark Mode"',
|
|
99
|
-
},
|
|
100
|
-
params: '[feature]',
|
|
101
|
-
implemented: true,
|
|
102
|
-
hasTemplate: true,
|
|
103
|
-
icon: 'FileText',
|
|
104
|
-
requiresInit: true,
|
|
105
|
-
blockingRules: null,
|
|
106
|
-
features: [
|
|
107
|
-
'Requirements documentation',
|
|
108
|
-
'Design decisions tracking',
|
|
109
|
-
'Tasks broken into 20-30min chunks',
|
|
110
|
-
'User approval workflow',
|
|
111
|
-
'Auto-add tasks to queue on approve',
|
|
112
|
-
'Integrates with /p:feature',
|
|
113
|
-
],
|
|
114
|
-
},
|
|
115
|
-
|
|
116
|
-
// 4. Work - Unified task management (replaces now + build)
|
|
117
|
-
{
|
|
118
|
-
name: 'work',
|
|
119
|
-
category: 'core',
|
|
120
|
-
description: 'Show current or start new task',
|
|
121
|
-
usage: {
|
|
122
|
-
claude: '/p:work ["task"]',
|
|
123
|
-
terminal: 'prjct work ["task"]',
|
|
124
|
-
},
|
|
125
|
-
params: '[task]',
|
|
126
|
-
implemented: true,
|
|
127
|
-
hasTemplate: true,
|
|
128
|
-
icon: 'Target',
|
|
129
|
-
requiresInit: true,
|
|
130
|
-
blockingRules: null,
|
|
131
|
-
features: [
|
|
132
|
-
'No params → Show current task',
|
|
133
|
-
'With task → Start new task',
|
|
134
|
-
'Auto agent assignment',
|
|
135
|
-
'Supports task numbers',
|
|
136
|
-
'Replaces /p:now and /p:build',
|
|
137
|
-
],
|
|
138
|
-
},
|
|
139
|
-
|
|
140
|
-
// 5. Pause - Pause active task
|
|
141
|
-
{
|
|
142
|
-
name: 'pause',
|
|
143
|
-
category: 'core',
|
|
144
|
-
description: 'Pause active task to handle interruption',
|
|
145
|
-
usage: {
|
|
146
|
-
claude: '/p:pause ["reason"]',
|
|
147
|
-
terminal: 'prjct pause ["reason"]',
|
|
148
|
-
},
|
|
149
|
-
params: '[reason]',
|
|
150
|
-
implemented: true,
|
|
151
|
-
hasTemplate: true,
|
|
152
|
-
icon: 'Pause',
|
|
153
|
-
requiresInit: true,
|
|
154
|
-
blockingRules: {
|
|
155
|
-
check: 'Active task exists',
|
|
156
|
-
message: 'No active task to pause',
|
|
157
|
-
},
|
|
158
|
-
features: [
|
|
159
|
-
'Preserves task context',
|
|
160
|
-
'Optional pause reason',
|
|
161
|
-
'Tracks paused duration',
|
|
162
|
-
'Allows multiple paused tasks',
|
|
163
|
-
],
|
|
164
|
-
},
|
|
165
|
-
|
|
166
|
-
// 6. Resume - Resume paused task
|
|
167
|
-
{
|
|
168
|
-
name: 'resume',
|
|
169
|
-
category: 'core',
|
|
170
|
-
description: 'Resume most recently paused task',
|
|
171
|
-
usage: {
|
|
172
|
-
claude: '/p:resume [task_id]',
|
|
173
|
-
terminal: 'prjct resume [task_id]',
|
|
174
|
-
},
|
|
175
|
-
params: '[task_id]',
|
|
176
|
-
implemented: true,
|
|
177
|
-
hasTemplate: true,
|
|
178
|
-
icon: 'Play',
|
|
179
|
-
requiresInit: true,
|
|
180
|
-
blockingRules: {
|
|
181
|
-
check: 'Paused tasks exist',
|
|
182
|
-
message: 'No paused tasks to resume',
|
|
183
|
-
},
|
|
184
|
-
features: [
|
|
185
|
-
'Resume last paused',
|
|
186
|
-
'Resume specific task',
|
|
187
|
-
'Resume by number',
|
|
188
|
-
'Calculates active time',
|
|
189
|
-
],
|
|
190
|
-
},
|
|
191
|
-
|
|
192
|
-
// 7. Next Tasks
|
|
193
|
-
{
|
|
194
|
-
name: 'next',
|
|
195
|
-
category: 'core',
|
|
196
|
-
description: 'Show top 5 non-blocking priority tasks',
|
|
197
|
-
usage: {
|
|
198
|
-
claude: '/p:next',
|
|
199
|
-
terminal: 'prjct next',
|
|
200
|
-
},
|
|
201
|
-
params: null,
|
|
202
|
-
implemented: true, // Needs blocking logic
|
|
203
|
-
hasTemplate: true,
|
|
204
|
-
icon: 'List',
|
|
205
|
-
requiresInit: true,
|
|
206
|
-
blockingRules: {
|
|
207
|
-
check: 'filters blocked tasks',
|
|
208
|
-
message: 'Shows warning if now.md is active',
|
|
209
|
-
},
|
|
210
|
-
features: [
|
|
211
|
-
'Filters out blocked tasks',
|
|
212
|
-
'Shows top 5 by priority',
|
|
213
|
-
'Numbered 1-5 for quick selection',
|
|
214
|
-
'Warns if active task exists',
|
|
215
|
-
],
|
|
216
|
-
},
|
|
217
|
-
|
|
218
|
-
// 8. Complete Task
|
|
219
|
-
{
|
|
220
|
-
name: 'done',
|
|
221
|
-
category: 'core',
|
|
222
|
-
description: 'Mark current task as complete',
|
|
223
|
-
usage: {
|
|
224
|
-
claude: '/p:done',
|
|
225
|
-
terminal: 'prjct done',
|
|
226
|
-
},
|
|
227
|
-
params: null,
|
|
228
|
-
implemented: true,
|
|
229
|
-
hasTemplate: true,
|
|
230
|
-
icon: 'CheckCircle',
|
|
231
|
-
requiresInit: true,
|
|
232
|
-
blockingRules: {
|
|
233
|
-
check: 'now.md must have content',
|
|
234
|
-
message: 'No active task to complete',
|
|
235
|
-
},
|
|
236
|
-
},
|
|
237
|
-
|
|
238
|
-
// 9. Ship Feature
|
|
239
|
-
{
|
|
240
|
-
name: 'ship',
|
|
241
|
-
category: 'core',
|
|
242
|
-
description: 'Commit, push, and celebrate shipped feature',
|
|
243
|
-
usage: {
|
|
244
|
-
claude: '/p:ship "user authentication"',
|
|
245
|
-
terminal: 'prjct ship "user authentication"',
|
|
246
|
-
},
|
|
247
|
-
params: '<feature>',
|
|
248
|
-
implemented: true, // Complete automated workflow
|
|
249
|
-
hasTemplate: true,
|
|
250
|
-
icon: 'Rocket',
|
|
251
|
-
requiresInit: true,
|
|
252
|
-
blockingRules: null,
|
|
253
|
-
features: [
|
|
254
|
-
'Lint checks (non-blocking)',
|
|
255
|
-
'Run tests (non-blocking)',
|
|
256
|
-
'Update docs',
|
|
257
|
-
'Update version',
|
|
258
|
-
'Update CHANGELOG',
|
|
259
|
-
'Git commit + push',
|
|
260
|
-
'Recommend compact',
|
|
261
|
-
],
|
|
262
|
-
},
|
|
263
|
-
|
|
264
|
-
// 10. Bug Tracking
|
|
265
|
-
{
|
|
266
|
-
name: 'bug',
|
|
267
|
-
category: 'core',
|
|
268
|
-
description: 'Report and track bugs with priority',
|
|
269
|
-
usage: {
|
|
270
|
-
claude: '/p:bug "login button not working"',
|
|
271
|
-
terminal: 'prjct bug "login button not working"',
|
|
272
|
-
},
|
|
273
|
-
params: '<description>',
|
|
274
|
-
implemented: true,
|
|
275
|
-
hasTemplate: true,
|
|
276
|
-
icon: 'Bug',
|
|
277
|
-
requiresInit: true,
|
|
278
|
-
blockingRules: null,
|
|
279
|
-
features: [
|
|
280
|
-
'Auto-detect severity (critical/high/medium/low)',
|
|
281
|
-
'Priority placement in next.md',
|
|
282
|
-
'Bug tracking in memory',
|
|
283
|
-
'Quick bug resolution workflow',
|
|
284
|
-
],
|
|
285
|
-
},
|
|
286
|
-
|
|
287
|
-
// 11. Dashboard - Unified project view (replaces status, recap, progress, roadmap)
|
|
288
|
-
{
|
|
289
|
-
name: 'dash',
|
|
290
|
-
category: 'core',
|
|
291
|
-
description: 'Unified dashboard - status, progress, and roadmap',
|
|
292
|
-
usage: {
|
|
293
|
-
claude: '/p:dash [view]',
|
|
294
|
-
terminal: 'prjct dash [view]',
|
|
295
|
-
},
|
|
296
|
-
params: '[week|month|roadmap|compact]',
|
|
297
|
-
implemented: true,
|
|
298
|
-
hasTemplate: true,
|
|
299
|
-
icon: 'BarChart3',
|
|
300
|
-
requiresInit: true,
|
|
301
|
-
blockingRules: null,
|
|
302
|
-
features: [
|
|
303
|
-
'Project overview',
|
|
304
|
-
'Weekly/monthly progress',
|
|
305
|
-
'Roadmap view',
|
|
306
|
-
'ASCII graphics',
|
|
307
|
-
'Replaces 4 commands',
|
|
308
|
-
],
|
|
309
|
-
},
|
|
310
|
-
|
|
311
|
-
// 12. Help - Enhanced contextual help (absorbs ask, suggest, stuck)
|
|
312
|
-
{
|
|
313
|
-
name: 'help',
|
|
314
|
-
category: 'core',
|
|
315
|
-
description: 'Contextual help and guidance',
|
|
316
|
-
usage: {
|
|
317
|
-
claude: '/p:help [topic]',
|
|
318
|
-
terminal: 'prjct help [topic]',
|
|
319
|
-
},
|
|
320
|
-
params: '[topic]',
|
|
321
|
-
implemented: true,
|
|
322
|
-
hasTemplate: true,
|
|
323
|
-
icon: 'HelpCircle',
|
|
324
|
-
requiresInit: false,
|
|
325
|
-
blockingRules: null,
|
|
326
|
-
features: [
|
|
327
|
-
'Context-aware suggestions',
|
|
328
|
-
'Intent to action translator',
|
|
329
|
-
'Problem solving guidance',
|
|
330
|
-
'Absorbs ask/suggest/stuck',
|
|
331
|
-
],
|
|
332
|
-
},
|
|
333
|
-
|
|
334
|
-
// 13. Sync - Sync project state
|
|
335
|
-
{
|
|
336
|
-
name: 'sync',
|
|
337
|
-
category: 'core',
|
|
338
|
-
description: 'Sync project state and update workflow agents',
|
|
339
|
-
usage: {
|
|
340
|
-
claude: '/p:sync',
|
|
341
|
-
terminal: 'prjct sync',
|
|
342
|
-
},
|
|
343
|
-
params: null,
|
|
344
|
-
implemented: true,
|
|
345
|
-
hasTemplate: true,
|
|
346
|
-
icon: 'RefreshCw',
|
|
347
|
-
requiresInit: true,
|
|
348
|
-
blockingRules: null,
|
|
349
|
-
features: [
|
|
350
|
-
'Syncs project state',
|
|
351
|
-
'Updates dynamic agents',
|
|
352
|
-
'Refreshes context',
|
|
353
|
-
],
|
|
354
|
-
},
|
|
355
|
-
|
|
356
|
-
// ===== OPTIONAL COMMANDS (Advanced features) =====
|
|
357
|
-
|
|
358
|
-
{
|
|
359
|
-
name: 'design',
|
|
360
|
-
category: 'optional',
|
|
361
|
-
description: 'Design system architecture, APIs, and components',
|
|
362
|
-
usage: {
|
|
363
|
-
claude: '/p:design authentication --type architecture',
|
|
364
|
-
terminal: 'prjct design authentication --type architecture',
|
|
365
|
-
},
|
|
366
|
-
params: '[target] --type architecture|api|component|database|flow',
|
|
367
|
-
implemented: true,
|
|
368
|
-
hasTemplate: true,
|
|
369
|
-
icon: 'Palette',
|
|
370
|
-
requiresInit: true,
|
|
371
|
-
blockingRules: null,
|
|
372
|
-
isOptional: true,
|
|
373
|
-
},
|
|
374
|
-
{
|
|
375
|
-
name: 'spec',
|
|
376
|
-
category: 'optional',
|
|
377
|
-
description: 'Spec-driven development for complex features',
|
|
378
|
-
usage: {
|
|
379
|
-
claude: '/p:spec "Dark Mode"',
|
|
380
|
-
terminal: 'prjct spec "Dark Mode"',
|
|
381
|
-
},
|
|
382
|
-
params: '[feature_name]',
|
|
383
|
-
implemented: true,
|
|
384
|
-
hasTemplate: true,
|
|
385
|
-
icon: 'FileText',
|
|
386
|
-
requiresInit: true,
|
|
387
|
-
blockingRules: null,
|
|
388
|
-
isOptional: true,
|
|
389
|
-
features: [
|
|
390
|
-
'Clear requirements before coding',
|
|
391
|
-
'Design decisions documented',
|
|
392
|
-
'Tasks broken into 20-30 min chunks',
|
|
393
|
-
'User approval before starting',
|
|
394
|
-
'Auto-adds tasks to queue on approval',
|
|
395
|
-
],
|
|
396
|
-
},
|
|
397
|
-
{
|
|
398
|
-
name: 'cleanup',
|
|
399
|
-
category: 'optional',
|
|
400
|
-
description: 'Clean up temp files and old entries',
|
|
401
|
-
usage: {
|
|
402
|
-
claude: '/p:cleanup',
|
|
403
|
-
terminal: 'prjct cleanup',
|
|
404
|
-
},
|
|
405
|
-
params: null,
|
|
406
|
-
implemented: true,
|
|
407
|
-
hasTemplate: true,
|
|
408
|
-
icon: 'Zap',
|
|
409
|
-
requiresInit: true,
|
|
410
|
-
blockingRules: null,
|
|
411
|
-
isOptional: true,
|
|
412
|
-
},
|
|
413
|
-
{
|
|
414
|
-
name: 'analyze',
|
|
415
|
-
category: 'optional',
|
|
416
|
-
description: 'Analyze repository and sync tasks',
|
|
417
|
-
usage: {
|
|
418
|
-
claude: '/p:analyze',
|
|
419
|
-
terminal: 'prjct analyze',
|
|
420
|
-
},
|
|
421
|
-
params: null,
|
|
422
|
-
implemented: true,
|
|
423
|
-
hasTemplate: true,
|
|
424
|
-
icon: 'Search',
|
|
425
|
-
requiresInit: true,
|
|
426
|
-
blockingRules: null,
|
|
427
|
-
isOptional: true,
|
|
428
|
-
},
|
|
429
|
-
|
|
430
|
-
// ===== SNAPSHOT COMMANDS (Undo/Redo Support) =====
|
|
431
|
-
{
|
|
432
|
-
name: 'undo',
|
|
433
|
-
category: 'optional',
|
|
434
|
-
description: 'Revert to previous snapshot',
|
|
435
|
-
usage: {
|
|
436
|
-
claude: '/p:undo',
|
|
437
|
-
terminal: 'prjct undo',
|
|
438
|
-
},
|
|
439
|
-
params: null,
|
|
440
|
-
implemented: true,
|
|
441
|
-
hasTemplate: true,
|
|
442
|
-
icon: 'RotateCcw',
|
|
443
|
-
requiresInit: true,
|
|
444
|
-
blockingRules: null,
|
|
445
|
-
isOptional: true,
|
|
446
|
-
features: [
|
|
447
|
-
'Git-based snapshots',
|
|
448
|
-
'Preserves redo history',
|
|
449
|
-
'Non-destructive',
|
|
450
|
-
],
|
|
451
|
-
},
|
|
452
|
-
{
|
|
453
|
-
name: 'redo',
|
|
454
|
-
category: 'optional',
|
|
455
|
-
description: 'Redo previously undone changes',
|
|
456
|
-
usage: {
|
|
457
|
-
claude: '/p:redo',
|
|
458
|
-
terminal: 'prjct redo',
|
|
459
|
-
},
|
|
460
|
-
params: null,
|
|
461
|
-
implemented: true,
|
|
462
|
-
hasTemplate: true,
|
|
463
|
-
icon: 'RotateCw',
|
|
464
|
-
requiresInit: true,
|
|
465
|
-
blockingRules: null,
|
|
466
|
-
isOptional: true,
|
|
467
|
-
features: [
|
|
468
|
-
'Only available after undo',
|
|
469
|
-
'Restores undone state',
|
|
470
|
-
'Clears on new snapshot',
|
|
471
|
-
],
|
|
472
|
-
},
|
|
473
|
-
{
|
|
474
|
-
name: 'history',
|
|
475
|
-
category: 'optional',
|
|
476
|
-
description: 'View snapshot history',
|
|
477
|
-
usage: {
|
|
478
|
-
claude: '/p:history',
|
|
479
|
-
terminal: 'prjct history',
|
|
480
|
-
},
|
|
481
|
-
params: null,
|
|
482
|
-
implemented: true,
|
|
483
|
-
hasTemplate: true,
|
|
484
|
-
icon: 'Clock',
|
|
485
|
-
requiresInit: true,
|
|
486
|
-
blockingRules: null,
|
|
487
|
-
isOptional: true,
|
|
488
|
-
features: [
|
|
489
|
-
'Shows all snapshots',
|
|
490
|
-
'Current position indicator',
|
|
491
|
-
'Redo availability count',
|
|
492
|
-
],
|
|
493
|
-
},
|
|
494
|
-
|
|
495
|
-
// ===== SETUP COMMANDS (Not part of daily workflow) =====
|
|
496
|
-
{
|
|
497
|
-
name: 'start',
|
|
498
|
-
category: 'setup',
|
|
499
|
-
description: 'First-time setup (install commands to editors)',
|
|
500
|
-
usage: {
|
|
501
|
-
claude: null,
|
|
502
|
-
terminal: 'prjct start',
|
|
503
|
-
},
|
|
504
|
-
params: null,
|
|
505
|
-
implemented: true,
|
|
506
|
-
hasTemplate: false,
|
|
507
|
-
icon: 'Terminal',
|
|
508
|
-
requiresInit: false,
|
|
509
|
-
blockingRules: null,
|
|
510
|
-
},
|
|
511
|
-
{
|
|
512
|
-
name: 'setup',
|
|
513
|
-
category: 'setup',
|
|
514
|
-
description: 'Reconfigure editor installations',
|
|
515
|
-
usage: {
|
|
516
|
-
claude: '/p:setup',
|
|
517
|
-
terminal: 'prjct setup [--force] [--editor <name>]',
|
|
518
|
-
},
|
|
519
|
-
params: '[--force] [--editor <name>]',
|
|
520
|
-
implemented: true,
|
|
521
|
-
hasTemplate: true,
|
|
522
|
-
icon: 'Settings',
|
|
523
|
-
requiresInit: false,
|
|
524
|
-
blockingRules: null,
|
|
525
|
-
},
|
|
526
|
-
{
|
|
527
|
-
name: 'migrate-all',
|
|
528
|
-
category: 'setup',
|
|
529
|
-
description: 'Migrate all legacy projects',
|
|
530
|
-
usage: {
|
|
531
|
-
claude: '/p:migrate-all',
|
|
532
|
-
terminal: 'prjct migrate-all [--deep-scan] [--remove-legacy] [--dry-run]',
|
|
533
|
-
},
|
|
534
|
-
params: '[--deep-scan] [--remove-legacy] [--dry-run]',
|
|
535
|
-
implemented: true,
|
|
536
|
-
hasTemplate: true,
|
|
537
|
-
icon: 'Database',
|
|
538
|
-
requiresInit: false,
|
|
539
|
-
blockingRules: null,
|
|
540
|
-
},
|
|
541
|
-
]
|
|
542
|
-
|
|
543
|
-
/**
|
|
544
|
-
* Category metadata
|
|
545
|
-
*/
|
|
546
|
-
const CATEGORIES = {
|
|
547
|
-
core: {
|
|
548
|
-
title: 'Core Workflow',
|
|
549
|
-
icon: 'Zap',
|
|
550
|
-
description: '13 essential commands for daily development workflow (simplified)',
|
|
551
|
-
order: 1,
|
|
552
|
-
},
|
|
553
|
-
optional: {
|
|
554
|
-
title: 'Optional Commands',
|
|
555
|
-
icon: 'Package',
|
|
556
|
-
description: 'Advanced features for specialized workflows',
|
|
557
|
-
order: 2,
|
|
558
|
-
},
|
|
559
|
-
setup: {
|
|
560
|
-
title: 'Setup',
|
|
561
|
-
icon: 'Terminal',
|
|
562
|
-
description: 'Installation and configuration (not for daily use)',
|
|
563
|
-
order: 3,
|
|
564
|
-
},
|
|
565
|
-
}
|
|
566
|
-
|
|
567
|
-
/**
|
|
568
|
-
* Helper functions
|
|
569
|
-
*/
|
|
570
|
-
const registry = {
|
|
571
|
-
/**
|
|
572
|
-
* Get all commands
|
|
573
|
-
*/
|
|
574
|
-
getAll: () => COMMANDS,
|
|
575
|
-
|
|
576
|
-
/**
|
|
577
|
-
* Get command by name
|
|
578
|
-
*/
|
|
579
|
-
getByName: (name) => COMMANDS.find((c) => c.name === name),
|
|
580
|
-
|
|
581
|
-
/**
|
|
582
|
-
* Get commands by category
|
|
583
|
-
*/
|
|
584
|
-
getByCategory: (category) => COMMANDS.filter((c) => c.category === category),
|
|
585
|
-
|
|
586
|
-
/**
|
|
587
|
-
* Get all implemented commands
|
|
588
|
-
*/
|
|
589
|
-
getAllImplemented: () => COMMANDS.filter((c) => c.implemented),
|
|
590
|
-
|
|
591
|
-
/**
|
|
592
|
-
* Get all commands with templates
|
|
593
|
-
*/
|
|
594
|
-
getAllWithTemplates: () => COMMANDS.filter((c) => c.hasTemplate),
|
|
595
|
-
|
|
596
|
-
/**
|
|
597
|
-
* Get commands available in Claude Code
|
|
598
|
-
*/
|
|
599
|
-
getClaudeCommands: () => COMMANDS.filter((c) => c.usage.claude !== null),
|
|
600
|
-
|
|
601
|
-
/**
|
|
602
|
-
* Get commands available in terminal
|
|
603
|
-
*/
|
|
604
|
-
getTerminalCommands: () => COMMANDS.filter((c) => c.usage.terminal !== null),
|
|
605
|
-
|
|
606
|
-
/**
|
|
607
|
-
* Get all categories
|
|
608
|
-
*/
|
|
609
|
-
getCategories: () => CATEGORIES,
|
|
610
|
-
|
|
611
|
-
/**
|
|
612
|
-
* Get category metadata
|
|
613
|
-
*/
|
|
614
|
-
getCategory: (category) => CATEGORIES[category],
|
|
615
|
-
|
|
616
|
-
/**
|
|
617
|
-
* Validate command registry
|
|
618
|
-
*/
|
|
619
|
-
validate: () => {
|
|
620
|
-
const issues = []
|
|
621
|
-
|
|
622
|
-
// Check for duplicate names
|
|
623
|
-
const names = COMMANDS.map((c) => c.name)
|
|
624
|
-
const duplicates = names.filter((name, index) => names.indexOf(name) !== index)
|
|
625
|
-
if (duplicates.length > 0) {
|
|
626
|
-
issues.push(`Duplicate command names: ${duplicates.join(', ')}`)
|
|
627
|
-
}
|
|
628
|
-
|
|
629
|
-
// Check for commands with templates but not implemented
|
|
630
|
-
const notImplemented = COMMANDS.filter((c) => c.hasTemplate && !c.implemented)
|
|
631
|
-
if (notImplemented.length > 0) {
|
|
632
|
-
issues.push(
|
|
633
|
-
`Commands with templates but not implemented: ${notImplemented.map((c) => c.name).join(', ')}`
|
|
634
|
-
)
|
|
635
|
-
}
|
|
636
|
-
|
|
637
|
-
// Check for invalid categories
|
|
638
|
-
const validCategories = Object.keys(CATEGORIES)
|
|
639
|
-
const invalidCategories = COMMANDS.filter((c) => !validCategories.includes(c.category))
|
|
640
|
-
if (invalidCategories.length > 0) {
|
|
641
|
-
issues.push(
|
|
642
|
-
`Invalid categories: ${invalidCategories.map((c) => `${c.name}:${c.category}`).join(', ')}`
|
|
643
|
-
)
|
|
644
|
-
}
|
|
645
|
-
|
|
646
|
-
return {
|
|
647
|
-
valid: issues.length === 0,
|
|
648
|
-
issues,
|
|
649
|
-
}
|
|
650
|
-
},
|
|
651
|
-
|
|
652
|
-
/**
|
|
653
|
-
* Get core commands only (9 essential)
|
|
654
|
-
*/
|
|
655
|
-
getCoreCommands: () => COMMANDS.filter((c) => c.category === 'core'),
|
|
656
|
-
|
|
657
|
-
/**
|
|
658
|
-
* Get optional commands
|
|
659
|
-
*/
|
|
660
|
-
getOptionalCommands: () => COMMANDS.filter((c) => c.category === 'optional'),
|
|
661
|
-
|
|
662
|
-
/**
|
|
663
|
-
* Get commands that require initialization
|
|
664
|
-
*/
|
|
665
|
-
getRequiresInit: () => COMMANDS.filter((c) => c.requiresInit),
|
|
666
|
-
|
|
667
|
-
/**
|
|
668
|
-
* Get commands with blocking rules
|
|
669
|
-
* NOTE: Blocking rules are now handled by Claude reading templates, not deterministic code
|
|
670
|
-
*/
|
|
671
|
-
getWithBlockingRules: () => COMMANDS.filter((c) => c.blockingRules !== null),
|
|
672
|
-
|
|
673
|
-
/**
|
|
674
|
-
* Get statistics
|
|
675
|
-
*/
|
|
676
|
-
getStats: () => ({
|
|
677
|
-
total: COMMANDS.length,
|
|
678
|
-
core: COMMANDS.filter((c) => c.category === 'core').length,
|
|
679
|
-
optional: COMMANDS.filter((c) => c.category === 'optional').length,
|
|
680
|
-
setup: COMMANDS.filter((c) => c.category === 'setup').length,
|
|
681
|
-
implemented: COMMANDS.filter((c) => c.implemented).length,
|
|
682
|
-
withTemplates: COMMANDS.filter((c) => c.hasTemplate).length,
|
|
683
|
-
claudeOnly: COMMANDS.filter((c) => c.usage.claude && !c.usage.terminal).length,
|
|
684
|
-
terminalOnly: COMMANDS.filter((c) => !c.usage.claude && c.usage.terminal).length,
|
|
685
|
-
both: COMMANDS.filter((c) => c.usage.claude && c.usage.terminal).length,
|
|
686
|
-
requiresInit: COMMANDS.filter((c) => c.requiresInit).length,
|
|
687
|
-
withBlockingRules: COMMANDS.filter((c) => c.blockingRules !== null).length,
|
|
688
|
-
byCategory: Object.keys(CATEGORIES).reduce(
|
|
689
|
-
(acc, cat) => ({
|
|
690
|
-
...acc,
|
|
691
|
-
[cat]: COMMANDS.filter((c) => c.category === cat).length,
|
|
692
|
-
}),
|
|
693
|
-
{}
|
|
694
|
-
),
|
|
695
|
-
}),
|
|
696
|
-
}
|
|
697
|
-
|
|
698
|
-
module.exports = registry
|