prjct-cli 1.22.0 → 1.23.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 +147 -0
- package/bin/prjct +30 -13
- package/dist/bin/prjct.mjs +917 -35845
- package/dist/bin/prjct.mjs.map +7 -0
- package/dist/cli/linear.mjs +16 -0
- package/dist/cli/linear.mjs.map +7 -0
- package/dist/templates.json +1 -0
- package/package.json +4 -5
- package/bin/prjct.ts +0 -342
- package/core/__tests__/agentic/analysis-injection.test.ts +0 -377
- package/core/__tests__/agentic/cache-eviction.test.ts +0 -294
- package/core/__tests__/agentic/command-context.test.ts +0 -281
- package/core/__tests__/agentic/command-executor.test.ts +0 -659
- package/core/__tests__/agentic/domain-classifier.test.ts +0 -330
- package/core/__tests__/agentic/injection-validator.test.ts +0 -255
- package/core/__tests__/agentic/memory-system.test.ts +0 -281
- package/core/__tests__/agentic/plan-mode.test.ts +0 -386
- package/core/__tests__/agentic/prompt-assembly.test.ts +0 -298
- package/core/__tests__/agentic/prompt-builder.test.ts +0 -243
- package/core/__tests__/agentic/response-validator.test.ts +0 -263
- package/core/__tests__/agentic/semantic-matching.test.ts +0 -131
- package/core/__tests__/agentic/smart-context.test.ts +0 -372
- package/core/__tests__/agentic/tech-normalizer.test.ts +0 -136
- package/core/__tests__/agentic/token-budget.test.ts +0 -294
- package/core/__tests__/ai-tools/formatters.test.ts +0 -476
- package/core/__tests__/domain/bm25.test.ts +0 -225
- package/core/__tests__/domain/change-propagator.test.ts +0 -100
- package/core/__tests__/domain/fibonacci.test.ts +0 -113
- package/core/__tests__/domain/file-hasher.test.ts +0 -146
- package/core/__tests__/domain/file-ranker.test.ts +0 -169
- package/core/__tests__/domain/git-cochange.test.ts +0 -121
- package/core/__tests__/domain/import-graph.test.ts +0 -156
- package/core/__tests__/domain/velocity.test.ts +0 -623
- package/core/__tests__/infrastructure/performance-tracker.test.ts +0 -328
- package/core/__tests__/schemas/model.test.ts +0 -272
- package/core/__tests__/services/dependency-validator.test.ts +0 -175
- package/core/__tests__/services/hierarchical-agent-resolver.test.ts +0 -359
- package/core/__tests__/services/nested-context-resolver.test.ts +0 -443
- package/core/__tests__/services/project-index.test.ts +0 -355
- package/core/__tests__/services/staleness-checker.test.ts +0 -204
- package/core/__tests__/storage/analysis-storage.test.ts +0 -641
- package/core/__tests__/storage/archive-storage.test.ts +0 -455
- package/core/__tests__/storage/safe-reader.test.ts +0 -262
- package/core/__tests__/storage/sqlite-migration.test.ts +0 -1016
- package/core/__tests__/storage/state-storage-feedback.test.ts +0 -463
- package/core/__tests__/storage/state-storage-history.test.ts +0 -469
- package/core/__tests__/storage/storage-manager.test.ts +0 -383
- package/core/__tests__/storage/subtask-handoff.test.ts +0 -237
- package/core/__tests__/types/fs.test.ts +0 -125
- package/core/__tests__/utils/date-helper.test.ts +0 -449
- package/core/__tests__/utils/output.test.ts +0 -278
- package/core/__tests__/utils/preserve-sections.test.ts +0 -216
- package/core/__tests__/utils/project-commands.test.ts +0 -71
- package/core/__tests__/utils/retry.test.ts +0 -381
- package/core/__tests__/workflow/state-machine.test.ts +0 -216
- package/core/agentic/agent-router.ts +0 -150
- package/core/agentic/anti-hallucination.ts +0 -141
- package/core/agentic/chain-of-thought.ts +0 -234
- package/core/agentic/command-classifier.ts +0 -141
- package/core/agentic/command-context.ts +0 -168
- package/core/agentic/command-executor.ts +0 -471
- package/core/agentic/context-builder.ts +0 -285
- package/core/agentic/domain-classifier.ts +0 -525
- package/core/agentic/environment-block.ts +0 -102
- package/core/agentic/ground-truth.ts +0 -706
- package/core/agentic/index.ts +0 -193
- package/core/agentic/injection-validator.ts +0 -208
- package/core/agentic/loop-detector.ts +0 -451
- package/core/agentic/memory-system.ts +0 -1547
- package/core/agentic/orchestrator-executor.ts +0 -579
- package/core/agentic/plan-mode.ts +0 -525
- package/core/agentic/prompt-builder.ts +0 -1069
- package/core/agentic/response-validator.ts +0 -98
- package/core/agentic/services.ts +0 -167
- package/core/agentic/skill-loader.ts +0 -106
- package/core/agentic/smart-context.ts +0 -393
- package/core/agentic/tech-normalizer.ts +0 -167
- package/core/agentic/template-executor.ts +0 -272
- package/core/agentic/template-loader.ts +0 -109
- package/core/agentic/token-budget.ts +0 -226
- package/core/agentic/tool-registry.ts +0 -146
- package/core/agents/index.ts +0 -28
- package/core/agents/performance.ts +0 -429
- package/core/ai-tools/formatters.ts +0 -341
- package/core/ai-tools/generator.ts +0 -144
- package/core/ai-tools/index.ts +0 -15
- package/core/ai-tools/registry.ts +0 -201
- package/core/bus/bus.ts +0 -314
- package/core/bus/index.ts +0 -8
- package/core/cli/linear.ts +0 -500
- package/core/cli/lint-meta-commentary.ts +0 -177
- package/core/cli/start.ts +0 -386
- package/core/commands/analysis.ts +0 -1274
- package/core/commands/analytics.ts +0 -342
- package/core/commands/base.ts +0 -118
- package/core/commands/cleanup.ts +0 -157
- package/core/commands/command-data.ts +0 -463
- package/core/commands/commands.ts +0 -306
- package/core/commands/context.ts +0 -238
- package/core/commands/design.ts +0 -77
- package/core/commands/index.ts +0 -19
- package/core/commands/maintenance.ts +0 -77
- package/core/commands/performance.ts +0 -114
- package/core/commands/planning.ts +0 -662
- package/core/commands/register.ts +0 -127
- package/core/commands/registry.ts +0 -444
- package/core/commands/setup.ts +0 -280
- package/core/commands/shipping.ts +0 -267
- package/core/commands/snapshots.ts +0 -297
- package/core/commands/uninstall.ts +0 -542
- package/core/commands/velocity.ts +0 -149
- package/core/commands/workflow.ts +0 -505
- package/core/config/command-context.config.json +0 -66
- package/core/constants/index.ts +0 -379
- package/core/context/generator.ts +0 -368
- package/core/context-tools/files-tool.ts +0 -577
- package/core/context-tools/imports-tool.ts +0 -400
- package/core/context-tools/index.ts +0 -434
- package/core/context-tools/recent-tool.ts +0 -301
- package/core/context-tools/signatures-tool.ts +0 -495
- package/core/context-tools/summary-tool.ts +0 -301
- package/core/context-tools/token-counter.ts +0 -273
- package/core/context-tools/types.ts +0 -253
- package/core/domain/agent-generator.ts +0 -186
- package/core/domain/agent-loader.ts +0 -419
- package/core/domain/analyzer.ts +0 -387
- package/core/domain/architecture-generator.ts +0 -108
- package/core/domain/bm25.ts +0 -525
- package/core/domain/change-propagator.ts +0 -162
- package/core/domain/context-estimator.ts +0 -175
- package/core/domain/fibonacci.ts +0 -128
- package/core/domain/file-hasher.ts +0 -296
- package/core/domain/file-ranker.ts +0 -151
- package/core/domain/git-cochange.ts +0 -250
- package/core/domain/import-graph.ts +0 -315
- package/core/domain/snapshot-manager.ts +0 -415
- package/core/domain/task-stack.ts +0 -578
- package/core/domain/velocity.ts +0 -470
- package/core/errors.ts +0 -335
- package/core/events/events.ts +0 -85
- package/core/events/index.ts +0 -8
- package/core/index.ts +0 -481
- package/core/infrastructure/agent-detector.ts +0 -135
- package/core/infrastructure/ai-provider.ts +0 -578
- package/core/infrastructure/author-detector.ts +0 -133
- package/core/infrastructure/capability-installer.ts +0 -76
- package/core/infrastructure/claude-agent.ts +0 -297
- package/core/infrastructure/command-installer.ts +0 -752
- package/core/infrastructure/config-manager.ts +0 -364
- package/core/infrastructure/editors-config.ts +0 -172
- package/core/infrastructure/path-manager.ts +0 -571
- package/core/infrastructure/performance-tracker.ts +0 -326
- package/core/infrastructure/permission-manager.ts +0 -289
- package/core/infrastructure/setup.ts +0 -1061
- package/core/infrastructure/update-checker.ts +0 -246
- package/core/integrations/issue-tracker/enricher.ts +0 -271
- package/core/integrations/issue-tracker/index.ts +0 -8
- package/core/integrations/issue-tracker/manager.ts +0 -286
- package/core/integrations/issue-tracker/types.ts +0 -310
- package/core/integrations/jira/cache.ts +0 -57
- package/core/integrations/jira/client.ts +0 -688
- package/core/integrations/jira/index.ts +0 -23
- package/core/integrations/jira/service.ts +0 -244
- package/core/integrations/linear/cache.ts +0 -68
- package/core/integrations/linear/client.ts +0 -436
- package/core/integrations/linear/index.ts +0 -20
- package/core/integrations/linear/service.ts +0 -260
- package/core/integrations/linear/sync.ts +0 -314
- package/core/outcomes/analyzer.ts +0 -286
- package/core/outcomes/index.ts +0 -34
- package/core/outcomes/recorder.ts +0 -195
- package/core/plugin/builtin/webhook.ts +0 -148
- package/core/plugin/hooks.ts +0 -315
- package/core/plugin/index.ts +0 -50
- package/core/plugin/loader.ts +0 -354
- package/core/plugin/registry.ts +0 -326
- package/core/schemas/agents.ts +0 -27
- package/core/schemas/analysis.ts +0 -530
- package/core/schemas/classification.ts +0 -91
- package/core/schemas/command-context.ts +0 -29
- package/core/schemas/enriched-task.ts +0 -291
- package/core/schemas/ideas.ts +0 -114
- package/core/schemas/index.ts +0 -53
- package/core/schemas/issues.ts +0 -159
- package/core/schemas/llm-output.ts +0 -170
- package/core/schemas/metrics.ts +0 -143
- package/core/schemas/model.ts +0 -153
- package/core/schemas/outcomes.ts +0 -487
- package/core/schemas/performance.ts +0 -128
- package/core/schemas/permissions.ts +0 -180
- package/core/schemas/prd.ts +0 -450
- package/core/schemas/project.ts +0 -57
- package/core/schemas/roadmap.ts +0 -322
- package/core/schemas/schemas.ts +0 -38
- package/core/schemas/shipped.ts +0 -109
- package/core/schemas/state.ts +0 -284
- package/core/schemas/velocity.ts +0 -103
- package/core/server/index.ts +0 -21
- package/core/server/routes-extended.ts +0 -566
- package/core/server/routes.ts +0 -176
- package/core/server/server.ts +0 -149
- package/core/server/sse.ts +0 -192
- package/core/services/agent-generator.ts +0 -385
- package/core/services/agent-service.ts +0 -168
- package/core/services/breakdown-service.ts +0 -124
- package/core/services/context-generator.ts +0 -445
- package/core/services/context-selector.ts +0 -429
- package/core/services/dependency-validator.ts +0 -318
- package/core/services/diff-generator.ts +0 -313
- package/core/services/doctor-service.ts +0 -423
- package/core/services/file-categorizer.ts +0 -448
- package/core/services/file-scorer.ts +0 -270
- package/core/services/git-analyzer.ts +0 -293
- package/core/services/hierarchical-agent-resolver.ts +0 -236
- package/core/services/hooks-service.ts +0 -685
- package/core/services/index.ts +0 -46
- package/core/services/local-state-generator.ts +0 -158
- package/core/services/memory-service.ts +0 -181
- package/core/services/nested-context-resolver.ts +0 -842
- package/core/services/project-index.ts +0 -911
- package/core/services/project-service.ts +0 -155
- package/core/services/session-tracker.ts +0 -287
- package/core/services/skill-installer.ts +0 -447
- package/core/services/skill-lock.ts +0 -132
- package/core/services/skill-service.ts +0 -306
- package/core/services/stack-detector.ts +0 -229
- package/core/services/staleness-checker.ts +0 -327
- package/core/services/sync-service.ts +0 -1515
- package/core/services/sync-verifier.ts +0 -253
- package/core/services/watch-service.ts +0 -312
- package/core/session/compaction.ts +0 -248
- package/core/session/index.ts +0 -35
- package/core/session/log-migration.ts +0 -88
- package/core/session/metrics.ts +0 -323
- package/core/session/session-log-manager.ts +0 -307
- package/core/session/task-session-manager.ts +0 -404
- package/core/session/utils.ts +0 -51
- package/core/storage/analysis-storage.ts +0 -373
- package/core/storage/archive-storage.ts +0 -205
- package/core/storage/database.ts +0 -575
- package/core/storage/ideas-storage.ts +0 -298
- package/core/storage/index-storage.ts +0 -523
- package/core/storage/index.ts +0 -79
- package/core/storage/metrics-storage.ts +0 -321
- package/core/storage/migrate-json.ts +0 -720
- package/core/storage/queue-storage.ts +0 -336
- package/core/storage/safe-reader.ts +0 -105
- package/core/storage/shipped-storage.ts +0 -253
- package/core/storage/state-storage.ts +0 -1035
- package/core/storage/storage-manager.ts +0 -205
- package/core/storage/storage.ts +0 -177
- package/core/storage/velocity-storage.ts +0 -149
- package/core/sync/auth-config.ts +0 -138
- package/core/sync/index.ts +0 -31
- package/core/sync/oauth-handler.ts +0 -143
- package/core/sync/sync-client.ts +0 -251
- package/core/sync/sync-manager.ts +0 -327
- package/core/tsconfig.json +0 -22
- package/core/types/agentic.ts +0 -760
- package/core/types/agents.ts +0 -150
- package/core/types/bus.ts +0 -193
- package/core/types/citations.ts +0 -22
- package/core/types/commands.ts +0 -399
- package/core/types/config.ts +0 -92
- package/core/types/core.ts +0 -96
- package/core/types/diff.ts +0 -41
- package/core/types/domain.ts +0 -71
- package/core/types/errors.ts +0 -111
- package/core/types/events.ts +0 -42
- package/core/types/fs.ts +0 -72
- package/core/types/index.ts +0 -510
- package/core/types/infrastructure.ts +0 -210
- package/core/types/integrations.ts +0 -31
- package/core/types/jira.ts +0 -51
- package/core/types/logger.ts +0 -17
- package/core/types/memory.ts +0 -313
- package/core/types/outcomes.ts +0 -190
- package/core/types/output.ts +0 -47
- package/core/types/plugin.ts +0 -25
- package/core/types/project-sync.ts +0 -129
- package/core/types/provider.ts +0 -163
- package/core/types/server.ts +0 -71
- package/core/types/services.ts +0 -84
- package/core/types/session.ts +0 -135
- package/core/types/stack.ts +0 -19
- package/core/types/storage.ts +0 -318
- package/core/types/sync-verifier.ts +0 -33
- package/core/types/sync.ts +0 -121
- package/core/types/task.ts +0 -72
- package/core/types/template.ts +0 -24
- package/core/types/utils.ts +0 -92
- package/core/types/workflow.ts +0 -23
- package/core/utils/agent-stream.ts +0 -140
- package/core/utils/animations.ts +0 -251
- package/core/utils/branding.ts +0 -88
- package/core/utils/cache.ts +0 -187
- package/core/utils/citations.ts +0 -39
- package/core/utils/collection-filters.ts +0 -209
- package/core/utils/date-helper.ts +0 -176
- package/core/utils/error-messages.ts +0 -38
- package/core/utils/file-helper.ts +0 -277
- package/core/utils/fs-helpers.ts +0 -14
- package/core/utils/help.ts +0 -314
- package/core/utils/jsonl-helper.ts +0 -290
- package/core/utils/keychain.ts +0 -127
- package/core/utils/logger.ts +0 -77
- package/core/utils/markdown-builder.ts +0 -280
- package/core/utils/next-steps.ts +0 -95
- package/core/utils/output.ts +0 -403
- package/core/utils/preserve-sections.ts +0 -218
- package/core/utils/project-commands.ts +0 -126
- package/core/utils/project-credentials.ts +0 -143
- package/core/utils/provider-cache.ts +0 -49
- package/core/utils/retry.ts +0 -318
- package/core/utils/runtime.ts +0 -108
- package/core/utils/session-helper.ts +0 -278
- package/core/utils/subtask-table.ts +0 -227
- package/core/utils/version.ts +0 -128
- package/core/wizard/index.ts +0 -13
- package/core/wizard/onboarding.ts +0 -633
- package/core/workflow/index.ts +0 -7
- package/core/workflow/state-machine.ts +0 -198
- package/core/workflow/workflow-preferences.ts +0 -294
- package/dist/core/infrastructure/command-installer.js +0 -1141
- package/dist/core/infrastructure/editors-config.js +0 -177
- package/dist/core/infrastructure/setup.js +0 -2244
- package/dist/core/utils/version.js +0 -141
- package/templates/agentic/agent-routing.md +0 -45
- package/templates/agentic/agents/uxui.md +0 -63
- package/templates/agentic/checklist-routing.md +0 -98
- package/templates/agentic/orchestrator.md +0 -68
- package/templates/agentic/task-fragmentation.md +0 -89
- package/templates/agents/AGENTS.md +0 -68
- package/templates/analysis/analyze.md +0 -84
- package/templates/analysis/patterns.md +0 -60
- package/templates/antigravity/SKILL.md +0 -39
- package/templates/architect/discovery.md +0 -67
- package/templates/architect/phases.md +0 -59
- package/templates/checklists/architecture.md +0 -28
- package/templates/checklists/code-quality.md +0 -28
- package/templates/checklists/data.md +0 -33
- package/templates/checklists/documentation.md +0 -33
- package/templates/checklists/infrastructure.md +0 -33
- package/templates/checklists/performance.md +0 -33
- package/templates/checklists/security.md +0 -33
- package/templates/checklists/testing.md +0 -33
- package/templates/checklists/ux-ui.md +0 -37
- package/templates/commands/analyze.md +0 -56
- package/templates/commands/auth.md +0 -234
- package/templates/commands/bug.md +0 -163
- package/templates/commands/cleanup.md +0 -19
- package/templates/commands/dash.md +0 -99
- package/templates/commands/design.md +0 -15
- package/templates/commands/done.md +0 -291
- package/templates/commands/enrich.md +0 -174
- package/templates/commands/git.md +0 -295
- package/templates/commands/history.md +0 -389
- package/templates/commands/idea.md +0 -88
- package/templates/commands/impact.md +0 -864
- package/templates/commands/init.md +0 -54
- package/templates/commands/jira.md +0 -278
- package/templates/commands/linear.md +0 -288
- package/templates/commands/merge.md +0 -206
- package/templates/commands/next.md +0 -80
- package/templates/commands/p.md +0 -67
- package/templates/commands/p.toml +0 -37
- package/templates/commands/pause.md +0 -136
- package/templates/commands/plan.md +0 -696
- package/templates/commands/prd.md +0 -356
- package/templates/commands/resume.md +0 -171
- package/templates/commands/review.md +0 -276
- package/templates/commands/serve.md +0 -118
- package/templates/commands/setup.md +0 -91
- package/templates/commands/ship.md +0 -475
- package/templates/commands/skill.md +0 -259
- package/templates/commands/spec.md +0 -218
- package/templates/commands/status.md +0 -207
- package/templates/commands/sync.md +0 -104
- package/templates/commands/task.md +0 -312
- package/templates/commands/test.md +0 -93
- package/templates/commands/update.md +0 -63
- package/templates/commands/verify.md +0 -204
- package/templates/commands/workflow.md +0 -150
- package/templates/config/skill-mappings.json +0 -82
- package/templates/context/dashboard.md +0 -256
- package/templates/context/roadmap.md +0 -221
- package/templates/cursor/commands/bug.md +0 -8
- package/templates/cursor/commands/done.md +0 -4
- package/templates/cursor/commands/pause.md +0 -6
- package/templates/cursor/commands/resume.md +0 -4
- package/templates/cursor/commands/ship.md +0 -8
- package/templates/cursor/commands/sync.md +0 -4
- package/templates/cursor/commands/task.md +0 -8
- package/templates/cursor/p.md +0 -29
- package/templates/cursor/router.mdc +0 -28
- package/templates/design/api.md +0 -95
- package/templates/design/architecture.md +0 -77
- package/templates/design/component.md +0 -89
- package/templates/design/database.md +0 -78
- package/templates/design/flow.md +0 -94
- package/templates/global/ANTIGRAVITY.md +0 -254
- package/templates/global/CLAUDE.md +0 -497
- package/templates/global/CURSOR.mdc +0 -266
- package/templates/global/GEMINI.md +0 -293
- package/templates/global/STORAGE-SPEC.md +0 -391
- package/templates/global/WINDSURF.md +0 -266
- package/templates/global/modules/CLAUDE-commands.md +0 -70
- package/templates/global/modules/CLAUDE-core.md +0 -105
- package/templates/global/modules/CLAUDE-git.md +0 -50
- package/templates/global/modules/CLAUDE-intelligence.md +0 -92
- package/templates/global/modules/CLAUDE-storage.md +0 -50
- package/templates/global/modules/module-config.json +0 -36
- package/templates/mcp-config.json +0 -19
- package/templates/permissions/default.jsonc +0 -60
- package/templates/permissions/permissive.jsonc +0 -49
- package/templates/permissions/strict.jsonc +0 -58
- package/templates/planning-methodology.md +0 -195
- package/templates/skills/code-review.md +0 -47
- package/templates/skills/debug.md +0 -61
- package/templates/skills/refactor.md +0 -47
- package/templates/subagents/agent-base.md +0 -20
- package/templates/subagents/domain/backend.md +0 -109
- package/templates/subagents/domain/database.md +0 -121
- package/templates/subagents/domain/devops.md +0 -152
- package/templates/subagents/domain/frontend.md +0 -103
- package/templates/subagents/domain/testing.md +0 -169
- package/templates/subagents/pm-expert.md +0 -366
- package/templates/subagents/workflow/chief-architect.md +0 -657
- package/templates/subagents/workflow/prjct-planner.md +0 -159
- package/templates/subagents/workflow/prjct-shipper.md +0 -188
- package/templates/subagents/workflow/prjct-workflow.md +0 -98
- package/templates/tools/bash.txt +0 -22
- package/templates/tools/edit.txt +0 -18
- package/templates/tools/glob.txt +0 -19
- package/templates/tools/grep.txt +0 -21
- package/templates/tools/read.txt +0 -14
- package/templates/tools/task.txt +0 -20
- package/templates/tools/webfetch.txt +0 -16
- package/templates/tools/websearch.txt +0 -18
- package/templates/tools/write.txt +0 -17
- package/templates/windsurf/router.md +0 -28
- package/templates/windsurf/workflows/bug.md +0 -8
- package/templates/windsurf/workflows/done.md +0 -4
- package/templates/windsurf/workflows/pause.md +0 -4
- package/templates/windsurf/workflows/resume.md +0 -4
- package/templates/windsurf/workflows/ship.md +0 -8
- package/templates/windsurf/workflows/sync.md +0 -4
- package/templates/windsurf/workflows/task.md +0 -8
|
@@ -1,206 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
allowed-tools: [Bash, Read, Write, AskUserQuestion]
|
|
3
|
-
---
|
|
4
|
-
|
|
5
|
-
# p. merge
|
|
6
|
-
|
|
7
|
-
## ⛔ MANDATORY WORKFLOW - DO NOT SKIP ANY STEP
|
|
8
|
-
|
|
9
|
-
---
|
|
10
|
-
|
|
11
|
-
### STEP 1: Pre-flight Checks (BLOCKING)
|
|
12
|
-
|
|
13
|
-
```bash
|
|
14
|
-
# 1a. Check if there's an active task with a PR
|
|
15
|
-
```
|
|
16
|
-
|
|
17
|
-
**⛔ IF no `currentTask`:**
|
|
18
|
-
```
|
|
19
|
-
STOP. DO NOT PROCEED.
|
|
20
|
-
Tell user: "No active task. Use p. task first."
|
|
21
|
-
ABORT.
|
|
22
|
-
```
|
|
23
|
-
|
|
24
|
-
**⛔ IF no PR number in task state:**
|
|
25
|
-
```
|
|
26
|
-
STOP. DO NOT PROCEED.
|
|
27
|
-
Tell user: "No PR found. Run p. ship first to create a PR."
|
|
28
|
-
ABORT.
|
|
29
|
-
```
|
|
30
|
-
|
|
31
|
-
---
|
|
32
|
-
|
|
33
|
-
### STEP 2: Check PR Status (BLOCKING)
|
|
34
|
-
|
|
35
|
-
```bash
|
|
36
|
-
gh pr view {prNumber} --json reviewDecision,mergeable,state,statusCheckRollup
|
|
37
|
-
```
|
|
38
|
-
|
|
39
|
-
**⛔ IF PR is not approved:**
|
|
40
|
-
```
|
|
41
|
-
STOP. DO NOT PROCEED.
|
|
42
|
-
Tell user: "PR needs approval. Get reviews first."
|
|
43
|
-
Show: gh pr view {prNumber} --web
|
|
44
|
-
ABORT.
|
|
45
|
-
```
|
|
46
|
-
|
|
47
|
-
**⛔ IF PR has merge conflicts:**
|
|
48
|
-
```
|
|
49
|
-
STOP. DO NOT PROCEED.
|
|
50
|
-
Tell user: "PR has conflicts. Resolve them first:
|
|
51
|
-
git checkout {branch}
|
|
52
|
-
git pull origin main
|
|
53
|
-
# fix conflicts
|
|
54
|
-
git push"
|
|
55
|
-
ABORT.
|
|
56
|
-
```
|
|
57
|
-
|
|
58
|
-
**⛔ IF CI checks are failing:**
|
|
59
|
-
```
|
|
60
|
-
STOP. DO NOT PROCEED.
|
|
61
|
-
Tell user: "CI checks are failing. Fix them first."
|
|
62
|
-
Show failing checks.
|
|
63
|
-
ABORT.
|
|
64
|
-
```
|
|
65
|
-
|
|
66
|
-
---
|
|
67
|
-
|
|
68
|
-
### STEP 3: Show Plan and Get Approval (BLOCKING)
|
|
69
|
-
|
|
70
|
-
Show the user:
|
|
71
|
-
```
|
|
72
|
-
## Merge Plan
|
|
73
|
-
|
|
74
|
-
PR: #{prNumber} - {title}
|
|
75
|
-
Branch: {branch} → main
|
|
76
|
-
Strategy: squash
|
|
77
|
-
|
|
78
|
-
Will do:
|
|
79
|
-
1. Merge PR with squash
|
|
80
|
-
2. Delete feature branch
|
|
81
|
-
3. Update local main
|
|
82
|
-
```
|
|
83
|
-
|
|
84
|
-
Then ask for confirmation:
|
|
85
|
-
|
|
86
|
-
```
|
|
87
|
-
AskUserQuestion:
|
|
88
|
-
question: "Merge this PR?"
|
|
89
|
-
header: "Merge"
|
|
90
|
-
options:
|
|
91
|
-
- label: "Yes, merge (Recommended)"
|
|
92
|
-
description: "Squash merge and delete branch"
|
|
93
|
-
- label: "No, cancel"
|
|
94
|
-
description: "Keep PR open"
|
|
95
|
-
```
|
|
96
|
-
|
|
97
|
-
**Handle responses:**
|
|
98
|
-
|
|
99
|
-
**If "No, cancel":**
|
|
100
|
-
```
|
|
101
|
-
OUTPUT: "✅ Merge cancelled"
|
|
102
|
-
STOP - Do not continue
|
|
103
|
-
```
|
|
104
|
-
|
|
105
|
-
**If "Yes, merge":**
|
|
106
|
-
CONTINUE to Step 4
|
|
107
|
-
|
|
108
|
-
---
|
|
109
|
-
|
|
110
|
-
### STEP 4: Execute Merge
|
|
111
|
-
|
|
112
|
-
```bash
|
|
113
|
-
gh pr merge {prNumber} --squash --delete-branch
|
|
114
|
-
```
|
|
115
|
-
|
|
116
|
-
---
|
|
117
|
-
|
|
118
|
-
### STEP 5: Update Local
|
|
119
|
-
|
|
120
|
-
```bash
|
|
121
|
-
git checkout main
|
|
122
|
-
git pull origin main
|
|
123
|
-
```
|
|
124
|
-
|
|
125
|
-
---
|
|
126
|
-
|
|
127
|
-
### STEP 6: Update Task State
|
|
128
|
-
|
|
129
|
-
- Set `currentTask.status = "merged"`
|
|
130
|
-
- Set `currentTask.mergedAt = {now}`
|
|
131
|
-
- Clear PR reference
|
|
132
|
-
|
|
133
|
-
---
|
|
134
|
-
|
|
135
|
-
### STEP 7: Update Issue Tracker (REQUIRED - DO NOT SKIP)
|
|
136
|
-
|
|
137
|
-
**⛔ This step is MANDATORY if there's a linked issue.**
|
|
138
|
-
|
|
139
|
-
```
|
|
140
|
-
READ: {globalPath}/storage/state.json
|
|
141
|
-
GET: currentTask.linearId, currentTask.jiraId
|
|
142
|
-
```
|
|
143
|
-
|
|
144
|
-
**IF linearId exists:**
|
|
145
|
-
```bash
|
|
146
|
-
# USE prjct CLI DIRECTLY - NOT $PRJCT_CLI (may be unset)
|
|
147
|
-
prjct linear done "{linearId}"
|
|
148
|
-
prjct linear comment "{linearId}" "✅ PR #{prNumber} merged and released"
|
|
149
|
-
```
|
|
150
|
-
OUTPUT: "Linear: {linearId} → Done ✓"
|
|
151
|
-
|
|
152
|
-
**ELSE IF jiraId exists:**
|
|
153
|
-
```bash
|
|
154
|
-
prjct jira transition "{jiraId}" "Done"
|
|
155
|
-
prjct jira comment "{jiraId}" "✅ PR #{prNumber} merged and released"
|
|
156
|
-
```
|
|
157
|
-
OUTPUT: "JIRA: {jiraId} → Done ✓"
|
|
158
|
-
|
|
159
|
-
**ELSE (no issue tracker):**
|
|
160
|
-
```
|
|
161
|
-
# No issue tracker linked - that's OK, just skip this step
|
|
162
|
-
OUTPUT: "✓ No issue tracker linked"
|
|
163
|
-
```
|
|
164
|
-
|
|
165
|
-
---
|
|
166
|
-
|
|
167
|
-
### STEP 8: Complete Task State
|
|
168
|
-
|
|
169
|
-
```
|
|
170
|
-
UPDATE: {globalPath}/storage/state.json
|
|
171
|
-
|
|
172
|
-
SET: previousTask = currentTask
|
|
173
|
-
SET: previousTask.status = "completed"
|
|
174
|
-
SET: previousTask.completedAt = {timestamp}
|
|
175
|
-
SET: currentTask = null
|
|
176
|
-
```
|
|
177
|
-
|
|
178
|
-
APPEND to `{globalPath}/memory/events.jsonl`:
|
|
179
|
-
```json
|
|
180
|
-
{"type":"task_completed","taskId":"{id}","linearId":"{linearId}","prNumber":"{prNumber}","timestamp":"{timestamp}"}
|
|
181
|
-
```
|
|
182
|
-
|
|
183
|
-
---
|
|
184
|
-
|
|
185
|
-
## Output Format
|
|
186
|
-
|
|
187
|
-
```
|
|
188
|
-
✅ Merged: {title}
|
|
189
|
-
|
|
190
|
-
PR: #{prNumber}
|
|
191
|
-
Strategy: squash
|
|
192
|
-
Branch: {branch} (deleted)
|
|
193
|
-
|
|
194
|
-
Next:
|
|
195
|
-
- New task → `p. task "description"`
|
|
196
|
-
- See backlog → `p. next`
|
|
197
|
-
```
|
|
198
|
-
|
|
199
|
-
---
|
|
200
|
-
|
|
201
|
-
## ⛔ VIOLATIONS
|
|
202
|
-
|
|
203
|
-
- ❌ Merging without PR approval
|
|
204
|
-
- ❌ Merging with failing CI
|
|
205
|
-
- ❌ Merging with conflicts
|
|
206
|
-
- ❌ Not waiting for user approval
|
|
@@ -1,80 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
allowed-tools: [Read]
|
|
3
|
-
---
|
|
4
|
-
|
|
5
|
-
# p. next
|
|
6
|
-
|
|
7
|
-
## Step 1: Resolve Project Paths
|
|
8
|
-
|
|
9
|
-
```bash
|
|
10
|
-
# Get projectId from local config
|
|
11
|
-
cat .prjct/prjct.config.json | grep -o '"projectId"[[:space:]]*:[[:space:]]*"[^"]*"' | cut -d'"' -f4
|
|
12
|
-
```
|
|
13
|
-
|
|
14
|
-
Set `globalPath = ~/.prjct-cli/projects/{projectId}`
|
|
15
|
-
|
|
16
|
-
## Step 2: Read State
|
|
17
|
-
|
|
18
|
-
READ `{globalPath}/storage/queue.json` (or empty array if doesn't exist)
|
|
19
|
-
READ `{globalPath}/storage/state.json`
|
|
20
|
-
|
|
21
|
-
## Step 3: Show Active Task Warning
|
|
22
|
-
|
|
23
|
-
```
|
|
24
|
-
IF state.currentTask exists AND currentTask.status == "active":
|
|
25
|
-
OUTPUT:
|
|
26
|
-
"""
|
|
27
|
-
⚠️ Active task: {currentTask.description}
|
|
28
|
-
|
|
29
|
-
Consider: `p. done` or `p. pause` before starting new work
|
|
30
|
-
"""
|
|
31
|
-
```
|
|
32
|
-
|
|
33
|
-
## Step 4: Display Queue
|
|
34
|
-
|
|
35
|
-
**Output (queue has items)**:
|
|
36
|
-
```
|
|
37
|
-
📋 Queue ({count})
|
|
38
|
-
|
|
39
|
-
1. {task_1.description} [{task_1.type}] {priority badge if high/critical}
|
|
40
|
-
2. {task_2.description} [{task_2.type}]
|
|
41
|
-
3. {task_3.description} [{task_3.type}]
|
|
42
|
-
...
|
|
43
|
-
|
|
44
|
-
Next:
|
|
45
|
-
- Start task → `p. task "{task_1.description}"`
|
|
46
|
-
- Add task → `p. task "description"`
|
|
47
|
-
- Report bug → `p. bug "description"`
|
|
48
|
-
```
|
|
49
|
-
|
|
50
|
-
**Output (empty queue)**:
|
|
51
|
-
```
|
|
52
|
-
📋 Queue is empty
|
|
53
|
-
|
|
54
|
-
Next:
|
|
55
|
-
- Add task → `p. task "description"`
|
|
56
|
-
- Report bug → `p. bug "description"`
|
|
57
|
-
- Capture idea → `p. idea "note"`
|
|
58
|
-
```
|
|
59
|
-
|
|
60
|
-
## Step 5: Roadmap View (if `p. next roadmap`)
|
|
61
|
-
|
|
62
|
-
IF arguments include "roadmap":
|
|
63
|
-
|
|
64
|
-
Group tasks by feature/epic and show completion percentage:
|
|
65
|
-
|
|
66
|
-
```
|
|
67
|
-
📊 Roadmap
|
|
68
|
-
|
|
69
|
-
Feature A (75% complete)
|
|
70
|
-
├─ ✅ Task 1
|
|
71
|
-
├─ ✅ Task 2
|
|
72
|
-
├─ ✅ Task 3
|
|
73
|
-
└─ ⬜ Task 4
|
|
74
|
-
|
|
75
|
-
Feature B (0% complete)
|
|
76
|
-
├─ ⬜ Task 5
|
|
77
|
-
└─ ⬜ Task 6
|
|
78
|
-
|
|
79
|
-
Next: `p. task` to continue work
|
|
80
|
-
```
|
package/templates/commands/p.md
DELETED
|
@@ -1,67 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
description: 'prjct CLI - Context layer for AI agents'
|
|
3
|
-
allowed-tools: [Read, Write, Edit, Bash, Glob, Grep, Task, AskUserQuestion, TodoWrite, WebFetch]
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# prjct Command Router
|
|
7
|
-
|
|
8
|
-
**ARGUMENTS**: $ARGUMENTS
|
|
9
|
-
|
|
10
|
-
All commands use the `p.` prefix.
|
|
11
|
-
|
|
12
|
-
## Quick Reference
|
|
13
|
-
|
|
14
|
-
| Command | Description |
|
|
15
|
-
|---------|-------------|
|
|
16
|
-
| `p. task <desc>` | Start a task |
|
|
17
|
-
| `p. done` | Complete current subtask |
|
|
18
|
-
| `p. ship [name]` | Ship feature with PR + version bump |
|
|
19
|
-
| `p. sync` | Analyze project, regenerate agents |
|
|
20
|
-
| `p. pause` | Pause current task |
|
|
21
|
-
| `p. resume` | Resume paused task |
|
|
22
|
-
| `p. next` | Show priority queue |
|
|
23
|
-
| `p. idea <desc>` | Quick idea capture |
|
|
24
|
-
| `p. bug <desc>` | Report bug with auto-priority |
|
|
25
|
-
| `p. linear` | Linear integration (via SDK) |
|
|
26
|
-
| `p. jira` | JIRA integration (via REST API) |
|
|
27
|
-
|
|
28
|
-
## Execution
|
|
29
|
-
|
|
30
|
-
```
|
|
31
|
-
1. PARSE: $ARGUMENTS → extract command (first word)
|
|
32
|
-
2. GET npm root: npm root -g
|
|
33
|
-
3. LOAD template: {npmRoot}/prjct-cli/templates/commands/{command}.md
|
|
34
|
-
4. EXECUTE template
|
|
35
|
-
```
|
|
36
|
-
|
|
37
|
-
## Command Aliases
|
|
38
|
-
|
|
39
|
-
| Input | Redirects To |
|
|
40
|
-
|-------|--------------|
|
|
41
|
-
| `p. undo` | `p. history undo` |
|
|
42
|
-
| `p. redo` | `p. history redo` |
|
|
43
|
-
|
|
44
|
-
## State Context
|
|
45
|
-
|
|
46
|
-
Before executing commands, load state:
|
|
47
|
-
|
|
48
|
-
```
|
|
49
|
-
READ: .prjct/prjct.config.json → get projectId
|
|
50
|
-
SET: globalPath = ~/.prjct-cli/projects/{projectId}
|
|
51
|
-
READ: {globalPath}/storage/state.json (if exists)
|
|
52
|
-
```
|
|
53
|
-
|
|
54
|
-
## Error Handling
|
|
55
|
-
|
|
56
|
-
| Error | Action |
|
|
57
|
-
|-------|--------|
|
|
58
|
-
| Unknown command | "Unknown command: {command}. Run `p. help` for available commands." |
|
|
59
|
-
| No project | "No prjct project. Run `p. init` first." |
|
|
60
|
-
| Template not found | "Template not found: {command}.md" |
|
|
61
|
-
|
|
62
|
-
## NOW: Execute
|
|
63
|
-
|
|
64
|
-
1. Parse command from $ARGUMENTS
|
|
65
|
-
2. Handle aliases (undo → history undo, redo → history redo)
|
|
66
|
-
3. Run `npm root -g` to get template path
|
|
67
|
-
4. Load and execute command template
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
# prjct Command Router for Gemini CLI
|
|
2
|
-
description = "prjct - Context layer for AI coding agents"
|
|
3
|
-
|
|
4
|
-
prompt = """
|
|
5
|
-
# prjct Command Router
|
|
6
|
-
|
|
7
|
-
You are using prjct, a context layer for AI coding agents.
|
|
8
|
-
|
|
9
|
-
**ARGUMENTS**: {{args}}
|
|
10
|
-
|
|
11
|
-
## Instructions
|
|
12
|
-
|
|
13
|
-
1. Parse arguments: first word = `command`, rest = `commandArgs`
|
|
14
|
-
2. Get npm global root by running: `npm root -g`
|
|
15
|
-
3. Read the command template from:
|
|
16
|
-
`{npmRoot}/prjct-cli/templates/commands/{command}.md`
|
|
17
|
-
4. Execute the template with `commandArgs` as input
|
|
18
|
-
|
|
19
|
-
## Example
|
|
20
|
-
|
|
21
|
-
If arguments = "task fix the login bug":
|
|
22
|
-
- command = "task"
|
|
23
|
-
- commandArgs = "fix the login bug"
|
|
24
|
-
- npm root -g → `/opt/homebrew/lib/node_modules`
|
|
25
|
-
- Read: `/opt/homebrew/lib/node_modules/prjct-cli/templates/commands/task.md`
|
|
26
|
-
- Execute template with: "fix the login bug"
|
|
27
|
-
|
|
28
|
-
## Available Commands
|
|
29
|
-
|
|
30
|
-
task, done, ship, sync, init, idea, dash, next, pause, resume, bug,
|
|
31
|
-
linear, feature, prd, plan, review, merge, git, test, cleanup,
|
|
32
|
-
design, analyze, history, enrich, update
|
|
33
|
-
|
|
34
|
-
## Action
|
|
35
|
-
|
|
36
|
-
NOW run `npm root -g` and read the appropriate command template.
|
|
37
|
-
"""
|
|
@@ -1,136 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
allowed-tools: [Read, Write, Bash, AskUserQuestion]
|
|
3
|
-
---
|
|
4
|
-
|
|
5
|
-
# p. pause "$ARGUMENTS"
|
|
6
|
-
|
|
7
|
-
## Step 1: Resolve Project Paths
|
|
8
|
-
|
|
9
|
-
```bash
|
|
10
|
-
# Get projectId from local config
|
|
11
|
-
cat .prjct/prjct.config.json | grep -o '"projectId"[[:space:]]*:[[:space:]]*"[^"]*"' | cut -d'"' -f4
|
|
12
|
-
```
|
|
13
|
-
|
|
14
|
-
Set `globalPath = ~/.prjct-cli/projects/{projectId}`
|
|
15
|
-
|
|
16
|
-
## Step 2: Read Current State
|
|
17
|
-
|
|
18
|
-
READ `{globalPath}/storage/state.json`
|
|
19
|
-
|
|
20
|
-
```
|
|
21
|
-
IF no currentTask OR currentTask is null:
|
|
22
|
-
OUTPUT: "No active task to pause."
|
|
23
|
-
STOP
|
|
24
|
-
|
|
25
|
-
IF currentTask.status == "paused":
|
|
26
|
-
OUTPUT:
|
|
27
|
-
"""
|
|
28
|
-
⏸️ Already paused: {currentTask.description}
|
|
29
|
-
|
|
30
|
-
To resume: `p. resume`
|
|
31
|
-
"""
|
|
32
|
-
STOP
|
|
33
|
-
```
|
|
34
|
-
|
|
35
|
-
## Step 3: Get Pause Reason
|
|
36
|
-
|
|
37
|
-
```
|
|
38
|
-
IF $ARGUMENTS is empty:
|
|
39
|
-
AskUserQuestion:
|
|
40
|
-
question: "Why are you pausing?"
|
|
41
|
-
header: "Pause"
|
|
42
|
-
options:
|
|
43
|
-
- label: "Blocked (waiting on external)"
|
|
44
|
-
description: "Waiting for review, dependency, or other team"
|
|
45
|
-
- label: "Switching task"
|
|
46
|
-
description: "Need to work on something else"
|
|
47
|
-
- label: "Taking a break"
|
|
48
|
-
description: "Stepping away temporarily"
|
|
49
|
-
- label: "Researching"
|
|
50
|
-
description: "Need to investigate before continuing"
|
|
51
|
-
|
|
52
|
-
SET pauseReason = selected option
|
|
53
|
-
|
|
54
|
-
IF pauseReason == "Blocked":
|
|
55
|
-
ASK: "What's blocking you?"
|
|
56
|
-
SET blockingReason = response
|
|
57
|
-
ELSE:
|
|
58
|
-
SET pauseReason = $ARGUMENTS
|
|
59
|
-
```
|
|
60
|
-
|
|
61
|
-
## Step 4: Calculate Duration
|
|
62
|
-
|
|
63
|
-
```bash
|
|
64
|
-
# Get current timestamp
|
|
65
|
-
node -e "console.log(new Date().toISOString())"
|
|
66
|
-
```
|
|
67
|
-
|
|
68
|
-
Calculate time elapsed since `currentTask.startedAt` (or `resumedAt` if it exists).
|
|
69
|
-
|
|
70
|
-
## Step 5: Update State
|
|
71
|
-
|
|
72
|
-
READ current state, then update:
|
|
73
|
-
|
|
74
|
-
```
|
|
75
|
-
pausedTask = currentTask
|
|
76
|
-
pausedTask.status = "paused"
|
|
77
|
-
pausedTask.pausedAt = "{timestamp}"
|
|
78
|
-
pausedTask.pauseReason = "{pauseReason}"
|
|
79
|
-
pausedTask.blockingReason = "{blockingReason if set}"
|
|
80
|
-
pausedTask.activeTime = "{duration worked so far}"
|
|
81
|
-
|
|
82
|
-
state.pausedTasks = state.pausedTasks || []
|
|
83
|
-
state.pausedTasks.unshift(pausedTask) # Add to front
|
|
84
|
-
state.currentTask = null
|
|
85
|
-
```
|
|
86
|
-
|
|
87
|
-
WRITE `{globalPath}/storage/state.json`:
|
|
88
|
-
```json
|
|
89
|
-
{
|
|
90
|
-
"currentTask": null,
|
|
91
|
-
"pausedTasks": [
|
|
92
|
-
{
|
|
93
|
-
"id": "{task.id}",
|
|
94
|
-
"description": "{task.description}",
|
|
95
|
-
"type": "{task.type}",
|
|
96
|
-
"status": "paused",
|
|
97
|
-
"startedAt": "{task.startedAt}",
|
|
98
|
-
"pausedAt": "{timestamp}",
|
|
99
|
-
"pauseReason": "{pauseReason}",
|
|
100
|
-
"blockingReason": "{blockingReason or null}",
|
|
101
|
-
"activeTime": "{duration}",
|
|
102
|
-
"subtasks": [...],
|
|
103
|
-
"currentSubtaskIndex": {task.currentSubtaskIndex},
|
|
104
|
-
"parentDescription": "{task.parentDescription}",
|
|
105
|
-
"branch": "{task.branch}",
|
|
106
|
-
"linearId": "{task.linearId or null}"
|
|
107
|
-
},
|
|
108
|
-
...existing paused tasks
|
|
109
|
-
],
|
|
110
|
-
"previousTask": {...}
|
|
111
|
-
}
|
|
112
|
-
```
|
|
113
|
-
|
|
114
|
-
## Step 6: Log Event
|
|
115
|
-
|
|
116
|
-
APPEND to `{globalPath}/memory/events.jsonl`:
|
|
117
|
-
```json
|
|
118
|
-
{"type":"task_paused","taskId":"{id}","description":"{description}","reason":"{pauseReason}","timestamp":"{timestamp}","activeTime":"{duration}"}
|
|
119
|
-
```
|
|
120
|
-
|
|
121
|
-
---
|
|
122
|
-
|
|
123
|
-
## Output
|
|
124
|
-
|
|
125
|
-
```
|
|
126
|
-
⏸️ Paused: {task description}
|
|
127
|
-
|
|
128
|
-
Duration: {time worked}
|
|
129
|
-
Reason: {pauseReason}
|
|
130
|
-
{IF blockingReason: "Blocked by: {blockingReason}"}
|
|
131
|
-
|
|
132
|
-
Next:
|
|
133
|
-
- Resume → `p. resume`
|
|
134
|
-
- New task → `p. task "description"`
|
|
135
|
-
- Fix bug → `p. bug "description"`
|
|
136
|
-
```
|