Sub-Cycles
Cycles can be nested up to three levels deep to model hierarchies like Release → Sprint → Task. A cycle becomes a sub-cycle when you assign it a parent during creation or editing.
How sub-cycles work
When you create or edit a cycle, the Parent field lets you place it under an existing cycle. The parent–child relationship is visible in two places:
- The cycles timeline, where child cycles are indented under their parents.
- The About card on the detail page Overview tab, which includes a parent cycle picker.
You can also create a sub-cycle from the timeline row menu or the detail page menu by selecting Add sub-cycle….
Depth limit
The maximum nesting depth is three levels:
| Level | Role | Example |
|---|---|---|
| 1 | Top-level cycle | v2.0 Release |
| 2 | Child cycle | Sprint 1 (under v2.0 Release) |
| 3 | Grandchild cycle | Auth Module (under Sprint 1) |
Maximum depth reached. You cannot add a sub-cycle to a cycle at level 3. The Add sub-cycle… option is hidden for cycles at the deepest level.
Validation rules
The parent chip picker in the create composer and on the detail page About card is filtered to only show valid parent options. The following rules are enforced:
No circular references
A cycle cannot be set as a child of itself or any of its own descendants. This prevents infinite loops in the hierarchy.
Depth cannot exceed three levels
If selecting a particular parent would push the total depth beyond three levels, that parent option is not available in the picker.
Completed parent constraint
A non-completed cycle (Upcoming or Active) cannot be placed under a Completed parent.
Add sub-cycle on completed cycles. The timeline row menu and the detail page breadcrumb ··· menu do not offer Add sub-cycle… on Completed cycles. New sub-cycles are always Upcoming, and the parent chip picker excludes completed cycles. If a preselected parent is no longer valid when the create composer opens, the selection reconciles to No parent.
Progress rollup
Parent cycles automatically aggregate progress from all their descendants. The progress bar on a parent reflects the combined test results of:
- Test runs and explorations linked directly to the parent cycle.
- All results from child cycles, grandchild cycles, and so on (recursively).
This gives you a single at-a-glance metric for an entire release or phase, without needing to manually calculate totals across sub-cycles.
Changing a cycle’s parent
To move a cycle under a different parent (or remove its parent entirely):
- Open the cycle’s detail page.
- In the About card, click the Parent chip picker and choose a new parent, or select No parent to make it a top-level cycle.
The same validation rules apply — the picker only shows valid parent options that respect the depth limit and circular reference constraints.
Deleting a cycle with children
When you delete a cycle that has sub-cycles, the sub-cycles are not deleted — they move up one level in the hierarchy (a grandchild becomes a child of the deleted cycle’s parent, or a top-level cycle if the deleted cycle had no parent). The confirmation dialog tells you how many sub-cycles will move up. Any test runs attached to the deleted cycle are detached but not deleted.