@slope-dev/slope 1.64.1 → 2.0.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/README.md +4 -0
- package/dist/cli/commands/agent.d.ts +3 -3
- package/dist/cli/commands/agent.d.ts.map +1 -1
- package/dist/cli/commands/agent.js +20 -12
- package/dist/cli/commands/agent.js.map +1 -1
- package/dist/cli/commands/auto-card.d.ts +2 -1
- package/dist/cli/commands/auto-card.d.ts.map +1 -1
- package/dist/cli/commands/auto-card.js +7 -7
- package/dist/cli/commands/auto-card.js.map +1 -1
- package/dist/cli/commands/briefing.d.ts.map +1 -1
- package/dist/cli/commands/briefing.js +16 -9
- package/dist/cli/commands/briefing.js.map +1 -1
- package/dist/cli/commands/claim.d.ts.map +1 -1
- package/dist/cli/commands/claim.js +6 -4
- package/dist/cli/commands/claim.js.map +1 -1
- package/dist/cli/commands/commit-ready.d.ts.map +1 -1
- package/dist/cli/commands/commit-ready.js.map +1 -1
- package/dist/cli/commands/context.d.ts.map +1 -1
- package/dist/cli/commands/context.js +2 -1
- package/dist/cli/commands/context.js.map +1 -1
- package/dist/cli/commands/dashboard.d.ts.map +1 -1
- package/dist/cli/commands/dashboard.js +3 -3
- package/dist/cli/commands/dashboard.js.map +1 -1
- package/dist/cli/commands/distill.d.ts.map +1 -1
- package/dist/cli/commands/distill.js +8 -20
- package/dist/cli/commands/distill.js.map +1 -1
- package/dist/cli/commands/enrich.d.ts.map +1 -1
- package/dist/cli/commands/enrich.js +2 -1
- package/dist/cli/commands/enrich.js.map +1 -1
- package/dist/cli/commands/escalate.d.ts.map +1 -1
- package/dist/cli/commands/escalate.js +11 -3
- package/dist/cli/commands/escalate.js.map +1 -1
- package/dist/cli/commands/extract.d.ts.map +1 -1
- package/dist/cli/commands/extract.js +20 -6
- package/dist/cli/commands/extract.js.map +1 -1
- package/dist/cli/commands/gate.d.ts.map +1 -1
- package/dist/cli/commands/gate.js +10 -7
- package/dist/cli/commands/gate.js.map +1 -1
- package/dist/cli/commands/index-cmd.d.ts.map +1 -1
- package/dist/cli/commands/index-cmd.js +2 -1
- package/dist/cli/commands/index-cmd.js.map +1 -1
- package/dist/cli/commands/init.d.ts.map +1 -1
- package/dist/cli/commands/init.js +26 -12
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/cli/commands/initiative.d.ts.map +1 -1
- package/dist/cli/commands/initiative.js +9 -8
- package/dist/cli/commands/initiative.js.map +1 -1
- package/dist/cli/commands/inspirations.js +5 -5
- package/dist/cli/commands/inspirations.js.map +1 -1
- package/dist/cli/commands/interview.d.ts.map +1 -1
- package/dist/cli/commands/interview.js +2 -2
- package/dist/cli/commands/interview.js.map +1 -1
- package/dist/cli/commands/issue.d.ts.map +1 -1
- package/dist/cli/commands/issue.js +6 -9
- package/dist/cli/commands/issue.js.map +1 -1
- package/dist/cli/commands/map.d.ts +1 -1
- package/dist/cli/commands/map.d.ts.map +1 -1
- package/dist/cli/commands/map.js +34 -10
- package/dist/cli/commands/map.js.map +1 -1
- package/dist/cli/commands/next.js +2 -2
- package/dist/cli/commands/next.js.map +1 -1
- package/dist/cli/commands/now.d.ts +2 -2
- package/dist/cli/commands/now.d.ts.map +1 -1
- package/dist/cli/commands/now.js +23 -15
- package/dist/cli/commands/now.js.map +1 -1
- package/dist/cli/commands/pr.d.ts +3 -3
- package/dist/cli/commands/pr.d.ts.map +1 -1
- package/dist/cli/commands/pr.js +9 -8
- package/dist/cli/commands/pr.js.map +1 -1
- package/dist/cli/commands/prep.d.ts.map +1 -1
- package/dist/cli/commands/prep.js +2 -1
- package/dist/cli/commands/prep.js.map +1 -1
- package/dist/cli/commands/release.d.ts.map +1 -1
- package/dist/cli/commands/release.js +9 -11
- package/dist/cli/commands/release.js.map +1 -1
- package/dist/cli/commands/retro.d.ts +1 -1
- package/dist/cli/commands/retro.d.ts.map +1 -1
- package/dist/cli/commands/retro.js +35 -11
- package/dist/cli/commands/retro.js.map +1 -1
- package/dist/cli/commands/review-packet.d.ts +2 -2
- package/dist/cli/commands/review-packet.d.ts.map +1 -1
- package/dist/cli/commands/review-packet.js +3 -3
- package/dist/cli/commands/review-packet.js.map +1 -1
- package/dist/cli/commands/review-run.d.ts +3 -2
- package/dist/cli/commands/review-run.d.ts.map +1 -1
- package/dist/cli/commands/review-run.js +4 -4
- package/dist/cli/commands/review-run.js.map +1 -1
- package/dist/cli/commands/review-state.d.ts.map +1 -1
- package/dist/cli/commands/review-state.js +57 -30
- package/dist/cli/commands/review-state.js.map +1 -1
- package/dist/cli/commands/review.js +6 -6
- package/dist/cli/commands/review.js.map +1 -1
- package/dist/cli/commands/roadmap.d.ts.map +1 -1
- package/dist/cli/commands/roadmap.js +138 -78
- package/dist/cli/commands/roadmap.js.map +1 -1
- package/dist/cli/commands/session.d.ts.map +1 -1
- package/dist/cli/commands/session.js +47 -16
- package/dist/cli/commands/session.js.map +1 -1
- package/dist/cli/commands/sprint-plan.d.ts.map +1 -1
- package/dist/cli/commands/sprint-plan.js +10 -8
- package/dist/cli/commands/sprint-plan.js.map +1 -1
- package/dist/cli/commands/sprint.d.ts.map +1 -1
- package/dist/cli/commands/sprint.js +253 -38
- package/dist/cli/commands/sprint.js.map +1 -1
- package/dist/cli/commands/standup.d.ts.map +1 -1
- package/dist/cli/commands/standup.js +9 -4
- package/dist/cli/commands/standup.js.map +1 -1
- package/dist/cli/commands/start.js +2 -2
- package/dist/cli/commands/start.js.map +1 -1
- package/dist/cli/commands/stats.d.ts +4 -4
- package/dist/cli/commands/stats.d.ts.map +1 -1
- package/dist/cli/commands/stats.js +5 -5
- package/dist/cli/commands/stats.js.map +1 -1
- package/dist/cli/commands/status.d.ts +1 -1
- package/dist/cli/commands/status.d.ts.map +1 -1
- package/dist/cli/commands/status.js +12 -8
- package/dist/cli/commands/status.js.map +1 -1
- package/dist/cli/commands/store.d.ts +37 -0
- package/dist/cli/commands/store.d.ts.map +1 -1
- package/dist/cli/commands/store.js +262 -12
- package/dist/cli/commands/store.js.map +1 -1
- package/dist/cli/commands/ticket.d.ts.map +1 -1
- package/dist/cli/commands/ticket.js +4 -4
- package/dist/cli/commands/ticket.js.map +1 -1
- package/dist/cli/commands/tournament.d.ts.map +1 -1
- package/dist/cli/commands/tournament.js +7 -6
- package/dist/cli/commands/tournament.js.map +1 -1
- package/dist/cli/commands/validate.d.ts +4 -3
- package/dist/cli/commands/validate.d.ts.map +1 -1
- package/dist/cli/commands/validate.js +37 -10
- package/dist/cli/commands/validate.js.map +1 -1
- package/dist/cli/commands/version.d.ts +1 -1
- package/dist/cli/commands/version.d.ts.map +1 -1
- package/dist/cli/commands/version.js +13 -10
- package/dist/cli/commands/version.js.map +1 -1
- package/dist/cli/commands/worktree.d.ts.map +1 -1
- package/dist/cli/commands/worktree.js +36 -31
- package/dist/cli/commands/worktree.js.map +1 -1
- package/dist/cli/guards/claim-required.d.ts.map +1 -1
- package/dist/cli/guards/claim-required.js +2 -3
- package/dist/cli/guards/claim-required.js.map +1 -1
- package/dist/cli/guards/compaction.d.ts.map +1 -1
- package/dist/cli/guards/git-utils.d.ts +5 -0
- package/dist/cli/guards/git-utils.d.ts.map +1 -1
- package/dist/cli/guards/git-utils.js +36 -8
- package/dist/cli/guards/git-utils.js.map +1 -1
- package/dist/cli/guards/hazard.d.ts.map +1 -1
- package/dist/cli/guards/hazard.js +8 -7
- package/dist/cli/guards/hazard.js.map +1 -1
- package/dist/cli/guards/next-action.d.ts +5 -5
- package/dist/cli/guards/next-action.d.ts.map +1 -1
- package/dist/cli/guards/next-action.js +8 -8
- package/dist/cli/guards/next-action.js.map +1 -1
- package/dist/cli/guards/phase-boundary.d.ts.map +1 -1
- package/dist/cli/guards/phase-boundary.js +24 -14
- package/dist/cli/guards/phase-boundary.js.map +1 -1
- package/dist/cli/guards/post-hole-enforcement.d.ts.map +1 -1
- package/dist/cli/guards/post-hole-enforcement.js +9 -8
- package/dist/cli/guards/post-hole-enforcement.js.map +1 -1
- package/dist/cli/guards/post-push.d.ts.map +1 -1
- package/dist/cli/guards/post-push.js +7 -3
- package/dist/cli/guards/post-push.js.map +1 -1
- package/dist/cli/guards/review-stale.d.ts.map +1 -1
- package/dist/cli/guards/review-stale.js +6 -4
- package/dist/cli/guards/review-stale.js.map +1 -1
- package/dist/cli/guards/review-tier.d.ts.map +1 -1
- package/dist/cli/guards/review-tier.js +6 -7
- package/dist/cli/guards/review-tier.js.map +1 -1
- package/dist/cli/guards/roadmap-edit-shipped.d.ts.map +1 -1
- package/dist/cli/guards/roadmap-edit-shipped.js +34 -21
- package/dist/cli/guards/roadmap-edit-shipped.js.map +1 -1
- package/dist/cli/guards/scope-drift.d.ts.map +1 -1
- package/dist/cli/guards/scope-drift.js +2 -1
- package/dist/cli/guards/scope-drift.js.map +1 -1
- package/dist/cli/guards/session-briefing.d.ts.map +1 -1
- package/dist/cli/guards/session-briefing.js +34 -13
- package/dist/cli/guards/session-briefing.js.map +1 -1
- package/dist/cli/guards/sprint-completion.d.ts.map +1 -1
- package/dist/cli/guards/sprint-completion.js +32 -16
- package/dist/cli/guards/sprint-completion.js.map +1 -1
- package/dist/cli/guards/stop-check.d.ts.map +1 -1
- package/dist/cli/guards/stop-check.js +8 -10
- package/dist/cli/guards/stop-check.js.map +1 -1
- package/dist/cli/guards/transcript.d.ts.map +1 -1
- package/dist/cli/guards/transcript.js +2 -1
- package/dist/cli/guards/transcript.js.map +1 -1
- package/dist/cli/guards/workflow-step-gate.d.ts.map +1 -1
- package/dist/cli/guards/workflow-step-gate.js +25 -28
- package/dist/cli/guards/workflow-step-gate.js.map +1 -1
- package/dist/cli/guards/worktree-check.d.ts.map +1 -1
- package/dist/cli/guards/worktree-check.js +38 -13
- package/dist/cli/guards/worktree-check.js.map +1 -1
- package/dist/cli/hooks-config.d.ts.map +1 -1
- package/dist/cli/hooks-config.js +6 -4
- package/dist/cli/hooks-config.js.map +1 -1
- package/dist/cli/index.js +1 -1
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/loop/executor.d.ts +1 -0
- package/dist/cli/loop/executor.d.ts.map +1 -1
- package/dist/cli/loop/executor.js +20 -13
- package/dist/cli/loop/executor.js.map +1 -1
- package/dist/cli/loop/pr-lifecycle.d.ts +2 -1
- package/dist/cli/loop/pr-lifecycle.d.ts.map +1 -1
- package/dist/cli/loop/pr-lifecycle.js +14 -8
- package/dist/cli/loop/pr-lifecycle.js.map +1 -1
- package/dist/cli/loop/worktree.d.ts.map +1 -1
- package/dist/cli/loop/worktree.js +1 -48
- package/dist/cli/loop/worktree.js.map +1 -1
- package/dist/cli/pr-closeout.d.ts +3 -2
- package/dist/cli/pr-closeout.d.ts.map +1 -1
- package/dist/cli/pr-closeout.js +14 -6
- package/dist/cli/pr-closeout.js.map +1 -1
- package/dist/cli/pr-review-state.d.ts +8 -7
- package/dist/cli/pr-review-state.d.ts.map +1 -1
- package/dist/cli/pr-review-state.js +3 -2
- package/dist/cli/pr-review-state.js.map +1 -1
- package/dist/cli/pre-sprint-reality.d.ts +4 -4
- package/dist/cli/pre-sprint-reality.d.ts.map +1 -1
- package/dist/cli/pre-sprint-reality.js +9 -2
- package/dist/cli/pre-sprint-reality.js.map +1 -1
- package/dist/cli/registries/api-registry.d.ts +2 -2
- package/dist/cli/registries/api-registry.d.ts.map +1 -1
- package/dist/cli/registries/api-registry.js +1 -1
- package/dist/cli/registries/api-registry.js.map +1 -1
- package/dist/cli/registries/file-registry.d.ts +3 -3
- package/dist/cli/registries/file-registry.d.ts.map +1 -1
- package/dist/cli/registries/file-registry.js +12 -2
- package/dist/cli/registries/file-registry.js.map +1 -1
- package/dist/cli/registries/index.d.ts +1 -1
- package/dist/cli/registries/index.d.ts.map +1 -1
- package/dist/cli/registries/index.js +2 -2
- package/dist/cli/registries/index.js.map +1 -1
- package/dist/cli/registry.d.ts.map +1 -1
- package/dist/cli/registry.js +4 -0
- package/dist/cli/registry.js.map +1 -1
- package/dist/cli/reviewer-agents.d.ts +2 -1
- package/dist/cli/reviewer-agents.d.ts.map +1 -1
- package/dist/cli/reviewer-agents.js.map +1 -1
- package/dist/cli/roadmap-source-migration.d.ts.map +1 -1
- package/dist/cli/roadmap-source-migration.js +15 -13
- package/dist/cli/roadmap-source-migration.js.map +1 -1
- package/dist/cli/roadmap-source-store.d.ts +4 -4
- package/dist/cli/roadmap-source-store.d.ts.map +1 -1
- package/dist/cli/roadmap-source-store.js +38 -32
- package/dist/cli/roadmap-source-store.js.map +1 -1
- package/dist/cli/session-heartbeat.d.ts +12 -0
- package/dist/cli/session-heartbeat.d.ts.map +1 -0
- package/dist/cli/session-heartbeat.js +46 -0
- package/dist/cli/session-heartbeat.js.map +1 -0
- package/dist/cli/session-scope.d.ts.map +1 -1
- package/dist/cli/session-scope.js +4 -16
- package/dist/cli/session-scope.js.map +1 -1
- package/dist/cli/session-state.js +5 -5
- package/dist/cli/session-state.js.map +1 -1
- package/dist/cli/sprint-inference.d.ts +5 -5
- package/dist/cli/sprint-inference.d.ts.map +1 -1
- package/dist/cli/sprint-inference.js +63 -33
- package/dist/cli/sprint-inference.js.map +1 -1
- package/dist/cli/sprint-resume.d.ts +7 -7
- package/dist/cli/sprint-resume.d.ts.map +1 -1
- package/dist/cli/sprint-resume.js +43 -21
- package/dist/cli/sprint-resume.js.map +1 -1
- package/dist/cli/sprint-rollover.d.ts +19 -19
- package/dist/cli/sprint-rollover.d.ts.map +1 -1
- package/dist/cli/sprint-rollover.js +116 -69
- package/dist/cli/sprint-rollover.js.map +1 -1
- package/dist/cli/sprint-state.d.ts +8 -6
- package/dist/cli/sprint-state.d.ts.map +1 -1
- package/dist/cli/sprint-state.js +39 -12
- package/dist/cli/sprint-state.js.map +1 -1
- package/dist/cli/store.d.ts.map +1 -1
- package/dist/cli/store.js +5 -3
- package/dist/cli/store.js.map +1 -1
- package/dist/cli/workflow-closeout.d.ts +11 -0
- package/dist/cli/workflow-closeout.d.ts.map +1 -0
- package/dist/cli/workflow-closeout.js +30 -0
- package/dist/cli/workflow-closeout.js.map +1 -0
- package/dist/cli/workflow-resync.d.ts +13 -9
- package/dist/cli/workflow-resync.d.ts.map +1 -1
- package/dist/cli/workflow-resync.js +75 -22
- package/dist/cli/workflow-resync.js.map +1 -1
- package/dist/core/advisor.d.ts.map +1 -1
- package/dist/core/advisor.js +5 -2
- package/dist/core/advisor.js.map +1 -1
- package/dist/core/analytics.d.ts +2 -2
- package/dist/core/analytics.d.ts.map +1 -1
- package/dist/core/analytics.js +4 -3
- package/dist/core/analytics.js.map +1 -1
- package/dist/core/analyzers/git.d.ts +3 -2
- package/dist/core/analyzers/git.d.ts.map +1 -1
- package/dist/core/analyzers/git.js +6 -5
- package/dist/core/analyzers/git.js.map +1 -1
- package/dist/core/briefing.d.ts +6 -5
- package/dist/core/briefing.d.ts.map +1 -1
- package/dist/core/briefing.js +52 -36
- package/dist/core/briefing.js.map +1 -1
- package/dist/core/builder.d.ts +3 -1
- package/dist/core/builder.d.ts.map +1 -1
- package/dist/core/builder.js +6 -4
- package/dist/core/builder.js.map +1 -1
- package/dist/core/config.d.ts +2 -1
- package/dist/core/config.d.ts.map +1 -1
- package/dist/core/config.js +26 -6
- package/dist/core/config.js.map +1 -1
- package/dist/core/dashboard.d.ts +2 -2
- package/dist/core/dashboard.d.ts.map +1 -1
- package/dist/core/dashboard.js +2 -1
- package/dist/core/dashboard.js.map +1 -1
- package/dist/core/deferred.d.ts +7 -6
- package/dist/core/deferred.d.ts.map +1 -1
- package/dist/core/deferred.js +30 -7
- package/dist/core/deferred.js.map +1 -1
- package/dist/core/enrich.d.ts +1 -1
- package/dist/core/escalation.d.ts +2 -1
- package/dist/core/escalation.d.ts.map +1 -1
- package/dist/core/escalation.js +3 -1
- package/dist/core/escalation.js.map +1 -1
- package/dist/core/event-ingestion.d.ts.map +1 -1
- package/dist/core/event-ingestion.js +8 -3
- package/dist/core/event-ingestion.js.map +1 -1
- package/dist/core/findings.d.ts +6 -4
- package/dist/core/findings.d.ts.map +1 -1
- package/dist/core/findings.js +30 -7
- package/dist/core/findings.js.map +1 -1
- package/dist/core/formatter.d.ts +2 -1
- package/dist/core/formatter.d.ts.map +1 -1
- package/dist/core/formatter.js.map +1 -1
- package/dist/core/generators/roadmap.js +2 -2
- package/dist/core/generators/roadmap.js.map +1 -1
- package/dist/core/index.d.ts +8 -5
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +4 -2
- package/dist/core/index.js.map +1 -1
- package/dist/core/initiative.d.ts +5 -4
- package/dist/core/initiative.d.ts.map +1 -1
- package/dist/core/initiative.js +39 -11
- package/dist/core/initiative.js.map +1 -1
- package/dist/core/inspirations.d.ts +4 -3
- package/dist/core/inspirations.d.ts.map +1 -1
- package/dist/core/inspirations.js +19 -4
- package/dist/core/inspirations.js.map +1 -1
- package/dist/core/interview-engine.d.ts +2 -1
- package/dist/core/interview-engine.d.ts.map +1 -1
- package/dist/core/interview-engine.js +26 -17
- package/dist/core/interview-engine.js.map +1 -1
- package/dist/core/interview-steps.d.ts.map +1 -1
- package/dist/core/interview-steps.js +7 -6
- package/dist/core/interview-steps.js.map +1 -1
- package/dist/core/interview.d.ts +2 -1
- package/dist/core/interview.d.ts.map +1 -1
- package/dist/core/interview.js +13 -7
- package/dist/core/interview.js.map +1 -1
- package/dist/core/issue-scout.d.ts +2 -1
- package/dist/core/issue-scout.d.ts.map +1 -1
- package/dist/core/issue-scout.js.map +1 -1
- package/dist/core/loader.d.ts +4 -4
- package/dist/core/loader.d.ts.map +1 -1
- package/dist/core/loader.js +71 -33
- package/dist/core/loader.js.map +1 -1
- package/dist/core/memory.d.ts.map +1 -1
- package/dist/core/memory.js +16 -6
- package/dist/core/memory.js.map +1 -1
- package/dist/core/org.d.ts +1 -1
- package/dist/core/org.d.ts.map +1 -1
- package/dist/core/org.js +2 -1
- package/dist/core/org.js.map +1 -1
- package/dist/core/pipeline.d.ts +1 -1
- package/dist/core/pipeline.d.ts.map +1 -1
- package/dist/core/pipeline.js +10 -6
- package/dist/core/pipeline.js.map +1 -1
- package/dist/core/player.d.ts.map +1 -1
- package/dist/core/player.js +2 -1
- package/dist/core/player.js.map +1 -1
- package/dist/core/prep.d.ts +3 -3
- package/dist/core/registry.d.ts +6 -2
- package/dist/core/registry.d.ts.map +1 -1
- package/dist/core/registry.js +2 -1
- package/dist/core/registry.js.map +1 -1
- package/dist/core/repo-state-scope.d.ts +27 -0
- package/dist/core/repo-state-scope.d.ts.map +1 -0
- package/dist/core/repo-state-scope.js +105 -0
- package/dist/core/repo-state-scope.js.map +1 -0
- package/dist/core/report.d.ts +1 -1
- package/dist/core/report.d.ts.map +1 -1
- package/dist/core/report.js +2 -1
- package/dist/core/report.js.map +1 -1
- package/dist/core/retro.d.ts +3 -2
- package/dist/core/retro.d.ts.map +1 -1
- package/dist/core/retro.js +6 -3
- package/dist/core/retro.js.map +1 -1
- package/dist/core/roadmap-focus.d.ts +8 -7
- package/dist/core/roadmap-focus.d.ts.map +1 -1
- package/dist/core/roadmap-focus.js +45 -34
- package/dist/core/roadmap-focus.js.map +1 -1
- package/dist/core/roadmap-migration.d.ts +2 -1
- package/dist/core/roadmap-migration.d.ts.map +1 -1
- package/dist/core/roadmap-migration.js +110 -51
- package/dist/core/roadmap-migration.js.map +1 -1
- package/dist/core/roadmap-source-patch.d.ts +2 -1
- package/dist/core/roadmap-source-patch.d.ts.map +1 -1
- package/dist/core/roadmap-source-patch.js +9 -4
- package/dist/core/roadmap-source-patch.js.map +1 -1
- package/dist/core/roadmap-sources.d.ts +2 -1
- package/dist/core/roadmap-sources.d.ts.map +1 -1
- package/dist/core/roadmap-sources.js +38 -26
- package/dist/core/roadmap-sources.js.map +1 -1
- package/dist/core/roadmap.d.ts +22 -16
- package/dist/core/roadmap.d.ts.map +1 -1
- package/dist/core/roadmap.js +152 -84
- package/dist/core/roadmap.js.map +1 -1
- package/dist/core/session-branch.d.ts +17 -0
- package/dist/core/session-branch.d.ts.map +1 -0
- package/dist/core/session-branch.js +85 -0
- package/dist/core/session-branch.js.map +1 -0
- package/dist/core/sprint-id.d.ts +13 -5
- package/dist/core/sprint-id.d.ts.map +1 -1
- package/dist/core/sprint-id.js +16 -0
- package/dist/core/sprint-id.js.map +1 -1
- package/dist/core/standup.d.ts +2 -1
- package/dist/core/standup.d.ts.map +1 -1
- package/dist/core/standup.js.map +1 -1
- package/dist/core/store.d.ts +16 -8
- package/dist/core/store.d.ts.map +1 -1
- package/dist/core/store.js +34 -0
- package/dist/core/store.js.map +1 -1
- package/dist/core/tournament.d.ts.map +1 -1
- package/dist/core/tournament.js +4 -3
- package/dist/core/tournament.js.map +1 -1
- package/dist/core/types.d.ts +9 -7
- package/dist/core/types.d.ts.map +1 -1
- package/dist/core/validation.d.ts +2 -1
- package/dist/core/validation.d.ts.map +1 -1
- package/dist/core/validation.js +2 -1
- package/dist/core/validation.js.map +1 -1
- package/dist/core/webhooks.d.ts +3 -2
- package/dist/core/webhooks.d.ts.map +1 -1
- package/dist/core/webhooks.js +9 -2
- package/dist/core/webhooks.js.map +1 -1
- package/dist/core/workflow-loader.d.ts.map +1 -1
- package/dist/core/workflow-loader.js +2 -1
- package/dist/core/workflow-loader.js.map +1 -1
- package/dist/mcp/index.d.ts +5 -1
- package/dist/mcp/index.d.ts.map +1 -1
- package/dist/mcp/index.js +97 -59
- package/dist/mcp/index.js.map +1 -1
- package/dist/mcp/index.test.js +14 -3
- package/dist/mcp/index.test.js.map +1 -1
- package/dist/mcp/registry.d.ts +1 -1
- package/dist/mcp/registry.d.ts.map +1 -1
- package/dist/mcp/registry.js +36 -28
- package/dist/mcp/registry.js.map +1 -1
- package/dist/store/index.d.ts +13 -11
- package/dist/store/index.d.ts.map +1 -1
- package/dist/store/index.js +217 -36
- package/dist/store/index.js.map +1 -1
- package/dist/store-pg/index.d.ts +18 -12
- package/dist/store-pg/index.d.ts.map +1 -1
- package/dist/store-pg/index.js +124 -38
- package/dist/store-pg/index.js.map +1 -1
- package/package.json +1 -1
- package/templates/codex/plugins/slope/.codex-plugin/plugin.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sprint-plan.js","sourceRoot":"","sources":["../../../src/cli/commands/sprint-plan.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAC7E,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACnD,OAAO,
|
|
1
|
+
{"version":3,"file":"sprint-plan.js","sourceRoot":"","sources":["../../../src/cli/commands/sprint-plan.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sprint.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/sprint.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"sprint.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/sprint.ts"],"names":[],"mappings":"AA6oEA,wBAAsB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAwEjE"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { loadSprintState, loadSprintStateResult, createSprintState, initializeSprintState, mutateSprintState, updateGate, updateSprintPhase, updateSprintPhaseForSprint, clearSprintState, isSprintComplete, isReviewGateSatisfied, isRequiredReviewGate, waivedReviewGateNames, pendingGateNames, pendingGates, isSprintPhase, isReviewGateName, isReviewGateVerdict, validateReviewGateCompletion, SPRINT_PHASES, } from '../sprint-state.js';
|
|
2
|
-
import { WorkflowEngine, loadWorkflow, resolveVariables, validateWorkflow, loadConfig, parseRoadmap, castRoadmapStructure, formatSprintLabel, formatSprintNumber, formatRoadmapSprintLabel,
|
|
2
|
+
import { WorkflowEngine, loadWorkflow, resolveVariables, validateWorkflow, loadConfig, parseRoadmap, castRoadmapStructure, findRoadmapSprint, formatSprintLabel, formatSprintNumber, formatRoadmapSprintLabel, roadmapSprintKey, sprintIdKey, sprintIdsEqual, } from '../../core/index.js';
|
|
3
|
+
import { STALE_SESSION_THRESHOLD_MS } from '../../core/constants.js';
|
|
3
4
|
import { createHash } from 'node:crypto';
|
|
4
5
|
import { formatActorName, formatActorSource, formatConflictSummary, resolveActor } from '../actor.js';
|
|
5
6
|
import { inspectSprintRollover, performSprintRollover, SprintRolloverError, verifySprintRolloverLineage, } from '../sprint-rollover.js';
|
|
@@ -26,8 +27,9 @@ import { join, dirname, basename, isAbsolute, relative } from 'node:path';
|
|
|
26
27
|
import { createStore } from '../../store/index.js';
|
|
27
28
|
import { formatCliError } from '../error-reporter.js';
|
|
28
29
|
import { buildSprintResumePointer, planPortableSprintResume, writeSprintResumePointer, } from '../sprint-resume.js';
|
|
29
|
-
import {
|
|
30
|
+
import { collectSiblingWorktreeReality, findWorktreeOverlaps, formatWorktreeRealitySection, loadRoadmapReality, parseTouchedPaths, } from '../pre-sprint-reality.js';
|
|
30
31
|
import { findStaleWorkflowExecutions, reconcileWorkflowExecutions, sprintLabelForExecution } from '../workflow-resync.js';
|
|
32
|
+
import { WORKFLOW_EXECUTION_ID_ENV } from '../workflow-closeout.js';
|
|
31
33
|
/**
|
|
32
34
|
* Check completion_conditions for a step before allowing completion/skip.
|
|
33
35
|
* Returns null if all conditions met, or an error message string.
|
|
@@ -359,6 +361,17 @@ function sprintNumberForCwd(cwd, sprint) {
|
|
|
359
361
|
const label = sprintLabelForCwd(cwd, sprint);
|
|
360
362
|
return label.startsWith('S') ? label.slice(1) : label;
|
|
361
363
|
}
|
|
364
|
+
function blockingRoadmapIssuesForCanonicalSprint(reality, sprint) {
|
|
365
|
+
if (!reality.roadmap || !reality.validation)
|
|
366
|
+
return [];
|
|
367
|
+
const roadmapSprint = findRoadmapSprint(reality.roadmap, sprint);
|
|
368
|
+
if (!roadmapSprint)
|
|
369
|
+
return [];
|
|
370
|
+
const label = formatRoadmapSprintLabel(reality.roadmap, roadmapSprintKey(reality.roadmap, roadmapSprint));
|
|
371
|
+
return [...reality.validation.errors, ...reality.validation.warnings]
|
|
372
|
+
.filter(issue => issue.message.startsWith(`${label} `))
|
|
373
|
+
.filter(issue => /has shipped commits on main|has a scorecard/.test(issue.message));
|
|
374
|
+
}
|
|
362
375
|
function actorRetryOption(args) {
|
|
363
376
|
for (const flag of ['--actor', '--player']) {
|
|
364
377
|
const value = findOptionValue(args, flag);
|
|
@@ -421,18 +434,24 @@ function requireMatchingSprintOrRollover(cwd, state, requestedSprint, action, re
|
|
|
421
434
|
console.error(`After restoring the tracked rollover audit, retry: ${retryCommand}`);
|
|
422
435
|
process.exit(1);
|
|
423
436
|
}
|
|
424
|
-
if (state.sprint
|
|
437
|
+
if (sprintIdsEqual(state.sprint, requestedSprint))
|
|
425
438
|
return true;
|
|
426
439
|
let assessment;
|
|
427
440
|
try {
|
|
428
|
-
assessment = inspectSprintRollover(cwd, {
|
|
441
|
+
assessment = inspectSprintRollover(cwd, {
|
|
442
|
+
from: state.sprint,
|
|
443
|
+
to: requestedSprint,
|
|
444
|
+
});
|
|
429
445
|
}
|
|
430
446
|
catch (error) {
|
|
431
447
|
console.error(`Refusing to ${action}: ${error.message}`);
|
|
432
448
|
console.error(`After resolving the sprint state, retry: ${retryCommand}`);
|
|
433
449
|
process.exit(1);
|
|
434
450
|
}
|
|
435
|
-
if (assessment.from_sprint
|
|
451
|
+
if (assessment.from_sprint
|
|
452
|
+
&& assessment.to_sprint
|
|
453
|
+
&& roadmapSprintKey(assessment.roadmap, assessment.from_sprint)
|
|
454
|
+
=== roadmapSprintKey(assessment.roadmap, assessment.to_sprint))
|
|
436
455
|
return true;
|
|
437
456
|
console.error(`Refusing to ${action} — sprint-state.json is for ${assessment.from_label}, not ${assessment.to_label}.`);
|
|
438
457
|
const eligibilityIssues = assessment.issues.filter(issue => issue.code !== 'from_not_terminal');
|
|
@@ -521,8 +540,8 @@ function rolloverCommand(args, cwd) {
|
|
|
521
540
|
}
|
|
522
541
|
errors.push(`Unknown rollover option: ${arg}`);
|
|
523
542
|
}
|
|
524
|
-
const from = fromValue ?
|
|
525
|
-
const to = toValue ?
|
|
543
|
+
const from = fromValue ? sprintIdKey(fromValue) : null;
|
|
544
|
+
const to = toValue ? sprintIdKey(toValue) : null;
|
|
526
545
|
if (from == null)
|
|
527
546
|
errors.push('--from must be a positive sprint id');
|
|
528
547
|
if (to == null)
|
|
@@ -573,9 +592,9 @@ async function beginCommand(args, cwd) {
|
|
|
573
592
|
console.error('Bundles: sprint start + claim + briefing + prep --lite\n');
|
|
574
593
|
process.exit(1);
|
|
575
594
|
}
|
|
576
|
-
const sprint =
|
|
595
|
+
const sprint = sprintIdKey(sprintValue);
|
|
577
596
|
const ticket = ticketValue;
|
|
578
|
-
if (
|
|
597
|
+
if (sprint === null || !ticket) {
|
|
579
598
|
console.error('Error: --sprint must be a positive sprint id; --ticket must be a non-empty key');
|
|
580
599
|
process.exit(1);
|
|
581
600
|
}
|
|
@@ -693,8 +712,8 @@ async function startCommand(args, cwd) {
|
|
|
693
712
|
console.error('Error: --number=N is required. Usage: slope sprint start --number=22');
|
|
694
713
|
process.exit(1);
|
|
695
714
|
}
|
|
696
|
-
const sprint =
|
|
697
|
-
if (
|
|
715
|
+
const sprint = sprintIdKey(numberValue);
|
|
716
|
+
if (sprint === null) {
|
|
698
717
|
console.error('Error: --number must be a positive sprint id, e.g. 114 or 114.5.');
|
|
699
718
|
process.exit(1);
|
|
700
719
|
}
|
|
@@ -735,7 +754,7 @@ async function startCommand(args, cwd) {
|
|
|
735
754
|
return;
|
|
736
755
|
}
|
|
737
756
|
const roadmapReality = loadRoadmapReality(cwd);
|
|
738
|
-
const blockingRoadmapIssues =
|
|
757
|
+
const blockingRoadmapIssues = blockingRoadmapIssuesForCanonicalSprint(roadmapReality, sprint);
|
|
739
758
|
if (blockingRoadmapIssues.length > 0 && !force) {
|
|
740
759
|
console.error(`\nPre-sprint reality check failed for ${sprintLabel}:`);
|
|
741
760
|
for (const issue of blockingRoadmapIssues) {
|
|
@@ -922,9 +941,105 @@ function formatReviewGateStatus(state, gate) {
|
|
|
922
941
|
return `manual_override (weaker); reason=${review.notes}`;
|
|
923
942
|
}
|
|
924
943
|
}
|
|
925
|
-
function
|
|
944
|
+
function claimOwnerLiveness(claim, sessions, now = Date.now()) {
|
|
945
|
+
if (!claim.session_id)
|
|
946
|
+
return 'unscoped';
|
|
947
|
+
const session = sessions.get(claim.session_id);
|
|
948
|
+
if (!session)
|
|
949
|
+
return 'missing';
|
|
950
|
+
return now - new Date(session.last_heartbeat_at).getTime() > STALE_SESSION_THRESHOLD_MS
|
|
951
|
+
? 'stale'
|
|
952
|
+
: 'live';
|
|
953
|
+
}
|
|
954
|
+
function projectSprintStatusClaims(claims, sessions) {
|
|
955
|
+
const sessionsById = new Map(sessions.map(session => [session.session_id, session]));
|
|
956
|
+
const now = Date.now();
|
|
957
|
+
const projected = claims.map(claim => ({
|
|
958
|
+
player: claim.player,
|
|
959
|
+
target: claim.target,
|
|
960
|
+
scope: claim.scope,
|
|
961
|
+
session_id: claim.session_id ?? null,
|
|
962
|
+
owner_liveness: claimOwnerLiveness(claim, sessionsById, now),
|
|
963
|
+
}));
|
|
964
|
+
const actors = new Map();
|
|
965
|
+
for (const claim of projected) {
|
|
966
|
+
const key = `${claim.player}\0${claim.session_id ?? ''}`;
|
|
967
|
+
actors.set(key, {
|
|
968
|
+
player: claim.player,
|
|
969
|
+
session_id: claim.session_id,
|
|
970
|
+
liveness: claim.owner_liveness,
|
|
971
|
+
});
|
|
972
|
+
}
|
|
973
|
+
return { claims: projected, actors: [...actors.values()] };
|
|
974
|
+
}
|
|
975
|
+
function projectWorkflowStatus(exec) {
|
|
976
|
+
return {
|
|
977
|
+
execution_id: exec.id,
|
|
978
|
+
workflow: exec.workflow_name,
|
|
979
|
+
sprint: exec.sprint_id ?? null,
|
|
980
|
+
status: exec.status,
|
|
981
|
+
phase: exec.current_phase ?? null,
|
|
982
|
+
step: exec.current_step ?? null,
|
|
983
|
+
completed_steps: exec.completed_steps.length,
|
|
984
|
+
started_at: exec.started_at,
|
|
985
|
+
updated_at: exec.updated_at,
|
|
986
|
+
};
|
|
987
|
+
}
|
|
988
|
+
function printSprintStatusUsage() {
|
|
989
|
+
console.log(`
|
|
990
|
+
slope sprint status [sprint_id] [--json]
|
|
991
|
+
|
|
992
|
+
Show the active sprint lifecycle state and claims. When a sprint_id is
|
|
993
|
+
provided, show its workflow execution instead.
|
|
994
|
+
|
|
995
|
+
Options:
|
|
996
|
+
--json Emit structured JSON
|
|
997
|
+
--help Show this usage
|
|
998
|
+
`);
|
|
999
|
+
}
|
|
1000
|
+
function parseSprintStatusOptions(args) {
|
|
1001
|
+
let sprintId;
|
|
1002
|
+
let json = false;
|
|
1003
|
+
let help = false;
|
|
1004
|
+
for (const arg of args) {
|
|
1005
|
+
if (arg === '--json') {
|
|
1006
|
+
json = true;
|
|
1007
|
+
}
|
|
1008
|
+
else if (arg === '--help' || arg === '-h') {
|
|
1009
|
+
help = true;
|
|
1010
|
+
}
|
|
1011
|
+
else if (arg.startsWith('-')) {
|
|
1012
|
+
console.error(`Error: Unknown option: ${arg}`);
|
|
1013
|
+
console.error('Usage: slope sprint status [sprint_id] [--json]');
|
|
1014
|
+
process.exit(1);
|
|
1015
|
+
}
|
|
1016
|
+
else if (!sprintId) {
|
|
1017
|
+
sprintId = arg;
|
|
1018
|
+
}
|
|
1019
|
+
else {
|
|
1020
|
+
console.error(`Error: Unexpected argument: ${arg}`);
|
|
1021
|
+
console.error('Usage: slope sprint status [sprint_id] [--json]');
|
|
1022
|
+
process.exit(1);
|
|
1023
|
+
}
|
|
1024
|
+
}
|
|
1025
|
+
return { sprintId, json, help };
|
|
1026
|
+
}
|
|
1027
|
+
async function statusCommand(cwd, store, json = false) {
|
|
926
1028
|
const state = loadSprintState(cwd);
|
|
927
1029
|
if (!state) {
|
|
1030
|
+
if (json) {
|
|
1031
|
+
console.log(JSON.stringify({
|
|
1032
|
+
mode: 'lifecycle',
|
|
1033
|
+
sprint: null,
|
|
1034
|
+
status: 'not_started',
|
|
1035
|
+
phase: null,
|
|
1036
|
+
gates: null,
|
|
1037
|
+
review_gates: null,
|
|
1038
|
+
actors: [],
|
|
1039
|
+
claims: [],
|
|
1040
|
+
}, null, 2));
|
|
1041
|
+
return;
|
|
1042
|
+
}
|
|
928
1043
|
console.log('No active sprint state.');
|
|
929
1044
|
return;
|
|
930
1045
|
}
|
|
@@ -942,7 +1057,27 @@ function statusCommand(cwd) {
|
|
|
942
1057
|
const phaseContext = closedOut
|
|
943
1058
|
? complete ? ' (merged; all gates complete)' : ' (phase: complete)'
|
|
944
1059
|
: complete ? ' (all gates complete)' : ` (phase: ${state.phase})`;
|
|
945
|
-
|
|
1060
|
+
const sprint = sprintNumberForCwd(cwd, state.sprint);
|
|
1061
|
+
const storedClaims = await store.getActiveClaims(state.sprint);
|
|
1062
|
+
const { claims, actors } = projectSprintStatusClaims(storedClaims, await store.getActiveSessions());
|
|
1063
|
+
const pending = pendingGateNames(state);
|
|
1064
|
+
if (json) {
|
|
1065
|
+
console.log(JSON.stringify({
|
|
1066
|
+
mode: 'lifecycle',
|
|
1067
|
+
sprint,
|
|
1068
|
+
status: derivedStatus,
|
|
1069
|
+
phase: state.phase,
|
|
1070
|
+
started_at: state.started_at,
|
|
1071
|
+
updated_at: state.updated_at,
|
|
1072
|
+
gates: state.gates,
|
|
1073
|
+
review_gates: state.review_gates,
|
|
1074
|
+
pending_gates: pending,
|
|
1075
|
+
actors,
|
|
1076
|
+
claims,
|
|
1077
|
+
}, null, 2));
|
|
1078
|
+
return;
|
|
1079
|
+
}
|
|
1080
|
+
console.log(`Sprint ${sprint} - status: ${derivedStatus}${phaseContext}`);
|
|
946
1081
|
console.log(`Started: ${state.started_at}`);
|
|
947
1082
|
console.log(`Updated: ${state.updated_at}`);
|
|
948
1083
|
console.log('');
|
|
@@ -960,6 +1095,37 @@ function statusCommand(cwd) {
|
|
|
960
1095
|
console.log(` ${marker} ${gate}`);
|
|
961
1096
|
}
|
|
962
1097
|
}
|
|
1098
|
+
console.log('\nActors:');
|
|
1099
|
+
if (actors.length === 0) {
|
|
1100
|
+
console.log(' none');
|
|
1101
|
+
}
|
|
1102
|
+
else {
|
|
1103
|
+
for (const actor of actors) {
|
|
1104
|
+
const session = actor.session_id ? ` (session ${actor.session_id})` : '';
|
|
1105
|
+
console.log(` ${actor.player}: ${actor.liveness}${session}`);
|
|
1106
|
+
}
|
|
1107
|
+
}
|
|
1108
|
+
console.log('\nActive claims:');
|
|
1109
|
+
if (claims.length === 0) {
|
|
1110
|
+
console.log(' none');
|
|
1111
|
+
}
|
|
1112
|
+
else {
|
|
1113
|
+
const claimsByPlayer = new Map();
|
|
1114
|
+
for (const claim of claims) {
|
|
1115
|
+
const playerClaims = claimsByPlayer.get(claim.player) ?? [];
|
|
1116
|
+
playerClaims.push(claim);
|
|
1117
|
+
claimsByPlayer.set(claim.player, playerClaims);
|
|
1118
|
+
}
|
|
1119
|
+
for (const [player, playerClaims] of claimsByPlayer) {
|
|
1120
|
+
console.log(` ${player}:`);
|
|
1121
|
+
for (const claim of playerClaims) {
|
|
1122
|
+
const session = claim.session_id
|
|
1123
|
+
? ` (session ${claim.session_id}; owner ${claim.owner_liveness})`
|
|
1124
|
+
: ' (unscoped owner)';
|
|
1125
|
+
console.log(` [${claim.scope}] ${claim.target}${session}`);
|
|
1126
|
+
}
|
|
1127
|
+
}
|
|
1128
|
+
}
|
|
963
1129
|
if (!complete) {
|
|
964
1130
|
const pendingNames = pendingGateNames(state);
|
|
965
1131
|
const pendingLabels = pendingGates(state);
|
|
@@ -1004,7 +1170,15 @@ async function autoRunCommandSteps(execId, def, store, cwd) {
|
|
|
1004
1170
|
console.log(` Running: ${cmd}`);
|
|
1005
1171
|
let exitCode = 0;
|
|
1006
1172
|
try {
|
|
1007
|
-
execSync(cmd, {
|
|
1173
|
+
execSync(cmd, {
|
|
1174
|
+
cwd,
|
|
1175
|
+
stdio: 'inherit',
|
|
1176
|
+
timeout: 60000,
|
|
1177
|
+
env: {
|
|
1178
|
+
...process.env,
|
|
1179
|
+
[WORKFLOW_EXECUTION_ID_ENV]: execId,
|
|
1180
|
+
},
|
|
1181
|
+
});
|
|
1008
1182
|
}
|
|
1009
1183
|
catch (err) {
|
|
1010
1184
|
exitCode = err.status ?? 1;
|
|
@@ -1027,8 +1201,8 @@ function getStore(cwd) {
|
|
|
1027
1201
|
function roadmapTicketKeysForSprint(cwd, sprintId) {
|
|
1028
1202
|
if (!sprintId)
|
|
1029
1203
|
return [];
|
|
1030
|
-
const
|
|
1031
|
-
if (
|
|
1204
|
+
const sprintKey = sprintIdKey(sprintId);
|
|
1205
|
+
if (sprintKey === null)
|
|
1032
1206
|
return [];
|
|
1033
1207
|
const config = loadConfig(cwd);
|
|
1034
1208
|
if (!config.roadmapPath)
|
|
@@ -1040,7 +1214,7 @@ function roadmapTicketKeysForSprint(cwd, sprintId) {
|
|
|
1040
1214
|
const raw = JSON.parse(readFileSync(roadmapPath, 'utf8'));
|
|
1041
1215
|
const parsed = parseRoadmap(raw);
|
|
1042
1216
|
const roadmap = parsed.roadmap ?? castRoadmapStructure(raw);
|
|
1043
|
-
const sprint = roadmap
|
|
1217
|
+
const sprint = roadmap ? findRoadmapSprint(roadmap, sprintKey) : undefined;
|
|
1044
1218
|
return sprint?.tickets.map(t => t.key).filter(Boolean) ?? [];
|
|
1045
1219
|
}
|
|
1046
1220
|
catch {
|
|
@@ -1107,8 +1281,7 @@ function workflowPhaseToSprintPhase(workflowPhase) {
|
|
|
1107
1281
|
function sprintNumberFromId(sprintId) {
|
|
1108
1282
|
if (!sprintId)
|
|
1109
1283
|
return null;
|
|
1110
|
-
|
|
1111
|
-
return Number.isFinite(parsed) && parsed > 0 ? parsed : null;
|
|
1284
|
+
return sprintIdKey(sprintId);
|
|
1112
1285
|
}
|
|
1113
1286
|
function syncSprintStateWithWorkflow(cwd, sprintId, workflowPhase) {
|
|
1114
1287
|
const nextPhase = workflowPhaseToSprintPhase(workflowPhase);
|
|
@@ -1120,12 +1293,12 @@ function syncSprintStateWithWorkflow(cwd, sprintId, workflowPhase) {
|
|
|
1120
1293
|
initializeSprintState(cwd, createSprintState(sprint, nextPhase));
|
|
1121
1294
|
return;
|
|
1122
1295
|
}
|
|
1123
|
-
if (existing.sprint
|
|
1296
|
+
if (!sprintIdsEqual(existing.sprint, sprint) || existing.phase === 'complete')
|
|
1124
1297
|
return;
|
|
1125
1298
|
if (SPRINT_PHASE_ORDER[nextPhase] <= SPRINT_PHASE_ORDER[existing.phase])
|
|
1126
1299
|
return;
|
|
1127
1300
|
mutateSprintState(cwd, current => {
|
|
1128
|
-
if (current.sprint
|
|
1301
|
+
if (!sprintIdsEqual(current.sprint, sprint) || current.phase === 'complete')
|
|
1129
1302
|
return false;
|
|
1130
1303
|
if (SPRINT_PHASE_ORDER[nextPhase] <= SPRINT_PHASE_ORDER[current.phase])
|
|
1131
1304
|
return false;
|
|
@@ -1134,7 +1307,7 @@ function syncSprintStateWithWorkflow(cwd, sprintId, workflowPhase) {
|
|
|
1134
1307
|
});
|
|
1135
1308
|
}
|
|
1136
1309
|
async function runWorkflowCommand(args, cwd) {
|
|
1137
|
-
const
|
|
1310
|
+
const explicitSprintValue = sprintIdFromRunArgs(args);
|
|
1138
1311
|
const workflowArg = args.find(a => a.startsWith('--workflow='));
|
|
1139
1312
|
const varArgs = [];
|
|
1140
1313
|
for (let i = 0; i < args.length; i++) {
|
|
@@ -1153,8 +1326,8 @@ async function runWorkflowCommand(args, cwd) {
|
|
|
1153
1326
|
const workflowName = workflowArg.slice('--workflow='.length);
|
|
1154
1327
|
// Parse variables
|
|
1155
1328
|
const vars = {};
|
|
1156
|
-
if (
|
|
1157
|
-
vars.sprint_id =
|
|
1329
|
+
if (explicitSprintValue)
|
|
1330
|
+
vars.sprint_id = explicitSprintValue;
|
|
1158
1331
|
for (const v of varArgs) {
|
|
1159
1332
|
const kv = v.slice('--var='.length);
|
|
1160
1333
|
const eq = kv.indexOf('=');
|
|
@@ -1162,7 +1335,12 @@ async function runWorkflowCommand(args, cwd) {
|
|
|
1162
1335
|
vars[kv.slice(0, eq)] = kv.slice(eq + 1);
|
|
1163
1336
|
}
|
|
1164
1337
|
}
|
|
1165
|
-
const
|
|
1338
|
+
const rawSprintId = explicitSprintValue ?? vars.sprint_id;
|
|
1339
|
+
const sprintId = rawSprintId ? sprintIdKey(rawSprintId) ?? undefined : undefined;
|
|
1340
|
+
if (rawSprintId && !sprintId) {
|
|
1341
|
+
console.error(`Error: invalid sprint id "${rawSprintId}".`);
|
|
1342
|
+
process.exit(1);
|
|
1343
|
+
}
|
|
1166
1344
|
// Load and validate workflow
|
|
1167
1345
|
const def = loadWorkflow(workflowName, cwd);
|
|
1168
1346
|
const validation = validateWorkflow(def);
|
|
@@ -1173,7 +1351,7 @@ async function runWorkflowCommand(args, cwd) {
|
|
|
1173
1351
|
}
|
|
1174
1352
|
process.exit(1);
|
|
1175
1353
|
}
|
|
1176
|
-
applyWorkflowVariableDefaults(def, vars, cwd,
|
|
1354
|
+
applyWorkflowVariableDefaults(def, vars, cwd, rawSprintId);
|
|
1177
1355
|
// Resolve variables
|
|
1178
1356
|
const resolved = resolveVariables(def, vars);
|
|
1179
1357
|
// Start execution
|
|
@@ -1213,28 +1391,61 @@ async function runWorkflowCommand(args, cwd) {
|
|
|
1213
1391
|
}
|
|
1214
1392
|
}
|
|
1215
1393
|
async function workflowStatusCommand(args, cwd) {
|
|
1216
|
-
const
|
|
1394
|
+
const options = parseSprintStatusOptions(args);
|
|
1395
|
+
if (options.help) {
|
|
1396
|
+
printSprintStatusUsage();
|
|
1397
|
+
return;
|
|
1398
|
+
}
|
|
1399
|
+
const sprintArg = options.sprintId;
|
|
1217
1400
|
let store = null;
|
|
1218
1401
|
try {
|
|
1219
1402
|
store = getStore(cwd);
|
|
1220
1403
|
if (sprintArg) {
|
|
1221
1404
|
const exec = await store.getExecutionBySprint(sprintArg);
|
|
1222
1405
|
if (!exec) {
|
|
1223
|
-
|
|
1406
|
+
if (options.json) {
|
|
1407
|
+
console.log(JSON.stringify({
|
|
1408
|
+
mode: 'workflow',
|
|
1409
|
+
kind: 'not_found',
|
|
1410
|
+
sprint: sprintArg,
|
|
1411
|
+
execution: null,
|
|
1412
|
+
}, null, 2));
|
|
1413
|
+
}
|
|
1414
|
+
else {
|
|
1415
|
+
console.log(`No active workflow execution for sprint ${sprintArg}.`);
|
|
1416
|
+
}
|
|
1224
1417
|
return;
|
|
1225
1418
|
}
|
|
1226
|
-
|
|
1419
|
+
if (options.json) {
|
|
1420
|
+
console.log(JSON.stringify({
|
|
1421
|
+
mode: 'workflow',
|
|
1422
|
+
kind: 'execution',
|
|
1423
|
+
execution: projectWorkflowStatus(exec),
|
|
1424
|
+
}, null, 2));
|
|
1425
|
+
}
|
|
1426
|
+
else {
|
|
1427
|
+
printExecution(exec);
|
|
1428
|
+
}
|
|
1227
1429
|
}
|
|
1228
1430
|
else {
|
|
1229
1431
|
const active = await store.listExecutions({ status: 'running' });
|
|
1230
1432
|
if (active.length === 0) {
|
|
1231
1433
|
// Fall through to legacy status
|
|
1232
|
-
statusCommand(cwd);
|
|
1434
|
+
await statusCommand(cwd, store, options.json);
|
|
1233
1435
|
return;
|
|
1234
1436
|
}
|
|
1235
|
-
|
|
1236
|
-
|
|
1237
|
-
|
|
1437
|
+
if (options.json) {
|
|
1438
|
+
console.log(JSON.stringify({
|
|
1439
|
+
mode: 'workflow',
|
|
1440
|
+
kind: 'list',
|
|
1441
|
+
executions: active.map(projectWorkflowStatus),
|
|
1442
|
+
}, null, 2));
|
|
1443
|
+
}
|
|
1444
|
+
else {
|
|
1445
|
+
console.log(`\n${active.length} active workflow execution(s):\n`);
|
|
1446
|
+
for (const exec of active) {
|
|
1447
|
+
printExecution(exec);
|
|
1448
|
+
}
|
|
1238
1449
|
}
|
|
1239
1450
|
}
|
|
1240
1451
|
}
|
|
@@ -1336,7 +1547,7 @@ function parsePortableResumeFlags(args) {
|
|
|
1336
1547
|
for (const arg of args) {
|
|
1337
1548
|
if (arg.startsWith('--sprint=')) {
|
|
1338
1549
|
const raw = arg.slice('--sprint='.length);
|
|
1339
|
-
const sprint =
|
|
1550
|
+
const sprint = sprintIdKey(raw);
|
|
1340
1551
|
if (sprint)
|
|
1341
1552
|
flags.sprint = sprint;
|
|
1342
1553
|
else
|
|
@@ -1387,7 +1598,11 @@ async function portableResumeCommand(args, cwd) {
|
|
|
1387
1598
|
}
|
|
1388
1599
|
const phase = flags.phase ?? current?.phase ?? 'implementing';
|
|
1389
1600
|
const resumeClaims = await collectResumeClaimPointers(cwd, sprint);
|
|
1390
|
-
const pointer = buildSprintResumePointer(cwd, config, {
|
|
1601
|
+
const pointer = buildSprintResumePointer(cwd, config, {
|
|
1602
|
+
sprint,
|
|
1603
|
+
phase,
|
|
1604
|
+
resumeClaims,
|
|
1605
|
+
});
|
|
1391
1606
|
const outputPath = flags.output ? (isAbsolute(flags.output) ? flags.output : join(cwd, flags.output)) : undefined;
|
|
1392
1607
|
const written = writeSprintResumePointer(cwd, pointer, outputPath);
|
|
1393
1608
|
console.log(`Sprint resume pointer written: ${written}`);
|
|
@@ -1848,7 +2063,8 @@ Legacy commands:
|
|
|
1848
2063
|
Review gates require independent evidence, PR review evidence,
|
|
1849
2064
|
required reviews need independent evidence or an explicit
|
|
1850
2065
|
--waive-independent-review downgrade; optional reviews may use self_review
|
|
1851
|
-
slope sprint status
|
|
2066
|
+
slope sprint status [sprint_id] [--json]
|
|
2067
|
+
Show sprint state, claims, or workflow progress
|
|
1852
2068
|
slope sprint resume --portable [--from=path] [--force] [--dry-run]
|
|
1853
2069
|
Reconstruct local sprint state from tracked artifacts
|
|
1854
2070
|
slope sprint resume --write-pointer [--output=path]
|
|
@@ -1858,7 +2074,6 @@ Legacy commands:
|
|
|
1858
2074
|
Workflow commands:
|
|
1859
2075
|
slope sprint run <id> --workflow=<name> [--var k=v ...] Start workflow execution
|
|
1860
2076
|
tickets accepts a list/JSON array or count (tickets=3)
|
|
1861
|
-
slope sprint status [sprint_id] Show workflow execution progress
|
|
1862
2077
|
slope sprint resume <sprint_id> Resume a paused workflow execution
|
|
1863
2078
|
slope sprint pause <sprint_id> Pause a running workflow execution
|
|
1864
2079
|
slope sprint context <sprint_id> Show current workflow step and remaining work
|