"Vibe-Trading: Your Personal Trading Agent"
This report presents the forensic synthetic code analysis of HKUDS/Vibe-Trading, a Python project with 22,432 GitHub stars. SynthScan v2.0 examined 300,385 lines of code across 1704 source files, recording 12046 pattern matches distributed across 22 syntactic categories. The overall adjusted score of 63.6 places this repository in the Strong AI signal band.
The scanner applied 160+ deterministic lexical heuristics, multi-line block detectors, abstract syntax tree depth profilers, and a cross-file Jaccard similarity matrix to construct a statistically normalised synthetic code estimate. All matches are individually weighted by severity coefficient and contextual multiplier before summation, and the resulting headline score is temporally discounted to account for the repository's development history relative to the commercial emergence of large language model coding tooling (November 2022 onward).
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.
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.
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.
The scanner identified 12046 distinct pattern matches across 22 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.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM⚡ | tools/test_ci_env_var_gate.py | 95 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tools/test_ci_env_var_gate.py | 97 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tools/test_ci_env_var_gate.py | 173 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tools/test_ci_env_var_gate.py | 175 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tools/test_ci_env_var_gate.py | 199 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tools/test_ci_env_var_gate.py | 201 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tools/test_ci_env_var_gate.py | 237 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tools/test_ci_env_var_gate.py | 239 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tools/test_ci_env_var_gate.py | 27 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tools/test_ci_env_var_gate.py | 29 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tools/test_ci_env_var_gate.py | 49 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tools/test_ci_env_var_gate.py | 51 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tools/test_ci_env_var_gate.py | 220 | # --------------------------------------------------------------------------- | STRING |
| MEDIUM | tools/test_ci_env_var_gate.py | 222 | # --------------------------------------------------------------------------- | STRING |
| MEDIUM | tools/ci_env_var_gate.py | 37 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tools/ci_env_var_gate.py | 39 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tools/ci_env_var_gate.py | 62 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tools/ci_env_var_gate.py | 64 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tools/ci_env_var_gate.py | 194 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tools/ci_env_var_gate.py | 196 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tools/ci_env_var_gate.py | 231 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tools/ci_env_var_gate.py | 233 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | frontend/src/tests/setup.ts | 7 | // ── Global mocks for jsdom ─────────────────────────────────── | COMMENT |
| MEDIUM | frontend/src/hooks/__tests__/useSSE.test.ts | 4 | // ── Mock EventSource ────────────────────────────────────── | COMMENT |
| MEDIUM | frontend/src/hooks/__tests__/useSSE.test.ts | 59 | // ── Tests ───────────────────────────────────────────────── | COMMENT |
| MEDIUM | frontend/src/i18n/__tests__/i18n.test.ts | 8 | // ── helpers ──────────────────────────────────────────────────── | COMMENT |
| MEDIUM | frontend/src/i18n/__tests__/i18n.test.ts | 40 | // ── locale parity ────────────────────────────────────────────── | COMMENT |
| MEDIUM | frontend/src/i18n/__tests__/i18n.test.ts | 68 | // ── interpolation variable parity ────────────────────────────── | COMMENT |
| MEDIUM | frontend/src/i18n/__tests__/i18n.test.ts | 110 | // ── utility functions ────────────────────────────────────────── | COMMENT |
| MEDIUM | wiki/scripts/build_alpha_library.py | 56 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | wiki/scripts/build_alpha_library.py | 58 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | wiki/scripts/build_alpha_library.py | 93 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | wiki/scripts/build_alpha_library.py | 95 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | wiki/scripts/build_alpha_library.py | 138 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | wiki/scripts/build_alpha_library.py | 140 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | wiki/scripts/build_alpha_library.py | 279 | # --------------------------------------------------------------------------- | STRING |
| MEDIUM | wiki/scripts/build_alpha_library.py | 281 | # --------------------------------------------------------------------------- | STRING |
| MEDIUM | wiki/scripts/build_alpha_library.py | 347 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | wiki/scripts/build_alpha_library.py | 349 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | wiki/scripts/build_alpha_library.py | 382 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | wiki/scripts/build_alpha_library.py | 384 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | agent/api_server.py | 115 | # ============================================================================ | COMMENT |
| MEDIUM⚡ | agent/api_server.py | 117 | # ============================================================================ | COMMENT |
| MEDIUM⚡ | agent/api_server.py | 176 | # ============================================================================ | COMMENT |
| MEDIUM⚡ | agent/api_server.py | 178 | # ============================================================================ | COMMENT |
| MEDIUM | agent/api_server.py | 30 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | agent/api_server.py | 32 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | agent/api_server.py | 142 | # ============================================================================ | COMMENT |
| MEDIUM | agent/api_server.py | 144 | # ============================================================================ | COMMENT |
| MEDIUM | agent/api_server.py | 282 | # ============================================================================ | COMMENT |
| MEDIUM | agent/api_server.py | 284 | # ============================================================================ | COMMENT |
| MEDIUM | agent/api_server.py | 303 | # ============================================================================ | COMMENT |
| MEDIUM | agent/api_server.py | 305 | # ============================================================================ | COMMENT |
| MEDIUM⚡ | agent/mcp_server.py | 77 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | agent/mcp_server.py | 79 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | agent/mcp_server.py | 1018 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | agent/mcp_server.py | 1020 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | agent/mcp_server.py | 187 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | agent/mcp_server.py | 189 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | agent/mcp_server.py | 222 | # --------------------------------------------------------------------------- | COMMENT |
| 2041 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tools/test_ci_env_var_gate.py | 11 | CODE | |
| LOW | tools/ci_env_var_gate.py | 31 | CODE | |
| LOW | wiki/scripts/build_alpha_library.py | 36 | CODE | |
| LOW | wiki/scripts/check_social_cards.py | 3 | CODE | |
| LOW | agent/api_server.py | 9 | CODE | |
| LOW | agent/api_server.py | 15 | CODE | |
| LOW | agent/api_server.py | 15 | CODE | |
| LOW | agent/api_server.py | 16 | CODE | |
| LOW | agent/api_server.py | 21 | CODE | |
| LOW | agent/api_server.py | 21 | CODE | |
| LOW | agent/api_server.py | 34 | CODE | |
| LOW | agent/api_server.py | 34 | CODE | |
| LOW | agent/api_server.py | 34 | CODE | |
| LOW | agent/api_server.py | 34 | CODE | |
| LOW | agent/api_server.py | 34 | CODE | |
| LOW | agent/api_server.py | 34 | CODE | |
| LOW | agent/api_server.py | 34 | CODE | |
| LOW | agent/api_server.py | 34 | CODE | |
| LOW | agent/api_server.py | 34 | CODE | |
| LOW | agent/api_server.py | 34 | CODE | |
| LOW | agent/api_server.py | 34 | CODE | |
| LOW | agent/api_server.py | 34 | CODE | |
| LOW | agent/api_server.py | 34 | CODE | |
| LOW | agent/api_server.py | 34 | CODE | |
| LOW | agent/api_server.py | 34 | CODE | |
| LOW | agent/api_server.py | 34 | CODE | |
| LOW | agent/api_server.py | 34 | CODE | |
| LOW | agent/api_server.py | 34 | CODE | |
| LOW | agent/api_server.py | 34 | CODE | |
| LOW | agent/api_server.py | 34 | CODE | |
| LOW | agent/api_server.py | 34 | CODE | |
| LOW | agent/api_server.py | 34 | CODE | |
| LOW | agent/api_server.py | 34 | CODE | |
| LOW | agent/api_server.py | 34 | CODE | |
| LOW | agent/api_server.py | 34 | CODE | |
| LOW | agent/api_server.py | 34 | CODE | |
| LOW | agent/api_server.py | 34 | CODE | |
| LOW | agent/api_server.py | 34 | CODE | |
| LOW | agent/api_server.py | 71 | CODE | |
| LOW | agent/api_server.py | 71 | CODE | |
| LOW | agent/api_server.py | 71 | CODE | |
| LOW | agent/api_server.py | 71 | CODE | |
| LOW | agent/api_server.py | 71 | CODE | |
| LOW | agent/api_server.py | 79 | CODE | |
| LOW | agent/api_server.py | 79 | CODE | |
| LOW | agent/api_server.py | 79 | CODE | |
| LOW | agent/api_server.py | 79 | CODE | |
| LOW | agent/api_server.py | 79 | CODE | |
| LOW | agent/api_server.py | 79 | CODE | |
| LOW | agent/api_server.py | 79 | CODE | |
| LOW | agent/api_server.py | 79 | CODE | |
| LOW | agent/api_server.py | 79 | CODE | |
| LOW | agent/api_server.py | 79 | CODE | |
| LOW | agent/api_server.py | 79 | CODE | |
| LOW | agent/api_server.py | 79 | CODE | |
| LOW | agent/api_server.py | 79 | CODE | |
| LOW | agent/api_server.py | 79 | CODE | |
| LOW | agent/api_server.py | 79 | CODE | |
| LOW | agent/api_server.py | 79 | CODE | |
| LOW | agent/api_server.py | 79 | CODE | |
| 5159 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | tools/test_ci_env_var_gate.py | 88 | def test_subscript_read_in_expression(self) -> None: | CODE |
| LOW⚡ | tools/test_ci_env_var_gate.py | 181 | def test_pop_outside_settings_routes(self) -> None: | CODE |
| LOW⚡ | tools/test_ci_env_var_gate.py | 190 | def test_pop_in_settings_routes_no_warning(self) -> None: | CODE |
| LOW⚡ | tools/test_ci_env_var_gate.py | 245 | def test_noqa_suppresses_getenv(self) -> None: | CODE |
| LOW⚡ | tools/test_ci_env_var_gate.py | 250 | def test_noqa_suppresses_environ_get(self) -> None: | CODE |
| LOW⚡ | tools/test_ci_env_var_gate.py | 255 | def test_noqa_suppresses_subscript_read(self) -> None: | CODE |
| LOW⚡ | tools/test_ci_env_var_gate.py | 260 | def test_noqa_does_not_affect_other_lines(self) -> None: | CODE |
| LOW⚡ | tools/test_ci_env_var_gate.py | 266 | def test_partial_noqa_not_matched(self) -> None: | CODE |
| LOW | tools/test_ci_env_var_gate.py | 62 | def test_os_getenv_with_default(self) -> None: | CODE |
| LOW | tools/test_ci_env_var_gate.py | 75 | def test_environ_get_with_default(self) -> None: | CODE |
| LOW | tools/test_ci_env_var_gate.py | 135 | def test_subscript_aug_assign(self) -> None: | CODE |
| LOW | tools/test_ci_env_var_gate.py | 150 | def test_config_visitor_clean(self) -> None: | CODE |
| LOW | frontend/src/components/chat/RunnerStatus.tsx | 79 | function fallbackAuthorizeInstruction(): string { | CODE |
| LOW | frontend/src/lib/swarmStatus.ts | 86 | export function buildSwarmStatusFromStarted(data: AnyRecord, now = Date.now()): SwarmRunStatus | null { | CODE |
| LOW | frontend/src/lib/swarmStatus.ts | 254 | export function buildSwarmStatusFromToolResultPreview(preview: string, now = Date.now()): SwarmRunStatus | null { | CODE |
| LOW | frontend/src/pages/RunDetail.tsx | 219 | async function handleLoadAllChartSymbols() { | CODE |
| LOW | frontend/src/pages/RunDetail.tsx | 241 | function handleCancelLoadAllCharts() { | CODE |
| LOW | wiki/scripts/check_social_cards.py | 44 | def require_alpha_library_card() -> None: | CODE |
| LOW⚡ | agent/api_server.py | 170 | async def _stop_scheduled_research_on_shutdown() -> None: | CODE |
| LOW | agent/mcp_server.py | 388 | def update_research_goal_status( | CODE |
| LOW | agent/mcp_server.py | 693 | def trading_select_connection(connection: str) -> str: | CODE |
| LOW⚡ | agent/tests/test_dragon_tiger_tool.py | 71 | def test_compact_date_normalizes(self) -> None: | CODE |
| LOW⚡ | agent/tests/test_dragon_tiger_tool.py | 75 | def test_compact_date_rejects_garbage(self) -> None: | CODE |
| LOW⚡ | agent/tests/test_dragon_tiger_tool.py | 79 | def test_bare_code_strips_suffix(self) -> None: | CODE |
| LOW | agent/tests/test_dragon_tiger_tool.py | 94 | def test_full_market_list_no_code(self) -> None: | CODE |
| LOW | agent/tests/test_dragon_tiger_tool.py | 116 | def test_with_code_adds_seats(self) -> None: | CODE |
| LOW⚡ | agent/tests/test_dragon_tiger_tool.py | 133 | def test_missing_date_returns_error_envelope(self) -> None: | CODE |
| LOW⚡ | agent/tests/test_dragon_tiger_tool.py | 138 | def test_bad_date_returns_error_envelope(self) -> None: | CODE |
| LOW⚡ | agent/tests/test_dragon_tiger_tool.py | 143 | def test_http_failure_returns_error_envelope(self) -> None: | CODE |
| LOW | agent/tests/test_dragon_tiger_tool.py | 158 | def test_http_failure_uses_tushare_fallback_when_available(self) -> None: | CODE |
| LOW⚡ | agent/tests/test_china_a_engine.py | 72 | def test_close_allowed_when_no_position(self) -> None: | CODE |
| LOW⚡ | agent/tests/test_china_a_engine.py | 84 | def test_sell_same_day_blocked(self) -> None: | CODE |
| LOW⚡ | agent/tests/test_china_a_engine.py | 109 | def test_sell_allowed_when_no_position(self) -> None: | CODE |
| LOW⚡ | agent/tests/test_china_a_engine.py | 121 | def test_limit_up_buy_blocked(self) -> None: | CODE |
| LOW⚡ | agent/tests/test_china_a_engine.py | 127 | def test_limit_down_sell_blocked(self) -> None: | CODE |
| LOW⚡ | agent/tests/test_china_a_engine.py | 136 | def test_within_limit_allowed(self) -> None: | CODE |
| LOW⚡ | agent/tests/test_china_a_engine.py | 153 | def test_chinext_within_limit(self) -> None: | CODE |
| LOW⚡ | agent/tests/test_china_a_engine.py | 179 | def test_negative_clamps_to_zero(self) -> None: | CODE |
| LOW⚡ | agent/tests/test_china_a_engine.py | 230 | def test_buy_slippage_increases_price(self) -> None: | CODE |
| LOW⚡ | agent/tests/test_china_a_engine.py | 234 | def test_sell_slippage_decreases_price(self) -> None: | CODE |
| LOW⚡ | agent/tests/test_china_a_engine.py | 238 | def test_custom_slippage_rate(self) -> None: | CODE |
| LOW | agent/tests/test_china_a_engine.py | 97 | def test_sell_next_day_allowed(self) -> None: | CODE |
| LOW | agent/tests/test_china_a_engine.py | 268 | def test_from_close_and_pre_close(self) -> None: | CODE |
| LOW⚡ | agent/tests/test_eastmoney_client.py | 34 | def test_hong_kong_zero_pads_to_five(self): | CODE |
| LOW⚡ | agent/tests/test_eastmoney_client.py | 38 | def test_case_insensitive_suffix(self): | CODE |
| LOW⚡ | agent/tests/test_eastmoney_client.py | 41 | def test_unrecognized_suffix_returns_none(self): | CODE |
| LOW⚡ | agent/tests/test_eastmoney_client.py | 51 | def test_resolves_and_caches_us_secid(self): | CODE |
| LOW | agent/tests/test_eastmoney_client.py | 65 | def test_handles_jsonp_wrapped_search_body(self): | CODE |
| LOW | agent/tests/test_eastmoney_client.py | 70 | def test_plain_json_body_with_parens_in_values(self): | CODE |
| LOW⚡ | agent/tests/test_eastmoney_client.py | 83 | def test_no_us_candidate_returns_none(self): | CODE |
| LOW⚡ | agent/tests/test_eastmoney_client.py | 88 | def test_search_failure_returns_none_without_raising(self): | CODE |
| LOW⚡ | agent/tests/test_eastmoney_client.py | 98 | def test_parses_ohlcv_amount_rows(self): | CODE |
| LOW | agent/tests/test_eastmoney_client.py | 136 | def test_empty_data_returns_empty_list(self): | CODE |
| LOW | agent/tests/test_eastmoney_client.py | 140 | def test_malformed_row_is_skipped_not_fatal(self): | CODE |
| LOW | agent/tests/test_eastmoney_client.py | 154 | def test_http_error_propagates(self): | CODE |
| LOW⚡ | agent/tests/test_eastmoney_client.py | 165 | def test_plain_json_with_parens_parses_unchanged(self): | CODE |
| LOW⚡ | agent/tests/test_eastmoney_client.py | 173 | def test_plain_json_array_parses_unchanged(self): | CODE |
| LOW⚡ | agent/tests/test_eastmoney_client.py | 176 | def test_real_jsonp_wrapper_is_stripped(self): | CODE |
| LOW⚡ | agent/tests/test_eastmoney_client.py | 180 | def test_dotted_callback_identifier_is_stripped(self): | CODE |
| LOW⚡ | agent/tests/test_eastmoney_client.py | 184 | def test_unparseable_body_returns_none(self): | CODE |
| 2843 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | agent/tests/test_runtime_flatten.py | 0 | point the live runtime root at an isolated tmp dir. | STRING |
| HIGH | agent/tests/test_runtime_liveness.py | 0 | point the live runtime root at an isolated tmp dir. | STRING |
| HIGH | agent/tests/test_runtime_jobstore.py | 0 | point the live runtime root at an isolated tmp dir. | STRING |
| HIGH | agent/tests/test_halt.py | 0 | point the live runtime root at an isolated tmp dir. | STRING |
| HIGH | agent/tests/test_audit_redact.py | 0 | point the live runtime root at an isolated tmp dir. | STRING |
| HIGH | agent/tests/test_mandate_model.py | 0 | point the live root at a tmp dir so tests never touch the real store. | STRING |
| HIGH | agent/tests/test_consent_commit.py | 0 | point the live root at a tmp dir so tests never touch the real store. | STRING |
| HIGH | agent/tests/test_mandate_enforcement.py | 0 | point the live root at a tmp dir so tests never touch the real store. | STRING |
| HIGH | agent/backtest/loaders/fmp_loader.py | 0 | resolve the per-call minimum spacing, honoring the env override. | STRING |
| HIGH | agent/backtest/loaders/yahoo_client.py | 0 | resolve the per-call minimum spacing, honoring the env override. | STRING |
| HIGH | agent/backtest/loaders/stooq_loader.py | 0 | resolve the per-call minimum spacing, honoring the env override. | STRING |
| HIGH | agent/backtest/loaders/finnhub_loader.py | 0 | resolve the per-call minimum spacing, honoring the env override. | STRING |
| HIGH | agent/src/tools/fund_flow_tool.py | 0 | build the failure envelope as a json string. args: message: human-readable error description. returns: a strict json ``{ | STRING |
| HIGH | agent/src/tools/sector_tool.py | 0 | build the failure envelope as a json string. args: message: human-readable error description. returns: a strict json ``{ | STRING |
| HIGH | agent/src/tools/financial_statements_tool.py | 0 | build the failure envelope as a json string. args: message: human-readable error description. returns: a strict json ``{ | STRING |
| HIGH | agent/src/tools/market_screener_tool.py | 0 | build the failure envelope as a json string. args: message: human-readable error description. returns: a strict json ``{ | STRING |
| HIGH | agent/src/tools/image_vision_tool.py | 0 | build the failure envelope as a json string. args: message: human-readable error description. returns: a strict json ``{ | STRING |
| HIGH | agent/src/tools/get_fundamentals_tool.py | 0 | build the failure envelope as a json string. args: message: human-readable error description. returns: a strict json ``{ | STRING |
| HIGH | agent/src/tools/stock_news_tool.py | 0 | render a failure envelope as a json string. args: message: human-readable error text. returns: ``{"ok": false, "error": | STRING |
| HIGH | agent/src/tools/iwencai_tool.py | 0 | render a failure envelope as a json string. args: message: human-readable error text. returns: ``{"ok": false, "error": | STRING |
| HIGH | agent/src/tools/dragon_tiger_tool.py | 0 | render a failure envelope as a json string. args: message: human-readable error text. returns: ``{"ok": false, "error": | STRING |
| HIGH | agent/src/tools/symbol_search_tool.py | 0 | coerce a requested report count into the supported ``1.._max_limit`` range. | STRING |
| HIGH | agent/src/tools/sec_filings_tool.py | 0 | coerce a requested report count into the supported ``1.._max_limit`` range. | STRING |
| HIGH | agent/src/tools/research_reports_tool.py | 0 | coerce a requested report count into the supported ``1.._max_limit`` range. | STRING |
| HIGH | agent/src/factors/zoo/alpha101/alpha_018.py | 0 | compute the alpha on the ohlcv+ panel and return a wide dataframe. | STRING |
| HIGH | agent/src/factors/zoo/alpha101/alpha_049.py | 0 | compute the alpha on the ohlcv+ panel and return a wide dataframe. | STRING |
| HIGH | agent/src/factors/zoo/alpha101/alpha_059.py | 0 | compute the alpha on the ohlcv+ panel and return a wide dataframe. | STRING |
| HIGH | agent/src/factors/zoo/alpha101/alpha_008.py | 0 | compute the alpha on the ohlcv+ panel and return a wide dataframe. | STRING |
| HIGH | agent/src/factors/zoo/alpha101/alpha_028.py | 0 | compute the alpha on the ohlcv+ panel and return a wide dataframe. | STRING |
| HIGH | agent/src/factors/zoo/alpha101/alpha_079.py | 0 | compute the alpha on the ohlcv+ panel and return a wide dataframe. | STRING |
| HIGH | agent/src/factors/zoo/alpha101/alpha_069.py | 0 | compute the alpha on the ohlcv+ panel and return a wide dataframe. | STRING |
| HIGH | agent/src/factors/zoo/alpha101/alpha_038.py | 0 | compute the alpha on the ohlcv+ panel and return a wide dataframe. | STRING |
| HIGH | agent/src/factors/zoo/alpha101/alpha_029.py | 0 | compute the alpha on the ohlcv+ panel and return a wide dataframe. | STRING |
| HIGH | agent/src/factors/zoo/alpha101/alpha_078.py | 0 | compute the alpha on the ohlcv+ panel and return a wide dataframe. | STRING |
| HIGH | agent/src/factors/zoo/alpha101/alpha_068.py | 0 | compute the alpha on the ohlcv+ panel and return a wide dataframe. | STRING |
| HIGH | agent/src/factors/zoo/alpha101/alpha_039.py | 0 | compute the alpha on the ohlcv+ panel and return a wide dataframe. | STRING |
| HIGH | agent/src/factors/zoo/alpha101/alpha_019.py | 0 | compute the alpha on the ohlcv+ panel and return a wide dataframe. | STRING |
| HIGH | agent/src/factors/zoo/alpha101/alpha_048.py | 0 | compute the alpha on the ohlcv+ panel and return a wide dataframe. | STRING |
| HIGH | agent/src/factors/zoo/alpha101/alpha_058.py | 0 | compute the alpha on the ohlcv+ panel and return a wide dataframe. | STRING |
| HIGH | agent/src/factors/zoo/alpha101/alpha_009.py | 0 | compute the alpha on the ohlcv+ panel and return a wide dataframe. | STRING |
| HIGH | agent/src/factors/zoo/alpha101/alpha_077.py | 0 | compute the alpha on the ohlcv+ panel and return a wide dataframe. | STRING |
| HIGH | agent/src/factors/zoo/alpha101/alpha_026.py | 0 | compute the alpha on the ohlcv+ panel and return a wide dataframe. | STRING |
| HIGH | agent/src/factors/zoo/alpha101/alpha_084.py | 0 | compute the alpha on the ohlcv+ panel and return a wide dataframe. | STRING |
| HIGH | agent/src/factors/zoo/alpha101/alpha_012.py | 0 | compute the alpha on the ohlcv+ panel and return a wide dataframe. | STRING |
| HIGH | agent/src/factors/zoo/alpha101/alpha_043.py | 0 | compute the alpha on the ohlcv+ panel and return a wide dataframe. | STRING |
| HIGH | agent/src/factors/zoo/alpha101/alpha_053.py | 0 | compute the alpha on the ohlcv+ panel and return a wide dataframe. | STRING |
| HIGH | agent/src/factors/zoo/alpha101/alpha_002.py | 0 | compute the alpha on the ohlcv+ panel and return a wide dataframe. | STRING |
| HIGH | agent/src/factors/zoo/alpha101/alpha_094.py | 0 | compute the alpha on the ohlcv+ panel and return a wide dataframe. | STRING |
| HIGH | agent/src/factors/zoo/alpha101/alpha_036.py | 0 | compute the alpha on the ohlcv+ panel and return a wide dataframe. | STRING |
| HIGH | agent/src/factors/zoo/alpha101/alpha_067.py | 0 | compute the alpha on the ohlcv+ panel and return a wide dataframe. | STRING |
| HIGH | agent/src/factors/zoo/alpha101/alpha_047.py | 0 | compute the alpha on the ohlcv+ panel and return a wide dataframe. | STRING |
| HIGH | agent/src/factors/zoo/alpha101/alpha_016.py | 0 | compute the alpha on the ohlcv+ panel and return a wide dataframe. | STRING |
| HIGH | agent/src/factors/zoo/alpha101/alpha_022.py | 0 | compute the alpha on the ohlcv+ panel and return a wide dataframe. | STRING |
| HIGH | agent/src/factors/zoo/alpha101/alpha_073.py | 0 | compute the alpha on the ohlcv+ panel and return a wide dataframe. | STRING |
| HIGH | agent/src/factors/zoo/alpha101/alpha_080.py | 0 | compute the alpha on the ohlcv+ panel and return a wide dataframe. | STRING |
| HIGH | agent/src/factors/zoo/alpha101/alpha_090.py | 0 | compute the alpha on the ohlcv+ panel and return a wide dataframe. | STRING |
| HIGH | agent/src/factors/zoo/alpha101/alpha_063.py | 0 | compute the alpha on the ohlcv+ panel and return a wide dataframe. | STRING |
| HIGH | agent/src/factors/zoo/alpha101/alpha_032.py | 0 | compute the alpha on the ohlcv+ panel and return a wide dataframe. | STRING |
| HIGH | agent/src/factors/zoo/alpha101/alpha_006.py | 0 | compute the alpha on the ohlcv+ panel and return a wide dataframe. | STRING |
| HIGH | agent/src/factors/zoo/alpha101/alpha_057.py | 0 | compute the alpha on the ohlcv+ panel and return a wide dataframe. | STRING |
| 270 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | wiki/scripts/build_alpha_library.py | 99 | Load and lightly validate a manifest written by export-manifest. Args: path: Filesystem path to ``manifest. | STRING |
| HIGH | agent/tests/test_swarm_worker_stream_retry.py | 67 | Raise the next queued error or return the final response. Args: messages: Conversation messages (ig | STRING |
| HIGH | agent/tests/test_agent_loop_stream_retry.py | 45 | Raise the next queued error or return the final response. Args: messages: Conversation messages (ig | STRING |
| HIGH | agent/cli/_legacy.py | 223 | Read user input with arrow key support if prompt_toolkit is available. Falls back to Rich Prompt.ask() when prompt_ | STRING |
| HIGH | agent/cli/utils/format.py | 109 | Abbreviate a number with magnitude suffix. Use this for status-bar numbers where horizontal space is scarce. Curren | STRING |
| HIGH | agent/backtest/engines/china_futures.py | 112 | Extract product code from futures symbol. Examples: 'IF2406.CFFEX' -> 'IF' 'rb2410.SHFE' -> 'rb' | STRING |
| HIGH | agent/backtest/engines/options_portfolio.py | 232 | Options backtest entry point. Day-by-day simulation: 1. Read underlying price for the current day 2. Mark a | STRING |
| HIGH | agent/backtest/loaders/alphavantage_loader.py | 165 | Fetch and slice one symbol's daily bars into an OHLCV DataFrame. Args: code: US-equity ticker. | STRING |
| HIGH | agent/backtest/loaders/eastmoney_loader.py | 34 | Convert a ``YYYY-MM-DD`` date into Eastmoney's ``YYYYMMDD`` form. Args: value: Date string in any pandas-pa | STRING |
| HIGH | agent/backtest/loaders/eastmoney_loader.py | 72 | Fetch OHLCV for each symbol; a single failure never aborts the batch. Args: codes: Symbols such as | STRING |
| HIGH | agent/backtest/loaders/registry.py | 144 | Return the first *available* loader instance for *market*. Walks the fallback chain and returns the first loader wh | STRING |
| HIGH | agent/backtest/loaders/registry.py | 182 | Return a loader *class* for *source*, falling back if unavailable. Args: source: Requested data source name | STRING |
| HIGH | agent/backtest/loaders/_http.py | 129 | GET ``url`` after waiting out the per-host minimum interval. Args: url: Fully-qualified request URL. | STRING |
| HIGH | agent/backtest/loaders/futu.py | 126 | Fetch OHLCV history from Futu OpenAPI. Args: codes: Project symbols such as ``700.HK`` or ``000001. | STRING |
| HIGH | agent/backtest/loaders/_fundamental_schema.py | 197 | Resolve a supported fundamental field to its schema entry. Args: field: Unified fundamental field name. | STRING |
| HIGH | agent/backtest/loaders/fmp_loader.py | 99 | Fetch daily OHLCV bars from FMP, one symbol at a time. A single failing symbol is logged and skipped so it neve | STRING |
| HIGH | agent/backtest/loaders/fmp_loader.py | 150 | Fetch and parse one symbol's daily bars; ``None`` on no data. Args: code: Project symbol to fetch. | STRING |
| HIGH | agent/backtest/loaders/sec_edgar_client.py | 75 | GET ``url`` as JSON through the shared SEC-bucket throttle. Args: url: Fully-qualified SEC endpoint URL. | STRING |
| HIGH | agent/backtest/loaders/sec_edgar_client.py | 96 | Normalize a CIK to the SEC's zero-padded 10-digit string form. Args: cik: A CIK as an int or a string that | STRING |
| HIGH | agent/backtest/loaders/sec_edgar_client.py | 163 | Resolve a ticker symbol to its zero-padded 10-digit CIK. Args: ticker: A U.S. equity ticker (case-insensiti | STRING |
| HIGH | agent/backtest/loaders/sec_edgar_client.py | 181 | Fetch the filing-index ("submissions") JSON for a CIK. Args: cik: A CIK as int or string; padded to 10 digi | STRING |
| HIGH | agent/backtest/loaders/sec_edgar_client.py | 197 | Fetch the XBRL ``companyfacts`` JSON for a CIK. Args: cik: A CIK as int or string; padded to 10 digits inte | STRING |
| HIGH | agent/backtest/loaders/rsshub_events.py | 78 | Convert a backtest code (e.g. ``"600519.SH"``) to a route's expected form. RSSHub routes disagree on instrument for | STRING |
| HIGH | agent/backtest/loaders/rsshub_events.py | 143 | Build :class:`FeedSpec` objects from backtest-config dicts. Each entry must carry ``name``, ``route_template`` and | STRING |
| HIGH | agent/backtest/loaders/yahoo_client.py | 105 | Return ``(crumb, cookies)``, fetching them on first use or on refresh. Args: force_refresh: Discard | STRING |
| HIGH | agent/backtest/loaders/yahoo_client.py | 160 | Fetch OHLCV bars from the v8 chart endpoint as ascending rows. Either supply a ``range_`` (e.g. ``"1y"``, ``"max"`` | STRING |
| HIGH | agent/backtest/loaders/yahoo_client.py | 250 | Fetch v10 quoteSummary modules, handling the cookie+crumb handshake. On a 401 (expired/invalid crumb) the crumb and | STRING |
| HIGH | agent/backtest/loaders/yahoo_client.py | 308 | Fetch the v7 option chain for a symbol, handling the cookie+crumb handshake. Like ``v10/quoteSummary``, the ``v7/fi | STRING |
| HIGH | agent/backtest/loaders/yahoo_client.py | 370 | Look up matching instruments via the v1 search endpoint. Args: query: Free-text query (ticker fragment or c | STRING |
| HIGH | agent/backtest/loaders/longbridge.py | 236 | Fetch OHLCV history from LongPort OpenAPI. Args: codes: Project symbols such as ``AAPL``, ``AAPL.US | STRING |
| HIGH | agent/backtest/loaders/stooq_loader.py | 98 | Fetch daily OHLCV bars for ``codes`` over ``[start_date, end_date]``. Args: codes: Project-side sym | STRING |
| HIGH | agent/backtest/loaders/fundamentals_loader.py | 53 | Extract a sparse ``period_end``/``filed``/``value`` series. Args: facts: SEC companyfacts payload. | STRING |
| HIGH | agent/backtest/loaders/fundamentals_loader.py | 205 | Load SEC fundamental fields as dense date-by-symbol panels. Args: symbols: Tickers to load. fields: | STRING |
| HIGH | agent/backtest/loaders/qveris_loader.py | 169 | Call ``POST /tools/execute`` and hydrate truncated results. Args: tool_id: QVeris tool identifier r | STRING |
| HIGH | agent/backtest/loaders/qveris_loader.py | 275 | Fetch daily OHLCV history through selected QVeris capabilities. Args: codes: Symbols to fetch. | STRING |
| HIGH | agent/backtest/loaders/eastmoney_client.py | 80 | Issue a throttled Eastmoney GET and decode the body as JSON. Args: url: Fully-qualified Eastmoney endpoint | STRING |
| HIGH | agent/backtest/loaders/eastmoney_client.py | 275 | Fetch ascending OHLCV bars for one ``secid`` from push2his. Args: secid: Eastmoney secid (e.g. ``"1.600519" | STRING |
| HIGH | agent/backtest/loaders/tiingo_loader.py | 158 | Fetch OHLCV history keyed by the original project symbols. Each symbol is fetched independently so one failing | STRING |
| HIGH | agent/backtest/loaders/sina_loader.py | 55 | Extract the JSON array embedded in Sina's JSONP wrapper. Args: raw: Raw response body, e.g. ``var x=([{"d": | STRING |
| HIGH | agent/backtest/loaders/sina_loader.py | 146 | Fetch US daily OHLCV for each code; skip and log per-symbol failures. Args: codes: Symbols in ``TIC | STRING |
| HIGH | agent/backtest/loaders/base.py | 51 | Drop, flag, or reject bars that violate OHLC invariants. Loaders only drop NaN rows, so structurally dirty bars — ` | STRING |
| HIGH | agent/backtest/loaders/base.py | 174 | Call ``fn`` with a bounded retry budget on declared transient errors. Between attempts sleeps ``min(backoff[attempt | STRING |
| HIGH | agent/backtest/loaders/mootdx_loader.py | 100 | Fetch A-share OHLCV via mootdx. Args: codes: Symbol list. `.SH/.SZ/.BJ` suffix or bare 6-digit | STRING |
| HIGH | agent/backtest/loaders/finnhub_loader.py | 176 | Fetch daily OHLCV history keyed by the original project symbols. Each symbol is fetched independently through t | STRING |
| HIGH | agent/src/swarm/store.py | 134 | Return the directory path for a given run. Args: run_id: Run identifier. Returns: | STRING |
| HIGH | agent/src/swarm/store.py | 158 | Create the directory structure for a new run and write initial state. Args: run: SwarmRun instance. | STRING |
| HIGH | agent/src/swarm/task_store.py | 60 | Load a task by ID. Args: task_id: Task ID. Returns: SwarmTask instance. | STRING |
| HIGH | agent/src/swarm/task_store.py | 204 | Kahn's algorithm topological layering; tasks in the same layer can run in parallel. Args: tasks: List of Sw | STRING |
| HIGH | agent/src/swarm/presets.py | 27 | Load a YAML preset by name. Args: name: Preset name (without .yaml extension). Returns: Parsed | STRING |
| HIGH | agent/src/swarm/presets.py | 215 | Create a SwarmRun from a preset with user variables applied. Steps: 1. Load preset YAML 2. Create S | STRING |
| HIGH | agent/src/swarm/runtime.py | 93 | Start a swarm run. Returns immediately, execution happens in background. Args: preset_name: YAML pr | STRING |
| HIGH | agent/src/tools/stock_news_tool.py | 154 | Fetch China-market news headlines for a query from Eastmoney. Args: query: Free-text search term (bare code | STRING |
| HIGH | agent/src/tools/stock_news_tool.py | 217 | Fetch US/HK related-instrument matches for a query via Yahoo search. Yahoo's public search endpoint also carries a | STRING |
| HIGH | agent/src/tools/trade_journal_parsers.py | 61 | Load a CSV/Excel file into a DataFrame with encoding fallback. Args: path: Path to the file (.csv/.xlsx/.xl | STRING |
| HIGH | agent/src/tools/trade_journal_parsers.py | 335 | End-to-end: load file, detect format, parse. Args: path: File path. Returns: (format_name, rec | STRING |
| HIGH | agent/src/tools/trade_journal_tool.py | 394 | Parse a trade journal and return a JSON analysis. Args: file_path: Path to CSV/Excel file. analysis | STRING |
| HIGH | agent/src/tools/dragon_tiger_tool.py | 38 | Normalize a ``YYYY-MM-DD`` (or already-compact) date for the API filter. Args: date: A trade date such as ` | STRING |
| HIGH | agent/src/tools/dragon_tiger_tool.py | 72 | Pull one page of datacenter rows for a report, tolerating empty results. Args: report_name: Eastmoney ``rep | STRING |
| HIGH | agent/src/tools/mcp.py | 125 | Build local tool wrappers for a configured MCP server. Args: server_name: Logical server name from config. | STRING |
| HIGH | agent/src/tools/mcp.py | 514 | Call a remote tool with timeout and no automatic retry. Args: remote_name: Remote tool name. | STRING |
| 68 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | agent/mcp_server.py | 1008 | except Exception: | CODE |
| LOW | agent/mcp_server.py | 979 | except Exception: | CODE |
| LOW | agent/tests/test_mcp_server_smoke.py | 97 | except Exception: | CODE |
| LOW | agent/tests/test_mcp_server_smoke.py | 233 | except Exception: | CODE |
| LOW⚡ | agent/tests/test_mcp_regression.py | 64 | except Exception as exc: # noqa: BLE001 | CODE |
| LOW⚡ | agent/tests/test_mcp_regression.py | 112 | except Exception as exc: # noqa: BLE001 | CODE |
| LOW⚡ | agent/tests/test_env_schema.py | 352 | except Exception as exc: # noqa: BLE001 | CODE |
| LOW | agent/tests/factors/test_lookahead.py | 137 | except Exception: # noqa: BLE001 — be loud only at test time | CODE |
| MEDIUM | agent/tests/factors/test_lookahead.py | 134 | def _registered_alpha_ids() -> list[str]: | CODE |
| LOW | agent/cli/completer.py | 36 | except Exception: # noqa: BLE001 — never block typeahead on theme import | CODE |
| LOW | agent/cli/stream.py | 140 | except Exception: # noqa: BLE001 — Rich shutdown can race | CODE |
| LOW | agent/cli/stream.py | 158 | except Exception: # noqa: BLE001 | CODE |
| LOW⚡ | agent/cli/stream.py | 193 | except Exception: # noqa: BLE001 | CODE |
| MEDIUM | agent/cli/main.py | 523 | def _worker() -> None: | CODE |
| LOW⚡ | agent/cli/main.py | 456 | except Exception: # noqa: BLE001 — persistence is best-effort | CODE |
| LOW⚡ | agent/cli/main.py | 465 | except Exception: # noqa: BLE001 | CODE |
| LOW⚡ | agent/cli/main.py | 528 | except Exception: # noqa: BLE001 | CODE |
| LOW⚡ | agent/cli/main.py | 636 | except Exception as exc: # noqa: BLE001 — never let a handler kill the loop | CODE |
| LOW | agent/cli/main.py | 149 | except Exception: # noqa: BLE001 — never block startup on stats | CODE |
| LOW | agent/cli/main.py | 165 | except Exception: # noqa: BLE001 | CODE |
| LOW | agent/cli/main.py | 180 | except Exception: # noqa: BLE001 | CODE |
| LOW | agent/cli/main.py | 286 | except Exception: # noqa: BLE001 — legacy will load again later | CODE |
| LOW | agent/cli/main.py | 387 | except Exception: # noqa: BLE001 — persistence error → empty history | CODE |
| LOW | agent/cli/main.py | 416 | except Exception: # noqa: BLE001 — never block the turn on persistence | CODE |
| LOW | agent/cli/main.py | 425 | except Exception: # noqa: BLE001 | CODE |
| LOW | agent/cli/main.py | 481 | except Exception: # noqa: BLE001 | CODE |
| LOW | agent/cli/main.py | 656 | except Exception: # noqa: BLE001 | CODE |
| LOW | agent/cli/main.py | 858 | except Exception as exc: # noqa: BLE001 — never let a halt failure kill the loop | CODE |
| LOW | agent/cli/main.py | 883 | except Exception as exc: # noqa: BLE001 — never let a resume failure kill the loop | CODE |
| LOW | agent/cli/main.py | 921 | except Exception as exc: # noqa: BLE001 — never let a connector command kill the loop | CODE |
| LOW | agent/cli/main.py | 935 | except Exception as exc: # noqa: BLE001 # QVERIS-INTEGRATION | CODE |
| LOW | agent/cli/main.py | 1060 | except Exception as exc: # noqa: BLE001 — surface a clean error to the user | CODE |
| LOW | agent/cli/main.py | 1138 | except Exception: # noqa: BLE001 | CODE |
| LOW | agent/cli/main.py | 1165 | except Exception as exc: # noqa: BLE001 — fall back gracefully if prompt_toolkit broken | CODE |
| LOW | agent/cli/main.py | 1172 | except Exception: # noqa: BLE001 | CODE |
| LOW⚡ | agent/cli/_legacy.py | 2781 | except Exception as exc: | CODE |
| LOW | agent/cli/_legacy.py | 341 | except Exception: | CODE |
| LOW | agent/cli/_legacy.py | 385 | except Exception: | CODE |
| LOW | agent/cli/_legacy.py | 395 | except Exception: | CODE |
| LOW | agent/cli/_legacy.py | 948 | except Exception: # noqa: BLE001 — relay must never break the turn | CODE |
| LOW | agent/cli/_legacy.py | 1020 | except Exception: # noqa: BLE001 — capture must never kill the turn | CODE |
| LOW | agent/cli/_legacy.py | 1035 | except Exception: # noqa: BLE001 — relay must never kill the turn | CODE |
| LOW | agent/cli/_legacy.py | 2470 | except Exception as exc: | CODE |
| LOW | agent/cli/_legacy.py | 2716 | except Exception: | CODE |
| LOW | agent/cli/_legacy.py | 2866 | except Exception as exc: # noqa: BLE001 — surface a clean error to the user | CODE |
| LOW | agent/cli/_legacy.py | 2883 | except Exception as exc: # noqa: BLE001 - CLI should explain offline API cleanly | CODE |
| LOW | agent/cli/_legacy.py | 3065 | except Exception as exc: # noqa: BLE001 # QVERIS-INTEGRATION | CODE |
| LOW | agent/cli/_legacy.py | 3126 | except Exception as exc: # noqa: BLE001 # QVERIS-INTEGRATION | CODE |
| LOW | agent/cli/_legacy.py | 3174 | except Exception: # noqa: BLE001 — diagnostics must not mask the real CLI error | CODE |
| LOW | agent/cli/_legacy.py | 3287 | except Exception as exc: # noqa: BLE001 — surface any handshake failure | CODE |
| LOW | agent/cli/_legacy.py | 3358 | except Exception: # noqa: BLE001 — liveness lands concurrently; degrade cleanly | CODE |
| LOW | agent/cli/_legacy.py | 3364 | except Exception as exc: # noqa: BLE001 — never let a status read raise | CODE |
| LOW | agent/cli/_legacy.py | 3375 | except Exception: # noqa: BLE001 | CODE |
| LOW | agent/cli/_legacy.py | 3702 | except Exception: # noqa: BLE001 — runtime lands concurrently; fall back to a wait | CODE |
| LOW | agent/cli/_legacy.py | 3713 | except Exception: # noqa: BLE001 | CODE |
| LOW | agent/cli/_legacy.py | 3860 | except Exception as exc: # noqa: BLE001 | CODE |
| LOW | agent/cli/_legacy.py | 3944 | except Exception as exc: # noqa: BLE001 | CODE |
| LOW | agent/cli/_legacy.py | 3966 | except Exception as exc: # noqa: BLE001 | CODE |
| LOW | agent/cli/_legacy.py | 4017 | except Exception as exc: # noqa: BLE001 | CODE |
| LOW | agent/cli/_legacy.py | 4079 | except Exception as exc: # noqa: BLE001 | CODE |
| 584 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | agent/mcp_server.py | 293 | CODE | |
| LOW | agent/mcp_server.py | 807 | CODE | |
| LOW | agent/mcp_server.py | 838 | CODE | |
| LOW | agent/cli/_legacy.py | 978 | CODE | |
| LOW | agent/cli/_legacy.py | 4052 | CODE | |
| LOW | agent/cli/_legacy.py | 4103 | CODE | |
| LOW | agent/backtest/loaders/tushare_fundamentals.py | 180 | CODE | |
| LOW | agent/src/tools/__init__.py | 66 | CODE | |
| LOW | agent/src/tools/pattern_tool.py | 90 | CODE | |
| LOW | agent/src/hypotheses/registry.py | 214 | CODE | |
| LOW | agent/src/factors/zoo/alpha101/alpha_018.py | 63 | CODE | |
| LOW | agent/src/factors/zoo/alpha101/alpha_049.py | 99 | CODE | |
| LOW | agent/src/factors/zoo/alpha101/alpha_059.py | 95 | CODE | |
| LOW | agent/src/factors/zoo/alpha101/alpha_008.py | 77 | CODE | |
| LOW | agent/src/factors/zoo/alpha101/alpha_028.py | 64 | CODE | |
| LOW | agent/src/factors/zoo/alpha101/alpha_079.py | 100 | CODE | |
| LOW | agent/src/factors/zoo/alpha101/alpha_069.py | 98 | CODE | |
| LOW | agent/src/factors/zoo/alpha101/alpha_038.py | 62 | CODE | |
| LOW | agent/src/factors/zoo/alpha101/alpha_029.py | 89 | CODE | |
| LOW | agent/src/factors/zoo/alpha101/alpha_078.py | 72 | CODE | |
| LOW | agent/src/factors/zoo/alpha101/alpha_068.py | 67 | CODE | |
| LOW | agent/src/factors/zoo/alpha101/alpha_039.py | 68 | CODE | |
| LOW | agent/src/factors/zoo/alpha101/alpha_019.py | 76 | CODE | |
| LOW | agent/src/factors/zoo/alpha101/alpha_048.py | 110 | CODE | |
| LOW | agent/src/factors/zoo/alpha101/alpha_058.py | 94 | CODE | |
| LOW | agent/src/factors/zoo/alpha101/alpha_009.py | 86 | CODE | |
| LOW | agent/src/factors/zoo/alpha101/alpha_077.py | 69 | CODE | |
| LOW | agent/src/factors/zoo/alpha101/alpha_026.py | 62 | CODE | |
| LOW | agent/src/factors/zoo/alpha101/alpha_084.py | 68 | CODE | |
| LOW | agent/src/factors/zoo/alpha101/alpha_012.py | 62 | CODE | |
| LOW | agent/src/factors/zoo/alpha101/alpha_043.py | 62 | CODE | |
| LOW | agent/src/factors/zoo/alpha101/alpha_053.py | 64 | CODE | |
| LOW | agent/src/factors/zoo/alpha101/alpha_002.py | 63 | CODE | |
| LOW | agent/src/factors/zoo/alpha101/alpha_094.py | 64 | CODE | |
| LOW | agent/src/factors/zoo/alpha101/alpha_036.py | 83 | CODE | |
| LOW | agent/src/factors/zoo/alpha101/alpha_067.py | 98 | CODE | |
| LOW | agent/src/factors/zoo/alpha101/alpha_047.py | 86 | CODE | |
| LOW | agent/src/factors/zoo/alpha101/alpha_016.py | 62 | CODE | |
| LOW | agent/src/factors/zoo/alpha101/alpha_022.py | 63 | CODE | |
| LOW | agent/src/factors/zoo/alpha101/alpha_073.py | 70 | CODE | |
| LOW | agent/src/factors/zoo/alpha101/alpha_080.py | 100 | CODE | |
| LOW | agent/src/factors/zoo/alpha101/alpha_090.py | 97 | CODE | |
| LOW | agent/src/factors/zoo/alpha101/alpha_063.py | 105 | CODE | |
| LOW | agent/src/factors/zoo/alpha101/alpha_032.py | 76 | CODE | |
| LOW | agent/src/factors/zoo/alpha101/alpha_006.py | 62 | CODE | |
| LOW | agent/src/factors/zoo/alpha101/alpha_057.py | 62 | CODE | |
| LOW | agent/src/factors/zoo/alpha101/alpha_046.py | 99 | CODE | |
| LOW | agent/src/factors/zoo/alpha101/alpha_017.py | 62 | CODE | |
| LOW | agent/src/factors/zoo/alpha101/alpha_023.py | 91 | CODE | |
| LOW | agent/src/factors/zoo/alpha101/alpha_072.py | 66 | CODE | |
| LOW | agent/src/factors/zoo/alpha101/alpha_081.py | 80 | CODE | |
| LOW | agent/src/factors/zoo/alpha101/alpha_091.py | 97 | CODE | |
| LOW | agent/src/factors/zoo/alpha101/alpha_062.py | 74 | CODE | |
| LOW | agent/src/factors/zoo/alpha101/alpha_033.py | 62 | CODE | |
| LOW | agent/src/factors/zoo/alpha101/alpha_007.py | 92 | CODE | |
| LOW | agent/src/factors/zoo/alpha101/alpha_056.py | 78 | CODE | |
| LOW | agent/src/factors/zoo/alpha101/alpha_076.py | 100 | CODE | |
| LOW | agent/src/factors/zoo/alpha101/alpha_027.py | 98 | CODE | |
| LOW | agent/src/factors/zoo/alpha101/alpha_085.py | 67 | CODE | |
| LOW | agent/src/factors/zoo/alpha101/alpha_013.py | 62 | CODE | |
| 151 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tools/ci_env_var_gate.py | 89 | def _set_source(self, source: str) -> None: | CODE |
| LOW⚡ | agent/api_server.py | 113 | logger = logging.getLogger(__name__) | CODE |
| LOW⚡ | agent/mcp_server.py | 74 | logger = logging.getLogger(__name__) | CODE |
| LOW | agent/cli/onboard.py | 534 | __all__ = ["run_onboarding", "PROVIDERS", "Provider", "BACK", "CANCEL"] | CODE |
| LOW | agent/cli/theme.py | 235 | __all__ = [ | CODE |
| LOW | agent/cli/_version.py | 46 | __all__ = ["__version__"] | CODE |
| LOW | agent/cli/__init__.py | 103 | __all__ = ["main", *sorted( | CODE |
| LOW | agent/cli/completer.py | 115 | __all__ = ["SlashCompleter"] | CODE |
| LOW | agent/cli/stream.py | 144 | def set_extra(self, extra: str) -> None: | CODE |
| LOW | agent/cli/stream.py | 339 | __all__ = [ | CODE |
| LOW | agent/cli/input.py | 380 | __all__ = [ | CODE |
| LOW | agent/cli/main.py | 1449 | __all__ = ["main", "InteractiveContext"] | CODE |
| LOW | agent/cli/intro.py | 5 | __all__ = ["print_banner"] | CODE |
| LOW | agent/cli/ui/__init__.py | 7 | __all__ = [ | CODE |
| LOW | agent/cli/utils/__init__.py | 11 | __all__ = [ | CODE |
| LOW | agent/cli/utils/format.py | 157 | __all__ = ["format_duration", "format_tokens", "abbreviate_num"] | CODE |
| LOW | agent/cli/utils/thinking_verbs.py | 41 | __all__ = ["pick_thinking_verb", "THINKING_VERBS"] | CODE |
| LOW | agent/cli/components/chat_log.py | 77 | __all__ = ["render_history"] | CODE |
| LOW | agent/cli/components/tool_event.py | 218 | __all__ = ["render_tool_event", "render_tool_events"] | CODE |
| LOW | agent/cli/components/hint_bar.py | 67 | __all__ = ["render_hint_bar"] | CODE |
| LOW | agent/cli/components/working_indicator.py | 107 | def update_verb(self, verb: str) -> None: | CODE |
| LOW | agent/cli/components/working_indicator.py | 144 | __all__ = ["ThinkingSpinner"] | CODE |
| LOW | agent/cli/components/__init__.py | 12 | __all__ = [ | CODE |
| LOW | agent/cli/commands/show.py | 86 | __all__ = ["run", "cmd_show", "cmd_skill", "cmd_pine"] | CODE |
| LOW | agent/cli/commands/memory.py | 67 | __all__ = ["run", "cmd_memory"] | CODE |
| LOW | agent/cli/commands/session.py | 98 | __all__ = ["run", "cmd_history", "cmd_search", "cmd_export"] | CODE |
| LOW | agent/cli/commands/__init__.py | 13 | __all__ = [ | CODE |
| LOW | agent/cli/commands/chat.py | 247 | __all__ = [ | CODE |
| LOW | agent/cli/commands/goal.py | 395 | __all__ = [ | CODE |
| LOW | agent/cli/commands/help.py | 64 | __all__ = ["run"] | CODE |
| LOW | agent/backtest/runner.py | 47 | logger = logging.getLogger(__name__) | CODE |
| LOW | agent/backtest/correlation.py | 16 | logger = logging.getLogger(__name__) | CODE |
| LOW | agent/backtest/engines/base.py | 41 | logger = logging.getLogger(__name__) | CODE |
| LOW | agent/backtest/loaders/okx.py | 15 | logger = logging.getLogger(__name__) | CODE |
| LOW | agent/backtest/loaders/akshare_loader.py | 18 | logger = logging.getLogger(__name__) | CODE |
| LOW | agent/backtest/loaders/alphavantage_loader.py | 33 | logger = logging.getLogger(__name__) | CODE |
| LOW | agent/backtest/loaders/ccxt_loader.py | 28 | logger = logging.getLogger(__name__) | CODE |
| LOW | agent/backtest/loaders/yfinance_loader.py | 12 | logger = logging.getLogger(__name__) | CODE |
| LOW | agent/backtest/loaders/local_loader.py | 44 | logger = logging.getLogger(__name__) | CODE |
| LOW | agent/backtest/loaders/eastmoney_loader.py | 27 | logger = logging.getLogger(__name__) | CODE |
| LOW⚡ | agent/backtest/loaders/registry.py | 17 | logger = logging.getLogger(__name__) | CODE |
| LOW | agent/backtest/loaders/_http.py | 31 | logger = logging.getLogger(__name__) | CODE |
| LOW | agent/backtest/loaders/futu.py | 18 | logger = logging.getLogger(__name__) | CODE |
| LOW | agent/backtest/loaders/_fundamental_schema.py | 220 | __all__ = [ | CODE |
| LOW | agent/backtest/loaders/fmp_loader.py | 30 | logger = logging.getLogger(__name__) | CODE |
| LOW | agent/backtest/loaders/yahoo_loader.py | 26 | logger = logging.getLogger(__name__) | CODE |
| LOW | agent/backtest/loaders/sec_edgar_client.py | 37 | logger = logging.getLogger(__name__) | CODE |
| LOW | agent/backtest/loaders/tencent_loader.py | 21 | logger = logging.getLogger(__name__) | CODE |
| LOW | agent/backtest/loaders/rsshub_events.py | 38 | logger = logging.getLogger(__name__) | CODE |
| LOW | agent/backtest/loaders/yahoo_client.py | 40 | logger = logging.getLogger(__name__) | CODE |
| LOW | agent/backtest/loaders/longbridge.py | 40 | logger = logging.getLogger(__name__) | CODE |
| LOW | agent/backtest/loaders/stooq_loader.py | 33 | logger = logging.getLogger(__name__) | CODE |
| LOW | agent/backtest/loaders/fundamentals_loader.py | 25 | logger = logging.getLogger(__name__) | CODE |
| LOW | agent/backtest/loaders/qveris_loader.py | 34 | logger = logging.getLogger(__name__) | CODE |
| LOW | agent/backtest/loaders/baostock_loader.py | 20 | logger = logging.getLogger(__name__) | CODE |
| LOW | agent/backtest/loaders/eastmoney_client.py | 30 | logger = logging.getLogger(__name__) | CODE |
| LOW | agent/backtest/loaders/tushare.py | 16 | logger = logging.getLogger(__name__) | CODE |
| LOW | agent/backtest/loaders/tiingo_loader.py | 27 | logger = logging.getLogger(__name__) | CODE |
| LOW | agent/backtest/loaders/sina_loader.py | 28 | logger = logging.getLogger(__name__) | CODE |
| LOW | agent/backtest/loaders/base.py | 24 | logger = logging.getLogger(__name__) | CODE |
| 121 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tools/ci_env_var_gate.py | 199 | CODE | |
| LOW | agent/tests/test_market_data_tool.py | 51 | CODE | |
| LOW | agent/tests/test_no_set_mandate_tool.py | 46 | CODE | |
| LOW | agent/tests/test_no_set_mandate_tool.py | 67 | CODE | |
| LOW | agent/tests/test_consent_commit.py | 466 | CODE | |
| LOW | agent/tests/test_mcp_server_http_transport.py | 50 | CODE | |
| LOW | agent/tests/factors/test_alpha_purity.py | 200 | CODE | |
| LOW | agent/tests/factors/test_alpha_purity.py | 172 | CODE | |
| LOW | agent/cli/stream.py | 185 | CODE | |
| LOW | agent/cli/input.py | 121 | CODE | |
| LOW | agent/cli/main.py | 549 | CODE | |
| LOW | agent/cli/main.py | 1113 | CODE | |
| LOW | agent/cli/_legacy.py | 978 | CODE | |
| LOW | agent/cli/_legacy.py | 1786 | CODE | |
| LOW | agent/cli/_legacy.py | 1845 | CODE | |
| LOW | agent/cli/_legacy.py | 2125 | CODE | |
| LOW | agent/cli/_legacy.py | 2351 | CODE | |
| LOW | agent/cli/_legacy.py | 3667 | CODE | |
| LOW | agent/cli/_legacy.py | 5237 | CODE | |
| LOW | agent/cli/_legacy.py | 1012 | CODE | |
| LOW | agent/cli/_legacy.py | 1979 | CODE | |
| LOW | agent/cli/_legacy.py | 2042 | CODE | |
| LOW | agent/cli/ui/rail.py | 319 | CODE | |
| LOW | agent/backtest/runner.py | 353 | CODE | |
| LOW | agent/backtest/runner.py | 380 | CODE | |
| LOW | agent/backtest/runner.py | 808 | CODE | |
| LOW | agent/backtest/runner.py | 1043 | CODE | |
| LOW | agent/backtest/engines/global_futures.py | 147 | CODE | |
| LOW | agent/backtest/engines/china_futures.py | 157 | CODE | |
| LOW | agent/backtest/engines/options_portfolio.py | 225 | CODE | |
| LOW | agent/backtest/engines/composite.py | 25 | CODE | |
| LOW | agent/backtest/loaders/rsshub_events.py | 501 | CODE | |
| LOW | agent/backtest/loaders/longbridge.py | 227 | CODE | |
| LOW | agent/backtest/loaders/fundamentals_loader.py | 46 | CODE | |
| LOW | agent/backtest/loaders/qveris_loader.py | 440 | CODE | |
| LOW | agent/backtest/loaders/baostock_loader.py | 51 | CODE | |
| LOW | agent/backtest/loaders/tushare.py | 174 | CODE | |
| LOW | agent/backtest/loaders/tushare.py | 229 | CODE | |
| LOW | agent/src/ui_services.py | 100 | CODE | |
| LOW | agent/src/ui_services.py | 303 | CODE | |
| LOW | agent/src/ui_services.py | 402 | CODE | |
| LOW | agent/src/market_data.py | 80 | CODE | |
| LOW | agent/src/swarm/worker.py | 297 | CODE | |
| LOW | agent/src/swarm/task_store.py | 203 | CODE | |
| LOW | agent/src/swarm/runtime.py | 211 | CODE | |
| LOW | agent/src/swarm/runtime.py | 461 | CODE | |
| LOW | agent/src/tools/alpha_zoo_tool.py | 97 | CODE | |
| LOW | agent/src/tools/sdm_decay_scan_tool.py | 59 | CODE | |
| LOW | agent/src/tools/__init__.py | 66 | CODE | |
| LOW | agent/src/tools/read_file_tool.py | 33 | CODE | |
| LOW | agent/src/tools/mcp.py | 760 | CODE | |
| LOW | agent/src/tools/web_search_tool.py | 173 | CODE | |
| LOW | agent/src/tools/report_audit_tool.py | 79 | CODE | |
| LOW | agent/src/tools/report_audit_tool.py | 226 | CODE | |
| LOW | agent/src/tools/report_audit_tool.py | 370 | CODE | |
| LOW | agent/src/tools/doc_reader_tool.py | 122 | CODE | |
| LOW | agent/src/tools/doc_reader_tool.py | 239 | CODE | |
| LOW | agent/src/tools/path_utils.py | 158 | CODE | |
| LOW | agent/src/tools/financial_rigor_tool.py | 518 | CODE | |
| LOW | agent/src/core/runner.py | 112 | CODE | |
| 95 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| CRITICAL | agent/src/channels/feishu.py | 937 | response = self._client.im.v1.message_reaction.create(request) | CODE |
| CRITICAL | agent/src/channels/feishu.py | 978 | response = self._client.im.v1.message_reaction.delete(request) | CODE |
| CRITICAL | agent/src/channels/feishu.py | 1315 | response = self._client.im.v1.image.create(request) | CODE |
| CRITICAL | agent/src/channels/feishu.py | 1349 | response = self._client.im.v1.file.create(request) | CODE |
| CRITICAL | agent/src/channels/feishu.py | 1377 | response = self._client.im.v1.message_resource.get(request) | CODE |
| CRITICAL | agent/src/channels/feishu.py | 1412 | response = self._client.im.v1.message_resource.get(request) | CODE |
| CRITICAL | agent/src/channels/feishu.py | 1516 | response = self._client.im.v1.message.get(request) | CODE |
| CRITICAL | agent/src/channels/feishu.py | 1573 | response = self._client.im.v1.message.reply(request) | CODE |
| CRITICAL | agent/src/channels/feishu.py | 1623 | response = self._client.im.v1.message.create(request) | CODE |
| CRITICAL | agent/src/channels/feishu.py | 1675 | response = self._client.cardkit.v1.card.create(request) | CODE |
| CRITICAL | agent/src/channels/feishu.py | 1725 | response = self._client.cardkit.v1.card_element.content(request) | CODE |
| CRITICAL | agent/src/channels/feishu.py | 1757 | response = self._client.cardkit.v1.card.settings(request) | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | agent/src/swarm/presets/etf_allocation_desk.yaml | 209 | ### Step 1: Three-Dimensional Trade-off | COMMENT |
| LOW⚡ | agent/src/swarm/presets/etf_allocation_desk.yaml | 214 | ### Step 2: Final Portfolio Weight Determination | COMMENT |
| LOW⚡ | agent/src/swarm/presets/etf_allocation_desk.yaml | 220 | ### Step 3: Portfolio Holdings Finalization | COMMENT |
| LOW⚡ | agent/src/swarm/presets/etf_allocation_desk.yaml | 224 | ### Step 4: Historical Backtest Execution | COMMENT |
| LOW⚡ | agent/src/swarm/presets/etf_allocation_desk.yaml | 230 | ### Step 5: Portfolio Performance Attribution | COMMENT |
| LOW⚡ | agent/src/swarm/presets/pairs_research_lab.yaml | 73 | ### Step 1: Unit-root preconditions | COMMENT |
| LOW⚡ | agent/src/swarm/presets/pairs_research_lab.yaml | 80 | ### Step 2: Cointegration tests | COMMENT |
| LOW | agent/src/swarm/presets/pairs_research_lab.yaml | 97 | ### Step 3: Mean-reversion parameters | COMMENT |
| LOW | agent/src/swarm/presets/pairs_research_lab.yaml | 111 | ### Step 4: Composite arb-value score (max 100) | COMMENT |
| LOW | agent/src/skills/thesis-tracker/SKILL.md | 23 | ## Step 1: Decide the Mode | COMMENT |
| LOW⚡ | agent/src/skills/performance-attribution/SKILL.md | 184 | ### Step 1: Aggregate Analysis | COMMENT |
| LOW⚡ | agent/src/skills/performance-attribution/SKILL.md | 192 | ### Step 2: Attribution Decomposition | COMMENT |
| LOW⚡ | agent/src/skills/performance-attribution/SKILL.md | 200 | ### Step 3: Style Analysis | COMMENT |
| LOW⚡ | agent/src/skills/performance-attribution/SKILL.md | 208 | ### Step 4: Conclusions and Recommendations | COMMENT |
| LOW | agent/src/skills/dividend-analysis/SKILL.md | 39 | ### Step 1: Normalize the Dividend | COMMENT |
| LOW | agent/src/skills/dividend-analysis/SKILL.md | 51 | ### Step 2: Check Coverage | COMMENT |
| LOW | agent/src/skills/dividend-analysis/SKILL.md | 67 | ### Step 3: Diagnose Dividend Growth Quality | COMMENT |
| LOW | agent/src/skills/dividend-analysis/SKILL.md | 84 | ### Step 4: Check Balance Sheet Flexibility | COMMENT |
| LOW | agent/src/skills/dividend-analysis/SKILL.md | 96 | ### Step 5: Separate Dividend Yield from Total Return | COMMENT |
| LOW | agent/src/skills/valuation-model/SKILL.md | 27 | #### Step 1: Forecast free cash flow (usually 5 years) | COMMENT |
| LOW | agent/src/skills/valuation-model/SKILL.md | 44 | #### Step 2: Calculate WACC | COMMENT |
| LOW | agent/src/skills/valuation-model/SKILL.md | 68 | #### Step 3: Terminal Value | COMMENT |
| LOW | agent/src/skills/valuation-model/SKILL.md | 78 | #### Step 4: Sensitivity Analysis | COMMENT |
| LOW | agent/src/skills/bottleneck-hunter/SKILL.md | 19 | ## Step 1: Super-Trend Confirmation | COMMENT |
| LOW | agent/src/skills/bottleneck-hunter/SKILL.md | 32 | ## Step 2: Physical Supply-Chain Decomposition | COMMENT |
| LOW | agent/src/skills/bottleneck-hunter/SKILL.md | 64 | ## Step 3: Bottleneck Identification — Finding "Choke Points" | COMMENT |
| LOW | agent/src/skills/bottleneck-hunter/SKILL.md | 79 | ## Step 4: Company Screening — From Bottleneck to Tickers | COMMENT |
| LOW | agent/src/skills/bottleneck-hunter/SKILL.md | 102 | ## Step 5: Cross-Validation — Don't Trust a Single Story | COMMENT |
| LOW | agent/src/skills/bottleneck-hunter/SKILL.md | 125 | ## Step 6: Output — Bottleneck Opportunity Board | COMMENT |
| LOW | agent/src/skills/bottleneck-hunter/SKILL.md | 167 | ## Step 7: Inventory Update — Maintain the Bottleneck Map | COMMENT |
| LOW | …gy-dev-manager/references/strategy_extraction_guide.md | 62 | ### Step 1: Identify the Strategy Type | COMMENT |
| LOW⚡ | …gy-dev-manager/references/strategy_extraction_guide.md | 75 | ### Step 2: Extract the Signal Generation Logic | COMMENT |
| LOW⚡ | …gy-dev-manager/references/strategy_extraction_guide.md | 85 | ### Step 3: Extract Entry Conditions | COMMENT |
| LOW⚡ | …gy-dev-manager/references/strategy_extraction_guide.md | 94 | ### Step 4: Extract Exit Conditions | COMMENT |
| LOW⚡ | …gy-dev-manager/references/strategy_extraction_guide.md | 103 | ### Step 5: Extract Position Sizing Rules | COMMENT |
| LOW⚡ | …gy-dev-manager/references/strategy_extraction_guide.md | 112 | ### Step 6: Extract Risk Management Parameters | COMMENT |
| LOW⚡ | …gy-dev-manager/references/strategy_extraction_guide.md | 122 | ### Step 7: Identify Required Data Inputs | COMMENT |
| LOW⚡ | …gy-dev-manager/references/strategy_extraction_guide.md | 131 | ### Step 8: Map to SignalEngine Template Parameters | COMMENT |
| LOW⚡ | …strategy-dev-manager/templates/factor_signal_engine.py | 44 | # Step 1: Compute raw factor values for each symbol | COMMENT |
| LOW⚡ | …strategy-dev-manager/templates/factor_signal_engine.py | 53 | # Step 2: Cross-sectional ranking | COMMENT |
| LOW | …strategy-dev-manager/templates/factor_signal_engine.py | 78 | # Step 3: Clip signals to [-1, 1] | COMMENT |
| LOW | agent/src/skills/macro-analysis/SKILL.md | 113 | ### Step 1: Data Collection and Current-State Description | COMMENT |
| LOW | agent/src/skills/macro-analysis/SKILL.md | 122 | ### Step 2: Cycle Positioning | COMMENT |
| LOW | agent/src/skills/macro-analysis/SKILL.md | 133 | ### Step 3: Policy Impact Assessment | COMMENT |
| LOW | agent/src/skills/macro-analysis/SKILL.md | 142 | ### Step 4: Asset Allocation Tilt | COMMENT |
| LOW | agent/src/skills/management-deep-dive/SKILL.md | 23 | ## Step 1: Identify Key People | COMMENT |
| LOW | agent/src/skills/management-deep-dive/SKILL.md | 39 | ## Step 2: CEO Circle of Competence | COMMENT |
| LOW | agent/src/skills/management-deep-dive/SKILL.md | 60 | ## Step 3: Integrity Assessment (most important) | COMMENT |
| LOW | agent/src/skills/management-deep-dive/SKILL.md | 93 | ## Step 4: Capital Allocation | COMMENT |
| LOW | agent/src/skills/management-deep-dive/SKILL.md | 118 | ## Step 5: Governance | COMMENT |
| LOW⚡ | agent/src/skills/management-deep-dive/SKILL.md | 142 | ## Step 6: Side Validation | COMMENT |
| LOW⚡ | agent/src/skills/management-deep-dive/SKILL.md | 150 | ## Step 7: Post-CEO Scenario | COMMENT |
| LOW⚡ | agent/src/skills/management-deep-dive/SKILL.md | 159 | ## Step 8: Output | COMMENT |
| LOW | agent/src/skills/management-deep-dive/SKILL.md | 181 | ## Step 9: Save | COMMENT |
| LOW⚡ | …/skills/cross-market-strategy/example_signal_engine.py | 36 | # Step 1: raw signals per market | COMMENT |
| LOW⚡ | …/skills/cross-market-strategy/example_signal_engine.py | 43 | # Step 2: volatility-adjusted weights | COMMENT |
| LOW | agent/src/skills/correlation-analysis/SKILL.md | 371 | # Step 1: estimate the cointegrating vector with OLS. | COMMENT |
| LOW | agent/src/skills/correlation-analysis/SKILL.md | 378 | # Step 2: test residual stationarity with ADF. | COMMENT |
| LOW | agent/src/channels/dingtalk.py | 743 | # Step 1: Exchange downloadCode for a temporary download URL | COMMENT |
| LOW | agent/src/channels/dingtalk.py | 758 | # Step 2: Download the file content | COMMENT |
| 6 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM⚡ | agent/tests/test_china_a_engine.py | 219 | """A-share engine forces leverage=1.""" | STRING |
| MEDIUM⚡ | agent/tests/test_crypto_engine.py | 285 | """Spot (leverage=1) should never get liquidated.""" | STRING |
| MEDIUM | agent/tests/test_equity_regression.py | 93 | """Different leverage values produce correct margin calculations.""" | STRING |
| MEDIUM⚡ | agent/tests/test_china_futures_engine.py | 279 | """IF margin=12% → leverage≈8.33.""" | STRING |
| MEDIUM⚡ | agent/tests/test_consent_commit.py | 83 | # Cash-only ceiling => no profile may request leverage. | COMMENT |
| MEDIUM⚡ | agent/tests/test_consent_commit.py | 241 | # H9: commit-time ceiling re-check is alias-robust (no silent NO-OP) | COMMENT |
| MEDIUM⚡ | agent/tests/test_india_equity_engine.py | 146 | # apply_slippage + leverage | COMMENT |
| MEDIUM⚡ | agent/tests/test_india_equity_engine.py | 155 | # Cash delivery is forced to 1.0 leverage regardless of config input. | COMMENT |
| MEDIUM | agent/tests/test_mandate_enforcement.py | 197 | # Leverage (quantitative): tiny funding makes 1x leverage breach. | COMMENT |
| MEDIUM | agent/backtest/engines/global_futures.py | 138 | # Leverage: most futures have 5-15% margin → 7-20x leverage. | COMMENT |
| MEDIUM | agent/backtest/engines/global_futures.py | 140 | # User can override via config["leverage"]. | COMMENT |
| MEDIUM | agent/backtest/engines/china_futures.py | 140 | # Derive leverage from margin rate of first code, or use config override | COMMENT |
| MEDIUM | agent/backtest/engines/india_equity.py | 50 | config = {**config, "leverage": 1.0} # cash delivery: no leverage | CODE |
| MEDIUM | agent/backtest/engines/china_a.py | 32 | config = {**config, "leverage": 1.0} # A-shares: no leverage | CODE |
| MEDIUM | agent/src/swarm/worker.py | 51 | """Resolve the heartbeat tick interval from env, robust to garbage values. | STRING |
| MEDIUM | agent/src/swarm/worker.py | 63 | """Resolve the delay before the single stream retry, robust to garbage. | STRING |
| MEDIUM | agent/src/tools/propose_mandate_tool.py | 243 | """Return the account type label ('cash' unless ceilings allow leverage).""" | STRING |
| MEDIUM | agent/src/live/enforcement.py | 477 | # 5–6. Exposure + leverage need observable positions; fail-closed on any | COMMENT |
| MEDIUM | agent/src/live/enforcement.py | 496 | # 6. Gross leverage = post-trade gross exposure / account_funding_usd. | COMMENT |
| MEDIUM | agent/src/live/mandate/commit.py | 61 | #: daily trade cap, leverage, and instruments. | COMMENT |
| MEDIUM | agent/src/live/mandate/commit.py | 69 | # leverage (single spelling, mapped for completeness) | COMMENT |
| MEDIUM | agent/src/live/mandate/commit.py | 306 | # Cash-only ceiling forbids any leverage other than "none". | COMMENT |
| MEDIUM | agent/src/channels/dingtalk.py | 59 | # Parse using SDK's ChatbotMessage for robust handling | COMMENT |
| MEDIUM | agent/src/channels/signal.py | 687 | # Keep aliases of the bot account for robust mention matching. | COMMENT |
| LOW | agent/src/channels/weixin.py | 685 | # If quoted message is media, just pass the text | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | agent/src/swarm/presets/etf_allocation_desk.yaml | 209 | ### Step 1: Three-Dimensional Trade-off | COMMENT |
| LOW⚡ | agent/src/swarm/presets/etf_allocation_desk.yaml | 214 | ### Step 2: Final Portfolio Weight Determination | COMMENT |
| LOW⚡ | agent/src/swarm/presets/etf_allocation_desk.yaml | 220 | ### Step 3: Portfolio Holdings Finalization | COMMENT |
| LOW⚡ | agent/src/swarm/presets/etf_allocation_desk.yaml | 224 | ### Step 4: Historical Backtest Execution | COMMENT |
| LOW⚡ | agent/src/swarm/presets/etf_allocation_desk.yaml | 230 | ### Step 5: Portfolio Performance Attribution | COMMENT |
| LOW⚡ | agent/src/swarm/presets/pairs_research_lab.yaml | 73 | ### Step 1: Unit-root preconditions | COMMENT |
| LOW⚡ | agent/src/swarm/presets/pairs_research_lab.yaml | 80 | ### Step 2: Cointegration tests | COMMENT |
| LOW | agent/src/swarm/presets/pairs_research_lab.yaml | 97 | ### Step 3: Mean-reversion parameters | COMMENT |
| LOW | agent/src/swarm/presets/pairs_research_lab.yaml | 111 | ### Step 4: Composite arb-value score (max 100) | COMMENT |
| LOW⚡ | …strategy-dev-manager/templates/factor_signal_engine.py | 44 | # Step 1: Compute raw factor values for each symbol | COMMENT |
| LOW⚡ | …strategy-dev-manager/templates/factor_signal_engine.py | 53 | # Step 2: Cross-sectional ranking | COMMENT |
| LOW | …strategy-dev-manager/templates/factor_signal_engine.py | 78 | # Step 3: Clip signals to [-1, 1] | COMMENT |
| LOW⚡ | …/skills/cross-market-strategy/example_signal_engine.py | 36 | # Step 1: raw signals per market | COMMENT |
| LOW⚡ | …/skills/cross-market-strategy/example_signal_engine.py | 43 | # Step 2: volatility-adjusted weights | COMMENT |
| LOW | agent/src/channels/dingtalk.py | 743 | # Step 1: Exchange downloadCode for a temporary download URL | COMMENT |
| LOW | agent/src/channels/dingtalk.py | 758 | # Step 2: Download the file content | COMMENT |
| LOW | agent/src/channels/weixin.py | 1375 | # Step 1: Get upload URL from server (prefer upload_full_url, fallback to upload_param) | COMMENT |
| LOW | agent/src/channels/weixin.py | 1399 | # Step 2: AES-128-ECB encrypt and POST to CDN | COMMENT |
| LOW | agent/src/channels/weixin.py | 1427 | # Step 3: Send message with the media item | COMMENT |
| LOW | agent/src/channels/wecom.py | 438 | # Step 1: init | COMMENT |
| LOW | agent/src/channels/wecom.py | 455 | # Step 2: send chunks | COMMENT |
| LOW | agent/src/channels/wecom.py | 467 | # Step 3: finish | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | agent/api_server.py | 363 | print("[warn] Run: cd frontend && npm run build") | CODE |
| HIGH | agent/tests/test_kimi_reasoning_content.py | 511 | content=null; Moonshot kimi-k2.6 rejects that, so we normalize to ''.""" | STRING |
| HIGH⚡ | agent/tests/factors/test_bench_strict.py | 71 | assert not a.equals(b) | CODE |
| HIGH | agent/cli/_legacy.py | 5178 | Windows footgun. Equivalent to running ``cd frontend && npm install | STRING |
| HIGH | agent/backtest/loaders/ccxt_loader.py | 204 | if trade is None or mark is None or not trade.index.equals(mark.index): | CODE |
| HIGH | agent/backtest/loaders/yahoo_client.py | 223 | # A non-trading slot leaves OHLC null; skip rather than emit a NaN bar. | COMMENT |
| HIGH | agent/scripts/w4a_run_benches.py | 4 | cd agent && python scripts/w4a_run_benches.py | STRING |
| HIGH | agent/src/swarm/serialization.py | 44 | Returns ``None`` (an explicit null, not an absent key) when no task carries | STRING |
| HIGH | agent/src/factors/bench_runner_strict.py | 188 | """One-sample t-stat against zero (returns 0.0 if undefined).""" | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | docker-compose.yml | 21 | - vibe-sessions:/app/agent/sessions | COMMENT |
| LOW | requirements-lock.txt | 1 | # Fully-pinned, hash-verified lock of the CORE runtime dependencies (the set | COMMENT |
| LOW | requirements-lock.txt | 161 | # via fastapi | COMMENT |
| LOW | requirements-lock.txt | 1541 | # -r agent/requirements.txt | COMMENT |
| LOW | requirements-lock.txt | 3241 | # ccxt | COMMENT |
| LOW | requirements-lock.txt | 3761 | --hash=sha256:f578fb778868c0b744ac9173a837b695fd82e8d1b1e0d39c1f882b0e4fef7ecb | COMMENT |
| LOW | requirements-lock.txt | 3781 | # py-key-value-aio | COMMENT |
| LOW | tools/ci_grep_gates.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | frontend/src/components/layout/Layout.tsx | 261 | </div> | COMMENT |
| LOW | wiki/functions/_middleware.js | 1 | // In-path traffic classifier for vibetrading.wiki (Cloudflare Pages Function). | COMMENT |
| LOW | wiki/functions/api/stats.js | 1 | // GET /api/stats — aggregate numbers for the wiki footer. | COMMENT |
| LOW | agent/mcp_server.py | 1081 | end_date=end_date, | COMMENT |
| LOW | agent/cli/main.py | 801 | COMMENT | |
| LOW | agent/cli/_legacy.py | 901 | COMMENT | |
| LOW | agent/cli/_legacy.py | 2781 | except Exception as exc: | COMMENT |
| LOW | agent/cli/_legacy.py | 5081 | # Cross-platform frontend setup / dev commands. | COMMENT |
| LOW | agent/backtest/runner.py | 241 | f"Executable class-level statement {type(child).__name__} is not allowed" | COMMENT |
| LOW | agent/src/config/schema.py | 21 | "ibkr.com": "ibkr", | COMMENT |
| LOW | agent/src/config/schema.py | 181 | # Canonical seed for the operator-side ``~/.vibe-trading/agent.json`` mcpServers | COMMENT |
| LOW | agent/src/live/enforcement.py | 61 | AssetClass.IN_EQUITY: "india_equity", | COMMENT |
| LOW | agent/src/live/halt.py | 201 | # cancelling resting orders and (per mandate) flattening positions, instead of | COMMENT |
| LOW | agent/src/live/runtime/runner.py | 101 | COMMENT | |
| LOW | agent/src/skills/pine-script/SKILL.md | 81 | // [Group inputs logically with input.int(), input.float(), input.string()] | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | agent/backtest/loaders/rsshub_events.py | 48 | #: knowable only on the next calendar day, matching the event-driven skill's | COMMENT |
| MEDIUM | agent/backtest/loaders/sina_loader.py | 40 | # assignment/paren scaffolding around it. | COMMENT |
| MEDIUM | agent/src/tools/block_trades_tool.py | 40 | # context window. Eastmoney paginates; we pull one bounded page. | COMMENT |
| MEDIUM | agent/src/config/schema.py | 25 | # bypassable: a Robinhood agentic URL placed under any other key (e.g. ``rh``) | COMMENT |
| MEDIUM | agent/src/providers/capabilities.py | 92 | # GLM thinking models (glm-4.5+/glm-5.x) stream the chain-of-thought as | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM⚡ | agent/tests/test_session_search.py | 203 | # Create a fake session directory | COMMENT |
| MEDIUM | agent/tests/test_strategy_store.py | 847 | # Create a new store instance pointing to the same DB | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | frontend/src/i18n/locales/ja.json | 364 | "placeholder": "例: 000001.SZ のデュアル MA クロスオーバー戦略を作成し、2024 年をバックテストする", | CODE |
| LOW | frontend/src/i18n/locales/zh-CN.json | 364 | "placeholder": "例如:为 000001.SZ 创建双均线交叉策略,回测 2024 年", | CODE |
| LOW | frontend/src/i18n/locales/en.json | 369 | "placeholder": "e.g. Create a dual MA crossover strategy for 000001.SZ, backtest 2024", | CODE |
| LOW | frontend/src/i18n/locales/ko.json | 364 | "placeholder": "예: 000001.SZ에 대한 듀얼 MA 크로스오버 전략을 만들고 2024년 백테스트 수행", | CODE |
| LOW | frontend/src/i18n/locales/ar.json | 364 | "placeholder": "مثال: أنشئ استراتيجية تقاطع MA مزدوجة لـ 000001.SZ، واختبرها عكسيًا لعام 2024", | CODE |
| LOW | agent/tests/test_settings_api.py | 60 | @pytest.mark.parametrize("placeholder", ["sk-xxx", "xxx", "gsk_xxx"]) | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | …trategy-dev-manager/references/scheduled_decay_scan.md | 66 | -H "Authorization: Bearer <your-api-key>" \ | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | agent/src/channels/wecom.py | 418 | # Read file size and data in a thread to avoid blocking the event loop | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | agent/tests/test_skill_writer_tools.py | 279 | path="templates/helper.py", content="def helper(): pass", | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | agent/src/tools/skill_writer_tool.py | 8 | examples/ # Example usage | STRING |