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,204 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
allowed-tools: [Bash, Read, Write]
|
|
3
|
-
description: 'Verify workflow completion and close task'
|
|
4
|
-
timestamp-rule: 'GetTimestamp() for ALL timestamps'
|
|
5
|
-
architecture: 'Write-Through (JSON -> MD -> Events)'
|
|
6
|
-
storage-layer: true
|
|
7
|
-
source-of-truth: 'storage/state.json'
|
|
8
|
-
---
|
|
9
|
-
|
|
10
|
-
# /p:verify
|
|
11
|
-
|
|
12
|
-
Verify all workflow checkpoints are complete and close the task.
|
|
13
|
-
|
|
14
|
-
## Usage
|
|
15
|
-
|
|
16
|
-
```
|
|
17
|
-
/p:verify
|
|
18
|
-
```
|
|
19
|
-
|
|
20
|
-
## Context Variables
|
|
21
|
-
- `{projectId}`: From `.prjct/prjct.config.json`
|
|
22
|
-
- `{globalPath}`: `~/.prjct-cli/projects/{projectId}`
|
|
23
|
-
- `{statePath}`: `{globalPath}/storage/state.json`
|
|
24
|
-
- `{memoryPath}`: `{globalPath}/memory/events.jsonl`
|
|
25
|
-
- `{syncPath}`: `{globalPath}/sync/pending.json`
|
|
26
|
-
- `{nowContextPath}`: `{globalPath}/context/now.md`
|
|
27
|
-
|
|
28
|
-
## Step 1: Validate Project
|
|
29
|
-
|
|
30
|
-
READ: `.prjct/prjct.config.json`
|
|
31
|
-
EXTRACT: `projectId`
|
|
32
|
-
|
|
33
|
-
IF file not found:
|
|
34
|
-
OUTPUT: "No prjct project. Run /p:init first."
|
|
35
|
-
STOP
|
|
36
|
-
|
|
37
|
-
## Step 2: Validate Workflow Phase
|
|
38
|
-
|
|
39
|
-
READ: `{globalPath}/storage/state.json`
|
|
40
|
-
|
|
41
|
-
IF currentTask is null:
|
|
42
|
-
OUTPUT: "No active task. Nothing to verify."
|
|
43
|
-
STOP
|
|
44
|
-
|
|
45
|
-
IF currentTask.workflow is null:
|
|
46
|
-
OUTPUT: "Task has no workflow. This is a legacy task."
|
|
47
|
-
STOP
|
|
48
|
-
|
|
49
|
-
IF currentTask.workflow.phase != "register":
|
|
50
|
-
OUTPUT:
|
|
51
|
-
```
|
|
52
|
-
Cannot verify. Current phase: {currentTask.workflow.phase}
|
|
53
|
-
|
|
54
|
-
Required phase: register (after ship)
|
|
55
|
-
|
|
56
|
-
Workflow: analyze → branch → implement → test → review → merge → ship → verify
|
|
57
|
-
|
|
58
|
-
Complete p. ship first.
|
|
59
|
-
```
|
|
60
|
-
STOP
|
|
61
|
-
|
|
62
|
-
## Step 3: Validate All Checkpoints
|
|
63
|
-
|
|
64
|
-
SET: {checkpoints} = currentTask.workflow.checkpoints
|
|
65
|
-
SET: {required} = ["analyze", "branch", "implement", "test", "review", "merge", "tag", "release", "deploy", "register"]
|
|
66
|
-
SET: {missing} = []
|
|
67
|
-
|
|
68
|
-
FOR each checkpoint in {required}:
|
|
69
|
-
IF {checkpoints}[checkpoint] is null:
|
|
70
|
-
APPEND checkpoint to {missing}
|
|
71
|
-
|
|
72
|
-
IF {missing}.length > 0:
|
|
73
|
-
OUTPUT:
|
|
74
|
-
```
|
|
75
|
-
⚠️ Incomplete workflow
|
|
76
|
-
|
|
77
|
-
Missing checkpoints:
|
|
78
|
-
{FOR each in missing: "- {checkpoint}"}
|
|
79
|
-
|
|
80
|
-
Complete all phases before verifying.
|
|
81
|
-
```
|
|
82
|
-
STOP
|
|
83
|
-
|
|
84
|
-
## Step 4: Calculate Workflow Summary
|
|
85
|
-
|
|
86
|
-
SET: {startedAt} = currentTask.workflow.startedAt
|
|
87
|
-
SET: {now} = GetTimestamp()
|
|
88
|
-
SET: {totalDuration} = time between {startedAt} and {now}
|
|
89
|
-
FORMAT: as "Xh Ym" or "Xd Xh"
|
|
90
|
-
|
|
91
|
-
### Gather metrics from checkpoints
|
|
92
|
-
SET: {scope} = checkpoints.analyze.data.scope
|
|
93
|
-
SET: {branchName} = checkpoints.branch.data.branchName
|
|
94
|
-
SET: {coverage} = checkpoints.test.data.coverage
|
|
95
|
-
SET: {mcpScore} = checkpoints.review.data.mcpScore
|
|
96
|
-
SET: {approvals} = checkpoints.review.data.approvals.length
|
|
97
|
-
SET: {mergeCommit} = checkpoints.merge.data.mergeCommit
|
|
98
|
-
SET: {version} = checkpoints.tag.data.version
|
|
99
|
-
SET: {releaseUrl} = checkpoints.release.data.releaseUrl
|
|
100
|
-
|
|
101
|
-
## Step 5: Complete Workflow
|
|
102
|
-
|
|
103
|
-
SET: currentTask.workflow.phase = "verify"
|
|
104
|
-
SET: currentTask.workflow.checkpoints.verify = {
|
|
105
|
-
"completedAt": "{now}",
|
|
106
|
-
"data": {
|
|
107
|
-
"verified": true,
|
|
108
|
-
"totalDuration": "{totalDuration}"
|
|
109
|
-
}
|
|
110
|
-
}
|
|
111
|
-
SET: currentTask.workflow.completedAt = "{now}"
|
|
112
|
-
SET: currentTask.workflow.lastCheckpoint = "verify"
|
|
113
|
-
|
|
114
|
-
### Move to previousTask
|
|
115
|
-
SET: state.previousTask = {
|
|
116
|
-
...currentTask,
|
|
117
|
-
"status": "completed",
|
|
118
|
-
"completedAt": "{now}"
|
|
119
|
-
}
|
|
120
|
-
SET: state.currentTask = null
|
|
121
|
-
SET: state.lastUpdated = "{now}"
|
|
122
|
-
|
|
123
|
-
WRITE: `{statePath}`
|
|
124
|
-
|
|
125
|
-
## Step 6: Generate Context
|
|
126
|
-
|
|
127
|
-
WRITE: `{nowContextPath}`
|
|
128
|
-
|
|
129
|
-
```markdown
|
|
130
|
-
# NOW
|
|
131
|
-
|
|
132
|
-
_No active task_
|
|
133
|
-
|
|
134
|
-
Last completed: {previousTask.description}
|
|
135
|
-
Duration: {totalDuration}
|
|
136
|
-
Version: {version}
|
|
137
|
-
|
|
138
|
-
Use p. task to start new work.
|
|
139
|
-
```
|
|
140
|
-
|
|
141
|
-
## Step 7: Log Events
|
|
142
|
-
|
|
143
|
-
APPEND to `{memoryPath}`:
|
|
144
|
-
```json
|
|
145
|
-
{"timestamp":"{now}","action":"workflow_completed","taskId":"{previousTask.id}","duration":"{totalDuration}","checkpoints":11}
|
|
146
|
-
{"timestamp":"{now}","action":"checkpoint_completed","taskId":"{previousTask.id}","checkpoint":"verify"}
|
|
147
|
-
```
|
|
148
|
-
|
|
149
|
-
APPEND to `{syncPath}`:
|
|
150
|
-
```json
|
|
151
|
-
{"type":"workflow.completed","data":{"taskId":"{previousTask.id}","duration":"{totalDuration}","version":"{version}"},"timestamp":"{now}"}
|
|
152
|
-
```
|
|
153
|
-
|
|
154
|
-
## Output
|
|
155
|
-
|
|
156
|
-
```
|
|
157
|
-
✓ Workflow Complete
|
|
158
|
-
|
|
159
|
-
Task: {previousTask.description}
|
|
160
|
-
Type: {previousTask.type}
|
|
161
|
-
Duration: {totalDuration}
|
|
162
|
-
Version: {version}
|
|
163
|
-
|
|
164
|
-
Checkpoints (11/11):
|
|
165
|
-
1. analyze ✓ - Scope: {scope}
|
|
166
|
-
2. branch ✓ - {branchName}
|
|
167
|
-
3. implement ✓
|
|
168
|
-
4. test ✓ - Coverage: {coverage}
|
|
169
|
-
5. review ✓ - MCP: {mcpScore}/100, Approvals: {approvals}
|
|
170
|
-
6. merge ✓ - {mergeCommit}
|
|
171
|
-
7. tag ✓ - v{version}
|
|
172
|
-
8. release ✓ - {releaseUrl}
|
|
173
|
-
9. deploy ✓ - Reminded
|
|
174
|
-
10. register ✓ - Logged
|
|
175
|
-
11. verify ✓ - Complete
|
|
176
|
-
|
|
177
|
-
Summary:
|
|
178
|
-
- All phases completed
|
|
179
|
-
- Audit trail recorded
|
|
180
|
-
- Task closed
|
|
181
|
-
|
|
182
|
-
Next: p. task to start new work
|
|
183
|
-
```
|
|
184
|
-
|
|
185
|
-
## Error Handling
|
|
186
|
-
|
|
187
|
-
| Error | Response | Action |
|
|
188
|
-
|-------|----------|--------|
|
|
189
|
-
| No project | "No prjct project" | STOP |
|
|
190
|
-
| No active task | "Nothing to verify" | STOP |
|
|
191
|
-
| No workflow | "Legacy task" | STOP |
|
|
192
|
-
| Wrong phase | Show required phase | STOP |
|
|
193
|
-
| Missing checkpoints | List missing | STOP |
|
|
194
|
-
|
|
195
|
-
## Natural Language Triggers
|
|
196
|
-
|
|
197
|
-
- `p. verify` -> /p:verify
|
|
198
|
-
- `p. complete` -> /p:verify
|
|
199
|
-
- `p. close` -> /p:verify
|
|
200
|
-
|
|
201
|
-
## References
|
|
202
|
-
|
|
203
|
-
- Architecture: `~/.prjct-cli/docs/architecture.md`
|
|
204
|
-
- Workflow: `~/.prjct-cli/docs/workflow.md`
|
|
@@ -1,150 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
allowed-tools: [Read, Write, Bash, AskUserQuestion]
|
|
3
|
-
---
|
|
4
|
-
|
|
5
|
-
# p. workflow "$ARGUMENTS"
|
|
6
|
-
|
|
7
|
-
Manage workflow preferences using natural language.
|
|
8
|
-
|
|
9
|
-
## Step 1: Resolve Project Paths
|
|
10
|
-
|
|
11
|
-
```bash
|
|
12
|
-
# Get projectId from local config
|
|
13
|
-
cat .prjct/prjct.config.json | grep -o '"projectId"[[:space:]]*:[[:space:]]*"[^"]*"' | cut -d'"' -f4
|
|
14
|
-
```
|
|
15
|
-
|
|
16
|
-
Set `globalPath = ~/.prjct-cli/projects/{projectId}`
|
|
17
|
-
|
|
18
|
-
---
|
|
19
|
-
|
|
20
|
-
## If NO argument provided
|
|
21
|
-
|
|
22
|
-
Show current workflow preferences:
|
|
23
|
-
|
|
24
|
-
READ `{globalPath}/config/workflow-preferences.json` (or empty object)
|
|
25
|
-
|
|
26
|
-
**When preferences exist:**
|
|
27
|
-
```
|
|
28
|
-
WORKFLOW PREFERENCES
|
|
29
|
-
────────────────────────────
|
|
30
|
-
[permanent] before ship → bun test
|
|
31
|
-
[session] after done → npm run docs
|
|
32
|
-
|
|
33
|
-
Modify: "p. workflow before ship run npm test"
|
|
34
|
-
Remove: "p. workflow remove ship hook"
|
|
35
|
-
```
|
|
36
|
-
|
|
37
|
-
**When no preferences:**
|
|
38
|
-
```
|
|
39
|
-
No workflow preferences configured.
|
|
40
|
-
|
|
41
|
-
Set one: "p. workflow before ship run tests"
|
|
42
|
-
```
|
|
43
|
-
|
|
44
|
-
---
|
|
45
|
-
|
|
46
|
-
## If argument provided (natural language)
|
|
47
|
-
|
|
48
|
-
Parse the user's intent and update preferences accordingly.
|
|
49
|
-
|
|
50
|
-
### Patterns to detect:
|
|
51
|
-
|
|
52
|
-
| Pattern | Hook | Command | Action |
|
|
53
|
-
|---------|------|---------|--------|
|
|
54
|
-
| "before ship run X" | before | ship | X |
|
|
55
|
-
| "after done run X" | after | done | X |
|
|
56
|
-
| "skip tests on ship" | skip | ship | tests |
|
|
57
|
-
| "remove ship hook" | * | ship | REMOVE |
|
|
58
|
-
|
|
59
|
-
### Flow:
|
|
60
|
-
|
|
61
|
-
1. **Detect intent** from natural language
|
|
62
|
-
|
|
63
|
-
2. **Ask for scope** (ALWAYS):
|
|
64
|
-
|
|
65
|
-
```
|
|
66
|
-
AskUserQuestion:
|
|
67
|
-
question: "When should this apply?"
|
|
68
|
-
header: "Scope"
|
|
69
|
-
options:
|
|
70
|
-
- label: "Always (Recommended)"
|
|
71
|
-
description: "Save permanently in your preferences"
|
|
72
|
-
- label: "This session only"
|
|
73
|
-
description: "Until you close the terminal"
|
|
74
|
-
- label: "Just the next command"
|
|
75
|
-
description: "Use once and discard"
|
|
76
|
-
```
|
|
77
|
-
|
|
78
|
-
3. **Save preference**:
|
|
79
|
-
|
|
80
|
-
READ `{globalPath}/config/workflow-preferences.json` (or create empty object)
|
|
81
|
-
|
|
82
|
-
For adding/updating:
|
|
83
|
-
```json
|
|
84
|
-
{
|
|
85
|
-
"preferences": [
|
|
86
|
-
{
|
|
87
|
-
"hook": "{before|after|skip}",
|
|
88
|
-
"command": "{task|done|ship|sync}",
|
|
89
|
-
"action": "{command to run}",
|
|
90
|
-
"scope": "{permanent|session|once}",
|
|
91
|
-
"createdAt": "{timestamp}"
|
|
92
|
-
}
|
|
93
|
-
]
|
|
94
|
-
}
|
|
95
|
-
```
|
|
96
|
-
|
|
97
|
-
WRITE `{globalPath}/config/workflow-preferences.json`
|
|
98
|
-
|
|
99
|
-
For removal:
|
|
100
|
-
- Filter out preferences matching the hook and command
|
|
101
|
-
- Write updated file
|
|
102
|
-
|
|
103
|
-
4. **Confirm**:
|
|
104
|
-
|
|
105
|
-
```
|
|
106
|
-
IF scope == 'permanent':
|
|
107
|
-
OUTPUT: "Saved. Before each {command} I'll run: {action}"
|
|
108
|
-
ELSE IF scope == 'session':
|
|
109
|
-
OUTPUT: "OK. During this session, before {command} I'll run: {action}"
|
|
110
|
-
ELSE:
|
|
111
|
-
OUTPUT: "OK. On the next {command} I'll run: {action}"
|
|
112
|
-
```
|
|
113
|
-
|
|
114
|
-
---
|
|
115
|
-
|
|
116
|
-
## Examples
|
|
117
|
-
|
|
118
|
-
### Setting a hook
|
|
119
|
-
|
|
120
|
-
```
|
|
121
|
-
User: "p. workflow before ship run bun test"
|
|
122
|
-
|
|
123
|
-
→ Detect: hook=before, command=ship, action="bun test"
|
|
124
|
-
→ Ask scope
|
|
125
|
-
→ User: "always"
|
|
126
|
-
→ Save preference
|
|
127
|
-
→ Output: "Saved. Before each ship I'll run: bun test"
|
|
128
|
-
```
|
|
129
|
-
|
|
130
|
-
### Removing a hook
|
|
131
|
-
|
|
132
|
-
```
|
|
133
|
-
User: "p. workflow remove ship hook"
|
|
134
|
-
|
|
135
|
-
→ Detect: REMOVE for ship
|
|
136
|
-
→ Remove all hooks for ship command
|
|
137
|
-
→ Output: "Removed. Ship hooks are no longer active."
|
|
138
|
-
```
|
|
139
|
-
|
|
140
|
-
### Skipping a step
|
|
141
|
-
|
|
142
|
-
```
|
|
143
|
-
User: "p. workflow skip lint on ship"
|
|
144
|
-
|
|
145
|
-
→ Detect: hook=skip, command=ship, action="lint"
|
|
146
|
-
→ Ask scope
|
|
147
|
-
→ User: "just this once"
|
|
148
|
-
→ Save preference with scope=once
|
|
149
|
-
→ Output: "OK. On the next ship, lint will be skipped."
|
|
150
|
-
```
|
|
@@ -1,82 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": "3.0.0",
|
|
3
|
-
"description": "Skill packages from skills.sh for auto-installation during sync",
|
|
4
|
-
"sources": {
|
|
5
|
-
"primary": {
|
|
6
|
-
"name": "skills.sh",
|
|
7
|
-
"url": "https://skills.sh",
|
|
8
|
-
"installCmd": "npx skills add {package}"
|
|
9
|
-
},
|
|
10
|
-
"fallback": {
|
|
11
|
-
"name": "GitHub direct",
|
|
12
|
-
"installFormat": "owner/repo"
|
|
13
|
-
}
|
|
14
|
-
},
|
|
15
|
-
"skillsDirectory": "~/.claude/skills/",
|
|
16
|
-
"skillFormat": {
|
|
17
|
-
"required": ["name", "description"],
|
|
18
|
-
"optional": ["license", "compatibility", "metadata", "allowed-tools"],
|
|
19
|
-
"fileStructure": {
|
|
20
|
-
"required": "SKILL.md",
|
|
21
|
-
"optional": ["scripts/", "references/", "assets/"]
|
|
22
|
-
}
|
|
23
|
-
},
|
|
24
|
-
"agentToSkillMap": {
|
|
25
|
-
"frontend": {
|
|
26
|
-
"packages": [
|
|
27
|
-
"anthropics/skills/frontend-design",
|
|
28
|
-
"vercel-labs/agent-skills/vercel-react-best-practices"
|
|
29
|
-
]
|
|
30
|
-
},
|
|
31
|
-
"uxui": {
|
|
32
|
-
"packages": ["anthropics/skills/frontend-design"]
|
|
33
|
-
},
|
|
34
|
-
"backend": {
|
|
35
|
-
"packages": ["obra/superpowers/systematic-debugging"]
|
|
36
|
-
},
|
|
37
|
-
"database": {
|
|
38
|
-
"packages": []
|
|
39
|
-
},
|
|
40
|
-
"testing": {
|
|
41
|
-
"packages": ["obra/superpowers/test-driven-development", "anthropics/skills/webapp-testing"]
|
|
42
|
-
},
|
|
43
|
-
"devops": {
|
|
44
|
-
"packages": ["anthropics/skills/mcp-builder"]
|
|
45
|
-
},
|
|
46
|
-
"prjct-planner": {
|
|
47
|
-
"packages": ["obra/superpowers/brainstorming"]
|
|
48
|
-
},
|
|
49
|
-
"prjct-shipper": {
|
|
50
|
-
"packages": []
|
|
51
|
-
},
|
|
52
|
-
"prjct-workflow": {
|
|
53
|
-
"packages": []
|
|
54
|
-
}
|
|
55
|
-
},
|
|
56
|
-
"documentSkills": {
|
|
57
|
-
"note": "Official Anthropic document creation skills",
|
|
58
|
-
"source": "anthropics/skills",
|
|
59
|
-
"skills": {
|
|
60
|
-
"pdf": {
|
|
61
|
-
"name": "pdf",
|
|
62
|
-
"description": "Create and edit PDF documents",
|
|
63
|
-
"path": "skills/pdf"
|
|
64
|
-
},
|
|
65
|
-
"docx": {
|
|
66
|
-
"name": "docx",
|
|
67
|
-
"description": "Create and edit Word documents",
|
|
68
|
-
"path": "skills/docx"
|
|
69
|
-
},
|
|
70
|
-
"pptx": {
|
|
71
|
-
"name": "pptx",
|
|
72
|
-
"description": "Create PowerPoint presentations",
|
|
73
|
-
"path": "skills/pptx"
|
|
74
|
-
},
|
|
75
|
-
"xlsx": {
|
|
76
|
-
"name": "xlsx",
|
|
77
|
-
"description": "Create Excel spreadsheets",
|
|
78
|
-
"path": "skills/xlsx"
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
}
|
|
@@ -1,256 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
description: 'Template for generated dashboard context'
|
|
3
|
-
generated-by: 'p. dashboard'
|
|
4
|
-
storage-sources:
|
|
5
|
-
- storage/roadmap.json
|
|
6
|
-
- storage/prds.json
|
|
7
|
-
- storage/shipped.json
|
|
8
|
-
- storage/outcomes.json
|
|
9
|
-
- storage/state.json
|
|
10
|
-
---
|
|
11
|
-
|
|
12
|
-
# Dashboard Context Template
|
|
13
|
-
|
|
14
|
-
This template defines the format for `{globalPath}/context/dashboard.md` generated by `p. dashboard`.
|
|
15
|
-
|
|
16
|
-
---
|
|
17
|
-
|
|
18
|
-
## Template
|
|
19
|
-
|
|
20
|
-
```markdown
|
|
21
|
-
# Dashboard
|
|
22
|
-
|
|
23
|
-
**Project:** {projectName}
|
|
24
|
-
**Generated:** {timestamp}
|
|
25
|
-
|
|
26
|
-
---
|
|
27
|
-
|
|
28
|
-
## Health Score
|
|
29
|
-
|
|
30
|
-
**Overall:** {healthScore}/100
|
|
31
|
-
|
|
32
|
-
| Component | Score | Weight | Contribution |
|
|
33
|
-
|-----------|-------|--------|--------------|
|
|
34
|
-
| Roadmap Progress | {roadmapScore}/100 | 25% | {roadmapContribution} |
|
|
35
|
-
| Estimation Accuracy | {estimationScore}/100 | 25% | {estimationContribution} |
|
|
36
|
-
| Success Rate | {successScore}/100 | 25% | {successContribution} |
|
|
37
|
-
| Velocity Trend | {velocityScore}/100 | 25% | {velocityContribution} |
|
|
38
|
-
|
|
39
|
-
---
|
|
40
|
-
|
|
41
|
-
## Quick Stats
|
|
42
|
-
|
|
43
|
-
| Metric | Value | Trend |
|
|
44
|
-
|--------|-------|-------|
|
|
45
|
-
| Features Shipped | {shippedCount} | {shippedTrend} |
|
|
46
|
-
| PRDs Created | {prdCount} | {prdTrend} |
|
|
47
|
-
| Avg Cycle Time | {avgCycleTime}d | {cycleTrend} |
|
|
48
|
-
| Estimation Accuracy | {estimationAccuracy}% | {accuracyTrend} |
|
|
49
|
-
| Success Rate | {successRate}% | {successTrend} |
|
|
50
|
-
| ROI Score | {avgROI} | {roiTrend} |
|
|
51
|
-
|
|
52
|
-
---
|
|
53
|
-
|
|
54
|
-
## Active Quarter: {activeQuarter.id}
|
|
55
|
-
|
|
56
|
-
**Theme:** {activeQuarter.theme}
|
|
57
|
-
**Status:** {activeQuarter.status}
|
|
58
|
-
|
|
59
|
-
### Progress
|
|
60
|
-
|
|
61
|
-
```
|
|
62
|
-
Features: {featureBar} {quarterFeatureProgress}%
|
|
63
|
-
Capacity: {capacityBar} {capacityUtilization}%
|
|
64
|
-
Timeline: {timelineBar} {timelineProgress}%
|
|
65
|
-
```
|
|
66
|
-
|
|
67
|
-
### Features
|
|
68
|
-
|
|
69
|
-
| Feature | Status | Progress | Owner |
|
|
70
|
-
|---------|--------|----------|-------|
|
|
71
|
-
{FOR EACH feature in quarterFeatures:}
|
|
72
|
-
| {feature.name} | {statusEmoji(feature.status)} | {feature.progress}% | {feature.agent || '-'} |
|
|
73
|
-
{END FOR}
|
|
74
|
-
|
|
75
|
-
---
|
|
76
|
-
|
|
77
|
-
## Current Work
|
|
78
|
-
|
|
79
|
-
### Active Task
|
|
80
|
-
{IF currentTask:}
|
|
81
|
-
**{currentTask.description}**
|
|
82
|
-
|
|
83
|
-
- Type: {currentTask.type}
|
|
84
|
-
- Started: {currentTask.startedAt}
|
|
85
|
-
- Elapsed: {elapsed}
|
|
86
|
-
- Branch: {currentTask.branch?.name || 'N/A'}
|
|
87
|
-
|
|
88
|
-
Subtasks: {completedSubtasks}/{totalSubtasks}
|
|
89
|
-
{ELSE:}
|
|
90
|
-
*No active task*
|
|
91
|
-
{END IF}
|
|
92
|
-
|
|
93
|
-
### In Progress Features
|
|
94
|
-
|
|
95
|
-
{FOR EACH feature in activeFeatures:}
|
|
96
|
-
#### {feature.name}
|
|
97
|
-
|
|
98
|
-
- Progress: {progressBar(feature.progress)} {feature.progress}%
|
|
99
|
-
- Quarter: {feature.quarter || 'Unassigned'}
|
|
100
|
-
- PRD: {feature.prdId || 'None'}
|
|
101
|
-
- Dependencies: {feature.dependencies?.join(', ') || 'None'}
|
|
102
|
-
{END FOR}
|
|
103
|
-
|
|
104
|
-
---
|
|
105
|
-
|
|
106
|
-
## Pipeline
|
|
107
|
-
|
|
108
|
-
```
|
|
109
|
-
PRDs Features Active Shipped
|
|
110
|
-
┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐
|
|
111
|
-
│ Draft │──▶│ Planned │──▶│ Active │──▶│ Shipped │
|
|
112
|
-
│ ({draft}) │ │ ({planned}) │ │ ({active}) │ │ ({shipped}) │
|
|
113
|
-
└─────────┘ └─────────┘ └─────────┘ └─────────┘
|
|
114
|
-
│
|
|
115
|
-
▼
|
|
116
|
-
┌─────────┐
|
|
117
|
-
│Approved │
|
|
118
|
-
│ ({approved}) │
|
|
119
|
-
└─────────┘
|
|
120
|
-
```
|
|
121
|
-
|
|
122
|
-
---
|
|
123
|
-
|
|
124
|
-
## Metrics Trends (Last 4 Weeks)
|
|
125
|
-
|
|
126
|
-
### Velocity
|
|
127
|
-
```
|
|
128
|
-
W-3: {velocityW3Bar} {velocityW3}
|
|
129
|
-
W-2: {velocityW2Bar} {velocityW2}
|
|
130
|
-
W-1: {velocityW1Bar} {velocityW1}
|
|
131
|
-
W-0: {velocityW0Bar} {velocityW0}
|
|
132
|
-
```
|
|
133
|
-
|
|
134
|
-
### Estimation Accuracy
|
|
135
|
-
```
|
|
136
|
-
W-3: {accuracyW3Bar} {accuracyW3}%
|
|
137
|
-
W-2: {accuracyW2Bar} {accuracyW2}%
|
|
138
|
-
W-1: {accuracyW1Bar} {accuracyW1}%
|
|
139
|
-
W-0: {accuracyW0Bar} {accuracyW0}%
|
|
140
|
-
```
|
|
141
|
-
|
|
142
|
-
---
|
|
143
|
-
|
|
144
|
-
## Alerts & Actions
|
|
145
|
-
|
|
146
|
-
### Warnings
|
|
147
|
-
{FOR EACH alert in alerts:}
|
|
148
|
-
- {alert.icon} {alert.message}
|
|
149
|
-
{END FOR}
|
|
150
|
-
|
|
151
|
-
### Suggested Actions
|
|
152
|
-
{FOR EACH action in suggestedActions:}
|
|
153
|
-
1. {action.description}
|
|
154
|
-
- Command: `{action.command}`
|
|
155
|
-
{END FOR}
|
|
156
|
-
|
|
157
|
-
---
|
|
158
|
-
|
|
159
|
-
## Recent Activity
|
|
160
|
-
|
|
161
|
-
| Date | Action | Details |
|
|
162
|
-
|------|--------|---------|
|
|
163
|
-
{FOR EACH event in recentEvents.slice(0, 10):}
|
|
164
|
-
| {event.date} | {event.action} | {event.details} |
|
|
165
|
-
{END FOR}
|
|
166
|
-
|
|
167
|
-
---
|
|
168
|
-
|
|
169
|
-
## Learnings Summary
|
|
170
|
-
|
|
171
|
-
### Top Patterns
|
|
172
|
-
{FOR EACH pattern in topPatterns.slice(0, 5):}
|
|
173
|
-
- {pattern.insight} ({pattern.frequency}x)
|
|
174
|
-
{END FOR}
|
|
175
|
-
|
|
176
|
-
### Improvement Areas
|
|
177
|
-
{FOR EACH area in improvementAreas:}
|
|
178
|
-
- **{area.name}**: {area.suggestion}
|
|
179
|
-
{END FOR}
|
|
180
|
-
|
|
181
|
-
---
|
|
182
|
-
|
|
183
|
-
*Generated by prjct-cli | https://prjct.app*
|
|
184
|
-
```
|
|
185
|
-
|
|
186
|
-
---
|
|
187
|
-
|
|
188
|
-
## Health Score Calculation
|
|
189
|
-
|
|
190
|
-
```javascript
|
|
191
|
-
const healthScore = Math.round(
|
|
192
|
-
(roadmapProgress * 0.25) +
|
|
193
|
-
(estimationAccuracy * 0.25) +
|
|
194
|
-
(successRate * 0.25) +
|
|
195
|
-
(normalizedVelocity * 0.25)
|
|
196
|
-
)
|
|
197
|
-
```
|
|
198
|
-
|
|
199
|
-
| Score Range | Health Level | Color |
|
|
200
|
-
|-------------|--------------|-------|
|
|
201
|
-
| 80-100 | Excellent | Green |
|
|
202
|
-
| 60-79 | Good | Blue |
|
|
203
|
-
| 40-59 | Needs Attention | Yellow |
|
|
204
|
-
| 0-39 | Critical | Red |
|
|
205
|
-
|
|
206
|
-
---
|
|
207
|
-
|
|
208
|
-
## Alert Definitions
|
|
209
|
-
|
|
210
|
-
| Condition | Alert | Severity |
|
|
211
|
-
|-----------|-------|----------|
|
|
212
|
-
| `capacityUtilization > 90` | Quarter capacity nearly full | Warning |
|
|
213
|
-
| `estimationAccuracy < 60` | Estimation accuracy below target | Warning |
|
|
214
|
-
| `activeFeatures.length > 3` | Too many features in progress | Info |
|
|
215
|
-
| `draftPRDs.length > 3` | PRDs awaiting review | Info |
|
|
216
|
-
| `successRate < 70` | Success rate declining | Warning |
|
|
217
|
-
| `velocityTrend < -20` | Velocity dropping | Warning |
|
|
218
|
-
| `currentTask && elapsed > 4h` | Task running long | Info |
|
|
219
|
-
|
|
220
|
-
---
|
|
221
|
-
|
|
222
|
-
## Suggested Actions Matrix
|
|
223
|
-
|
|
224
|
-
| Condition | Suggested Action | Command |
|
|
225
|
-
|-----------|------------------|---------|
|
|
226
|
-
| No active task | Start a task | `p. task` |
|
|
227
|
-
| PRDs in draft | Review PRDs | `p. prd list` |
|
|
228
|
-
| Features pending review | Record impact | `p. impact` |
|
|
229
|
-
| Quarter ending soon | Plan next quarter | `p. plan quarter` |
|
|
230
|
-
| Low estimation accuracy | Analyze estimates | `p. dashboard estimates` |
|
|
231
|
-
|
|
232
|
-
---
|
|
233
|
-
|
|
234
|
-
## Integration with Linear/Jira/Monday
|
|
235
|
-
|
|
236
|
-
The dashboard context maps to PM tool dashboards:
|
|
237
|
-
|
|
238
|
-
| Dashboard Section | Linear | Jira | Monday |
|
|
239
|
-
|-------------------|--------|------|--------|
|
|
240
|
-
| Health Score | Project Health | Dashboard Gadget | Board Overview |
|
|
241
|
-
| Active Quarter | Cycle | Sprint | Timeline |
|
|
242
|
-
| Pipeline | Workflow Board | Kanban | Board |
|
|
243
|
-
| Velocity | Velocity Chart | Velocity Report | Chart Widget |
|
|
244
|
-
| Alerts | Notifications | Issues | Notifications |
|
|
245
|
-
|
|
246
|
-
---
|
|
247
|
-
|
|
248
|
-
## Refresh Frequency
|
|
249
|
-
|
|
250
|
-
| Data Type | Refresh Trigger |
|
|
251
|
-
|-----------|-----------------|
|
|
252
|
-
| Current Task | Real-time (on state change) |
|
|
253
|
-
| Features | On feature status change |
|
|
254
|
-
| Metrics | On `p. dashboard` execution |
|
|
255
|
-
| Aggregates | On `p. impact` completion |
|
|
256
|
-
| Alerts | Calculated on view |
|