{{ report.project_name }}

Analysis Date: {{ report.scan_date.strftime('%Y-%m-%d %H:%M') }} | Path: {{ report.project_path }}
{{ report.health_score }} {{ report.health_grade }}
Health Score

Executive Summary

{{ report.executive_summary }}

{% if report.statistics %}
{{ report.statistics.total_files }}
Files Analyzed
{{ "{:,}".format(report.statistics.total_lines) }}
Lines of Code
{{ report.statistics.total_functions }}
Functions
{{ report.statistics.total_classes }}
Classes
{{ "%.1f"|format(report.statistics.avg_cyclomatic_complexity) }}
Avg Complexity
{{ report.statistics.circular_dependency_count }}
Circular Deps
{% endif %}
{% set categories = [ ('Placeholders & Stubs', report.placeholder_findings, 'placeholder', 'icon-placeholder'), ('Complexity Issues', report.complexity_findings, 'complexity', 'icon-complexity'), ('Execution Flow', report.flow_findings, 'flow', 'icon-flow'), ('Naming Issues', report.naming_findings, 'naming', 'icon-naming'), ('Dead Code', report.dead_code_findings, 'dead-code', 'icon-dead-code'), ('Security Issues', report.security_findings, 'security', 'icon-security'), ('Code Duplication', report.duplication_findings, 'duplication', 'icon-duplication'), ('Logging Issues', report.logging_findings, 'logging', 'icon-logging'), ('Metric Issues', report.metric_findings, 'metric', 'icon-metric') ] %} {% for name, findings, section_id, icon_class in categories %}
* {{ name }} {{ findings|length }}
{% if findings %}
{% set critical = findings|selectattr('severity.value', 'equalto', 'critical')|list|length %} {% set high = findings|selectattr('severity.value', 'equalto', 'high')|list|length %} {% set medium = findings|selectattr('severity.value', 'equalto', 'medium')|list|length %} {% set low = findings|selectattr('severity.value', 'equalto', 'low')|list|length %} {% if critical %}{{ critical }} critical{% endif %} {% if high %}{{ high }} high{% endif %} {% if medium %}{{ medium }} medium{% endif %} {% if low %}{{ low }} low{% endif %}
View Details {% else %} No issues found {% endif %}
{% endfor %}
{% macro render_findings_table(findings, show_extra_cols=true) %} {% if findings %} {% for finding in findings %} {% endfor %}
Severity File Line Description Tags
{{ finding.severity.value }} {{ finding.file_path }} {{ finding.line_number }} {{ finding.title }}
{{ finding.description[:200] }}{% if finding.description|length > 200 %}...{% endif %} {% if finding.code_snippet %}
{{ finding.code_snippet }}
{% endif %}
{% for tag in finding.tags[:3] %} {{ tag }} {% endfor %}
{% else %}
OK

No issues found in this category.

{% endif %} {% endmacro %}

* Placeholders & Stubs

Collapse
{{ render_findings_table(report.placeholder_findings) }}

* Complexity Issues

Collapse
{{ render_findings_table(report.complexity_findings) }}

* Execution Flow

Collapse
{{ render_findings_table(report.flow_findings) }}

* Naming Issues

Collapse
{{ render_findings_table(report.naming_findings) }}

* Dead Code

Collapse
{{ render_findings_table(report.dead_code_findings) }}

* Security Issues

Collapse
{% if report.security_findings %} {% for finding in report.security_findings %} {% endfor %}
Severity File Line Issue Remediation
{{ finding.severity.value }} {{ finding.file_path }} {{ finding.line_number }} {{ finding.title }}
{{ finding.description }}
{{ finding.remediation }}
{% else %}
OK

No security issues found.

{% endif %}

* Code Duplication

Collapse
{{ render_findings_table(report.duplication_findings) }}

* Logging Issues

Collapse
{{ render_findings_table(report.logging_findings) }}

* Metric Issues

Collapse
{% if report.metric_findings %} {% for finding in report.metric_findings %} {% endfor %}
Severity Metric Name File Issue Stats
{{ finding.severity.value }} {{ finding.metric_name }} {{ finding.file_path }} {{ finding.title }}
{{ finding.description }} {% if finding.likely_cause %}
Likely cause: {{ finding.likely_cause }} {% endif %}
Samples: {{ finding.sample_count }}
Range: {{ "%.4f"|format(finding.min_value) }} - {{ "%.4f"|format(finding.max_value) }}
Variance: {{ "%.6f"|format(finding.variance) }}
{% else %}
OK

No metric issues found.

{% endif %}

Recommendations

Collapse
{% if report.recommendations %}
    {% for rec in report.recommendations %}
  • {{ rec.severity.value }}
    {{ rec.title }}
    {{ rec.description }}
    Category: {{ rec.category.value }} Effort: {{ rec.effort.value }} {{ rec.affected_files|length }} file(s)
    {% if rec.impact %}
    Impact: {{ rec.impact }}
    {% endif %}
  • {% endfor %}
{% else %}

No recommendations at this time.

{% endif %}