{% set dash = score_dashboard %}
{% if dash and dash.scores %}
{{ dash.overall_grade }}
Overall
Health
{% for key, info in dash.scores.items() %}
{{ info.grade }}
{{ info.label }}
{% endfor %}
{% endif %}
{% if report.architecture %}
{% set arch = report.architecture %}
Project Type
{{ arch.project_type }}
{% if arch.framework %}
{{ arch.framework }}
{% endif %}
Structure Pattern
{{ arch.structure_pattern }}
Codebase Size
{{ arch.total_files }}
files · {{ '{:,}'.format(arch.total_lines) }} lines
Language Breakdown
{% for lang, pct in arch.language_breakdown.items() | sort(attribute='1', reverse=True) %}
{{ lang }}
{{ "%.1f"|format(pct) }}%
{% endfor %}
{% if not arch.language_breakdown %}
No language data available.
{% endif %}
{% if arch.entry_points %}
Entry Points
| File | Type |
{% for ep in arch.entry_points %}
{{ ep.path }} |
{{ ep.entry_type }} |
{% endfor %}
{% endif %}
{% if arch.key_files %}
{% endif %}
{% if arch.layers %}
Detected Layers
{% for layer in arch.layers %}
{{ layer.name }}
{{ layer.purpose }} · {{ layer.files | length }} files
{% for f in layer.files %}
{{ f }}
{% endfor %}
{% endfor %}
{% endif %}
{% if arch.internal_deps %}
Internal Dependencies
| From | Imports |
{% for dep in arch.internal_deps[:30] %}
{{ dep.from_module }} |
{{ dep.to_module }} |
{% endfor %}
{% if arch.internal_deps | length > 30 %}
|
… and {{ (arch.internal_deps | length) - 30 }} more
|
{% endif %}
{% endif %}
{% else %}
Architecture analysis not available.
{% endif %}
{% if report.tech_debt %}
{% set debt = report.tech_debt %}
{{ debt.grade }}
{{ debt.overall_score }}/100
Overall Tech Debt Score — lower is better
Dimension Scores
{% for key, dim in debt.dimensions.items() %}
{{ key.replace('_', ' ').title() }}
{{ dim.score }}
{% endfor %}
Dimension Details
| Dimension | Score | Weight | Detail |
{% for key, dim in debt.dimensions.items() %}
| {{ key.replace('_', ' ').title() }} |
{{ dim.score }}
|
{{ "%.0f"|format(dim.weight * 100) }}% |
{{ dim.detail }} |
{% endfor %}
{% if debt.hotspots %}
Hotspots
| File | Score | Reasons |
{% for hs in debt.hotspots %}
{{ hs.path }} |
{{ hs.score }} |
{% for r in hs.reasons %}{{ r }}{% if not loop.last %} · {% endif %}{% endfor %}
|
{% endfor %}
{% endif %}
{% if debt.recommendations %}
Recommendations
{% for rec in debt.recommendations %}
-
→
{{ rec }}
{% endfor %}
{% endif %}
{% else %}
Tech debt analysis not available.
{% endif %}
{% if report.onboarding %}
{% set ob = report.onboarding %}
What Is This Project?
{% if ob.architecture_overview %}
Architecture Overview
{{ ob.architecture_overview }}
{% endif %}
{% if ob.key_files %}
Key Files to Read First
| # | File | Role |
{% for kf in ob.key_files[:10] %}
| {{ loop.index }} |
{{ kf.path }} |
{{ kf.role }} |
{% endfor %}
{% endif %}
How to Run Locally
{% if ob.setup_steps %}
{% for step in ob.setup_steps %}
-
{{ step.description }}
{% if step.command %}
{{ step.command }}
{% endif %}
{% endfor %}
{% else %}
No setup steps detected. Check the README manually.
{% endif %}
{% if ob.test_commands %}
How to Run Tests
{% for cmd in ob.test_commands %}
{{ cmd }}
{% endfor %}
{% endif %}
{% if ob.top_contributors %}
Who to Ask
| Name | Email | Recent Commits |
{% for c in ob.top_contributors %}
| {{ c.name }} |
{{ c.email }} |
{{ c.recent_commits }} |
{% endfor %}
{% endif %}
{% if ob.gotchas %}
Gotchas
{% for gotcha in ob.gotchas %}
-
⚠
{{ gotcha }}
{% endfor %}
{% endif %}
{% if ob.glossary %}
Project Terms
| Term | Value |
{% for term, value in ob.glossary.items() %}
{{ term }} |
{{ value }} |
{% endfor %}
{% endif %}
{% else %}
Onboarding guide not available.
{% endif %}
{% if report.dependencies %}
{% set deps = report.dependencies %}
Package Manager
{{ deps.package_manager }}
Total Dependencies
{{ deps.total_deps }}
{{ deps.outdated_count }} outdated
Risk Score
{{ deps.risk_score }}/100
{% if deps.license_conflicts %}
License Conflicts
{% for conflict in deps.license_conflicts %}
-
!
{{ conflict }}
{% endfor %}
{% endif %}
{% else %}
Dependency analysis not available.
{% endif %}
{% if report.conventions %}
{% set conv = report.conventions %}
{{ conv.consistency_score }}/100
Consistency Score
Import Style
{{ conv.import_style }}
Error Handling
{{ conv.error_handling }}
Test Pattern
{{ conv.test_pattern }}
Naming Conventions
Detected Naming Patterns
| Category | Convention |
| Variables | {% if conv.naming.variables %}{{ conv.naming.variables }}{% else %}—{% endif %} |
| Functions | {% if conv.naming.functions %}{{ conv.naming.functions }}{% else %}—{% endif %} |
| Classes | {% if conv.naming.classes %}{{ conv.naming.classes }}{% else %}—{% endif %} |
| Files | {% if conv.naming.files %}{{ conv.naming.files }}{% else %}—{% endif %} |
Formatting Rules
Detected Formatting
| Rule | Value |
| Indent Style | {% if conv.formatting.indent_style %}{{ conv.formatting.indent_style }}{% else %}—{% endif %} |
| Indent Width | {% if conv.formatting.indent_width %}{{ conv.formatting.indent_width }}{% else %}—{% endif %} |
| Quotes | {% if conv.formatting.quotes %}{{ conv.formatting.quotes }}{% else %}—{% endif %} |
| Semicolons | {% if conv.formatting.semicolons is not none %}{{ conv.formatting.semicolons }}{% else %}—{% endif %} |
Git Conventions
Commit Format
{% if conv.git_conventions.commit_format %}
{{ conv.git_conventions.commit_format }}{% else %}
Not detected{% endif %}
{% if conv.linter_config %}
Linter Config
{{ conv.linter_config }}
{% endif %}
{% else %}
Convention analysis not available.
{% endif %}
{% if report.api %}
{% set api = report.api %}
API Type
{{ api.api_type }}
Total Routes
{{ api.total_routes }}
{{ api.undocumented_routes }} undocumented
{% if api.endpoints %}
{% endif %}
{% if api.cli_commands %}
CLI Commands
| Command | Description | Handler |
{% for cmd in api.cli_commands %}
{{ cmd.name }} |
{{ cmd.description or '—' }} |
{{ cmd.handler_file }} |
{% endfor %}
{% endif %}
{% else %}
API analysis not available.
{% endif %}
{% if report.security %}
{% set sec = report.security %}
{% if sec.risk_level == 'critical' %}⚠{% elif sec.risk_level == 'high' %}⚠{% elif sec.risk_level == 'medium' %}ℹ{% else %}✓{% endif %}
Risk Level: {{ sec.risk_level | upper }}
{% if sec.secrets_found > 0 %} · {{ sec.secrets_found }} secret(s) found{% endif %}
Auth Pattern
{% if sec.auth_pattern %}
{{ sec.auth_pattern }}{% else %}
None detected{% endif %}
{% if sec.exposed_ports %}
Exposed Ports
{% for port in sec.exposed_ports %}
{{ port }}{% endfor %}
{% endif %}
Findings
{{ sec.findings | length }}
{% if sec.findings %}
{% else %}
✓ No security findings detected.
{% endif %}
{% if sec.recommendations %}
Recommendations
{% for rec in sec.recommendations %}
-
→
{{ rec }}
{% endfor %}
{% endif %}
{% else %}
Security analysis not available.
{% endif %}
{% if report.setup %}
{% set setup = report.setup %}
{% if setup.prerequisites %}
Prerequisites
{% for prereq in setup.prerequisites %}
-
{{ prereq.name }}
{% if prereq.version %}
{{ prereq.version }}{% endif %}
{% if prereq.install_url %}{{ prereq.install_url }}{% endif %}
{% endfor %}
{% endif %}
{% if setup.install_steps %}
Installation
{% for step in setup.install_steps %}
-
{{ step.description }}
{% if step.command %}
{{ step.command }}
{% endif %}
{% endfor %}
{% endif %}
{% if setup.env_vars %}
Environment Variables
| Name | Required | Description | Example |
{% for ev in setup.env_vars %}
{{ ev.name }} |
{% if ev.required %}required{% else %}optional{% endif %} |
{{ ev.description or '—' }} |
{{ ev.example or '—' }} |
{% endfor %}
{% endif %}
{% if setup.run_commands %}
Run Commands
{% for label, cmd in setup.run_commands.items() %}
{{ label }}
{% endfor %}
{% endif %}
{% if setup.test_command %}
Test Command
{{ setup.test_command }}
{% endif %}
{% if setup.build_command %}
Build Command
{{ setup.build_command }}
{% endif %}
{% if setup.database_setup %}
Database Setup
{% for step in setup.database_setup %}
-
{{ step.description }}
{% if step.command %}
{{ step.command }}
{% endif %}
{% endfor %}
{% endif %}
{% if setup.common_issues %}
Common Issues
{% for issue in setup.common_issues %}
{{ issue.description }}
{{ issue.solution }}
{% endfor %}
{% endif %}
{% else %}
Setup guide not available.
{% endif %}