AI Slop Code RIsk Monitor

virattt/ai-hedge-fund

An AI Hedge Fund Team

62.1 High pattern signal View on GitHub

Maintenance and Governance Review

This report summarizes scanner evidence for virattt/ai-hedge-fund, a Python project with 63,927 GitHub stars. SynthScan examined 17,481 lines of code across 108 source files, recording 665 pattern matches distributed across 11 syntactic categories. The legacy adjusted pattern signal is 62.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.

62.1
Adjusted Signal
62.1
Raw Pattern Score
100%
Time Factor
2026-10-02
Last Push
63.9K
Stars
Python
Language
17.5K
Lines of Code
108
Files
665
Pattern Hits
2026-10-12
Scan Date
0.06
HC Hit Rate

Risk Review · v3

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

Cognitive Ownership Risk 64.5/100 · HIGH

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

Hallucinated Dependency & Supply Chain Risk 40.9/100 · MEDIUM

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

Agent Over-Engineering Ratio 91.5/100 · CRITICAL

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

PR Review Velocity Impact 93.9/100 · CRITICAL

Which changes need focused human review? 665 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 6MEDIUM 141LOW 518

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 665 distinct pattern matches across 11 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 Separators140 hits · 492 pts
SeverityFileLineSnippetContext
MEDIUMhedge_fund/run.py99# ---------------------------------------------------------------------------COMMENT
MEDIUMhedge_fund/run.py101# ---------------------------------------------------------------------------COMMENT
MEDIUMhedge_fund/run.py179# ---------------------------------------------------------------------------COMMENT
MEDIUMhedge_fund/run.py181# ---------------------------------------------------------------------------COMMENT
MEDIUMhedge_fund/run.py224# ---------------------------------------------------------------------------COMMENT
MEDIUMhedge_fund/run.py226# ---------------------------------------------------------------------------COMMENT
MEDIUMhedge_fund/models.py10# ---------------------------------------------------------------------------COMMENT
MEDIUMhedge_fund/models.py12# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡hedge_fund/paper/test_tick.py62# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡hedge_fund/paper/test_tick.py64# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡hedge_fund/paper/test_tick.py100# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡hedge_fund/paper/test_tick.py102# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡hedge_fund/paper/test_tick.py114# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡hedge_fund/paper/test_tick.py116# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡hedge_fund/pipeline/test_stages.py96# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡hedge_fund/pipeline/test_stages.py98# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡hedge_fund/pipeline/test_stages.py203# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡hedge_fund/pipeline/test_stages.py205# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡hedge_fund/pipeline/test_stages.py222# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡hedge_fund/pipeline/test_stages.py224# ---------------------------------------------------------------------------COMMENT
MEDIUMhedge_fund/pipeline/test_stages.py24# ---------------------------------------------------------------------------COMMENT
MEDIUMhedge_fund/pipeline/test_stages.py26# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡hedge_fund/pipeline/test_session.py51# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡hedge_fund/pipeline/test_session.py53# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡hedge_fund/pipeline/test_session.py71# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡hedge_fund/pipeline/test_session.py73# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡hedge_fund/pipeline/test_session.py119# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡hedge_fund/pipeline/test_session.py121# ---------------------------------------------------------------------------COMMENT
MEDIUMhedge_fund/pipeline/stages.py169# ---------------------------------------------------------------------------COMMENT
MEDIUMhedge_fund/pipeline/stages.py171# ---------------------------------------------------------------------------COMMENT
MEDIUMhedge_fund/event_study/test_event_study.py20# ---------------------------------------------------------------------------COMMENT
MEDIUMhedge_fund/event_study/test_event_study.py22# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡hedge_fund/event_study/test_event_study.py102# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡hedge_fund/event_study/test_event_study.py104# ---------------------------------------------------------------------------COMMENT
MEDIUMhedge_fund/event_study/test_event_study.py125# ---------------------------------------------------------------------------COMMENT
MEDIUMhedge_fund/event_study/test_event_study.py127# ---------------------------------------------------------------------------COMMENT
MEDIUMhedge_fund/event_study/test_event_study.py175# ---------------------------------------------------------------------------COMMENT
MEDIUMhedge_fund/event_study/test_event_study.py177# ---------------------------------------------------------------------------COMMENT
MEDIUMhedge_fund/event_study/engine.py64# ---------------------------------------------------------------------------COMMENT
MEDIUMhedge_fund/event_study/engine.py66# ---------------------------------------------------------------------------COMMENT
MEDIUMhedge_fund/event_study/engine.py133# ---------------------------------------------------------------------------COMMENT
MEDIUMhedge_fund/event_study/engine.py135# ---------------------------------------------------------------------------COMMENT
MEDIUMhedge_fund/event_study/engine.py208# ---------------------------------------------------------------------------COMMENT
MEDIUMhedge_fund/event_study/engine.py210# ---------------------------------------------------------------------------COMMENT
MEDIUMhedge_fund/event_study/engine.py294# ---------------------------------------------------------------------------COMMENT
MEDIUMhedge_fund/event_study/engine.py296# ---------------------------------------------------------------------------COMMENT
MEDIUMhedge_fund/event_study/engine.py360# ---------------------------------------------------------------------------COMMENT
MEDIUMhedge_fund/event_study/engine.py362# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡hedge_fund/backtesting/test_fund.py94# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡hedge_fund/backtesting/test_fund.py96# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡hedge_fund/backtesting/test_fund.py126# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡hedge_fund/backtesting/test_fund.py128# ---------------------------------------------------------------------------COMMENT
MEDIUMhedge_fund/backtesting/test_fund.py10# ---------------------------------------------------------------------------COMMENT
MEDIUMhedge_fund/backtesting/test_fund.py12# ---------------------------------------------------------------------------COMMENT
MEDIUMhedge_fund/backtesting/engine.py94 # ------------------------------------------------------------------COMMENT
MEDIUMhedge_fund/backtesting/engine.py96 # ------------------------------------------------------------------COMMENT
MEDIUMhedge_fund/backtesting/engine.py157 # ------------------------------------------------------------------COMMENT
MEDIUMhedge_fund/backtesting/engine.py159 # ------------------------------------------------------------------COMMENT
MEDIUMhedge_fund/backtesting/engine.py202 # ------------------------------------------------------------------COMMENT
MEDIUMhedge_fund/backtesting/engine.py204 # ------------------------------------------------------------------COMMENT
80 more matches not shown…
Hyper-Verbose Identifiers289 hits · 323 pts
SeverityFileLineSnippetContext
LOWhedge_fund/test_run.py73def test_cli_rejects_invalid_configuration_before_clients(tmp_path, monkeypatch, capsys, command, unversioned):CODE
LOWhedge_fund/test_run.py104def test_no_arguments_launches_the_app(monkeypatch):CODE
LOWhedge_fund/test_run.py114def test_backtest_prints_json_and_files_a_research_copy(tmp_path, monkeypatch, capsys, offline, mode):CODE
LOWhedge_fund/test_run.py134def test_backtest_defaults_end_to_the_latest_completed_session(tmp_path, monkeypatch, capsys, offline):CODE
LOWhedge_fund/test_run.py141def test_paper_flow_create_tick_status_halt_resume(tmp_path, monkeypatch, capsys, offline):CODE
LOW⚡hedge_fund/paper/test_tick.py66def test_deploy_lays_out_the_fund_directory(tmp_path, SPEC):CODE
LOW⚡hedge_fund/paper/test_tick.py83def test_deploy_rejects_unsafe_names(tmp_path, bad, SPEC):CODE
LOW⚡hedge_fund/paper/test_tick.py91def test_load_deployed_reports_the_path_on_bad_files(tmp_path, SPEC):CODE
LOW⚡hedge_fund/paper/test_tick.py104def test_next_session_is_latest_completed_for_a_fresh_fund_and_the_next_one_after(clock):CODE
LOW⚡hedge_fund/paper/test_tick.py118def test_ticks_advance_one_session_each_and_match_the_backtest(tmp_path, clock, SPEC):CODE
LOWhedge_fund/paper/test_tick.py144def test_explicit_session_is_idempotent_and_must_be_the_next_one(tmp_path, clock, SPEC):CODE
LOWhedge_fund/paper/test_tick.py157def test_redo_runs_the_latest_session_again_and_replaces_its_record(tmp_path, clock, SPEC):CODE
LOWhedge_fund/paper/test_tick.py199def test_redo_refuses_a_halted_fund_and_leaves_it_untouched(tmp_path, clock, SPEC):CODE
LOWhedge_fund/paper/test_tick.py210def test_failure_inside_advance_halts_the_fund_and_a_resume_clears_it(tmp_path, clock, SPEC):CODE
LOWhedge_fund/paper/test_tick.py229def test_broker_drift_between_ticks_is_caught_and_halts(tmp_path, clock, SPEC):CODE
LOWhedge_fund/paper/test_ledger.py29def test_append_then_replay_rebuilds_the_state(tmp_path, records):CODE
LOWhedge_fund/paper/test_ledger.py51def test_append_refuses_duplicates_gaps_and_bad_hashes(tmp_path, records):CODE
LOWhedge_fund/paper/test_ledger.py69def test_replay_detects_an_edited_record(tmp_path, records):CODE
LOWhedge_fund/paper/test_ledger.py81def test_replay_detects_a_missing_link(tmp_path, records):CODE
LOWhedge_fund/paper/test_ledger.py90def test_kill_switch_round_trips_and_logs(tmp_path):CODE
LOW⚡hedge_fund/brokers/test_sim.py9def test_buy_updates_cash_and_position():CODE
LOW⚡hedge_fund/brokers/test_sim.py18def test_sell_updates_cash_and_position():CODE
LOW⚡hedge_fund/brokers/test_sim.py26def test_position_removed_at_zero():CODE
LOW⚡hedge_fund/brokers/test_sim.py33def test_sell_past_zero_creates_short():CODE
LOW⚡hedge_fund/brokers/test_sim.py40def test_nonpositive_price_raises():CODE
LOW⚡hedge_fund/brokers/test_sim.py47def test_nonfinite_price_raises_without_mutating_book(price):CODE
LOW⚡hedge_fund/brokers/test_sim.py55def test_positions_returns_a_copy():CODE
LOWhedge_fund/brokers/test_paper.py11def test_book_round_trips_through_the_file(tmp_path):CODE
LOWhedge_fund/brokers/test_paper.py29def test_create_refuses_to_overwrite_and_open_requires_a_book(tmp_path):CODE
LOWhedge_fund/brokers/test_paper.py38def test_rejected_order_leaves_the_file_untouched(tmp_path):CODE
LOW⚡hedge_fund/pipeline/test_stages.py100def test_full_cycle_record_is_consistent():CODE
LOW⚡hedge_fund/pipeline/test_stages.py207def test_all_abstain_closes_the_book_to_flat():CODE
LOW⚡hedge_fund/pipeline/test_stages.py226def test_unpriced_unowned_ticker_skipped_and_analysts_never_called():CODE
LOW⚡hedge_fund/pipeline/test_stages.py265def test_empty_universe_raises():CODE
LOW⚡hedge_fund/pipeline/test_stages.py272def test_analyst_error_propagates():CODE
LOW⚡hedge_fund/pipeline/test_stages.py282def test_changed_mode_is_enforced_on_next_cycle():CODE
LOWhedge_fund/pipeline/test_stages.py131def test_netting_math_two_strategies_unequal_slices():CODE
LOWhedge_fund/pipeline/test_stages.py175def test_deterministic_and_json_round_trips():CODE
LOWhedge_fund/pipeline/test_stages.py189def test_second_cycle_rebalances_not_restarts():CODE
LOWhedge_fund/pipeline/test_stages.py240def test_unpriced_held_ticker_raises():CODE
LOWhedge_fund/pipeline/test_stages.py251def test_universe_is_a_run_time_argument():CODE
LOWhedge_fund/pipeline/test_stages.py302def test_all_modes_execute_and_preserve_complete_records(mode):CODE
LOWhedge_fund/pipeline/test_stages.py325def test_neutral_flat_strategy_reserves_capital_and_closes_prior_exposure():CODE
LOWhedge_fund/pipeline/test_stages.py344def test_neutral_fund_scaling_preserves_sleeves_with_overlap():CODE
LOWhedge_fund/pipeline/test_stages.py361def test_clipping_attribution_preserves_exactly_offset_contributions():CODE
LOWhedge_fund/pipeline/test_stages.py375def test_whole_share_rounding_keeps_target_neutral_without_changing_orders():CODE
LOWhedge_fund/pipeline/test_stages.py388def test_invalid_risk_output_never_reaches_broker(monkeypatch, case, expected):CODE
LOWhedge_fund/pipeline/test_stages.py415def test_invalid_short_targets_never_reach_broker(monkeypatch, mode, expected):CODE
LOWhedge_fund/pipeline/test_stages.py433def test_strategy_gross_violation_is_rejected_even_when_fund_risk_clips_it(monkeypatch):CODE
LOWhedge_fund/pipeline/test_timing.py59def test_weekend_refresh_replaces_targets_and_uses_execution_prices():CODE
LOW⚡hedge_fund/pipeline/test_timing.py81def test_holiday_uses_next_observed_session_and_preceding_day():CODE
LOW⚡hedge_fund/pipeline/test_timing.py88def test_same_cutoff_reuses_assessment_and_records_are_snapshots():CODE
LOW⚡hedge_fund/pipeline/test_timing.py98def test_execution_revalues_existing_positions_before_sizing():CODE
LOWhedge_fund/pipeline/test_timing.py112def test_entire_basket_fails_before_orders_if_execution_price_invalid(bad_price):CODE
LOWhedge_fund/pipeline/test_timing.py126def test_missing_held_price_is_required_even_when_target_is_zero():CODE
LOWhedge_fund/pipeline/test_timing.py137def test_refresh_failure_does_not_fall_back_to_original_targets():CODE
LOWhedge_fund/pipeline/test_timing.py153def test_invalid_projected_orders_fail_before_submission(monkeypatch):CODE
LOWhedge_fund/pipeline/test_timing.py168def test_nonfinite_equity_fails_before_submission():CODE
LOWhedge_fund/pipeline/test_timing.py179def test_current_new_york_day_is_excluded_even_after_close(monkeypatch, hour):CODE
LOWhedge_fund/pipeline/test_timing.py200def test_assessment_has_no_broker_fields_and_rejects_same_day_execution():CODE
229 more matches not shown…
Unused Imports173 hits · 172 pts
SeverityFileLineSnippetContext
LOWhedge_fund/run.py39CODE
LOWhedge_fund/models.py3CODE
LOWhedge_fund/paths.py17CODE
LOWhedge_fund/paper/ledger.py14CODE
LOWhedge_fund/paper/deployed.py10CODE
LOWhedge_fund/paper/__init__.py15CODE
LOWhedge_fund/paper/__init__.py15CODE
LOWhedge_fund/paper/__init__.py15CODE
LOWhedge_fund/paper/__init__.py15CODE
LOWhedge_fund/paper/__init__.py15CODE
LOWhedge_fund/paper/__init__.py15CODE
LOWhedge_fund/paper/__init__.py23CODE
LOWhedge_fund/paper/__init__.py23CODE
LOWhedge_fund/paper/__init__.py24CODE
LOWhedge_fund/paper/__init__.py24CODE
LOWhedge_fund/paper/__init__.py24CODE
LOWhedge_fund/paper/__init__.py24CODE
LOWhedge_fund/paper/tick.py17CODE
LOWhedge_fund/brokers/sim.py14CODE
LOWhedge_fund/brokers/models.py8CODE
LOWhedge_fund/brokers/protocol.py8CODE
LOWhedge_fund/brokers/paper.py16CODE
LOWhedge_fund/brokers/__init__.py3CODE
LOWhedge_fund/brokers/__init__.py3CODE
LOWhedge_fund/brokers/__init__.py3CODE
LOWhedge_fund/brokers/__init__.py4CODE
LOWhedge_fund/brokers/__init__.py5CODE
LOWhedge_fund/brokers/__init__.py6CODE
LOWhedge_fund/pipeline/execution.py11CODE
LOWhedge_fund/pipeline/models.py10CODE
LOWhedge_fund/pipeline/session.py25CODE
LOWhedge_fund/pipeline/__init__.py3CODE
LOWhedge_fund/pipeline/__init__.py4CODE
LOWhedge_fund/pipeline/__init__.py4CODE
LOWhedge_fund/pipeline/__init__.py4CODE
LOWhedge_fund/pipeline/__init__.py4CODE
LOWhedge_fund/pipeline/__init__.py10CODE
LOWhedge_fund/pipeline/__init__.py10CODE
LOWhedge_fund/pipeline/__init__.py10CODE
LOWhedge_fund/pipeline/__init__.py10CODE
LOWhedge_fund/pipeline/__init__.py10CODE
LOWhedge_fund/pipeline/__init__.py10CODE
LOWhedge_fund/pipeline/__init__.py10CODE
LOWhedge_fund/pipeline/__init__.py19CODE
LOWhedge_fund/pipeline/__init__.py19CODE
LOWhedge_fund/pipeline/stages.py11CODE
LOWhedge_fund/event_study/plot.py14CODE
LOWhedge_fund/event_study/models.py12CODE
LOWhedge_fund/event_study/test_event_study.py3CODE
LOWhedge_fund/event_study/__init__.py7CODE
LOWhedge_fund/event_study/__init__.py8CODE
LOWhedge_fund/event_study/__init__.py8CODE
LOWhedge_fund/event_study/__init__.py8CODE
LOWhedge_fund/event_study/__init__.py8CODE
LOWhedge_fund/event_study/__init__.py8CODE
LOWhedge_fund/event_study/__init__.py8CODE
LOWhedge_fund/event_study/__init__.py16CODE
LOWhedge_fund/event_study/__init__.py16CODE
LOWhedge_fund/event_study/__init__.py16CODE
LOWhedge_fund/event_study/engine.py26CODE
113 more matches not shown…
Empty Error Handlers4 hits · 20 pts
SeverityFileLineSnippetContext
HIGHhedge_fund/llm/client.py348except json.JSONDecodeError:CODE
HIGHhedge_fund/llm/client.py343except json.JSONDecodeError:CODE
HIGHhedge_fund/tui/app.py2255except Exception:CODE
HIGHhedge_fund/tui/app.py3022except Exception:CODE
Deep Nesting19 hits · 18 pts
SeverityFileLineSnippetContext
LOWhedge_fund/pipeline/test_stages.py388CODE
LOWhedge_fund/llm/client.py207CODE
LOWhedge_fund/llm/client.py225CODE
LOWhedge_fund/llm/client.py295CODE
LOWhedge_fund/llm/client.py333CODE
LOWhedge_fund/llm/test_contract.py213CODE
LOWhedge_fund/llm/test_client.py524CODE
LOWhedge_fund/tui/app.py828CODE
LOWhedge_fund/tui/app.py874CODE
LOWhedge_fund/tui/app.py2165CODE
LOWhedge_fund/tui/app.py2202CODE
LOWhedge_fund/tui/app.py2238CODE
LOWhedge_fund/tui/app.py2368CODE
LOWhedge_fund/tui/app.py2513CODE
LOWhedge_fund/tui/app.py2997CODE
LOWhedge_fund/tui/app.py2241CODE
LOWhedge_fund/tui/app.py3008CODE
LOWhedge_fund/portfolio/construction.py29CODE
LOWhedge_fund/portfolio/validation.py16CODE
Modern Structural Boilerplate17 hits · 16 pts
SeverityFileLineSnippetContext
LOWhedge_fund/paper/__init__.py26__all__ = [CODE
LOWhedge_fund/brokers/__init__.py8__all__ = ["Broker", "Fill", "Order", "PaperBroker", "Position", "SimBroker"]CODE
LOWhedge_fund/pipeline/__init__.py21__all__ = [CODE
LOWhedge_fund/event_study/__init__.py22__all__ = [CODE
LOWhedge_fund/event_study/engine.py50logger = logging.getLogger(__name__)CODE
LOWhedge_fund/llm/__init__.py25__all__ = [CODE
LOWhedge_fund/backtesting/__init__.py16__all__ = [CODE
LOWhedge_fund/backtesting/engine.py38logger = logging.getLogger(__name__)CODE
LOWhedge_fund/tui/app.py182 def _set_model(self, model_id: str | None) -> None:CODE
LOWhedge_fund/signals/__init__.py42__all__ = [CODE
LOWhedge_fund/signals/llm_agent.py34logger = logging.getLogger(__name__)CODE
LOWhedge_fund/features/__init__.py15__all__ = [CODE
LOWhedge_fund/portfolio/__init__.py8__all__ = ["BlendResult", "blend_signals"]CODE
LOWhedge_fund/data/client.py21logger = logging.getLogger(__name__)CODE
LOWhedge_fund/data/__init__.py18__all__ = [CODE
LOWhedge_fund/risk/__init__.py8__all__ = ["ClampEvent", "RiskLimits", "RiskResult", "apply_limits"]CODE
LOWhedge_fund/fund/__init__.py17__all__ = [CODE
Excessive Try-Catch Wrapping10 hits · 12 pts
SeverityFileLineSnippetContext
LOWhedge_fund/paper/tick.py138 except Exception as exc:CODE
LOWhedge_fund/tui/app.py1733 except Exception as exc:CODE
LOWhedge_fund/tui/app.py2235 except Exception as exc: # fail loud, in the UICODE
LOWhedge_fund/tui/app.py2255 except Exception:CODE
LOWhedge_fund/tui/app.py2957 except Exception as exc: # fail loud, in the UICODE
LOWhedge_fund/tui/app.py3022 except Exception:CODE
MEDIUMhedge_fund/tui/app.py1995def _load(self) -> None:CODE
LOWhedge_fund/signals/llm_agent.py94 except Exception as exc:CODE
LOW⚡hedge_fund/signals/llm_agent.py108 except Exception as exc:CODE
LOWhedge_fund/features/breakpoints.py125 except Exception:CODE
Cross-Language Confusion2 hits · 11 pts
SeverityFileLineSnippetContext
HIGH⚡hedge_fund/data/models.py40 All ratio/metric fields are nullable (NaN/Inf sanitised to null).STRING
HIGHhedge_fund/data/models.py213 # Period-over-period changes (omitted from response if null)COMMENT
Verbosity Indicators5 hits · 10 pts
SeverityFileLineSnippetContext
LOW⚡hedge_fund/event_study/engine.py153 # Step 1: Get earnings filings for this tickerCOMMENT
LOW⚡hedge_fund/event_study/engine.py158 # Step 2: Drop retrospective rows (e.g., Q4 data parsed from a Q1 8-K)COMMENT
LOW⚡hedge_fund/event_study/engine.py163 # Step 3: Fetch stock prices — one call covering all events.COMMENT
LOWhedge_fund/event_study/engine.py176 # Step 4: Build aligned return series.COMMENT
LOWhedge_fund/event_study/engine.py196 # Step 5: Process each earnings eventCOMMENT
Structural Annotation Overuse5 hits · 10 pts
SeverityFileLineSnippetContext
LOW⚡hedge_fund/event_study/engine.py153 # Step 1: Get earnings filings for this tickerCOMMENT
LOW⚡hedge_fund/event_study/engine.py158 # Step 2: Drop retrospective rows (e.g., Q4 data parsed from a Q1 8-K)COMMENT
LOW⚡hedge_fund/event_study/engine.py163 # Step 3: Fetch stock prices — one call covering all events.COMMENT
LOWhedge_fund/event_study/engine.py176 # Step 4: Build aligned return series.COMMENT
LOWhedge_fund/event_study/engine.py196 # Step 5: Process each earnings eventCOMMENT
Over-Commented Block1 hit · 1 pts
SeverityFileLineSnippetContext
LOWhedge_fund/fund/example.yaml1# An example mandate. Specs are data: the fund builder (aihf),COMMENT