(callers: Dict[str, Any], deps: Dict[str, Any], content: Dict[str, Any])
| 192 | |
| 193 | |
| 194 | def classify_severity(callers: Dict[str, Any], deps: Dict[str, Any], content: Dict[str, Any]) -> SeveritySummary: |
| 195 | critical: List[str] = [] |
| 196 | minor: List[str] = [] |
| 197 | |
| 198 | if callers["missing_in_kuzu"]: |
| 199 | critical.append(f"CALLERS missing relationships: {len(callers['missing_in_kuzu'])}") |
| 200 | if deps["missing_entries"] or deps["value_differences"]: |
| 201 | critical.append( |
| 202 | "DEPS graph mismatch: " |
| 203 | f"missing={len(deps['missing_entries'])}, value_diffs={len(deps['value_differences'])}" |
| 204 | ) |
| 205 | |
| 206 | if callers["extra_in_kuzu"]: |
| 207 | minor.append(f"CALLERS extra relationships in Kuzu: {len(callers['extra_in_kuzu'])}") |
| 208 | if content["duplicates_in_kuzu"]: |
| 209 | minor.append(f"CONTENT duplicate entries in Kuzu: {len(content['duplicates_in_kuzu'])}") |
| 210 | if content["extra_in_kuzu"]: |
| 211 | minor.append(f"CONTENT extra matches in Kuzu: {len(content['extra_in_kuzu'])}") |
| 212 | if deps["extra_entries"]: |
| 213 | minor.append(f"DEPS extra entries in Kuzu: {len(deps['extra_entries'])}") |
| 214 | |
| 215 | return SeveritySummary(critical=critical, minor=minor) |
| 216 | |
| 217 | |
| 218 | def parse_args() -> argparse.Namespace: |
no test coverage detected