Tasks, epics & milestones
shadow-planner's work hierarchy explained — projects, epics, tasks and sub-tasks, finish-to-start dependencies, and single-date milestones on the Gantt.
shadow-planner uses a Jira-style hierarchy with three levels below the project:
- Epic — a big chunk of work inside a project.
- Story, task, bug or milestone — the work items. They can live inside an epic or directly in the project.
- Sub-task — a small step inside a work item. A sub-task always has a parent.
The hierarchy is strict: a parent must be exactly one level up. You can't nest a sub-task under an epic, a task under another task, or a sub-task under a sub-task — the app rejects invalid moves and tells you why.
Sub-tasks
Sub-tasks inherit their parent's epic automatically, display indented under the parent with a ↳ badge, and can be dragged onto another work item to reparent. If you delete a work item that has sub-tasks, they aren't lost — they are converted into regular tasks, and the app tells you which ones.
Milestones
A milestone is a zero-duration marker: when you pick the Milestone type, the dialog shows a single Date field instead of start and end. On the Gantt a milestone renders as a diamond, with its date shown next to the name.
Dependencies and scheduling
Tasks can be linked with finish-to-start dependencies: the successor can't start before the predecessor ends. When you move a task — by dragging its bar (snaps to whole days) or by asking the chat assistant — dependent tasks shift with it, and parent epic and project date ranges auto-extend to keep enclosing their children. Cascading changes triggered through the assistant always show a preview of every side effect before anything is applied.
Every date move, and everything else you or the AI change on the Gantt, is undoable — see Undo, history & the audit log.
The work breakdown panel
The task list next to the Gantt timeline has toggleable Start and End columns (the Columns ▾ dropdown); visibility is remembered per device, and PNG exports mirror whatever columns you have visible. Dates follow your chosen date format, and the panel is filterable — see saved filters.