Repository Analysis

Canner/WrenAI

GenBI (Generative BI) for AI agents, an open-source, governed text-to-SQL through an open context layer that turns natural-language questions into trusted dashboards, charts, and SQL across 20+ data sources, such as BigQuery, Snowflake, PostgreSQL, ClickHouse, Amazon Redshift, Databricks and more.

30.6 Strong AI signal View on GitHub

Analysis Overview

This report presents the forensic synthetic code analysis of Canner/WrenAI, a Python project with 15,804 GitHub stars. SynthScan v2.0 examined 98,688 lines of code across 551 source files, recording 1932 pattern matches distributed across 16 syntactic categories. The overall adjusted score of 30.6 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).

30.6
Adjusted Score
30.6
Raw Score
100%
Time Factor
2026-07-14
Last Push
15.8K
Stars
Python
Language
98.7K
Lines of Code
551
Files
1.9K
Pattern Hits
2026-07-14
Scan Date
0.02
HC Hit Rate

What These Metrics Mean

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

Score History

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

Severity Breakdown

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

CRITICAL 0HIGH 13MEDIUM 388LOW 1531

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 1932 distinct pattern matches across 16 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a statistically significant AI authorship indicator. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.

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

Decorative Section Separators375 hits · 1340 pts
SeverityFileLineSnippetContext
MEDIUMcore/wren-core-wasm/examples/csv-quickstart.html146 // ── 1. Standard CSV with inferred schema ─────────────────────────COMMENT
MEDIUMcore/wren-core-wasm/examples/csv-quickstart.html151 // ── 2. TSV: tab delimiter ────────────────────────────────────────COMMENT
MEDIUMcore/wren-core-wasm/examples/csv-quickstart.html156 // ── 3. Headerless CSV with explicit Arrow schema ────────────────COMMENT
MEDIUMcore/wren-core-wasm/src/lib.rs1114 // ── register_csv ────────────────────────────────────────────────────────COMMENT
MEDIUMcore/wren/tests/test_profile_web.py33# ── GET / ──────────────────────────────────────────────────────────────────────COMMENT
MEDIUMcore/wren/tests/test_profile_web.py58# ── GET /fields ────────────────────────────────────────────────────────────────COMMENT
MEDIUMcore/wren/tests/test_profile_web.py146# ── POST /save ─────────────────────────────────────────────────────────────────COMMENT
MEDIUMcore/wren/tests/test_profile.py85# ── Sensitive field masking ───────────────────────────────────────────────────COMMENT
MEDIUMcore/wren/tests/test_profile.py118# ── resolve_connection ────────────────────────────────────────────────────────COMMENT
MEDIUMcore/wren/tests/test_profile.py277# ── from-file import helpers (used by CLI) ────────────────────────────────────COMMENT
MEDIUMcore/wren/tests/test_profile.py23# ── CRUD ──────────────────────────────────────────────────────────────────────COMMENT
MEDIUMcore/wren/tests/test_profile.py148# ── resolve_profile_for_project ───────────────────────────────────────────────COMMENT
MEDIUMcore/wren/tests/test_profile.py236# ── Round-trip persistence ────────────────────────────────────────────────────COMMENT
MEDIUMcore/wren/tests/test_profile_cli.py63# ── add ───────────────────────────────────────────────────────────────────────COMMENT
MEDIUMcore/wren/tests/test_profile_cli.py190# ── import dbt ────────────────────────────────────────────────────────────────COMMENT
MEDIUMcore/wren/tests/test_profile_cli.py434# ── add --validate ────────────────────────────────────────────────────────────COMMENT
MEDIUMcore/wren/tests/test_profile_cli.py35# ── list ──────────────────────────────────────────────────────────────────────COMMENT
MEDIUMcore/wren/tests/test_profile_cli.py357# ── switch ────────────────────────────────────────────────────────────────────COMMENT
MEDIUMcore/wren/tests/test_profile_cli.py381# ── rm ────────────────────────────────────────────────────────────────────────COMMENT
MEDIUMcore/wren/tests/test_profile_cli.py398# ── debug ─────────────────────────────────────────────────────────────────────COMMENT
MEDIUMcore/wren/tests/connectors/test_canner.py82# ── helper-level unit tests ───────────────────────────────────────────────STRING
MEDIUMcore/wren/tests/connectors/test_canner.py203# ── end-to-end testcontainer test ─────────────────────────────────────────STRING
MEDIUMcore/wren/tests/connectors/test_trino.py35# ---------------------------------------------------------------------------COMMENT
MEDIUMcore/wren/tests/connectors/test_trino.py37# ---------------------------------------------------------------------------COMMENT
MEDIUMcore/wren/tests/connectors/test_trino.py104 # ------------------------------------------------------------------COMMENT
MEDIUMcore/wren/tests/connectors/test_trino.py107 # ------------------------------------------------------------------COMMENT
MEDIUMcore/wren/tests/connectors/test_mssql.py140# ----------------------------------------------------------------------STRING
MEDIUMcore/wren/tests/connectors/test_mssql.py142# ----------------------------------------------------------------------STRING
MEDIUMcore/wren/tests/connectors/test_postgres.py93# ---------------------------------------------------------------------------STRING
MEDIUMcore/wren/tests/connectors/test_postgres.py95# ---------------------------------------------------------------------------STRING
MEDIUMcore/wren/tests/connectors/test_postgres.py255# ---------------------------------------------------------------------------COMMENT
MEDIUMcore/wren/tests/connectors/test_postgres.py262# ---------------------------------------------------------------------------COMMENT
MEDIUMcore/wren/tests/unit/test_osi.py102# ── Unit: WREN block extraction ───────────────────────────────────────────COMMENT
MEDIUMcore/wren/tests/unit/test_osi.py138# ── Unit: extract_wren_config — precedence ────────────────────────────────COMMENT
MEDIUMcore/wren/tests/unit/test_osi.py178# ── Unit: _parse_source ───────────────────────────────────────────────────COMMENT
MEDIUMcore/wren/tests/unit/test_osi.py216# ── Unit: _pick_expression ────────────────────────────────────────────────COMMENT
MEDIUMcore/wren/tests/unit/test_osi.py277# ── Unit: _is_calculated_expression ───────────────────────────────────────COMMENT
MEDIUMcore/wren/tests/unit/test_osi.py295# ── Integration: build_manifest_from_osi on minimal fixture ──────────────COMMENT
MEDIUMcore/wren/tests/unit/test_osi.py369# ── Integration: build_json_from_osi (camelCase + layoutVersion) ──────────COMMENT
MEDIUMcore/wren/tests/unit/test_osi.py396# ── Integration: TPC-DS full fixture (exercises every warning path) ───────COMMENT
MEDIUMcore/wren/tests/unit/test_osi.py465# ── Integration: ref_sql source detection ────────────────────────────────COMMENT
MEDIUMcore/wren/tests/unit/test_osi.py481# ── Integration: multi semantic_model requires selection ──────────────────COMMENT
MEDIUMcore/wren/tests/unit/test_osi.py504# ── Integration: lint_osi_file ─────────────────────────────────────────────COMMENT
MEDIUMcore/wren/tests/unit/test_osi.py525# ── Regression: malformed inputs surface as ValidationError ──────────────COMMENT
MEDIUMcore/wren/tests/unit/test_osi.py25# ── Fixtures ──────────────────────────────────────────────────────────────COMMENT
MEDIUMcore/wren/tests/unit/test_osi.py34# ── Unit: parse_osi / select_semantic_model ───────────────────────────────COMMENT
MEDIUMcore/wren/tests/unit/test_osi.py600# ── CLI integration ──────────────────────────────────────────────────────COMMENT
MEDIUMcore/wren/tests/unit/test_osi.py775# ── CLI: init --from-osi (one-way migration) ─────────────────────────────COMMENT
MEDIUMcore/wren/tests/unit/test_skills_cli.py58# ── Ticket 1b: all bundled skills + --full + --script ───────────────────────COMMENT
MEDIUMcore/wren/tests/unit/test_engine.py69# ------------------------------------------------------------------COMMENT
MEDIUMcore/wren/tests/unit/test_engine.py71# ------------------------------------------------------------------COMMENT
MEDIUMcore/wren/tests/unit/test_engine.py100# ------------------------------------------------------------------COMMENT
MEDIUMcore/wren/tests/unit/test_engine.py102# ------------------------------------------------------------------COMMENT
MEDIUMcore/wren/tests/unit/test_engine.py114# ------------------------------------------------------------------COMMENT
MEDIUMcore/wren/tests/unit/test_engine.py116# ------------------------------------------------------------------COMMENT
MEDIUMcore/wren/tests/unit/test_genbi_deploy.py55# ── TokenResolver ──────────────────────────────────────────────────────────COMMENT
MEDIUMcore/wren/tests/unit/test_genbi_deploy.py78# ── Vercel deploy ──────────────────────────────────────────────────────────COMMENT
MEDIUMcore/wren/tests/unit/test_genbi_deploy.py206# ── Cloudflare deploy (shells out to wrangler) ──────────────────────────────COMMENT
MEDIUMcore/wren/tests/unit/test_genbi_deploy.py370# ── Never fabricate a deployment URL ────────────────────────────────────────COMMENT
MEDIUMcore/wren/tests/unit/test_genbi_build.py17# ── Helpers ────────────────────────────────────────────────────────────────COMMENT
315 more matches not shown…
Hyper-Verbose Identifiers1149 hits · 1191 pts
SeverityFileLineSnippetContext
LOWcore/wren-core-py/tests/test_modeling_core.py157def test_get_available_functions():CODE
LOWcore/wren-core-py/tests/test_modeling_core.py227def test_extractor_with_invalid_manifest(value, expected_error, error_message):CODE
LOWcore/wren-core-py/tests/test_modeling_core.py247def test_resolve_used_table_names(sql, expected):CODE
LOWcore/wren-core-py/tests/test_modeling_core.py451def test_backward_compatible_check():CODE
LOWcore/wren-core-py/tests/test_modeling_core.py556def test_case_sensitive_without_quote():CODE
LOWcore/wren-core-py/tests/test_modeling_core.py595def test_concurrent_calls_from_threads():CODE
LOWcore/wren-core-py/tests/test_cube.py75def test_time_dimension_with_date_range():CODE
LOWcore/wren-core-py/tests/test_cube.py128def test_unknown_measure_error():CODE
LOWcore/wren-core-py/tests/test_cube.py134def test_invalid_cube_query_json():CODE
LOWcore/wren-core-py/tests/test_cube.py139def test_invalid_manifest_json():CODE
LOWcore/wren/tests/test_profile_web.py43def test_form_contains_datasource_options(client):CODE
LOWcore/wren/tests/test_profile_web.py52def test_form_has_save_button(client):CODE
LOWcore/wren/tests/test_profile_web.py61def test_fields_endpoint_postgres(client):CODE
LOWcore/wren/tests/test_profile_web.py72def test_fields_endpoint_password_type(client):CODE
LOWcore/wren/tests/test_profile_web.py78def test_fields_endpoint_bigquery_file_input(client):CODE
LOWcore/wren/tests/test_profile_web.py88def test_fields_with_variant_bigquery_project(client):CODE
LOWcore/wren/tests/test_profile_web.py95def test_fields_with_variant_bigquery_dataset(client):CODE
LOWcore/wren/tests/test_profile_web.py103def test_fields_variant_selector_rendered(client):CODE
LOWcore/wren/tests/test_profile_web.py112def test_fields_no_variant_selector_for_postgres(client):CODE
LOWcore/wren/tests/test_profile_web.py118def test_fields_empty_datasource_returns_empty(client):CODE
LOWcore/wren/tests/test_profile_web.py125def test_fields_duckdb_url_label(client):CODE
LOWcore/wren/tests/test_profile_web.py131def test_fields_duckdb_format_hidden(client):CODE
LOWcore/wren/tests/test_profile_web.py138def test_fields_snowflake_schema_label(client):CODE
LOWcore/wren/tests/test_profile_web.py149def test_save_creates_profile(isolated_profiles):CODE
LOWcore/wren/tests/test_profile_web.py175def test_save_populates_result_dict(isolated_profiles):CODE
LOWcore/wren/tests/test_profile_web.py187def test_save_missing_datasource(client):CODE
LOWcore/wren/tests/test_profile_web.py195def test_save_with_json_fallback(isolated_profiles):CODE
LOWcore/wren/tests/test_profile_web.py217def test_save_invalid_json_returns_error(client):CODE
LOWcore/wren/tests/test_profile_web.py255def test_save_skips_empty_fields(isolated_profiles):CODE
LOWcore/wren/tests/test_cli_memory_detection.py32def test_import_cli_does_not_pull_heavy_ml_stack():CODE
LOWcore/wren/tests/test_cli_memory_detection.py40def test_memory_subcommand_registered_when_extra_present():CODE
LOWcore/wren/tests/test_cli_memory_detection.py47def test_memory_subcommand_always_registered():CODE
LOWcore/wren/tests/test_field_registry.py28def test_get_datasource_options_sorted():CODE
LOWcore/wren/tests/test_field_registry.py36def test_get_fields_returns_field_defs():CODE
LOWcore/wren/tests/test_field_registry.py43def test_get_fields_postgres_names():CODE
LOWcore/wren/tests/test_field_registry.py61def test_auto_derive_password():CODE
LOWcore/wren/tests/test_field_registry.py71def test_auto_derive_placeholder_from_examples():CODE
LOWcore/wren/tests/test_field_registry.py79def test_ui_override_bigquery_credentials():CODE
LOWcore/wren/tests/test_field_registry.py89def test_datasource_override_duckdb_url():CODE
LOWcore/wren/tests/test_field_registry.py97def test_datasource_override_duckdb_format_hidden():CODE
LOWcore/wren/tests/test_field_registry.py105def test_datasource_override_local_file_url():CODE
LOWcore/wren/tests/test_field_registry.py135def test_get_fields_bigquery_default_variant():CODE
LOWcore/wren/tests/test_field_registry.py145def test_get_fields_bigquery_project_variant():CODE
LOWcore/wren/tests/test_field_registry.py153def test_no_missing_overrides_sf_schema():CODE
LOWcore/wren/tests/test_field_registry.py160def test_no_missing_overrides_trino_schema():CODE
LOWcore/wren/tests/test_field_registry.py167def test_snowflake_sf_schema_alias():CODE
LOWcore/wren/tests/test_field_registry.py173def test_hidden_discriminator_fields():CODE
LOWcore/wren/tests/test_field_registry.py197def test_fields_match_mcp_web_ui_postgres():CODE
LOWcore/wren/tests/test_field_registry.py204def test_fields_match_mcp_web_ui_snowflake():CODE
LOWcore/wren/tests/test_field_registry.py211def test_fields_match_mcp_web_ui_bigquery():CODE
LOWcore/wren/tests/test_field_registry.py218def test_unknown_datasource_raises():CODE
LOWcore/wren/tests/test_field_registry.py16def test_all_datasources_covered():CODE
LOWcore/wren/tests/test_field_registry.py184def test_databricks_catalog_field_is_optional():CODE
LOWcore/wren/tests/test_field_registry.py232def test_dict_fields_excluded():CODE
LOWcore/wren/tests/test_field_registry.py247def test_get_fields_all_datasources():CODE
LOWcore/wren/tests/test_field_registry.py255def test_get_fields_all_variants():CODE
LOWcore/wren/tests/test_profile.py79def test_remove_last_profile_clears_active():CODE
LOWcore/wren/tests/test_profile.py88def test_debug_masks_sensitive():CODE
LOWcore/wren/tests/test_profile.py108def test_debug_no_active_profile():CODE
LOWcore/wren/tests/test_profile.py113def test_debug_unknown_profile():CODE
1089 more matches not shown…
Unused Imports162 hits · 150 pts
SeverityFileLineSnippetContext
LOWevals/spodbtify_ab/run_eval.py9CODE
LOWcore/wren/tests/test_profile_web.py3CODE
LOWcore/wren/tests/test_cli_memory_detection.py4CODE
LOWcore/wren/tests/test_field_registry.py3CODE
LOWcore/wren/tests/test_profile.py3CODE
LOWcore/wren/tests/test_profile_cli.py3CODE
LOWcore/wren/tests/connectors/test_datafusion.py7CODE
LOWcore/wren/tests/connectors/test_snowflake.py6CODE
LOWcore/wren/tests/connectors/test_duckdb.py7CODE
LOWcore/wren/tests/connectors/test_canner.py10CODE
LOWcore/wren/tests/connectors/test_mysql_connector.py7CODE
LOWcore/wren/tests/connectors/test_mysql.py7CODE
LOWcore/wren/tests/connectors/test_trino.py14CODE
LOWcore/wren/tests/connectors/test_mssql.py7CODE
LOWcore/wren/tests/connectors/test_clickhouse.py8CODE
LOWcore/wren/tests/connectors/test_postgres.py7CODE
LOWcore/wren/tests/unit/test_osi.py3CODE
LOWcore/wren/tests/unit/test_skills_cli.py3CODE
LOWcore/wren/tests/unit/test_version.py3CODE
LOWcore/wren/tests/unit/test_engine.py7CODE
LOWcore/wren/tests/unit/test_ask_cli.py3CODE
LOWcore/wren/tests/unit/test_genbi_deploy.py3CODE
LOWcore/wren/tests/unit/test_genbi_build.py3CODE
LOWcore/wren/tests/unit/test_athena_limit_pushdown.py3CODE
LOWcore/wren/tests/unit/test_cli_store_tip.py6CODE
LOWcore/wren/tests/unit/test_genbi_index.py3CODE
LOWcore/wren/tests/unit/test_mysql_helpers.py8CODE
LOWcore/wren/tests/unit/test_cte_rewriter.py3CODE
LOWcore/wren/tests/unit/test_redshift_semicolon.py10CODE
LOWcore/wren/tests/unit/test_connector_factory.py1CODE
LOWcore/wren/tests/unit/test_served_content_guard.py11CODE
LOWcore/wren/tests/unit/test_athena_connector.py7CODE
LOWcore/wren/tests/unit/test_skill_stubs.py9CODE
LOWcore/wren/tests/unit/test_index_backend.py8CODE
LOWcore/wren/tests/unit/test_context_cli.py3CODE
LOWcore/wren/tests/unit/test_memory_watch.py9CODE
LOWcore/wren/tests/unit/test_dbt.py3CODE
LOWcore/wren/tests/unit/test_snowflake_limit_pushdown.py3CODE
LOWcore/wren/tests/unit/test_profile_env_expansion.py9CODE
LOWcore/wren/tests/unit/test_cli_profile_resolve.py5CODE
LOWcore/wren/tests/unit/test_seed_queries.py3CODE
LOWcore/wren/tests/unit/test_trino_parser.py10CODE
LOWcore/wren/tests/unit/test_trino_parser.py243CODE
LOWcore/wren/tests/unit/test_convert_mdl.py3CODE
LOWcore/wren/tests/unit/test_clickhouse_helpers.py6CODE
LOWcore/wren/tests/unit/test_case_sensitivity.py15CODE
LOWcore/wren/tests/unit/test_config.py3CODE
LOWcore/wren/tests/unit/test_oracle_url_decode.py14CODE
LOWcore/wren/tests/unit/test_databricks_connector.py1CODE
LOWcore/wren/tests/unit/test_context.py3CODE
LOWcore/wren/tests/unit/test_context.py10CODE
LOWcore/wren/tests/unit/test_context.py1490CODE
LOWcore/wren/tests/unit/test_memory.py3CODE
LOWcore/wren/tests/unit/test_type_mapping.py3CODE
LOWcore/wren/tests/unit/test_memory_markdown.py7CODE
LOWcore/wren/tests/unit/test_cube_cli.py3CODE
LOWcore/wren/tests/unit/test_policy.py6CODE
LOWcore/wren/tests/unit/test_mssql_connection.py16CODE
LOWcore/wren/tests/unit/test_genbi_verify.py3CODE
LOWcore/wren/tests/suite/manifests.py3CODE
102 more matches not shown…
Excessive Try-Catch Wrapping77 hits · 85 pts
SeverityFileLineSnippetContext
LOWcore/wren-core-py/tests/test_modeling_core.py389 except Exception as e:CODE
LOWcore/wren-core-py/tests/test_modeling_core.py444 except Exception as e:CODE
LOWcore/wren/tests/connectors/test_mssql.py40 except Exception:CODE
MEDIUMcore/wren/tests/connectors/test_mssql.py37def _have_mssql_driver() -> bool:CODE
LOWcore/wren/tests/connectors/test_clickhouse.py98 except Exception as e: # noqa: BLE001CODE
LOWcore/wren/src/wren/context_cli.py493 except Exception as e:CODE
LOWcore/wren/src/wren/context_cli.py508 except Exception as profile_exc:CODE
LOWcore/wren/src/wren/context_cli.py838 except Exception as exc:CODE
LOWcore/wren/src/wren/profile_web.py160 except Exception:CODE
LOWcore/wren/src/wren/profile.py193 except Exception:CODE
LOWcore/wren/src/wren/cube_cli.py314 except Exception as e:CODE
LOWcore/wren/src/wren/engine.py120 except Exception as e:CODE
LOWcore/wren/src/wren/engine.py136 except Exception as e:CODE
LOWcore/wren/src/wren/engine.py205 except Exception as e:CODE
LOWcore/wren/src/wren/engine.py229 except Exception as e:CODE
LOWcore/wren/src/wren/context.py1624 except Exception as e:CODE
LOWcore/wren/src/wren/context.py1648 except Exception as e:CODE
LOWcore/wren/src/wren/cli.py41 except Exception as e:CODE
LOWcore/wren/src/wren/cli.py418 except Exception as e:CODE
LOWcore/wren/src/wren/cli.py442 except Exception as e:CODE
LOWcore/wren/src/wren/cli.py503 except Exception as e:CODE
LOWcore/wren/src/wren/cli.py531 except Exception as e:CODE
LOWcore/wren/src/wren/cli.py548 except Exception as e:CODE
LOWcore/wren/src/wren/cli.py568 except Exception:CODE
LOWcore/wren/src/wren/cli.py574 except Exception:CODE
LOWcore/wren/src/wren/cli.py580 except Exception:CODE
LOWcore/wren/src/wren/profile_cli.py141 except Exception as exc:CODE
LOWcore/wren/src/wren/profile_cli.py382 except Exception as exc: # noqa: BLE001 — surface whatever driver raisesCODE
LOWcore/wren/src/wren/mcp_server.py425 except Exception:CODE
LOWcore/wren/src/wren/mcp_server.py500 except Exception as e:CODE
MEDIUM…skills_content/dlt-connector/scripts/introspect_dlt.py407 print(f"Error: {duckdb_path} not found.", file=sys.stderr)CODE
LOWcore/wren/src/wren/memory/cli.py142 except Exception:CODE
LOWcore/wren/src/wren/memory/watch.py126 except Exception: # noqa: BLE001 — surface count, keep change pending for retryCODE
LOWcore/wren/src/wren/memory/watch.py174 except Exception:CODE
LOWcore/wren/src/wren/connector/redshift.py68 except Exception as e:CODE
MEDIUMcore/wren/src/wren/connector/redshift.py65def close(self) -> None:CODE
LOWcore/wren/src/wren/connector/clickhouse.py431 except Exception as e:CODE
LOWcore/wren/src/wren/connector/trino.py435 except Exception as e:CODE
LOWcore/wren/src/wren/connector/mssql.py86 except Exception as e:CODE
LOWcore/wren/src/wren/connector/mssql.py167 except Exception:CODE
LOWcore/wren/src/wren/connector/mssql.py70 except Exception as e:CODE
LOWcore/wren/src/wren/connector/mssql.py107 except Exception:CODE
LOWcore/wren/src/wren/connector/mssql.py149 except Exception:CODE
LOWcore/wren/src/wren/connector/bigquery.py52 except Exception as e:CODE
MEDIUMcore/wren/src/wren/connector/bigquery.py49def close(self) -> None:CODE
LOWcore/wren/src/wren/connector/snowflake.py105 except Exception:CODE
LOWcore/wren/src/wren/connector/postgres.py158 except Exception:CODE
LOWcore/wren/src/wren/connector/postgres.py265 except Exception as e:CODE
LOWcore/wren/src/wren/connector/postgres.py282 except Exception as e:CODE
LOWcore/wren/src/wren/connector/postgres.py297 except Exception:CODE
LOWcore/wren/src/wren/connector/postgres.py300 except Exception as e:CODE
LOWcore/wren/src/wren/connector/spark.py45 except Exception:CODE
LOWcore/wren/src/wren/connector/databricks.py68 except Exception as e:CODE
MEDIUMcore/wren/src/wren/connector/databricks.py65def close(self) -> None:CODE
LOWcore/wren/src/wren/connector/oracle.py218 except Exception:CODE
LOWcore/wren/src/wren/connector/datafusion.py73 except Exception as e:CODE
LOWcore/wren/src/wren/connector/duckdb.py71 except Exception:CODE
LOWcore/wren/src/wren/connector/duckdb.py158 except Exception as e:CODE
LOWcore/wren/src/wren/connector/duckdb.py168 except Exception as e:CODE
LOWcore/wren/src/wren/connector/athena.py74 except Exception:CODE
17 more matches not shown…
Over-Commented Block62 hits · 60 pts
SeverityFileLineSnippetContext
LOWcore/wren-core-py/scripts/publish.sh1#!/usr/bin/env bashCOMMENT
LOWcore/wren-core-py/src/extractor.rs381 match PyManifestExtractor::new(value) {COMMENT
LOWcore/wren-core-py/src/extractor.rs401 extractor: PyManifestExtractor,COMMENT
LOWcore/wren-core-py/src/extractor.rs481 #[case(&["orders"], &["orders_cube"])]COMMENT
LOWcore/wren-core-py/src/remote_functions.rs1// Licensed to the Apache Software Foundation (ASF) under oneCOMMENT
LOWcore/wren-core-py/src/context.rs1// Licensed to the Apache Software Foundation (ASF) under oneCOMMENT
LOWcore/wren-core-wasm/src/lib.rs1//! # wren-core-wasmCOMMENT
LOWcore/wren-core-wasm/src/lib.rs21//!COMMENT
LOWcore/wren-core-wasm/src/lib.rs41 ctx: datafusion::execution::context::SessionContext,COMMENT
LOWcore/wren-core-wasm/src/lib.rs181 /// CSV is read with `arrow::csv::ReaderBuilder`. Schema is inferred fromCOMMENT
LOWcore/wren-core-wasm/src/lib.rs281COMMENT
LOWcore/wren-core-wasm/src/lib.rs581 ))COMMENT
LOWcore/wren/tests/unit/test_policy.py521 validate_sql_policy(ast, _MODELS, config)COMMENT
LOWcore/wren/scripts/publish.sh1#!/usr/bin/env bashCOMMENT
LOWcore/wren/src/wren/policy.py21# outside the manifest and must not be treated as a disallowed table-valuedCOMMENT
LOWcore/wren/src/wren/policy.py41# under strict mode, in EVERY AST position — not just the FROM/JOIN source slotCOMMENT
LOWcore/wren/src/wren/mdl/cte_rewriter.py41}COMMENT
LOWcore/wren/src/wren/mdl/cte_rewriter.py101 # aliases, cube columns, …). Render those with ``identify=True`` so theCOMMENT
LOWcore/wren/src/wren/mdl/cte_rewriter.py281 # the CTE alias share the same quoting, so the dialect folds themCOMMENT
LOWcore/wren/src/wren/mdl/cte_rewriter.py361 """COMMENT
LOWcore/wren/src/wren/mdl/cte_rewriter.py381 # against the ``normalize=False`` schema with no folding.COMMENT
LOWcore/wren/src/wren/mdl/cte_rewriter.py401 ident = tbl.thisCOMMENT
LOWcore/wren/src/wren/mdl/cte_rewriter.py721 # via its passthrough/fallback branch.COMMENT
LOWcore/wren/src/wren/mdl/cte_rewriter.py881 # BigQuery — it treats the qualifier as a recursive reference toCOMMENT
LOWcore/wren/src/wren/connector/clickhouse.py321 # the mssql / mysql / oracle / trino URL handling in this package.COMMENT
LOWcore/wren-core/rustfmt.toml1# Licensed to the Apache Software Foundation (ASF) under oneCOMMENT
LOWcore/wren-core/taplo.toml1# Licensed to the Apache Software Foundation (ASF) under oneCOMMENT
LOWcore/wren-core/core/src/mdl/mod.rs2621 /// first relationship's terminal node and the chain was silentlyCOMMENT
LOWcore/wren-core/core/src/mdl/context.rs221 // be casted to the target type if neededCOMMENT
LOWcore/wren-core/core/src/mdl/context.rs241 // Disable ScalarSubqueryToJoin to avoid generate invalid sql (join without condition)COMMENT
LOWcore/wren-core/core/src/mdl/context.rs261 // TODO: Sort with pushdown-limit doesn't support to be unparseCOMMENT
LOW…n-core/core/src/logical_plan/optimize/type_coercion.rs901 .map(|(i, expr)| expr.cast_to(&new_types[i], schema))COMMENT
LOW…n-core/core/src/logical_plan/optimize/type_coercion.rs921 //COMMENT
LOW…en-core/core/src/logical_plan/analyze/model_anlayze.rs21use std::fmt::Debug;COMMENT
LOWcore/wren-core/core/src/logical_plan/analyze/plan.rs1081 // skip the calculated fieldCOMMENT
LOWcore/wren-core/core/src/logical_plan/analyze/scope.rs21/// SELECT a, b, c FROM tableCOMMENT
LOW…n-core/core/src/logical_plan/analyze/access_control.rs281}COMMENT
LOWcore/wren-core/benchmarks/bench.sh1#!/usr/bin/env bashCOMMENT
LOWcore/wren-core/benchmarks/requirements.txt1# Licensed to the Apache Software Foundation (ASF) under oneCOMMENT
LOWcore/wren-core/benchmarks/compare.py1#!/usr/bin/env pythonCOMMENT
LOWcore/wren-core/sqllogictest/bin/sqllogictests.rs1// Licensed to the Apache Software Foundation (ASF) under oneCOMMENT
LOWcore/wren-core/sqllogictest/bin/sqllogictests.rs281 ///COMMENT
LOWcore/wren-core/sqllogictest/src/test_context.rs1// Licensed to the Apache Software Foundation (ASF) under oneCOMMENT
LOWcore/wren-core/sqllogictest/src/test_context.rs181 // TODO: duplicate `orders.customer_state`COMMENT
LOWcore/wren-core/sqllogictest/src/engine/conversion.rs1// Licensed to the Apache Software Foundation (ASF) under oneCOMMENT
LOWcore/wren-core/sqllogictest/src/engine/normalize.rs1// Licensed to the Apache Software Foundation (ASF) under oneCOMMENT
LOWcore/wren-core/sqllogictest/src/engine/normalize.rs61COMMENT
LOWcore/wren-core/sqllogictest/src/engine/normalize.rs121COMMENT
LOWcore/wren-core/sqllogictest/src/engine/error.rs1// Licensed to the Apache Software Foundation (ASF) under oneCOMMENT
LOWcore/wren-core/sqllogictest/src/engine/runner.rs1// Licensed to the Apache Software Foundation (ASF) under oneCOMMENT
LOWcore/wren-core/sqllogictest/src/engine/mod.rs1// Licensed to the Apache Software Foundation (ASF) under oneCOMMENT
LOWcore/wren-core/sqllogictest/src/engine/output.rs1// Licensed to the Apache Software Foundation (ASF) under oneCOMMENT
LOWdocs/core/.sync.yml1# Declarative sync config: WrenAI/docs/core → doc websiteCOMMENT
LOWsdk/wren-pydantic/pyproject.toml61COMMENT
LOWsdk/wren-langchain/pyproject.toml61redshift = ["wrenai[redshift]>=0.7.0"]COMMENT
LOWscripts/sync-docs.sh1#!/usr/bin/env bashCOMMENT
LOW.github/actions/rust/setup-windows-builder/action.yaml1# Licensed to the Apache Software Foundation (ASF) under oneCOMMENT
LOW.github/actions/rust/setup-builder/action.yaml1# Licensed to the Apache Software Foundation (ASF) under oneCOMMENT
LOW.github/actions/rust/setup-macos-builder/action.yaml1# Licensed to the Apache Software Foundation (ASF) under oneCOMMENT
LOW…b/actions/rust/setup-macos-aarch64-builder/action.yaml1# Licensed to the Apache Software Foundation (ASF) under oneCOMMENT
2 more matches not shown…
Structural Annotation Overuse24 hits · 37 pts
SeverityFileLineSnippetContext
LOWcore/wren/src/wren/skills_content/usage/SKILL.md313### Step 1: Discover cubesCOMMENT
LOWcore/wren/src/wren/skills_content/usage/SKILL.md323### Step 2: Inspect cube structureCOMMENT
LOWcore/wren/src/wren/skills_content/usage/SKILL.md332### Step 3: Match user's question to cube measures + dimensionsCOMMENT
LOWcore/wren/src/wren/skills_content/usage/SKILL.md342### Step 4: Execute via CLI flags OR JSON inputCOMMENT
LOWcore/wren/src/wren/skills_content/usage/SKILL.md364### Step 5: Error recoveryCOMMENT
LOW…re/wren/src/wren/skills_content/dlt-connector/SKILL.md52### Step 1: Pick the SaaS sourceCOMMENT
LOW…re/wren/src/wren/skills_content/dlt-connector/SKILL.md56### Step 2: Install dltCOMMENT
LOW…re/wren/src/wren/skills_content/dlt-connector/SKILL.md62### Step 3: Write the pipeline scriptCOMMENT
LOW…re/wren/src/wren/skills_content/dlt-connector/SKILL.md87### Step 4: Set up credentialsCOMMENT
LOW…re/wren/src/wren/skills_content/dlt-connector/SKILL.md102### Step 5: Run the pipelineCOMMENT
LOW…re/wren/src/wren/skills_content/dlt-connector/SKILL.md200### Step 1: Build the MDLSTRING
LOW…re/wren/src/wren/skills_content/dlt-connector/SKILL.md209### Step 2: Validate with a real querySTRING
LOW…re/wren/src/wren/skills_content/dlt-connector/SKILL.md223### Step 3: Run interesting queriesSTRING
LOW…re/wren/src/wren/skills_content/dlt-connector/SKILL.md238### Step 4: Confirm successSTRING
LOWdocs/core/get_started/quickstart.md37## Step 0: Create a Python virtual environmentCOMMENT
LOWdocs/core/get_started/quickstart.md50## Step 1: Seed the jaffle_shop datasetCOMMENT
LOWdocs/core/get_started/quickstart.md76## Step 2: Install wrenai Python packageCOMMENT
LOWdocs/core/get_started/quickstart.md99## Step 3: Install the CLI skillCOMMENT
LOWdocs/core/get_started/quickstart.md122## Step 4: Set up a profileCOMMENT
LOWdocs/core/get_started/quickstart.md177## Step 5: Initialize a Wren projectCOMMENT
LOWdocs/core/get_started/quickstart.md212## Step 6: Generate MDL with Claude CodeCOMMENT
LOWdocs/core/get_started/quickstart.md258## Step 7: Start asking questionsCOMMENT
LOWdocs/core/get_started/quickstart.md286## Step 8: Add and query a cube (optional)COMMENT
LOWdocs/core/get_started/quickstart.md319## Step 9: Build and deploy a GenBI dashboard (optional)COMMENT
Deep Nesting41 hits · 36 pts
SeverityFileLineSnippetContext
LOWevals/spodbtify_ab/run_eval.py92CODE
LOWcore/wren/tests/unit/test_served_content_guard.py28CODE
LOWcore/wren/src/wren/context_cli.py678CODE
LOWcore/wren/src/wren/dbt.py753CODE
LOWcore/wren/src/wren/dbt.py1139CODE
LOWcore/wren/src/wren/osi.py403CODE
LOWcore/wren/src/wren/profile.py324CODE
LOWcore/wren/src/wren/policy.py200CODE
LOWcore/wren/src/wren/policy.py302CODE
LOWcore/wren/src/wren/docs.py145CODE
LOWcore/wren/src/wren/docs.py168CODE
LOWcore/wren/src/wren/context.py306CODE
LOWcore/wren/src/wren/context.py849CODE
LOWcore/wren/src/wren/context.py1560CODE
LOWcore/wren/src/wren/context.py1589CODE
LOWcore/wren/src/wren/cli.py151CODE
LOWcore/wren/src/wren/cli.py450CODE
LOWcore/wren/src/wren/profile_cli.py395CODE
LOWcore/wren/src/wren/mdl/cte_rewriter.py614CODE
LOWcore/wren/src/wren/mdl/cte_rewriter.py844CODE
LOWcore/wren/src/wren/mdl/cte_rewriter.py913CODE
LOWcore/wren/src/wren/mdl/cte_rewriter.py1000CODE
LOWcore/wren/src/wren/mdl/cte_rewriter.py1081CODE
LOWcore/wren/src/wren/mdl/cte_rewriter.py1027CODE
LOWcore/wren/src/wren/memory/schema_indexer.py220CODE
LOWcore/wren/src/wren/memory/cli.py109CODE
LOWcore/wren/src/wren/memory/cli.py151CODE
LOWcore/wren/src/wren/memory/watch.py141CODE
LOWcore/wren/src/wren/model/field_registry.py258CODE
LOWcore/wren/src/wren/connector/clickhouse.py194CODE
LOWcore/wren/src/wren/connector/trino.py152CODE
LOWcore/wren/src/wren/connector/mssql.py116CODE
LOWcore/wren/src/wren/connector/mssql.py264CODE
LOWcore/wren/src/wren/connector/postgres.py146CODE
LOWcore/wren/src/wren/connector/oracle.py90CODE
LOWcore/wren/src/wren/connector/duckdb.py141CODE
LOWcore/wren/src/wren/connector/athena.py141CODE
LOWcore/wren/src/wren/connector/canner.py130CODE
LOWcore/wren/src/wren/connector/mysql.py399CODE
LOWsdk/wren-pydantic/src/wren_pydantic/_errors.py82CODE
LOWsdk/wren-langchain/examples/langgraph_demo.py127CODE
Cross-Language Confusion6 hits · 32 pts
SeverityFileLineSnippetContext
HIGHcore/wren/tests/connectors/test_snowflake.py147 assert result.equals(expected)CODE
HIGHcore/wren/tests/unit/test_osi.py287 ("a || b", "concat", True), # concatCODE
HIGHcore/wren/tests/unit/test_profile_env_expansion.py149 (mirrors the typical ``cd subdir && wren --sql`` usage)."""STRING
HIGHcore/wren/tests/unit/test_clickhouse_helpers.py235 and that None values in the result rows are preserved as null, not coercedSTRING
HIGHcore/wren/src/wren/profile.py174 f"profiles.yml: 'active' must be a string or null; got {type(active).__name__}.\n"CODE
HIGHcore/wren/src/wren/context.py71| Rebuild after changes | `wren context build && wren memory index` |CODE
Cross-File Repetition6 hits · 30 pts
SeverityFileLineSnippetContext
HIGHcore/wren/tests/connectors/test_mysql.py0create table orders ( o_orderkey integer primary key, o_custkey integer not null, o_orderstatus char(1) not null, o_totaSTRING
HIGHcore/wren/tests/connectors/test_mssql.py0create table orders ( o_orderkey integer primary key, o_custkey integer not null, o_orderstatus char(1) not null, o_totaSTRING
HIGHcore/wren/tests/connectors/test_postgres.py0create table orders ( o_orderkey integer primary key, o_custkey integer not null, o_orderstatus char(1) not null, o_totaSTRING
HIGHcore/wren/tests/connectors/test_mysql.py0create table customer ( c_custkey integer primary key, c_name varchar(25) not null )STRING
HIGHcore/wren/tests/connectors/test_mssql.py0create table customer ( c_custkey integer primary key, c_name varchar(25) not null )STRING
HIGHcore/wren/tests/connectors/test_postgres.py0create table customer ( c_custkey integer primary key, c_name varchar(25) not null )STRING
Modern AI Meta-Vocabulary8 hits · 24 pts
SeverityFileLineSnippetContext
MEDIUMcore/wren/tests/unit/test_context_cli.py306 # Other scaffold files are still producedCOMMENT
MEDIUMcore/wren/src/wren/context_cli.py288 # Empty relationships.yml (shared between empty and full scaffold)COMMENT
MEDIUMcore/wren/src/wren/memory/schema_indexer.py27# description fits comfortably in a single LLM context window andCOMMENT
MEDIUMcore/wren-core/benchmarks/bench.sh21# etc and orchestrates gathering data and run the benchmark binary inCOMMENT
MEDIUMdocs/core/guides/model.md32## What scaffolding gives youCOMMENT
MEDIUMdocs/core/guides/model.md43## What scaffolding cannot give youCOMMENT
MEDIUMdocs/core/guides/manage_project.md19wren context init # scaffold a new project in cwdCODE
MEDIUMdocs/core/concepts/agent_learning.md15## Two phases: scaffold fast, enrich deepCOMMENT
Fake / Example Data5 hits · 6 pts
SeverityFileLineSnippetContext
LOWcore/wren/src/wren/model/field_registry.py168 "placeholder": "eyJ...",CODE
LOWcore/wren/src/wren/model/field_registry.py184 "format": {"label": "File Format", "placeholder": "parquet"},CODE
LOWcore/wren/src/wren/model/field_registry.py189 "placeholder": "/data",CODE
LOWcore/wren/src/wren/model/field_registry.py195 "url": {"label": "Root Path", "placeholder": "/data"},CODE
LOWcore/wren/src/wren/model/field_registry.py306 placeholder=overrides.get("placeholder", base_placeholder),CODE
Example Usage Blocks4 hits · 6 pts
SeverityFileLineSnippetContext
LOWcore/wren-core-py/scripts/publish.sh5# Usage:COMMENT
LOWcore/wren/scripts/publish.sh5# Usage:COMMENT
LOWscripts/sync-docs.sh10# Usage:COMMENT
LOWskills/install.sh9# Usage:COMMENT
Modern Structural Boilerplate6 hits · 6 pts
SeverityFileLineSnippetContext
LOWcore/wren/src/wren/profile_web.py32logger = logging.getLogger(__name__)CODE
LOWcore/wren/src/wren/__init__.py15__all__ = ["WrenEngine", "DataSource", "WrenError", "__version__"]CODE
LOWcore/wren/src/wren/memory/__init__.py112__all__ = ["WrenMemory"]CODE
LOWcore/wren/src/wren/connector/__init__.py4__all__ = ["ConnectorABC", "get_connector"]CODE
LOWsdk/wren-pydantic/src/wren_pydantic/__init__.py10__all__ = [CODE
LOWsdk/wren-langchain/src/wren_langchain/__init__.py11__all__ = [CODE
AI Structural Patterns5 hits · 5 pts
SeverityFileLineSnippetContext
LOWcore/wren/src/wren/serve_cli.py122CODE
LOWcore/wren/src/wren/cube_cli.py206CODE
LOWcore/wren/src/wren/cli.py356CODE
LOWcore/wren/src/wren/profile_cli.py38CODE
LOWcore/wren/src/wren/mcp_server.py114CODE
Docstring Block Structure1 hit · 5 pts
SeverityFileLineSnippetContext
HIGHcore/wren/src/wren/model/field_registry.py342Return ordered FieldDef list for a datasource. Args: datasource: DataSource name (e.g. "bigquery"). STRING
AI Slop Vocabulary1 hit · 2 pts
SeverityFileLineSnippetContext
LOWcore/wren/tests/unit/test_memory_watch.py72 # watcher reindexes on disappearance, not just add/edit.COMMENT