Repository Analysis

virattt/ai-hedge-fund

An AI Hedge Fund Team

71.9 Strong AI signal View on GitHub

Analysis Overview

This report presents the forensic synthetic code analysis of virattt/ai-hedge-fund, a Python project with 63,070 GitHub stars. SynthScan v2.0 examined 10,900 lines of code across 88 source files, recording 423 pattern matches distributed across 10 syntactic categories. The overall adjusted score of 71.9 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).

71.9
Adjusted Score
71.9
Raw Score
100%
Time Factor
2026-08-07
Last Push
63.1K
Stars
Python
Language
10.9K
Lines of Code
88
Files
423
Pattern Hits
2026-08-29
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 2MEDIUM 124LOW 297

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 423 distinct pattern matches across 10 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 Separators124 hits · 426 pts
SeverityFileLineSnippetContext
MEDIUMhedge_fund/models.py10# ---------------------------------------------------------------------------COMMENT
MEDIUMhedge_fund/models.py12# ---------------------------------------------------------------------------COMMENT
MEDIUMhedge_fund/pipeline/test_run_cycle.py13# ---------------------------------------------------------------------------COMMENT
MEDIUMhedge_fund/pipeline/test_run_cycle.py15# ---------------------------------------------------------------------------COMMENT
MEDIUMhedge_fund/pipeline/test_run_cycle.py71# ---------------------------------------------------------------------------COMMENT
MEDIUMhedge_fund/pipeline/test_run_cycle.py73# ---------------------------------------------------------------------------COMMENT
MEDIUMhedge_fund/pipeline/test_run_cycle.py177# ---------------------------------------------------------------------------COMMENT
MEDIUMhedge_fund/pipeline/test_run_cycle.py179# ---------------------------------------------------------------------------COMMENT
MEDIUMhedge_fund/pipeline/test_run_cycle.py196# ---------------------------------------------------------------------------COMMENT
MEDIUMhedge_fund/pipeline/test_run_cycle.py198# ---------------------------------------------------------------------------COMMENT
MEDIUMhedge_fund/pipeline/run_cycle.py138# ---------------------------------------------------------------------------COMMENT
MEDIUMhedge_fund/pipeline/run_cycle.py140# ---------------------------------------------------------------------------COMMENT
MEDIUMhedge_fund/event_study/test_event_study.py20# ---------------------------------------------------------------------------COMMENT
MEDIUMhedge_fund/event_study/test_event_study.py22# ---------------------------------------------------------------------------COMMENT
MEDIUMhedge_fund/event_study/test_event_study.py102# ---------------------------------------------------------------------------COMMENT
MEDIUMhedge_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
MEDIUMhedge_fund/backtesting/fund.py155# ---------------------------------------------------------------------------COMMENT
MEDIUMhedge_fund/backtesting/fund.py157# ---------------------------------------------------------------------------COMMENT
MEDIUMhedge_fund/backtesting/test_fund.py11# ---------------------------------------------------------------------------COMMENT
MEDIUMhedge_fund/backtesting/test_fund.py13# ---------------------------------------------------------------------------COMMENT
MEDIUMhedge_fund/backtesting/test_fund.py83# ---------------------------------------------------------------------------COMMENT
MEDIUMhedge_fund/backtesting/test_fund.py85# ---------------------------------------------------------------------------COMMENT
MEDIUMhedge_fund/backtesting/test_fund.py110# ---------------------------------------------------------------------------COMMENT
MEDIUMhedge_fund/backtesting/test_fund.py112# ---------------------------------------------------------------------------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
MEDIUMhedge_fund/backtesting/engine.py222 # ------------------------------------------------------------------COMMENT
MEDIUMhedge_fund/backtesting/engine.py224 # ------------------------------------------------------------------COMMENT
MEDIUMhedge_fund/backtesting/engine.py294# ---------------------------------------------------------------------------COMMENT
MEDIUMhedge_fund/backtesting/engine.py296# ---------------------------------------------------------------------------COMMENT
MEDIUMhedge_fund/backtesting/test_backtest.py16# ---------------------------------------------------------------------------COMMENT
MEDIUMhedge_fund/backtesting/test_backtest.py18# ---------------------------------------------------------------------------COMMENT
MEDIUMhedge_fund/backtesting/test_backtest.py68# ---------------------------------------------------------------------------COMMENT
MEDIUMhedge_fund/backtesting/test_backtest.py70# ---------------------------------------------------------------------------COMMENT
MEDIUMhedge_fund/backtesting/test_backtest.py186# ---------------------------------------------------------------------------COMMENT
MEDIUMhedge_fund/backtesting/test_backtest.py188# ---------------------------------------------------------------------------COMMENT
MEDIUMhedge_fund/signals/test_signals.py29# ---------------------------------------------------------------------------COMMENT
MEDIUMhedge_fund/signals/test_signals.py31# ---------------------------------------------------------------------------COMMENT
MEDIUMhedge_fund/signals/test_signals.py48# ---------------------------------------------------------------------------COMMENT
MEDIUMhedge_fund/signals/test_signals.py50# ---------------------------------------------------------------------------COMMENT
MEDIUMhedge_fund/signals/test_llm_agents.py91# ---------------------------------------------------------------------------COMMENT
MEDIUMhedge_fund/signals/test_llm_agents.py93# ---------------------------------------------------------------------------COMMENT
64 more matches not shown…
Hyper-Verbose Identifiers125 hits · 166 pts
SeverityFileLineSnippetContext
LOWhedge_fund/brokers/test_sim.py9def test_buy_updates_cash_and_position():CODE
LOWhedge_fund/brokers/test_sim.py18def test_sell_updates_cash_and_position():CODE
LOWhedge_fund/brokers/test_sim.py26def test_position_removed_at_zero():CODE
LOWhedge_fund/brokers/test_sim.py33def test_sell_past_zero_creates_short():CODE
LOWhedge_fund/brokers/test_sim.py40def test_nonpositive_price_raises():CODE
LOWhedge_fund/brokers/test_sim.py46def test_positions_returns_a_copy():CODE
LOWhedge_fund/pipeline/test_run_cycle.py75def test_full_cycle_record_is_consistent():CODE
LOWhedge_fund/pipeline/test_run_cycle.py105def test_netting_math_two_strategies_unequal_slices():CODE
LOWhedge_fund/pipeline/test_run_cycle.py149def test_deterministic_and_json_round_trips():CODE
LOWhedge_fund/pipeline/test_run_cycle.py163def test_second_cycle_rebalances_not_restarts():CODE
LOWhedge_fund/pipeline/test_run_cycle.py181def test_all_abstain_closes_the_book_to_flat():CODE
LOWhedge_fund/pipeline/test_run_cycle.py200def test_unpriced_unowned_ticker_skipped_and_analysts_never_called():CODE
LOWhedge_fund/pipeline/test_run_cycle.py214def test_unpriced_held_ticker_raises():CODE
LOWhedge_fund/pipeline/test_run_cycle.py225def test_universe_is_a_run_time_argument():CODE
LOWhedge_fund/pipeline/test_run_cycle.py239def test_empty_universe_raises():CODE
LOWhedge_fund/pipeline/test_run_cycle.py246def test_analyst_error_propagates():CODE
LOWhedge_fund/pipeline/test_execution.py11def test_floor_sizing_never_overshoots():CODE
LOWhedge_fund/pipeline/test_execution.py18def test_delta_against_existing_position():CODE
LOWhedge_fund/pipeline/test_execution.py27def test_held_name_missing_from_targets_is_closed():CODE
LOWhedge_fund/pipeline/test_execution.py34def test_subshare_delta_emits_nothing():CODE
LOWhedge_fund/pipeline/test_execution.py39def test_sells_before_buys_alphabetical():CODE
LOWhedge_fund/pipeline/test_execution.py52def test_short_target_sells_past_zero():CODE
LOWhedge_fund/event_study/test_event_study.py45 def test_zero_variance_market(self):CODE
LOWhedge_fund/event_study/test_event_study.py94 def test_deterministic_with_seed(self):CODE
LOWhedge_fund/event_study/test_event_study.py108 def test_filters_stale_records(self):CODE
LOWhedge_fund/event_study/test_event_study.py158 def test_plot_car_distribution(self, synthetic_result):CODE
LOWhedge_fund/event_study/test_event_study.py206def test_compute_car_multi_ticker(fd):CODE
LOWhedge_fund/llm/test_watch.py30 def test_verdict_lands_before_the_thesis(self):CODE
LOWhedge_fund/llm/test_watch.py36 def test_signal_shows_before_confidence_arrives(self):CODE
LOWhedge_fund/llm/test_watch.py42 def test_confidence_waits_for_its_terminator(self):CODE
LOWhedge_fund/llm/test_watch.py51 def test_nothing_decodable_yet(self):CODE
LOWhedge_fund/llm/test_watch.py61 def test_one_character_at_a_time_matches_one_shot(self):CODE
LOWhedge_fund/llm/test_watch.py80 def test_escaped_quote_is_not_the_end_of_the_thesis(self):CODE
LOWhedge_fund/llm/test_watch.py85 def test_a_dangling_backslash_waits(self):CODE
LOWhedge_fund/llm/test_watch.py94 def test_unicode_escape_waits_for_all_four_digits(self):CODE
LOWhedge_fund/llm/test_watch.py101 def test_malformed_unicode_escape_stops_rather_than_raises(self):CODE
LOWhedge_fund/llm/test_watch.py110 def test_prose_leaves_every_field_empty(self):CODE
LOWhedge_fund/llm/test_watch.py116 def test_fenced_json_still_decodes(self):CODE
LOWhedge_fund/llm/test_watch.py122 def test_unknown_signal_word_is_shown_not_guessed(self):CODE
LOWhedge_fund/llm/test_client.py32def test_every_supported_provider_constructs(provider, keyed):CODE
LOWhedge_fund/llm/test_client.py41def test_registry_and_clients_agree():CODE
LOWhedge_fund/llm/test_client.py49def test_missing_key_names_the_variable(monkeypatch):CODE
LOWhedge_fund/llm/test_client.py59def test_unlisted_model_falls_back_to_anthropic(keyed):CODE
LOWhedge_fund/llm/test_client.py66def test_kimi_accepts_moonshot_key(monkeypatch):CODE
LOWhedge_fund/llm/test_client.py74def test_provider_for_reads_the_registry():CODE
LOWhedge_fund/llm/test_client.py108 def test_no_listener_does_not_stream(self):CODE
LOWhedge_fund/llm/test_client.py113 def test_listener_sees_every_piece_and_the_return_is_whole(self):CODE
LOWhedge_fund/llm/test_client.py121 def test_chunk_blocks_join_without_a_separator(self):CODE
LOWhedge_fund/llm/test_client.py128 def test_thinking_chunks_reach_neither_the_listener_nor_the_result(self):CODE
LOWhedge_fund/llm/test_client.py137 def test_make_llm_passes_the_listener_through(self, keyed):CODE
LOWhedge_fund/llm/test_client.py149 def test_plain_string_passes_through(self):CODE
LOWhedge_fund/llm/test_client.py152 def test_text_blocks_are_joined(self):CODE
LOWhedge_fund/llm/test_client.py156 def test_thinking_blocks_are_dropped(self):CODE
LOWhedge_fund/llm/test_client.py165 def test_bare_strings_in_a_list_are_kept(self):CODE
LOWhedge_fund/llm/test_client.py168 def test_unknown_block_types_are_dropped_not_stringified(self):CODE
LOWhedge_fund/backtesting/test_fund.py87def test_grid_daily_is_identity():CODE
LOWhedge_fund/backtesting/test_fund.py91def test_grid_weekly_takes_last_trading_day_of_each_iso_week():CODE
LOWhedge_fund/backtesting/test_fund.py98def test_grid_monthly_splits_where_weekly_does_not():CODE
LOWhedge_fund/backtesting/test_fund.py105def test_grid_unknown_cadence_raises():CODE
LOWhedge_fund/backtesting/test_fund.py114def test_happy_path_hand_computed():CODE
65 more matches not shown…
Unused Imports130 hits · 130 pts
SeverityFileLineSnippetContext
LOWhedge_fund/run.py28CODE
LOWhedge_fund/models.py3CODE
LOWhedge_fund/paths.py12CODE
LOWhedge_fund/brokers/sim.py14CODE
LOWhedge_fund/brokers/models.py8CODE
LOWhedge_fund/brokers/protocol.py8CODE
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/pipeline/execution.py11CODE
LOWhedge_fund/pipeline/models.py9CODE
LOWhedge_fund/pipeline/__init__.py4CODE
LOWhedge_fund/pipeline/__init__.py5CODE
LOWhedge_fund/pipeline/__init__.py5CODE
LOWhedge_fund/pipeline/__init__.py5CODE
LOWhedge_fund/pipeline/__init__.py6CODE
LOWhedge_fund/pipeline/run_cycle.py29CODE
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
LOWhedge_fund/event_study/stats.py8CODE
LOWhedge_fund/event_study/__main__.py6CODE
LOWhedge_fund/event_study/__main__.py12CODE
LOWhedge_fund/llm/registry.py12CODE
LOWhedge_fund/llm/test_watch.py9CODE
LOWhedge_fund/llm/client.py12CODE
LOWhedge_fund/llm/cache.py13CODE
LOWhedge_fund/llm/__init__.py3CODE
LOWhedge_fund/llm/__init__.py3CODE
LOWhedge_fund/llm/__init__.py4CODE
LOWhedge_fund/llm/__init__.py4CODE
LOWhedge_fund/llm/__init__.py4CODE
LOWhedge_fund/llm/__init__.py4CODE
LOWhedge_fund/llm/__init__.py4CODE
LOWhedge_fund/llm/__init__.py4CODE
LOWhedge_fund/llm/__init__.py4CODE
LOWhedge_fund/llm/__init__.py13CODE
LOWhedge_fund/llm/__init__.py13CODE
LOWhedge_fund/llm/__init__.py13CODE
LOWhedge_fund/llm/__init__.py13CODE
LOWhedge_fund/llm/__init__.py13CODE
LOWhedge_fund/llm/__init__.py13CODE
LOWhedge_fund/llm/__init__.py21CODE
LOWhedge_fund/llm/watch.py15CODE
LOWhedge_fund/llm/test_client.py9CODE
LOWhedge_fund/backtesting/fund.py22CODE
LOWhedge_fund/backtesting/models.py3CODE
70 more matches not shown…
Modern Structural Boilerplate16 hits · 16 pts
SeverityFileLineSnippetContext
LOWhedge_fund/brokers/__init__.py7__all__ = ["Broker", "Fill", "Order", "Position", "SimBroker"]CODE
LOWhedge_fund/pipeline/__init__.py8__all__ = ["CycleRecord", "StrategyRecord", "TickerSkip", "build_orders", "run_cycle"]CODE
LOWhedge_fund/event_study/__init__.py22__all__ = [CODE
LOWhedge_fund/event_study/engine.py50logger = logging.getLogger(__name__)CODE
LOWhedge_fund/llm/__init__.py23__all__ = [CODE
LOWhedge_fund/backtesting/__init__.py16__all__ = [CODE
LOWhedge_fund/backtesting/engine.py38logger = logging.getLogger(__name__)CODE
LOWhedge_fund/tui/app.py171 def _set_model(self, model_id: str | None) -> None:CODE
LOWhedge_fund/signals/__init__.py31__all__ = [CODE
LOWhedge_fund/signals/llm_agent.py33logger = 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__.py14__all__ = [CODE
Cross-Language Confusion2 hits · 11 pts
SeverityFileLineSnippetContext
HIGHhedge_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
LOWhedge_fund/event_study/engine.py153 # Step 1: Get earnings filings for this tickerCOMMENT
LOWhedge_fund/event_study/engine.py158 # Step 2: Drop retrospective rows (e.g., Q4 data parsed from a Q1 8-K)COMMENT
LOWhedge_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
LOWhedge_fund/event_study/engine.py153 # Step 1: Get earnings filings for this tickerCOMMENT
LOWhedge_fund/event_study/engine.py158 # Step 2: Drop retrospective rows (e.g., Q4 data parsed from a Q1 8-K)COMMENT
LOWhedge_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
Deep Nesting9 hits · 9 pts
SeverityFileLineSnippetContext
LOWhedge_fund/llm/client.py86CODE
LOWhedge_fund/llm/client.py152CODE
LOWhedge_fund/llm/client.py190CODE
LOWhedge_fund/tui/app.py724CODE
LOWhedge_fund/tui/app.py1109CODE
LOWhedge_fund/tui/app.py1198CODE
LOWhedge_fund/tui/app.py1214CODE
LOWhedge_fund/tui/app.py1848CODE
LOWhedge_fund/tui/app.py1855CODE
Excessive Try-Catch Wrapping6 hits · 6 pts
SeverityFileLineSnippetContext
LOWhedge_fund/tui/app.py1235 except Exception:CODE
LOWhedge_fund/tui/app.py1257 except Exception as exc: # fail loud, in the UICODE
LOWhedge_fund/tui/app.py1808 except Exception as exc: # fail loud, in the UICODE
LOWhedge_fund/tui/app.py1868 except Exception:CODE
LOWhedge_fund/signals/llm_agent.py71 except Exception as exc:CODE
LOWhedge_fund/signals/llm_agent.py88 except Exception as exc:CODE
Over-Commented Block1 hit · 1 pts
SeverityFileLineSnippetContext
LOWhedge_fund/README.md41# .env needs (at repo root):COMMENT