diff --git a/audit_engine/core/report_generator.py b/audit_engine/core/report_generator.py index 8e05c08..90fca6a 100644 --- a/audit_engine/core/report_generator.py +++ b/audit_engine/core/report_generator.py @@ -49,6 +49,12 @@ def __init__(self, auditor_name: str = None, contract_name: str = None): self.audit_timestamp = self._get_current_timestamp() self.auditor_name = auditor_name self.contract_name = contract_name + self.recommendations = [] + def add_recommendation(self, recommendation: str): + self.recommendations.append(recommendation) + + def add_recommendations(self, recommendations: list): + self.recommendations.extend(recommendations) def _get_current_timestamp(self): return self.datetime.datetime.now().isoformat() @@ -79,6 +85,7 @@ def generate_report(self) -> Dict[str, Any]: "static_analysis": self.static_results, "dynamic_analysis": self.dynamic_results, "scores": self.scores, + "recommendations": self.recommendations, } report["summary_statistics"] = self._get_summary_statistics(report) return report @@ -109,6 +116,10 @@ def _to_markdown(self, report: Dict[str, Any]) -> str: md += "- Severity Breakdown:\n" for sev, count in report['summary_statistics'].get('severity_breakdown', {}).items(): md += f" - {sev}: {count}\n" + if report.get("recommendations"): + md += "\n## Recommendations / Remediation Steps\n" + for rec in report["recommendations"]: + md += f"- {rec}\n" md += "\n## Static Analysis Findings\n" for finding in report["static_analysis"]: md += f"- {finding}\n" @@ -138,6 +149,11 @@ def _to_html(self, report: Dict[str, Any]) -> str: for sev, count in report['summary_statistics'].get('severity_breakdown', {}).items(): html.append(f"