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 Active tab on the cycles listing page, where child cycles are indented under their parents in the tree view.
- The Hierarchy card in the detail page sidebar, which shows a breadcrumb trail of ancestors.
You can also create a sub-cycle directly from the listing page or the detail page by clicking Add Sub Cycle in the three-dot menu or the Sub cycles section.
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 dropdown in the create/edit form 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 dropdown.
Completed parent constraint
A non-completed cycle (Upcoming or Active) cannot be placed under a Completed parent. If you need to add a sub-cycle to a completed cycle, reopen the parent first.
Reopening a child of a completed parent: Similarly, you cannot reopen a child cycle if its parent is completed. Reopen the parent first, then reopen the child.
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):
- Click the three-dot menu on the cycle and select Edit.
- Change the Parent dropdown to the new parent, or select No parent to make it a top-level cycle.
- Click Save.
The same validation rules apply — the dropdown 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 also removed. The confirmation dialog warns you about this. Any test runs and explorations linked to the deleted cycles are unlinked but not deleted.