# Sprint 015 - Operations CLI ## Topic & Scope - Surface orchestrator and scheduler capabilities via CLI - Add job management, dead-letter handling, and scheduler preview - Working directory: `src/Cli/` - Expected evidence: CLI commands, Doctor checks ## Dependencies & Concurrency - No upstream sprint dependencies - Can run in parallel with sprints 004-014, 016-017 - Depends on existing Orchestrator and Scheduler services ## Documentation Prerequisites - `docs/modules/orchestrator/architecture.md` - `docs/modules/scheduler/architecture.md` - `docs/product/advisories/17-Jan-2026 - Features Gap.md` (Batch 12) ## Delivery Tracker ### OPS-001 - Add `stella orchestrator jobs list/show` commands Status: DONE Dependency: none Owners: Developer Task description: - Create OrchestratorCommandGroup.cs with jobs subcommands - List jobs with filtering by status, type, and time range - Show detailed job information including steps and timing Completion criteria: - [x] `stella orchestrator jobs list` returns job list - [x] Supports `--status pending|running|completed|failed` filter - [x] Supports `--type ` filter - [x] Supports `--from` and `--to` time range - [x] `stella orchestrator jobs show ` returns job details - [x] Supports `--format json|table` ### OPS-002 - Add `stella orchestrator jobs retry/cancel` commands Status: DONE Dependency: OPS-001 Owners: Developer Task description: - Add job lifecycle management commands - Retry failed jobs with optional parameter override - Cancel pending or running jobs Completion criteria: - [x] `stella orchestrator jobs retry ` retries failed job - [x] Supports `--force` to retry non-failed jobs - [x] `stella orchestrator jobs cancel ` cancels job - [x] Cancel only works on pending/running jobs - [x] Operations require appropriate permissions ### OPS-003 - Add `stella orchestrator deadletter list/show/replay` commands Status: DONE Dependency: none Owners: Developer Task description: - Add dead-letter queue management commands - List messages in dead-letter queue - Show message details and failure reason - Replay messages back to processing queue Completion criteria: - [x] `stella orchestrator deadletter list` returns DLQ messages - [ ] `stella orchestrator deadletter show ` shows message details - [x] Details include original message, failure reason, retry count - [x] `stella orchestrator deadletter replay ` replays message - [x] `stella orchestrator deadletter replay --all` replays all messages - [x] Supports `--format json|table` ### OPS-004 - Add `stella scheduler preview` command Status: DONE Dependency: none Owners: Developer Task description: - Add scheduler preview command - Show upcoming scheduled jobs for a time window - Include job type, schedule expression, and next run time Completion criteria: - [x] `stella scheduler preview` shows upcoming jobs - [x] Supports `--window 24h|7d|30d` for preview window - [x] Output includes job name, schedule, next run time - [x] Supports `--format json|table` ### OPS-005 - Add Doctor checks for job queue health Status: DONE Dependency: none Owners: Developer Task description: - Add Doctor check for job queue health - Monitor queue depth, processing rate, and DLQ size - Alert on backlog or high DLQ count Completion criteria: - [x] `stella doctor --check check.operations.queue` runs queue check - [x] Check monitors pending job count - [x] Check monitors processing rate - [x] Check monitors DLQ size - [x] Warns on backlog > threshold - [x] Warns on DLQ > threshold - [x] Remediation hints for queue issues ## Execution Log | Date (UTC) | Update | Owner | | --- | --- | --- | | 2026-01-17 | Sprint created from Features Gap advisory Batch 12 | Planning | | 2026-01-16 | OPS-001, OPS-002: Created OrchestratorCommandGroup.cs with jobs commands | Developer | | 2026-01-16 | OPS-003: Added deadletter list/replay commands | Developer | | 2026-01-16 | OPS-004: Created scheduler preview and list commands | Developer | | 2026-01-16 | OPS-005: Created Operations Doctor plugin with job queue, dead letter, and scheduler checks | Developer | ## Decisions & Risks - Job retry may cause duplicate processing; idempotency required - DLQ replay should preserve original message context - Scheduler preview accuracy depends on cron parsing ## Next Checkpoints - Sprint kickoff: TBD - Mid-sprint review: TBD - Sprint completion: TBD