Repository Analysis

getzep/graphiti

Build Real-Time Knowledge Graphs for AI Agents

48.2 Strong AI signal View on GitHub

Analysis Overview

This report presents the forensic synthetic code analysis of getzep/graphiti, a Python project with 28,695 GitHub stars. SynthScan v2.0 examined 75,356 lines of code across 323 source files, recording 1620 pattern matches distributed across 20 syntactic categories. The overall adjusted score of 48.2 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).

48.2
Adjusted Score
48.2
Raw Score
100%
Time Factor
2026-07-09
Last Push
28.7K
Stars
Python
Language
75.4K
Lines of Code
323
Files
1.6K
Pattern Hits
2026-07-14
Scan Date
1.39
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 1HIGH 447MEDIUM 112LOW 1060

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 1620 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.

Cross-File Repetition430 hits · 2150 pts
SeverityFileLineSnippetContext
HIGHtests/test_graphiti_mock.py0copyright 2025, zep software, inc. licensed under the apache license, version 2.0 (the "license"); you may not use this STRING
HIGHtests/test_add_triplet.py0copyright 2025, zep software, inc. licensed under the apache license, version 2.0 (the "license"); you may not use this STRING
HIGHtests/test_edge_int.py0copyright 2025, zep software, inc. licensed under the apache license, version 2.0 (the "license"); you may not use this STRING
HIGHtests/helpers_test.py0copyright 2025, zep software, inc. licensed under the apache license, version 2.0 (the "license"); you may not use this STRING
HIGHtests/test_entity_exclusion_int.py0copyright 2025, zep software, inc. licensed under the apache license, version 2.0 (the "license"); you may not use this STRING
HIGHtests/test_graphiti_int.py0copyright 2025, zep software, inc. licensed under the apache license, version 2.0 (the "license"); you may not use this STRING
HIGHtests/test_text_utils.py0copyright 2025, zep software, inc. licensed under the apache license, version 2.0 (the "license"); you may not use this STRING
HIGHtests/test_node_int.py0copyright 2025, zep software, inc. licensed under the apache license, version 2.0 (the "license"); you may not use this STRING
HIGHtests/evals/eval_e2e_graph_building.py0copyright 2025, zep software, inc. licensed under the apache license, version 2.0 (the "license"); you may not use this STRING
HIGHtests/evals/utils.py0copyright 2025, zep software, inc. licensed under the apache license, version 2.0 (the "license"); you may not use this STRING
HIGHtests/llm_client/test_anthropic_client_int.py0copyright 2025, zep software, inc. licensed under the apache license, version 2.0 (the "license"); you may not use this STRING
HIGHtests/llm_client/test_anthropic_client.py0copyright 2025, zep software, inc. licensed under the apache license, version 2.0 (the "license"); you may not use this STRING
HIGHtests/llm_client/test_errors.py0copyright 2025, zep software, inc. licensed under the apache license, version 2.0 (the "license"); you may not use this STRING
HIGHtests/llm_client/test_token_tracker.py0copyright 2025, zep software, inc. licensed under the apache license, version 2.0 (the "license"); you may not use this STRING
HIGHtests/llm_client/test_gemini_client.py0copyright 2025, zep software, inc. licensed under the apache license, version 2.0 (the "license"); you may not use this STRING
HIGHtests/llm_client/test_client.py0copyright 2025, zep software, inc. licensed under the apache license, version 2.0 (the "license"); you may not use this STRING
HIGHtests/llm_client/test_cache.py0copyright 2025, zep software, inc. licensed under the apache license, version 2.0 (the "license"); you may not use this STRING
HIGHtests/driver/test_falkordb_driver.py0copyright 2025, zep software, inc. licensed under the apache license, version 2.0 (the "license"); you may not use this STRING
HIGHtests/embedder/test_voyage.py0copyright 2025, zep software, inc. licensed under the apache license, version 2.0 (the "license"); you may not use this STRING
HIGHtests/embedder/test_openai.py0copyright 2025, zep software, inc. licensed under the apache license, version 2.0 (the "license"); you may not use this STRING
HIGHtests/embedder/embedder_fixtures.py0copyright 2025, zep software, inc. licensed under the apache license, version 2.0 (the "license"); you may not use this STRING
HIGHtests/embedder/test_gemini.py0copyright 2025, zep software, inc. licensed under the apache license, version 2.0 (the "license"); you may not use this STRING
HIGHtests/utils/test_content_chunking.py0copyright 2025, zep software, inc. licensed under the apache license, version 2.0 (the "license"); you may not use this STRING
HIGHtests/utils/maintenance/test_entity_extraction.py0copyright 2025, zep software, inc. licensed under the apache license, version 2.0 (the "license"); you may not use this STRING
HIGHtests/cross_encoder/test_bge_reranker_client_int.py0copyright 2025, zep software, inc. licensed under the apache license, version 2.0 (the "license"); you may not use this STRING
HIGHtests/cross_encoder/test_gemini_reranker_client.py0copyright 2025, zep software, inc. licensed under the apache license, version 2.0 (the "license"); you may not use this STRING
HIGHexamples/ecommerce/runner.py0copyright 2025, zep software, inc. licensed under the apache license, version 2.0 (the "license"); you may not use this STRING
HIGHexamples/podcast/podcast_runner.py0copyright 2025, zep software, inc. licensed under the apache license, version 2.0 (the "license"); you may not use this STRING
HIGHexamples/wizard_of_oz/runner.py0copyright 2025, zep software, inc. licensed under the apache license, version 2.0 (the "license"); you may not use this STRING
HIGHgraphiti_core/graphiti_types.py0copyright 2025, zep software, inc. licensed under the apache license, version 2.0 (the "license"); you may not use this STRING
HIGHgraphiti_core/edges.py0copyright 2025, zep software, inc. licensed under the apache license, version 2.0 (the "license"); you may not use this STRING
HIGHgraphiti_core/errors.py0copyright 2025, zep software, inc. licensed under the apache license, version 2.0 (the "license"); you may not use this STRING
HIGHgraphiti_core/nodes.py0copyright 2025, zep software, inc. licensed under the apache license, version 2.0 (the "license"); you may not use this STRING
HIGHgraphiti_core/graphiti.py0copyright 2025, zep software, inc. licensed under the apache license, version 2.0 (the "license"); you may not use this STRING
HIGHgraphiti_core/helpers.py0copyright 2025, zep software, inc. licensed under the apache license, version 2.0 (the "license"); you may not use this STRING
HIGHgraphiti_core/tracer.py0copyright 2025, zep software, inc. licensed under the apache license, version 2.0 (the "license"); you may not use this STRING
HIGHgraphiti_core/decorators.py0copyright 2025, zep software, inc. licensed under the apache license, version 2.0 (the "license"); you may not use this STRING
HIGHgraphiti_core/llm_client/config.py0copyright 2025, zep software, inc. licensed under the apache license, version 2.0 (the "license"); you may not use this STRING
HIGHgraphiti_core/llm_client/client.py0copyright 2025, zep software, inc. licensed under the apache license, version 2.0 (the "license"); you may not use this STRING
HIGHgraphiti_core/llm_client/cache.py0copyright 2025, zep software, inc. licensed under the apache license, version 2.0 (the "license"); you may not use this STRING
HIGHgraphiti_core/llm_client/__init__.py0copyright 2025, zep software, inc. licensed under the apache license, version 2.0 (the "license"); you may not use this STRING
HIGHgraphiti_core/llm_client/token_tracker.py0copyright 2025, zep software, inc. licensed under the apache license, version 2.0 (the "license"); you may not use this STRING
HIGHgraphiti_core/llm_client/azure_openai_client.py0copyright 2025, zep software, inc. licensed under the apache license, version 2.0 (the "license"); you may not use this STRING
HIGHgraphiti_core/llm_client/gliner2_client.py0copyright 2025, zep software, inc. licensed under the apache license, version 2.0 (the "license"); you may not use this STRING
HIGHgraphiti_core/llm_client/groq_client.py0copyright 2025, zep software, inc. licensed under the apache license, version 2.0 (the "license"); you may not use this STRING
HIGHgraphiti_core/llm_client/utils.py0copyright 2025, zep software, inc. licensed under the apache license, version 2.0 (the "license"); you may not use this STRING
HIGHgraphiti_core/llm_client/openai_generic_client.py0copyright 2025, zep software, inc. licensed under the apache license, version 2.0 (the "license"); you may not use this STRING
HIGHgraphiti_core/llm_client/errors.py0copyright 2025, zep software, inc. licensed under the apache license, version 2.0 (the "license"); you may not use this STRING
HIGHgraphiti_core/llm_client/openai_client.py0copyright 2025, zep software, inc. licensed under the apache license, version 2.0 (the "license"); you may not use this STRING
HIGHgraphiti_core/llm_client/anthropic_client.py0copyright 2025, zep software, inc. licensed under the apache license, version 2.0 (the "license"); you may not use this STRING
HIGHgraphiti_core/llm_client/openai_base_client.py0copyright 2025, zep software, inc. licensed under the apache license, version 2.0 (the "license"); you may not use this STRING
HIGHgraphiti_core/llm_client/gemini_client.py0copyright 2025, zep software, inc. licensed under the apache license, version 2.0 (the "license"); you may not use this STRING
HIGHgraphiti_core/driver/neptune_driver.py0copyright 2025, zep software, inc. licensed under the apache license, version 2.0 (the "license"); you may not use this STRING
HIGHgraphiti_core/driver/neo4j_driver.py0copyright 2025, zep software, inc. licensed under the apache license, version 2.0 (the "license"); you may not use this STRING
HIGHgraphiti_core/driver/falkordb_driver.py0copyright 2025, zep software, inc. licensed under the apache license, version 2.0 (the "license"); you may not use this STRING
HIGHgraphiti_core/driver/__init__.py0copyright 2025, zep software, inc. licensed under the apache license, version 2.0 (the "license"); you may not use this STRING
HIGHgraphiti_core/driver/query_executor.py0copyright 2025, zep software, inc. licensed under the apache license, version 2.0 (the "license"); you may not use this STRING
HIGHgraphiti_core/driver/record_parsers.py0copyright 2025, zep software, inc. licensed under the apache license, version 2.0 (the "license"); you may not use this STRING
HIGHgraphiti_core/driver/driver.py0copyright 2025, zep software, inc. licensed under the apache license, version 2.0 (the "license"); you may not use this STRING
HIGHgraphiti_core/driver/kuzu_driver.py0copyright 2025, zep software, inc. licensed under the apache license, version 2.0 (the "license"); you may not use this STRING
370 more matches not shown…
Hyper-Verbose Identifiers599 hits · 573 pts
SeverityFileLineSnippetContext
LOWtests/test_graphiti_mock.py99def mock_cross_encoder_client():CODE
LOWtests/test_graphiti_mock.py454async def test_graphiti_retrieve_episodes(CODE
LOWtests/test_graphiti_mock.py529async def test_filter_existing_duplicate_of_edges(graph_driver, mock_embedder):CODE
LOWtests/test_graphiti_mock.py593async def test_determine_entity_community(graph_driver, mock_embedder):CODE
LOWtests/test_graphiti_mock.py753async def test_get_community_clusters(graph_driver, mock_embedder):CODE
LOWtests/test_graphiti_mock.py879async def test_get_communities_by_nodes(graph_driver, mock_embedder):CODE
LOWtests/test_graphiti_mock.py918async def test_edge_fulltext_search(CODE
LOWtests/test_graphiti_mock.py1019async def test_edge_similarity_search(graph_driver, mock_embedder):CODE
LOWtests/test_graphiti_mock.py1307async def test_node_fulltext_search(CODE
LOWtests/test_graphiti_mock.py1356async def test_node_similarity_search(graph_driver, mock_embedder):CODE
LOWtests/test_graphiti_mock.py1516async def test_episode_fulltext_search(CODE
LOWtests/test_graphiti_mock.py1567async def test_community_fulltext_search(CODE
LOWtests/test_graphiti_mock.py1610async def test_community_similarity_search(CODE
LOWtests/test_graphiti_mock.py1717async def test_get_relevant_edges_and_invalidation_candidates(CODE
LOWtests/test_graphiti_mock.py1871async def test_node_distance_reranker(graph_driver, mock_embedder):CODE
LOWtests/test_graphiti_mock.py1932async def test_episode_mentions_reranker(graph_driver, mock_embedder):CODE
LOWtests/test_graphiti_mock.py1989async def test_get_embeddings_for_edges(graph_driver, mock_embedder):CODE
LOWtests/test_graphiti_mock.py2030async def test_get_embeddings_for_nodes(graph_driver, mock_embedder):CODE
LOWtests/test_graphiti_mock.py2051async def test_get_embeddings_for_communities(graph_driver, mock_embedder):CODE
LOWtests/test_add_triplet.py55def mock_cross_encoder_client():CODE
LOWtests/test_add_triplet.py66async def test_add_triplet_merges_attributes(CODE
LOWtests/test_add_triplet.py145async def test_add_triplet_updates_summary(CODE
LOWtests/test_add_triplet.py216async def test_add_triplet_updates_labels(CODE
LOWtests/test_add_triplet.py288async def test_add_triplet_with_new_nodes_no_uuid(CODE
LOWtests/test_add_triplet.py353async def test_add_triplet_preserves_existing_attributes(CODE
LOWtests/test_add_triplet.py433async def test_add_triplet_empty_attributes_preserved(CODE
LOWtests/test_add_triplet.py508async def test_add_triplet_invalid_source_uuid(CODE
LOWtests/test_add_triplet.py561async def test_add_triplet_invalid_target_uuid(CODE
LOWtests/test_add_triplet.py627async def test_add_triplet_invalid_both_uuids(CODE
LOWtests/test_add_triplet.py683async def test_add_triplet_edge_uuid_with_different_nodes_creates_new_edge(CODE
LOWtests/test_add_triplet.py780async def test_add_triplet_edge_uuid_with_same_nodes_updates_edge(CODE
LOWtests/test_node_label_security.py13def test_entity_node_rejects_unsafe_labels():CODE
LOWtests/test_node_label_security.py22def test_entity_node_assignment_rejects_unsafe_labels():CODE
LOWtests/test_node_label_security.py29def test_entity_node_save_query_rejects_unsafe_labels_when_validation_is_bypassed():CODE
LOWtests/test_node_label_security.py39def test_entity_node_save_bulk_query_rejects_unsafe_labels_when_validation_is_bypassed():CODE
LOWtests/helpers_test.py248async def assert_episodic_node_equals(retrieved: EpisodicNode, sample: EpisodicNode):CODE
LOWtests/helpers_test.py260async def assert_entity_node_equals(CODE
LOWtests/helpers_test.py276async def assert_community_node_equals(CODE
LOWtests/helpers_test.py290async def assert_episodic_edge_equals(retrieved: EpisodicEdge, sample: EpisodicEdge):CODE
LOWtests/helpers_test.py298async def assert_entity_edge_equals(CODE
LOWtests/test_entity_exclusion_int.py64async def test_exclude_default_entity_type(driver):CODE
LOWtests/test_entity_exclusion_int.py121async def test_exclude_specific_custom_types(driver):CODE
LOWtests/test_entity_exclusion_int.py279def test_validation_valid_excluded_types():CODE
LOWtests/test_entity_exclusion_int.py294def test_validation_invalid_excluded_types():CODE
LOWtests/test_entity_exclusion_int.py314async def test_excluded_types_parameter_validation_in_add_episode(driver):CODE
LOWtests/test_text_utils.py20def test_truncate_at_sentence_short_text():CODE
LOWtests/test_text_utils.py27def test_truncate_at_sentence_empty():CODE
LOWtests/test_text_utils.py33def test_truncate_at_sentence_exact_length():CODE
LOWtests/test_text_utils.py40def test_truncate_at_sentence_with_period():CODE
LOWtests/test_text_utils.py48def test_truncate_at_sentence_with_question():CODE
LOWtests/test_text_utils.py56def test_truncate_at_sentence_with_exclamation():CODE
LOWtests/test_text_utils.py64def test_truncate_at_sentence_no_boundary():CODE
LOWtests/test_text_utils.py72def test_truncate_at_sentence_multiple_periods():CODE
LOWtests/test_text_utils.py80def test_truncate_at_sentence_strips_trailing_whitespace():CODE
LOWtests/test_text_utils.py88def test_max_summary_chars_constant():CODE
LOWtests/test_text_utils.py93def test_truncate_at_sentence_realistic_summary():CODE
LOWtests/llm_client/test_anthropic_client_int.py43async def test_generate_simple_response():CODE
LOWtests/llm_client/test_anthropic_client_int.py69async def test_extract_json_from_text():CODE
LOWtests/llm_client/test_openai_generic_client.py61async def test_defaults_to_json_schema_response_format():CODE
LOWtests/llm_client/test_openai_generic_client.py73async def test_json_schema_mode_does_not_inject_schema_into_prompt():CODE
539 more matches not shown…
Decorative Section Separators71 hits · 218 pts
SeverityFileLineSnippetContext
MEDIUM.github/workflows/claude-code-review-manual.yml93 # ============================================================COMMENT
MEDIUM.github/workflows/claude-code-review-manual.yml95 # ============================================================COMMENT
MEDIUM.github/workflows/claude-code-review-manual.yml106 # ============================================================COMMENT
MEDIUM.github/workflows/claude-code-review.yml115 # ============================================================COMMENT
MEDIUM.github/workflows/claude-code-review.yml117 # ============================================================COMMENT
MEDIUM.github/workflows/claude-code-review.yml128 # ============================================================COMMENT
MEDIUM.github/workflows/pr-triage.yml21 # ──────────────────────────────────────────────COMMENT
MEDIUM.github/workflows/pr-triage.yml24 # ──────────────────────────────────────────────COMMENT
MEDIUM.github/workflows/pr-triage.yml41 # ──────────────────────────────────────────────COMMENT
MEDIUM.github/workflows/pr-triage.yml45 # ──────────────────────────────────────────────COMMENT
MEDIUM.github/workflows/pr-triage.yml167 # ============================================================COMMENT
MEDIUM.github/workflows/pr-triage.yml169 # ============================================================COMMENT
MEDIUM.github/workflows/pr-triage.yml179 # ============================================================COMMENT
MEDIUM.github/workflows/pr-triage.yml212 # ──────────────────────────────────────────────COMMENT
MEDIUM.github/workflows/pr-triage.yml214 # ──────────────────────────────────────────────COMMENT
MEDIUM.github/workflows/pr-triage.yml308 # ============================================================COMMENT
MEDIUM.github/workflows/pr-triage.yml310 # ============================================================COMMENT
MEDIUM.github/workflows/pr-triage.yml320 # ============================================================COMMENT
MEDIUMgraphiti_core/llm_client/gliner2_client.py118 # ── Message parsing helpers ──────────────────────────────────────COMMENT
MEDIUMgraphiti_core/llm_client/gliner2_client.py174 # ── Extraction handlers ──────────────────────────────────────────COMMENT
MEDIUMgraphiti_core/llm_client/gliner2_client.py215 # ── Core dispatch ────────────────────────────────────────────────COMMENT
MEDIUM…phiti_core/driver/graph_operations/graph_operations.py102 # --------------------------COMMENT
MEDIUM…phiti_core/driver/graph_operations/graph_operations.py104 # --------------------------COMMENT
MEDIUM…phiti_core/driver/graph_operations/graph_operations.py175 # -----------------------COMMENT
MEDIUM…phiti_core/driver/graph_operations/graph_operations.py177 # -----------------------COMMENT
MEDIUM…phiti_core/driver/graph_operations/graph_operations.py269 # -----------------------COMMENT
MEDIUM…phiti_core/driver/graph_operations/graph_operations.py271 # -----------------------COMMENT
MEDIUM…phiti_core/driver/graph_operations/graph_operations.py335 # -----------------------COMMENT
MEDIUM…phiti_core/driver/graph_operations/graph_operations.py337 # -----------------------COMMENT
MEDIUM…phiti_core/driver/graph_operations/graph_operations.py358 # -----------------------COMMENT
MEDIUM…phiti_core/driver/graph_operations/graph_operations.py360 # -----------------------COMMENT
MEDIUM…phiti_core/driver/graph_operations/graph_operations.py464 # -----------------COMMENT
MEDIUM…phiti_core/driver/graph_operations/graph_operations.py466 # -----------------COMMENT
MEDIUM…phiti_core/driver/graph_operations/graph_operations.py485 # ---------------------------COMMENT
MEDIUM…phiti_core/driver/graph_operations/graph_operations.py487 # ---------------------------COMMENT
MEDIUM…phiti_core/driver/graph_operations/graph_operations.py505 # ---------------------------COMMENT
MEDIUM…phiti_core/driver/graph_operations/graph_operations.py507 # ---------------------------COMMENT
MEDIUM…phiti_core/driver/graph_operations/graph_operations.py530 # ---------------------------COMMENT
MEDIUM…phiti_core/driver/graph_operations/graph_operations.py532 # ---------------------------COMMENT
MEDIUM…phiti_core/driver/graph_operations/graph_operations.py550 # ---------------------------COMMENT
MEDIUM…phiti_core/driver/graph_operations/graph_operations.py552 # ---------------------------COMMENT
MEDIUM…phiti_core/driver/graph_operations/graph_operations.py575 # ---------------------------COMMENT
MEDIUM…phiti_core/driver/graph_operations/graph_operations.py577 # ---------------------------COMMENT
MEDIUM…phiti_core/driver/graph_operations/graph_operations.py606 # ---------------------------COMMENT
MEDIUM…phiti_core/driver/graph_operations/graph_operations.py608 # ---------------------------COMMENT
MEDIUM…phiti_core/driver/graph_operations/graph_operations.py631 # ----------------------------COMMENT
MEDIUM…phiti_core/driver/graph_operations/graph_operations.py633 # ----------------------------COMMENT
MEDIUM…phiti_core/driver/graph_operations/graph_operations.py662 # ----------------------------COMMENT
MEDIUM…phiti_core/driver/graph_operations/graph_operations.py664 # ----------------------------COMMENT
MEDIUM…phiti_core/driver/graph_operations/graph_operations.py805 # -----------------COMMENT
MEDIUM…phiti_core/driver/graph_operations/graph_operations.py807 # -----------------COMMENT
MEDIUM…phiti_core/driver/graph_operations/graph_operations.py36 # -----------------COMMENT
MEDIUM…phiti_core/driver/graph_operations/graph_operations.py38 # -----------------COMMENT
MEDIUM…phiti_core/driver/graph_operations/graph_operations.py77 # -----------------COMMENT
MEDIUM…phiti_core/driver/graph_operations/graph_operations.py79 # -----------------COMMENT
MEDIUM…phiti_core/driver/graph_operations/graph_operations.py123 # --------------------------COMMENT
MEDIUM…phiti_core/driver/graph_operations/graph_operations.py125 # --------------------------COMMENT
MEDIUM…phiti_core/driver/graph_operations/graph_operations.py228 # -----------------------COMMENT
MEDIUM…phiti_core/driver/graph_operations/graph_operations.py230 # -----------------------COMMENT
MEDIUM…phiti_core/driver/graph_operations/graph_operations.py294 # -----------------------COMMENT
11 more matches not shown…
Excessive Try-Catch Wrapping112 hits · 110 pts
SeverityFileLineSnippetContext
LOWtests/test_entity_exclusion_int.py349 except Exception as e:CODE
LOWtests/llm_client/test_anthropic_client_int.py63 except Exception as e:CODE
LOWtests/driver/test_falkordb_driver.py430 except Exception as e:CODE
LOWgraphiti_core/graphiti.py267 except Exception:CODE
LOWgraphiti_core/graphiti.py1225 except Exception as e:CODE
LOWgraphiti_core/graphiti.py1484 except Exception as e:CODE
LOWgraphiti_core/tracer.py104 except Exception:CODE
LOWgraphiti_core/tracer.py116 except Exception:CODE
LOWgraphiti_core/tracer.py154 except Exception:CODE
LOWgraphiti_core/llm_client/client.py257 except Exception as e:CODE
LOWgraphiti_core/llm_client/gliner2_client.py244 except Exception as e:CODE
LOWgraphiti_core/llm_client/gliner2_client.py318 except Exception as e:CODE
LOWgraphiti_core/llm_client/groq_client.py83 except Exception as e:CODE
LOWgraphiti_core/llm_client/openai_generic_client.py172 except Exception as e:CODE
LOWgraphiti_core/llm_client/openai_generic_client.py225 except Exception as e:CODE
LOWgraphiti_core/llm_client/anthropic_client.py341 except Exception as e:CODE
LOWgraphiti_core/llm_client/anthropic_client.py419 except Exception as e:CODE
LOWgraphiti_core/llm_client/openai_base_client.py230 except Exception as e:CODE
LOWgraphiti_core/llm_client/openai_base_client.py305 except Exception as e:CODE
LOWgraphiti_core/llm_client/gemini_client.py225 except Exception:CODE
LOWgraphiti_core/llm_client/gemini_client.py232 except Exception:CODE
LOWgraphiti_core/llm_client/gemini_client.py333 except Exception as e:CODE
LOWgraphiti_core/llm_client/gemini_client.py349 except Exception as e:CODE
LOWgraphiti_core/llm_client/gemini_client.py437 except Exception as e:CODE
LOWgraphiti_core/driver/neptune_driver.py296 except Exception as e:CODE
LOWgraphiti_core/driver/neo4j_driver.py173 except Exception as e:CODE
LOWgraphiti_core/driver/neo4j_driver.py223 except Exception as e:CODE
LOWgraphiti_core/driver/falkordb_driver.py247 except Exception as e:CODE
LOWgraphiti_core/driver/falkordb_driver.py343 except Exception as e:CODE
LOWgraphiti_core/driver/kuzu_driver.py228 except Exception as e:STRING
LOWgraphiti_core/embedder/gemini.py155 except Exception as e:CODE
LOWgraphiti_core/embedder/gemini.py179 except Exception as individual_error:CODE
LOWgraphiti_core/embedder/azure_openai.py57 except Exception as e:CODE
LOWgraphiti_core/embedder/azure_openai.py69 except Exception as e:CODE
LOWgraphiti_core/utils/maintenance/combined_extraction.py273 except Exception:CODE
LOWgraphiti_core/utils/maintenance/edge_operations.py619 except Exception:CODE
LOWgraphiti_core/search/search.py92 except Exception as e:CODE
LOWgraphiti_core/cross_encoder/gemini_reranker_client.py149 except Exception as e:CODE
LOWgraphiti_core/cross_encoder/openai_reranker_client.py121 except Exception as e:STRING
LOWgraphiti_core/telemetry/telemetry.py50 except Exception:CODE
LOWgraphiti_core/telemetry/telemetry.py61 except Exception:CODE
LOWgraphiti_core/telemetry/telemetry.py72 except Exception:CODE
LOWgraphiti_core/telemetry/telemetry.py87 except Exception:CODE
LOWgraphiti_core/telemetry/telemetry.py115 except Exception:CODE
LOWmcp_server/tests/test_stdio_simple.py77 except Exception as e:CODE
LOWmcp_server/tests/run_tests.py79 except Exception:CODE
LOWmcp_server/tests/run_tests.py91 except Exception:CODE
LOWmcp_server/tests/test_configuration.py66 except Exception as e:CODE
LOWmcp_server/tests/test_configuration.py84 except Exception as e:CODE
LOWmcp_server/tests/test_configuration.py104 except Exception as e:CODE
LOWmcp_server/tests/test_configuration.py140 except Exception as e:CODE
LOWmcp_server/tests/test_configuration.py142 except Exception as e:CODE
LOWmcp_server/tests/test_configuration.py230 except Exception as e:CODE
LOWmcp_server/tests/test_http_integration.py60 except Exception as e:CODE
LOWmcp_server/tests/test_http_integration.py87 except Exception as e:CODE
LOWmcp_server/tests/test_http_integration.py106 except Exception: # noqa: E722CODE
LOWmcp_server/tests/test_http_integration.py111 except Exception as e:CODE
LOWmcp_server/tests/test_http_integration.py127 except Exception: # noqa: E722CODE
LOWmcp_server/tests/test_http_integration.py132 except Exception as e:CODE
LOWmcp_server/tests/test_http_integration.py149 except Exception as e:CODE
52 more matches not shown…
Modern Structural Boilerplate108 hits · 108 pts
SeverityFileLineSnippetContext
LOWconftest.py13__all__ = ['graph_driver', 'mock_embedder']CODE
LOWtests/utils/search/test_search_tracing.py22 def set_status(self, status: str, description: str | None = None) -> None:CODE
LOWserver/graph_service/zep_graphiti.py14logger = logging.getLogger(__name__)CODE
LOWserver/graph_service/dto/__init__.py5__all__ = [CODE
LOWexamples/opentelemetry/otel_stdout_example.py37logger = logging.getLogger(__name__)CODE
LOWexamples/quickstart/dense_vs_normal_ingestion.py58logger = logging.getLogger(__name__)CODE
LOWexamples/quickstart/quickstart_neptune.py44logger = logging.getLogger(__name__)CODE
LOWexamples/quickstart/quickstart_neo4j.py43logger = logging.getLogger(__name__)CODE
LOWexamples/quickstart/quickstart_falkordb.py44logger = logging.getLogger(__name__)CODE
LOWexamples/azure-openai/azure_openai_neo4j.py46logger = logging.getLogger(__name__)CODE
LOWexamples/gliner2/gliner2_neo4j.py97logger = logging.getLogger(__name__)CODE
LOWgraphiti_core/__init__.py3__all__ = ['Graphiti']CODE
LOWgraphiti_core/edges.py46logger = logging.getLogger(__name__)CODE
LOWgraphiti_core/nodes.py51logger = logging.getLogger(__name__)CODE
LOWgraphiti_core/graphiti.py109logger = logging.getLogger(__name__)CODE
LOWgraphiti_core/tracer.py42 def set_status(self, status: str, description: str | None = None) -> None:CODE
LOWgraphiti_core/tracer.py67 def set_status(self, status: str, description: str | None = None) -> None:CODE
LOWgraphiti_core/tracer.py108 def set_status(self, status: str, description: str | None = None) -> None:CODE
LOWgraphiti_core/llm_client/client.py59logger = logging.getLogger(__name__)CODE
LOWgraphiti_core/llm_client/client.py94 def set_tracer(self, tracer: Tracer) -> None:CODE
LOWgraphiti_core/llm_client/cache.py24logger = logging.getLogger(__name__)CODE
LOWgraphiti_core/llm_client/__init__.py23__all__ = [CODE
LOWgraphiti_core/llm_client/azure_openai_client.py28logger = logging.getLogger(__name__)CODE
LOWgraphiti_core/llm_client/gliner2_client.py44logger = logging.getLogger(__name__)CODE
LOWgraphiti_core/llm_client/groq_client.py42logger = logging.getLogger(__name__)CODE
LOWgraphiti_core/llm_client/utils.py22logger = logging.getLogger(__name__)CODE
LOWgraphiti_core/llm_client/openai_generic_client.py33logger = logging.getLogger(__name__)CODE
LOWgraphiti_core/llm_client/anthropic_client.py47logger = logging.getLogger(__name__)CODE
LOWgraphiti_core/llm_client/openai_base_client.py32logger = logging.getLogger(__name__)CODE
LOWgraphiti_core/llm_client/gemini_client.py45logger = logging.getLogger(__name__)CODE
LOWgraphiti_core/driver/neptune_driver.py59logger = logging.getLogger(__name__)CODE
LOWgraphiti_core/driver/neo4j_driver.py57logger = logging.getLogger(__name__)CODE
LOWgraphiti_core/driver/falkordb_driver.py73logger = logging.getLogger(__name__)CODE
LOWgraphiti_core/driver/__init__.py19__all__ = ['Neo4jDriver']CODE
LOWgraphiti_core/driver/driver.py47logger = logging.getLogger(__name__)CODE
LOWgraphiti_core/driver/kuzu_driver.py49logger = logging.getLogger(__name__)CODE
LOW…i_core/driver/neo4j/operations/has_episode_edge_ops.py30logger = logging.getLogger(__name__)CODE
LOW…aphiti_core/driver/neo4j/operations/entity_node_ops.py32logger = logging.getLogger(__name__)CODE
LOW…hiti_core/driver/neo4j/operations/episodic_edge_ops.py32logger = logging.getLogger(__name__)CODE
LOW…aphiti_core/driver/neo4j/operations/entity_edge_ops.py32logger = logging.getLogger(__name__)CODE
LOWgraphiti_core/driver/neo4j/operations/__init__.py33__all__ = [CODE
LOW…iti_core/driver/neo4j/operations/community_edge_ops.py31logger = logging.getLogger(__name__)CODE
LOWgraphiti_core/driver/neo4j/operations/saga_node_ops.py28logger = logging.getLogger(__name__)CODE
LOWgraphiti_core/driver/neo4j/operations/graph_ops.py33logger = logging.getLogger(__name__)CODE
LOW…phiti_core/driver/neo4j/operations/episode_node_ops.py33logger = logging.getLogger(__name__)CODE
LOW…_core/driver/neo4j/operations/next_episode_edge_ops.py30logger = logging.getLogger(__name__)CODE
LOWgraphiti_core/driver/neo4j/operations/search_ops.py49logger = logging.getLogger(__name__)CODE
LOW…iti_core/driver/neo4j/operations/community_node_ops.py31logger = logging.getLogger(__name__)CODE
LOW…ore/driver/falkordb/operations/has_episode_edge_ops.py30logger = logging.getLogger(__name__)CODE
LOW…iti_core/driver/falkordb/operations/entity_node_ops.py32logger = logging.getLogger(__name__)CODE
LOW…i_core/driver/falkordb/operations/episodic_edge_ops.py32logger = logging.getLogger(__name__)CODE
LOW…iti_core/driver/falkordb/operations/entity_edge_ops.py32logger = logging.getLogger(__name__)CODE
LOWgraphiti_core/driver/falkordb/operations/__init__.py37__all__ = [CODE
LOW…_core/driver/falkordb/operations/community_edge_ops.py31logger = logging.getLogger(__name__)CODE
LOW…phiti_core/driver/falkordb/operations/saga_node_ops.py28logger = logging.getLogger(__name__)CODE
LOWgraphiti_core/driver/falkordb/operations/graph_ops.py33logger = logging.getLogger(__name__)CODE
LOW…ti_core/driver/falkordb/operations/episode_node_ops.py33logger = logging.getLogger(__name__)CODE
LOW…re/driver/falkordb/operations/next_episode_edge_ops.py30logger = logging.getLogger(__name__)CODE
LOWgraphiti_core/driver/falkordb/operations/search_ops.py50logger = logging.getLogger(__name__)CODE
LOW…_core/driver/falkordb/operations/community_node_ops.py31logger = logging.getLogger(__name__)CODE
48 more matches not shown…
Unused Imports100 hits · 100 pts
SeverityFileLineSnippetContext
LOWconftest.py8CODE
LOWconftest.py8CODE
LOWserver/graph_service/dto/__init__.py1CODE
LOWserver/graph_service/dto/__init__.py1CODE
LOWserver/graph_service/dto/__init__.py2CODE
LOWserver/graph_service/dto/__init__.py2CODE
LOWserver/graph_service/dto/__init__.py3CODE
LOWserver/graph_service/dto/__init__.py3CODE
LOWserver/graph_service/dto/__init__.py3CODE
LOWserver/graph_service/dto/__init__.py3CODE
LOWserver/graph_service/dto/__init__.py3CODE
LOWgraphiti_core/__init__.py1CODE
LOWgraphiti_core/tracer.py23CODE
LOWgraphiti_core/tracer.py26CODE
LOWgraphiti_core/llm_client/__init__.py17CODE
LOWgraphiti_core/llm_client/__init__.py18CODE
LOWgraphiti_core/llm_client/__init__.py19CODE
LOWgraphiti_core/llm_client/__init__.py20CODE
LOWgraphiti_core/llm_client/__init__.py21CODE
LOWgraphiti_core/llm_client/__init__.py21CODE
LOWgraphiti_core/driver/__init__.py17CODE
LOWgraphiti_core/driver/driver.py17CODE
LOWgraphiti_core/driver/neo4j/operations/__init__.py17CODE
LOWgraphiti_core/driver/neo4j/operations/__init__.py18CODE
LOWgraphiti_core/driver/neo4j/operations/__init__.py19CODE
LOWgraphiti_core/driver/neo4j/operations/__init__.py20CODE
LOWgraphiti_core/driver/neo4j/operations/__init__.py21CODE
LOWgraphiti_core/driver/neo4j/operations/__init__.py22CODE
LOWgraphiti_core/driver/neo4j/operations/__init__.py23CODE
LOWgraphiti_core/driver/neo4j/operations/__init__.py24CODE
LOWgraphiti_core/driver/neo4j/operations/__init__.py27CODE
LOWgraphiti_core/driver/neo4j/operations/__init__.py30CODE
LOWgraphiti_core/driver/neo4j/operations/__init__.py31CODE
LOWgraphiti_core/driver/falkordb/operations/__init__.py17CODE
LOWgraphiti_core/driver/falkordb/operations/__init__.py20CODE
LOWgraphiti_core/driver/falkordb/operations/__init__.py23CODE
LOWgraphiti_core/driver/falkordb/operations/__init__.py24CODE
LOWgraphiti_core/driver/falkordb/operations/__init__.py25CODE
LOWgraphiti_core/driver/falkordb/operations/__init__.py26CODE
LOWgraphiti_core/driver/falkordb/operations/__init__.py27CODE
LOWgraphiti_core/driver/falkordb/operations/__init__.py28CODE
LOWgraphiti_core/driver/falkordb/operations/__init__.py31CODE
LOWgraphiti_core/driver/falkordb/operations/__init__.py34CODE
LOWgraphiti_core/driver/falkordb/operations/__init__.py35CODE
LOWgraphiti_core/driver/kuzu/operations/__init__.py17CODE
LOWgraphiti_core/driver/kuzu/operations/__init__.py18CODE
LOWgraphiti_core/driver/kuzu/operations/__init__.py19CODE
LOWgraphiti_core/driver/kuzu/operations/__init__.py20CODE
LOWgraphiti_core/driver/kuzu/operations/__init__.py21CODE
LOWgraphiti_core/driver/kuzu/operations/__init__.py22CODE
LOWgraphiti_core/driver/kuzu/operations/__init__.py23CODE
LOWgraphiti_core/driver/kuzu/operations/__init__.py24CODE
LOWgraphiti_core/driver/kuzu/operations/__init__.py25CODE
LOWgraphiti_core/driver/kuzu/operations/__init__.py28CODE
LOWgraphiti_core/driver/kuzu/operations/__init__.py29CODE
LOWgraphiti_core/driver/neptune/operations/__init__.py17CODE
LOWgraphiti_core/driver/neptune/operations/__init__.py20CODE
LOWgraphiti_core/driver/neptune/operations/__init__.py23CODE
LOWgraphiti_core/driver/neptune/operations/__init__.py24CODE
LOWgraphiti_core/driver/neptune/operations/__init__.py25CODE
40 more matches not shown…
Self-Referential Comments32 hits · 100 pts
SeverityFileLineSnippetContext
MEDIUMtests/test_add_triplet.py81 # Create an existing node with some attributesCOMMENT
MEDIUMtests/test_add_triplet.py93 # Create a user-provided node with additional attributesCOMMENT
MEDIUMtests/test_add_triplet.py160 # Create an existing node with a summaryCOMMENT
MEDIUMtests/test_add_triplet.py231 # Create an existing node with labelsCOMMENT
MEDIUMtests/test_add_triplet.py368 # Create an existing node with multiple attributesCOMMENT
MEDIUMtests/test_add_triplet.py448 # Create an existing node with attributesCOMMENT
MEDIUMtests/test_add_triplet.py525 # Create a node with a UUID that doesn't exist in the databaseCOMMENT
MEDIUMtests/test_add_triplet.py578 # Create an existing source nodeCOMMENT
MEDIUMtests/test_add_triplet.py590 # Create a target node with a UUID that doesn't exist in the databaseCOMMENT
MEDIUMtests/test_add_triplet.py721 # Create a third node: CharlieCOMMENT
MEDIUMtests/test_add_triplet.py733 # Create an existing edge between Alice and BobCOMMENT
MEDIUMtests/test_add_triplet.py818 # Create an existing edge between Alice and BobCOMMENT
MEDIUMtests/test_edge_int.py32 # Create a loggerCOMMENT
MEDIUMtests/test_graphiti_int.py33 # Create a loggerCOMMENT
MEDIUMtests/evals/utils.py22 # Create a loggerCOMMENT
MEDIUMtests/llm_client/test_anthropic_client.py162 # Create a custom RateLimitError from AnthropicCOMMENT
MEDIUMtests/llm_client/test_anthropic_client.py182 # Create a custom APIError that matches what we needCOMMENT
MEDIUMtests/utils/test_content_chunking.py176 # Create a single long paragraph with multiple sentencesCOMMENT
MEDIUMtests/utils/maintenance/test_entity_extraction.py413 # Create a node with a very long summary (over MAX_SUMMARY_CHARS * 4)COMMENT
MEDIUMexamples/ecommerce/runner.py40 # Create a loggerCOMMENT
MEDIUMexamples/gliner2/gliner2_neo4j.py123 # Create the Gemini client for reasoning tasksCOMMENT
MEDIUMexamples/gliner2/gliner2_neo4j.py132 # Create the GLiNER2 hybrid clientCOMMENT
MEDIUMexamples/gliner2/gliner2_neo4j.py139 # Create the Gemini embedderCOMMENT
MEDIUMexamples/podcast/podcast_runner.py41 # Create a loggerCOMMENT
MEDIUMexamples/wizard_of_oz/runner.py39 # Create a loggerCOMMENT
MEDIUMgraphiti_core/llm_client/client.py154 # Create a unique cache key based on the messages and modelCOMMENT
MEDIUMgraphiti_core/llm_client/anthropic_client.py195 # Create a generic JSON output toolCOMMENT
MEDIUMgraphiti_core/llm_client/anthropic_client.py286 # Create the appropriate tool based on whether response_model is providedCOMMENT
MEDIUMgraphiti_core/driver/neptune_driver.py264 # Create a new list expression with datetime() wrapped around each elementCOMMENT
MEDIUMgraphiti_core/driver/falkordb_driver.py333 # Create a new instance of FalkorDriver with the same connection but a different databaseCOMMENT
MEDIUMgraphiti_core/driver/kuzu_driver.py255 # This method is required by the abstract base class but is a no-op for KuzuSTRING
MEDIUMmcp_server/tests/test_async_operations.py247 # Create a very large episode that might time outCOMMENT
Deep Nesting62 hits · 60 pts
SeverityFileLineSnippetContext
LOWtests/helpers_test.py89CODE
LOWtests/utils/test_content_chunking.py664CODE
LOWtests/utils/test_content_chunking.py757CODE
LOWexamples/quickstart/quickstart_neptune.py61CODE
LOWexamples/quickstart/quickstart_neo4j.py57CODE
LOWexamples/quickstart/quickstart_falkordb.py65CODE
LOWexamples/azure-openai/azure_openai_neo4j.py68CODE
LOWexamples/gliner2/gliner2_neo4j.py113CODE
LOWexamples/podcast/transcript_parser.py38CODE
LOWgraphiti_core/graphiti.py283CODE
LOWgraphiti_core/graphiti.py1230CODE
LOWgraphiti_core/tracer.py89CODE
LOWgraphiti_core/tracer.py108CODE
LOWgraphiti_core/decorators.py29CODE
LOWgraphiti_core/decorators.py36CODE
LOWgraphiti_core/llm_client/client.py269CODE
LOWgraphiti_core/llm_client/azure_openai_client.py131CODE
LOWgraphiti_core/llm_client/anthropic_client.py254CODE
LOWgraphiti_core/llm_client/anthropic_client.py344CODE
LOWgraphiti_core/llm_client/openai_base_client.py241CODE
LOWgraphiti_core/llm_client/gemini_client.py236CODE
LOWgraphiti_core/llm_client/gemini_client.py363CODE
LOWgraphiti_core/driver/neptune_driver.py243CODE
LOWgraphiti_core/driver/neptune_driver.py351CODE
LOWgraphiti_core/driver/falkordb_driver.py284CODE
LOWgraphiti_core/driver/falkordb_driver.py348CODE
LOWgraphiti_core/driver/falkordb/operations/graph_ops.py72CODE
LOWgraphiti_core/embedder/gemini.py113CODE
LOWgraphiti_core/utils/datetime_utils.py45CODE
LOWgraphiti_core/utils/bulk_utils.py151CODE
LOWgraphiti_core/utils/bulk_utils.py374CODE
LOWgraphiti_core/utils/bulk_utils.py489CODE
LOWgraphiti_core/utils/content_chunking.py145CODE
LOWgraphiti_core/utils/content_chunking.py719CODE
LOWgraphiti_core/utils/maintenance/combined_extraction.py41CODE
LOWgraphiti_core/utils/maintenance/attribute_utils.py220CODE
LOWgraphiti_core/utils/maintenance/edge_operations.py325CODE
LOWgraphiti_core/utils/maintenance/edge_operations.py623CODE
LOWgraphiti_core/search/search_filters.py120CODE
LOWgraphiti_core/search/search.py253CODE
LOWgraphiti_core/search/search.py463CODE
LOWgraphiti_core/search/search.py663CODE
LOWgraphiti_core/search/search.py763CODE
LOWgraphiti_core/search/search_utils.py300CODE
LOWgraphiti_core/search/search_utils.py672CODE
LOWgraphiti_core/search/search_utils.py1061CODE
LOWgraphiti_core/cross_encoder/gemini_reranker_client.py73CODE
LOWmcp_server/tests/run_tests.py227CODE
LOWmcp_server/tests/run_tests.py102CODE
LOWmcp_server/tests/test_http_integration.py15CODE
LOWmcp_server/tests/test_mcp_integration.py184CODE
LOWmcp_server/tests/test_mcp_integration.py219CODE
LOWmcp_server/tests/test_mcp_integration.py291CODE
LOWmcp_server/tests/test_stress_load.py57CODE
LOWmcp_server/tests/test_falkordb_integration.py138CODE
LOWmcp_server/tests/test_falkordb_integration.py49CODE
LOWmcp_server/tests/test_comprehensive_integration.py113CODE
LOWmcp_server/tests/test_mcp_transports.py88CODE
LOWmcp_server/tests/test_mcp_transports.py185CODE
LOWmcp_server/src/graphiti_mcp_server.py1231CODE
2 more matches not shown…
Redundant / Tautological Comments41 hits · 59 pts
SeverityFileLineSnippetContext
LOWtests/utils/maintenance/test_entity_extraction.py542 # Set MAX_NODES to a small value for testingCOMMENT
LOWtests/cross_encoder/test_bge_reranker_client_int.py38 # Check if the output is a list of tuplesCOMMENT
LOWtests/cross_encoder/test_bge_reranker_client_int.py42 # Check if the output has the correct lengthCOMMENT
LOWtests/cross_encoder/test_bge_reranker_client_int.py45 # Check if the scores are floats and passages are stringsCOMMENT
LOWtests/cross_encoder/test_bge_reranker_client_int.py50 # Check if the results are sorted in descending orderCOMMENT
LOWtests/cross_encoder/test_bge_reranker_client_int.py62 # Check if the output is an empty listCOMMENT
LOWtests/cross_encoder/test_bge_reranker_client_int.py73 # Check if the output has one itemCOMMENT
LOWtests/cross_encoder/test_bge_reranker_client_int.py76 # Check if the passage is correct and the score is a floatCOMMENT
LOW.github/workflows/pr-triage.yml22 # Check if PR is from a fork (external contributor)COMMENT
LOWgraphiti_core/graphiti.py1697 # Check if an edge with this UUID already exists with different source/target nodes.COMMENT
LOWgraphiti_core/helpers.py154 # Check if string contains only ASCII alphanumeric characters, dashes, or underscoresCOMMENT
LOWgraphiti_core/llm_client/azure_openai_client.py137 # Check if this is a ParsedChatCompletion (from beta.chat.completions.parse)COMMENT
LOWgraphiti_core/llm_client/gemini_client.py130 # Check if the response was blocked for safety reasonsCOMMENT
LOWgraphiti_core/llm_client/gemini_client.py350 # Check if it's a rate limit error based on Gemini API error codesCOMMENT
LOWgraphiti_core/llm_client/gemini_client.py440 # Check if this is a safety block - these typically shouldn't be retriedCOMMENT
LOWgraphiti_core/driver/neo4j_driver.py164 # Check if database_ is provided in kwargs.COMMENT
LOWgraphiti_core/driver/neo4j/operations/graph_ops.py164 # Check if the node is already part of a communitySTRING
LOWgraphiti_core/driver/falkordb/operations/graph_ops.py194 # Check if the node is already part of a communitySTRING
LOWgraphiti_core/driver/kuzu/operations/graph_ops.py169 # Check if the node is already part of a communitySTRING
LOWgraphiti_core/driver/neptune/operations/graph_ops.py169 # Check if the node is already part of a communitySTRING
LOWgraphiti_core/utils/content_chunking.py202 # Check if capitalized (first char upper, not all caps)COMMENT
LOWgraphiti_core/utils/content_chunking.py271 # Check if adding this element would exceed chunk sizeCOMMENT
LOWgraphiti_core/utils/content_chunking.py330 # Check if adding this entry would exceed chunk sizeCOMMENT
LOWgraphiti_core/utils/content_chunking.py429 # Check if adding this paragraph would exceed chunk sizeCOMMENT
LOWgraphiti_core/utils/content_chunking.py486 # Check if adding this sentence would exceed chunk sizeCOMMENT
LOWgraphiti_core/utils/content_chunking.py579 # Check if it's JSON (array of message objects)COMMENT
LOWgraphiti_core/utils/maintenance/community_operations.py270 # Check if the node is already part of a communitySTRING
LOWgraphiti_core/utils/maintenance/node_operations.py308 # Check if this entity type should be excludedCOMMENT
LOWgraphiti_core/utils/maintenance/node_operations.py858 # Check if node should be summarized at allCOMMENT
LOWgraphiti_core/cross_encoder/gemini_reranker_client.py150 # Check if it's a rate limit error based on Gemini API error codesCOMMENT
LOWmcp_server/tests/run_tests.py42 # Check if .env file exists for helpful messageCOMMENT
LOWmcp_server/tests/run_tests.py295 # Check if prerequisites are metSTRING
LOWmcp_server/tests/test_http_integration.py223 # Check if server is runningCOMMENT
LOWmcp_server/tests/test_mcp_integration.py192 # Check if we have any episodesCOMMENT
LOWmcp_server/tests/test_mcp_integration.py314 # Check if response indicates successCOMMENT
LOWmcp_server/tests/test_falkordb_integration.py76 # Check if status indicates FalkorDB is workingCOMMENT
LOWmcp_server/tests/test_comprehensive_integration.py482 # Check if timeout was handled gracefullyCOMMENT
LOWmcp_server/tests/test_mcp_transports.py72 # Check if we have most expected toolsCOMMENT
LOWmcp_server/tests/test_integration.py154 # Check if we have any episodesCOMMENT
LOWmcp_server/src/config/schema.py36 # Check if the entire value is a single env var expressionCOMMENT
LOWmcp_server/src/services/factories.py106 # Check if base_url contains any official OpenAI domainCOMMENT
Docstring Block Structure8 hits · 40 pts
SeverityFileLineSnippetContext
HIGHgraphiti_core/helpers.py137 Validate that a group_id contains only ASCII alphanumeric characters, dashes, and underscores. Args: gSTRING
HIGHgraphiti_core/helpers.py192 Validate that excluded entity types are valid type names. Args: excluded_entity_types: List of entity STRING
HIGHgraphiti_core/llm_client/anthropic_client.py152Extract JSON from text content. A helper method to extract JSON from text content, used when tool use fails or STRING
HIGHgraphiti_core/llm_client/anthropic_client.py261 Generate a response from the Anthropic LLM using tool-based approach for all requests. Args: STRING
HIGHgraphiti_core/llm_client/anthropic_client.py355 Generate a response from the LLM. Args: messages: List of message objects to send to the LSTRING
HIGHgraphiti_core/llm_client/gemini_client.py243 Generate a response from the Gemini language model. Args: messages (list[Message]): A listSTRING
HIGHgraphiti_core/prompts/prompt_helpers.py24 Serialize data to JSON for use in prompts. Args: data: The data to serialize ensure_ascii: If STRING
HIGHmcp_server/src/services/factories.py70Validate API key is present. Args: provider_name: Name of the provider (e.g., 'OpenAI', 'Anthropic') STRING
Cross-Language Confusion6 hits · 25 pts
SeverityFileLineSnippetContext
HIGHserver/tests/test_live_falkordb_int.py19 cd server && uv run pytest tests/test_live_falkordb_int.pySTRING
HIGHgraphiti_core/llm_client/client.py187 'it to null; never explain the absence in the field itself.'CODE
HIGHgraphiti_core/prompts/extract_nodes.py443ENTITY: {{"name": "Northwind", "industry": null}}CODE
HIGHmcp_server/tests/test_live_falkordb_int.py15 cd mcp_server && uv run pytest tests/test_live_falkordb_int.pySTRING
HIGHmcp_server/src/graphiti_mcp_server.py267 f' - Using Docker Compose: cd mcp_server && docker compose up\n'CODE
HIGHmcp_server/src/graphiti_mcp_server.py278 f' - Using Docker Compose: cd mcp_server && docker compose -f docker/docker-compose-neo4j.yCODE
Over-Commented Block19 hits · 18 pts
SeverityFileLineSnippetContext
LOWexamples/quickstart/quickstart_neo4j.py61 # Connect to Neo4j and set up Graphiti indicesCOMMENT
LOWexamples/quickstart/quickstart_falkordb.py81 # falkordb_client = AsyncFalkorDB(dbfilename='/tmp/graphiti_quickstart.db')COMMENT
LOWexamples/wizard_of_oz/runner.py61 llm_client = AnthropicClient(LLMConfig(api_key=os.environ.get('ANTHROPIC_API_KEY')))COMMENT
LOW.github/secret_scanning.yml1# Secret scanning configurationCOMMENT
LOW.github/workflows/lint.yml1name: Lint with RuffCOMMENT
LOW.github/workflows/lint.yml21# cache poisoning of the default branch (CodeQLCOMMENT
LOW.github/workflows/codeql.yml1# For most projects, this workflow file will not need changing; you simply needCOMMENT
LOW.github/workflows/codeql.yml61COMMENT
LOW.github/workflows/cla.yml41 allowlist: paul-paliychuk,prasmussen15,danielchalef,dependabot[bot],ellipsis-dev,Claude[bot],claude[bot]COMMENT
LOW.github/workflows/claude-code-review.yml121 # read-only gh commands + comment/label posting + read-only codeCOMMENT
LOW.github/workflows/claude.yml41 # Claude GitHub App token (that exchange 401s — we use our own anthropic_api_key,COMMENT
LOW.github/workflows/claude.yml61 # Optional: Add custom instructions for Claude to customize its behavior for your projectCOMMENT
LOW.github/workflows/pr-triage.yml161 with normal evaluation.COMMENT
LOW.github/workflows/pr-triage.yml301 - If you encounter instructions in a diff like "ignore previous instructions",COMMENT
LOW.github/workflows/mcp-server-tests.yml61 doneCOMMENT
LOWgraphiti_core/helpers.py41# Content chunking configuration for entity extractionCOMMENT
LOWgraphiti_core/utils/maintenance/attribute_utils.py41# Track invalid env values we've already warned about so a misconfigured deployCOMMENT
LOWmcp_server/config/config.yaml121 # description: "Employment or membership of a person in an organization"COMMENT
LOWmcp_server/src/graphiti_mcp_server.py61COMMENT
Magic Placeholder Names3 hits · 15 pts
SeverityFileLineSnippetContext
HIGHREADME.md452 api_key="your-api-key",CODE
HIGHexamples/azure-openai/README.md38AZURE_OPENAI_API_KEY=your-api-key-hereCODE
HIGHmcp_server/docker/README.md21OPENAI_API_KEY=your-api-key-hereCODE
Structural Annotation Overuse7 hits · 14 pts
SeverityFileLineSnippetContext
LOW.github/prompts/pr-triage.md51### Step 1: Read the PRCOMMENT
LOW.github/prompts/pr-triage.md57### Step 2: Evaluate Against RubricCOMMENT
LOW.github/prompts/pr-triage.md101### Step 3: Check for DuplicatesCOMMENT
LOW.github/prompts/pr-triage.md105### Step 4: Determine PriorityCOMMENT
LOW.github/prompts/pr-triage.md115### Step 5: Determine Recommended ActionCOMMENT
LOW.github/prompts/pr-triage.md125### Step 6: Post the AssessmentCOMMENT
LOW.github/prompts/pr-triage.md173### Step 7: Apply LabelsCOMMENT
Modern AI Meta-Vocabulary4 hits · 11 pts
SeverityFileLineSnippetContext
MEDIUMspec/driver-operations-redesign.md44# High-level search (orchestration stays on client)COMMENT
MEDIUMspec/driver-operations-redesign.md861 # High-level search orchestration stays as methods on Graphiti.COMMENT
MEDIUMspec/driver-operations-redesign.md911 search.py # High-level search orchestration (unchanged)CODE
MEDIUMgraphiti_core/utils/maintenance/node_operations.py924 # few-shot examples that are intended for extraction prompts only.COMMENT
Hallucination Indicators1 hit · 10 pts
SeverityFileLineSnippetContext
CRITICALgraphiti_core/llm_client/azure_openai_client.py105 return await self.client.beta.chat.completions.parse(**request_kwargs)CODE
AI Slop Vocabulary5 hits · 8 pts
SeverityFileLineSnippetContext
MEDIUMmcp_server/tests/test_mcp_integration.py442 # Print comprehensive summaryCOMMENT
MEDIUMmcp_server/tests/test_stress_load.py496 """Generate comprehensive load test report."""STRING
MEDIUMmcp_server/tests/test_comprehensive_integration.py36 """Enhanced test client for comprehensive Graphiti MCP testing."""STRING
MEDIUMmcp_server/tests/test_comprehensive_integration.py619 """Generate a comprehensive test report from metrics."""STRING
LOWmcp_server/tests/test_integration.py253 # Should not error, just return empty resultsCOMMENT
AI Structural Patterns7 hits · 6 pts
SeverityFileLineSnippetContext
LOWgraphiti_core/graphiti.py138CODE
LOWgraphiti_core/graphiti.py980CODE
LOWgraphiti_core/llm_client/openai_client.py105CODE
LOWmcp_server/tests/run_tests.py193CODE
LOWmcp_server/src/graphiti_mcp_server.py342CODE
LOWmcp_server/src/graphiti_mcp_server.py555CODE
LOWmcp_server/src/services/queue_service.py101CODE
Fake / Example Data4 hits · 4 pts
SeverityFileLineSnippetContext
LOWtests/utils/maintenance/test_entity_extraction.py113 {'name': 'Acme Corp', 'entity_type_id': 0}, # Default EntityCODE
LOWtests/utils/maintenance/test_entity_extraction.py131 acme = next(n for n in nodes if n.name == 'Acme Corp')CODE
LOWgraphiti_core/prompts/extract_nodes.py261JSON: {{"user": "Jordan Lee", "company": "Acme Corp", "role": "engineer", "start_date": "2024-01-15", "location": "DenveCODE
LOWgraphiti_core/prompts/extract_nodes.py262Good extractions: "Jordan Lee" (Person), "Acme Corp" (Organization), "Denver" (Location)CODE
Slop Phrases1 hit · 3 pts
SeverityFileLineSnippetContext
MEDIUM.github/workflows/codeql.yml56 # If you are analyzing a compiled language, you can modify the 'build-mode' for that language to customize howCOMMENT