Task Board
{{ done }}/{{ total }} tasks complete
{% for status, cards in columns.items() %}
{% endfor %}
All Tasks
{% if all_phases %}
{% for phase in all_phases %}
{% for task in phase.tasks %}
{% if task.done %}✓{% else %}○{% endif %}
{% if task.task_id %}{{ task.task_id }}{% endif %}
{% if task.parallel %}⇄{% endif %}
{% if task.story %}{{ task.story }}{% endif %}
{{ task.text }}
{% endfor %}
{% if phase.checkpoint %}
⏸ Checkpoint: {{ phase.checkpoint }}
{% endif %}
{% endfor %}
{% else %}
{% macro render_tasks(tasks, depth) %}
{% for task in tasks %}
{% if task.done %}✓{% else %}○{% endif %}
{% if task.task_id %}{{ task.task_id }}{% endif %}
{% if task.parallel %}⇄{% endif %}
{% if task.story %}{{ task.story }}{% endif %}
{{ task.text }}
{% if task.children %}{{ task.subtask_done }}/{{ task.subtask_total }}{% endif %}
{% if depth == 0 %}{{ task.spec_name }}{% endif %}
{% if task.children %}
{{ render_tasks(task.children, depth + 1) }}
{% endif %}
{% endfor %}
{% endmacro %}
{{ render_tasks(all_task_trees, 0) }}
{% if not all_tasks %}
No tasks found in any specs.
{% endif %}
{% endif %}
{% if plan_groups %}
{% set plan_total_tasks = plan_tasks | length %}
{% set plan_done_tasks = plan_tasks | selectattr('done') | list | length %}
{% macro render_plan_tasks(tasks, depth) %}
{% for task in tasks %}
{% if task.done %}✓{% else %}○{% endif %}
{{ task.text }}
{% if task.children %}{{ task.subtask_done }}/{{ task.subtask_total }}{% endif %}
{% if task.children %}
{{ render_plan_tasks(task.children, depth + 1) }}
{% endif %}
{% endfor %}
{% endmacro %}
{% for group in plan_groups %}
{{ group.title }}
{{ group.task_done }}/{{ group.task_total }}
{{ render_plan_tasks(group.all_task_trees, 0) }}
{% endfor %}
{% endif %}
{% if archived_task_trees %}
{% macro render_archived_tasks(tasks, depth) %}
{% for task in tasks %}
{% if task.done %}✓{% else %}○{% endif %}
{% if task.task_id %}{{ task.task_id }}{% endif %}
{{ task.text }}
{% if task.children %}{{ task.subtask_done }}/{{ task.subtask_total }}{% endif %}
{% if depth == 0 %}{{ task.spec_name }}{% endif %}
{% if task.children %}
{{ render_archived_tasks(task.children, depth + 1) }}
{% endif %}
{% endfor %}
{% endmacro %}
{% if archived_plan_groups %}
{% set ap_done = archived_plan_groups | sum(attribute='task_done') %}
{% set ap_total = archived_plan_groups | sum(attribute='task_total') %}
Implementation Plan ({{ ap_done }}/{{ ap_total }})
{% for group in archived_plan_groups %}
{{ group.title }}
{{ group.task_done }}/{{ group.task_total }}
{{ render_archived_tasks(group.all_task_trees, 0) }}
{% endfor %}
{% endif %}
{% for group in archived_spec_groups %}
{{ group.title }}
{{ group.task_done }}/{{ group.task_total }}
{{ render_archived_tasks(group.all_task_trees, 0) }}
{% endfor %}
{% endif %}