{% extends "base.html" %} {% block title %}ICDEV™ — Phase Roadmap{% endblock %} {% block content %}
{{ summary.total }}
Total Phases
{{ summary.completed }}
Completed
{{ summary.active }}
Active
{{ summary.planned }}
Planned
{{ summary.progress_pct }}%
Progress
All ({{ summary.total }}) {% for cat_id, cat_info in categories.items() %} {% set cat_count = summary.by_category.get(cat_id, {}).get('total', 0) %} {% if cat_count > 0 %} {{ cat_info.label }} ({{ cat_count }}) {% endif %} {% endfor %}
{% for phase in phases %} {% endfor %}
# Phase Name Category Status Agents Min Tier ILs
{{ phase.number }}
{{ phase.name }}
{{ phase.description }}
{% if phase.goal_file %}
Goal: {{ phase.goal_file }}
{% endif %} {% if phase.dependencies %}
Deps: {% for dep in phase.dependencies %} {{ dep }} {% endfor %}
{% endif %}
{% set cat = categories.get(phase.category, {}) %} {{ cat.get('label', phase.category) }} {% set st = statuses.get(phase.status, {}) %} {{ st.get('icon', '') | safe }} {{ st.get('label', phase.status) }} {% if phase.agents %}
{% for agent in phase.agents %} {{ agent }} {% endfor %}
{% else %} {% endif %}
{{ phase.tier_minimum }} {{ phase.impact_levels | join(', ') }}

Category Breakdown

{% for cat_id, cat_info in categories.items() %} {% set cat_stats = summary.by_category.get(cat_id, {'total': 0, 'completed': 0}) %} {% if cat_stats.total > 0 %} {% set cat_pct = ((cat_stats.completed / cat_stats.total) * 100) | round | int if cat_stats.total > 0 else 0 %}
{{ cat_info.label }} {{ cat_stats.completed }}/{{ cat_stats.total }}
{{ cat_info.description }}
{{ cat_pct }}%
{% endif %} {% endfor %}
{% endblock %}