Repository Analysis

tirth8205/code-review-graph

Local-first code intelligence graph for MCP and CLI. Builds a persistent map of your codebase so AI coding tools read only what matters, with benchmarked context reductions on reviews and large-repo workflows.

38.0 Strong AI signal View on GitHub

Analysis Overview

This report presents the forensic synthetic code analysis of tirth8205/code-review-graph, a Python project with 30,960 GitHub stars. SynthScan v2.0 examined 122,967 lines of code across 269 source files, recording 3602 pattern matches distributed across 20 syntactic categories. The overall adjusted score of 38.0 places this repository in the Strong AI signal band.

The scanner applied 160+ deterministic lexical heuristics, multi-line block detectors, abstract syntax tree depth profilers, and a cross-file Jaccard similarity matrix to construct a statistically normalised synthetic code estimate. All matches are individually weighted by severity coefficient and contextual multiplier before summation, and the resulting headline score is temporally discounted to account for the repository's development history relative to the commercial emergence of large language model coding tooling (November 2022 onward).

38.0
Adjusted Score
38.0
Raw Score
100%
Time Factor
2026-08-27
Last Push
31.0K
Stars
Python
Language
123.0K
Lines of Code
269
Files
3.6K
Pattern Hits
2026-08-29
Scan Date
0.53
HC Hit Rate

What These Metrics Mean

Adjusted Score
Primary synthetic code indicator. Raw score normalised per 1,000 lines of code and multiplied by the temporal discount factor. This is the definitive comparative metric — use it to rank repositories by AI authorship density.
Raw Score
The unmodified sum of all severity-weighted, context-multiplied pattern match scores before temporal discounting. Reflects the absolute signal strength independent of when the repository was last active.
Time Factor
The temporal discount multiplier (0–100%) applied to the raw score. Repositories last updated before ChatGPT's launch (Nov 2022) receive a 5% factor. Full signal is only assigned to repositories active in the post-adoption era (Jan 2024+).
Pattern Hits
Total count of individual pattern matches across all files and categories. A high hit count with a low score may indicate a very large codebase with isolated AI snippets; a low count with a high score indicates dense, concentrated AI signatures.
HC Hit Rate
High+Critical pattern hits per file, averaged across the repository. This orthogonal signal catches repositories where a few files are densely packed with high-severity AI tells — a strong indicator even when the normalised score appears moderate due to codebase size.
Lines of Code / Files
Total lines and files analysed. The scanner examines 94 file extensions. These denominators are used to normalise the score, enabling fair comparison between repositories of vastly different sizes.

Score History

This chart maps the temporal evolution of the adjusted synthetic code score across successive scan runs. An upward trajectory indicates ongoing incorporation of AI-generated code or expanding LLM-assisted scaffolding; a stable or declining trajectory may reflect active human refactoring, code removal, or the adoption of stricter authorship policies. The dashed secondary line (right axis) independently tracks total raw pattern hit count, which can diverge from the normalised score when codebase size changes significantly between scans.

Severity Breakdown

Classifies detected patterns by their diagnostic confidence and structural impact. CRITICAL patterns (coefficient 10) represent definitive synthetic signatures — hallucinated imports, explicit LLM attribution metadata — virtually never produced by human authors. HIGH (5) indicates strong structural tells such as cross-file repetition or cross-linguistic idioms. MEDIUM (2) covers recognisable conversational padding and AI-specific vocabulary. LOW (1) captures subtle indicators like tautological comments and generic boilerplate that require density to carry independent signal.

CRITICAL 0HIGH 143MEDIUM 459LOW 3000

Directory Score Breakdown

This horizontal bar chart decomposes the repository's raw synthetic code score by top-level directory, allowing you to pinpoint precisely which modules or components carry the highest AI authorship density. Directories with disproportionately high scores relative to their size warrant targeted manual review: concentrated AI signatures often trace back to mass-generated configuration layers, auto-ported test suites, LLM-scaffolded boilerplate classes, or entire subsystems authored under heavy copilot assistance. Use this view to prioritise your human code-review effort.

Pattern Findings

The scanner identified 3602 distinct pattern matches across 20 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a statistically significant AI authorship indicator. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.

Reading the findings table: The Severity column indicates the diagnostic confidence level (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — comment-context matches receive a ×1.5 weight because LLMs systematically over-annotate. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier as dense clusters constitute far stronger evidence of synthetic authorship than isolated hits.

Hyper-Verbose Identifiers2425 hits · 1988 pts
SeverityFileLineSnippetContext
LOWcode_review_graph/communities.py849def incremental_detect_communities(CODE
LOWcode_review_graph/communities.py1020def get_architecture_overview(store: GraphStore) -> dict[str, Any]:CODE
LOWcode_review_graph/scoped_resolver.py162def _is_unresolved_scoped_target(target: str) -> bool:CODE
LOWcode_review_graph/analysis.py213def find_surprising_connections(CODE
LOWcode_review_graph/analysis.py317def generate_suggested_questions(CODE
LOWcode_review_graph/jedi_resolver.py234def _find_untracked_method_calls(root, is_test_file: bool = False):CODE
LOWcode_review_graph/refactor.py233def _collect_type_referenced_names(store: GraphStore) -> set[str]:CODE
LOWcode_review_graph/skills.py402def _warn_legacy_opencode_config(repo_root: Path) -> None:CODE
LOWcode_review_graph/skills.py1091def generate_codex_hooks_config(repo_root: Path) -> dict[str, Any]:CODE
LOWcode_review_graph/skills.py1782def inject_platform_instructions(repo_root: Path, target: str = "all") -> list[str]:CODE
LOWcode_review_graph/skills.py1836def generate_cursor_hooks_config() -> dict[str, Any]:CODE
LOWcode_review_graph/skills.py1205def _merge_hooks_into_settings(STRING
LOWcode_review_graph/skills.py1460def _known_instruction_sections() -> tuple[str, ...]:STRING
LOWcode_review_graph/skills.py1577def _remove_legacy_instruction_file(path: Path) -> None:STRING
LOWcode_review_graph/skills.py1736def install_gemini_cli_skills(repo_root: Path) -> Path:STRING
LOWcode_review_graph/context_savings.py201def format_context_savings_panel(CODE
LOWcode_review_graph/graph.py49def _compatible_edge_languages(language: str) -> tuple[str, ...]:CODE
LOWcode_review_graph/graph.py498 def search_edges_by_target_name(CODE
LOWcode_review_graph/graph.py519 def iter_edges_by_target_name(CODE
LOWcode_review_graph/graph.py720 def _select_evidence_backed_candidate(CODE
LOWcode_review_graph/graph.py733 def resolve_bare_call_targets(self) -> int:CODE
LOWcode_review_graph/graph.py746 def resolve_cpp_scoped_call_targets(self) -> int:CODE
LOWcode_review_graph/graph.py953 def resolve_bare_tested_by_sources(self) -> int:CODE
LOWcode_review_graph/graph.py1820 def get_flow_criticalities_for_node(self, node_id: int) -> list[float]:CODE
LOWcode_review_graph/graph.py1840 def get_community_ids_by_qualified_names(CODE
LOWcode_review_graph/graph.py1871 def get_nodes_without_signature(self) -> list[sqlite3.Row]:CODE
LOWcode_review_graph/graph.py2015 def get_nodes_by_community_id(CODE
LOWcode_review_graph/graph.py1584 def _get_impact_radius_networkx(STRING
LOWcode_review_graph/rescript_resolver.py36def resolve_rescript_cross_module(store: GraphStore) -> dict:CODE
LOWcode_review_graph/hcl_resolver.py15def resolve_hcl_module_references(store: GraphStore) -> dict[str, int]:CODE
LOWcode_review_graph/parser.py8625 def _extract_js_var_functions(CODE
LOWcode_review_graph/parser.py11134 def _resolve_php_scoped_calls(CODE
LOWcode_review_graph/parser.py16150 def _handle_r_binary_operator(CODE
LOWcode_review_graph/parser.py134def _python_type_checking_aliases(CODE
LOWcode_review_graph/parser.py321def _python_unreachable_call_positions(CODE
LOWcode_review_graph/parser.py369def _is_statically_false_condition(cond) -> bool:CODE
LOWcode_review_graph/parser.py460def _parser_load_timeout_seconds() -> float:CODE
LOWcode_review_graph/parser.py512def _parser_load_probe_succeeds(CODE
LOWcode_review_graph/parser.py555def _clear_parser_probe_cache() -> None:CODE
LOWcode_review_graph/parser.py1557def _vbnet_relationship_targets(value: str) -> list[str]:CODE
LOWcode_review_graph/parser.py1731def _rescript_brace_depth_array(cleaned: str) -> list[int]:CODE
LOWcode_review_graph/parser.py1918def _modifier_annotation_names(node) -> list[str]:CODE
LOWcode_review_graph/parser.py2230def _hcl_dynamic_iterator_name(block_node) -> Optional[str]:CODE
LOWcode_review_graph/parser.py2522 def _detect_language_from_shebang(CODE
LOWcode_review_graph/parser.py3432 def _parse_databricks_py_notebook(CODE
LOWcode_review_graph/parser.py4939 def _resolve_julia_call_targets(CODE
LOWcode_review_graph/parser.py5060 def _collect_typed_call_targets(CODE
LOWcode_review_graph/parser.py5184 def _collect_class_typed_fields(CODE
LOWcode_review_graph/parser.py5212 def _collect_function_typed_parameters(CODE
LOWcode_review_graph/parser.py5248 def _collect_ts_parameter_properties(self, constructor_node) -> dict[str, str]:CODE
LOWcode_review_graph/parser.py5275 def _typed_bindings_from_node(CODE
LOWcode_review_graph/parser.py5470 def _resolve_typed_method_target(CODE
LOWcode_review_graph/parser.py5515 def _apply_typed_call_targets(CODE
LOWcode_review_graph/parser.py5700 def _spring_property_logical_lines(text: str) -> list[tuple[int, str]]:CODE
LOWcode_review_graph/parser.py5855 def _resolve_ansible_notify_targets(CODE
LOWcode_review_graph/parser.py6192 def _ansible_extract_role_name(self, item: object) -> Optional[str]:CODE
LOWcode_review_graph/parser.py6207 def _ansible_extract_notify_targets(self, notify_node: object) -> list[str]:CODE
LOWcode_review_graph/parser.py6237 def _ansible_role_from_module_args(self, args_node: Optional[object]) -> Optional[str]:CODE
LOWcode_review_graph/parser.py6563 def _elixir_function_name_and_params(CODE
LOWcode_review_graph/parser.py6592 def _extract_elixir_constructs(CODE
2365 more matches not shown…
Decorative Section Separators434 hits · 1468 pts
SeverityFileLineSnippetContext
MEDIUMcode_review_graph/communities.py29# ---------------------------------------------------------------------------COMMENT
MEDIUMcode_review_graph/communities.py31# ---------------------------------------------------------------------------COMMENT
MEDIUMcode_review_graph/communities.py41# ---------------------------------------------------------------------------COMMENT
MEDIUMcode_review_graph/communities.py43# ---------------------------------------------------------------------------COMMENT
MEDIUMcode_review_graph/communities.py67# ---------------------------------------------------------------------------COMMENT
MEDIUMcode_review_graph/communities.py69# ---------------------------------------------------------------------------COMMENT
MEDIUMcode_review_graph/communities.py182# ---------------------------------------------------------------------------COMMENT
MEDIUMcode_review_graph/communities.py184# ---------------------------------------------------------------------------COMMENT
MEDIUMcode_review_graph/communities.py256# ---------------------------------------------------------------------------COMMENT
MEDIUMcode_review_graph/communities.py258# ---------------------------------------------------------------------------COMMENT
MEDIUMcode_review_graph/communities.py469# ---------------------------------------------------------------------------COMMENT
MEDIUMcode_review_graph/communities.py471# ---------------------------------------------------------------------------COMMENT
MEDIUMcode_review_graph/communities.py560# ---------------------------------------------------------------------------COMMENT
MEDIUMcode_review_graph/communities.py562# ---------------------------------------------------------------------------COMMENT
MEDIUMcode_review_graph/communities.py793# ---------------------------------------------------------------------------COMMENT
MEDIUMcode_review_graph/communities.py795# ---------------------------------------------------------------------------COMMENT
MEDIUMcode_review_graph/exports.py19# -------------------------------------------------------------------COMMENT
MEDIUMcode_review_graph/exports.py21# -------------------------------------------------------------------COMMENT
MEDIUMcode_review_graph/exports.py54# -------------------------------------------------------------------COMMENT
MEDIUMcode_review_graph/exports.py56# -------------------------------------------------------------------COMMENT
MEDIUMcode_review_graph/exports.py120# -------------------------------------------------------------------COMMENT
MEDIUMcode_review_graph/exports.py122# -------------------------------------------------------------------COMMENT
MEDIUMcode_review_graph/exports.py191# -------------------------------------------------------------------COMMENT
MEDIUMcode_review_graph/exports.py193# -------------------------------------------------------------------COMMENT
MEDIUMcode_review_graph/exports.py353# -------------------------------------------------------------------COMMENT
MEDIUMcode_review_graph/exports.py355# -------------------------------------------------------------------COMMENT
MEDIUMcode_review_graph/changes.py40# ---------------------------------------------------------------------------COMMENT
MEDIUMcode_review_graph/changes.py42# ---------------------------------------------------------------------------COMMENT
MEDIUMcode_review_graph/changes.py181# ---------------------------------------------------------------------------COMMENT
MEDIUMcode_review_graph/changes.py183# ---------------------------------------------------------------------------COMMENT
MEDIUMcode_review_graph/changes.py274# ---------------------------------------------------------------------------COMMENT
MEDIUMcode_review_graph/changes.py276# ---------------------------------------------------------------------------COMMENT
MEDIUMcode_review_graph/changes.py319# ---------------------------------------------------------------------------COMMENT
MEDIUMcode_review_graph/changes.py321# ---------------------------------------------------------------------------COMMENT
MEDIUMcode_review_graph/changes.py388# ---------------------------------------------------------------------------COMMENT
MEDIUMcode_review_graph/changes.py390# ---------------------------------------------------------------------------COMMENT
MEDIUMcode_review_graph/spring_resolver.py50 # -----------------------------------------------------------------------COMMENT
MEDIUMcode_review_graph/spring_resolver.py53 # -----------------------------------------------------------------------COMMENT
MEDIUMcode_review_graph/spring_resolver.py74 # -----------------------------------------------------------------------COMMENT
MEDIUMcode_review_graph/spring_resolver.py81 # -----------------------------------------------------------------------COMMENT
MEDIUMcode_review_graph/spring_resolver.py100 # -----------------------------------------------------------------------COMMENT
MEDIUMcode_review_graph/spring_resolver.py103 # -----------------------------------------------------------------------COMMENT
MEDIUMcode_review_graph/spring_resolver.py113 # -----------------------------------------------------------------------COMMENT
MEDIUMcode_review_graph/spring_resolver.py115 # -----------------------------------------------------------------------COMMENT
MEDIUMcode_review_graph/tsconfig_resolver.py40 # ------------------------------------------------------------------COMMENT
MEDIUMcode_review_graph/tsconfig_resolver.py42 # ------------------------------------------------------------------COMMENT
MEDIUMcode_review_graph/tsconfig_resolver.py70 # ------------------------------------------------------------------COMMENT
MEDIUMcode_review_graph/tsconfig_resolver.py72 # ------------------------------------------------------------------COMMENT
MEDIUMcode_review_graph/tsconfig_resolver.py235# ---------------------------------------------------------------------------COMMENT
MEDIUMcode_review_graph/tsconfig_resolver.py237# ---------------------------------------------------------------------------COMMENT
MEDIUMcode_review_graph/scoped_resolver.py272 # ------------------------------------------------------------------COMMENT
MEDIUMcode_review_graph/scoped_resolver.py276 # ------------------------------------------------------------------COMMENT
MEDIUMcode_review_graph/scoped_resolver.py295 # ------------------------------------------------------------------COMMENT
MEDIUMcode_review_graph/scoped_resolver.py298 # ------------------------------------------------------------------COMMENT
MEDIUMcode_review_graph/scoped_resolver.py307 # ------------------------------------------------------------------COMMENT
MEDIUMcode_review_graph/scoped_resolver.py312 # ------------------------------------------------------------------COMMENT
MEDIUMcode_review_graph/refactor.py47# ---------------------------------------------------------------------------COMMENT
MEDIUMcode_review_graph/refactor.py49# ---------------------------------------------------------------------------COMMENT
MEDIUMcode_review_graph/refactor.py68# ---------------------------------------------------------------------------COMMENT
MEDIUMcode_review_graph/refactor.py70# ---------------------------------------------------------------------------COMMENT
374 more matches not shown…
Cross-Language Confusion137 hits · 622 pts
SeverityFileLineSnippetContext
HIGHcode_review_graph/skills.py1056 "cat >/dev/null || true; "CODE
HIGHcode_review_graph/skills.py1057 "command -v code-review-graph >/dev/null 2>&1 || exit 0; "CODE
HIGHcode_review_graph/skills.py1060 " --repo \"$(git rev-parse --show-toplevel 2>/dev/null)\""CODE
HIGHcode_review_graph/skills.py1075 "cat >/dev/null || true; "CODE
HIGHcode_review_graph/skills.py1076 "command -v code-review-graph >/dev/null 2>&1 || exit 0; "CODE
HIGHcode_review_graph/skills.py1079 " --repo \"$(git rev-parse --show-toplevel 2>/dev/null)\""CODE
HIGHcode_review_graph/skills.py1635cat > /dev/null || trueCODE
HIGHcode_review_graph/skills.py1637msg="$(code-review-graph status --repo "__CRG_REPO__" 2>&1 | head -n 1 || true)"CODE
HIGHcode_review_graph/skills.py1643' 2>/dev/null || echo '{"suppressOutput": true}'CODE
HIGHcode_review_graph/skills.py1102 "cat >/dev/null || true; "CODE
HIGHcode_review_graph/skills.py1120 "cat >/dev/null || true; "CODE
HIGHcode_review_graph/skills.py1156 code-review-graph update || trueCODE
HIGHcode_review_graph/skills.py1157 code-review-graph detect-changes --brief || trueCODE
HIGHcode_review_graph/skills.py1654cat > /dev/null || trueCODE
HIGHcode_review_graph/skills.py1656code-review-graph update --skip-flows --repo "__CRG_REPO__" >/dev/null 2>&1 || trueCODE
HIGHcode_review_graph/skills.py1903" 2>/dev/null || echo '{"passed":true}'CODE
HIGHcode_review_graph/skills.py1925" <<< "$output" 2>/dev/null || echo '{"passed":true}'CODE
HIGHcode_review_graph/skills.py1947" <<< "$output" 2>/dev/null || echo '{"passed":true}'CODE
HIGHcode_review_graph/visualization.py953 var bg = communityColoringOn && d.community_id != null ? communityColorScale(d.community_id) : (KIND_COLOR[d.kind] || CODE
HIGHcode_review_graph/visualization.py958 if (d.line_start != null) h += '<div class="tt-row"><span class="tt-label">Lines: </span>' + d.line_start + ' \u2013 'CODE
HIGHcode_review_graph/visualization.py958 if (d.line_start != null) h += '<div class="tt-row"><span class="tt-label">Lines: </span>' + d.line_start + ' \u2013 'CODE
HIGHcode_review_graph/visualization.py961 if (d.community_id != null) {CODE
HIGHcode_review_graph/visualization.py1014 CONTAINS: { dash:null, width:1, opacity:0.14, marker:"" },CODE
HIGHcode_review_graph/visualization.py1015 CALLS: { dash:null, width:2, opacity:0.7, marker:"url(#arrow-calls)" },CODE
HIGHcode_review_graph/visualization.py1022function eStyle(d) { return EDGE_CFG[d.kind] || {dash:null,width:1,opacity:0.3,marker:""}; }CODE
HIGHcode_review_graph/visualization.py1025 if (communityColoringOn && d.community_id != null) return communityColorScale(d.community_id);CODE
HIGHcode_review_graph/visualization.py1025 if (communityColoringOn && d.community_id != null) return communityColorScale(d.community_id);CODE
HIGHcode_review_graph/visualization.py1096 var best = null, bestDist = Infinity;CODE
HIGHcode_review_graph/visualization.py1102 if (ev.key === "ArrowRight" && dx > 0 && Math.abs(dy) < Math.abs(dx)) ok = true;CODE
HIGHcode_review_graph/visualization.py1103 if (ev.key === "ArrowLeft" && dx < 0 && Math.abs(dy) < Math.abs(dx)) ok = true;CODE
HIGHcode_review_graph/visualization.py1104 if (ev.key === "ArrowDown" && dy > 0 && Math.abs(dx) < Math.abs(dy)) ok = true;CODE
HIGHcode_review_graph/visualization.py1105 if (ev.key === "ArrowUp" && dy < 0 && Math.abs(dx) < Math.abs(dy)) ok = true;CODE
HIGHcode_review_graph/visualization.py1106 if (ok && dist < bestDist) { best = n; bestDist = dist; }CODE
HIGHcode_review_graph/visualization.py1313 return d._hidden ? "none" : null;CODE
HIGHcode_review_graph/visualization.py1322 if (cid == null) {CODE
HIGHcode_review_graph/visualization.py1325 if (cid != null && hiddenCommunities.has(cid)) {CODE
HIGHcode_review_graph/visualization.py1328 return null;CODE
HIGHcode_review_graph/visualization.py1333 if (cid == null) {CODE
HIGHcode_review_graph/visualization.py1336 if (cid != null && hiddenCommunities.has(cid)) {CODE
HIGHcode_review_graph/visualization.py1339 return null;CODE
HIGHcode_review_graph/visualization.py1343var activeFlowQns = null;CODE
HIGHcode_review_graph/visualization.py1346 if (idx === "") { activeFlowQns = null; clearFlowHighlight(); return; }CODE
HIGHcode_review_graph/visualization.py1355 if (!activeFlowQns || activeFlowQns.size === 0) { clearFlowHighlight(); return; }CODE
HIGHcode_review_graph/visualization.py1392 if (t === d.qualified_name && e.kind === "CALLS") { var sN = nodeById.get(s); if (sN) callers.push(sN); }CODE
HIGHcode_review_graph/visualization.py1392 if (t === d.qualified_name && e.kind === "CALLS") { var sN = nodeById.get(s); if (sN) callers.push(sN); }CODE
HIGHcode_review_graph/visualization.py1393 if (s === d.qualified_name && e.kind === "CALLS") { var tN = nodeById.get(t); if (tN) callees.push(tN); }CODE
HIGHcode_review_graph/visualization.py1393 if (s === d.qualified_name && e.kind === "CALLS") { var tN = nodeById.get(t); if (tN) callees.push(tN); }CODE
HIGHcode_review_graph/visualization.py1396 var bg = communityColoringOn && d.community_id != null ? communityColorScale(d.community_id) : (KIND_COLOR[d.kind] || CODE
HIGHcode_review_graph/visualization.py1402 if (d.community_id != null) {CODE
HIGHcode_review_graph/visualization.py1771 CROSS_COMMUNITY: { dash: null, width: 2, opacity: 0.6, marker: "" },CODE
HIGHcode_review_graph/visualization.py1773 CONTAINS: { dash: null, width: 1, opacity: 0.08, marker: "" },CODE
HIGHcode_review_graph/visualization.py1774 CALLS: { dash: null, width: 1.5, opacity: 0.7, marker: "url(#arrow-calls)" },CODE
HIGHcode_review_graph/visualization.py1778function eStyle(d) { return EDGE_CFG[d.kind] || { dash: null, width: 1, opacity: 0.3, marker: "" }; }CODE
HIGHcode_review_graph/visualization.py1883 if (d.line_start != null) addRow("Lines", d.line_start + " \u2013 " + (d.line_end || d.line_start));CODE
HIGHcode_review_graph/visualization.py1883 if (d.line_start != null) addRow("Lines", d.line_start + " \u2013 " + (d.line_end || d.line_start));CODE
HIGHcode_review_graph/visualization.py1886 if (d.weight != null) addRow("Weight", d.weight);CODE
HIGHcode_review_graph/visualization.py1926var linkSel = null, labelSel = null;CODE
HIGHcode_review_graph/visualization.py1928var simulation = null;CODE
HIGHcode_review_graph/visualization.py1934 if (d.kind === "Community") return Math.max(12, Math.min(40, 8 + Math.sqrt(d.member_count || 1) * 3));CODE
HIGHcode_review_graph/visualization.py1936 if (d.symbol_count != null) return Math.max(8, Math.min(30, 6 + Math.sqrt(d.symbol_count || 1) * 2));CODE
77 more matches not shown…
Unused Imports161 hits · 142 pts
SeverityFileLineSnippetContext
LOWcode_review_graph/communities.py7CODE
LOWcode_review_graph/exports.py3CODE
LOWcode_review_graph/forget.py20CODE
LOWcode_review_graph/changes.py7CODE
LOWcode_review_graph/spring_resolver.py18CODE
LOWcode_review_graph/tsconfig_resolver.py10CODE
LOWcode_review_graph/scoped_resolver.py60CODE
LOWcode_review_graph/analysis.py4CODE
LOWcode_review_graph/jedi_resolver.py12CODE
LOWcode_review_graph/refactor.py9CODE
LOWcode_review_graph/skills.py9CODE
LOWcode_review_graph/memory.py3CODE
LOWcode_review_graph/enrich.py8CODE
LOWcode_review_graph/http_origin_guard.py29CODE
LOWcode_review_graph/registry.py7CODE
LOWcode_review_graph/python_resolver.py3CODE
LOWcode_review_graph/context_savings.py7CODE
LOWcode_review_graph/graph.py8CODE
LOWcode_review_graph/graph_diff.py3CODE
LOWcode_review_graph/constants.py3CODE
LOWcode_review_graph/__init__.py3CODE
LOWcode_review_graph/__init__.py3CODE
LOWcode_review_graph/__init__.py3CODE
LOWcode_review_graph/__init__.py3CODE
LOWcode_review_graph/__init__.py3CODE
LOWcode_review_graph/rescript_resolver.py23CODE
LOWcode_review_graph/visualization.py16CODE
LOWcode_review_graph/hcl_resolver.py3CODE
LOWcode_review_graph/prompts.py13CODE
LOWcode_review_graph/uncertainty.py23CODE
LOWcode_review_graph/embeddings.py12CODE
LOWcode_review_graph/embeddings.py1029CODE
LOWcode_review_graph/cli.py29CODE
LOWcode_review_graph/custom_languages.py24CODE
LOWcode_review_graph/uninstall.py9CODE
LOWcode_review_graph/_legacy_instructions.py16CODE
LOWcode_review_graph/migrations.py7CODE
LOWcode_review_graph/search.py8CODE
LOWcode_review_graph/flows.py9CODE
LOWcode_review_graph/postprocessing.py20CODE
LOWcode_review_graph/hints.py9CODE
LOWcode_review_graph/main.py11CODE
LOWcode_review_graph/wiki.py7CODE
LOWcode_review_graph/daemon_cli.py13CODE
LOWcode_review_graph/daemon.py11CODE
LOWcode_review_graph/config_keys.py3CODE
LOWcode_review_graph/event_resolver.py3CODE
LOWcode_review_graph/token_benchmark.py3CODE
LOWcode_review_graph/incremental.py7CODE
LOWcode_review_graph/incremental.py2490CODE
LOWcode_review_graph/temporal_resolver.py19CODE
LOWcode_review_graph/tools/analysis_tools.py3CODE
LOWcode_review_graph/tools/build.py3CODE
LOWcode_review_graph/tools/query.py3CODE
LOWcode_review_graph/tools/refactor_tools.py3CODE
LOWcode_review_graph/tools/community_tools.py3CODE
LOWcode_review_graph/tools/_common.py3CODE
LOWcode_review_graph/tools/__init__.py34CODE
LOWcode_review_graph/tools/__init__.py37CODE
LOWcode_review_graph/tools/__init__.py38CODE
101 more matches not shown…
Deep Nesting190 hits · 124 pts
SeverityFileLineSnippetContext
LOWcode_review_graph/communities.py145CODE
LOWcode_review_graph/communities.py565CODE
LOWcode_review_graph/communities.py732CODE
LOWcode_review_graph/exports.py178CODE
LOWcode_review_graph/exports.py195CODE
LOWcode_review_graph/changes.py279CODE
LOWcode_review_graph/tsconfig_resolver.py74CODE
LOWcode_review_graph/tsconfig_resolver.py155CODE
LOWcode_review_graph/scoped_resolver.py249CODE
LOWcode_review_graph/refactor.py244CODE
LOWcode_review_graph/refactor.py621CODE
LOWcode_review_graph/refactor.py714CODE
LOWcode_review_graph/refactor.py310CODE
LOWcode_review_graph/skills.py37CODE
LOWcode_review_graph/skills.py616CODE
LOWcode_review_graph/skills.py693CODE
LOWcode_review_graph/skills.py1205CODE
LOWcode_review_graph/skills.py1285CODE
LOWcode_review_graph/memory.py77CODE
LOWcode_review_graph/enrich.py30CODE
LOWcode_review_graph/http_origin_guard.py68CODE
LOWcode_review_graph/registry.py64CODE
LOWcode_review_graph/graph.py541CODE
LOWcode_review_graph/graph.py746CODE
LOWcode_review_graph/graph.py965CODE
LOWcode_review_graph/graph.py1316CODE
LOWcode_review_graph/graph.py1584CODE
LOWcode_review_graph/visualization.py98CODE
LOWcode_review_graph/parser.py134CODE
LOWcode_review_graph/parser.py390CODE
LOWcode_review_graph/parser.py588CODE
LOWcode_review_graph/parser.py1424CODE
LOWcode_review_graph/parser.py1484CODE
LOWcode_review_graph/parser.py1499CODE
LOWcode_review_graph/parser.py1664CODE
LOWcode_review_graph/parser.py1749CODE
LOWcode_review_graph/parser.py1918CODE
LOWcode_review_graph/parser.py1950CODE
LOWcode_review_graph/parser.py1975CODE
LOWcode_review_graph/parser.py2026CODE
LOWcode_review_graph/parser.py2083CODE
LOWcode_review_graph/parser.py2827CODE
LOWcode_review_graph/parser.py2972CODE
LOWcode_review_graph/parser.py3083CODE
LOWcode_review_graph/parser.py3213CODE
LOWcode_review_graph/parser.py3297CODE
LOWcode_review_graph/parser.py3432CODE
LOWcode_review_graph/parser.py3534CODE
LOWcode_review_graph/parser.py3957CODE
LOWcode_review_graph/parser.py4588CODE
LOWcode_review_graph/parser.py4652CODE
LOWcode_review_graph/parser.py5060CODE
LOWcode_review_graph/parser.py5275CODE
LOWcode_review_graph/parser.py5515CODE
LOWcode_review_graph/parser.py5557CODE
LOWcode_review_graph/parser.py5598CODE
LOWcode_review_graph/parser.py5901CODE
LOWcode_review_graph/parser.py6563CODE
LOWcode_review_graph/parser.py6592CODE
LOWcode_review_graph/parser.py6778CODE
130 more matches not shown…
Excessive Try-Catch Wrapping83 hits · 95 pts
SeverityFileLineSnippetContext
LOWcode_review_graph/communities.py720 except Exception:CODE
LOWcode_review_graph/forget.py149 except Exception as exc: # noqa: BLE001 - a parser failure is non-fatalCODE
LOWcode_review_graph/forget.py158 except Exception as exc: # noqa: BLE001 - resolver failure is non-fatalCODE
LOWcode_review_graph/jedi_resolver.py128 except Exception as e:CODE
LOWcode_review_graph/jedi_resolver.py147 except Exception: # nosec B112 - Jedi may fail on malformed codeCODE
LOWcode_review_graph/graph.py1239 except Exception: # nosec B110 - FTS5 table may not exist on older schemasCODE
LOWcode_review_graph/graph.py1279 except Exception: # nosec B110 - FTS5 may not exist on older schemasCODE
LOWcode_review_graph/uncertainty.py378 except Exception:CODE
LOWcode_review_graph/uncertainty.py415 except Exception:CODE
LOWcode_review_graph/uncertainty.py442 except Exception:CODE
LOWcode_review_graph/parser.py2311 except Exception:CODE
LOWcode_review_graph/parser.py13194 except Exception as exc:CODE
LOWcode_review_graph/embeddings.py109 except Exception as exc: # pragma: no cover — best-effort startup hookCODE
LOWcode_review_graph/embeddings.py219 except Exception as e:CODE
LOWcode_review_graph/embeddings.py324 except Exception as e:CODE
LOWcode_review_graph/embeddings.py492 except Exception:CODE
LOWcode_review_graph/embeddings.py503 except Exception: # nosec B110CODE
LOWcode_review_graph/embeddings.py567 except Exception as e:CODE
LOWcode_review_graph/embeddings.py720 except Exception:CODE
LOWcode_review_graph/embeddings.py731 except Exception: # nosec B110CODE
LOWcode_review_graph/embeddings.py777 except Exception as e:CODE
LOWcode_review_graph/embeddings.py837 except Exception:CODE
LOWcode_review_graph/cli.py412 except Exception as exc:CODE
LOWcode_review_graph/cli.py434 except Exception as exc:CODE
LOWcode_review_graph/cli.py441 except Exception as exc:CODE
LOWcode_review_graph/cli.py449 except Exception as exc:CODE
LOWcode_review_graph/cli.py467 except Exception as exc:CODE
MEDIUMcode_review_graph/cli.py1805 print(f"Error: {exc}", file=sys.stderr)CODE
MEDIUMcode_review_graph/cli.py1989 print(f"Error: {exc}", file=sys.stderr)CODE
LOWcode_review_graph/search.py246 except Exception as e:STRING
LOWcode_review_graph/search.py358 except Exception as e:STRING
LOWcode_review_graph/postprocessing.py199 except Exception as exc:CODE
MEDIUMcode_review_graph/daemon_cli.py36 print("Error: Daemon is already running.")CODE
MEDIUMcode_review_graph/daemon_cli.py68 print("Error: Could not read daemon PID.")CODE
MEDIUMcode_review_graph/daemon_cli.py79 print(f"Error: Permission denied sending signal to PID {pid}.")CODE
MEDIUMcode_review_graph/daemon_cli.py249 print(f"Error reading log file: {exc}")CODE
MEDIUMcode_review_graph/daemon_cli.py265 print(f"Error: {exc}")CODE
LOWcode_review_graph/daemon.py734 except Exception:CODE
LOWcode_review_graph/daemon.py966 except Exception:CODE
LOWcode_review_graph/daemon.py1236 except Exception:CODE
MEDIUMcode_review_graph/incremental.py1727def _call() -> None:CODE
LOWcode_review_graph/incremental.py111 except Exception as exc: # noqa: BLE001 - best-effort post-passCODE
LOWcode_review_graph/incremental.py121 except Exception as exc: # noqa: BLE001CODE
LOWcode_review_graph/incremental.py133 except Exception as exc: # noqa: BLE001 - best-effort post-passCODE
LOWcode_review_graph/incremental.py143 except Exception as exc: # noqa: BLE001 - best-effort post-passCODE
LOWcode_review_graph/incremental.py153 except Exception as exc: # noqa: BLE001 - best-effort post-passCODE
LOWcode_review_graph/incremental.py87 except Exception as exc: # noqa: BLE001 - best-effort post-passCODE
LOWcode_review_graph/incremental.py99 except Exception as exc: # noqa: BLE001 - best-effort post-passCODE
LOWcode_review_graph/incremental.py396 except Exception as exc:CODE
LOWcode_review_graph/incremental.py1241 except Exception as e:CODE
LOWcode_review_graph/incremental.py1296 except Exception as e:CODE
LOWcode_review_graph/incremental.py1479 except Exception as e:CODE
LOWcode_review_graph/incremental.py1730 except Exception as exc: # noqa: BLE001 - teardown must not mask the real errorCODE
LOWcode_review_graph/incremental.py1748 except Exception as exc: # noqa: BLE001 - health reporting is best-effortCODE
LOWcode_review_graph/tools/build.py43 except Exception as exc:CODE
LOWcode_review_graph/tools/refactor_tools.py177 except Exception as exc:CODE
LOWcode_review_graph/tools/community_tools.py114 except Exception as exc:CODE
LOWcode_review_graph/tools/community_tools.py200 except Exception as exc:CODE
LOWcode_review_graph/tools/community_tools.py337 except Exception as exc:CODE
LOWcode_review_graph/tools/_common.py121 except Exception:CODE
23 more matches not shown…
Modern Structural Boilerplate60 hits · 62 pts
SeverityFileLineSnippetContext
LOWcode_review_graph/communities.py23logger = logging.getLogger(__name__)CODE
LOWcode_review_graph/exports.py16logger = logging.getLogger(__name__)CODE
LOWcode_review_graph/forget.py29logger = logging.getLogger(__name__)CODE
LOWcode_review_graph/changes.py21logger = logging.getLogger(__name__)CODE
LOWcode_review_graph/spring_resolver.py27logger = logging.getLogger(__name__)CODE
LOWcode_review_graph/tsconfig_resolver.py18logger = logging.getLogger(__name__)CODE
LOWcode_review_graph/scoped_resolver.py69logger = logging.getLogger(__name__)CODE
LOWcode_review_graph/analysis.py11logger = logging.getLogger(__name__)CODE
LOWcode_review_graph/jedi_resolver.py22logger = logging.getLogger(__name__)CODE
LOWcode_review_graph/refactor.py23logger = logging.getLogger(__name__)CODE
LOWcode_review_graph/skills.py24logger = logging.getLogger(__name__)CODE
LOWcode_review_graph/memory.py11logger = logging.getLogger(__name__)CODE
LOWcode_review_graph/enrich.py18logger = logging.getLogger(__name__)CODE
LOWcode_review_graph/registry.py18logger = logging.getLogger(__name__)CODE
LOWcode_review_graph/python_resolver.py12logger = logging.getLogger(__name__)CODE
LOWcode_review_graph/graph.py40logger = logging.getLogger(__name__)CODE
LOWcode_review_graph/graph.py394 def set_metadata(self, key: str, value: str) -> None:CODE
LOWcode_review_graph/graph_diff.py12logger = logging.getLogger(__name__)CODE
LOWcode_review_graph/__init__.py13__all__ = [CODE
LOWcode_review_graph/rescript_resolver.py33logger = logging.getLogger(__name__)CODE
LOWcode_review_graph/visualization.py30logger = logging.getLogger(__name__)CODE
LOWcode_review_graph/hcl_resolver.py12logger = logging.getLogger(__name__)CODE
LOWcode_review_graph/uncertainty.py38logger = logging.getLogger(__name__)CODE
LOWcode_review_graph/parser.py451logger = logging.getLogger(__name__)CODE
LOWcode_review_graph/embeddings.py31logger = logging.getLogger(__name__)CODE
LOWcode_review_graph/cli.py52logger = logging.getLogger(__name__)CODE
LOWcode_review_graph/custom_languages.py45logger = logging.getLogger(__name__)CODE
LOWcode_review_graph/migrations.py13logger = logging.getLogger(__name__)CODE
LOWcode_review_graph/migrations.py34def _set_schema_version(conn: sqlite3.Connection, version: int) -> None:CODE
LOWcode_review_graph/search.py18logger = logging.getLogger(__name__)CODE
LOWcode_review_graph/flows.py21logger = logging.getLogger(__name__)CODE
LOWcode_review_graph/postprocessing.py28logger = logging.getLogger(__name__)CODE
LOWcode_review_graph/main.py67logger = logging.getLogger(__name__)CODE
LOWcode_review_graph/wiki.py21logger = logging.getLogger(__name__)CODE
LOWcode_review_graph/daemon_cli.py23logger = logging.getLogger(__name__)CODE
LOWcode_review_graph/daemon.py38logger = logging.getLogger(__name__)CODE
LOWcode_review_graph/daemon.py1154 def _setup_signal_handlers(self) -> None:CODE
LOWcode_review_graph/event_resolver.py14logger = logging.getLogger(__name__)CODE
LOWcode_review_graph/token_benchmark.py13logger = logging.getLogger(__name__)CODE
LOWcode_review_graph/incremental.py76logger = logging.getLogger(__name__)CODE
LOWcode_review_graph/temporal_resolver.py28logger = logging.getLogger(__name__)CODE
LOWcode_review_graph/tools/build.py17logger = logging.getLogger(__name__)CODE
LOWcode_review_graph/tools/query.py25logger = logging.getLogger(__name__)CODE
LOWcode_review_graph/tools/_common.py19logger = logging.getLogger(__name__)CODE
LOWcode_review_graph/tools/__init__.py106__all__ = [CODE
LOWcode_review_graph/tools/docs.py18logger = logging.getLogger(__name__)CODE
LOWcode_review_graph/tools/review.py24logger = logging.getLogger(__name__)CODE
LOWcode_review_graph/tools/context.py15logger = logging.getLogger(__name__)CODE
LOWcode_review_graph/tools/registry_tools.py14logger = logging.getLogger(__name__)CODE
LOWcode_review_graph/eval/runner.py27logger = logging.getLogger(__name__)CODE
LOWcode_review_graph/eval/__init__.py22__all__ = [CODE
LOWcode_review_graph/eval/token_benchmark.py9logger = logging.getLogger(__name__)CODE
LOWcode_review_graph/eval/benchmarks/build_performance.py9logger = logging.getLogger(__name__)CODE
LOWcode_review_graph/eval/benchmarks/agent_baseline.py36logger = logging.getLogger(__name__)CODE
LOW…de_review_graph/eval/benchmarks/multi_hop_retrieval.py32logger = logging.getLogger(__name__)CODE
LOWcode_review_graph/eval/benchmarks/search_quality.py9logger = logging.getLogger(__name__)CODE
LOWcode_review_graph/eval/benchmarks/flow_completeness.py8logger = logging.getLogger(__name__)CODE
LOWcode_review_graph/eval/benchmarks/impact_accuracy.py27logger = logging.getLogger(__name__)CODE
LOWcode_review_graph/eval/benchmarks/token_efficiency.py18logger = logging.getLogger(__name__)CODE
LOWtests/test_agent_transparency.py28def _set_build_metadata(store: GraphStore, sha: str) -> None:CODE
Self-Referential Comments9 hits · 30 pts
SeverityFileLineSnippetContext
MEDIUMtests/test_registry.py111 # Create a new registry from the same fileCOMMENT
MEDIUMtests/test_flows.py289 # Create a chain of 20 functions.COMMENT
MEDIUMtests/test_multilang.py428 # Create a mini Java project with two packagesCOMMENT
MEDIUMtests/test_daemon.py751 # Create a new repo directory for alpha with a different path (no graph.db)COMMENT
MEDIUMtests/test_incremental.py704 # Create a simple Python fileCOMMENT
MEDIUMtests/test_integration_git.py279 # Create the parent repo and add lib as a submoduleCOMMENT
MEDIUMtests/test_integration_git.py363 # Create a legitimate pageCOMMENT
MEDIUMtests/test_tools.py1854 # Create the two communities and stamp community_id on nodes.COMMENT
MEDIUMtests/test_tools.py2065 # Create a small graphCOMMENT
Over-Commented Block26 hits · 21 pts
SeverityFileLineSnippetContext
LOWcode_review_graph/changes.py421 # Diff keys are forward-slash paths relative to the repo root, butCOMMENT
LOWcode_review_graph/visualization.py521COMMENT
LOWcode_review_graph/parser.py1041 # inside class_implementation. C-style function_definition is also presentCOMMENT
LOWcode_review_graph/parser.py1101 "bash": [],COMMENT
LOWcode_review_graph/parser.py6341 ):COMMENT
LOWcode_review_graph/parser.py11981 return component_nameCOMMENT
LOWcode_review_graph/parser.py13661 # APPEND the extension — never `with_suffix`, which REPLACES theCOMMENT
LOWcode_review_graph/parser.py15701 val = child.text.decode("utf-8", errors="replace").strip("'\"")COMMENT
LOWcode_review_graph/embeddings.py521 # OpenAI spec: data[i].index maps to input[i], but someCOMMENT
LOWcode_review_graph/daemon.py61 return crg_home() / "logs"COMMENT
LOWcode_review_graph/tools/_common.py261COMMENT
LOWcode_review_graph/tools/review.py41# flow (~980 tokens each), so 50 flows is still ~49k tokens — #849 was onlyCOMMENT
LOW.serena/project.yml1# the name by which the project can be referenced within SerenaCOMMENT
LOW.serena/project.yml21# - For JavaScript, use typescriptCOMMENT
LOW.serena/project.yml41# The language backend to use for this project.COMMENT
LOW.serena/project.yml61COMMENT
LOW.serena/project.yml81# * `execute_shell_command`: Executes a shell command.COMMENT
LOW.serena/project.yml101# * `rename_symbol`: Renames a symbol throughout the codebase using language server refactoring capabilities.COMMENT
LOW.serena/project.yml121# If the setting is undefined, the base_modes from the global configuration (serena_config.yml) apply.COMMENT
LOW.serena/project.yml141# If null or missing, use the setting from the global configuration.COMMENT
LOWtests/test_parser.py1321 # live_helper: emitted (no guard)COMMENT
LOWtests/test_token_budget.py181COMMENT
LOW.beads/config.yaml1# Beads Configuration FileCOMMENT
LOW.beads/config.yaml21# title-length: 255COMMENT
LOW.beads/config.yaml41# backup:COMMENT
LOWdocs/COMMANDS.md381code-review-graph visualize --serve # Serve graph.html on localhost:8765COMMENT
Verbosity Indicators14 hits · 19 pts
SeverityFileLineSnippetContext
LOWcode_review_graph/eval/token_benchmark.py28 # Step 1: get_minimal_contextCOMMENT
LOWcode_review_graph/eval/token_benchmark.py34 # Step 2: detect_changes (minimal)COMMENT
LOWdiagrams/generate_diagrams.py342 # Step 1: TriggerCOMMENT
LOWdiagrams/generate_diagrams.py350 # Step 2: DetectCOMMENT
LOWdiagrams/generate_diagrams.py524 # Step 1: User asksCOMMENT
LOWdiagrams/generate_diagrams.py532 # Step 2: Claude CodeCOMMENT
LOWdiagrams/generate_diagrams.py363 # Step 3: CascadeCOMMENT
LOWdiagrams/generate_diagrams.py376 # Step 4: Re-parseCOMMENT
LOWdiagrams/generate_diagrams.py545 # Step 3: MCP callCOMMENT
LOWdiagrams/generate_diagrams.py558 # Step 4: Graph queryCOMMENT
LOWdiagrams/generate_diagrams.py570 # Step 5: Claude respondsCOMMENT
LOWtests/test_refactor.py761 # Step 2: refactor_id should still be valid — dry_run doesn't consume itCOMMENT
LOWtests/test_refactor.py765 # Step 3: real apply — uses same refactor_idCOMMENT
LOWtests/test_refactor.py746 # Step 1: dry_run — no writes, returns diffCOMMENT
Structural Annotation Overuse14 hits · 19 pts
SeverityFileLineSnippetContext
LOWcode_review_graph/eval/token_benchmark.py28 # Step 1: get_minimal_contextCOMMENT
LOWcode_review_graph/eval/token_benchmark.py34 # Step 2: detect_changes (minimal)COMMENT
LOWdiagrams/generate_diagrams.py342 # Step 1: TriggerCOMMENT
LOWdiagrams/generate_diagrams.py350 # Step 2: DetectCOMMENT
LOWdiagrams/generate_diagrams.py524 # Step 1: User asksCOMMENT
LOWdiagrams/generate_diagrams.py532 # Step 2: Claude CodeCOMMENT
LOWdiagrams/generate_diagrams.py363 # Step 3: CascadeCOMMENT
LOWdiagrams/generate_diagrams.py376 # Step 4: Re-parseCOMMENT
LOWdiagrams/generate_diagrams.py545 # Step 3: MCP callCOMMENT
LOWdiagrams/generate_diagrams.py558 # Step 4: Graph queryCOMMENT
LOWdiagrams/generate_diagrams.py570 # Step 5: Claude respondsCOMMENT
LOWtests/test_refactor.py761 # Step 2: refactor_id should still be valid — dry_run doesn't consume itCOMMENT
LOWtests/test_refactor.py765 # Step 3: real apply — uses same refactor_idCOMMENT
LOWtests/test_refactor.py746 # Step 1: dry_run — no writes, returns diffCOMMENT
Docstring Block Structure3 hits · 15 pts
SeverityFileLineSnippetContext
HIGHcode_review_graph/registry.py67Register a repository path. Validates that the path contains a ``.git`` or ``.code-review-graph`` direcSTRING
HIGHcode_review_graph/daemon.py149Load daemon configuration from a TOML file. Args: path: Explicit config path. Falls back to :func:`defaultSTRING
HIGHcode_review_graph/daemon.py310Add a repository to the daemon config and persist the change. Args: repo_path: Path to the repository (wiSTRING
Cross-File Repetition3 hits · 15 pts
SeverityFileLineSnippetContext
HIGHcode_review_graph/tools/analysis_tools.py0keep only *fields* on each row, dropping keys the row does not have.STRING
HIGHcode_review_graph/tools/refactor_tools.py0keep only *fields* on each row, dropping keys the row does not have.STRING
HIGHcode_review_graph/tools/review.py0keep only *fields* on each row, dropping keys the row does not have.STRING
Fake / Example Data15 hits · 14 pts
SeverityFileLineSnippetContext
LOWtests/test_embeddings.py373 "CRG_OPENAI_API_KEY": "fake-key",CODE
LOWtests/test_embeddings.py382 api_key="fake-key",CODE
LOWtests/test_embeddings.py398 "CRG_OPENAI_API_KEY": "fake-key",CODE
LOWtests/test_integration_git.py106 assert _git(repo, "config", "user.email", "test@test.com").returncode == 0CODE
LOWtests/test_integration_git.py273 _git(lib_repo, "config", "user.email", "test@test.com")CODE
LOWtests/test_integration_git.py283 _git(parent, "config", "user.email", "test@test.com")CODE
LOWtests/test_integration_git.py380 assert _git(repo, "config", "user.email", "test@test.com").returncode == 0CODE
LOWtests/test_integration_git.py69 _git(repo, "config", "user.email", "test@test.com")CODE
LOWtests/test_integration_git.py432 _git_ok(repo, "config", "user.email", "test@test.com")CODE
LOWtests/test_integration_git.py623 _git_ok(repo, "config", "user.email", "test@test.com")CODE
LOWtests/test_integration_git.py746 _git_ok(repo, "config", "user.email", "test@test.com")CODE
LOWtests/test_eval.py298 ["git", "config", "user.email", "test@test.com"],CODE
LOWtests/test_eval.py441 ["git", "config", "user.email", "test@test.com"],CODE
LOWtests/test_eval.py515 ["git", "config", "user.email", "test@test.com"],CODE
LOWtests/test_eval.py585 _git(repo_path, "config", "user.email", "test@test.com")CODE
Modern AI Meta-Vocabulary3 hits · 10 pts
SeverityFileLineSnippetContext
MEDIUMcode_review_graph/flows.py89 # FastAPI lifecycle / dependency injectionCOMMENT
MEDIUMcode_review_graph/tools/_common.py269# Every MCP tool response has to survive a client-side context window. #849COMMENT
MEDIUMdocs/FAQ.md51## Isn't this just RAG?COMMENT
Redundant / Tautological Comments7 hits · 10 pts
SeverityFileLineSnippetContext
LOWcode_review_graph/communities.py873 # Check if any communities are affected (batch to stay under SQLite limit)COMMENT
LOWcode_review_graph/refactor.py567 # Check if this is a method override where the base class methodCOMMENT
LOWcode_review_graph/skills.py829 # Check if already presentCOMMENT
LOWcode_review_graph/parser.py3466 # Check if all non-empty lines are MAGIC linesCOMMENT
LOWcode_review_graph/wiki.py108 # Check if this flow passes through any community memberCOMMENT
LOW.serena/project.yml123# Set this to [] to disable base modes for this project.COMMENT
LOW.serena/project.yml124# Set this to a list of mode names to always include the respective modes for this project.COMMENT
Overly Generic Function Names7 hits · 6 pts
SeverityFileLineSnippetContext
LOWtests/test_parser.py359 "def helper():\n"CODE
LOWtests/test_parser.py1300 b"def helper(): pass\n",CODE
LOWtests/test_forget_parity.py26 "util.py": "def helper():\n return 41\n",CODE
LOWtests/test_forget_parity.py37 "src_one/pkg/util.py": "def helper():\n return 1\n",CODE
LOWtests/test_forget_parity.py38 "src_two/pkg/util.py": "def helper():\n return 2\n",CODE
LOWtests/test_integration_git.py275 (lib_repo / "util.py").write_text("def helper():\n pass\n")CODE
LOWtests/test_tools.py1211 + "def handle_request():\n"CODE
AI Structural Patterns6 hits · 6 pts
SeverityFileLineSnippetContext
LOWcode_review_graph/main.py291CODE
LOWcode_review_graph/main.py679CODE
LOWcode_review_graph/main.py745CODE
LOWcode_review_graph/tools/refactor_tools.py42CODE
LOWcode_review_graph/tools/review.py99CODE
LOWcode_review_graph/tools/review.py527CODE
AI Slop Vocabulary3 hits · 6 pts
SeverityFileLineSnippetContext
MEDIUMtests/test_parser.py1935 # the highest-leverage language for the fix after Python.COMMENT
MEDIUMtests/test_embeddings.py905 """Ensure localhost detection is robust against subdomain tricks."""STRING
MEDIUMcode-review-graph-vscode/package-lock.json3466 "resolved": "https://registry.npmjs.org/robust-predicates/-/robust-predicates-3.0.2.tgz",CODE
Slop Phrases2 hits · 4 pts
SeverityFileLineSnippetContext
MEDIUM.serena/project.yml58# Same syntax as gitignore, so you can use * and **.COMMENT
LOW.serena/project.yml71# To make sure you have the latest list of tools, and to view their descriptions,COMMENT