AI Slop Code RIsk Monitor

reconurge/flowsint

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

13.0 Moderate pattern signal View on GitHub

Maintenance and Governance Review

This report summarizes scanner evidence for reconurge/flowsint, a TypeScript project with 9,616 GitHub stars. SynthScan examined 94,469 lines of code across 786 source files, recording 944 pattern matches distributed across 17 syntactic categories. The legacy adjusted pattern signal is 13.0 (Moderate pattern signal); it is not an authorship estimate.

Use the findings to ask whether maintainers can explain intent, verify dependencies, simplify unnecessary scaffolding, and focus review effort. Risk Payload v1 adds ownership, supply-chain, over-engineering, and review-effort vectors when available. These are prompts for human verification, not probabilities, security findings, or measured maintenance costs.

13.0
Adjusted Signal
13.0
Raw Pattern Score
100%
Time Factor
2026-10-03
Last Push
9.6K
Stars
TypeScript
Language
94.5K
Lines of Code
786
Files
944
Pattern Hits
2026-10-12
Scan Date
0.03
HC Hit Rate

Risk Review · v3

Use each vector to guide manual verification of the underlying findings.

Cognitive Ownership Risk 30.0/100 · MEDIUM

Can maintainers explain intent, assumptions, and trade-offs? 564 finding(s).

Hallucinated Dependency & Supply Chain Risk 6.2/100 · LOW

Are imports declared and package/API names verified? 125 finding(s).

Agent Over-Engineering Ratio 37.6/100 · MEDIUM

Are wrappers, guards, and repeated structures necessary? 683 finding(s).

PR Review Velocity Impact 47.2/100 · MEDIUM

Which changes need focused human review? 944 finding(s).

What These Metrics Mean

Adjusted Signal
Legacy pattern score normalized per 1,000 scanned lines and multiplied by the repository-level time factor. It is not an estimate of AI authorship.
Raw Pattern Score
Sum of severity- and context-weighted pattern findings before applying the time factor.
Time Factor
A coarse multiplier based on repository last-push metadata. It does not identify when individual code was written.
Pattern Hits
Count of configured pattern findings. Review each location and surrounding code before acting.
HC Hit Rate
High- and critical-severity findings per scanned file. Severity is a configured detector weight, not proof of a vulnerability or authorship.
Lines / Files
Scan coverage denominators used by the legacy normalized score.

Pattern-Signal History

This chart tracks the legacy adjusted pattern score across scan runs. Changes can reflect source changes, scan coverage, or detector/scoring versions; they do not measure AI adoption or prove that a team refactored code. Compare runs only when their scoring versions are compatible. The dashed line tracks the raw pattern-hit count.

Severity Breakdown

Groups findings by configured severity weight. Severity is not a confidence estimate, security rating, or proof that a package is missing. Verify imports against the project's manifests and inspect each finding in its local design context.

CRITICAL 0HIGH 23MEDIUM 74LOW 847

Directory Score Breakdown

This horizontal bar chart shows where configured pattern scores accumulate across directories. Treat the bars as locations to inspect, not as evidence of authorship or code quality. Use the file-level findings to decide whether a directory needs a focused ownership, dependency, complexity, or review check.

Pattern Findings

The scanner identified 944 distinct pattern matches across 17 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a detector match to inspect in context. 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 configured finding weight (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — legacy comment-context matches receive a ×1.5 score weight. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier under the legacy scoring model.

Hyper-Verbose Identifiers425 hits · 456 pts
SeverityFileLineSnippetContext
LOWflowsint-api/app/security/permissions.py25def check_investigation_permission(CODE
LOWflowsint-api/app/utils/custom_types.py85def validate_payload_against_schema(CODE
LOWflowsint-api/app/utils/custom_types.py111def calculate_schema_checksum(schema: Dict[str, Any]) -> str:CODE
LOWflowsint-api/app/api/sketch_utils.py14def update_sketch_last_modified(db: Session, sketch_id: str | UUID) -> None:CODE
LOWflowsint-api/app/api/routes/analysis.py66def 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.py31def _inject_current_user_role(service, investigation, user_id) -> InvestigationRead:CODE
LOWflowsint-api/app/api/routes/investigations.py91def get_sketches_by_investigation(CODE
LOWflowsint-api/tests/test_enrichers.py48def test_template_enrichers_expose_params_schema(client, db_session):CODE
LOWflowsint-api/tests/test_enrichers.py69def test_template_enricher_without_secrets_reports_no_params(client, db_session):CODE
LOW⚡flowsint-api/tests/test_enrichers.py142def test_launch_forwards_params_as_task_kwargs(client, db_session, sent_task):CODE
LOW⚡flowsint-api/tests/test_enrichers.py151def test_launch_without_params_sends_an_empty_dict(client, db_session, sent_task):CODE
LOW⚡flowsint-api/tests/test_enrichers.py158def test_launch_keeps_the_positional_args_unchanged(client, db_session, sent_task):CODE
LOW⚡flowsint-api/tests/test_enrichers.py168def test_launch_succeeds_for_an_editor(client, db_session, sent_task):CODE
LOW⚡flowsint-api/tests/test_enrichers.py174def test_launch_is_forbidden_without_a_role_on_the_investigation(CODE
LOW⚡flowsint-api/tests/test_enrichers.py184def test_launch_is_forbidden_for_a_viewer(client, db_session, sent_task):CODE
LOW⚡flowsint-api/tests/test_enrichers.py191def test_launch_is_forbidden_against_another_users_sketch(CODE
LOWflowsint-api/tests/test_enrichers.py202def test_launch_is_rejected_for_an_unknown_sketch(client, db_session, sent_task):CODE
LOWflowsint-api/tests/test_enrichers.py210def test_launch_is_rejected_for_a_malformed_sketch_id(client, db_session, sent_task):CODE
LOW⚡flowsint-api/tests/test_events_auth.py9def test_get_current_user_sse_is_removed():CODE
LOW⚡flowsint-api/tests/test_events_auth.py15def test_log_stream_requires_auth_header(client):CODE
LOW⚡flowsint-api/tests/test_events_auth.py21def test_status_stream_requires_auth_header(client):CODE
LOW⚡flowsint-api/tests/test_events_auth.py26def test_log_stream_rejects_token_query_param(client):CODE
LOW⚡flowsint-api/tests/test_events_auth.py33def test_dead_scan_stream_endpoint_removed(client):CODE
LOW⚡flowsint-api/tests/test_events_auth.py39def test_get_current_user_accepts_valid_bearer(db_session):CODE
LOW⚡flowsint-core/tests/tasks/test_enricher_task.py48def test_run_enricher_forwards_params_to_the_enricher(captured_kwargs):CODE
LOW⚡flowsint-core/tests/tasks/test_enricher_task.py54def test_run_enricher_without_params_passes_an_empty_dict(captured_kwargs):CODE
LOW⚡flowsint-core/tests/tasks/test_enricher_task.py61def test_run_template_enricher_forwards_params_to_the_template_enricher(monkeypatch):CODE
LOWflowsint-core/tests/core/test_logger_singleton.py74 def test_singleton_returns_same_instance(self, mock_get_db, mock_emit_event):CODE
LOWflowsint-core/tests/core/test_logger_singleton.py85 def test_singleton_is_thread_safe(self, mock_get_db, mock_emit_event):CODE
LOWflowsint-core/tests/core/test_logger_singleton.py127 def test_error_logs_correctly(self, logger_instance, mock_emit_event):CODE
LOW⚡flowsint-core/tests/core/test_logger_singleton.py147 def test_debug_logs_correctly(self, logger_instance, mock_emit_event):CODE
LOW⚡flowsint-core/tests/core/test_logger_singleton.py157 def test_success_logs_correctly(self, logger_instance, mock_emit_event):CODE
LOW⚡flowsint-core/tests/core/test_logger_singleton.py167 def test_completed_logs_correctly(self, logger_instance, mock_emit_event):CODE
LOW⚡flowsint-core/tests/core/test_logger_singleton.py177 def test_pending_logs_correctly(self, logger_instance, mock_emit_event):CODE
LOW⚡flowsint-core/tests/core/test_logger_singleton.py187 def test_graph_append_logs_correctly(self, logger_instance, mock_emit_event):CODE
LOWflowsint-core/tests/core/test_logger_singleton.py210 def test_batch_flush_when_size_reached(self, logger_instance, mock_db_session):CODE
LOWflowsint-core/tests/core/test_logger_singleton.py245 def test_batch_worker_flushes_periodically(CODE
LOWflowsint-core/tests/core/test_logger_singleton.py270 def test_empty_queue_flush_does_nothing(self, logger_instance, mock_db_session):CODE
LOWflowsint-core/tests/core/test_logger_singleton.py332 def test_shutdown_flushes_pending_logs(CODE
LOWflowsint-core/tests/core/test_logger_singleton.py357 def test_shutdown_stops_worker_thread(self, mock_get_db, mock_emit_event):CODE
LOWflowsint-core/tests/core/test_logger_singleton.py375 def test_database_error_does_not_crash(self, logger_instance, mock_db_session):CODE
LOWflowsint-core/tests/core/test_logger_singleton.py388 def test_event_emission_error_does_not_crash(CODE
LOWflowsint-core/tests/core/test_logger_singleton.py424 def test_batch_insertion_is_efficient(self, logger_instance, mock_db_session):CODE
LOW⚡…t-core/tests/core/test_enricher_base_simplified_api.py32def test_create_relationship_with_pydantic_objects():CODE
LOW⚡…t-core/tests/core/test_enricher_base_simplified_api.py44def test_create_node_with_property_override():CODE
LOWflowsint-core/tests/core/base.py61def 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_thin_website_only_sends_fields_it_set(self):CODE
LOWflowsint-core/tests/core/graph/test_graph_serializer.py141 def test_richer_website_keeps_explicitly_set_fields(self):CODE
LOWflowsint-core/tests/core/graph/test_graph_serializer.py157 def test_removes_empty_strings(self):CODE
LOWflowsint-core/tests/core/graph/test_graph_serializer.py177 def test_cleans_list_of_dicts(self):CODE
LOWflowsint-core/tests/core/graph/test_graph_serializer.py182 def test_removes_empty_nested_dict(self):CODE
LOW⚡flowsint-core/tests/core/graph/test_graph_serializer.py202 def test_cleans_empty_values_before_parsing(self):CODE
LOW⚡flowsint-core/tests/core/graph/test_graph_serializer.py208 def test_raises_on_unknown_type(self):CODE
LOW⚡flowsint-core/tests/core/graph/test_graph_serializer.py215 def test_extracts_node_properties(self):CODE
LOWflowsint-core/tests/core/graph/test_graph_serializer.py245 def test_converts_values_to_string(self):CODE
LOWflowsint-core/tests/core/graph/test_graph_serializer.py310 def test_deserializes_multiple_nodes(self):CODE
LOWflowsint-core/tests/core/graph/test_graph_serializer.py343 def test_deserializes_multiple_edges(self):CODE
365 more matches not shown…
Excessive Try-Catch Wrapping184 hits · 200 pts
SeverityFileLineSnippetContext
LOWflowsint-api/app/utils/custom_types.py177 except Exception as e:CODE
LOWflowsint-api/app/api/sketch_utils.py45 except Exception as e:CODE
MEDIUMflowsint-api/app/api/sketch_utils.py47 print(f"Error updating sketch/investigation timestamp for {sketch_id}: {e}")CODE
LOWflowsint-api/app/api/routes/sketches.py441 except Exception as e:CODE
LOWflowsint-api/app/api/routes/sketches.py457 except Exception as e:CODE
LOWflowsint-api/app/api/routes/sketches.py490 except Exception as e:CODE
LOWflowsint-api/app/api/routes/sketches.py519 except Exception as e:CODE
LOWflowsint-api/app/api/routes/events.py80 except Exception as e:CODE
LOWflowsint-api/app/api/routes/events.py154 except Exception as e:CODE
LOWflowsint-api/app/api/routes/enrichers.py123 except Exception as e:CODE
LOWflowsint-api/app/api/routes/enricher_templates.py155 except Exception as e:CODE
LOWflowsint-api/app/api/routes/flows.py255 except Exception as e:CODE
LOW…nt-core/tests/core/graph/in_memory_graph_repository.py393 except Exception as e:CODE
LOW…nt-core/tests/core/graph/in_memory_graph_repository.py426 except Exception as e:CODE
LOWflowsint-core/src/flowsint_core/utils.py48 except Exception:CODE
LOWflowsint-core/src/flowsint_core/utils.py96 except Exception:CODE
LOWflowsint-core/src/flowsint_core/tasks/event.py24 except Exception:CODE
LOWflowsint-core/src/flowsint_core/tasks/event.py40 except Exception: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.py53 except Exception as e:CODE
LOWflowsint-core/src/flowsint_core/tasks/enricher.py82 except Exception as ex:CODE
MEDIUMflowsint-core/src/flowsint_core/tasks/enricher.py85 print(f"Error in task: {error_logs}")CODE
LOWflowsint-core/src/flowsint_core/tasks/enricher.py131 except Exception as e:CODE
LOWflowsint-core/src/flowsint_core/tasks/enricher.py163 except Exception as ex:CODE
MEDIUMflowsint-core/src/flowsint_core/tasks/enricher.py166 print(f"Error in template task: {error_logs}")CODE
LOW…wsint-core/src/flowsint_core/core/template_enricher.py241 except Exception as e:CODE
LOW…wsint-core/src/flowsint_core/core/template_enricher.py326 except Exception:CODE
LOW…wsint-core/src/flowsint_core/core/template_enricher.py447 except Exception as e:CODE
LOW…wsint-core/src/flowsint_core/core/template_enricher.py514 except Exception as e:CODE
LOWflowsint-core/src/flowsint_core/core/logger.py173 except Exception as e:CODE
LOWflowsint-core/src/flowsint_core/core/logger.py196 except Exception as e:CODE
LOWflowsint-core/src/flowsint_core/core/logger.py274 except Exception as e:CODE
LOWflowsint-core/src/flowsint_core/core/orchestrator.py92 except Exception as e:CODE
LOWflowsint-core/src/flowsint_core/core/orchestrator.py138 except Exception as e:CODE
LOWflowsint-core/src/flowsint_core/core/orchestrator.py171 except Exception as e:CODE
LOWflowsint-core/src/flowsint_core/core/orchestrator.py211 except Exception as e:CODE
LOWflowsint-core/src/flowsint_core/core/orchestrator.py498 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.py442 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.py123 except Exception:CODE
LOW…nt-core/src/flowsint_core/core/services/log_service.py96 except Exception as e:CODE
LOW…core/src/flowsint_core/core/services/sketch_service.py104 except Exception as e:CODE
LOW…core/src/flowsint_core/core/services/sketch_service.py151 except Exception as e:CODE
LOW…core/src/flowsint_core/core/services/sketch_service.py180 except Exception as e:CODE
LOW…core/src/flowsint_core/core/services/sketch_service.py201 except Exception as e:CODE
LOW…core/src/flowsint_core/core/services/sketch_service.py223 except Exception as e:CODE
LOW…core/src/flowsint_core/core/services/sketch_service.py239 except Exception as e:CODE
LOW…core/src/flowsint_core/core/services/sketch_service.py254 except Exception as e:CODE
LOW…core/src/flowsint_core/core/services/sketch_service.py276 except Exception as e:CODE
124 more matches not shown…
Decorative Section Separators40 hits · 147 pts
SeverityFileLineSnippetContext
MEDIUMflowsint-api/app/api/schemas/investigation.py40# ── Collaborator schemas ─────────────────────────────────────────────COMMENT
MEDIUMflowsint-api/app/api/routes/investigations.py148# ── 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.py460 # -------------------------------------------------------------------------COMMENT
MEDIUM⚡…nt-core/tests/core/graph/in_memory_graph_repository.py462 # -------------------------------------------------------------------------COMMENT
MEDIUM…nt-core/tests/core/graph/in_memory_graph_repository.py148 # -------------------------------------------------------------------------COMMENT
MEDIUM…nt-core/tests/core/graph/in_memory_graph_repository.py150 # -------------------------------------------------------------------------COMMENT
MEDIUM…nt-core/tests/core/graph/in_memory_graph_repository.py241 # -------------------------------------------------------------------------COMMENT
MEDIUM…nt-core/tests/core/graph/in_memory_graph_repository.py243 # -------------------------------------------------------------------------COMMENT
MEDIUM…nt-core/tests/core/graph/in_memory_graph_repository.py331 # -------------------------------------------------------------------------COMMENT
MEDIUM…nt-core/tests/core/graph/in_memory_graph_repository.py333 # -------------------------------------------------------------------------COMMENT
MEDIUM…nt-core/tests/core/graph/in_memory_graph_repository.py377 # -------------------------------------------------------------------------COMMENT
MEDIUM…nt-core/tests/core/graph/in_memory_graph_repository.py379 # -------------------------------------------------------------------------COMMENT
MEDIUM…nt-core/tests/core/graph/in_memory_graph_repository.py475 # -------------------------------------------------------------------------COMMENT
MEDIUM…nt-core/tests/core/graph/in_memory_graph_repository.py477 # -------------------------------------------------------------------------COMMENT
MEDIUM…nt-core/tests/core/graph/in_memory_graph_repository.py490 # -------------------------------------------------------------------------COMMENT
MEDIUM…nt-core/tests/core/graph/in_memory_graph_repository.py492 # -------------------------------------------------------------------------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.tsx147// ── Sub-components ────────────────────────────────────────────────────────────COMMENT
MEDIUM…rc/components/sketches/details-panel/details-panel.tsx298// ── Main Component ────────────────────────────────────────────────────────────COMMENT
MEDIUM…rc/components/sketches/details-panel/details-panel.tsx486 // ── Empty state ─────────────────────────────────────────────────────────────COMMENT
MEDIUM…rc/components/sketches/details-panel/details-panel.tsx500 // ── Render ──────────────────────────────────────────────────────────────────COMMENT
MEDIUM⚡flowsint-enrichers/tests/enrichers/test_tech_detect.py9# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡flowsint-enrichers/tests/enrichers/test_tech_detect.py11# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡flowsint-enrichers/tests/enrichers/test_tech_detect.py32# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡flowsint-enrichers/tests/enrichers/test_tech_detect.py34# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡flowsint-enrichers/tests/enrichers/test_tech_detect.py47# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡flowsint-enrichers/tests/enrichers/test_tech_detect.py49# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡flowsint-enrichers/tests/enrichers/test_tech_detect.py66# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡flowsint-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
Unused Imports105 hits · 95 pts
SeverityFileLineSnippetContext
LOWflowsint-api/alembic/env.py13CODE
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
LOWflowsint-core/src/flowsint_core/__init__.py11CODE
LOWflowsint-core/src/flowsint_core/__init__.py12CODE
LOWflowsint-core/src/flowsint_core/__init__.py13CODE
LOWflowsint-core/src/flowsint_core/__init__.py14CODE
LOWflowsint-core/src/flowsint_core/__init__.py15CODE
LOWflowsint-core/src/flowsint_core/__init__.py16CODE
LOWflowsint-core/src/flowsint_core/core/llm/__init__.py1CODE
LOWflowsint-core/src/flowsint_core/core/llm/__init__.py2CODE
LOWflowsint-core/src/flowsint_core/core/llm/__init__.py3CODE
LOWflowsint-core/src/flowsint_core/core/llm/__init__.py3CODE
LOW…-core/src/flowsint_core/core/llm/providers/__init__.py1CODE
LOW…-core/src/flowsint_core/core/llm/providers/__init__.py2CODE
LOWflowsint-core/src/flowsint_core/core/graph/__init__.py11CODE
LOWflowsint-core/src/flowsint_core/core/graph/__init__.py11CODE
LOWflowsint-core/src/flowsint_core/core/graph/__init__.py12CODE
LOWflowsint-core/src/flowsint_core/core/graph/__init__.py13CODE
LOWflowsint-core/src/flowsint_core/core/graph/__init__.py14CODE
LOWflowsint-core/src/flowsint_core/core/graph/__init__.py14CODE
LOWflowsint-core/src/flowsint_core/core/graph/__init__.py15CODE
LOWflowsint-core/src/flowsint_core/core/graph/__init__.py15CODE
LOWflowsint-core/src/flowsint_core/core/graph/__init__.py15CODE
LOWflowsint-core/src/flowsint_core/core/graph/__init__.py16CODE
LOWflowsint-core/src/flowsint_core/core/graph/__init__.py16CODE
LOWflowsint-core/src/flowsint_core/core/graph/__init__.py16CODE
LOWflowsint-core/src/flowsint_core/core/graph/__init__.py16CODE
LOWflowsint-core/src/flowsint_core/core/graph/__init__.py16CODE
LOW…t-core/src/flowsint_core/core/repositories/__init__.py3CODE
LOW…t-core/src/flowsint_core/core/repositories/__init__.py4CODE
LOW…t-core/src/flowsint_core/core/repositories/__init__.py5CODE
LOW…t-core/src/flowsint_core/core/repositories/__init__.py6CODE
LOW…t-core/src/flowsint_core/core/repositories/__init__.py7CODE
LOW…t-core/src/flowsint_core/core/repositories/__init__.py8CODE
LOW…t-core/src/flowsint_core/core/repositories/__init__.py9CODE
LOW…t-core/src/flowsint_core/core/repositories/__init__.py10CODE
LOW…t-core/src/flowsint_core/core/repositories/__init__.py11CODE
LOW…t-core/src/flowsint_core/core/repositories/__init__.py12CODE
LOW…t-core/src/flowsint_core/core/repositories/__init__.py13CODE
LOW…t-core/src/flowsint_core/core/repositories/__init__.py14CODE
LOW…wsint-core/src/flowsint_core/core/services/__init__.py8CODE
LOW…wsint-core/src/flowsint_core/core/services/__init__.py8CODE
LOW…wsint-core/src/flowsint_core/core/services/__init__.py9CODE
LOW…wsint-core/src/flowsint_core/core/services/__init__.py9CODE
LOW…wsint-core/src/flowsint_core/core/services/__init__.py10CODE
LOW…wsint-core/src/flowsint_core/core/services/__init__.py11CODE
LOW…wsint-core/src/flowsint_core/core/services/__init__.py11CODE
LOW…wsint-core/src/flowsint_core/core/services/__init__.py12CODE
LOW…wsint-core/src/flowsint_core/core/services/__init__.py12CODE
LOW…wsint-core/src/flowsint_core/core/services/__init__.py13CODE
LOW…wsint-core/src/flowsint_core/core/services/__init__.py13CODE
LOW…wsint-core/src/flowsint_core/core/services/__init__.py14CODE
LOW…wsint-core/src/flowsint_core/core/services/__init__.py14CODE
LOW…wsint-core/src/flowsint_core/core/services/__init__.py18CODE
LOW…wsint-core/src/flowsint_core/core/services/__init__.py18CODE
45 more matches not shown…
Deep Nesting73 hits · 71 pts
SeverityFileLineSnippetContext
LOWflowsint-api/app/utils/custom_types.py184CODE
LOWflowsint-api/app/api/sketch_utils.py14CODE
LOWflowsint-api/app/api/routes/flows.py269CODE
LOWflowsint-api/app/api/routes/flows.py485CODE
LOW…nt-core/tests/core/graph/in_memory_graph_repository.py75CODE
LOW…nt-core/tests/core/graph/in_memory_graph_repository.py132CODE
LOW…nt-core/tests/core/graph/in_memory_graph_repository.py228CODE
LOW…nt-core/tests/core/graph/in_memory_graph_repository.py281CODE
LOWflowsint-core/src/flowsint_core/utils.py129CODE
LOWflowsint-core/src/flowsint_core/utils.py232CODE
LOWflowsint-core/src/flowsint_core/utils.py305CODE
LOW…wsint-core/src/flowsint_core/core/template_enricher.py262CODE
LOW…wsint-core/src/flowsint_core/core/template_enricher.py368CODE
LOWflowsint-core/src/flowsint_core/core/orchestrator.py38CODE
LOWflowsint-core/src/flowsint_core/core/orchestrator.py98CODE
LOWflowsint-core/src/flowsint_core/core/orchestrator.py269CODE
LOWflowsint-core/src/flowsint_core/core/orchestrator.py365CODE
LOWflowsint-core/src/flowsint_core/core/enricher_base.py160CODE
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.py161CODE
LOW…nt-core/src/flowsint_core/core/services/log_service.py52CODE
LOW…owsint-core/src/flowsint_core/imports/txt/parse_txt.py7CODE
LOW…sint-core/src/flowsint_core/imports/json/parse_json.py16CODE
LOW…core/src/flowsint_core/templates/loader/yaml_loader.py199CODE
LOW…core/src/flowsint_core/templates/loader/yaml_loader.py235CODE
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.py136CODE
LOWflowsint-enrichers/src/tools/network/asnmap.py54CODE
LOWflowsint-enrichers/src/flowsint_enrichers/utils.py4CODE
LOW…ichers/src/flowsint_enrichers/organization/to_infos.py33CODE
LOW…hers/src/flowsint_enrichers/organization/to_domains.py71CODE
LOW…hers/src/flowsint_enrichers/organization/to_domains.py397CODE
LOW…richers/src/flowsint_enrichers/website/to_subdomain.py57CODE
LOW…enrichers/src/flowsint_enrichers/website/to_crawler.py50CODE
LOW…hers/src/flowsint_enrichers/website/to_technologies.py68CODE
LOW…t-enrichers/src/flowsint_enrichers/website/to_links.py41CODE
LOW…t-enrichers/src/flowsint_enrichers/website/to_links.py73CODE
LOW…owsint-enrichers/src/flowsint_enrichers/cidr/to_ips.py64CODE
LOW…owsint-enrichers/src/flowsint_enrichers/cidr/to_ips.py115CODE
LOW…enrichers/src/flowsint_enrichers/social/to_sherlock.py31CODE
LOW…richers/src/flowsint_enrichers/social/to_hudsonrock.py31CODE
LOW…enrichers/src/flowsint_enrichers/social/to_dehashed.py66CODE
LOW…wsint-enrichers/src/flowsint_enrichers/asn/to_cidrs.py64CODE
LOW…wsint-enrichers/src/flowsint_enrichers/asn/to_cidrs.py121CODE
LOW…nrichers/src/flowsint_enrichers/phone/to_hudsonrock.py31CODE
LOW…wsint-enrichers/src/flowsint_enrichers/ip/to_domain.py32CODE
LOW…owsint-enrichers/src/flowsint_enrichers/ip/to_ports.py111CODE
LOW…t-enrichers/src/flowsint_enrichers/ip/to_fraudscore.py72CODE
LOW…int-enrichers/src/flowsint_enrichers/ip/to_dehashed.py66CODE
LOW…nrichers/src/flowsint_enrichers/ip/to_dummy_domains.py121CODE
LOW…hers/src/flowsint_enrichers/domain/to_whois_history.py72CODE
LOW…hers/src/flowsint_enrichers/domain/to_whois_history.py243CODE
LOW…sint-enrichers/src/flowsint_enrichers/domain/to_ssl.py36CODE
LOW…-enrichers/src/flowsint_enrichers/domain/to_history.py73CODE
LOW…-enrichers/src/flowsint_enrichers/domain/to_history.py283CODE
13 more matches not shown…
Docstring Block Structure10 hits · 50 pts
SeverityFileLineSnippetContext
HIGHflowsint-api/app/utils/custom_types.py128 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.py224 Parse the HTTP response based on expected format. Args: response: The httpx Response objecSTRING
HIGH…wsint-core/src/flowsint_core/core/template_enricher.py272 Make an HTTP request with retry logic. Args: client: The httpx AsyncClient metSTRING
HIGHflowsint-core/src/flowsint_core/core/graph/service.py312 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.py69 Analyze an uploaded file for import. Args: file_content: Raw file content as bytes STRING
HIGH…core/src/flowsint_core/templates/loader/yaml_loader.py172 Render a template string by substituting {{variable}} placeholders. Args: template: TemplaSTRING
Empty Error Handlers9 hits · 45 pts
SeverityFileLineSnippetContext
HIGHflowsint-core/tests/import/txt/test_txt_import.py329except ValueError:CODE
HIGHflowsint-types/src/flowsint_types/phone.py95except ValueError:CODE
HIGHflowsint-types/src/flowsint_types/phone.py54except NumberParseException:CODE
HIGHflowsint-types/src/flowsint_types/phone.py102except NumberParseException:CODE
HIGHflowsint-enrichers/src/tools/dockertool.py100except Exception:CODE
HIGH…wsint-enrichers/src/flowsint_enrichers/ip/to_domain.py43except socket.herror:CODE
HIGH…wsint-enrichers/src/flowsint_enrichers/ip/to_domain.py57except Exception:CODE
HIGH…-enrichers/src/flowsint_enrichers/domain/to_website.py129except requests.RequestException:CODE
HIGH…-enrichers/src/flowsint_enrichers/domain/to_website.py159except requests.RequestException:CODE
Self-Referential Comments13 hits · 39 pts
SeverityFileLineSnippetContext
MEDIUMflowsint-api/app/utils/custom_types.py173 # Create the dynamic modelCOMMENT
MEDIUM…a3b9a199aa8_drop_third_party_keys_create_keys_table.py27 # Create the new keys tableCOMMENT
MEDIUM…embic/versions/71a3e5b4db2a_update_scan_status_enum.py24 # Create the enum type first using raw SQL to ensure it existsCOMMENT
MEDIUMflowsint-core/tests/core/graph/test_graph_service.py616 # 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.py107 # Create a mock Key objectCOMMENT
MEDIUMflowsint-core/tests/vault/test_vault.py136 # Create a mock Key objectCOMMENT
MEDIUM…nt-core/tests/vault/test_enricher_vault_integration.py390 # Create an enricher that uses get_secret in scanCOMMENT
MEDIUMflowsint-core/src/flowsint_core/core/orchestrator.py43 # Create a directory for storing enricher files if it doesn't existCOMMENT
MEDIUMflowsint-core/src/flowsint_core/core/orchestrator.py182 # 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.py55 # Create main website and domain nodes upfrontCOMMENT
Fake / Example Data20 hits · 26 pts
SeverityFileLineSnippetContext
LOWflowsint-api/app/api/routes/flows.py284 return "user@example.com"CODE
LOWflowsint-api/app/api/routes/flows.py519 "email": inputs.get("input", "user@example.com"),CODE
LOW⚡flowsint-api/tests/test_events_auth.py28 token = create_access_token({"sub": "user@example.com"})CODE
LOW⚡flowsint-api/tests/test_events_auth.py43 db_session.add(Profile(email="user@example.com", hashed_password="x"))CODE
LOW⚡flowsint-api/tests/test_events_auth.py46 token = create_access_token({"sub": "user@example.com"})CODE
LOW⚡flowsint-api/tests/test_events_auth.py48 assert user.email == "user@example.com"CODE
LOW⚡…t-core/tests/core/test_enricher_base_simplified_api.py37 individual = Individual(first_name="John", last_name="Doe", full_name="John Doe")CODE
LOW⚡flowsint-core/tests/import/txt/test_txt_import.py397 txt_content = b"user@example.com"CODE
LOW⚡flowsint-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
LOW⚡flowsint-types/tests/test_socialaccount.py7 username=username, display_name="John Doe", platform="twitter"CODE
LOW⚡flowsint-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
LOW⚡flowsint-types/tests/test_labels.py50 org = Organization(name="Acme Corp")CODE
LOW⚡flowsint-types/tests/test_labels.py51 assert org.nodeLabel == "Acme Corp"CODE
LOW⚡flowsint-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
Cross-File Repetition4 hits · 20 pts
SeverityFileLineSnippetContext
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
Modern Structural Boilerplate18 hits · 18 pts
SeverityFileLineSnippetContext
LOWflowsint-api/app/api/sketch_utils.py14def update_sketch_last_modified(db: Session, sketch_id: str | UUID) -> None:CODE
LOW⚡…nt-core/tests/core/graph/in_memory_graph_repository.py454 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.py10logger = logging.getLogger(__name__)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.py324 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__.py16__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 Block18 hits · 18 pts
SeverityFileLineSnippetContext
LOWpyproject.toml61# explicit truce.COMMENT
LOWflowsint-core/pyproject.toml61# import as untyped and everything it touches collapses to Any — not aCOMMENT
LOWflowsint-core/tests/templates/example.yaml1# IP API Lookup TemplateCOMMENT
LOWflowsint-app/eslint.config.ts41 '@typescript-eslint/no-explicit-any': 'warn',COMMENT
LOWflowsint-app/src/types/graph.ts41 x: numberCOMMENT
LOW…pp/src/components/sketches/graph/edge/link-renderer.ts1import type { LinkObject } from 'react-force-graph-2d'COMMENT
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
LOWflowsint-enrichers/pyproject.toml61plugins = ["pydantic.mypy"]COMMENT
Redundant / Tautological Comments11 hits · 17 pts
SeverityFileLineSnippetContext
LOWflowsint-api/app/utils/custom_types.py65 # 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.py87 # Check if the domain ends with a common country code TLDCOMMENT
LOW…wsint-core/src/flowsint_core/core/template_enricher.py311 # Check if we should retry based on status codeCOMMENT
LOWflowsint-core/src/flowsint_core/core/orchestrator.py452 # 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.py47 # Check if category is a custom typeCOMMENT
LOW…core/src/flowsint_core/templates/loader/yaml_loader.py83 # Check if hostname is an IP address in blocked rangeCOMMENT
LOWflowsint-enrichers/src/tools/dockertool.py103 # Check if it's a container exit errorCOMMENT
LOWflowsint-enrichers/src/flowsint_enrichers/utils.py39 # Check if the domain ends with a common country code TLDCOMMENT
LOW…chers/src/flowsint_enrichers/crypto/to_transactions.py140 # Check if the API returned an errorCOMMENT
AI Slop Vocabulary7 hits · 12 pts
SeverityFileLineSnippetContext
LOWflowsint-core/tests/core/graph/test_graph_repository.py105 # 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
MEDIUM⚡flowsint-core/tests/import/txt/test_txt_import.py348 """Test comprehensive TXT import with various entity types."""STRING
MEDIUMflowsint-types/src/flowsint_types/risk_profile.py11 """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
LOWflowsint-enrichers/pyproject.toml72# "just set two class attributes" API. Narrowing the checks that patternCOMMENT
Structural Annotation Overuse3 hits · 4 pts
SeverityFileLineSnippetContext
LOWflowsint-app/src/api/README-query-keys.md170### Step 1: Update Existing HooksCOMMENT
LOWflowsint-app/src/api/README-query-keys.md182### Step 2: Update MutationsCOMMENT
LOWflowsint-app/src/api/README-query-keys.md194### Step 3: Update Cache OperationsCOMMENT
AI Structural Patterns3 hits · 3 pts
SeverityFileLineSnippetContext
LOWflowsint-core/tests/templates/test_template_enricher.py26CODE
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.py40Let me know if you need changes.CODE