AI Slop Code RIsk Monitor

TauricResearch/TradingAgents

TradingAgents: Multi-Agents LLM Financial Trading Framework

50.1 High pattern signal View on GitHub

Maintenance and Governance Review

This report summarizes scanner evidence for TauricResearch/TradingAgents, a Python project with 110,502 GitHub stars. SynthScan examined 28,016 lines of code across 191 source files, recording 1108 pattern matches distributed across 18 syntactic categories. The legacy adjusted pattern signal is 50.1 (High pattern signal); it is not an authorship estimate.

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

50.1
Adjusted Signal
50.1
Raw Pattern Score
100%
Time Factor
2026-10-03
Last Push
110.5K
Stars
Python
Language
28.0K
Lines of Code
191
Files
1.1K
Pattern Hits
2026-10-12
Scan Date
0.05
HC Hit Rate

Risk Review · v3

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

Cognitive Ownership Risk 85.0/100 · CRITICAL

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

Hallucinated Dependency & Supply Chain Risk 16.6/100 · LOW

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

Agent Over-Engineering Ratio 89.1/100 · CRITICAL

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

PR Review Velocity Impact 89.2/100 · CRITICAL

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

What These Metrics Mean

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

Pattern-Signal History

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

Severity Breakdown

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

CRITICAL 0HIGH 9MEDIUM 48LOW 1051

Directory Score Breakdown

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

Pattern Findings

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

Reading the findings table: The Severity column indicates the configured finding weight (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — legacy comment-context matches receive a ×1.5 score weight. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier under the legacy scoring model.

Hyper-Verbose Identifiers876 hits · 998 pts
SeverityFileLineSnippetContext
LOW⚡tests/test_yfinance_stale_ohlcv_guard.py39 def test_recent_prior_trading_day_is_accepted(self):CODE
LOW⚡tests/test_yfinance_stale_ohlcv_guard.py43 def test_year_old_row_is_rejected_with_detail(self):CODE
LOW⚡tests/test_yfinance_stale_ohlcv_guard.py51 def test_empty_frame_is_left_to_caller(self):CODE
LOW⚡tests/test_yfinance_stale_ohlcv_guard.py57 def test_long_holiday_gap_within_threshold_is_accepted(self):CODE
LOW⚡tests/test_yfinance_stale_ohlcv_guard.py63 def test_get_yfin_data_online_raises_on_stale_frame(self):CODE
LOWtests/test_yfinance_stale_ohlcv_guard.py92 def test_router_sentinel_surfaces_stale_reason(self):CODE
LOW⚡tests/test_structured_agents.py40 def test_minimal_required_fields(self):CODE
LOW⚡tests/test_structured_agents.py49 def test_optional_fields_included_when_present(self):CODE
LOW⚡tests/test_structured_agents.py90 def test_trader_real_numeric_string_still_parses(self):CODE
LOW⚡tests/test_structured_agents.py94 def test_pm_nullish_price_target_coerces_to_none(self):CODE
LOW⚡tests/test_structured_agents.py103 def test_percentage_answer_to_a_price_field_becomes_none(self):CODE
LOW⚡tests/test_structured_agents.py343 def test_falls_back_to_freetext_when_structured_unavailable(self):CODE
LOW⚡tests/test_structured_agents.py360 def test_header_contains_band_and_score(self):CODE
LOW⚡tests/test_structured_agents.py371 def test_header_contains_confidence(self):CODE
LOW⚡tests/test_structured_agents.py380 def test_narrative_preserved_in_output(self):CODE
LOW⚡tests/test_structured_agents.py390 def test_all_six_bands_render(self):CODE
LOW⚡tests/test_structured_agents.py398 def test_score_out_of_range_rejected(self):CODE
LOW⚡tests/test_structured_agents.py462 def test_sentiment_report_also_in_messages(self):CODE
LOW⚡tests/test_structured_agents.py469 def test_prompt_contains_ticker(self):CODE
LOW⚡tests/test_structured_agents.py474 def test_falls_back_to_freetext_when_structured_unavailable(self):CODE
LOW⚡tests/test_structured_agents.py481 def test_falls_back_to_freetext_when_structured_call_fails(self):CODE
LOW⚡tests/test_structured_agents.py522def test_a_price_that_is_a_number_survives():CODE
LOW⚡tests/test_structured_agents.py531def test_a_field_the_model_did_not_give_says_so():CODE
LOW⚡tests/test_structured_agents.py541def test_the_trader_names_the_levels_it_did_not_give():CODE
LOWtests/test_structured_agents.py64 def test_optional_fields_are_named_as_not_provided(self):CODE
LOWtests/test_structured_agents.py79 def test_trader_nullish_strings_coerce_to_none(self):CODE
LOWtests/test_structured_agents.py117 def test_human_formatted_price_is_reduced_to_its_number(self):CODE
LOWtests/test_structured_agents.py127 def test_one_bad_field_no_longer_fails_the_whole_proposal(self):CODE
LOWtests/test_structured_agents.py197def test_invoke_structured_falls_back_when_result_is_none():CODE
LOWtests/test_structured_agents.py216 def test_structured_path_produces_rendered_markdown(self):CODE
LOWtests/test_structured_agents.py235 def test_prompt_includes_investment_plan(self):CODE
LOWtests/test_structured_agents.py244 def test_prompt_includes_market_report_for_price_levels(self):CODE
LOWtests/test_structured_agents.py257 def test_empty_market_report_omits_the_section_and_grounding(self):CODE
LOWtests/test_structured_agents.py269 def test_falls_back_to_freetext_when_structured_unavailable(self):CODE
LOWtests/test_structured_agents.py318 def test_structured_path_produces_rendered_markdown(self):CODE
LOWtests/test_structured_agents.py415def _structured_sentiment_llm(captured: dict, report: SentimentReport | None = None):CODE
LOWtests/test_structured_agents.py450 def test_structured_path_produces_rendered_markdown(self):CODE
LOWtests/test_structured_agents.py498def test_conflict_alone_is_not_a_hold_trigger(source):CODE
LOWtests/test_structured_agents.py510def test_a_price_written_as_a_range_drops_only_that_field(written):CODE
LOWtests/test_memory_pointintime.py28def test_resolution_date_is_stored_and_parsed(tmp_path):CODE
LOWtests/test_memory_pointintime.py37def test_as_of_excludes_lessons_resolved_after_the_run_date(tmp_path):CODE
LOWtests/test_memory_pointintime.py50def test_no_as_of_is_unfiltered_live_behavior(tmp_path):CODE
LOWtests/test_memory_pointintime.py58def test_legacy_entry_without_resolution_date_excluded_in_backtest(tmp_path):CODE
LOWtests/test_memory_pointintime.py73def test_cross_ticker_lessons_are_also_gated(tmp_path):CODE
LOWtests/test_memory_pointintime.py82def test_memory_as_of_gates_historical_but_not_live():CODE
LOWtests/test_graph_end_to_end.py133def test_a_full_run_reaches_a_logged_decision(tmp_path, monkeypatch, offline, structured):CODE
LOWtests/test_graph_end_to_end.py151def test_an_interrupted_run_resumes_from_its_checkpoint(tmp_path, monkeypatch, offline):CODE
LOWtests/test_graph_end_to_end.py169def test_a_graph_reused_across_runs_keeps_no_run_state(tmp_path, monkeypatch, offline):CODE
LOWtests/test_graph_end_to_end.py182def test_the_analysts_run_at_the_same_time(tmp_path, monkeypatch, offline):CODE
LOWtests/test_graph_end_to_end.py193def test_a_debug_run_prints_the_analysts_work_and_reaches_the_same_decision(tmp_path, monkeypatch, offline, capsys):CODE
LOWtests/test_graph_end_to_end.py206def test_each_report_streams_as_soon_as_its_analyst_files_it(tmp_path, monkeypatch, offline):CODE
LOWtests/test_graph_end_to_end.py220def test_a_streamed_run_reads_its_own_graph_config(tmp_path, monkeypatch, offline):CODE
LOWtests/test_graph_end_to_end.py257def test_an_analyst_that_keeps_calling_tools_writes_its_report_at_the_limit(tmp_path, monkeypatch, offline):CODE
LOWtests/test_graph_end_to_end.py271def test_the_last_turn_is_offered_no_tools_and_reads_its_tool_results_as_text(tmp_path, monkeypatch, offline):CODE
LOWtests/test_graph_end_to_end.py288def test_a_tool_limit_the_recursion_limit_cannot_hold_is_refused(tmp_path, monkeypatch):CODE
LOWtests/test_graph_end_to_end.py310def test_past_decisions_settle_alongside_the_analysts(tmp_path, monkeypatch, offline):CODE
LOWtests/test_graph_end_to_end.py334def test_a_settlement_failure_is_noted_and_the_run_goes_on(tmp_path, monkeypatch, offline):CODE
LOWtests/test_graph_end_to_end.py353def test_the_run_settles_other_tickers_due_decisions_too(tmp_path, monkeypatch, offline):CODE
LOWtests/test_graph_end_to_end.py369def test_the_memory_step_reads_lessons_as_of_the_trade_date_and_settles_once(tmp_path, monkeypatch, offline):CODE
LOWtests/test_no_data_handling.py36 def test_empty_download_raises_and_does_not_cache(self):CODE
816 more matches not shown…
Decorative Section Separators42 hits · 162 pts
SeverityFileLineSnippetContext
MEDIUM⚡tests/test_structured_agents.py33# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/test_structured_agents.py35# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/test_structured_agents.py353# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/test_structured_agents.py355# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_structured_agents.py165# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_structured_agents.py167# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_structured_agents.py282# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_structured_agents.py284# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/test_alpha_vantage_hardening.py125# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/test_alpha_vantage_hardening.py127# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/test_signal_processing.py11# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/test_signal_processing.py13# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/test_deepseek_reasoning.py27# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/test_deepseek_reasoning.py30# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/test_deepseek_reasoning.py50# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/test_deepseek_reasoning.py52# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/test_deepseek_reasoning.py182# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/test_deepseek_reasoning.py184# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/test_deepseek_reasoning.py226# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/test_deepseek_reasoning.py228# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_deepseek_reasoning.py118# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_deepseek_reasoning.py120# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/test_memory_log.py110# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/test_memory_log.py112# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/test_memory_log.py408# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/test_memory_log.py410# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/test_memory_log.py734# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/test_memory_log.py736# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/test_memory_log.py866# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/test_memory_log.py868# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_memory_log.py30# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_memory_log.py32# ---------------------------------------------------------------------------COMMENT
MEDIUMtradingagents/agents/schemas.py61# ---------------------------------------------------------------------------COMMENT
MEDIUMtradingagents/agents/schemas.py63# ---------------------------------------------------------------------------COMMENT
MEDIUMtradingagents/agents/schemas.py90# ---------------------------------------------------------------------------COMMENT
MEDIUMtradingagents/agents/schemas.py92# ---------------------------------------------------------------------------COMMENT
MEDIUMtradingagents/agents/schemas.py141# ---------------------------------------------------------------------------COMMENT
MEDIUMtradingagents/agents/schemas.py143# ---------------------------------------------------------------------------COMMENT
MEDIUMtradingagents/agents/schemas.py216# ---------------------------------------------------------------------------COMMENT
MEDIUMtradingagents/agents/schemas.py218# ---------------------------------------------------------------------------COMMENT
MEDIUMtradingagents/agents/schemas.py291# ---------------------------------------------------------------------------COMMENT
MEDIUMtradingagents/agents/schemas.py293# ---------------------------------------------------------------------------COMMENT
Unused Imports85 hits · 84 pts
SeverityFileLineSnippetContext
LOWtests/test_memory_pointintime.py9CODE
LOWtests/test_graph_end_to_end.py8CODE
LOWtests/test_sec_edgar.py10CODE
LOWtests/test_debate_opening.py9CODE
LOWtests/test_ollama_base_url.py3CODE
LOWtests/test_stocktwits_resilience.py8CODE
LOWtests/test_cli_no_console.py7CODE
LOWtests/test_ohlcv_cache_freshness.py8CODE
LOWtests/test_structured_agent_prompts.py11CODE
LOWtests/test_reddit_fallback.py4CODE
LOWtests/test_yahoo_snapshot.py3CODE
LOWtests/test_ohlcv_date_column.py7CODE
LOWtests/test_llm_max_tokens.py9CODE
LOWtests/test_portfolio_context.py10CODE
LOWtests/test_backtest.py9CODE
LOWtests/test_cli_display.py7CODE
LOWtests/test_fundamentals_lookahead.py16CODE
LOWtests/test_llm_max_retries.py7CODE
LOWtests/test_cli_prefs.py10CODE
LOWtests/test_cli_memory_log.py10CODE
LOWtests/test_rating_integrity.py10CODE
LOWtests/test_env_overrides.py3CODE
LOWtests/test_undated_tools_as_of.py8CODE
LOWtests/test_social_lookahead.py8CODE
LOWtests/test_cli_commands.py7CODE
LOWtests/test_checkpoint_lifecycle.py10CODE
LOWtests/test_api_key_env.py3CODE
LOWtests/test_tool_date_enforcement.py9CODE
LOWtests/test_openai_responses_base_url.py4CODE
LOWtests/test_ohlcv_latest_bar.py14CODE
LOWtests/test_prompt_integrity.py9CODE
LOWcli/prefs.py17CODE
LOWtradingagents/backtest.py17CODE
LOWtradingagents/portfolio.py14CODE
LOWtradingagents/memory/__init__.py8CODE
LOWtradingagents/graph/checkpointer.py6CODE
LOWtradingagents/graph/__init__.py1CODE
LOWtradingagents/graph/__init__.py2CODE
LOWtradingagents/graph/__init__.py3CODE
LOWtradingagents/graph/__init__.py4CODE
LOWtradingagents/agents/rating.py16CODE
LOWtradingagents/agents/__init__.py1CODE
LOWtradingagents/agents/__init__.py2CODE
LOWtradingagents/agents/__init__.py3CODE
LOWtradingagents/agents/__init__.py4CODE
LOWtradingagents/agents/__init__.py5CODE
LOWtradingagents/agents/__init__.py6CODE
LOWtradingagents/agents/__init__.py7CODE
LOWtradingagents/agents/__init__.py8CODE
LOWtradingagents/agents/__init__.py9CODE
LOWtradingagents/agents/__init__.py10CODE
LOWtradingagents/agents/__init__.py11CODE
LOWtradingagents/agents/__init__.py12CODE
LOWtradingagents/agents/__init__.py12CODE
LOWtradingagents/agents/__init__.py12CODE
LOWtradingagents/agents/__init__.py13CODE
LOWtradingagents/agents/schemas.py19CODE
LOWtradingagents/agents/structured.py19CODE
LOWtradingagents/agents/trader/trader.py3CODE
LOWtradingagents/agents/managers/portfolio_manager.py11CODE
25 more matches not shown…
Modern Structural Boilerplate24 hits · 24 pts
SeverityFileLineSnippetContext
LOWtradingagents/backtest.py31logger = logging.getLogger(__name__)CODE
LOWtradingagents/memory/settlement.py11logger = logging.getLogger(__name__)CODE
LOWtradingagents/memory/__init__.py10__all__ = ["TradingMemoryLog"]CODE
LOWtradingagents/graph/__init__.py6__all__ = [CODE
LOWtradingagents/graph/trading_graph.py27logger = logging.getLogger(__name__)CODE
LOWtradingagents/graph/setup.py29logger = logging.getLogger(__name__)CODE
LOWtradingagents/agents/post_screen.py25logger = logging.getLogger(__name__)CODE
LOWtradingagents/agents/__init__.py15__all__ = [CODE
LOWtradingagents/agents/context.py11logger = logging.getLogger(__name__)CODE
LOWtradingagents/agents/structured.py27logger = logging.getLogger(__name__)CODE
LOWtradingagents/dataflows/files.py11logger = logging.getLogger(__name__)CODE
LOWtradingagents/dataflows/symbols.py28logger = logging.getLogger(__name__)CODE
LOWtradingagents/dataflows/router.py42logger = logging.getLogger(__name__)CODE
LOWtradingagents/dataflows/vendors/polymarket.py20logger = logging.getLogger(__name__)CODE
LOWtradingagents/dataflows/vendors/stocktwits.py28logger = logging.getLogger(__name__)CODE
LOWtradingagents/dataflows/vendors/fred.py20logger = logging.getLogger(__name__)CODE
LOWtradingagents/dataflows/vendors/sec_edgar.py34logger = logging.getLogger(__name__)CODE
LOWtradingagents/dataflows/vendors/reddit.py35logger = logging.getLogger(__name__)CODE
LOW…ingagents/dataflows/vendors/alpha_vantage/indicator.py6logger = logging.getLogger(__name__)CODE
LOW…dingagents/dataflows/vendors/alpha_vantage/__init__.py17__all__ = [CODE
LOWtradingagents/dataflows/vendors/yahoo/market.py15logger = logging.getLogger(__name__)CODE
LOWtradingagents/dataflows/vendors/yahoo/common.py12logger = logging.getLogger(__name__)CODE
LOWtradingagents/dataflows/vendors/yahoo/ohlcv.py13logger = logging.getLogger(__name__)CODE
LOWtradingagents/llm_clients/__init__.py4__all__ = ["BaseLLMClient", "build_llm_kwargs", "create_llm_client", "create_tier_client", "tier_provider"]CODE
Empty Error Handlers4 hits · 20 pts
SeverityFileLineSnippetContext
HIGHtradingagents/graph/checkpointer.py96except sqlite3.OperationalError:CODE
HIGHtradingagents/agents/post_screen.py115except (ValueError, KeyError, TypeError):CODE
HIGHtradingagents/dataflows/vendors/polymarket.py63except ValueError:CODE
HIGHtradingagents/dataflows/vendors/sec_edgar.py127except ValueError:CODE
Excessive Try-Catch Wrapping20 hits · 20 pts
SeverityFileLineSnippetContext
LOWtests/test_memory_log.py1050 except Exception as exc: # noqa: BLE001 — collected for the assertionCODE
LOWcli/run.py452 except Exception as e:CODE
LOWcli/prompts.py114 except Exception:CODE
LOWcli/prompts.py236 except Exception as e:CODE
LOWcli/main.py147 except Exception as exc: # a missing key or an unknown analyst is a setup errorCODE
LOWcli/announcements.py25 except Exception:CODE
LOWtradingagents/backtest.py169 except Exception as exc: # one unreachable vendor must not end the sweepCODE
LOWtradingagents/backtest.py178 except Exception as exc: # reflection calls an LLM; one failure is not the sweep'sCODE
LOWtradingagents/memory/settlement.py132 except Exception as exc:CODE
LOWtradingagents/memory/settlement.py146 except Exception as exc:CODE
LOWtradingagents/graph/trading_graph.py325 except Exception as exc:CODE
LOWtradingagents/graph/trading_graph.py331 except Exception as exc:CODE
LOWtradingagents/agents/context.py80 except Exception as exc: # noqa: BLE001 — fail open, never block the runCODE
LOWtradingagents/agents/structured.py76 except Exception as exc:CODE
LOWtradingagents/dataflows/router.py251 except Exception as e:CODE
LOW…ingagents/dataflows/vendors/alpha_vantage/indicator.py217 except Exception as e:CODE
LOWtradingagents/dataflows/vendors/yahoo/market.py185 except Exception as e:CODE
LOWtradingagents/dataflows/vendors/yahoo/market.py257 except Exception as e:CODE
LOWtradingagents/dataflows/vendors/yahoo/common.py73 except Exception as exc:CODE
LOWtradingagents/dataflows/vendors/yahoo/snapshot.py85 except Exception as exc: # noqa: BLE001 — one bad indicator shouldn't sink the snapshotCODE
Fake / Example Data11 hits · 16 pts
SeverityFileLineSnippetContext
LOW⚡tests/test_minimax.py18 os.environ.setdefault("MINIMAX_API_KEY", "placeholder")CODE
LOW⚡tests/test_minimax.py21 api_key="placeholder",CODE
LOWtests/conftest.py116 monkeypatch.setenv(env_var, os.environ.get(env_var) or "placeholder")CODE
LOW⚡tests/test_temperature_config.py29 provider=provider, model=model, temperature=0.0, api_key="placeholder"CODE
LOW⚡tests/test_temperature_config.py36 provider="openai", model="gpt-4.1", api_key="placeholder"CODE
LOW⚡tests/test_deepseek_reasoning.py58 os.environ.setdefault("DEEPSEEK_API_KEY", "placeholder")CODE
LOW⚡tests/test_deepseek_reasoning.py61 api_key="placeholder",CODE
LOW⚡tests/test_deepseek_reasoning.py141 model=model, api_key="placeholder", base_url="https://api.deepseek.com",CODE
LOW⚡tests/test_deepseek_reasoning.py189 return bool(key) and key != "placeholder"CODE
LOW⚡tests/test_anthropic_effort.py92 api_key="placeholder",CODE
LOW⚡tests/test_anthropic_effort.py96 assert captured["kwargs"]["api_key"] == "placeholder"CODE
Cross-File Repetition3 hits · 15 pts
SeverityFileLineSnippetContext
HIGHtests/test_llm_max_tokens.py0the defaults as the environment given here would set them.STRING
HIGHtests/test_llm_max_retries.py0the defaults as the environment given here would set them.STRING
HIGHtests/test_env_overrides.py0the defaults as the environment given here would set them.STRING
Deep Nesting14 hits · 14 pts
SeverityFileLineSnippetContext
LOWtests/test_checkpoint_lifecycle.py86CODE
LOWtests/test_checkpoint_lifecycle.py118CODE
LOWcli/run.py98CODE
LOWcli/selections.py103CODE
LOWtradingagents/memory/log.py32CODE
LOWtradingagents/memory/log.py203CODE
LOWtradingagents/graph/trading_graph.py372CODE
LOWtradingagents/graph/trading_graph.py406CODE
LOWtradingagents/agents/context.py107CODE
LOWtradingagents/dataflows/symbols.py103CODE
LOWtradingagents/dataflows/vendors/sec_edgar.py153CODE
LOW…ingagents/dataflows/vendors/alpha_vantage/indicator.py9CODE
LOWtradingagents/llm_clients/factory.py90CODE
LOWtradingagents/llm_clients/openai_client.py277CODE
Verbosity Indicators8 hits · 12 pts
SeverityFileLineSnippetContext
LOWcli/selections.py152 # Step 1: Ticker symbolCOMMENT
LOWcli/selections.py173 # Step 2: Analysis dateCOMMENT
LOWcli/selections.py188 # Step 3: Output language (skipped when set via TRADINGAGENTS_OUTPUT_LANGUAGE)COMMENT
LOWcli/selections.py203 # Step 4: Select analystsCOMMENT
LOWcli/selections.py218 # Step 5: Research depth (skipped when both round counts are set via env).COMMENT
LOWcli/selections.py237 # Step 6: LLM Provider (skipped when set via TRADINGAGENTS_LLM_PROVIDER).COMMENT
LOWcli/selections.py288 # Step 7: Thinking agents (skipped when either model is set via environment)COMMENT
LOWcli/selections.py310 # Step 8: Provider-specific reasoning/thinking configuration. Each knob isCOMMENT
Structural Annotation Overuse8 hits · 12 pts
SeverityFileLineSnippetContext
LOWcli/selections.py152 # Step 1: Ticker symbolCOMMENT
LOWcli/selections.py173 # Step 2: Analysis dateCOMMENT
LOWcli/selections.py188 # Step 3: Output language (skipped when set via TRADINGAGENTS_OUTPUT_LANGUAGE)COMMENT
LOWcli/selections.py203 # Step 4: Select analystsCOMMENT
LOWcli/selections.py218 # Step 5: Research depth (skipped when both round counts are set via env).COMMENT
LOWcli/selections.py237 # Step 6: LLM Provider (skipped when set via TRADINGAGENTS_LLM_PROVIDER).COMMENT
LOWcli/selections.py288 # Step 7: Thinking agents (skipped when either model is set via environment)COMMENT
LOWcli/selections.py310 # Step 8: Provider-specific reasoning/thinking configuration. Each knob isCOMMENT
Self-Referential Comments2 hits · 6 pts
SeverityFileLineSnippetContext
MEDIUMtests/test_checkpoint_resume.py85 # Create a checkpoint by crashingCOMMENT
MEDIUMtradingagents/dataflows/vendors/alpha_vantage/common.py76 # Create a copy of params to avoid modifying the originalCOMMENT
Modern AI Meta-Vocabulary2 hits · 5 pts
SeverityFileLineSnippetContext
MEDIUMCHANGELOG.md521- [@Bcardo](https://github.com/Bcardo) — memory-log redesign (#579), empty-memory hallucination report (#572), encoding CODE
MEDIUMtradingagents/llm_clients/model_catalog.py61# M3 carries a 1M-token context window; the M2.x line is 204,800 tokens.COMMENT
AI Slop Vocabulary2 hits · 5 pts
SeverityFileLineSnippetContext
MEDIUMtradingagents/agents/analysts/sentiment_analyst.py147 return f"""You are a financial market sentiment analyst. Your task is to produce a comprehensive sentiment report foCODE
MEDIUMtradingagents/agents/analysts/sentiment_analyst.py172## How to analyze this data (best practices)COMMENT
Docstring Block Structure1 hit · 5 pts
SeverityFileLineSnippetContext
HIGHtradingagents/llm_clients/factory.py13Create an LLM client for the specified provider. Provider modules are imported lazily so that simply importing thisSTRING
Over-Commented Block3 hits · 3 pts
SeverityFileLineSnippetContext
LOWtradingagents/default_config.py101 # A tier may name its own provider and endpoint (#1440): the quick tier servesCOMMENT
LOWtradingagents/default_config.py121 # Cap on output tokens forwarded to every provider chat client. None leavesCOMMENT
LOWtradingagents/default_config.py161 # Statements come from SEC EDGAR as filed (US filers), then Yahoo; theCOMMENT
Cross-Language Confusion1 hit · 2 pts
SeverityFileLineSnippetContext
HIGHtradingagents/dataflows/vendors/stocktwits.py6user-labeled sentiment field (``Bullish``/``Bearish``/null), the messageSTRING
AI Structural Patterns2 hits · 2 pts
SeverityFileLineSnippetContext
LOWcli/main.py33CODE
LOWcli/main.py104CODE