Cycle Management
When to use
- User wants to check the status of a running development cycle
- User wants to cancel an active development cycle
- Invoked with mode=status or mode=cancel
Skip when
- No development cycle is active or was recently started
- User is asking about general project status (not cycle-specific)
Unified skill for managing development cycle state. Provides two modes: status (read-only inspection) and cancel (state mutation with confirmation).
Mode Selection
This skill provides two modes selected by the mode parameter:
| Mode | Purpose |
|---|---|
status |
Read-only — display cycle metrics |
cancel |
Mutating — cancel the active cycle |
If no mode is provided, default to status.
Shared: State File Discovery
Both modes read from the same state files. Check for an active cycle in this order:
docs/ring:running-dev-cycle/current-cycle.jsondocs/ring:planning-backend-refactor/current-cycle.json
If neither file exists or both contain a terminal status (completed, cancelled), report that no cycle is active and exit with the appropriate "no cycle" message for the current mode.
Mode: Status
Display the current development cycle status.
Output
Displays:
- Current cycle ID and start time
- Current phase (if
phases[]is present in state) - Epics: total, completed, in progress, pending
- Current epic and gate being executed
- Assertiveness score (if epics completed)
- Elapsed time
Example Output
Development Cycle Status
Cycle ID: 2024-01-15-143000
Started: 2024-01-15 14:30:00
Status: in_progress
Phase: Phase 2 - Core flows
Epics:
Completed: 2/5
In Progress: 1/5 (Epic 2.3)
Pending: 2/5
Current:
Epic: Epic 2.3 - Implementar refresh token
Gate 0→8→9 lean flow (ring:implementing-tasks)
Iterations: 1
Metrics (completed epics):
Average Assertiveness: 89%
Total Duration: 1h 45m
State file: docs/ring:running-dev-cycle/current-cycle.json (or docs/ring:planning-backend-refactor/current-cycle.json)
When No Cycle is Running (Status Mode)
No development cycle in progress.
Start a new cycle with:
/ring:running-dev-cycle docs/pre-dev/{feature}/plan.md
Or resume an interrupted cycle:
/ring:running-dev-cycle --resume
Execution Steps (Status)
- Discover state file — check both paths per "Shared: State File Discovery" above
- Read JSON — parse
current-cycle.json - Extract fields — cycle ID, start time, status (incl.
paused_for_epic_approval,paused_for_phase_review),current_phaseandphases[](if present),epics[]list,current_epic_index/gate, iterations - Compute metrics — count completed/in-progress/pending epics from
epics[], calculate elapsed time, average assertiveness score across completed epics - Display — format and present the output as shown above
Mode: Cancel
Cancel the current development cycle with state preservation.
Options
| Option | Description |
|---|---|
--force |
Cancel without confirmation |
Behavior
- Confirmation: Asks for confirmation before canceling (unless
--force) - State preservation: Saves current state for potential resume
- Cleanup: Marks cycle as
cancelledin state file - Report: Generates partial feedback report with completed tasks
Confirmation Prompt
Unless --force is specified, display:
Cancel Development Cycle?
Cycle ID: 2024-01-15-143000
Progress: 3/5 epics completed
This will:
- Stop the current cycle
- Save state for potential resume
- Generate partial feedback report
[Confirm Cancel] [Keep Running]
After Confirmation (or --force)
Cycle Cancelled
Cycle ID: 2024-01-15-143000
Status: cancelled
Completed: 3/5 epics
State saved to: docs/ring:running-dev-cycle/current-cycle.json (or docs/ring:planning-backend-refactor/current-cycle.json)
Partial report: docs/dev-team/feedback/cycle-2024-01-15-partial.md
To resume later:
/ring:running-dev-cycle --resume
When No Cycle is Running (Cancel Mode)
No development cycle to cancel.
Check status with:
ring:managing-dev-cycle (mode=status)
Execution Steps (Cancel)
- Discover state file — check both paths per "Shared: State File Discovery" above
- Read JSON — parse
current-cycle.json - Validate — confirm the cycle is in a non-terminal status (
in_progress,paused_for_epic_approval,paused_for_phase_review, or similar) - Confirm — unless
--force, use AskUserQuestion to get explicit user confirmation; if declined, abort - Preserve state — the existing JSON already contains the full state for potential resume
- Mark cancelled — update the
statusfield incurrent-cycle.jsontocancelledand write back - Generate partial report — create a feedback file at
docs/dev-team/feedback/cycle-{id}-partial.mdsummarizing completed epics, current progress, and reason (user-cancelled) - Display — format and present the cancellation confirmation as shown above
Related Skills
| Skill | Description |
|---|---|
ring:running-dev-cycle |
Start or resume cycle |
ring:managing-dev-cycle (mode=cancel) |
Cancel running cycle |
ring:managing-dev-cycle (mode=status) |
Check current status |
ring:writing-dev-reports |
View feedback report |
Now executing the requested mode...
Read state from: docs/ring:running-dev-cycle/current-cycle.json or docs/ring:planning-backend-refactor/current-cycle.json