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,475 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
allowed-tools: [Read, Write, Bash, AskUserQuestion]
|
|
3
|
-
---
|
|
4
|
-
|
|
5
|
-
# p. ship "$ARGUMENTS"
|
|
6
|
-
|
|
7
|
-
## ⛔ MANDATORY WORKFLOW - DO NOT SKIP ANY STEP
|
|
8
|
-
|
|
9
|
-
**CRITICAL: Execute steps IN ORDER. Each step MUST complete before proceeding.**
|
|
10
|
-
|
|
11
|
-
---
|
|
12
|
-
|
|
13
|
-
### STEP 0: Resolve Project Context
|
|
14
|
-
|
|
15
|
-
```bash
|
|
16
|
-
# Get projectId from local config
|
|
17
|
-
cat .prjct/prjct.config.json 2>/dev/null | grep -o '"projectId"[[:space:]]*:[[:space:]]*"[^"]*"' | cut -d'"' -f4
|
|
18
|
-
```
|
|
19
|
-
|
|
20
|
-
Set `globalPath = ~/.prjct-cli/projects/{projectId}`
|
|
21
|
-
|
|
22
|
-
READ: `{globalPath}/storage/state.json` to get:
|
|
23
|
-
- `previousTask.linearId` or `currentTask.linearId`
|
|
24
|
-
- Task description
|
|
25
|
-
|
|
26
|
-
**⚠️ SAVE the linearId/jiraId NOW - you will need it at the end.**
|
|
27
|
-
|
|
28
|
-
---
|
|
29
|
-
|
|
30
|
-
### STEP 1: Pre-flight Checks
|
|
31
|
-
|
|
32
|
-
```bash
|
|
33
|
-
# 1a. Check current branch
|
|
34
|
-
BRANCH=$(git branch --show-current)
|
|
35
|
-
```
|
|
36
|
-
|
|
37
|
-
**IF branch is `main` or `master`:**
|
|
38
|
-
|
|
39
|
-
```bash
|
|
40
|
-
# Check if there's a recent merge (within last commit)
|
|
41
|
-
git log -1 --pretty=format:"%s" | head -1
|
|
42
|
-
```
|
|
43
|
-
|
|
44
|
-
**IF last commit is a merge/squash from a PR:**
|
|
45
|
-
```
|
|
46
|
-
# ═══════════════════════════════════════════════════════════════
|
|
47
|
-
# POST-MERGE FLOW - ISSUE TRACKER UPDATE IS MANDATORY
|
|
48
|
-
# ═══════════════════════════════════════════════════════════════
|
|
49
|
-
|
|
50
|
-
OUTPUT: "Detected: Already on main after merge."
|
|
51
|
-
|
|
52
|
-
# ⛔ IMMEDIATELY update issue tracker - DO NOT SKIP
|
|
53
|
-
GOTO: **POST-MERGE FINALIZE** section at the bottom of this file
|
|
54
|
-
```
|
|
55
|
-
|
|
56
|
-
**IF no recent merge (user is trying to ship from main):**
|
|
57
|
-
```
|
|
58
|
-
⛔ STOP. DO NOT PROCEED.
|
|
59
|
-
Tell user: "Cannot ship from main branch. Create a feature branch first: git checkout -b feature/your-feature"
|
|
60
|
-
ABORT the ship command entirely.
|
|
61
|
-
```
|
|
62
|
-
|
|
63
|
-
```bash
|
|
64
|
-
# 1b. Check GitHub auth
|
|
65
|
-
gh auth status
|
|
66
|
-
```
|
|
67
|
-
|
|
68
|
-
**⛔ IF not authenticated:**
|
|
69
|
-
```
|
|
70
|
-
STOP. DO NOT PROCEED.
|
|
71
|
-
Tell user: "GitHub CLI not authenticated. Run: gh auth login"
|
|
72
|
-
ABORT the ship command entirely.
|
|
73
|
-
```
|
|
74
|
-
|
|
75
|
-
```bash
|
|
76
|
-
# 1c. Check for changes (only if on feature branch)
|
|
77
|
-
git status --porcelain
|
|
78
|
-
git diff --stat HEAD~1..HEAD 2>/dev/null || git diff --stat
|
|
79
|
-
```
|
|
80
|
-
|
|
81
|
-
**⛔ IF no changes AND on feature branch:**
|
|
82
|
-
```
|
|
83
|
-
STOP. DO NOT PROCEED.
|
|
84
|
-
Tell user: "No changes to ship."
|
|
85
|
-
ABORT the ship command entirely.
|
|
86
|
-
```
|
|
87
|
-
|
|
88
|
-
---
|
|
89
|
-
|
|
90
|
-
### STEP 2: Gather Ship Documentation (MANDATORY)
|
|
91
|
-
|
|
92
|
-
**⛔ This step is NON-NEGOTIABLE. Every ship MUST have documentation.**
|
|
93
|
-
|
|
94
|
-
```
|
|
95
|
-
AskUserQuestion:
|
|
96
|
-
question: "Describe what was implemented in this feature"
|
|
97
|
-
header: "Implementation"
|
|
98
|
-
options:
|
|
99
|
-
- label: "Provide description"
|
|
100
|
-
description: "Describe the implementation details"
|
|
101
|
-
```
|
|
102
|
-
|
|
103
|
-
SAVE the implementation description.
|
|
104
|
-
|
|
105
|
-
```
|
|
106
|
-
AskUserQuestion:
|
|
107
|
-
question: "What did you learn while implementing this?"
|
|
108
|
-
header: "Learnings"
|
|
109
|
-
options:
|
|
110
|
-
- label: "Add learnings"
|
|
111
|
-
description: "Patterns discovered, gotchas, insights"
|
|
112
|
-
- label: "No specific learnings"
|
|
113
|
-
description: "Skip this section"
|
|
114
|
-
```
|
|
115
|
-
|
|
116
|
-
SAVE the learnings (if any).
|
|
117
|
-
|
|
118
|
-
---
|
|
119
|
-
|
|
120
|
-
### STEP 3: Generate QA Test Plan (MANDATORY)
|
|
121
|
-
|
|
122
|
-
**⛔ Every ship MUST include test steps. NO EXCEPTIONS.**
|
|
123
|
-
|
|
124
|
-
Based on the changes, generate:
|
|
125
|
-
|
|
126
|
-
```markdown
|
|
127
|
-
## Test Plan
|
|
128
|
-
|
|
129
|
-
### For QA Team
|
|
130
|
-
1. [Specific step to test feature]
|
|
131
|
-
2. [Expected behavior]
|
|
132
|
-
3. [Edge cases to verify]
|
|
133
|
-
|
|
134
|
-
### For End Users
|
|
135
|
-
**What changed:** [User-facing description]
|
|
136
|
-
**How to use:** [Steps to use the new feature]
|
|
137
|
-
**Breaking changes:** [Any breaking changes, or "None"]
|
|
138
|
-
```
|
|
139
|
-
|
|
140
|
-
Show user the generated test plan and ask for approval:
|
|
141
|
-
|
|
142
|
-
```
|
|
143
|
-
AskUserQuestion:
|
|
144
|
-
question: "Is this test plan accurate?"
|
|
145
|
-
header: "Test Plan"
|
|
146
|
-
options:
|
|
147
|
-
- label: "Yes, looks good"
|
|
148
|
-
description: "Proceed with this test plan"
|
|
149
|
-
- label: "Modify test plan"
|
|
150
|
-
description: "Edit the test steps"
|
|
151
|
-
```
|
|
152
|
-
|
|
153
|
-
---
|
|
154
|
-
|
|
155
|
-
### STEP 4: Show Ship Plan and Get Approval (BLOCKING)
|
|
156
|
-
|
|
157
|
-
**⛔ DO NOT execute any commits/pushes until user explicitly approves.**
|
|
158
|
-
|
|
159
|
-
Show the user:
|
|
160
|
-
```
|
|
161
|
-
## Ship Plan
|
|
162
|
-
|
|
163
|
-
Branch: {branch}
|
|
164
|
-
Changes: {git diff --stat}
|
|
165
|
-
|
|
166
|
-
Documentation:
|
|
167
|
-
- Implementation: {summary}
|
|
168
|
-
- Learnings: {summary or "None"}
|
|
169
|
-
- Test Plan: {summary}
|
|
170
|
-
|
|
171
|
-
Will do:
|
|
172
|
-
1. Run tests (if configured)
|
|
173
|
-
2. Bump version (patch/minor/major)
|
|
174
|
-
3. Update CHANGELOG.md with full documentation
|
|
175
|
-
4. Commit with prjct footer
|
|
176
|
-
5. Push branch
|
|
177
|
-
6. Create PR to main with test plan
|
|
178
|
-
7. Update Linear/JIRA status to "In Review"
|
|
179
|
-
```
|
|
180
|
-
|
|
181
|
-
Then ask for confirmation:
|
|
182
|
-
|
|
183
|
-
```
|
|
184
|
-
AskUserQuestion:
|
|
185
|
-
question: "Ready to ship these changes?"
|
|
186
|
-
header: "Ship"
|
|
187
|
-
options:
|
|
188
|
-
- label: "Yes, ship it (Recommended)"
|
|
189
|
-
description: "Run tests, bump version, create PR"
|
|
190
|
-
- label: "No, cancel"
|
|
191
|
-
description: "Abort ship operation"
|
|
192
|
-
- label: "Show full diff"
|
|
193
|
-
description: "See all file changes before deciding"
|
|
194
|
-
```
|
|
195
|
-
|
|
196
|
-
**Handle responses:**
|
|
197
|
-
|
|
198
|
-
**If "Show full diff":**
|
|
199
|
-
- Run `git diff` to show full changes
|
|
200
|
-
- Ask again with Yes/No options only
|
|
201
|
-
|
|
202
|
-
**If "No, cancel":**
|
|
203
|
-
```
|
|
204
|
-
OUTPUT: "✅ Ship cancelled"
|
|
205
|
-
STOP - Do not continue
|
|
206
|
-
```
|
|
207
|
-
|
|
208
|
-
**If "Yes, ship it":**
|
|
209
|
-
CONTINUE to Step 5
|
|
210
|
-
|
|
211
|
-
---
|
|
212
|
-
|
|
213
|
-
### STEP 5: Quality Checks
|
|
214
|
-
|
|
215
|
-
```bash
|
|
216
|
-
# Run tests if package.json has test script
|
|
217
|
-
npm test 2>/dev/null || bun test 2>/dev/null || echo "No tests configured"
|
|
218
|
-
```
|
|
219
|
-
|
|
220
|
-
```bash
|
|
221
|
-
# Run lint if configured
|
|
222
|
-
npm run lint 2>/dev/null || npm run check 2>/dev/null || echo "No lint configured"
|
|
223
|
-
```
|
|
224
|
-
|
|
225
|
-
---
|
|
226
|
-
|
|
227
|
-
### STEP 6: Version Bump (REQUIRED)
|
|
228
|
-
|
|
229
|
-
Determine version bump type:
|
|
230
|
-
- `fix:` commits → **patch** (0.0.X)
|
|
231
|
-
- `feat:` commits → **minor** (0.X.0)
|
|
232
|
-
- `BREAKING:` in commits → **major** (X.0.0)
|
|
233
|
-
|
|
234
|
-
```bash
|
|
235
|
-
# Read current version
|
|
236
|
-
OLD_VERSION=$(node -p "require('./package.json').version")
|
|
237
|
-
|
|
238
|
-
# Calculate new version and update package.json
|
|
239
|
-
# Use npm version OR manual edit
|
|
240
|
-
```
|
|
241
|
-
|
|
242
|
-
---
|
|
243
|
-
|
|
244
|
-
### STEP 7: Update CHANGELOG.md (REQUIRED - FULL DOCUMENTATION)
|
|
245
|
-
|
|
246
|
-
Add entry at top of CHANGELOG.md with COMPLETE documentation:
|
|
247
|
-
|
|
248
|
-
```markdown
|
|
249
|
-
## [X.X.X] - YYYY-MM-DD
|
|
250
|
-
|
|
251
|
-
### {Features/Bug Fixes/Changed}
|
|
252
|
-
- **{Feature name}**: {description}
|
|
253
|
-
|
|
254
|
-
### Implementation Details
|
|
255
|
-
{implementation description from Step 2}
|
|
256
|
-
|
|
257
|
-
### Learnings
|
|
258
|
-
{learnings from Step 2, or omit if none}
|
|
259
|
-
|
|
260
|
-
### Test Plan
|
|
261
|
-
|
|
262
|
-
#### For QA
|
|
263
|
-
{QA test steps from Step 3}
|
|
264
|
-
|
|
265
|
-
#### For Users
|
|
266
|
-
{User-facing changes from Step 3}
|
|
267
|
-
```
|
|
268
|
-
|
|
269
|
-
---
|
|
270
|
-
|
|
271
|
-
### STEP 8: Commit (REQUIRED FORMAT)
|
|
272
|
-
|
|
273
|
-
```bash
|
|
274
|
-
git add .
|
|
275
|
-
git commit -m "$(cat <<'EOF'
|
|
276
|
-
{type}: {description}
|
|
277
|
-
|
|
278
|
-
{body if needed}
|
|
279
|
-
|
|
280
|
-
Implementation: {brief summary}
|
|
281
|
-
Test: {how to test}
|
|
282
|
-
|
|
283
|
-
Generated with [p/](https://www.prjct.app/)
|
|
284
|
-
EOF
|
|
285
|
-
)"
|
|
286
|
-
```
|
|
287
|
-
|
|
288
|
-
**⛔ The prjct footer MUST be included. No exceptions.**
|
|
289
|
-
|
|
290
|
-
---
|
|
291
|
-
|
|
292
|
-
### STEP 9: Push and Create PR (REQUIRED)
|
|
293
|
-
|
|
294
|
-
```bash
|
|
295
|
-
git push -u origin {branch}
|
|
296
|
-
gh pr create --title "{type}: {description}" --base main --body "$(cat <<'EOF'
|
|
297
|
-
## Summary
|
|
298
|
-
{bullet points of what changed}
|
|
299
|
-
|
|
300
|
-
## Implementation
|
|
301
|
-
{implementation details from Step 2}
|
|
302
|
-
|
|
303
|
-
## Changes
|
|
304
|
-
{list of files/modules affected}
|
|
305
|
-
|
|
306
|
-
## Test Plan
|
|
307
|
-
|
|
308
|
-
### For QA
|
|
309
|
-
{QA test steps}
|
|
310
|
-
|
|
311
|
-
### For Users
|
|
312
|
-
{User-facing documentation}
|
|
313
|
-
|
|
314
|
-
## Learnings
|
|
315
|
-
{learnings, if any}
|
|
316
|
-
|
|
317
|
-
---
|
|
318
|
-
Generated with [p/](https://www.prjct.app/)
|
|
319
|
-
EOF
|
|
320
|
-
)"
|
|
321
|
-
```
|
|
322
|
-
|
|
323
|
-
---
|
|
324
|
-
|
|
325
|
-
### STEP 10: Update Issue Tracker (REQUIRED - DO NOT SKIP)
|
|
326
|
-
|
|
327
|
-
**⛔ This step is MANDATORY if there's a linked issue. NEVER skip this.**
|
|
328
|
-
|
|
329
|
-
```
|
|
330
|
-
READ: {globalPath}/storage/state.json
|
|
331
|
-
GET: linearId or jiraId from currentTask or previousTask
|
|
332
|
-
```
|
|
333
|
-
|
|
334
|
-
**IF linearId exists:**
|
|
335
|
-
```bash
|
|
336
|
-
# ═══════════════════════════════════════════════════════════════
|
|
337
|
-
# USE prjct CLI DIRECTLY - NOT $PRJCT_CLI (may be unset)
|
|
338
|
-
# ═══════════════════════════════════════════════════════════════
|
|
339
|
-
|
|
340
|
-
# Add implementation comment to Linear issue
|
|
341
|
-
prjct linear comment "{linearId}" "## Implementation Complete
|
|
342
|
-
|
|
343
|
-
**PR:** {pr_url}
|
|
344
|
-
**Branch:** {branch}
|
|
345
|
-
|
|
346
|
-
### What was implemented
|
|
347
|
-
{implementation details}
|
|
348
|
-
|
|
349
|
-
### How to test
|
|
350
|
-
{test steps for QA}"
|
|
351
|
-
|
|
352
|
-
# ═══════════════════════════════════════════════════════════════
|
|
353
|
-
# ALWAYS mark as Done after ship (work is complete)
|
|
354
|
-
# ═══════════════════════════════════════════════════════════════
|
|
355
|
-
prjct linear done "{linearId}"
|
|
356
|
-
OUTPUT: "Linear: {linearId} → Done ✓"
|
|
357
|
-
```
|
|
358
|
-
|
|
359
|
-
**IF jiraId exists:**
|
|
360
|
-
```bash
|
|
361
|
-
# Similar flow for JIRA - always Done after ship
|
|
362
|
-
prjct jira comment "{jiraId}" "PR: {pr_url}"
|
|
363
|
-
prjct jira transition "{jiraId}" "Done"
|
|
364
|
-
OUTPUT: "JIRA: {jiraId} → Done ✓"
|
|
365
|
-
```
|
|
366
|
-
|
|
367
|
-
**IF no issue tracker configured:**
|
|
368
|
-
```
|
|
369
|
-
OUTPUT: "No issue tracker linked. Consider using `p. linear setup` for better tracking."
|
|
370
|
-
```
|
|
371
|
-
|
|
372
|
-
---
|
|
373
|
-
|
|
374
|
-
### STEP 11: Update Local State
|
|
375
|
-
|
|
376
|
-
```
|
|
377
|
-
UPDATE: {globalPath}/storage/state.json
|
|
378
|
-
SET: currentTask.status = "shipped" (if PR merged) or "in_review" (if PR open)
|
|
379
|
-
SET: currentTask.shippedAt = {timestamp}
|
|
380
|
-
SET: currentTask.prUrl = {pr_url}
|
|
381
|
-
```
|
|
382
|
-
|
|
383
|
-
APPEND to `{globalPath}/memory/events.jsonl`:
|
|
384
|
-
```json
|
|
385
|
-
{"type":"task_shipped","taskId":"{id}","linearId":"{linearId}","prUrl":"{pr_url}","version":"{version}","timestamp":"{timestamp}"}
|
|
386
|
-
```
|
|
387
|
-
|
|
388
|
-
---
|
|
389
|
-
|
|
390
|
-
## Output Format
|
|
391
|
-
|
|
392
|
-
```
|
|
393
|
-
🚀 Shipped: {feature}
|
|
394
|
-
|
|
395
|
-
Version: {old} → {new}
|
|
396
|
-
PR: {url}
|
|
397
|
-
Branch: {branch}
|
|
398
|
-
{linearId ? "Linear: {linearId} → In Review ✓" : ""}
|
|
399
|
-
|
|
400
|
-
Documentation:
|
|
401
|
-
- Implementation: ✓
|
|
402
|
-
- Test Plan: ✓
|
|
403
|
-
- Learnings: ✓
|
|
404
|
-
|
|
405
|
-
Next:
|
|
406
|
-
- Review PR → {url}
|
|
407
|
-
- After merge → Issues auto-updated to Done
|
|
408
|
-
```
|
|
409
|
-
|
|
410
|
-
---
|
|
411
|
-
|
|
412
|
-
## ⛔ VIOLATIONS
|
|
413
|
-
|
|
414
|
-
**If you skip ANY step, you are BREAKING the prjct workflow.**
|
|
415
|
-
|
|
416
|
-
Common violations:
|
|
417
|
-
- ❌ Committing directly to main
|
|
418
|
-
- ❌ Pushing without creating PR
|
|
419
|
-
- ❌ Skipping version bump
|
|
420
|
-
- ❌ Skipping CHANGELOG update
|
|
421
|
-
- ❌ Not waiting for user approval
|
|
422
|
-
- ❌ Missing prjct footer in commit
|
|
423
|
-
- ❌ **Skipping test plan documentation**
|
|
424
|
-
- ❌ **Not updating Linear/JIRA status**
|
|
425
|
-
- ❌ **Not adding implementation comments to issues**
|
|
426
|
-
|
|
427
|
-
**These violations make prjct useless. Follow the workflow.**
|
|
428
|
-
|
|
429
|
-
---
|
|
430
|
-
|
|
431
|
-
## ═══════════════════════════════════════════════════════════════
|
|
432
|
-
## POST-MERGE FINALIZE (Called from STEP 1 when on main after merge)
|
|
433
|
-
## ═══════════════════════════════════════════════════════════════
|
|
434
|
-
|
|
435
|
-
**⛔ THIS SECTION IS MANDATORY AFTER ANY MERGE. DO NOT SKIP.**
|
|
436
|
-
|
|
437
|
-
When user runs `p. ship` on main after a merge, execute ONLY this section:
|
|
438
|
-
|
|
439
|
-
### 1. Get Issue ID from State
|
|
440
|
-
|
|
441
|
-
```bash
|
|
442
|
-
# Read state to get linearId
|
|
443
|
-
cat ~/.prjct-cli/projects/$(cat .prjct/prjct.config.json 2>/dev/null | grep -o '"projectId"[[:space:]]*:[[:space:]]*"[^"]*"' | cut -d'"' -f4)/storage/state.json 2>/dev/null
|
|
444
|
-
```
|
|
445
|
-
|
|
446
|
-
Extract `linearId` from `previousTask.linearId` or `currentTask.linearId`.
|
|
447
|
-
|
|
448
|
-
### 2. Update Issue Tracker to Done (MANDATORY)
|
|
449
|
-
|
|
450
|
-
**⛔ DO NOT OUTPUT SUCCESS UNTIL THIS COMPLETES**
|
|
451
|
-
|
|
452
|
-
```bash
|
|
453
|
-
# Use prjct CLI directly (NOT $PRJCT_CLI which may be unset)
|
|
454
|
-
prjct linear done "{linearId}"
|
|
455
|
-
```
|
|
456
|
-
|
|
457
|
-
**IF no prjct CLI available, use direct command:**
|
|
458
|
-
```bash
|
|
459
|
-
# Fallback - find CLI location
|
|
460
|
-
PRJCT_BIN=$(which prjct 2>/dev/null || echo "/opt/homebrew/bin/prjct")
|
|
461
|
-
$PRJCT_BIN linear done "{linearId}"
|
|
462
|
-
```
|
|
463
|
-
|
|
464
|
-
### 3. Output
|
|
465
|
-
|
|
466
|
-
```
|
|
467
|
-
✅ Merged: {linearId}
|
|
468
|
-
|
|
469
|
-
PR #{number} → main
|
|
470
|
-
Linear: {linearId} → Done ✓
|
|
471
|
-
|
|
472
|
-
Ready for next task.
|
|
473
|
-
```
|
|
474
|
-
|
|
475
|
-
**⛔ NEVER output "Merged" without updating the issue tracker first.**
|