prjct-cli 1.22.0 → 1.24.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 +230 -0
- package/bin/prjct +30 -13
- package/dist/bin/prjct-core.mjs +1748 -0
- package/dist/bin/prjct.mjs +17 -36672
- package/dist/cli/linear.mjs +14 -0
- package/dist/daemon/entry.mjs +1429 -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,104 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
allowed-tools: [Bash, Read, Write, AskUserQuestion]
|
|
3
|
-
---
|
|
4
|
-
|
|
5
|
-
# p. sync
|
|
6
|
-
|
|
7
|
-
## Step 1: Run sync with JSON output
|
|
8
|
-
|
|
9
|
-
```bash
|
|
10
|
-
prjct sync --json
|
|
11
|
-
```
|
|
12
|
-
|
|
13
|
-
Parse the JSON output to determine next action.
|
|
14
|
-
|
|
15
|
-
## Step 2: Handle response
|
|
16
|
-
|
|
17
|
-
**If `action: "no_changes"`:**
|
|
18
|
-
```
|
|
19
|
-
Output: "✅ Context is up to date"
|
|
20
|
-
```
|
|
21
|
-
|
|
22
|
-
**If `action: "confirm_required"`:**
|
|
23
|
-
|
|
24
|
-
Show the diff summary to the user:
|
|
25
|
-
|
|
26
|
-
```
|
|
27
|
-
📋 Changes to context files:
|
|
28
|
-
|
|
29
|
-
+ Added: {list added sections}
|
|
30
|
-
~ Modified: {list modified sections}
|
|
31
|
-
- Removed: {list removed sections}
|
|
32
|
-
|
|
33
|
-
Tokens: {tokensBefore} → {tokensAfter} ({tokenDelta})
|
|
34
|
-
```
|
|
35
|
-
|
|
36
|
-
Then ask for confirmation:
|
|
37
|
-
|
|
38
|
-
```
|
|
39
|
-
AskUserQuestion:
|
|
40
|
-
question: "Apply these context changes?"
|
|
41
|
-
header: "Sync"
|
|
42
|
-
options:
|
|
43
|
-
- label: "Yes, apply changes"
|
|
44
|
-
description: "Update context files with the changes shown above"
|
|
45
|
-
- label: "No, cancel"
|
|
46
|
-
description: "Keep existing context files unchanged"
|
|
47
|
-
- label: "Show full diff"
|
|
48
|
-
description: "See detailed before/after for each section"
|
|
49
|
-
```
|
|
50
|
-
|
|
51
|
-
## Step 3: Apply based on response
|
|
52
|
-
|
|
53
|
-
**If "Yes, apply changes":**
|
|
54
|
-
```bash
|
|
55
|
-
prjct sync --yes
|
|
56
|
-
```
|
|
57
|
-
|
|
58
|
-
**If "No, cancel":**
|
|
59
|
-
```
|
|
60
|
-
Output: "✅ Sync cancelled"
|
|
61
|
-
```
|
|
62
|
-
|
|
63
|
-
**If "Show full diff":**
|
|
64
|
-
- Run `prjct sync --preview --json` to get full diff details
|
|
65
|
-
- Display the full diff to user
|
|
66
|
-
- Ask again with Yes/No options only
|
|
67
|
-
|
|
68
|
-
## First sync (no existing files)
|
|
69
|
-
|
|
70
|
-
When there's no existing context, the CLI will apply changes directly:
|
|
71
|
-
|
|
72
|
-
```bash
|
|
73
|
-
prjct sync --json
|
|
74
|
-
```
|
|
75
|
-
|
|
76
|
-
This returns success without needing confirmation.
|
|
77
|
-
|
|
78
|
-
## Linear Sync (when enabled)
|
|
79
|
-
|
|
80
|
-
```
|
|
81
|
-
READ: .prjct/prjct.config.json → get projectId
|
|
82
|
-
READ: {globalPath}/project.json → check integrations.linear.enabled
|
|
83
|
-
|
|
84
|
-
IF integrations.linear.enabled:
|
|
85
|
-
# Sync Linear issues to local cache
|
|
86
|
-
RUN: bun $PRJCT_CLI/core/cli/linear.ts --project {projectId} sync
|
|
87
|
-
|
|
88
|
-
# Result stored in {globalPath}/storage/issues.json
|
|
89
|
-
OUTPUT: "Linear: {fetched} issues synced"
|
|
90
|
-
```
|
|
91
|
-
|
|
92
|
-
## Output
|
|
93
|
-
|
|
94
|
-
```
|
|
95
|
-
✅ Synced: {projectName}
|
|
96
|
-
|
|
97
|
-
Ecosystem: {ecosystem}
|
|
98
|
-
Agents: {count} generated
|
|
99
|
-
Linear: {issueCount} issues synced (or "not enabled")
|
|
100
|
-
|
|
101
|
-
Next:
|
|
102
|
-
- Start work → `p. task "description"`
|
|
103
|
-
- See queue → `p. next`
|
|
104
|
-
```
|
|
@@ -1,312 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
allowed-tools: [Read, Write, Bash, Task, Glob, Grep, AskUserQuestion]
|
|
3
|
-
---
|
|
4
|
-
|
|
5
|
-
# p. task "$ARGUMENTS"
|
|
6
|
-
|
|
7
|
-
## ⛔ MANDATORY PRE-FLIGHT CHECKS
|
|
8
|
-
|
|
9
|
-
**Execute these checks BEFORE any task creation:**
|
|
10
|
-
|
|
11
|
-
### Check 1: Validate Arguments
|
|
12
|
-
|
|
13
|
-
```
|
|
14
|
-
IF $ARGUMENTS is empty:
|
|
15
|
-
ASK: "What task do you want to start?"
|
|
16
|
-
WAIT for response
|
|
17
|
-
DO NOT proceed with empty task
|
|
18
|
-
```
|
|
19
|
-
|
|
20
|
-
### Check 2: Resolve Project Paths
|
|
21
|
-
|
|
22
|
-
```bash
|
|
23
|
-
# Get projectId from local config
|
|
24
|
-
cat .prjct/prjct.config.json | grep -o '"projectId"[[:space:]]*:[[:space:]]*"[^"]*"' | cut -d'"' -f4
|
|
25
|
-
```
|
|
26
|
-
|
|
27
|
-
Set `globalPath = ~/.prjct-cli/projects/{projectId}`
|
|
28
|
-
|
|
29
|
-
### Check 3: Check for Active Task
|
|
30
|
-
|
|
31
|
-
```
|
|
32
|
-
READ: {globalPath}/storage/state.json
|
|
33
|
-
|
|
34
|
-
IF currentTask exists AND currentTask.status == "active":
|
|
35
|
-
OUTPUT:
|
|
36
|
-
"""
|
|
37
|
-
⚠️ Active task detected: {currentTask.description}
|
|
38
|
-
|
|
39
|
-
Options:
|
|
40
|
-
1. Complete current task first → `p. done`
|
|
41
|
-
2. Pause current task → `p. pause`
|
|
42
|
-
3. Switch anyway (current task will be paused)
|
|
43
|
-
"""
|
|
44
|
-
|
|
45
|
-
ASK: "What would you like to do?"
|
|
46
|
-
WAIT for explicit choice
|
|
47
|
-
DO NOT automatically switch tasks
|
|
48
|
-
```
|
|
49
|
-
|
|
50
|
-
### Check 4: Validate Git State
|
|
51
|
-
|
|
52
|
-
```bash
|
|
53
|
-
git status --porcelain
|
|
54
|
-
```
|
|
55
|
-
|
|
56
|
-
```
|
|
57
|
-
IF uncommitted changes exist:
|
|
58
|
-
OUTPUT:
|
|
59
|
-
"""
|
|
60
|
-
⚠️ You have uncommitted changes:
|
|
61
|
-
{list of files}
|
|
62
|
-
|
|
63
|
-
Commit or stash them before starting a new task.
|
|
64
|
-
"""
|
|
65
|
-
|
|
66
|
-
ASK: "Would you like to commit these changes first?"
|
|
67
|
-
WAIT for response
|
|
68
|
-
```
|
|
69
|
-
|
|
70
|
-
---
|
|
71
|
-
|
|
72
|
-
## Step 0: Detect Issue Tracker Reference
|
|
73
|
-
|
|
74
|
-
IF `$ARGUMENTS` matches pattern `/^[A-Z]+-\d+$/` (e.g., PRJ-123, PROJ-456):
|
|
75
|
-
|
|
76
|
-
**⛔ CRITICAL: READ LOCAL, WRITE REMOTE (Token Efficiency)**
|
|
77
|
-
|
|
78
|
-
```
|
|
79
|
-
READ: {globalPath}/project.json
|
|
80
|
-
CHECK: integrations.linear OR integrations.jira
|
|
81
|
-
|
|
82
|
-
IF integrations.linear.enabled:
|
|
83
|
-
# ═══════════════════════════════════════════════════════════════
|
|
84
|
-
# READ FROM LOCAL CACHE - NEVER call API for issue details
|
|
85
|
-
# This saves 1000s of tokens by not re-reading descriptions/AC
|
|
86
|
-
# ═══════════════════════════════════════════════════════════════
|
|
87
|
-
|
|
88
|
-
READ: {globalPath}/storage/issues.json
|
|
89
|
-
FIND: issue where identifier == "$ARGUMENTS"
|
|
90
|
-
|
|
91
|
-
IF issue NOT found in local cache:
|
|
92
|
-
# Only sync if issue not cached (rare case)
|
|
93
|
-
OUTPUT: "Issue not in cache. Syncing..."
|
|
94
|
-
RUN: prjct linear sync
|
|
95
|
-
READ: {globalPath}/storage/issues.json # Re-read after sync
|
|
96
|
-
|
|
97
|
-
IF issue found:
|
|
98
|
-
# Use cached data - DO NOT re-fetch from API
|
|
99
|
-
SET: task.linearId = issue.identifier # "PRJ-123"
|
|
100
|
-
SET: task.linearUuid = issue.id # Linear internal UUID
|
|
101
|
-
SET: task.description = issue.title # From cache, not API
|
|
102
|
-
SET: $ARGUMENTS = issue.title
|
|
103
|
-
|
|
104
|
-
# ═══════════════════════════════════════════════════════════════
|
|
105
|
-
# WRITE TO REMOTE - Only status updates go to API
|
|
106
|
-
# USE prjct CLI DIRECTLY - NOT $PRJCT_CLI (may be unset)
|
|
107
|
-
# ═══════════════════════════════════════════════════════════════
|
|
108
|
-
RUN: prjct linear start "{task.linearId}"
|
|
109
|
-
|
|
110
|
-
OUTPUT: "Linked to Linear: {issue.identifier} - {issue.title}"
|
|
111
|
-
OUTPUT: "Linear: → In Progress ✓"
|
|
112
|
-
|
|
113
|
-
ELSE IF integrations.jira.enabled:
|
|
114
|
-
# ═══════════════════════════════════════════════════════════════
|
|
115
|
-
# READ FROM LOCAL CACHE - Same pattern as Linear
|
|
116
|
-
# ═══════════════════════════════════════════════════════════════
|
|
117
|
-
|
|
118
|
-
READ: {globalPath}/storage/issues.json
|
|
119
|
-
FIND: issue where externalId == "$ARGUMENTS"
|
|
120
|
-
|
|
121
|
-
IF issue NOT found in local cache:
|
|
122
|
-
OUTPUT: "Issue not in cache. Syncing..."
|
|
123
|
-
RUN: prjct jira sync
|
|
124
|
-
READ: {globalPath}/storage/issues.json
|
|
125
|
-
|
|
126
|
-
IF issue found:
|
|
127
|
-
SET: task.externalId = issue.externalId
|
|
128
|
-
SET: task.externalProvider = "jira"
|
|
129
|
-
SET: task.description = issue.title
|
|
130
|
-
SET: $ARGUMENTS = issue.title
|
|
131
|
-
|
|
132
|
-
# WRITE TO REMOTE - Only status update
|
|
133
|
-
# USE prjct CLI DIRECTLY
|
|
134
|
-
RUN: prjct jira transition "$ARGUMENTS" "In Progress"
|
|
135
|
-
|
|
136
|
-
OUTPUT: "Linked to JIRA: {issue.externalId} - {issue.title}"
|
|
137
|
-
OUTPUT: "JIRA: In Progress"
|
|
138
|
-
|
|
139
|
-
ELSE:
|
|
140
|
-
OUTPUT: "Issue tracker not configured. Run `p. linear setup` or `p. jira setup`"
|
|
141
|
-
```
|
|
142
|
-
|
|
143
|
-
---
|
|
144
|
-
|
|
145
|
-
## Main Flow
|
|
146
|
-
|
|
147
|
-
### Step A: Explore Codebase (for context)
|
|
148
|
-
|
|
149
|
-
```
|
|
150
|
-
USE Task(Explore) → find similar code, affected files
|
|
151
|
-
READ {globalPath}/agents/*.md → get domain patterns (if they exist)
|
|
152
|
-
```
|
|
153
|
-
|
|
154
|
-
### Step B: Classify Task
|
|
155
|
-
|
|
156
|
-
Determine type based on keywords:
|
|
157
|
-
- `add`, `create`, `implement`, `new` → **feature**
|
|
158
|
-
- `fix`, `repair`, `broken`, `error` → **bug**
|
|
159
|
-
- `improve`, `enhance`, `optimize` → **improvement**
|
|
160
|
-
- `refactor`, `clean`, `reorganize` → **refactor**
|
|
161
|
-
- `update`, `upgrade`, `migrate` → **chore**
|
|
162
|
-
|
|
163
|
-
Default: **feature**
|
|
164
|
-
|
|
165
|
-
### Step C: Break Down into Subtasks
|
|
166
|
-
|
|
167
|
-
Create 2-5 actionable subtasks based on the task description.
|
|
168
|
-
|
|
169
|
-
### Step C.5: Define Expected Value
|
|
170
|
-
|
|
171
|
-
**Before showing the plan, identify expected outcomes:**
|
|
172
|
-
|
|
173
|
-
Based on exploration and task analysis, determine:
|
|
174
|
-
- **Expected value type**: feature | bugfix | performance | dx | refactor | infrastructure
|
|
175
|
-
- **Expected impact**: high | medium | low
|
|
176
|
-
- **Success criteria**: What makes this task "done well" (1-2 bullet points)
|
|
177
|
-
|
|
178
|
-
This will be stored in state.json and compared against actual outcomes in `p. done`.
|
|
179
|
-
|
|
180
|
-
### Step D: Show Plan and Get Approval (BLOCKING)
|
|
181
|
-
|
|
182
|
-
**⛔ DO NOT create branches or modify state without user approval.**
|
|
183
|
-
|
|
184
|
-
Show the user:
|
|
185
|
-
```
|
|
186
|
-
## Task Plan
|
|
187
|
-
|
|
188
|
-
Description: $ARGUMENTS
|
|
189
|
-
Type: {classified type}
|
|
190
|
-
Branch: {type}/{slug}
|
|
191
|
-
|
|
192
|
-
Subtasks:
|
|
193
|
-
1. {subtask 1}
|
|
194
|
-
2. {subtask 2}
|
|
195
|
-
...
|
|
196
|
-
|
|
197
|
-
Will do:
|
|
198
|
-
1. Create feature branch from current branch
|
|
199
|
-
2. Initialize task tracking in state.json
|
|
200
|
-
3. Begin work on first subtask
|
|
201
|
-
{If Linear: 4. Update issue status to In Progress}
|
|
202
|
-
```
|
|
203
|
-
|
|
204
|
-
Then ask for confirmation:
|
|
205
|
-
|
|
206
|
-
```
|
|
207
|
-
AskUserQuestion:
|
|
208
|
-
question: "Start this task?"
|
|
209
|
-
header: "Task"
|
|
210
|
-
options:
|
|
211
|
-
- label: "Yes, start task (Recommended)"
|
|
212
|
-
description: "Create branch and begin tracking"
|
|
213
|
-
- label: "No, cancel"
|
|
214
|
-
description: "Don't create task"
|
|
215
|
-
- label: "Modify plan"
|
|
216
|
-
description: "Change type, branch name, or subtasks"
|
|
217
|
-
```
|
|
218
|
-
|
|
219
|
-
**Handle responses:**
|
|
220
|
-
|
|
221
|
-
**If "Modify plan":**
|
|
222
|
-
- Ask: "What would you like to change?"
|
|
223
|
-
- Update plan accordingly
|
|
224
|
-
- Ask again with Yes/No options only
|
|
225
|
-
|
|
226
|
-
**If "No, cancel":**
|
|
227
|
-
```
|
|
228
|
-
OUTPUT: "✅ Task creation cancelled"
|
|
229
|
-
STOP - Do not continue
|
|
230
|
-
```
|
|
231
|
-
|
|
232
|
-
**If "Yes, start task":**
|
|
233
|
-
CONTINUE to Step E
|
|
234
|
-
|
|
235
|
-
### Step E: Create Branch (if needed)
|
|
236
|
-
|
|
237
|
-
```bash
|
|
238
|
-
git branch --show-current
|
|
239
|
-
```
|
|
240
|
-
|
|
241
|
-
```
|
|
242
|
-
IF current branch == "main" OR "master":
|
|
243
|
-
OUTPUT: "Creating feature branch: {type}/{slug}"
|
|
244
|
-
|
|
245
|
-
git checkout -b {type}/{slug}
|
|
246
|
-
|
|
247
|
-
IF git command fails:
|
|
248
|
-
OUTPUT: "Failed to create branch. Check git status."
|
|
249
|
-
STOP
|
|
250
|
-
```
|
|
251
|
-
|
|
252
|
-
### Step F: Write State
|
|
253
|
-
|
|
254
|
-
Generate UUID and timestamp:
|
|
255
|
-
```bash
|
|
256
|
-
# UUID
|
|
257
|
-
node -e "console.log(require('crypto').randomUUID())"
|
|
258
|
-
|
|
259
|
-
# Timestamp
|
|
260
|
-
node -e "console.log(new Date().toISOString())"
|
|
261
|
-
```
|
|
262
|
-
|
|
263
|
-
WRITE `{globalPath}/storage/state.json`:
|
|
264
|
-
```json
|
|
265
|
-
{
|
|
266
|
-
"currentTask": {
|
|
267
|
-
"id": "{uuid}",
|
|
268
|
-
"description": "{first subtask description}",
|
|
269
|
-
"type": "{type}",
|
|
270
|
-
"status": "active",
|
|
271
|
-
"startedAt": "{timestamp}",
|
|
272
|
-
"subtasks": [
|
|
273
|
-
{"description": "{subtask 1}", "status": "active"},
|
|
274
|
-
{"description": "{subtask 2}", "status": "pending"},
|
|
275
|
-
{"description": "{subtask 3}", "status": "pending"}
|
|
276
|
-
],
|
|
277
|
-
"currentSubtaskIndex": 0,
|
|
278
|
-
"parentDescription": "$ARGUMENTS",
|
|
279
|
-
"branch": "{type}/{slug}",
|
|
280
|
-
"linearId": "{identifier or null}",
|
|
281
|
-
"linearUuid": "{uuid or null}",
|
|
282
|
-
"expectedValue": {
|
|
283
|
-
"type": "{feature|bugfix|performance|dx|refactor|infrastructure}",
|
|
284
|
-
"impact": "{high|medium|low}",
|
|
285
|
-
"successCriteria": ["criterion 1", "criterion 2"]
|
|
286
|
-
}
|
|
287
|
-
},
|
|
288
|
-
"pausedTasks": []
|
|
289
|
-
}
|
|
290
|
-
```
|
|
291
|
-
|
|
292
|
-
### Step G: Log Event
|
|
293
|
-
|
|
294
|
-
APPEND to `{globalPath}/memory/events.jsonl`:
|
|
295
|
-
```json
|
|
296
|
-
{"type":"task_started","taskId":"{uuid}","description":"$ARGUMENTS","timestamp":"{timestamp}","branch":"{branch}"}
|
|
297
|
-
```
|
|
298
|
-
|
|
299
|
-
---
|
|
300
|
-
|
|
301
|
-
## Output
|
|
302
|
-
|
|
303
|
-
```
|
|
304
|
-
✅ {type}: $ARGUMENTS
|
|
305
|
-
|
|
306
|
-
Branch: {branch} | Subtasks: {count}
|
|
307
|
-
{linearId ? "Linear: {linearId} → In Progress" : ""}
|
|
308
|
-
|
|
309
|
-
Current: {first subtask}
|
|
310
|
-
|
|
311
|
-
Next: Work on subtask, then `p. done`
|
|
312
|
-
```
|
|
@@ -1,93 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
allowed-tools: [Bash, Read, Write]
|
|
3
|
-
---
|
|
4
|
-
|
|
5
|
-
# p. test
|
|
6
|
-
|
|
7
|
-
## Step 1: Detect Test Runner
|
|
8
|
-
|
|
9
|
-
Check project files to determine the test runner:
|
|
10
|
-
|
|
11
|
-
```bash
|
|
12
|
-
# Check for package.json with test script
|
|
13
|
-
if [ -f package.json ]; then
|
|
14
|
-
cat package.json | grep -o '"test"[[:space:]]*:' && echo "node"
|
|
15
|
-
fi
|
|
16
|
-
|
|
17
|
-
# Check for pytest
|
|
18
|
-
if [ -f pytest.ini ] || [ -f pyproject.toml ]; then
|
|
19
|
-
echo "pytest"
|
|
20
|
-
fi
|
|
21
|
-
|
|
22
|
-
# Check for Cargo (Rust)
|
|
23
|
-
if [ -f Cargo.toml ]; then
|
|
24
|
-
echo "cargo"
|
|
25
|
-
fi
|
|
26
|
-
|
|
27
|
-
# Check for Go
|
|
28
|
-
if [ -f go.mod ]; then
|
|
29
|
-
echo "go"
|
|
30
|
-
fi
|
|
31
|
-
|
|
32
|
-
# Check for .NET
|
|
33
|
-
if ls *.sln *.csproj 2>/dev/null | head -1; then
|
|
34
|
-
echo "dotnet"
|
|
35
|
-
fi
|
|
36
|
-
```
|
|
37
|
-
|
|
38
|
-
| Detected | Runner Command |
|
|
39
|
-
|----------|----------------|
|
|
40
|
-
| package.json with scripts.test | `npm test` or `bun test` or `pnpm test` |
|
|
41
|
-
| pytest.ini / pyproject.toml | `pytest` |
|
|
42
|
-
| Cargo.toml | `cargo test` |
|
|
43
|
-
| go.mod | `go test ./...` |
|
|
44
|
-
| *.sln / *.csproj | `dotnet test` |
|
|
45
|
-
|
|
46
|
-
## Step 2: Run Tests
|
|
47
|
-
|
|
48
|
-
```bash
|
|
49
|
-
{runnerCmd} 2>&1
|
|
50
|
-
```
|
|
51
|
-
|
|
52
|
-
Parse results to count passed/failed tests.
|
|
53
|
-
|
|
54
|
-
## Step 3: Handle Results
|
|
55
|
-
|
|
56
|
-
**IF all tests pass:**
|
|
57
|
-
|
|
58
|
-
```
|
|
59
|
-
✅ Tests passing
|
|
60
|
-
|
|
61
|
-
Passed: {count}
|
|
62
|
-
Coverage: {%} (if available)
|
|
63
|
-
|
|
64
|
-
Next:
|
|
65
|
-
- Code review → `p. review`
|
|
66
|
-
- Ship → `p. ship`
|
|
67
|
-
```
|
|
68
|
-
|
|
69
|
-
**IF tests fail:**
|
|
70
|
-
|
|
71
|
-
```
|
|
72
|
-
❌ {failed} tests failing
|
|
73
|
-
|
|
74
|
-
{test output - last 50 lines}
|
|
75
|
-
|
|
76
|
-
Next:
|
|
77
|
-
- Auto-fix snapshots → `p. test fix`
|
|
78
|
-
- Fix manually and re-run
|
|
79
|
-
```
|
|
80
|
-
|
|
81
|
-
---
|
|
82
|
-
|
|
83
|
-
## Fix Mode (`p. test fix`)
|
|
84
|
-
|
|
85
|
-
IF mode == "fix":
|
|
86
|
-
Try updating snapshots:
|
|
87
|
-
```bash
|
|
88
|
-
{runnerCmd} -- -u
|
|
89
|
-
# or for jest: npm test -- -u
|
|
90
|
-
# or for vitest: npx vitest --update
|
|
91
|
-
```
|
|
92
|
-
|
|
93
|
-
Re-run tests to verify fix.
|
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
allowed-tools: [Bash, Read, Write, Glob]
|
|
3
|
-
description: 'Force update prjct-cli - sync all templates from npm package'
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# p. update - Force Update prjct-cli
|
|
7
|
-
|
|
8
|
-
Manually sync all templates from npm package to local installation.
|
|
9
|
-
|
|
10
|
-
## Step 1: Find npm package location
|
|
11
|
-
|
|
12
|
-
```bash
|
|
13
|
-
npm root -g
|
|
14
|
-
```
|
|
15
|
-
|
|
16
|
-
Save this path as `NPM_ROOT`.
|
|
17
|
-
|
|
18
|
-
## Step 2: Copy p.md router
|
|
19
|
-
|
|
20
|
-
Read: `{NPM_ROOT}/prjct-cli/templates/commands/p.md`
|
|
21
|
-
Write to: `~/.claude/commands/p.md`
|
|
22
|
-
|
|
23
|
-
## Step 3: Copy ALL command templates
|
|
24
|
-
|
|
25
|
-
For each `.md` file in `{NPM_ROOT}/prjct-cli/templates/commands/`:
|
|
26
|
-
- Read the file
|
|
27
|
-
- Write to `~/.claude/commands/p/{filename}`
|
|
28
|
-
|
|
29
|
-
## Step 4: Update CLAUDE.md
|
|
30
|
-
|
|
31
|
-
Read: `{NPM_ROOT}/prjct-cli/templates/global/CLAUDE.md`
|
|
32
|
-
|
|
33
|
-
Check if `~/.claude/CLAUDE.md` exists:
|
|
34
|
-
- If NOT exists: Write the template content directly
|
|
35
|
-
- If exists: Find markers `<!-- prjct:start -->` and `<!-- prjct:end -->`, replace content between them
|
|
36
|
-
|
|
37
|
-
## Step 5: Copy statusline
|
|
38
|
-
|
|
39
|
-
Copy from `{NPM_ROOT}/prjct-cli/assets/statusline/` to `~/.prjct-cli/statusline/`:
|
|
40
|
-
- `statusline.sh`
|
|
41
|
-
- `lib/*.sh`
|
|
42
|
-
- `components/*.sh`
|
|
43
|
-
- `themes/*.json`
|
|
44
|
-
|
|
45
|
-
## Step 6: Get version and confirm
|
|
46
|
-
|
|
47
|
-
```bash
|
|
48
|
-
cat "$(npm root -g)/prjct-cli/package.json" | grep '"version"'
|
|
49
|
-
```
|
|
50
|
-
|
|
51
|
-
## Output
|
|
52
|
-
|
|
53
|
-
```
|
|
54
|
-
✅ prjct-cli updated
|
|
55
|
-
|
|
56
|
-
Commands: synced to ~/.claude/commands/p/
|
|
57
|
-
Config: ~/.claude/CLAUDE.md updated
|
|
58
|
-
Statusline: ~/.prjct-cli/statusline/ updated
|
|
59
|
-
```
|
|
60
|
-
|
|
61
|
-
## Action
|
|
62
|
-
|
|
63
|
-
NOW execute steps 1-6 in order. Use Bash to find npm root, then Read/Write to copy files.
|