Repository Analysis

reconurge/flowsint

A modern platform for visual, flexible, and extensible graph-based investigations. For cybersecurity analysts and investigators.

14.5 Low AI signal View on GitHub

Analysis Overview

This report presents the forensic synthetic code analysis of reconurge/flowsint, a TypeScript project with 7,284 GitHub stars. SynthScan v2.0 examined 91,635 lines of code across 776 source files, recording 1055 pattern matches distributed across 16 syntactic categories. The overall adjusted score of 14.5 places this repository in the Low 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).

14.5
Adjusted Score
14.5
Raw Score
100%
Time Factor
2026-07-01
Last Push
7.3K
Stars
TypeScript
Language
91.6K
Lines of Code
776
Files
1.1K
Pattern Hits
2026-07-14
Scan Date
0.03
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 23MEDIUM 76LOW 956

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 1055 distinct pattern matches across 16 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 Identifiers393 hits · 414 pts
SeverityFileLineSnippetContext
LOWflowsint-api/app/utils.py163def extract_input_schema_flow(model: Type[BaseModel]) -> Dict[str, Any]:CODE
LOWflowsint-api/app/security/permissions.py26def check_investigation_permission(CODE
LOWflowsint-api/app/utils/custom_types.py86def validate_payload_against_schema(payload: Dict[str, Any], schema: Dict[str, Any]) -> tuple[bool, list[str]]:CODE
LOWflowsint-api/app/utils/custom_types.py110def calculate_schema_checksum(schema: Dict[str, Any]) -> str:CODE
LOWflowsint-api/app/api/sketch_utils.py12def update_sketch_last_modified(db: Session, sketch_id: str | UUID) -> None:CODE
LOWflowsint-api/app/api/routes/analysis.py65def get_analyses_by_investigation(CODE
LOWflowsint-api/app/api/routes/chat.py35def get_chats_by_investigation(CODE
LOWflowsint-api/app/api/routes/flows.py134async def get_material_by_input_type(input_type: str):CODE
LOWflowsint-api/app/api/routes/investigations.py30def _inject_current_user_role(service, investigation, user_id) -> InvestigationRead:CODE
LOWflowsint-api/app/api/routes/investigations.py90def get_sketches_by_investigation(CODE
LOWflowsint-api/tests/test_events_auth.py11def test_get_current_user_sse_is_removed():CODE
LOWflowsint-api/tests/test_events_auth.py17def test_log_stream_requires_auth_header(client):CODE
LOWflowsint-api/tests/test_events_auth.py23def test_status_stream_requires_auth_header(client):CODE
LOWflowsint-api/tests/test_events_auth.py28def test_log_stream_rejects_token_query_param(client):CODE
LOWflowsint-api/tests/test_events_auth.py35def test_dead_scan_stream_endpoint_removed(client):CODE
LOWflowsint-api/tests/test_events_auth.py41def test_get_current_user_accepts_valid_bearer(db_session):CODE
LOWflowsint-core/tests/core/test_logger_singleton.py71 def test_singleton_returns_same_instance(self, mock_get_db, mock_emit_event):CODE
LOWflowsint-core/tests/core/test_logger_singleton.py82 def test_singleton_is_thread_safe(self, mock_get_db, mock_emit_event):CODE
LOWflowsint-core/tests/core/test_logger_singleton.py124 def test_error_logs_correctly(self, logger_instance, mock_emit_event):CODE
LOWflowsint-core/tests/core/test_logger_singleton.py144 def test_debug_logs_correctly(self, logger_instance, mock_emit_event):CODE
LOWflowsint-core/tests/core/test_logger_singleton.py154 def test_success_logs_correctly(self, logger_instance, mock_emit_event):CODE
LOWflowsint-core/tests/core/test_logger_singleton.py164 def test_completed_logs_correctly(self, logger_instance, mock_emit_event):CODE
LOWflowsint-core/tests/core/test_logger_singleton.py174 def test_pending_logs_correctly(self, logger_instance, mock_emit_event):CODE
LOWflowsint-core/tests/core/test_logger_singleton.py184 def test_graph_append_logs_correctly(self, logger_instance, mock_emit_event):CODE
LOWflowsint-core/tests/core/test_logger_singleton.py207 def test_batch_flush_when_size_reached(self, logger_instance, mock_db_session):CODE
LOWflowsint-core/tests/core/test_logger_singleton.py242 def test_batch_worker_flushes_periodically(self, mock_get_db, mock_emit_event, mock_db_session):CODE
LOWflowsint-core/tests/core/test_logger_singleton.py265 def test_empty_queue_flush_does_nothing(self, logger_instance, mock_db_session):CODE
LOWflowsint-core/tests/core/test_logger_singleton.py327 def test_shutdown_flushes_pending_logs(self, mock_get_db, mock_emit_event, mock_db_session):CODE
LOWflowsint-core/tests/core/test_logger_singleton.py350 def test_shutdown_stops_worker_thread(self, mock_get_db, mock_emit_event):CODE
LOWflowsint-core/tests/core/test_logger_singleton.py368 def test_database_error_does_not_crash(self, logger_instance, mock_db_session):CODE
LOWflowsint-core/tests/core/test_logger_singleton.py381 def test_event_emission_error_does_not_crash(self, logger_instance, mock_emit_event):CODE
LOWflowsint-core/tests/core/test_logger_singleton.py415 def test_batch_insertion_is_efficient(self, logger_instance, mock_db_session):CODE
LOW…t-core/tests/core/test_enricher_base_simplified_api.py35def test_create_relationship_with_pydantic_objects():CODE
LOW…t-core/tests/core/test_enricher_base_simplified_api.py47def test_create_node_with_property_override():CODE
LOWflowsint-core/tests/core/base.py60def test_incorrect_preprocess():CODE
LOWflowsint-core/tests/core/graph/test_graph_serializer.py91def test_serialize_from_flowsint_type():CODE
LOWflowsint-core/tests/core/graph/test_graph_serializer.py116 def test_removes_empty_strings(self):CODE
LOWflowsint-core/tests/core/graph/test_graph_serializer.py136 def test_cleans_list_of_dicts(self):CODE
LOWflowsint-core/tests/core/graph/test_graph_serializer.py141 def test_removes_empty_nested_dict(self):CODE
LOWflowsint-core/tests/core/graph/test_graph_serializer.py161 def test_cleans_empty_values_before_parsing(self):CODE
LOWflowsint-core/tests/core/graph/test_graph_serializer.py167 def test_raises_on_unknown_type(self):CODE
LOWflowsint-core/tests/core/graph/test_graph_serializer.py174 def test_extracts_node_properties(self):CODE
LOWflowsint-core/tests/core/graph/test_graph_serializer.py204 def test_converts_values_to_string(self):CODE
LOWflowsint-core/tests/core/graph/test_graph_serializer.py269 def test_deserializes_multiple_nodes(self):CODE
LOWflowsint-core/tests/core/graph/test_graph_serializer.py302 def test_deserializes_multiple_edges(self):CODE
LOWflowsint-core/tests/core/graph/test_graph_serializer.py319 def test_raises_on_missing_data(self):CODE
LOW…nt-core/tests/core/graph/in_memory_graph_repository.py176 def create_relationship_by_element_id(CODE
LOW…nt-core/tests/core/graph/in_memory_graph_repository.py393 def batch_create_edges_by_element_id(CODE
LOWflowsint-core/tests/core/graph/test_graph_service.py474 def test_log_graph_message_without_logger(self):CODE
LOWflowsint-core/tests/core/graph/test_graph_service.py482 def test_flush_with_batching_enabled(self):CODE
LOWflowsint-core/tests/core/graph/test_graph_service.py491 def test_flush_with_batching_disabled(self):CODE
LOWflowsint-core/tests/core/graph/test_graph_service.py19 def test_init_with_injected_repository(self):CODE
LOWflowsint-core/tests/core/graph/test_graph_service.py36 def test_init_with_in_memory_repository(self):CODE
LOWflowsint-core/tests/core/graph/test_graph_service.py44 def test_init_without_repository_raises(self):CODE
LOWflowsint-core/tests/core/graph/test_graph_service.py61 def test_create_node_with_graph_node(self):CODE
LOWflowsint-core/tests/core/graph/test_graph_service.py80 def test_create_node_with_in_memory_repository(self):CODE
LOWflowsint-core/tests/core/graph/test_graph_service.py98 def test_create_node_with_flowsint_type_raises(self):CODE
LOWflowsint-core/tests/core/graph/test_graph_service.py106 def test_create_node_with_batching(self):CODE
LOWflowsint-core/tests/core/graph/test_graph_service.py127 def test_create_node_from_flowsint_type(self):CODE
LOWflowsint-core/tests/core/graph/test_graph_service.py139 def test_create_node_from_flowsint_type_with_graph_node_raises(self):CODE
333 more matches not shown…
Unused Imports234 hits · 222 pts
SeverityFileLineSnippetContext
LOWflowsint-api/app/utils/custom_types.py5CODE
LOWflowsint-api/app/api/routes/sketches.py25CODE
LOWflowsint-api/app/api/routes/chat.py1CODE
LOWflowsint-api/tests/test_events_auth.py5CODE
LOWflowsint-api/alembic/env.py13CODE
LOW…ic/versions/661ff8ef4425_rename_transforms_to_flows.py11CODE
LOW…ns/6dfa83113ad7_change_content_colum_of_log_to_json.py10CODE
LOW…ns/6dfa83113ad7_change_content_colum_of_log_to_json.py11CODE
LOWflowsint-api/alembic/versions/d39941278a91_init.py10CODE
LOWflowsint-api/alembic/versions/d39941278a91_init.py11CODE
LOW…ersions/0ab8ee0a782c_add_cascade_delete_to_messages.py10CODE
LOW…ersions/0ab8ee0a782c_add_cascade_delete_to_messages.py11CODE
LOW…lembic/versions/8d0e12b68d1e_fix_backpopulate_issue.py10CODE
LOW…lembic/versions/8d0e12b68d1e_fix_backpopulate_issue.py11CODE
LOW…pi/alembic/versions/afdaf9aa539c_add_passive_delete.py10CODE
LOW…pi/alembic/versions/afdaf9aa539c_add_passive_delete.py11CODE
LOW…s/2da47dbd4a52_add_cascade_delete_to_scans_and_logs.py11CODE
LOW…a8e5b5a7b9_add_relationship_between_investigations_.py10CODE
LOW…a8e5b5a7b9_add_relationship_between_investigations_.py11CODE
LOW…alembic/versions/1d0f26dbbef5_add_passive_delete_v2.py10CODE
LOW…alembic/versions/1d0f26dbbef5_add_passive_delete_v2.py11CODE
LOW…f5436251e3_add_relationship_between_investigations_.py10CODE
LOW…f5436251e3_add_relationship_between_investigations_.py11CODE
LOW…sions/f5fae279ec04_merge_portable_column_types_and_.py10CODE
LOW…sions/f5fae279ec04_merge_portable_column_types_and_.py11CODE
LOW…ns/c82bf6af92e5_add_investigation_roles_permissions.py11CODE
LOW…ns/c82bf6af92e5_add_investigation_roles_permissions.py12CODE
LOWflowsint-core/tests/conftest.py3CODE
LOWflowsint-core/tests/core/test_logger_singleton.py15CODE
LOW…t-core/tests/core/test_enricher_base_simplified_api.py5CODE
LOW…t-core/tests/core/test_enricher_base_simplified_api.py7CODE
LOWflowsint-core/tests/core/graph/test_graph_repository.py4CODE
LOWflowsint-core/tests/core/graph/test_graph_repository.py5CODE
LOWflowsint-core/tests/core/graph/test_graph_repository.py5CODE
LOW…nt-core/tests/repositories/test_analysis_repository.py2CODE
LOWflowsint-core/tests/repositories/test_log_repository.py2CODE
LOWflowsint-core/tests/repositories/test_log_repository.py2CODE
LOWflowsint-core/tests/repositories/test_key_repository.py2CODE
LOW…sint-core/tests/repositories/test_sketch_repository.py2CODE
LOWflowsint-core/tests/templates/test_loader.py3CODE
LOWflowsint-core/tests/templates/test_loader.py8CODE
LOWflowsint-core/tests/templates/enricher.py9CODE
LOWflowsint-core/tests/templates/test_template_enricher.py3CODE
LOWflowsint-core/tests/templates/test_template_enricher.py6CODE
LOWflowsint-core/tests/templates/test_template_enricher.py11CODE
LOWflowsint-core/tests/templates/test_template_enricher.py15CODE
LOWflowsint-core/tests/import/test_file_parser.py1CODE
LOWflowsint-core/tests/import/txt/test_txt_import.py8CODE
LOWflowsint-core/tests/import/txt/test_txt_import.py8CODE
LOWflowsint-core/tests/import/txt/test_txt_import.py8CODE
LOWflowsint-core/tests/import/txt/test_txt_import.py8CODE
LOWflowsint-core/tests/vault/test_vault.py4CODE
LOW…nt-core/tests/vault/test_enricher_vault_integration.py5CODE
LOW…nt-core/tests/vault/test_enricher_vault_integration.py5CODE
LOWflowsint-core/src/flowsint_core/__init__.py5CODE
LOWflowsint-core/src/flowsint_core/__init__.py6CODE
LOWflowsint-core/src/flowsint_core/__init__.py7CODE
LOWflowsint-core/src/flowsint_core/__init__.py8CODE
LOWflowsint-core/src/flowsint_core/__init__.py9CODE
LOWflowsint-core/src/flowsint_core/__init__.py10CODE
174 more matches not shown…
Excessive Try-Catch Wrapping192 hits · 208 pts
SeverityFileLineSnippetContext
LOWflowsint-api/app/utils.py51 except Exception as e:CODE
LOWflowsint-api/app/utils.py99 except Exception:CODE
LOWflowsint-api/app/utils.py204 except Exception as e:CODE
LOWflowsint-api/app/utils/custom_types.py174 except Exception as e:CODE
LOWflowsint-api/app/api/sketch_utils.py41 except Exception as e:CODE
MEDIUMflowsint-api/app/api/sketch_utils.py43 print(f"Error updating sketch/investigation timestamp for {sketch_id}: {e}")CODE
LOWflowsint-api/app/api/routes/sketches.py431 except Exception as e:CODE
LOWflowsint-api/app/api/routes/sketches.py445 except Exception as e:CODE
LOWflowsint-api/app/api/routes/sketches.py478 except Exception as e:CODE
LOWflowsint-api/app/api/routes/sketches.py505 except Exception as e:CODE
LOWflowsint-api/app/api/routes/events.py79 except Exception as e:CODE
LOWflowsint-api/app/api/routes/events.py149 except Exception as e:CODE
LOWflowsint-api/app/api/routes/enrichers.py92 except Exception as e:CODE
LOWflowsint-api/app/api/routes/enricher_templates.py155 except Exception as e:CODE
LOWflowsint-api/app/api/routes/flows.py246 except Exception as e:CODE
LOW…nt-core/tests/core/graph/in_memory_graph_repository.py384 except Exception as e:CODE
LOW…nt-core/tests/core/graph/in_memory_graph_repository.py417 except Exception as e:CODE
LOWflowsint-core/src/flowsint_core/utils.py50 except Exception:CODE
LOWflowsint-core/src/flowsint_core/utils.py98 except Exception:CODE
LOWflowsint-core/src/flowsint_core/utils.py203 except Exception as e:CODE
LOWflowsint-core/src/flowsint_core/tasks/event.py24 except Exception as e:CODE
LOWflowsint-core/src/flowsint_core/tasks/event.py40 except Exception as e:CODE
LOWflowsint-core/src/flowsint_core/tasks/flow.py50 except Exception as e:CODE
LOWflowsint-core/src/flowsint_core/tasks/flow.py73 except Exception as ex:CODE
MEDIUMflowsint-core/src/flowsint_core/tasks/flow.py76 print(f"Error in task: {error_logs}")CODE
LOWflowsint-core/src/flowsint_core/tasks/enricher.py52 except Exception as e:CODE
LOWflowsint-core/src/flowsint_core/tasks/enricher.py77 except Exception as ex:CODE
MEDIUMflowsint-core/src/flowsint_core/tasks/enricher.py80 print(f"Error in task: {error_logs}")CODE
LOWflowsint-core/src/flowsint_core/tasks/enricher.py121 except Exception as e:CODE
LOWflowsint-core/src/flowsint_core/tasks/enricher.py153 except Exception as ex:CODE
MEDIUMflowsint-core/src/flowsint_core/tasks/enricher.py156 print(f"Error in template task: {error_logs}")CODE
LOW…wsint-core/src/flowsint_core/core/template_enricher.py253 except Exception as e:CODE
LOW…wsint-core/src/flowsint_core/core/template_enricher.py338 except Exception:CODE
LOW…wsint-core/src/flowsint_core/core/template_enricher.py459 except Exception as e:CODE
LOW…wsint-core/src/flowsint_core/core/template_enricher.py526 except Exception as e:CODE
LOWflowsint-core/src/flowsint_core/core/logger.py172 except Exception as e:CODE
LOWflowsint-core/src/flowsint_core/core/logger.py195 except Exception as e:CODE
LOWflowsint-core/src/flowsint_core/core/logger.py273 except Exception as e:CODE
LOWflowsint-core/src/flowsint_core/core/orchestrator.py87 except Exception as e:CODE
LOWflowsint-core/src/flowsint_core/core/orchestrator.py133 except Exception as e:CODE
LOWflowsint-core/src/flowsint_core/core/orchestrator.py166 except Exception as e:CODE
LOWflowsint-core/src/flowsint_core/core/orchestrator.py206 except Exception as e:CODE
LOWflowsint-core/src/flowsint_core/core/orchestrator.py469 except Exception as e:CODE
LOWflowsint-core/src/flowsint_core/core/enricher_base.py401 except Exception:CODE
LOWflowsint-core/src/flowsint_core/core/enricher_base.py438 except Exception as e:CODE
LOW…owsint-core/src/flowsint_core/core/graph/connection.py182 except Exception:CODE
LOW…owsint-core/src/flowsint_core/core/graph/connection.py210except Exception as e:CODE
LOW…owsint-core/src/flowsint_core/core/graph/repository.py226 except Exception as e:CODE
LOW…owsint-core/src/flowsint_core/core/graph/repository.py249 except Exception as e:CODE
LOW…owsint-core/src/flowsint_core/core/graph/repository.py286 except Exception as e:CODE
LOW…owsint-core/src/flowsint_core/core/graph/repository.py301 except Exception as e:CODE
LOW…owsint-core/src/flowsint_core/core/graph/repository.py375 except Exception as e:STRING
LOW…owsint-core/src/flowsint_core/core/graph/repository.py390 except Exception as e:STRING
LOW…c/flowsint_core/core/services/investigation_service.py138 except Exception as e:CODE
LOW…c/flowsint_core/core/services/type_registry_service.py122 except Exception:CODE
LOW…nt-core/src/flowsint_core/core/services/log_service.py92 except Exception as e:CODE
LOW…core/src/flowsint_core/core/services/sketch_service.py106 except Exception as e:CODE
LOW…core/src/flowsint_core/core/services/sketch_service.py150 except Exception as e:CODE
LOW…core/src/flowsint_core/core/services/sketch_service.py179 except Exception as e:CODE
LOW…core/src/flowsint_core/core/services/sketch_service.py200 except Exception as e:CODE
132 more matches not shown…
Decorative Section Separators40 hits · 147 pts
SeverityFileLineSnippetContext
MEDIUMflowsint-api/app/api/schemas/investigation.py38# ── Collaborator schemas ─────────────────────────────────────────────COMMENT
MEDIUMflowsint-api/app/api/routes/investigations.py147# ── Collaborator endpoints ───────────────────────────────────────────COMMENT
MEDIUM…nt-core/tests/core/graph/in_memory_graph_repository.py31 # -------------------------------------------------------------------------COMMENT
MEDIUM…nt-core/tests/core/graph/in_memory_graph_repository.py33 # -------------------------------------------------------------------------COMMENT
MEDIUM…nt-core/tests/core/graph/in_memory_graph_repository.py451 # -------------------------------------------------------------------------COMMENT
MEDIUM…nt-core/tests/core/graph/in_memory_graph_repository.py453 # -------------------------------------------------------------------------COMMENT
MEDIUM…nt-core/tests/core/graph/in_memory_graph_repository.py139 # -------------------------------------------------------------------------COMMENT
MEDIUM…nt-core/tests/core/graph/in_memory_graph_repository.py141 # -------------------------------------------------------------------------COMMENT
MEDIUM…nt-core/tests/core/graph/in_memory_graph_repository.py232 # -------------------------------------------------------------------------COMMENT
MEDIUM…nt-core/tests/core/graph/in_memory_graph_repository.py234 # -------------------------------------------------------------------------COMMENT
MEDIUM…nt-core/tests/core/graph/in_memory_graph_repository.py322 # -------------------------------------------------------------------------COMMENT
MEDIUM…nt-core/tests/core/graph/in_memory_graph_repository.py324 # -------------------------------------------------------------------------COMMENT
MEDIUM…nt-core/tests/core/graph/in_memory_graph_repository.py368 # -------------------------------------------------------------------------COMMENT
MEDIUM…nt-core/tests/core/graph/in_memory_graph_repository.py370 # -------------------------------------------------------------------------COMMENT
MEDIUM…nt-core/tests/core/graph/in_memory_graph_repository.py466 # -------------------------------------------------------------------------COMMENT
MEDIUM…nt-core/tests/core/graph/in_memory_graph_repository.py468 # -------------------------------------------------------------------------COMMENT
MEDIUM…nt-core/tests/core/graph/in_memory_graph_repository.py481 # -------------------------------------------------------------------------COMMENT
MEDIUM…nt-core/tests/core/graph/in_memory_graph_repository.py483 # -------------------------------------------------------------------------COMMENT
MEDIUM…c/flowsint_core/core/services/investigation_service.py150 # ── Collaborator management ──────────────────────────────────────────COMMENT
MEDIUM…rc/components/sketches/details-panel/details-panel.tsx48// ── Types ──────────────────────────────────────────────────────────────────────COMMENT
MEDIUM…rc/components/sketches/details-panel/details-panel.tsx63// ── Constants ─────────────────────────────────────────────────────────────────COMMENT
MEDIUM…rc/components/sketches/details-panel/details-panel.tsx83// ── Helpers ───────────────────────────────────────────────────────────────────COMMENT
MEDIUM…rc/components/sketches/details-panel/details-panel.tsx107// ── Sub-components ────────────────────────────────────────────────────────────COMMENT
MEDIUM…rc/components/sketches/details-panel/details-panel.tsx265// ── Main Component ────────────────────────────────────────────────────────────COMMENT
MEDIUM…rc/components/sketches/details-panel/details-panel.tsx477 // ── Empty state ─────────────────────────────────────────────────────────────COMMENT
MEDIUM…rc/components/sketches/details-panel/details-panel.tsx491 // ── Render ──────────────────────────────────────────────────────────────────COMMENT
MEDIUMflowsint-enrichers/tests/enrichers/test_tech_detect.py9# ---------------------------------------------------------------------------COMMENT
MEDIUMflowsint-enrichers/tests/enrichers/test_tech_detect.py11# ---------------------------------------------------------------------------COMMENT
MEDIUMflowsint-enrichers/tests/enrichers/test_tech_detect.py32# ---------------------------------------------------------------------------COMMENT
MEDIUMflowsint-enrichers/tests/enrichers/test_tech_detect.py34# ---------------------------------------------------------------------------COMMENT
MEDIUMflowsint-enrichers/tests/enrichers/test_tech_detect.py47# ---------------------------------------------------------------------------COMMENT
MEDIUMflowsint-enrichers/tests/enrichers/test_tech_detect.py49# ---------------------------------------------------------------------------COMMENT
MEDIUMflowsint-enrichers/tests/enrichers/test_tech_detect.py66# ---------------------------------------------------------------------------COMMENT
MEDIUMflowsint-enrichers/tests/enrichers/test_tech_detect.py68# ---------------------------------------------------------------------------COMMENT
MEDIUM…owsint-enrichers/tests/enrichers/test_domain_to_dns.py9# ---------------------------------------------------------------------------COMMENT
MEDIUM…owsint-enrichers/tests/enrichers/test_domain_to_dns.py11# ---------------------------------------------------------------------------COMMENT
MEDIUM…owsint-enrichers/tests/enrichers/test_domain_to_dns.py24# ---------------------------------------------------------------------------COMMENT
MEDIUM…owsint-enrichers/tests/enrichers/test_domain_to_dns.py26# ---------------------------------------------------------------------------COMMENT
MEDIUM…owsint-enrichers/tests/enrichers/test_domain_to_dns.py69# ---------------------------------------------------------------------------COMMENT
MEDIUM…owsint-enrichers/tests/enrichers/test_domain_to_dns.py71# ---------------------------------------------------------------------------COMMENT
Deep Nesting81 hits · 79 pts
SeverityFileLineSnippetContext
LOWflowsint-api/app/utils.py132CODE
LOWflowsint-api/app/utils.py189CODE
LOWflowsint-api/app/utils.py289CODE
LOWflowsint-api/app/utils/custom_types.py181CODE
LOWflowsint-api/app/api/sketch_utils.py12CODE
LOWflowsint-api/app/api/routes/flows.py260CODE
LOWflowsint-api/app/api/routes/flows.py476CODE
LOW…nt-core/tests/core/graph/in_memory_graph_repository.py75CODE
LOW…nt-core/tests/core/graph/in_memory_graph_repository.py123CODE
LOW…nt-core/tests/core/graph/in_memory_graph_repository.py219CODE
LOW…nt-core/tests/core/graph/in_memory_graph_repository.py272CODE
LOWflowsint-core/src/flowsint_core/utils.py131CODE
LOWflowsint-core/src/flowsint_core/utils.py188CODE
LOWflowsint-core/src/flowsint_core/utils.py254CODE
LOWflowsint-core/src/flowsint_core/utils.py327CODE
LOW…wsint-core/src/flowsint_core/core/template_enricher.py274CODE
LOW…wsint-core/src/flowsint_core/core/template_enricher.py380CODE
LOWflowsint-core/src/flowsint_core/core/orchestrator.py34CODE
LOWflowsint-core/src/flowsint_core/core/orchestrator.py93CODE
LOWflowsint-core/src/flowsint_core/core/orchestrator.py259CODE
LOWflowsint-core/src/flowsint_core/core/orchestrator.py344CODE
LOWflowsint-core/src/flowsint_core/core/enricher_base.py156CODE
LOWflowsint-core/src/flowsint_core/core/enricher_base.py361CODE
LOW…owsint-core/src/flowsint_core/core/graph/serializer.py30CODE
LOW…owsint-core/src/flowsint_core/core/graph/repository.py188CODE
LOW…c/flowsint_core/core/services/type_registry_service.py160CODE
LOW…nt-core/src/flowsint_core/core/services/log_service.py48CODE
LOW…owsint-core/src/flowsint_core/imports/txt/parse_txt.py7CODE
LOW…sint-core/src/flowsint_core/imports/json/parse_json.py17CODE
LOW…core/src/flowsint_core/templates/loader/yaml_loader.py200CODE
LOW…core/src/flowsint_core/templates/loader/yaml_loader.py234CODE
LOWflowsint-types/src/flowsint_types/individual.py323CODE
LOWflowsint-types/src/flowsint_types/individual.py352CODE
LOWflowsint-types/src/flowsint_types/individual.py379CODE
LOWflowsint-types/src/flowsint_types/individual.py406CODE
LOWflowsint-enrichers/src/tools/network/dnsx.py128CODE
LOWflowsint-enrichers/src/tools/network/asnmap.py53CODE
LOWflowsint-enrichers/src/flowsint_enrichers/utils.py105CODE
LOWflowsint-enrichers/src/flowsint_enrichers/utils.py186CODE
LOWflowsint-enrichers/src/flowsint_enrichers/utils.py243CODE
LOWflowsint-enrichers/src/flowsint_enrichers/utils.py343CODE
LOW…ichers/src/flowsint_enrichers/organization/to_infos.py31CODE
LOW…hers/src/flowsint_enrichers/organization/to_domains.py70CODE
LOW…hers/src/flowsint_enrichers/organization/to_domains.py388CODE
LOW…richers/src/flowsint_enrichers/website/to_subdomain.py54CODE
LOW…enrichers/src/flowsint_enrichers/website/to_crawler.py48CODE
LOW…hers/src/flowsint_enrichers/website/to_technologies.py66CODE
LOW…t-enrichers/src/flowsint_enrichers/website/to_links.py39CODE
LOW…t-enrichers/src/flowsint_enrichers/website/to_links.py69CODE
LOW…owsint-enrichers/src/flowsint_enrichers/cidr/to_ips.py62CODE
LOW…owsint-enrichers/src/flowsint_enrichers/cidr/to_ips.py113CODE
LOW…enrichers/src/flowsint_enrichers/social/to_sherlock.py32CODE
LOW…richers/src/flowsint_enrichers/social/to_hudsonrock.py35CODE
LOW…enrichers/src/flowsint_enrichers/social/to_dehashed.py63CODE
LOW…wsint-enrichers/src/flowsint_enrichers/asn/to_cidrs.py64CODE
LOW…wsint-enrichers/src/flowsint_enrichers/asn/to_cidrs.py117CODE
LOW…int-enrichers/src/flowsint_enrichers/phone/to_infos.py81CODE
LOW…nrichers/src/flowsint_enrichers/phone/to_hudsonrock.py31CODE
LOW…wsint-enrichers/src/flowsint_enrichers/ip/to_domain.py30CODE
LOW…owsint-enrichers/src/flowsint_enrichers/ip/to_ports.py109CODE
21 more matches not shown…
Cross-File Repetition13 hits · 65 pts
SeverityFileLineSnippetContext
HIGHflowsint-api/app/utils.py0determine if a domain is a root domain or subdomain. args: domain: the domain string to check returns: true if it's a roSTRING
HIGHflowsint-core/src/flowsint_core/utils.py0determine if a domain is a root domain or subdomain. args: domain: the domain string to check returns: true if it's a roSTRING
HIGHflowsint-enrichers/src/flowsint_enrichers/utils.py0determine if a domain is a root domain or subdomain. args: domain: the domain string to check returns: true if it's a roSTRING
HIGHflowsint-api/app/utils.py0validates a phone number. raises invalidphonenumbererror if invalid. - `region` should be iso 3166-1 alpha-2 country codSTRING
HIGHflowsint-core/src/flowsint_core/utils.py0validates a phone number. raises invalidphonenumbererror if invalid. - `region` should be iso 3166-1 alpha-2 country codSTRING
HIGHflowsint-enrichers/src/flowsint_enrichers/utils.py0validates a phone number. raises invalidphonenumbererror if invalid. - `region` should be iso 3166-1 alpha-2 country codSTRING
HIGHflowsint-api/app/utils.py0get the inline relationships for a list of nodes and edges.STRING
HIGHflowsint-core/src/flowsint_core/utils.py0get the inline relationships for a list of nodes and edges.STRING
HIGHflowsint-enrichers/src/flowsint_enrichers/utils.py0get the inline relationships for a list of nodes and edges.STRING
HIGH…hers/src/flowsint_enrichers/organization/to_domains.py0create neo4j nodes and relationships from extracted data.STRING
HIGH…-enrichers/src/flowsint_enrichers/domain/to_history.py0create neo4j nodes and relationships from extracted data.STRING
HIGH…t-enrichers/src/flowsint_enrichers/email/to_domains.py0create neo4j nodes and relationships from extracted data.STRING
HIGH…ichers/src/flowsint_enrichers/individual/to_domains.py0create neo4j nodes and relationships from extracted data.STRING
Docstring Block Structure10 hits · 50 pts
SeverityFileLineSnippetContext
HIGHflowsint-api/app/utils/custom_types.py125 Convert a JSON Schema to a Pydantic model. Args: schema: The JSON Schema definition model_nameSTRING
HIGH…wsint-core/src/flowsint_core/core/template_enricher.py236 Parse the HTTP response based on expected format. Args: response: The httpx Response objecSTRING
HIGH…wsint-core/src/flowsint_core/core/template_enricher.py284 Make an HTTP request with retry logic. Args: client: The httpx AsyncClient metSTRING
HIGHflowsint-core/src/flowsint_core/core/graph/service.py311 Execute a custom Cypher query. Args: cypher: Cypher query string parameters: QSTRING
HIGH…owsint-core/src/flowsint_core/core/graph/connection.py97 Execute a single query. Args: query: Cypher query string parameters: Query parSTRING
HIGH…owsint-core/src/flowsint_core/core/graph/connection.py122 Execute a write query within a write transaction. Args: query: Cypher query string STRING
HIGH…owsint-core/src/flowsint_core/core/graph/repository.py654 Execute a custom Cypher query. Args: cypher: Cypher query string parameters: QSTRING
HIGH…wsint_core/core/services/template_generator_service.py202Generate an enricher template YAML from a free-text description. Args: prompt: User's free-text desSTRING
HIGH…wsint-core/src/flowsint_core/imports/import_service.py70 Analyze an uploaded file for import. Args: file_content: Raw file content as bytes STRING
HIGH…core/src/flowsint_core/templates/loader/yaml_loader.py173 Render a template string by substituting {{variable}} placeholders. Args: template: TemplaSTRING
Self-Referential Comments15 hits · 48 pts
SeverityFileLineSnippetContext
MEDIUMflowsint-api/app/utils/custom_types.py170 # Create the dynamic modelCOMMENT
MEDIUM…a3b9a199aa8_drop_third_party_keys_create_keys_table.py26 # Create the new keys tableCOMMENT
MEDIUM…embic/versions/71a3e5b4db2a_update_scan_status_enum.py23 # Create the enum type first using raw SQL to ensure it existsCOMMENT
MEDIUMflowsint-core/tests/core/graph/test_graph_service.py614 # Create a relationshipCOMMENT
MEDIUMflowsint-core/tests/templates/enricher.py3# This file is kept for backwards compatibilityCOMMENT
MEDIUMflowsint-core/tests/templates/loader.py3# This file is kept for backwards compatibilityCOMMENT
MEDIUMflowsint-core/tests/vault/test_vault.py105 # Create a mock Key objectCOMMENT
MEDIUMflowsint-core/tests/vault/test_vault.py134 # Create a mock Key objectCOMMENT
MEDIUM…nt-core/tests/vault/test_enricher_vault_integration.py383 # Create an enricher that uses get_secret in scanCOMMENT
MEDIUMflowsint-core/src/flowsint_core/core/orchestrator.py39 # Create a directory for storing enricher files if it doesn't existCOMMENT
MEDIUMflowsint-core/src/flowsint_core/core/orchestrator.py177 # Create a directory for storing enricher files if it doesn't existCOMMENT
MEDIUM…owsint-core/src/flowsint_core/core/graph/connection.py199# Create the default singleton instanceCOMMENT
MEDIUM…t-enrichers/src/flowsint_enrichers/website/to_links.py53 # Create main website and domain nodes upfrontCOMMENT
MEDIUM…int-enrichers/src/flowsint_enrichers/phone/to_infos.py57 # Import necessary modules for each platformCOMMENT
MEDIUM…int-enrichers/src/flowsint_enrichers/phone/to_infos.py62 # Create an HTTP client for asynchronous requestsCOMMENT
Fake / Example Data20 hits · 26 pts
SeverityFileLineSnippetContext
LOWflowsint-api/app/api/routes/flows.py275 return "user@example.com"CODE
LOWflowsint-api/app/api/routes/flows.py510 "email": inputs.get("input", "user@example.com"),CODE
LOWflowsint-api/tests/test_events_auth.py30 token = create_access_token({"sub": "user@example.com"})CODE
LOWflowsint-api/tests/test_events_auth.py45 db_session.add(Profile(email="user@example.com", hashed_password="x"))CODE
LOWflowsint-api/tests/test_events_auth.py48 token = create_access_token({"sub": "user@example.com"})CODE
LOWflowsint-api/tests/test_events_auth.py50 assert user.email == "user@example.com"CODE
LOW…t-core/tests/core/test_enricher_base_simplified_api.py40 individual = Individual(first_name="John", last_name="Doe", full_name="John Doe")CODE
LOWflowsint-core/tests/import/txt/test_txt_import.py397 txt_content = b"user@example.com"CODE
LOWflowsint-core/tests/import/txt/test_txt_import.py405 assert entity_preview.obj.email == "user@example.com"CODE
LOW…owsint-app/src/components/templates/template-schema.ts188# "name": "John Doe",COMMENT
LOWflowsint-types/tests/test_socialaccount.py7 username=username, display_name="John Doe", platform="twitter"CODE
LOWflowsint-types/tests/test_socialaccount.py17 display_name="John Doe",CODE
LOWflowsint-types/tests/test_labels.py34 assert individual.nodeLabel == "John Doe"CODE
LOWflowsint-types/tests/test_labels.py35 assert individual.full_name == "John Doe"CODE
LOWflowsint-types/tests/test_labels.py50 org = Organization(name="Acme Corp")CODE
LOWflowsint-types/tests/test_labels.py51 assert org.nodeLabel == "Acme Corp"CODE
LOWflowsint-types/tests/test_labels.py147 username=username, display_name="John Doe", platform="twitter"CODE
LOWflowsint-types/tests/test_labels.py198 address="123 Main St", city="Paris", country="France", zip="75001"CODE
LOWflowsint-types/src/flowsint_types/individual.py424 Example: "John Doe" -> first_name="John", last_name="Doe"STRING
LOWflowsint-enrichers/tests/logger.py27 self.id = "dummy_id"CODE
Redundant / Tautological Comments13 hits · 20 pts
SeverityFileLineSnippetContext
LOWflowsint-api/app/utils.py90 # Check if the domain ends with a common country code TLDCOMMENT
LOWflowsint-api/app/utils/custom_types.py66 # Check if type is in whitelistCOMMENT
LOW…nt-core/tests/core/graph/in_memory_graph_repository.py40 # Check if node already exists (MERGE behavior)COMMENT
LOWflowsint-core/src/flowsint_core/utils.py89 # Check if the domain ends with a common country code TLDCOMMENT
LOW…wsint-core/src/flowsint_core/core/template_enricher.py323 # Check if we should retry based on status codeCOMMENT
LOWflowsint-core/src/flowsint_core/core/orchestrator.py423 # Check if we already have results for this enricher with these inputsCOMMENT
LOW…c/flowsint_core/core/services/investigation_service.py186 # Check if already a collaboratorCOMMENT
LOW…t-core/src/flowsint_core/core/services/flow_service.py48 # Check if category is a custom typeCOMMENT
LOW…core/src/flowsint_core/templates/loader/yaml_loader.py87 # Check if hostname is an IP address in blocked rangeCOMMENT
LOWflowsint-enrichers/src/tools/dockertool.py83 # Check if it's a container exit errorCOMMENT
LOWflowsint-enrichers/src/flowsint_enrichers/utils.py91 # Check if the domain ends with a common country code TLDCOMMENT
LOWflowsint-enrichers/src/flowsint_enrichers/utils.py140 # Check if the domain ends with a common country code TLDCOMMENT
LOW…chers/src/flowsint_enrichers/crypto/to_transactions.py136 # Check if the API returned an errorCOMMENT
Modern Structural Boilerplate19 hits · 20 pts
SeverityFileLineSnippetContext
LOWflowsint-api/app/api/sketch_utils.py12def update_sketch_last_modified(db: Session, sketch_id: str | UUID) -> None:CODE
LOW…nt-core/tests/core/graph/in_memory_graph_repository.py445 def set_batch_size(self, size: int) -> None:CODE
LOWflowsint-core/src/flowsint_core/tasks/event.py12logger = logging.getLogger(__name__)CODE
LOWflowsint-core/src/flowsint_core/core/logger_old.py9logger = logging.getLogger(__name__)CODE
LOWflowsint-core/src/flowsint_core/core/enricher_base.py339 def set_params(self, params: Dict[str, Any]) -> None:CODE
LOWflowsint-core/src/flowsint_core/core/llm/__init__.py5__all__ = ["ChatMessage", "MessageRole", "LLMProvider", "create_llm_provider"]CODE
LOW…-core/src/flowsint_core/core/llm/providers/__init__.py4__all__ = ["MistralProvider", "OpenAIProvider"]CODE
LOWflowsint-core/src/flowsint_core/core/graph/service.py323 def set_batch_size(self, size: int) -> None:CODE
LOWflowsint-core/src/flowsint_core/core/graph/__init__.py24__all__ = [CODE
LOW…re/src/flowsint_core/core/graph/repository_protocol.py122 def set_batch_size(self, size: int) -> None:CODE
LOW…owsint-core/src/flowsint_core/core/graph/repository.py177 def set_batch_size(self, size: int) -> None:CODE
LOW…t-core/src/flowsint_core/core/repositories/__init__.py15__all__ = [CODE
LOW…wsint-core/src/flowsint_core/core/services/__init__.py44__all__ = [CODE
LOWflowsint-core/src/flowsint_core/imports/__init__.py15__all__ = [CODE
LOWflowsint-core/src/flowsint_core/imports/txt/__init__.py3__all__ = [CODE
LOW…owsint-core/src/flowsint_core/imports/json/__init__.py3__all__ = [CODE
LOWflowsint-types/src/flowsint_types/__init__.py59__all__ = [CODE
LOWflowsint-enrichers/src/tools/__init__.py11__all__ = ["Tool", "DockerTool"]CODE
LOWflowsint-enrichers/src/flowsint_enrichers/__init__.py11__all__ = [CODE
Over-Commented Block12 hits · 12 pts
SeverityFileLineSnippetContext
LOWflowsint-core/tests/templates/example.yaml1# IP API Lookup TemplateCOMMENT
LOW…owsint-app/src/components/templates/template-schema.ts181#COMMENT
LOWflowsint-app/src/api/query-keys-examples.ts1// // Examples of how to use the Query Key Factory with your existing hooksCOMMENT
LOWflowsint-app/src/api/query-keys-examples.ts21// }COMMENT
LOWflowsint-app/src/api/query-keys-examples.ts41// return useQuery({COMMENT
LOWflowsint-app/src/api/query-keys-examples.ts61// }COMMENT
LOWflowsint-app/src/api/query-keys-examples.ts81// })COMMENT
LOWflowsint-app/src/api/query-keys-examples.ts101// // Example 5: Using with logs and eventsCOMMENT
LOWflowsint-app/src/api/query-keys-examples.ts121// queryKey: queryKeys.keys.detail(keyId),COMMENT
LOWflowsint-app/src/api/query-keys-examples.ts141// })COMMENT
LOWflowsint-app/src/api/query-keys-examples.ts161// // Clear related cachesCOMMENT
LOWflowsint-app/src/api/query-keys-examples.ts181// return (investigationId: string) => {COMMENT
AI Slop Vocabulary6 hits · 11 pts
SeverityFileLineSnippetContext
LOWflowsint-core/tests/core/graph/test_graph_repository.py103 # Should not raise, just return earlyCOMMENT
MEDIUMflowsint-core/tests/templates/enricher.py5# with proper mocking and more comprehensive coverageCOMMENT
MEDIUMflowsint-core/tests/templates/loader.py5# with more comprehensive coverageCOMMENT
MEDIUMflowsint-core/tests/import/txt/test_txt_import.py348 """Test comprehensive TXT import with various entity types."""STRING
MEDIUMflowsint-types/src/flowsint_types/risk_profile.py10 """Represents a comprehensive risk assessment profile for an entity."""STRING
MEDIUMflowsint-types/src/flowsint_types/individual.py15 """Represents an individual person with comprehensive personal information."""STRING
Structural Annotation Overuse3 hits · 4 pts
SeverityFileLineSnippetContext
LOWflowsint-app/src/api/README-query-keys.md161### Step 1: Update Existing HooksCOMMENT
LOWflowsint-app/src/api/README-query-keys.md173### Step 2: Update MutationsCOMMENT
LOWflowsint-app/src/api/README-query-keys.md185### Step 3: Update Cache OperationsCOMMENT
AI Structural Patterns3 hits · 3 pts
SeverityFileLineSnippetContext
LOWflowsint-core/tests/templates/test_template_enricher.py29CODE
LOW…owsint-core/src/flowsint_core/core/graph/repository.py725CODE
LOW…src/flowsint_core/core/services/custom_type_service.py82CODE
Slop Phrases1 hit · 2 pts
SeverityFileLineSnippetContext
MEDIUM…core/tests/services/test_template_generator_service.py41Let me know if you need changes.CODE