AI Slop Code RIsk Monitor

simonlin1212/TradingAgents-astock

A股多Agent投研框架 — 适配A股数据源(龙虎榜/游资/解禁等),7位分析师基于A股规则的辩论决策,基于TradingAgents深度改造,适配大A。A-share multi-agent investment research framework — 7 AI analysts, bull/bear debate, risk assessment。

47.7 High pattern signal View on GitHub

Maintenance and Governance Review

This report summarizes scanner evidence for simonlin1212/TradingAgents-astock, a Python project with 3,667 GitHub stars. SynthScan examined 29,219 lines of code across 150 source files, recording 926 pattern matches distributed across 17 syntactic categories. The legacy adjusted pattern signal is 47.7 (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.

47.7
Adjusted Signal
47.7
Raw Pattern Score
100%
Time Factor
2026-10-11
Last Push
3.7K
Stars
Python
Language
29.2K
Lines of Code
150
Files
926
Pattern Hits
2026-10-12
Scan Date
0.08
HC Hit Rate

Risk Review · v3

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

Cognitive Ownership Risk 64.7/100 · HIGH

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

Hallucinated Dependency & Supply Chain Risk 22.6/100 · LOW

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

Agent Over-Engineering Ratio 85.9/100 · CRITICAL

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

PR Review Velocity Impact 88.7/100 · CRITICAL

Which changes need focused human review? 926 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 12MEDIUM 144LOW 770

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

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

Decorative Section Separators134 hits · 518 pts
SeverityFileLineSnippetContext
MEDIUM⚡README.md184# ── 方案 A:MiniMax(推荐,国内直连,性价比高)──────────COMMENT
MEDIUM⚡README.md188# ── 方案 B:DeepSeek ─────────────────────────────────COMMENT
MEDIUM⚡README.md192# ── 方案 C:智谱 GLM ─────────────────────────────────COMMENT
MEDIUM⚡README.md196# ── 方案 D:通义千问 Qwen ────────────────────────────COMMENT
MEDIUM⚡README.md200# ── 方案 E:OpenAI ───────────────────────────────────COMMENT
MEDIUM⚡README.md203# ── 方案 F:Anthropic ────────────────────────────────COMMENT
MEDIUM⚡README.md206# ── 方案 G:Kimi(Anthropic 兼容 API)────────────────COMMENT
MEDIUM⚡README.md228# ── MiniMax 示例(推荐)─────────────────────────────COMMENT
MEDIUM⚡README.md236# ── DeepSeek 示例 ───────────────────────────────────COMMENT
MEDIUM⚡README.md244# ── Anthropic + Kimi 示例 ───────────────────────────COMMENT
MEDIUM⚡README_en.md182# ── Option B: DeepSeek ─────────────────────────────────────────────────────COMMENT
MEDIUM⚡README_en.md186# ── Option C: Zhipu GLM ────────────────────────────────────────────────────COMMENT
MEDIUM⚡README_en.md190# ── Option D: Tongyi Qianwen Qwen ──────────────────────────────────────────COMMENT
MEDIUM⚡README_en.md194# ── Option E: OpenAI ───────────────────────────────────────────────────────COMMENT
MEDIUM⚡README_en.md197# ── Option F: Anthropic ────────────────────────────────────────────────────COMMENT
MEDIUM⚡README_en.md200# ── Option G: Kimi (Anthropic-compatible API) ───────────────────────────────COMMENT
MEDIUM⚡README_en.md223# ── MiniMax Example (Recommended) ──────────────────────────────────────────COMMENT
MEDIUM⚡README_en.md231# ── DeepSeek Example ───────────────────────────────────────────────────────COMMENT
MEDIUM⚡README_en.md239# ── Anthropic + Kimi Example ───────────────────────────────────────────────COMMENT
MEDIUMmain.py13# ── MiniMax 示例(推荐)─────────────────────────────COMMENT
MEDIUMmain.py21# ── DeepSeek 示例 ───────────────────────────────────COMMENT
MEDIUMweb/app.py30# ── Page config ──────────────────────────────────────────────────────────────COMMENT
MEDIUMweb/app.py39# ── Custom CSS ───────────────────────────────────────────────────────────────COMMENT
MEDIUMweb/app.py157# ── Build config ─────────────────────────────────────────────────────────────COMMENT
MEDIUMweb/app.py199# ── Sidebar ──────────────────────────────────────────────────────────────────COMMENT
MEDIUMweb/app.py205# ── Handle "Start Analysis" trigger ──────────────────────────────────────────COMMENT
MEDIUMweb/app.py243# ── Main area state machine ─────────────────────────────────────────────────COMMENT
MEDIUMweb/components/sidebar.py25# ── LLM config persistence ────────────────────────────────────────────────────COMMENT
MEDIUMweb/components/sidebar.py324 # ── 个人 Claude 订阅额度(可选,仅个人自用)────────────────────────COMMENT
MEDIUM⚡tests/test_structured_agents.py26# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/test_structured_agents.py28# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_structured_agents.py75# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_structured_agents.py77# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_structured_agents.py170# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_structured_agents.py172# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/test_signal_processing.py17# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/test_signal_processing.py19# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/test_signal_processing.py145# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/test_signal_processing.py147# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/test_role_llms.py32# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/test_role_llms.py34# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/test_role_llms.py63# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/test_role_llms.py65# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/test_role_llms.py101# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/test_role_llms.py103# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/test_role_llms.py234# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/test_role_llms.py236# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/test_output_token_limit.py31# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/test_output_token_limit.py33# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/test_output_token_limit.py120# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/test_output_token_limit.py122# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/test_performance.py33# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/test_performance.py35# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/test_performance.py69# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/test_performance.py71# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/test_performance.py113# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/test_performance.py115# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/test_performance.py144# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/test_performance.py146# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/test_performance.py183# ---------------------------------------------------------------------------COMMENT
74 more matches not shown…
Hyper-Verbose Identifiers482 hits · 509 pts
SeverityFileLineSnippetContext
LOWweb/stock_display.py126def _extract_stock_name_from_text(code: str, text: str) -> str | None:CODE
LOWweb/stock_display.py141def _extract_stock_name_from_state(code: str, final_state: dict) -> str | None:CODE
LOWweb/stock_display.py255def normalize_report_state_mentions(final_state: dict[str, Any], ticker: str) -> dict[str, Any]:CODE
LOWweb/components/sidebar.py173def _clear_analysis_artifacts(ticker: str, trade_date: str) -> None:CODE
LOWweb/components/sidebar.py178def _render_analysis_controls(raw_ticker: str, trade_date_value: date) -> None:CODE
LOWweb/components/report_viewer.py98def _render_missing_data_panel(CODE
LOW⚡tests/test_structured_agents.py33 def test_minimal_required_fields(self):CODE
LOW⚡tests/test_structured_agents.py42 def test_optional_fields_omitted_when_absent(self):CODE
LOW⚡tests/test_structured_agents.py110 def test_schema_has_no_level_fields(self):CODE
LOW⚡tests/test_structured_agents.py116 def test_prompt_forbids_levels(self):CODE
LOW⚡tests/test_structured_agents.py123 def test_render_never_emits_levels(self):CODE
LOW⚡tests/test_structured_agents.py132 def test_structured_path_produces_rendered_markdown(self):CODE
LOWtests/test_structured_agents.py148 def test_prompt_includes_investment_plan(self):CODE
LOWtests/test_structured_agents.py157 def test_falls_back_to_freetext_when_structured_unavailable(self):CODE
LOWtests/test_structured_agents.py207 def test_structured_path_produces_rendered_markdown(self):CODE
LOWtests/test_structured_agents.py232 def test_falls_back_to_freetext_when_structured_unavailable(self):CODE
LOWtests/test_progress_pause.py8def test_pause_blocks_until_resume() -> None:CODE
LOWtests/test_progress_pause.py31def test_completion_unblocks_paused_waiter() -> None:CODE
LOWtests/test_progress_pause.py55def test_stop_request_clears_progress_and_unblocks_waiter() -> None:CODE
LOWtests/test_progress_pause.py88def test_mark_stopped_returns_tracker_to_idle() -> None:CODE
LOWtests/test_news_data_tools.py7def test_get_news_rejects_non_code_ticker_without_vendor_call(monkeypatch):CODE
LOWtests/test_news_data_tools.py31def test_get_news_routes_valid_six_digit_code(monkeypatch):CODE
LOWtests/test_news_data_tools.py54def test_get_insider_transactions_rejects_non_code_ticker(monkeypatch):CODE
LOW⚡tests/test_context_compaction.py26 def test_empty_history_returns_empty(self):CODE
LOW⚡tests/test_context_compaction.py30 def test_under_max_turns_returns_unchanged(self):CODE
LOW⚡tests/test_context_compaction.py34 def test_exact_max_turns_returns_unchanged(self):CODE
LOW⚡tests/test_context_compaction.py40 def test_over_max_turns_compacts_old_rounds(self):CODE
LOWtests/test_context_compaction.py73 def test_first_sentence_truncates_long_text(self):CODE
LOWtests/test_context_compaction.py86 def test_bull_prompt_dedupes_last_bear_argument(self):CODE
LOWtests/test_context_compaction.py117 def test_aggressive_prompt_dedupes_last_arguments(self):CODE
LOWtests/test_pdf_export.py19def test_generate_pdf_with_chinese_markdown_when_cjk_font_available():CODE
LOWtests/test_pdf_export.py37def test_pdf_text_helpers_compact_alignment_whitespace():CODE
LOWtests/test_pdf_export.py42def test_pdf_multicell_defaults_to_left_alignment():CODE
LOWtests/test_pdf_export.py58def test_wqy_discovery_reuses_same_font_for_bold(monkeypatch, tmp_path):CODE
LOWtests/test_web_model_selection.py41def test_sentinel_renders_text_input_and_uses_typed_id(fake_st):CODE
LOWtests/test_web_model_selection.py55def test_real_model_value_passes_through_without_prompting(fake_st):CODE
LOWtests/test_web_model_selection.py63def test_every_provider_sentinel_is_intercepted(fake_st):CODE
LOWtests/test_web_model_selection.py80def test_deepseek_deep_index_three_was_the_reported_case(fake_st):CODE
LOWtests/test_web_model_selection.py102def test_validation_blocks_sentinel_or_empty(fake_st, quick, deep, expected_label):CODE
LOWtests/test_web_model_selection.py114def test_validation_passes_for_real_models(fake_st):CODE
LOWtests/test_web_model_selection.py131def test_validation_accepts_an_explicit_config(quick, deep, expected_label):CODE
LOWtests/test_web_model_selection.py142def test_validation_of_explicit_config_passes():CODE
LOWtests/test_web_model_selection.py149def test_app_guards_at_the_consumption_point():CODE
LOWtests/test_capabilities.py28def test_unknown_model_uses_permissive_defaults():CODE
LOW⚡tests/test_capabilities.py43def test_minimax_payload_enables_reasoning_split():CODE
LOW⚡tests/test_capabilities.py54def test_minimax_payload_does_not_enable_reasoning_split_for_custom_model():CODE
LOW⚡tests/test_capabilities.py65def test_minimax_structured_output_keeps_schema_and_tool_choice():CODE
LOWtests/test_capabilities.py106def test_explicit_tool_choice_is_dropped_for_unsupported_model():CODE
LOWtests/test_capabilities.py127def test_optional_tool_call_returning_none_still_falls_back_to_free_text():CODE
LOWtests/test_llm_config_persistence.py22def test_config_file_lives_under_user_home():CODE
LOWtests/test_llm_config_persistence.py29def test_save_creates_parent_dir_and_roundtrips_scope(fake_st):CODE
LOWtests/test_llm_config_persistence.py51def test_load_does_not_override_in_session_choice(fake_st):CODE
LOWtests/test_llm_config_persistence.py62def test_unknown_scope_or_provider_falls_back_to_first(fake_st):CODE
LOWtests/test_llm_config_persistence.py71def test_write_failure_only_warns(fake_st, monkeypatch, caplog):CODE
LOWtests/test_stock_display.py6def test_generate_markdown_uses_display_label(monkeypatch):CODE
LOW⚡tests/test_stock_display.py18def test_stock_display_label_resolves_code_to_name(monkeypatch):CODE
LOW⚡tests/test_stock_display.py26def test_stock_display_label_removes_invisible_name_chars(monkeypatch):CODE
LOW⚡tests/test_stock_display.py32def test_stock_display_label_resolves_name_input(monkeypatch):CODE
LOW⚡tests/test_stock_display.py39def test_stock_display_label_falls_back_to_state_name(monkeypatch):CODE
LOW⚡tests/test_stock_display.py48def test_stock_display_label_falls_back_to_original_input_name(monkeypatch):CODE
422 more matches not shown…
Unused Imports133 hits · 129 pts
SeverityFileLineSnippetContext
LOWtest.py2CODE
LOWtest.py2CODE
LOWtest.py2CODE
LOWtest.py2CODE
LOWtest.py2CODE
LOWweb/runner.py3CODE
LOWweb/stock_display.py3CODE
LOWweb/launch.py3CODE
LOWweb/app.py3CODE
LOWweb/progress.py3CODE
LOWweb/pdf_export.py3CODE
LOWweb/history.py3CODE
LOWweb/components/sidebar.py3CODE
LOWweb/components/report_viewer.py3CODE
LOWweb/components/progress_panel.py3CODE
LOWtests/test_progress_pause.py1CODE
LOWtests/test_context_compaction.py7CODE
LOWtests/test_web_model_selection.py14CODE
LOWtests/test_llm_config_persistence.py3CODE
LOWtests/test_report_viewer_pdf_gate.py3CODE
LOWtests/test_deepseek_v4_max_tokens.py16CODE
LOWtests/test_checkpoint_resume.py3CODE
LOWtests/test_checkpoint_resume.py6CODE
LOWtests/test_checkpoint_resume.py10CODE
LOWtests/test_agent_sdk_provider.py12CODE
LOWtests/test_web_history.py3CODE
LOWtests/test_missing_data_tasks.py3CODE
LOWcli/models.py2CODE
LOWcli/models.py2CODE
LOWcli/models.py2CODE
LOWcli/models.py3CODE
LOWcli/utils.py2CODE
LOWcli/utils.py2CODE
LOWcli/main.py1CODE
LOWcli/main.py15CODE
LOWcli/main.py22CODE
LOWcli/main.py29CODE
LOWcli/main.py30CODE
LOWcli/stats_handler.py2CODE
LOWtradingagents/performance.py19CODE
LOWtradingagents/performance.py22CODE
LOWtradingagents/graph/checkpointer.py6CODE
LOWtradingagents/graph/__init__.py3CODE
LOWtradingagents/graph/__init__.py4CODE
LOWtradingagents/graph/__init__.py5CODE
LOWtradingagents/graph/__init__.py6CODE
LOWtradingagents/graph/__init__.py7CODE
LOWtradingagents/graph/__init__.py8CODE
LOWtradingagents/graph/trading_graph.py18CODE
LOWtradingagents/graph/trading_graph.py22CODE
LOWtradingagents/graph/trading_graph.py22CODE
LOWtradingagents/graph/trading_graph.py22CODE
LOWtradingagents/graph/setup.py7CODE
LOWtradingagents/graph/propagation.py4CODE
LOWtradingagents/graph/signal_processing.py13CODE
LOWtradingagents/agents/__init__.py1CODE
LOWtradingagents/agents/__init__.py2CODE
LOWtradingagents/agents/__init__.py2CODE
LOWtradingagents/agents/__init__.py2CODE
LOWtradingagents/agents/__init__.py4CODE
73 more matches not shown…
Excessive Try-Catch Wrapping75 hits · 58 pts
SeverityFileLineSnippetContext
LOWtest_data_quality.py77 except Exception as e:CODE
LOWweb/runner.py190 except Exception as exc:CODE
LOWweb/runner.py194 except Exception:CODE
MEDIUMweb/runner.py187def _target() -> None:CODE
LOWweb/stock_display.py67 except Exception:CODE
LOWweb/stock_display.py84 except Exception:CODE
LOWweb/app.py256 except Exception as exc:CODE
LOWweb/pdf_export.py390 except Exception as exc:CODE
LOWweb/history.py141 except Exception:CODE
LOWweb/components/report_viewer.py234 except Exception as exc: # noqa: BLE001 — never let PDF crash the pageSTRING
LOWtests/test_agent_sdk_provider.py298 except Exception:CODE
LOWcli/utils.py155 except Exception as e:CODE
LOWcli/main.py1252 except Exception as e:CODE
LOWcli/announcements.py23 except Exception:CODE
LOWtradingagents/graph/trading_graph.py642 except Exception as e:CODE
LOWtradingagents/agents/quality_gate.py155 except Exception as e:STRING
LOWtradingagents/agents/utils/structured.py66 except Exception as exc:CODE
LOWtradingagents/dataflows/alpha_vantage_indicator.py220 except Exception as e:CODE
MEDIUMtradingagents/dataflows/alpha_vantage_indicator.py221 print(f"Error getting Alpha Vantage indicator data for {indicator}: {e}")CODE
LOWtradingagents/dataflows/y_finance.py166 except Exception as e:CODE
MEDIUMtradingagents/dataflows/y_finance.py167 print(f"Error getting bulk stockstats data: {e}")CODE
LOWtradingagents/dataflows/y_finance.py239 except Exception as e:CODE
LOWtradingagents/dataflows/y_finance.py301 except Exception as e:CODE
LOWtradingagents/dataflows/y_finance.py333 except Exception as e:CODE
LOWtradingagents/dataflows/y_finance.py365 except Exception as e:CODE
LOWtradingagents/dataflows/y_finance.py397 except Exception as e:CODE
LOWtradingagents/dataflows/y_finance.py421 except Exception as e:CODE
LOW⚡tradingagents/dataflows/a_stock.py479 except Exception:CODE
LOW⚡tradingagents/dataflows/a_stock.py728 except Exception as e:CODE
LOW⚡tradingagents/dataflows/a_stock.py2061 except Exception as e:CODE
LOW⚡tradingagents/dataflows/a_stock.py2311 except Exception as e:CODE
LOW⚡tradingagents/dataflows/a_stock.py2437 except Exception:CODE
LOW⚡tradingagents/dataflows/a_stock.py2518 except Exception as e:CODE
LOWtradingagents/dataflows/a_stock.py146 except Exception as e:CODE
LOWtradingagents/dataflows/a_stock.py289 except Exception as e: # mootdx 版本变动导致取不到就只用精选表,不影响主流程CODE
LOWtradingagents/dataflows/a_stock.py328 except Exception:CODE
LOWtradingagents/dataflows/a_stock.py370 except Exception as e: # 版本差异导致取不到就跳过保护,别影响主流程CODE
LOWtradingagents/dataflows/a_stock.py381 except Exception as e:CODE
LOWtradingagents/dataflows/a_stock.py425 except Exception as e:CODE
LOWtradingagents/dataflows/a_stock.py444 except Exception as e:CODE
LOWtradingagents/dataflows/a_stock.py793 except Exception as e:CODE
LOWtradingagents/dataflows/a_stock.py800 except Exception:CODE
LOWtradingagents/dataflows/a_stock.py855 except Exception as e:CODE
LOWtradingagents/dataflows/a_stock.py863 except Exception:CODE
LOWtradingagents/dataflows/a_stock.py975 except Exception as e:CODE
LOWtradingagents/dataflows/a_stock.py1016 except Exception as e:CODE
LOWtradingagents/dataflows/a_stock.py1041 except Exception as e:CODE
LOWtradingagents/dataflows/a_stock.py1069 except Exception as e:CODE
LOWtradingagents/dataflows/a_stock.py1139 except Exception as e:CODE
LOWtradingagents/dataflows/a_stock.py1141 except Exception as e:CODE
LOWtradingagents/dataflows/a_stock.py1154 except Exception as e:CODE
LOWtradingagents/dataflows/a_stock.py1356 except Exception as e:CODE
LOWtradingagents/dataflows/a_stock.py1387 except Exception as e:CODE
LOWtradingagents/dataflows/a_stock.py1418 except Exception as e:CODE
LOWtradingagents/dataflows/a_stock.py1531 except Exception as e:CODE
LOWtradingagents/dataflows/a_stock.py1538 except Exception as e:CODE
LOWtradingagents/dataflows/a_stock.py1621 except Exception as e:CODE
LOWtradingagents/dataflows/a_stock.py1648 except Exception as e:CODE
LOWtradingagents/dataflows/a_stock.py1724 except Exception as e:CODE
LOWtradingagents/dataflows/a_stock.py1815 except Exception as e:CODE
15 more matches not shown…
Empty Error Handlers9 hits · 45 pts
SeverityFileLineSnippetContext
HIGHtests/test_agent_sdk_provider.py298except Exception:CODE
HIGHtradingagents/graph/checkpointer.py87except sqlite3.OperationalError:CODE
HIGHtradingagents/dataflows/a_stock.py2416except Exception:CODE
HIGHtradingagents/dataflows/a_stock.py2437except Exception:CODE
HIGHtradingagents/dataflows/a_stock.py1552except (ValueError, IndexError):CODE
HIGHtradingagents/dataflows/alpha_vantage_common.py86except json.JSONDecodeError:CODE
HIGHtradingagents/dataflows/missing_data.py429except Exception:CODE
HIGHtradingagents/dataflows/missing_data.py479except OSError:CODE
HIGHtradingagents/dataflows/yfinance_news.py30except (ValueError, AttributeError):CODE
Deep Nesting25 hits · 18 pts
SeverityFileLineSnippetContext
LOWweb/stock_display.py91CODE
LOWweb/components/sidebar.py369CODE
LOWtests/test_web_model_selection.py63CODE
LOWcli/main.py977CODE
LOWtradingagents/graph/trading_graph.py495CODE
LOWtradingagents/graph/trading_graph.py785CODE
LOWtradingagents/dataflows/alpha_vantage_indicator.py3CODE
LOWtradingagents/dataflows/a_stock.py124CODE
LOWtradingagents/dataflows/a_stock.py385CODE
LOWtradingagents/dataflows/a_stock.py982CODE
LOWtradingagents/dataflows/a_stock.py1196CODE
LOWtradingagents/dataflows/a_stock.py1584CODE
LOWtradingagents/dataflows/a_stock.py1731CODE
LOWtradingagents/dataflows/a_stock.py1921CODE
LOWtradingagents/dataflows/a_stock.py1943CODE
LOWtradingagents/dataflows/a_stock.py1963CODE
LOWtradingagents/dataflows/a_stock.py2084CODE
LOWtradingagents/dataflows/a_stock.py2162CODE
LOWtradingagents/dataflows/a_stock.py2319CODE
LOWtradingagents/dataflows/a_stock.py2528CODE
LOWtradingagents/dataflows/missing_data.py129CODE
LOWtradingagents/dataflows/yfinance_news.py51CODE
LOWtradingagents/dataflows/yfinance_news.py107CODE
LOWtradingagents/llm_clients/claude_agent_sdk_client.py590CODE
LOWtradingagents/llm_clients/openai_client.py260CODE
Verbosity Indicators8 hits · 18 pts
SeverityFileLineSnippetContext
LOW⚡cli/main.py502 # Step 1: Ticker symbolCOMMENT
LOW⚡cli/main.py512 # Step 2: Analysis dateCOMMENT
LOW⚡cli/main.py533 # Step 3: Output languageCOMMENT
LOW⚡cli/main.py542 # Step 4: Select analystsCOMMENT
LOW⚡cli/main.py553 # Step 5: Research depthCOMMENT
LOW⚡cli/main.py561 # Step 6: LLM ProviderCOMMENT
LOW⚡cli/main.py569 # Step 7: Thinking agentsCOMMENT
LOW⚡cli/main.py578 # Step 8: Provider-specific thinking configurationCOMMENT
Structural Annotation Overuse8 hits · 18 pts
SeverityFileLineSnippetContext
LOW⚡cli/main.py502 # Step 1: Ticker symbolCOMMENT
LOW⚡cli/main.py512 # Step 2: Analysis dateCOMMENT
LOW⚡cli/main.py533 # Step 3: Output languageCOMMENT
LOW⚡cli/main.py542 # Step 4: Select analystsCOMMENT
LOW⚡cli/main.py553 # Step 5: Research depthCOMMENT
LOW⚡cli/main.py561 # Step 6: LLM ProviderCOMMENT
LOW⚡cli/main.py569 # Step 7: Thinking agentsCOMMENT
LOW⚡cli/main.py578 # Step 8: Provider-specific thinking configurationCOMMENT
Self-Referential Comments5 hits · 16 pts
SeverityFileLineSnippetContext
MEDIUMtests/test_checkpoint_resume.py91 # Create a checkpoint by crashingCOMMENT
MEDIUM⚡cli/main.py494 # Create a boxed questionnaire for each stepCOMMENT
MEDIUMcli/main.py43# Create a deque to store recent messages with a maximum lengthCOMMENT
MEDIUMtradingagents/dataflows/y_finance.py207 # Create a dictionary mapping date strings to indicator valuesCOMMENT
MEDIUMtradingagents/dataflows/alpha_vantage_common.py55 # Create a copy of params to avoid modifying the originalCOMMENT
Modern Structural Boilerplate15 hits · 15 pts
SeverityFileLineSnippetContext
LOWweb/progress.py163 def update_stats(self, llm: int, tool: int, tok_in: int, tok_out: int) -> None:CODE
LOWweb/history.py17logger = logging.getLogger(__name__)CODE
LOWweb/components/sidebar.py23logger = logging.getLogger(__name__)CODE
LOWtradingagents/graph/__init__.py10__all__ = [CODE
LOWtradingagents/graph/trading_graph.py12logger = logging.getLogger(__name__)CODE
LOWtradingagents/agents/__init__.py26__all__ = [CODE
LOWtradingagents/agents/utils/structured.py26logger = logging.getLogger(__name__)CODE
LOWtradingagents/dataflows/stockstats_utils.py13logger = logging.getLogger(__name__)CODE
LOW⚡tradingagents/dataflows/a_stock.py38logger = logging.getLogger(__name__)CODE
LOWtradingagents/dataflows/utils.py9logger = logging.getLogger(__name__)CODE
LOWtradingagents/llm_clients/claude_agent_sdk_client.py41logger = logging.getLogger(__name__)CODE
LOWtradingagents/llm_clients/base_client.py6logger = logging.getLogger(__name__)CODE
LOWtradingagents/llm_clients/__init__.py4__all__ = ["BaseLLMClient", "create_llm_client"]CODE
LOWtradingagents/llm_clients/openai_client.py19logger = logging.getLogger(__name__)CODE
LOWtradingagents/llm_clients/anthropic_client.py10logger = logging.getLogger(__name__)CODE
Over-Commented Block15 hits · 14 pts
SeverityFileLineSnippetContext
LOWpyproject.toml61# combination satisfies both — the conflict is structural, not a bad pin.COMMENT
LOWREADME.md241# "output_language": "Chinese",COMMENT
LOWmain.py21# ── DeepSeek 示例 ───────────────────────────────────COMMENT
LOWweb/components/sidebar.py21)COMMENT
LOWtests/test_llm_timeout.py121 def test_anthropic_and_google_do_not_zero_max_retries(self):COMMENT
LOWtradingagents/default_config.py21 # provider-specific URL here would leak (e.g. OpenAI's /v1 was previouslyCOMMENT
LOWtradingagents/default_config.py41 # 子进程)不走该链路,暂不受此超时保护(已知缺口)。COMMENT
LOWtradingagents/default_config.py61 # Provider-specific thinking configurationCOMMENT
LOWtradingagents/default_config.py81 # 订阅调用失败 / 撞额度时的兜底。None → 回落到 llm_provider + deep_think_llm。COMMENT
LOWtradingagents/graph/trading_graph.py201 # Initialize LLMs with provider-specific thinking configurationCOMMENT
LOWtradingagents/graph/trading_graph.py421 # `reasoning_effort`、google 的 `thinking_level`、anthropic 的 `effort`COMMENT
LOWtradingagents/agents/utils/rating.py61# 结果是静默落到默认值 Hold —— 决策评级被悄悄改写,报告里完全看不出来。COMMENT
LOWtradingagents/dataflows/a_stock.py1261 return pd.DataFrame()COMMENT
LOWtradingagents/llm_clients/claude_agent_sdk_client.py601 # was actually blocked. Raising on anything else discards aCOMMENT
LOWtradingagents/llm_clients/openai_client.py341COMMENT
Fake / Example Data8 hits · 11 pts
SeverityFileLineSnippetContext
LOWtests/conftest.py31 monkeypatch.setenv(env_var, os.environ.get(env_var, "placeholder"))CODE
LOW⚡tests/test_capabilities.py46 api_key="placeholder",CODE
LOW⚡tests/test_capabilities.py57 api_key="placeholder",CODE
LOW⚡tests/test_capabilities.py71 api_key="placeholder",CODE
LOW⚡tests/test_deepseek_reasoning.py56 os.environ.setdefault("DEEPSEEK_API_KEY", "placeholder")CODE
LOW⚡tests/test_deepseek_reasoning.py59 api_key="placeholder",CODE
LOW⚡tests/test_deepseek_reasoning.py126 api_key="placeholder",CODE
LOWtests/test_deepseek_reasoning.py143 api_key="placeholder",CODE
Cross-Language Confusion2 hits · 10 pts
SeverityFileLineSnippetContext
HIGHweb/pdf_export.py150 ' pip uninstall -y fpdf fpdf2 && pip install "fpdf2>=2.8.0"\n'CODE
HIGHweb/pdf_export.py161 ' pip uninstall -y fpdf && pip install "fpdf2>=2.8.0"\n'CODE
Modern AI Meta-Vocabulary2 hits · 5 pts
SeverityFileLineSnippetContext
MEDIUMCHANGELOG.md1583- [@Bcardo](https://github.com/Bcardo) — memory-log redesign (#579), empty-memory hallucination report (#572), encoding CODE
MEDIUMtradingagents/llm_clients/claude_agent_sdk_client.py47# to run a multi-turn agentic loop internally (call tool → read result → …).COMMENT
Docstring Block Structure1 hit · 5 pts
SeverityFileLineSnippetContext
HIGHtradingagents/llm_clients/factory.py22Create an LLM client for the specified provider. Provider modules are imported lazily so that simply importing thisSTRING
Redundant / Tautological Comments3 hits · 4 pts
SeverityFileLineSnippetContext
LOWtradingagents/dataflows/alpha_vantage_indicator.py194 # Check if date is in our rangeCOMMENT
LOWtradingagents/dataflows/y_finance.py24 # Check if data is emptyCOMMENT
LOWtradingagents/dataflows/alpha_vantage_common.py78 # Check if response is JSON (error responses are typically JSON)COMMENT
AI Structural Patterns1 hit · 1 pts
SeverityFileLineSnippetContext
LOWtradingagents/dataflows/stockstats_utils.py93CODE