Claude Code skills for equity investors and traders — market analysis, technical charting, economic calendars, screeners, and trading strategy development.
This report summarizes scanner evidence for tradermonty/claude-trading-skills, a Python project with 2,985 GitHub stars. SynthScan examined 463,239 lines of code across 1898 source files, recording 8951 pattern matches distributed across 22 syntactic categories. The legacy adjusted pattern signal is 31.1 (High pattern signal); it is not an authorship estimate.
Use the findings to ask whether maintainers can explain intent, verify dependencies, simplify unnecessary scaffolding, and focus review effort. Risk Payload v1 adds ownership, supply-chain, over-engineering, and review-effort vectors when available. These are prompts for human verification, not probabilities, security findings, or measured maintenance costs.
Use each vector to guide manual verification of the underlying findings.
Can maintainers explain intent, assumptions, and trade-offs? 6564 finding(s).
Are imports declared and package/API names verified? 438 finding(s).
Are wrappers, guards, and repeated structures necessary? 7311 finding(s).
Which changes need focused human review? 8951 finding(s).
This chart tracks the legacy adjusted pattern score across scan runs. Changes can reflect source changes, scan coverage, or detector/scoring versions; they do not measure AI adoption or prove that a team refactored code. Compare runs only when their scoring versions are compatible. The dashed line tracks the raw pattern-hit count.
Groups findings by configured severity weight. Severity is not a confidence estimate, security rating, or proof that a package is missing. Verify imports against the project's manifests and inspect each finding in its local design context.
This horizontal bar chart shows where configured pattern scores accumulate across directories. Treat the bars as locations to inspect, not as evidence of authorship or code quality. Use the file-level findings to decide whether a directory needs a focused ownership, dependency, complexity, or review check.
The scanner identified 8951 distinct pattern matches across 22 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a detector match to inspect in context. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.
Reading the findings table: The Severity column indicates the configured finding weight (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — legacy comment-context matches receive a ×1.5 score weight. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier under the legacy scoring model.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …e/skills/earnings-calendar/references/fmp_api_guide.md | 331 | def fetch_earnings_with_error_handling(api_key, start_date, end_date): | CODE |
| LOW | …ls/market-environment-analysis/scripts/market_utils.py | 75 | def format_market_report_header(as_of: datetime | None = None): | CODE |
| LOW | …ls/market-environment-analysis/scripts/market_utils.py | 88 | def calculate_trading_days_to_event( | STRING |
| LOW | …arket-environment-analysis/scripts/_market_calendar.py | 231 | def previous_session_on_or_before( | CODE |
| LOW | …lls/us-market-bubble-detector/scripts/bubble_scorer.py | 138 | def _format_indicator_details(self, scores: dict[str, int]) -> list[dict]: | CODE |
| LOW | …y/skills/earnings-calendar/references/fmp_api_guide.md | 331 | def fetch_earnings_with_error_handling(api_key, start_date, end_date): | CODE |
| LOW | …ls/market-environment-analysis/scripts/market_utils.py | 75 | def format_market_report_header(as_of: datetime | None = None): | CODE |
| LOW | …ls/market-environment-analysis/scripts/market_utils.py | 88 | def calculate_trading_days_to_event( | STRING |
| LOW | …arket-environment-analysis/scripts/_market_calendar.py | 231 | def previous_session_on_or_before( | CODE |
| LOW | …lls/us-market-bubble-detector/scripts/bubble_scorer.py | 138 | def _format_indicator_details(self, scores: dict[str, int]) -> list[dict]: | CODE |
| LOW | examples/daily-market-dashboard/app.py | 287 | def _initialize_session_state() -> None: | CODE |
| LOW | examples/daily-market-dashboard/app.py | 300 | def _cleanup_uploads_on_startup_once() -> None: | CODE |
| LOW | examples/daily-market-dashboard/config/settings.py | 140 | def validate_runtime_environment() -> list[str]: | CODE |
| LOW | examples/daily-market-dashboard/config/settings.py | 145 | def get_auth_compliance_warnings() -> list[str]: | CODE |
| LOW | …aily-market-dashboard/tests/test_generate_dashboard.py | 25 | def test_missing_key_returns_default(self): | CODE |
| LOW | …aily-market-dashboard/tests/test_generate_dashboard.py | 35 | def test_non_dict_intermediate(self): | CODE |
| LOW | …aily-market-dashboard/tests/test_generate_dashboard.py | 86 | def test_breadth_data_rendered(self): | CODE |
| LOW | …aily-market-dashboard/tests/test_generate_dashboard.py | 152 | def test_note_section_present(self): | CODE |
| LOW⚡ | examples/daily-market-dashboard/tests/test_sanitizer.py | 15 | def test_redacts_anthropic_api_key(self): | CODE |
| LOW⚡ | examples/daily-market-dashboard/tests/test_sanitizer.py | 21 | def test_redacts_claude_internal_paths(self): | CODE |
| LOW⚡ | examples/daily-market-dashboard/tests/test_sanitizer.py | 27 | def test_strips_command_message_tags(self): | CODE |
| LOW⚡ | examples/daily-market-dashboard/tests/test_sanitizer.py | 35 | def test_strips_system_reminder_tags(self): | CODE |
| LOW⚡ | examples/daily-market-dashboard/tests/test_sanitizer.py | 43 | def test_strips_multiline_command_message(self): | CODE |
| LOW⚡ | examples/daily-market-dashboard/tests/test_sanitizer.py | 49 | def test_preserves_normal_text(self): | CODE |
| LOW⚡ | examples/daily-market-dashboard/tests/test_sanitizer.py | 53 | def test_preserves_short_tokens(self): | CODE |
| LOW⚡ | examples/daily-market-dashboard/tests/test_sanitizer.py | 57 | def test_redacts_absolute_home_path(self): | CODE |
| LOW⚡ | examples/daily-market-dashboard/tests/test_sanitizer.py | 62 | def test_redacts_absolute_tmp_path(self): | CODE |
| LOW | …mples/daily-market-dashboard/tests/test_app_helpers.py | 31 | def test_first_request_allowed(self): | CODE |
| LOW | …mples/daily-market-dashboard/tests/test_app_helpers.py | 48 | def test_old_timestamps_expire(self): | CODE |
| LOW | …mples/daily-market-dashboard/tests/test_app_helpers.py | 80 | def test_empty_content_ignored(self): | CODE |
| LOW | examples/daily-market-dashboard/agent/client.py | 220 | def _extract_tool_result_detail(content: str | list[dict[str, Any]] | None) -> str: | CODE |
| LOW | examples/daily-market-dashboard/agent/client.py | 240 | def _build_result_error_detail( | CODE |
| LOW | examples/daily-market-dashboard/agent/knowledge.py | 71 | def list_knowledge_markdown_files(knowledge_dir: Path, project_root: Path) -> list[str]: | CODE |
| LOW | examples/daily-market-dashboard/agent/knowledge.py | 83 | def search_knowledge_markdown( | CODE |
| LOW | scripts/generate_fmp_client.py | 98 | def _render_standalone_template(cfg) -> str: | CODE |
| LOW | scripts/check_compat_matrix.py | 289 | def _check_declared_workflow_match(declared: dict, actual: dict, errors: list[str]) -> None: | CODE |
| LOW | scripts/check_compat_matrix.py | 309 | def _check_os_and_python_policy( | CODE |
| LOW⚡ | scripts/generate_skill_docs.py | 162 | def _marker_present_but_invalid(path: Path) -> bool: | CODE |
| LOW | scripts/generate_skill_docs.py | 884 | def _generate_prerequisites_from_api(api_info: dict) -> str: | CODE |
| LOW | scripts/generate_skill_docs.py | 1119 | def update_catalog_api_matrix( | CODE |
| LOW | scripts/check_skill_catalog.py | 384 | def _validate_category_tables( | CODE |
| LOW | scripts/run_skill_generation_pipeline.py | 311 | def _git_network_cmd_with_retry( | CODE |
| LOW | scripts/run_skill_generation_pipeline.py | 554 | def _extract_json_from_claude(output: str, required_keys: list[str]) -> dict | None: | CODE |
| LOW | scripts/run_skill_generation_pipeline.py | 588 | def _is_nothing_to_commit_output(output: str) -> bool: | CODE |
| LOW | scripts/run_skill_generation_pipeline.py | 779 | def _check_unexpected_changes(project_root: Path, skill_name: str) -> bool: | CODE |
| LOW | scripts/run_skill_generation_pipeline.py | 1356 | def write_daily_generation_summary( | CODE |
| LOW | scripts/ci_test_matrix.py | 40 | def _construct_unique_mapping( | CODE |
| LOW | scripts/ci_test_matrix.py | 361 | def executable_test_inventory(root: Path = ROOT) -> dict[str, bool]: | CODE |
| LOW | scripts/ci_test_matrix.py | 387 | def validate_executable_test_coverage( | CODE |
| LOW | scripts/workflow_replay.py | 176 | def _dump_yaml_with_digest_allowlist(payload: Any) -> str: | CODE |
| LOW | scripts/workflow_replay.py | 206 | def _validate_manual_contract(payload: Any, definition: str) -> None: | CODE |
| LOW | scripts/workflow_replay.py | 218 | def _validate_twenty_pct_manual_contract(payload: Any, definition: str) -> None: | CODE |
| LOW | scripts/workflow_replay.py | 791 | def _validate_artifact_provenance( | CODE |
| LOW | scripts/workflow_replay.py | 1176 | def _twenty_pct_update_outcomes( | CODE |
| LOW | scripts/workflow_replay.py | 1280 | def _manual_twenty_pct_lessons( | CODE |
| LOW | scripts/workflow_replay.py | 1392 | def _normalize_review_test_command(report: dict[str, Any]) -> None: | CODE |
| LOW | scripts/workflow_replay.py | 1447 | def _remove_status_line_warnings_count(lines: list[str]) -> list[str]: | CODE |
| LOW | scripts/workflow_replay.py | 1457 | def _is_warning_structural_line(line: str) -> bool: | CODE |
| LOW | scripts/workflow_replay.py | 1497 | def _strip_banner_framed_rm_rf(text: str) -> str: | CODE |
| LOW | scripts/workflow_replay.py | 1523 | def _strip_unbannered_tail_rm_rf(text: str) -> str: | CODE |
| 5276 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | conftest.py | 82 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | conftest.py | 84 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | conftest.py | 100 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | conftest.py | 103 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | conftest.py | 117 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | conftest.py | 120 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | examples/daily-market-dashboard/generate_dashboard.py | 35 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | examples/daily-market-dashboard/generate_dashboard.py | 37 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | examples/daily-market-dashboard/generate_dashboard.py | 114 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | examples/daily-market-dashboard/generate_dashboard.py | 116 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | examples/daily-market-dashboard/generate_dashboard.py | 158 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | examples/daily-market-dashboard/generate_dashboard.py | 160 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | examples/daily-market-dashboard/generate_dashboard.py | 240 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | examples/daily-market-dashboard/generate_dashboard.py | 242 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | examples/daily-market-dashboard/generate_dashboard.py | 398 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | examples/daily-market-dashboard/generate_dashboard.py | 400 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | examples/daily-market-dashboard/generate_dashboard.py | 418 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | examples/daily-market-dashboard/generate_dashboard.py | 420 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | scripts/generate_skill_docs.py | 168 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | scripts/generate_skill_docs.py | 170 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | scripts/generate_skill_docs.py | 1214 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | scripts/generate_skill_docs.py | 1216 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | scripts/generate_skill_docs.py | 22 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | scripts/generate_skill_docs.py | 24 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | scripts/generate_skill_docs.py | 52 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | scripts/generate_skill_docs.py | 54 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | scripts/generate_skill_docs.py | 103 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | scripts/generate_skill_docs.py | 105 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | scripts/generate_skill_docs.py | 216 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | scripts/generate_skill_docs.py | 218 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | scripts/generate_skill_docs.py | 246 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | scripts/generate_skill_docs.py | 248 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | scripts/generate_skill_docs.py | 321 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | scripts/generate_skill_docs.py | 323 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | scripts/generate_skill_docs.py | 366 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | scripts/generate_skill_docs.py | 368 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | scripts/generate_skill_docs.py | 832 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | scripts/generate_skill_docs.py | 834 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | scripts/generate_skill_docs.py | 943 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | scripts/generate_skill_docs.py | 945 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | scripts/generate_skill_docs.py | 1042 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | scripts/generate_skill_docs.py | 1044 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | scripts/generate_skill_docs.py | 1385 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | scripts/generate_skill_docs.py | 1387 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | scripts/generate_catalog_from_index.py | 32 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | scripts/generate_catalog_from_index.py | 34 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | scripts/generate_catalog_from_index.py | 41 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | scripts/generate_catalog_from_index.py | 43 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | scripts/generate_catalog_from_index.py | 76 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | scripts/generate_catalog_from_index.py | 78 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | scripts/generate_catalog_from_index.py | 127 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | scripts/generate_catalog_from_index.py | 129 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | scripts/generate_catalog_from_index.py | 336 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | scripts/generate_catalog_from_index.py | 338 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | scripts/generate_catalog_from_index.py | 366 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | scripts/generate_catalog_from_index.py | 368 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | scripts/generate_catalog_from_index.py | 392 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | scripts/generate_catalog_from_index.py | 394 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | scripts/generate_skillset_docs.py | 24 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | scripts/generate_skillset_docs.py | 26 | # --------------------------------------------------------------------------- | COMMENT |
| 1248 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | …e/skills/earnings-calendar/references/fmp_api_guide.md | 0 | fetch earnings calendar from fmp api args: api_key: fmp api key start_date: start date (yyyy-mm-dd) end_date: end date ( | STRING |
| HIGH | …y/skills/earnings-calendar/references/fmp_api_guide.md | 0 | fetch earnings calendar from fmp api args: api_key: fmp api key start_date: start date (yyyy-mm-dd) end_date: end date ( | STRING |
| HIGH | skills/earnings-calendar/references/fmp_api_guide.md | 0 | fetch earnings calendar from fmp api args: api_key: fmp api key start_date: start date (yyyy-mm-dd) end_date: end date ( | STRING |
| HIGH | …e/skills/earnings-calendar/references/fmp_api_guide.md | 0 | fetch company profiles for multiple symbols (batch) args: api_key: fmp api key symbols: list of ticker symbols returns: | STRING |
| HIGH | …y/skills/earnings-calendar/references/fmp_api_guide.md | 0 | fetch company profiles for multiple symbols (batch) args: api_key: fmp api key symbols: list of ticker symbols returns: | STRING |
| HIGH | skills/earnings-calendar/references/fmp_api_guide.md | 0 | fetch company profiles for multiple symbols (batch) args: api_key: fmp api key symbols: list of ticker symbols returns: | STRING |
| HIGH | …e/skills/earnings-calendar/references/fmp_api_guide.md | 0 | filter earnings by minimum market cap ($2b default) args: earnings: list of earnings announcements profiles: dictionary | STRING |
| HIGH | …y/skills/earnings-calendar/references/fmp_api_guide.md | 0 | filter earnings by minimum market cap ($2b default) args: earnings: list of earnings announcements profiles: dictionary | STRING |
| HIGH | skills/earnings-calendar/references/fmp_api_guide.md | 0 | filter earnings by minimum market cap ($2b default) args: earnings: list of earnings announcements profiles: dictionary | STRING |
| HIGH | …skills/earnings-calendar/scripts/fetch_earnings_fmp.py | 0 | fmp earnings calendar fetcher retrieves upcoming earnings announcements from financial modeling prep api, filters by mar | STRING |
| HIGH | …skills/earnings-calendar/scripts/fetch_earnings_fmp.py | 0 | fmp earnings calendar fetcher retrieves upcoming earnings announcements from financial modeling prep api, filters by mar | STRING |
| HIGH | skills/earnings-calendar/scripts/fetch_earnings_fmp.py | 0 | fmp earnings calendar fetcher retrieves upcoming earnings announcements from financial modeling prep api, filters by mar | STRING |
| HIGH | …skills/earnings-calendar/scripts/fetch_earnings_fmp.py | 0 | initialize fmp client args: api_key: fmp api key us_only: if true, filter for us stocks only (default: true) | STRING |
| HIGH | …skills/earnings-calendar/scripts/fetch_earnings_fmp.py | 0 | initialize fmp client args: api_key: fmp api key us_only: if true, filter for us stocks only (default: true) | STRING |
| HIGH | skills/earnings-calendar/scripts/fetch_earnings_fmp.py | 0 | initialize fmp client args: api_key: fmp api key us_only: if true, filter for us stocks only (default: true) | STRING |
| HIGH | …skills/earnings-calendar/scripts/fetch_earnings_fmp.py | 0 | fetch earnings calendar from fmp api args: start_date: start date (yyyy-mm-dd) end_date: end date (yyyy-mm-dd) returns: | STRING |
| HIGH | …skills/earnings-calendar/scripts/fetch_earnings_fmp.py | 0 | fetch earnings calendar from fmp api args: start_date: start date (yyyy-mm-dd) end_date: end date (yyyy-mm-dd) returns: | STRING |
| HIGH | skills/earnings-calendar/scripts/fetch_earnings_fmp.py | 0 | fetch earnings calendar from fmp api args: start_date: start date (yyyy-mm-dd) end_date: end date (yyyy-mm-dd) returns: | STRING |
| HIGH | …skills/earnings-calendar/scripts/fetch_earnings_fmp.py | 0 | fetch company profiles for multiple symbols (batch) args: symbols: list of ticker symbols returns: dictionary mapping sy | STRING |
| HIGH | …skills/earnings-calendar/scripts/fetch_earnings_fmp.py | 0 | fetch company profiles for multiple symbols (batch) args: symbols: list of ticker symbols returns: dictionary mapping sy | STRING |
| HIGH | skills/earnings-calendar/scripts/fetch_earnings_fmp.py | 0 | fetch company profiles for multiple symbols (batch) args: symbols: list of ticker symbols returns: dictionary mapping sy | STRING |
| HIGH | …skills/earnings-calendar/scripts/fetch_earnings_fmp.py | 0 | filter earnings by minimum market cap and enrich with company data args: earnings: list of earnings announcements profil | STRING |
| HIGH | …skills/earnings-calendar/scripts/fetch_earnings_fmp.py | 0 | filter earnings by minimum market cap and enrich with company data args: earnings: list of earnings announcements profil | STRING |
| HIGH | skills/earnings-calendar/scripts/fetch_earnings_fmp.py | 0 | filter earnings by minimum market cap and enrich with company data args: earnings: list of earnings announcements profil | STRING |
| HIGH | …skills/earnings-calendar/scripts/fetch_earnings_fmp.py | 0 | normalize timing values to bmo/amc/tas args: time_value: raw time value from api returns: normalized timing: bmo, amc, o | STRING |
| HIGH | …skills/earnings-calendar/scripts/fetch_earnings_fmp.py | 0 | normalize timing values to bmo/amc/tas args: time_value: raw time value from api returns: normalized timing: bmo, amc, o | STRING |
| HIGH | skills/earnings-calendar/scripts/fetch_earnings_fmp.py | 0 | normalize timing values to bmo/amc/tas args: time_value: raw time value from api returns: normalized timing: bmo, amc, o | STRING |
| HIGH | …skills/earnings-calendar/scripts/fetch_earnings_fmp.py | 0 | format market cap in human-readable format args: market_cap: market cap in dollars returns: formatted string (e.g., "$3. | STRING |
| HIGH | …skills/earnings-calendar/scripts/fetch_earnings_fmp.py | 0 | format market cap in human-readable format args: market_cap: market cap in dollars returns: formatted string (e.g., "$3. | STRING |
| HIGH | skills/earnings-calendar/scripts/fetch_earnings_fmp.py | 0 | format market cap in human-readable format args: market_cap: market cap in dollars returns: formatted string (e.g., "$3. | STRING |
| HIGH | …skills/earnings-calendar/scripts/fetch_earnings_fmp.py | 0 | process and standardize earnings data args: earnings: raw earnings data returns: processed earnings data | STRING |
| HIGH | …skills/earnings-calendar/scripts/fetch_earnings_fmp.py | 0 | process and standardize earnings data args: earnings: raw earnings data returns: processed earnings data | STRING |
| HIGH | skills/earnings-calendar/scripts/fetch_earnings_fmp.py | 0 | process and standardize earnings data args: earnings: raw earnings data returns: processed earnings data | STRING |
| HIGH | …skills/earnings-calendar/scripts/fetch_earnings_fmp.py | 0 | sort earnings by date, timing, and market cap args: earnings: processed earnings data returns: sorted earnings data | STRING |
| HIGH | …skills/earnings-calendar/scripts/fetch_earnings_fmp.py | 0 | sort earnings by date, timing, and market cap args: earnings: processed earnings data returns: sorted earnings data | STRING |
| HIGH | skills/earnings-calendar/scripts/fetch_earnings_fmp.py | 0 | sort earnings by date, timing, and market cap args: earnings: processed earnings data returns: sorted earnings data | STRING |
| HIGH | …skills/earnings-calendar/scripts/fetch_earnings_fmp.py | 0 | get api key from environment or command line returns: api key or none | STRING |
| HIGH | …skills/earnings-calendar/scripts/fetch_earnings_fmp.py | 0 | get api key from environment or command line returns: api key or none | STRING |
| HIGH | skills/earnings-calendar/scripts/fetch_earnings_fmp.py | 0 | get api key from environment or command line returns: api key or none | STRING |
| HIGH | …skills/earnings-calendar/scripts/fetch_earnings_fmp.py | 0 | validate date format (yyyy-mm-dd) args: date_str: date string returns: true if valid, false otherwise | STRING |
| HIGH | …skills/earnings-calendar/scripts/fetch_earnings_fmp.py | 0 | validate date format (yyyy-mm-dd) args: date_str: date string returns: true if valid, false otherwise | STRING |
| HIGH | skills/earnings-calendar/scripts/fetch_earnings_fmp.py | 0 | validate date format (yyyy-mm-dd) args: date_str: date string returns: true if valid, false otherwise | STRING |
| HIGH | …de/skills/earnings-calendar/scripts/generate_report.py | 0 | earnings calendar report generator generates formatted markdown reports from earnings data json. usage: # output to stdo | STRING |
| HIGH | …gy/skills/earnings-calendar/scripts/generate_report.py | 0 | earnings calendar report generator generates formatted markdown reports from earnings data json. usage: # output to stdo | STRING |
| HIGH | skills/earnings-calendar/scripts/generate_report.py | 0 | earnings calendar report generator generates formatted markdown reports from earnings data json. usage: # output to stdo | STRING |
| HIGH | …de/skills/earnings-calendar/scripts/generate_report.py | 0 | load earnings data from json file args: filepath: path to json file returns: list of earnings announcements | STRING |
| HIGH | …gy/skills/earnings-calendar/scripts/generate_report.py | 0 | load earnings data from json file args: filepath: path to json file returns: list of earnings announcements | STRING |
| HIGH | skills/earnings-calendar/scripts/generate_report.py | 0 | load earnings data from json file args: filepath: path to json file returns: list of earnings announcements | STRING |
| HIGH | …de/skills/earnings-calendar/scripts/generate_report.py | 0 | group earnings by date and timing args: earnings: list of earnings announcements returns: dictionary grouped by date and | STRING |
| HIGH | …gy/skills/earnings-calendar/scripts/generate_report.py | 0 | group earnings by date and timing args: earnings: list of earnings announcements returns: dictionary grouped by date and | STRING |
| HIGH | skills/earnings-calendar/scripts/generate_report.py | 0 | group earnings by date and timing args: earnings: list of earnings announcements returns: dictionary grouped by date and | STRING |
| HIGH | …de/skills/earnings-calendar/scripts/generate_report.py | 0 | calculate summary statistics args: earnings: list of earnings announcements returns: dictionary with summary statistics | STRING |
| HIGH | …gy/skills/earnings-calendar/scripts/generate_report.py | 0 | calculate summary statistics args: earnings: list of earnings announcements returns: dictionary with summary statistics | STRING |
| HIGH | skills/earnings-calendar/scripts/generate_report.py | 0 | calculate summary statistics args: earnings: list of earnings announcements returns: dictionary with summary statistics | STRING |
| HIGH | …de/skills/earnings-calendar/scripts/generate_report.py | 0 | convert date string to full day name args: date_str: date in yyyy-mm-dd format returns: formatted day name (e.g., "monda | STRING |
| HIGH | …gy/skills/earnings-calendar/scripts/generate_report.py | 0 | convert date string to full day name args: date_str: date in yyyy-mm-dd format returns: formatted day name (e.g., "monda | STRING |
| HIGH | skills/earnings-calendar/scripts/generate_report.py | 0 | convert date string to full day name args: date_str: date in yyyy-mm-dd format returns: formatted day name (e.g., "monda | STRING |
| HIGH | …de/skills/earnings-calendar/scripts/generate_report.py | 0 | format revenue in human-readable format args: revenue: revenue in dollars returns: formatted string (e.g., "$3.5b", "$15 | STRING |
| HIGH | …gy/skills/earnings-calendar/scripts/generate_report.py | 0 | format revenue in human-readable format args: revenue: revenue in dollars returns: formatted string (e.g., "$3.5b", "$15 | STRING |
| HIGH | skills/earnings-calendar/scripts/generate_report.py | 0 | format revenue in human-readable format args: revenue: revenue in dollars returns: formatted string (e.g., "$3.5b", "$15 | STRING |
| 321 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | agents/scenario-analyst.md | 28 | ### Step 1: News Collection (WebSearch) | COMMENT |
| LOW | agents/scenario-analyst.md | 51 | ### Step 2: Event Type Classification | COMMENT |
| LOW | agents/scenario-analyst.md | 64 | ### Step 3: Building 18-Month Scenarios | COMMENT |
| LOW | agents/scenario-analyst.md | 92 | ### Step 4: Impact Analysis (3 levels) | COMMENT |
| LOW | agents/scenario-analyst.md | 110 | ### Step 5: Stock Selection | COMMENT |
| LOW | docs/ja/skills/trading-skills-navigator.md | 91 | ### Step 1: 目的と制約を取り出す | COMMENT |
| LOW | docs/ja/skills/trading-skills-navigator.md | 102 | ### Step 2: recommender を実行する | COMMENT |
| LOW | docs/ja/skills/trading-skills-navigator.md | 112 | ### Step 3: 結果を会話として説明する | COMMENT |
| LOW | docs/ja/skills/trading-skills-navigator.md | 125 | ### Step 4: セットアップ手順を示す | COMMENT |
| LOW | docs/ja/skills/trading-skills-navigator.md | 129 | ### Step 5: 学習ループへつなげる | COMMENT |
| LOW | docs/ja/skills/stockbee-setup-fluency-trainer.md | 83 | ### Step 1: Momentum Burst 候補を取り込む | COMMENT |
| LOW | docs/ja/skills/stockbee-setup-fluency-trainer.md | 96 | ### Step 2: 3日後・5日後の outcome を更新する | COMMENT |
| LOW | docs/ja/skills/stockbee-setup-fluency-trainer.md | 119 | ### Step 3: コホートを集計する | COMMENT |
| LOW | docs/ja/skills/stockbee-setup-fluency-trainer.md | 131 | ### Step 4: 学習内容を運用へ戻す | COMMENT |
| LOW | docs/ja/skills/stockbee-momentum-burst-screener.md | 92 | ### Step 1: 入力モードを選ぶ | COMMENT |
| LOW | docs/ja/skills/stockbee-momentum-burst-screener.md | 119 | ### Step 2: スクリーニング結果を読む | COMMENT |
| LOW | docs/ja/skills/stockbee-momentum-burst-screener.md | 130 | ### Step 3: 候補を下流の確認へ渡す | COMMENT |
| LOW | docs/ja/skills/stockbee-20pct-study.md | 117 | ### Step 1: 20% mover を検出する | COMMENT |
| LOW | docs/ja/skills/stockbee-20pct-study.md | 123 | ### Step 2: カタリストを補強する | COMMENT |
| LOW | docs/ja/skills/stockbee-20pct-study.md | 138 | ### Step 3: forward outcome を更新する | COMMENT |
| LOW | docs/ja/skills/stockbee-20pct-study.md | 152 | ### Step 4: コホートを集計する | COMMENT |
| LOW | docs/ja/skills/stockbee-20pct-study.md | 164 | ### Step 5: 履歴バックフィルを行う | COMMENT |
| LOW | docs/ja/skills/trade-performance-coach.md | 88 | ### Step 1: ソース記録を集める | COMMENT |
| LOW | docs/ja/skills/trade-performance-coach.md | 98 | ### Step 2: プロセス遵守を評価する | COMMENT |
| LOW⚡ | docs/ja/skills/trade-performance-coach.md | 109 | ### Step 3: リスク規律を評価する | COMMENT |
| LOW⚡ | docs/ja/skills/trade-performance-coach.md | 119 | ### Step 4: 執行品質を評価する | COMMENT |
| LOW⚡ | docs/ja/skills/trade-performance-coach.md | 123 | ### Step 5: 行動パターン候補を検出する | COMMENT |
| LOW | docs/ja/skills/trade-performance-coach.md | 139 | ### Step 6: 次回セッションの運用ルールへ変換する | COMMENT |
| LOW | docs/ja/skills/trade-performance-coach.md | 148 | ### Step 7: 人間の判断ゲートで終える | COMMENT |
| LOW | docs/ja/skills/drawdown-circuit-breaker.md | 71 | ### Step 1: Trader Memory State を読む | COMMENT |
| LOW | docs/ja/skills/drawdown-circuit-breaker.md | 90 | ### Step 2: サーキットブレーカールールを評価する | COMMENT |
| LOW | docs/ja/skills/drawdown-circuit-breaker.md | 115 | ### Step 3: 閾値を上書きする | COMMENT |
| LOW | docs/ja/skills/drawdown-circuit-breaker.md | 143 | ### Step 4: 判定を解釈する | COMMENT |
| LOW | docs/ja/skills/weekly-performance-digest.md | 84 | ### Step 1: 対象週の digest を生成する | COMMENT |
| LOW | docs/ja/skills/weekly-performance-digest.md | 102 | ### Step 2: レポートを読む | COMMENT |
| LOW | docs/ja/skills/weekly-performance-digest.md | 111 | ### Step 3: 下流レビューへ渡す | COMMENT |
| LOW | docs/en/skills/earnings-calendar.md | 88 | ### Step 1: Get Current Date and Calculate Target Week | COMMENT |
| LOW | docs/en/skills/earnings-calendar.md | 111 | ### Step 2: Load FMP API Guide | COMMENT |
| LOW | docs/en/skills/earnings-calendar.md | 128 | ### Step 3: API Key Detection and Configuration | COMMENT |
| LOW | docs/en/skills/earnings-calendar.md | 203 | ### Step 4: Retrieve Earnings Data via FMP API | COMMENT |
| LOW | docs/en/skills/earnings-calendar.md | 272 | ### Step 5: Process and Organize Data | COMMENT |
| LOW | docs/en/skills/earnings-calendar.md | 339 | ### Step 6: Generate Markdown Report | COMMENT |
| LOW | docs/en/skills/pair-trade-screener.md | 98 | ### Step 1: Define Pair Universe | COMMENT |
| LOW | docs/en/skills/pair-trade-screener.md | 136 | ### Step 2: Retrieve Historical Price Data | COMMENT |
| LOW | docs/en/skills/pair-trade-screener.md | 162 | ### Step 3: Calculate Correlation and Beta | COMMENT |
| LOW | docs/en/skills/pair-trade-screener.md | 196 | ### Step 4: Cointegration Testing | COMMENT |
| LOW | docs/en/skills/pair-trade-screener.md | 246 | ### Step 5: Spread Analysis and Z-Score Calculation | COMMENT |
| LOW | docs/en/skills/pair-trade-screener.md | 286 | ### Step 6: Generate Entry/Exit Recommendations | COMMENT |
| LOW | docs/en/skills/pair-trade-screener.md | 338 | ### Step 7: Position Sizing and Risk Management | COMMENT |
| LOW | docs/en/skills/pair-trade-screener.md | 368 | ### Step 8: Generate Pair Analysis Report | COMMENT |
| LOW | docs/en/skills/pead-screener.md | 73 | ### Step 1: Prepare and Execute Screening | COMMENT |
| LOW⚡ | docs/en/skills/pead-screener.md | 100 | ### Step 2: Review Results | COMMENT |
| LOW⚡ | docs/en/skills/pead-screener.md | 106 | ### Step 3: Present Analysis | COMMENT |
| LOW⚡ | docs/en/skills/pead-screener.md | 115 | ### Step 4: Provide Actionable Guidance | COMMENT |
| LOW | docs/en/skills/stockbee-setup-fluency-trainer.md | 71 | ### Step 1: Ingest Momentum Burst Candidates | COMMENT |
| LOW | docs/en/skills/stockbee-setup-fluency-trainer.md | 84 | ### Step 2: Update 3-Day and 5-Day Outcomes | COMMENT |
| LOW | docs/en/skills/stockbee-setup-fluency-trainer.md | 112 | ### Step 3: Summarize Cohorts | COMMENT |
| LOW | docs/en/skills/stockbee-setup-fluency-trainer.md | 124 | ### Step 4: Convert Evidence Into Practice | COMMENT |
| LOW | docs/en/skills/breadth-chart-analyst.md | 104 | ### Step 0: Fetch CSV Data (PRIMARY SOURCE -- MANDATORY) | COMMENT |
| LOW | docs/en/skills/breadth-chart-analyst.md | 130 | ### Step 1: Receive Chart Images (if provided) | COMMENT |
| 546 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …skills/earnings-calendar/scripts/fetch_earnings_fmp.py | 102 | CODE | |
| LOW | …de/skills/earnings-calendar/scripts/generate_report.py | 154 | CODE | |
| LOW | …ls/market-environment-analysis/scripts/market_utils.py | 117 | CODE | |
| LOW | …lls/us-market-bubble-detector/scripts/bubble_scorer.py | 233 | CODE | |
| LOW | …lls/us-market-bubble-detector/scripts/bubble_scorer.py | 114 | CODE | |
| LOW | …omic-calendar-fetcher/scripts/get_economic_calendar.py | 108 | CODE | |
| LOW | …skills/earnings-calendar/scripts/fetch_earnings_fmp.py | 102 | CODE | |
| LOW | …gy/skills/earnings-calendar/scripts/generate_report.py | 154 | CODE | |
| LOW | …ls/market-environment-analysis/scripts/market_utils.py | 117 | CODE | |
| LOW | …lls/us-market-bubble-detector/scripts/bubble_scorer.py | 233 | CODE | |
| LOW | …lls/us-market-bubble-detector/scripts/bubble_scorer.py | 114 | CODE | |
| LOW | …omic-calendar-fetcher/scripts/get_economic_calendar.py | 108 | CODE | |
| LOW | examples/daily-market-dashboard/generate_dashboard.py | 207 | CODE | |
| LOW | examples/daily-market-dashboard/generate_dashboard.py | 256 | CODE | |
| LOW | examples/daily-market-dashboard/app.py | 440 | CODE | |
| LOW | examples/daily-market-dashboard/agent/client.py | 115 | CODE | |
| LOW | examples/daily-market-dashboard/agent/client.py | 190 | CODE | |
| LOW | examples/daily-market-dashboard/agent/knowledge.py | 229 | CODE | |
| LOW | scripts/generate_fmp_client.py | 148 | CODE | |
| LOW | scripts/check_compat_matrix.py | 309 | CODE | |
| LOW | scripts/generate_skill_docs.py | 57 | CODE | |
| LOW | scripts/generate_skill_docs.py | 1119 | CODE | |
| LOW | scripts/check_skill_catalog.py | 226 | CODE | |
| LOW | scripts/provider_contracts.py | 247 | CODE | |
| LOW | scripts/run_skill_generation_pipeline.py | 285 | CODE | |
| LOW | scripts/run_skill_generation_pipeline.py | 554 | CODE | |
| LOW | scripts/run_skill_generation_pipeline.py | 978 | CODE | |
| LOW | scripts/run_skill_generation_pipeline.py | 1148 | CODE | |
| LOW | scripts/ci_test_matrix.py | 424 | CODE | |
| LOW | scripts/ci_test_matrix.py | 789 | CODE | |
| LOW | scripts/ci_test_matrix.py | 990 | CODE | |
| LOW | scripts/workflow_replay.py | 386 | CODE | |
| LOW | scripts/workflow_replay.py | 6416 | CODE | |
| LOW | scripts/workflow_replay.py | 6464 | CODE | |
| LOW | scripts/workflow_replay.py | 6702 | CODE | |
| LOW | scripts/workflow_replay.py | 6776 | CODE | |
| LOW | scripts/workflow_replay.py | 6956 | CODE | |
| LOW | scripts/check_skill_doc_parity.py | 226 | CODE | |
| LOW | scripts/smoke_contracts_runner.py | 94 | CODE | |
| LOW | scripts/run_skill_improvement_loop.py | 255 | CODE | |
| LOW | scripts/run_skill_improvement_loop.py | 371 | CODE | |
| LOW | scripts/run_skill_improvement_loop.py | 620 | CODE | |
| LOW | scripts/run_skill_improvement_loop.py | 1032 | CODE | |
| LOW | scripts/run_skill_improvement_loop.py | 1061 | CODE | |
| LOW | scripts/check_docs_site.py | 680 | CODE | |
| LOW | scripts/check_doc_cli_examples.py | 107 | CODE | |
| LOW | scripts/check_doc_cli_examples.py | 201 | CODE | |
| LOW | scripts/check_doc_cli_examples.py | 280 | CODE | |
| LOW | scripts/check_doc_cli_examples.py | 445 | CODE | |
| LOW | scripts/check_skill_deps.py | 477 | CODE | |
| LOW | scripts/check_skill_deps.py | 748 | CODE | |
| LOW | scripts/validate_skills_index.py | 152 | CODE | |
| LOW | scripts/validate_skills_index.py | 743 | CODE | |
| LOW | scripts/weekly_core_collect.py | 278 | CODE | |
| LOW | scripts/weekly_core_collect.py | 155 | CODE | |
| LOW | scripts/generate_quality_dashboard.py | 524 | CODE | |
| LOW | scripts/check_supply_chain.py | 187 | CODE | |
| LOW | scripts/check_supply_chain.py | 333 | CODE | |
| LOW | scripts/check_supply_chain.py | 202 | CODE | |
| LOW | scripts/tests/test_github_templates.py | 105 | CODE | |
| 328 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …ls/market-environment-analysis/scripts/market_utils.py | 8 | CODE | |
| LOW | …arket-environment-analysis/scripts/_market_calendar.py | 11 | CODE | |
| LOW | …ls/market-environment-analysis/scripts/market_utils.py | 8 | CODE | |
| LOW | …arket-environment-analysis/scripts/_market_calendar.py | 11 | CODE | |
| LOW | examples/daily-market-dashboard/generate_dashboard.py | 11 | CODE | |
| LOW | examples/daily-market-dashboard/app.py | 3 | CODE | |
| LOW | examples/daily-market-dashboard/config/settings.py | 3 | CODE | |
| LOW | …aily-market-dashboard/tests/test_generate_dashboard.py | 3 | CODE | |
| LOW | examples/daily-market-dashboard/tests/test_sanitizer.py | 3 | CODE | |
| LOW | …mples/daily-market-dashboard/tests/test_app_helpers.py | 6 | CODE | |
| LOW | …mples/daily-market-dashboard/tests/test_app_helpers.py | 15 | CODE | |
| LOW | examples/daily-market-dashboard/agent/sanitizer.py | 8 | CODE | |
| LOW | …amples/daily-market-dashboard/agent/context_builder.py | 3 | CODE | |
| LOW | examples/daily-market-dashboard/agent/client.py | 3 | CODE | |
| LOW | examples/daily-market-dashboard/agent/_sdk_patch.py | 10 | CODE | |
| LOW | examples/daily-market-dashboard/agent/attachments.py | 3 | CODE | |
| LOW | examples/daily-market-dashboard/agent/async_bridge.py | 3 | CODE | |
| LOW | examples/daily-market-dashboard/agent/knowledge.py | 3 | CODE | |
| LOW | examples/daily-market-dashboard/agent/path_utils.py | 3 | CODE | |
| LOW | scripts/generate_fmp_client.py | 23 | CODE | |
| LOW | scripts/check_compat_matrix.py | 22 | CODE | |
| LOW | scripts/generate_skill_docs.py | 13 | CODE | |
| LOW | scripts/check_isolated_skill_imports.py | 10 | CODE | |
| LOW | scripts/check_skill_catalog.py | 9 | CODE | |
| LOW | scripts/provider_contracts.py | 23 | CODE | |
| LOW | scripts/run_skill_generation_pipeline.py | 8 | CODE | |
| LOW | scripts/ci_test_matrix.py | 4 | CODE | |
| LOW | scripts/workflow_replay.py | 13 | CODE | |
| LOW | scripts/generate_catalog_from_index.py | 20 | CODE | |
| LOW | scripts/check_skill_doc_parity.py | 15 | CODE | |
| LOW | scripts/smoke_contracts_runner.py | 20 | CODE | |
| LOW | scripts/generate_skillset_docs.py | 14 | CODE | |
| LOW | scripts/run_skill_improvement_loop.py | 9 | CODE | |
| LOW | scripts/check_docs_site.py | 9 | CODE | |
| LOW | scripts/generate_market_calendar.py | 4 | CODE | |
| LOW | scripts/generate_workflow_docs.py | 14 | CODE | |
| LOW | scripts/check_doc_cli_examples.py | 33 | CODE | |
| LOW | scripts/check_skill_deps.py | 39 | CODE | |
| LOW | scripts/package_skills.py | 9 | CODE | |
| LOW | scripts/validate_skillsets.py | 15 | CODE | |
| LOW | scripts/validate_skills_index.py | 13 | CODE | |
| LOW | scripts/weekly_core_collect.py | 4 | CODE | |
| LOW | scripts/check_package_drift_for_changed_skills.py | 4 | CODE | |
| LOW | scripts/smoke_market_calendar.py | 4 | CODE | |
| LOW | scripts/generate_quality_dashboard.py | 15 | CODE | |
| LOW | scripts/doctor.py | 4 | CODE | |
| LOW | scripts/release_assets.py | 4 | CODE | |
| LOW | scripts/validate_provenance.py | 18 | CODE | |
| LOW | scripts/tests/test_workflow_replay_shapiro.py | 3 | CODE | |
| LOW | scripts/tests/test_workflow_replay_twenty_pct.py | 3 | CODE | |
| LOW | scripts/tests/test_generate_quality_dashboard.py | 8 | CODE | |
| LOW | scripts/tests/test_check_doc_cli_examples.py | 3 | CODE | |
| LOW | scripts/tests/test_release_assets.py | 3 | CODE | |
| LOW | scripts/tests/test_fmp_client_truncate_contract.py | 12 | CODE | |
| LOW | scripts/tests/test_check_skill_catalog.py | 3 | CODE | |
| LOW | scripts/tests/test_generate_skill_docs.py | 3 | CODE | |
| LOW | scripts/tests/test_check_compat_matrix.py | 3 | CODE | |
| LOW | scripts/tests/test_workflow_replay_market_regime.py | 3 | CODE | |
| LOW | scripts/tests/test_check_skill_deps.py | 3 | CODE | |
| LOW | scripts/tests/test_workflow_replay_kanchi.py | 3 | CODE | |
| 287 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | conftest.py | 69 | except ValueError: | CODE |
| HIGH | conftest.py | 77 | except ValueError: | CODE |
| HIGH | examples/daily-market-dashboard/agent/attachments.py | 121 | except Exception: | CODE |
| HIGH | scripts/run_skill_generation_pipeline.py | 491 | except json.JSONDecodeError: | CODE |
| HIGH | scripts/run_skill_generation_pipeline.py | 927 | except OSError: | CODE |
| HIGH | scripts/run_skill_generation_pipeline.py | 298 | except OSError: | CODE |
| HIGH | scripts/run_skill_generation_pipeline.py | 771 | except OSError: | CODE |
| HIGH | scripts/workflow_replay.py | 6694 | except OSError: | CODE |
| HIGH | scripts/workflow_replay.py | 6770 | except OSError: | CODE |
| HIGH | scripts/run_skill_improvement_loop.py | 1028 | except json.JSONDecodeError: | CODE |
| HIGH | scripts/run_skill_improvement_loop.py | 1045 | except OSError: | CODE |
| HIGH | scripts/hooks/check_no_absolute_paths.py | 39 | except (OSError, UnicodeDecodeError): | CODE |
| HIGH | skills/mt5-robot-tester/scripts/mt5_batch_tester.py | 504 | except OSError: | CODE |
| HIGH | skills/mt5-robot-tester/scripts/mt5_batch_tester.py | 1249 | except OSError: | CODE |
| HIGH | skills/mt5-robot-tester/scripts/mt5_batch_tester.py | 1286 | except (AttributeError, ValueError): | CODE |
| HIGH | skills/mt5-robot-tester/scripts/mt5_batch_tester.py | 579 | except (json.JSONDecodeError, OSError): | CODE |
| HIGH | skills/mt5-robot-tester/scripts/mt5_batch_tester.py | 597 | except FileNotFoundError: | CODE |
| HIGH | skills/mt5-robot-tester/scripts/mt5_batch_tester.py | 1014 | except OSError: | CODE |
| HIGH | skills/mt5-robot-tester/scripts/mt5_batch_tester.py | 1047 | except OSError: | CODE |
| HIGH | skills/mt5-robot-tester/scripts/mt5_batch_tester.py | 1056 | except FileNotFoundError: | CODE |
| HIGH | skills/mt5-robot-tester/scripts/mt5_batch_tester.py | 1233 | except (NameError, OSError): | CODE |
| HIGH | skills/mt5-robot-tester/scripts/mt5_batch_tester.py | 436 | except OSError: | CODE |
| HIGH | skills/mt5-robot-tester/scripts/mt5_batch_tester.py | 1005 | except OSError: | CODE |
| HIGH | skills/mt5-robot-tester/scripts/mt5_batch_tester.py | 1026 | except OSError: | CODE |
| HIGH | skills/mt5-robot-tester/scripts/mt5_batch_tester.py | 1112 | except OSError: | CODE |
| HIGH | skills/mt5-robot-tester/scripts/mt5_batch_tester.py | 1445 | except OSError: | CODE |
| HIGH | skills/mt5-robot-tester/scripts/mt5_batch_tester.py | 1451 | except OSError: | CODE |
| HIGH | skills/mt5-robot-tester/scripts/mt5_learnings.py | 57 | except (json.JSONDecodeError, OSError): | CODE |
| HIGH | skills/mt5-robot-tester/scripts/dashboard.py | 148 | except OSError: | CODE |
| HIGH | skills/mt5-robot-tester/scripts/dashboard.py | 329 | except (json.JSONDecodeError, OSError): | CODE |
| HIGH | skills/mt5-robot-tester/scripts/mt5_common.py | 43 | except UnicodeDecodeError: | CODE |
| HIGH | skills/mt5-robot-tester/scripts/mt5_common.py | 212 | except ET.ParseError: | CODE |
| HIGH | skills/trader-memory-core/scripts/thesis_store.py | 1743 | except (ValueError, TypeError): | CODE |
| HIGH | skills/trader-memory-core/scripts/thesis_store.py | 1866 | except (ValueError, TypeError): | CODE |
| HIGH | skills/trader-memory-core/scripts/thesis_store.py | 803 | except OSError: | CODE |
| HIGH | skills/trader-memory-core/scripts/thesis_store.py | 819 | except OSError: | CODE |
| HIGH | skills/trader-memory-core/scripts/thesis_store.py | 1963 | except (ValueError, TypeError): | CODE |
| HIGH | skills/trader-memory-core/scripts/thesis_store.py | 2763 | except (ValueError, TypeError): | CODE |
| HIGH | …eener/scripts/tests/test_screen_dividend_growth_rsi.py | 145 | except Exception: | CODE |
| HIGH | …al-axis-skill-reviewer/scripts/run_dual_axis_review.py | 716 | except OSError: | CODE |
| HIGH | skills/market-breadth-analyzer/scripts/csv_client.py | 186 | except Exception: | CODE |
| HIGH | …et-breadth-analyzer/scripts/market_breadth_analyzer.py | 308 | except (ValueError, TypeError): | CODE |
| HIGH | …et-breadth-analyzer/scripts/market_breadth_analyzer.py | 322 | except (ValueError, TypeError): | CODE |
| HIGH | skills/finviz-screener/scripts/open_finviz_screener.py | 260 | except (subprocess.CalledProcessError, FileNotFoundError): | CODE |
| HIGH | skills/finviz-screener/scripts/open_finviz_screener.py | 266 | except (subprocess.CalledProcessError, FileNotFoundError): | CODE |
| HIGH | …rvalued-growth-screener/scripts/evaluate_candidates.py | 3595 | except InputError: | CODE |
| HIGH | skills/theme-detector/scripts/etf_scanner.py | 748 | except Exception: | CODE |
| HIGH | skills/theme-detector/scripts/etf_scanner.py | 259 | except Exception: | CODE |
| HIGH | skills/theme-detector/scripts/config_loader.py | 24 | except ImportError: | CODE |
| HIGH | skills/theme-detector/scripts/report_generator.py | 430 | except (ValueError, TypeError): | CODE |
| HIGH | …ls/theme-detector/scripts/finviz_performance_client.py | 63 | except (TypeError, ValueError): | CODE |
| HIGH | skills/signal-postmortem/scripts/postmortem_analyzer.py | 57 | except ValueError: | CODE |
| HIGH | skills/signal-postmortem/scripts/postmortem_recorder.py | 153 | except ValueError: | CODE |
| HIGH | …analyzer/scripts/tests/test_earnings_trade_analyzer.py | 1967 | except ApiCallBudgetExceeded: | CODE |
| HIGH | …analyzer/scripts/tests/test_earnings_trade_analyzer.py | 1978 | except ApiCallBudgetExceeded: | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | docs/ja/skills/earnings-calendar.md | 61 | export FMP_API_KEY="your-api-key-here" | CODE |
| HIGH | docs/ja/skills/pair-trade-screener.md | 138 | GET /v3/historical-price-full/{symbol}?apikey=YOUR_API_KEY | CODE |
| HIGH | docs/en/skills/earnings-calendar.md | 61 | export FMP_API_KEY="your-api-key-here" | CODE |
| HIGH | docs/en/skills/pair-trade-screener.md | 148 | GET /v3/historical-price-full/{symbol}?apikey=YOUR_API_KEY | CODE |
| HIGH | …ade-strategy/.claude/skills/earnings-calendar/SKILL.md | 36 | export FMP_API_KEY="your-api-key-here" | CODE |
| HIGH | …e/skills/earnings-calendar/references/fmp_api_guide.md | 22 | https://financialmodelingprep.com/api/v3/earning_calendar?apikey=YOUR_API_KEY&from=2025-11-03&to=2025-11-09 | CODE |
| HIGH | …e/skills/earnings-calendar/references/fmp_api_guide.md | 37 | | `apikey` | string | Your FMP API key | `YOUR_API_KEY` | | CODE |
| HIGH | …e/skills/earnings-calendar/references/fmp_api_guide.md | 190 | api_key = "YOUR_API_KEY" | CODE |
| HIGH⚡ | …e/skills/earnings-calendar/references/fmp_api_guide.md | 256 | api_key = "YOUR_API_KEY" | CODE |
| HIGH⚡ | …e/skills/earnings-calendar/references/fmp_api_guide.md | 275 | export FMP_API_KEY="your-api-key-here" | CODE |
| HIGH | …skills/earnings-calendar/scripts/fetch_earnings_fmp.py | 14 | python fetch_earnings_fmp.py 2025-11-03 2025-11-09 YOUR_API_KEY | STRING |
| HIGH | …c-calendar-fetcher/references/fmp_api_documentation.md | 37 | | `apikey` | string | Your FMP API key | `YOUR_API_KEY` | | CODE |
| HIGH | …c-calendar-fetcher/references/fmp_api_documentation.md | 163 | curl "https://financialmodelingprep.com/api/v3/economic_calendar?from=2025-01-01&to=2025-01-07&apikey=YOUR_API_KEY" | CODE |
| HIGH | …c-calendar-fetcher/references/fmp_api_documentation.md | 178 | "apikey": "YOUR_API_KEY" | CODE |
| HIGH | …eekly-trade-strategy/skills/earnings-calendar/SKILL.md | 36 | export FMP_API_KEY="your-api-key-here" | CODE |
| HIGH | …y/skills/earnings-calendar/references/fmp_api_guide.md | 22 | https://financialmodelingprep.com/api/v3/earning_calendar?apikey=YOUR_API_KEY&from=2025-11-03&to=2025-11-09 | CODE |
| HIGH | …y/skills/earnings-calendar/references/fmp_api_guide.md | 37 | | `apikey` | string | Your FMP API key | `YOUR_API_KEY` | | CODE |
| HIGH | …y/skills/earnings-calendar/references/fmp_api_guide.md | 190 | api_key = "YOUR_API_KEY" | CODE |
| HIGH⚡ | …y/skills/earnings-calendar/references/fmp_api_guide.md | 256 | api_key = "YOUR_API_KEY" | CODE |
| HIGH⚡ | …y/skills/earnings-calendar/references/fmp_api_guide.md | 275 | export FMP_API_KEY="your-api-key-here" | CODE |
| HIGH | …skills/earnings-calendar/scripts/fetch_earnings_fmp.py | 14 | python fetch_earnings_fmp.py 2025-11-03 2025-11-09 YOUR_API_KEY | STRING |
| HIGH | …c-calendar-fetcher/references/fmp_api_documentation.md | 37 | | `apikey` | string | Your FMP API key | `YOUR_API_KEY` | | CODE |
| HIGH | …c-calendar-fetcher/references/fmp_api_documentation.md | 163 | curl "https://financialmodelingprep.com/api/v3/economic_calendar?from=2025-01-01&to=2025-01-07&apikey=YOUR_API_KEY" | CODE |
| HIGH | …c-calendar-fetcher/references/fmp_api_documentation.md | 178 | "apikey": "YOUR_API_KEY" | CODE |
| HIGH | skills/earnings-calendar/SKILL.md | 36 | export FMP_API_KEY="your-api-key-here" | CODE |
| HIGH | skills/earnings-calendar/references/fmp_api_guide.md | 22 | https://financialmodelingprep.com/stable/earnings-calendar?apikey=YOUR_API_KEY&from=2025-11-03&to=2025-11-09&includeRepo | CODE |
| HIGH | skills/earnings-calendar/references/fmp_api_guide.md | 37 | | `apikey` | string | Your FMP API key | `YOUR_API_KEY` | | CODE |
| HIGH | skills/earnings-calendar/references/fmp_api_guide.md | 209 | api_key = "YOUR_API_KEY" | CODE |
| HIGH⚡ | skills/earnings-calendar/references/fmp_api_guide.md | 275 | api_key = "YOUR_API_KEY" | CODE |
| HIGH⚡ | skills/earnings-calendar/references/fmp_api_guide.md | 294 | export FMP_API_KEY="your-api-key-here" | CODE |
| HIGH | skills/earnings-calendar/scripts/fetch_earnings_fmp.py | 14 | python fetch_earnings_fmp.py 2025-11-03 2025-11-09 YOUR_API_KEY | STRING |
| HIGH | …d-growth-pullback-screener/references/fmp_api_guide.md | 141 | apikey=YOUR_API_KEY | CODE |
| HIGH | …d-growth-pullback-screener/references/fmp_api_guide.md | 169 | apikey=YOUR_API_KEY | CODE |
| HIGH | …d-growth-pullback-screener/references/fmp_api_guide.md | 210 | apikey=YOUR_API_KEY | CODE |
| HIGH | …d-growth-pullback-screener/references/fmp_api_guide.md | 264 | apikey=YOUR_API_KEY | CODE |
| HIGH | …ls/value-dividend-screener/references/fmp_api_guide.md | 86 | apikey=YOUR_API_KEY | CODE |
| HIGH | …ls/value-dividend-screener/references/fmp_api_guide.md | 129 | apikey=YOUR_API_KEY | CODE |
| HIGH | …ls/value-dividend-screener/references/fmp_api_guide.md | 196 | apikey=YOUR_API_KEY | CODE |
| HIGH | …c-calendar-fetcher/references/fmp_api_documentation.md | 39 | | `apikey` | string | Your FMP API key | `YOUR_API_KEY` | | CODE |
| HIGH | …c-calendar-fetcher/references/fmp_api_documentation.md | 165 | curl "https://financialmodelingprep.com/api/v3/economic_calendar?from=2025-01-01&to=2025-01-07&apikey=YOUR_API_KEY" | CODE |
| HIGH | …c-calendar-fetcher/references/fmp_api_documentation.md | 180 | "apikey": "YOUR_API_KEY" | CODE |
| HIGH | skills/pair-trade-screener/SKILL.md | 117 | GET /v3/historical-price-full/{symbol}?apikey=YOUR_API_KEY | CODE |
| HIGH | …/pair-trade-screener/references/cointegration_guide.md | 315 | api_key = "YOUR_API_KEY" | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …e/skills/earnings-calendar/references/fmp_api_guide.md | 372 | except Exception as e: | CODE |
| LOW | …skills/earnings-calendar/scripts/fetch_earnings_fmp.py | 98 | except Exception as e: | CODE |
| LOW | …skills/earnings-calendar/scripts/fetch_earnings_fmp.py | 136 | except Exception as e: | CODE |
| LOW | …de/skills/earnings-calendar/scripts/generate_report.py | 57 | except Exception as e: | CODE |
| LOW | …arket-environment-analysis/scripts/_market_calendar.py | 103 | except Exception as exc: | CODE |
| LOW | …arket-environment-analysis/scripts/_market_calendar.py | 119 | except Exception as exc: | CODE |
| LOW | …omic-calendar-fetcher/scripts/get_economic_calendar.py | 253 | except Exception as e: | STRING |
| MEDIUM | …omic-calendar-fetcher/scripts/get_economic_calendar.py | 254 | print(f"Error: {e}", file=sys.stderr) | STRING |
| LOW | …y/skills/earnings-calendar/references/fmp_api_guide.md | 372 | except Exception as e: | CODE |
| LOW | …skills/earnings-calendar/scripts/fetch_earnings_fmp.py | 98 | except Exception as e: | CODE |
| LOW | …skills/earnings-calendar/scripts/fetch_earnings_fmp.py | 136 | except Exception as e: | CODE |
| LOW | …gy/skills/earnings-calendar/scripts/generate_report.py | 57 | except Exception as e: | CODE |
| LOW | …arket-environment-analysis/scripts/_market_calendar.py | 103 | except Exception as exc: | CODE |
| LOW | …arket-environment-analysis/scripts/_market_calendar.py | 119 | except Exception as exc: | CODE |
| LOW | …omic-calendar-fetcher/scripts/get_economic_calendar.py | 253 | except Exception as e: | STRING |
| MEDIUM | …omic-calendar-fetcher/scripts/get_economic_calendar.py | 254 | print(f"Error: {e}", file=sys.stderr) | STRING |
| LOW | examples/daily-market-dashboard/generate_dashboard.py | 179 | except Exception as exc: | CODE |
| LOW | examples/daily-market-dashboard/generate_dashboard.py | 229 | except Exception as exc: | CODE |
| LOW | examples/daily-market-dashboard/app.py | 618 | except Exception as exc: | CODE |
| LOW | examples/daily-market-dashboard/agent/client.py | 92 | except Exception: | CODE |
| LOW | examples/daily-market-dashboard/agent/client.py | 104 | except Exception: | CODE |
| LOW | examples/daily-market-dashboard/agent/client.py | 187 | except Exception as exc: | CODE |
| LOW | examples/daily-market-dashboard/agent/client.py | 199 | except Exception as exc: | CODE |
| LOW | examples/daily-market-dashboard/agent/_sdk_patch.py | 46 | except Exception: | CODE |
| LOW | examples/daily-market-dashboard/agent/attachments.py | 121 | except Exception: | CODE |
| LOW | examples/daily-market-dashboard/agent/async_bridge.py | 43 | except Exception: | CODE |
| LOW | examples/daily-market-dashboard/agent/knowledge.py | 113 | except Exception: | CODE |
| LOW⚡ | scripts/generate_skill_docs.py | 1208 | except Exception: | CODE |
| LOW | scripts/run_skill_generation_pipeline.py | 767 | except Exception: | CODE |
| LOW | scripts/run_skill_generation_pipeline.py | 1408 | except Exception: | CODE |
| LOW | scripts/run_skill_generation_pipeline.py | 1428 | except Exception: | CODE |
| LOW | scripts/workflow_replay.py | 1665 | except Exception as exc: | CODE |
| LOW | scripts/workflow_replay.py | 1699 | except Exception as exc: | CODE |
| LOW | scripts/workflow_replay.py | 1710 | except Exception as exc: | CODE |
| LOW | scripts/workflow_replay.py | 2127 | except Exception as exc: | CODE |
| LOW | scripts/workflow_replay.py | 2159 | except Exception as exc: | CODE |
| LOW | scripts/workflow_replay.py | 2174 | except Exception as exc: | CODE |
| LOW | scripts/workflow_replay.py | 2214 | except Exception as exc: | CODE |
| LOW | scripts/workflow_replay.py | 2411 | except Exception as exc: | CODE |
| LOW | scripts/workflow_replay.py | 2762 | except Exception as exc: | CODE |
| LOW | scripts/workflow_replay.py | 5620 | except Exception as exc: | CODE |
| LOW | scripts/workflow_replay.py | 6683 | except Exception: | CODE |
| LOW | scripts/workflow_replay.py | 6743 | except Exception as exc: | CODE |
| LOW | scripts/workflow_replay.py | 6752 | except Exception as rollback_exc: # pragma: no cover - catastrophic filesystem path | CODE |
| LOW | scripts/workflow_replay.py | 6924 | except Exception as exc: | CODE |
| LOW | scripts/workflow_replay.py | 6991 | except Exception as exc: | CODE |
| LOW | scripts/workflow_replay.py | 7003 | except Exception as exc: | CODE |
| LOW | scripts/smoke_contracts_runner.py | 153 | except Exception as exc: # noqa: BLE001 - evidence harness must record | CODE |
| LOW | scripts/run_skill_improvement_loop.py | 899 | except Exception: | CODE |
| LOW | scripts/check_docs_site.py | 643 | except Exception: | CODE |
| LOW | scripts/market_calendar/market_calendar.py | 101 | except Exception as exc: | CODE |
| LOW | scripts/market_calendar/market_calendar.py | 117 | except Exception as exc: | CODE |
| LOW | skills/macro-regime-detector/scripts/fmp_client.py | 365 | except Exception as e: | CODE |
| MEDIUM | skills/position-sizer/scripts/position_sizer.py | 495 | print(f"Error: {e}", file=sys.stderr) | CODE |
| LOW | skills/mt5-robot-tester/scripts/mt5_batch_tester.py | 1454 | except Exception as e: # keep the loop resilient; record and continue | CODE |
| LOW | skills/market-top-detector/scripts/_market_calendar.py | 103 | except Exception as exc: | CODE |
| LOW | skills/market-top-detector/scripts/_market_calendar.py | 119 | except Exception as exc: | CODE |
| LOW | skills/market-top-detector/scripts/fmp_client.py | 439 | except Exception as e: | CODE |
| LOW | …lls/breakout-trade-planner/scripts/_market_calendar.py | 103 | except Exception as exc: | CODE |
| LOW | …lls/breakout-trade-planner/scripts/_market_calendar.py | 119 | except Exception as exc: | CODE |
| 124 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …skills/earnings-calendar/scripts/fetch_earnings_fmp.py | 413 | # Step 1: Fetch earnings calendar | COMMENT |
| LOW⚡ | …skills/earnings-calendar/scripts/fetch_earnings_fmp.py | 424 | # Step 2: Fetch company profiles | COMMENT |
| LOW⚡ | …skills/earnings-calendar/scripts/fetch_earnings_fmp.py | 430 | # Step 3: Filter by market cap | COMMENT |
| LOW⚡ | …skills/earnings-calendar/scripts/fetch_earnings_fmp.py | 440 | # Step 4: Process earnings data | COMMENT |
| LOW⚡ | …skills/earnings-calendar/scripts/fetch_earnings_fmp.py | 445 | # Step 5: Sort earnings | COMMENT |
| LOW | …skills/earnings-calendar/scripts/fetch_earnings_fmp.py | 413 | # Step 1: Fetch earnings calendar | COMMENT |
| LOW⚡ | …skills/earnings-calendar/scripts/fetch_earnings_fmp.py | 424 | # Step 2: Fetch company profiles | COMMENT |
| LOW⚡ | …skills/earnings-calendar/scripts/fetch_earnings_fmp.py | 430 | # Step 3: Filter by market cap | COMMENT |
| LOW⚡ | …skills/earnings-calendar/scripts/fetch_earnings_fmp.py | 440 | # Step 4: Process earnings data | COMMENT |
| LOW⚡ | …skills/earnings-calendar/scripts/fetch_earnings_fmp.py | 445 | # Step 5: Sort earnings | COMMENT |
| LOW⚡ | scripts/run_skill_generation_pipeline.py | 1546 | # Step 10: Design the skill | COMMENT |
| LOW⚡ | scripts/run_skill_generation_pipeline.py | 1554 | # Step 11: Check for unexpected changes | COMMENT |
| LOW⚡ | scripts/run_skill_generation_pipeline.py | 1569 | # Step 12: Review and improve | COMMENT |
| LOW⚡ | scripts/run_skill_generation_pipeline.py | 1578 | # Step 13: Check for unexpected changes after improvement | COMMENT |
| LOW⚡ | scripts/run_skill_generation_pipeline.py | 1590 | # Step 14: Create PR | COMMENT |
| LOW⚡ | scripts/run_skill_generation_pipeline.py | 1599 | # Step 15: Return to main (before marking completed) | COMMENT |
| LOW⚡ | scripts/run_skill_generation_pipeline.py | 1616 | # Step 16: Mark as completed (after successful return to main) | COMMENT |
| LOW⚡ | scripts/run_skill_generation_pipeline.py | 1619 | # Step 17: Summary and state | COMMENT |
| LOW | scripts/run_skill_generation_pipeline.py | 1642 | # Step 18: Cleanup | COMMENT |
| LOW⚡ | scripts/tests/test_generate_skill_docs.py | 72 | ### Step 1: Run the test | COMMENT |
| LOW⚡ | scripts/tests/test_generate_skill_docs.py | 78 | ### Step 2: Review results | COMMENT |
| LOW⚡ | scripts/tests/test_generate_skill_docs.py | 1201 | ### Step 1: Run it | COMMENT |
| LOW⚡ | …macro-regime-detector/scripts/macro_regime_detector.py | 153 | # Step 1: Fetch Market Data (9 ETFs + Treasury rates = 10 API calls) | COMMENT |
| LOW⚡ | …macro-regime-detector/scripts/macro_regime_detector.py | 186 | # Step 2: Calculate 6 Components | COMMENT |
| LOW⚡ | …macro-regime-detector/scripts/macro_regime_detector.py | 243 | # Step 3: Composite Score & Regime Classification | COMMENT |
| LOW⚡ | …macro-regime-detector/scripts/macro_regime_detector.py | 297 | # Step 4: Generate Reports | COMMENT |
| LOW⚡ | …lls/market-top-detector/scripts/market_top_detector.py | 380 | # Step 1: Fetch shared data (indices, ETFs) | COMMENT |
| LOW⚡ | …lls/market-top-detector/scripts/market_top_detector.py | 473 | # Step 2: Calculate Components | COMMENT |
| LOW⚡ | …lls/market-top-detector/scripts/market_top_detector.py | 567 | # Step 3: Composite Score | COMMENT |
| LOW⚡ | …lls/market-top-detector/scripts/market_top_detector.py | 623 | # Step 4: Follow-Through Day Check | COMMENT |
| LOW⚡ | …lls/market-top-detector/scripts/market_top_detector.py | 633 | # Step 5: Historical Comparison & Scenarios | COMMENT |
| LOW⚡ | …lls/market-top-detector/scripts/market_top_detector.py | 646 | # Step 6: Generate Reports | COMMENT |
| LOW | skills/market-top-detector/scripts/scorer.py | 332 | # Step 1: Find swing low within the lookback window | COMMENT |
| LOW | skills/earnings-calendar/scripts/fetch_earnings_fmp.py | 414 | # Step 1: Fetch earnings calendar | COMMENT |
| LOW⚡ | skills/earnings-calendar/scripts/fetch_earnings_fmp.py | 425 | # Step 2: Fetch company profiles | COMMENT |
| LOW⚡ | skills/earnings-calendar/scripts/fetch_earnings_fmp.py | 431 | # Step 3: Filter by market cap | COMMENT |
| LOW⚡ | skills/earnings-calendar/scripts/fetch_earnings_fmp.py | 441 | # Step 4: Process earnings data | COMMENT |
| LOW⚡ | skills/earnings-calendar/scripts/fetch_earnings_fmp.py | 446 | # Step 5: Sort earnings | COMMENT |
| LOW | …ullback-screener/scripts/screen_dividend_growth_rsi.py | 798 | # Step 1: Get candidate list | COMMENT |
| LOW | …ue-dividend-screener/scripts/screen_dividend_stocks.py | 1097 | # Step 1: Get candidate list | COMMENT |
| LOW | …ue-dividend-screener/scripts/screen_dividend_stocks.py | 1361 | # Step 3: Filter by RSI | COMMENT |
| LOW⚡ | …et-breadth-analyzer/scripts/market_breadth_analyzer.py | 86 | # Step 1: Fetch CSV Data | COMMENT |
| LOW⚡ | …et-breadth-analyzer/scripts/market_breadth_analyzer.py | 110 | # Step 2: Calculate Components | COMMENT |
| LOW⚡ | …et-breadth-analyzer/scripts/market_breadth_analyzer.py | 148 | # Step 3: Composite Score | COMMENT |
| LOW⚡ | …et-breadth-analyzer/scripts/market_breadth_analyzer.py | 207 | # Step 4: Key Levels | COMMENT |
| LOW⚡ | …et-breadth-analyzer/scripts/market_breadth_analyzer.py | 212 | # Step 5: Generate Reports | COMMENT |
| LOW | skills/canslim-screener/scripts/screen_canslim.py | 377 | # Step 1: Calculate market direction (M component) once for all stocks | COMMENT |
| LOW | skills/canslim-screener/scripts/screen_canslim.py | 450 | # Step 2: Progressive filtering and analysis | COMMENT |
| LOW | skills/canslim-screener/scripts/screen_canslim.py | 471 | # Step 3: Rank by composite score | COMMENT |
| LOW | skills/canslim-screener/scripts/screen_canslim.py | 484 | # Step 4: Generate reports | COMMENT |
| LOW⚡ | skills/theme-detector/scripts/theme_detector.py | 575 | # Step 0: Load theme configuration (YAML or inline fallback) | COMMENT |
| LOW⚡ | skills/theme-detector/scripts/theme_detector.py | 608 | # Step 1: Fetch FINVIZ industry performance | COMMENT |
| LOW⚡ | skills/theme-detector/scripts/theme_detector.py | 625 | # Step 2: Rank industries by momentum | COMMENT |
| LOW⚡ | skills/theme-detector/scripts/theme_detector.py | 636 | # Step 3: Classify themes | COMMENT |
| LOW⚡ | skills/theme-detector/scripts/theme_detector.py | 730 | # Step 4: Collect all stock symbols for batch download | COMMENT |
| LOW⚡ | skills/theme-detector/scripts/theme_detector.py | 779 | # Step 5: Batch fetch stock metrics (yfinance) | COMMENT |
| LOW⚡ | skills/theme-detector/scripts/theme_detector.py | 793 | # Step 6: Fetch ETF volume ratios for each theme's proxy ETFs | COMMENT |
| LOW⚡ | skills/theme-detector/scripts/theme_detector.py | 828 | # Step 7: Fetch uptrend-dashboard data | COMMENT |
| LOW⚡ | skills/theme-detector/scripts/theme_detector.py | 858 | # Step 8: Score each theme | COMMENT |
| LOW⚡ | skills/theme-detector/scripts/theme_detector.py | 1075 | # Step 9: Generate reports | COMMENT |
| 29 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | examples/daily-market-dashboard/app.py | 168 | return (window.performance && window.performance.now) | CODE |
| HIGH | examples/daily-market-dashboard/app.py | 172 | return e.target && e.target.closest && | CODE |
| HIGH⚡ | examples/daily-market-dashboard/app.py | 196 | var keyCode = e.keyCode || e.which || 0; | CODE |
| HIGH⚡ | examples/daily-market-dashboard/app.py | 197 | var imeProcessKey = keyCode === 229 || e.key === 'Process'; | CODE |
| HIGH⚡ | examples/daily-market-dashboard/app.py | 199 | if (imeProcessKey || composing || recentlyComposed) { | CODE |
| HIGH⚡ | scripts/run_skill_generation_pipeline.py | 1559 | "'git checkout main && git branch -D %s' to clean up.", | CODE |
| HIGH | scripts/tests/test_doctor.py | 41 | '{"root_project": null}', | CODE |
| HIGH | scripts/tests/test_workflow_replay_monthly.py | 457 | f"{sys.executable} -m pytest skills/vcp-screener/scripts/tests -q && echo bad", | CODE |
| HIGH | scripts/tests/test_provider_contracts.py | 402 | not a JSON boolean) so the provider includes the `time` (bmo/amc/null) | STRING |
| HIGH | …breakout-trade-planner/scripts/plan_breakout_trades.py | 363 | f"valid_vcp && state=Pre-breakout && risk_worst={risk_pct_worst}% <= {MAX_RISK_PCT}%" | CODE |
| HIGH | …memory-core/scripts/tests/test_thesis_store_futures.py | 597 | schema itself allows null (["LONG","SHORT",null]) — direction is | STRING |
| HIGH | …ews-reaction-failure-analyzer/scripts/reaction_math.py | 37 | # zscore_3d); under the iid-N(0,1) null, drift_stat ~ N(0,1). 1.45 was chosen | COMMENT |
| HIGH | …tion-failure-analyzer/scripts/analyze_news_reaction.py | 369 | shape (top-level list/string/null, `markets`/`skipped` not lists, list | STRING |
| HIGH | …tion-failure-analyzer/scripts/analyze_news_reaction.py | 895 | # (top-level list/string/null, or "events" not a list at all) must | COMMENT |
| HIGH | skills/futures-position-sizer/scripts/futures_sizing.py | 1032 | downstream-computed field stays null, matching the output contract's | STRING |
| HIGH | …cot-contrarian-detector/scripts/screen_cot_crowding.py | 304 | "(max == min, index undefined)" | CODE |
| HIGH | skills/cot-contrarian-detector/scripts/cot_index.py | 29 | history, or when the window is flat (max == min, the index is undefined). | STRING |
| HIGH | skills/contrarian-setup-gate/scripts/gate_logic.py | 588 | # A non-null, non-string direction (a JSON list/dict/number/bool) | COMMENT |
| HIGH | …contrarian-setup-gate/scripts/tests/test_gate_logic.py | 733 | """A non-null, non-string direction (e.g. a stray integer) is | STRING |
| HIGH | …d-duration-analyzer/scripts/generate_histogram_html.py | 170 | return sectorMatch && capMatch; | CODE |
| HIGH | …d-duration-analyzer/scripts/generate_histogram_html.py | 175 | if (data.length === 0) return null; | CODE |
| HIGH | skills/manifoldbt-backtester/scripts/bridge.py | 85 | "no completed round trip: win rate and average returns are undefined; " | CODE |
| HIGH | …hort-trade-planner/scripts/monitor_intraday_trigger.py | 166 | ``size_recipe_resolved`` keys (both null) so downstream consumers | STRING |
| HIGH⚡ | …abolic-short-trade-planner/scripts/screen_parabolic.py | 392 | "earnings_within_days": int|null, | STRING |
| HIGH⚡ | …abolic-short-trade-planner/scripts/screen_parabolic.py | 393 | "last_earnings_date": "YYYY-MM-DD"|null, | STRING |
| HIGH⚡ | …abolic-short-trade-planner/scripts/screen_parabolic.py | 394 | "next_earnings_date": "YYYY-MM-DD"|null, | STRING |
| HIGH⚡ | …abolic-short-trade-planner/scripts/screen_parabolic.py | 395 | "trading_days_since_earnings": int|null, | STRING |
| HIGH⚡ | …abolic-short-trade-planner/scripts/screen_parabolic.py | 396 | "market_data_as_of": "YYYY-MM-DD"|null}, ...]} | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | …omic-calendar-fetcher/scripts/get_economic_calendar.py | 32 | Fetch economic calendar data from FMP API. Args: from_date: Start date in YYYY-MM-DD format to | STRING |
| HIGH | …omic-calendar-fetcher/scripts/get_economic_calendar.py | 32 | Fetch economic calendar data from FMP API. Args: from_date: Start date in YYYY-MM-DD format to | STRING |
| HIGH | …/market-top-detector/scripts/calculators/math_utils.py | 10 | Calculate Exponential Moving Average from prices (most recent first). Args: prices: List of prices, mo | STRING |
| HIGH | …/market-top-detector/scripts/calculators/math_utils.py | 41 | Calculate Simple Moving Average from prices (most recent first). Args: prices: List of prices, most re | STRING |
| HIGH | …ills/breakout-trade-planner/scripts/risk_calculator.py | 29 | Derive signal entry, worst-case entry, and stop-loss from VCP data. Args: pivot: Pivot price (high of last | STRING |
| HIGH | skills/trader-memory-core/scripts/thesis_ingest.py | 496 | Ingest skill output and register theses. Args: source: Source skill name (e.g., "kanchi-dividend-sop"). | STRING |
| HIGH | skills/trader-memory-core/scripts/thesis_store.py | 1037 | Register a new thesis from provided data. Args: state_dir: Path to state/theses/ directory. thesis_ | STRING |
| HIGH | skills/trader-memory-core/scripts/thesis_store.py | 1140 | Partial update of a thesis. Args: state_dir: Path to state/theses/ directory. thesis_id: Thesis to | STRING |
| HIGH | skills/trader-memory-core/scripts/thesis_store.py | 1887 | Close an ACTIVE or PARTIALLY_CLOSED thesis and compute outcome. With a position: outcome is the cumulative realized | STRING |
| HIGH | skills/trader-memory-core/scripts/thesis_store.py | 2388 | Transition thesis from ENTRY_READY to ACTIVE with entry data. This is the only way to reach ACTIVE status. transiti | STRING |
| HIGH | skills/trader-memory-core/scripts/thesis_store.py | 2885 | Record a review and advance next_review_date. Args: state_dir: Path to state/theses/. thesis_id: Th | STRING |
| HIGH | skills/trader-memory-core/scripts/fmp_price_adapter.py | 32 | Return daily close prices, oldest first. Args: ticker: Stock symbol (e.g., "AAPL"). fro | STRING |
| HIGH | skills/finviz-screener/scripts/open_finviz_screener.py | 75 | Validate comma-separated theme or sub-theme slugs. Args: raw: Comma-separated slug values (with or without | STRING |
| HIGH | skills/theme-detector/scripts/config_loader.py | 31 | Load themes config and ETF catalog. Args: yaml_path: Path to custom themes YAML. If None, tries bundled the | STRING |
| HIGH | …omic-calendar-fetcher/scripts/get_economic_calendar.py | 32 | Fetch economic calendar data from FMP API. Args: from_date: Start date in YYYY-MM-DD format to | STRING |
| HIGH | …lls/ibd-distribution-day-monitor/scripts/math_utils.py | 10 | Calculate Exponential Moving Average from prices (most recent first). Args: prices: List of prices, mo | STRING |
| HIGH | …lls/ibd-distribution-day-monitor/scripts/math_utils.py | 41 | Calculate Simple Moving Average from prices (most recent first). Args: prices: List of prices, most re | STRING |
| HIGH | …/ibd-distribution-day-monitor/scripts/history_utils.py | 17 | Rebase history so index 0 is the evaluation session. Args: history: Most-recent-first list of OHLCV dicts ( | STRING |
| HIGH | …arabolic-short-trade-planner/scripts/bar_normalizer.py | 34 | Return ``bars`` sorted in ``output_order`` with duplicates removed. Args: bars: Iterable of dicts that each | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | config/market-calendar-dependency.yaml | 3 | # This file is the single authority for the shared exchange-calendar runtime. | COMMENT |
| MEDIUM | scripts/tests/test_generate_skill_docs.py | 385 | # Create a skill that matches HAND_WRITTEN | STRING |
| MEDIUM | scripts/tests/test_generate_skill_docs.py | 467 | # Create a directory without SKILL.md | STRING |
| MEDIUM | scripts/tests/test_skill_improvement_loop.py | 647 | # Create a fake report file for the function to find | COMMENT |
| MEDIUM | scripts/tests/test_skill_generation_pipeline.py | 181 | # Create a candidates file that run_mine will find | COMMENT |
| MEDIUM | scripts/tests/test_skill_generation_pipeline.py | 190 | # Create a backlog file for the summary | COMMENT |
| MEDIUM | scripts/tests/test_skill_generation_pipeline.py | 245 | # Create a candidates file | COMMENT |
| MEDIUM | scripts/tests/test_skill_generation_pipeline.py | 644 | # Create a report JSON | COMMENT |
| MEDIUM⚡ | …ro-regime-detector/scripts/tests/test_concentration.py | 30 | # Create a clear uptrend in RSP relative to SPY | COMMENT |
| MEDIUM⚡ | …ro-regime-detector/scripts/tests/test_concentration.py | 49 | # Create a ratio that crosses over (death_cross then reverses) | COMMENT |
| MEDIUM | …-top-detector/scripts/tests/test_defensive_rotation.py | 99 | # Create a scenario where short-term is defensive but long-term is not | COMMENT |
| MEDIUM⚡ | …/trader-memory-core/scripts/tests/test_thesis_store.py | 710 | # Create a schema-invalid thesis YAML (bogus status) | COMMENT |
| MEDIUM | …adth-chart-analyst/scripts/extract_chart_right_edge.py | 84 | # Create a copy for marking | COMMENT |
| MEDIUM⚡ | …art-analyst/scripts/tests/test_detect_uptrend_ratio.py | 256 | # Create a text file with .jpeg extension | COMMENT |
| MEDIUM | …lls/skill-idea-miner/scripts/tests/test_score_ideas.py | 90 | # Create a nested SKILL.md that should NOT be picked up | COMMENT |
| MEDIUM | skills/ftd-detector/scripts/tests/test_rally_tracker.py | 438 | # Create a new correction and rally attempt from a new swing low | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | docs/README.md | 181 | {:toc} | COMMENT |
| LOW | examples/weekly-trade-strategy/CLAUDE.md | 41 | # - Nasdaq 100 (週足) | COMMENT |
| LOW | …de-strategy/.claude/agents/weekly-trade-blog-writer.md | 221 | ``` | COMMENT |
| LOW | …ategy/.claude/agents/druckenmiller-strategy-planner.md | 221 | # - reports/YYYY-MM-DD/technical-market-analysis.md | COMMENT |
| LOW | scripts/run_skill_generation.sh | 1 | #!/bin/bash | COMMENT |
| LOW | scripts/run_skill_improvement.sh | 1 | #!/bin/bash | COMMENT |
| LOW | scripts/run_skill_improvement_loop.py | 441 | return False | COMMENT |
| LOW | .github/workflows/packaged-deps-nightly.yml | 1 | name: Packaged deps nightly smoke | COMMENT |
| LOW | .github/workflows/fmp-contract-canary.yml | 1 | name: FMP contract canary | COMMENT |
| LOW | .github/workflows/ci.yml | 221 | COMMENT | |
| LOW | .github/workflows/ci.yml | 241 | COMMENT | |
| LOW | skills/kanchi-dividend-sop/scripts/thresholds.py | 21 | YIELD_FLOOR_BY_PROFILE = { | COMMENT |
| LOW | skills/kanchi-dividend-sop/scripts/thresholds.py | 41 | SPECIAL_EXTREME_MULTIPLE = 3.0 | COMMENT |
| LOW | skills/trader-memory-core/scripts/thesis_store.py | 41 | # opened or while it is fully open. On PARTIALLY_CLOSED it would violate | COMMENT |
| LOW | skills/trader-memory-core/scripts/thesis_store.py | 161 | # Sanity cap on any futures contract count (P1-B, user re-review). Same | COMMENT |
| LOW | skills/trader-memory-core/scripts/thesis_store.py | 1341 | if actual_stop is not None and abs(actual_stop - expected_stop) > 0.01: | COMMENT |
| LOW | skills/trader-memory-core/scripts/thesis_store.py | 1501 | if multiplier is None: | COMMENT |
| LOW | skills/trader-memory-core/scripts/thesis_store.py | 1541 | # Cross-attach guard (P1 addendum, user re-review, money-critical) — | COMMENT |
| LOW | skills/trader-memory-core/scripts/thesis_store.py | 2721 | append_entry=True, | COMMENT |
| LOW | …ews-reaction-failure-analyzer/scripts/reaction_math.py | 41 | # 1.0 -> 13.4-15.8%, 1.28 -> ~9.7-10.0%, 1.35 -> 8.1-8.8%, all of which fail | COMMENT |
| LOW | …ews-reaction-failure-analyzer/scripts/reaction_math.py | 61 | MIN_EVENTS_DEFAULT = 3 | COMMENT |
| LOW | …ality-checker/scripts/tests/test_check_data_quality.py | 321 | # sum_mins = 50+20+15+5 = 90, sum_maxs = 55+25+20+10 = 110 | COMMENT |
| LOW | skills/futures-position-sizer/scripts/futures_sizing.py | 41 | from fractions import Fraction | COMMENT |
| LOW | skills/futures-position-sizer/scripts/futures_sizing.py | 61 | # round-2 P2): its absolute size grows with q, and at large q | COMMENT |
| LOW | skills/futures-position-sizer/scripts/futures_sizing.py | 81 | # terminates in O(1) regardless of scale, and | COMMENT |
| LOW | skills/futures-position-sizer/scripts/futures_sizing.py | 101 | # that could ever hold anywhere near this many. Rejecting anything above | COMMENT |
| LOW | skills/futures-position-sizer/scripts/futures_sizing.py | 881 | reason="direction_stop_mismatch", | COMMENT |
| LOW | skills/futures-position-sizer/scripts/futures_sizing.py | 941 | result["stop_distance_points"] = round(distance, 8) | COMMENT |
| LOW | …es-position-sizer/scripts/tests/test_futures_sizing.py | 181 | # --- Code review round 3, P1-1 (and its own re-review): the relative | COMMENT |
| LOW | …es-position-sizer/scripts/tests/test_futures_sizing.py | 601 | # above continuing to underflow identically on every platform). | COMMENT |
| LOW | skills/trading-skills-navigator/scripts/recommend.py | 961 | COMMENT | |
| LOW | …owth-screener/scripts/build_provider_prefilter_pool.py | 301 | # The row-count floor may be waived only when the WHOLE economic candidate | COMMENT |
| LOW | …cot-contrarian-detector/scripts/screen_cot_crowding.py | 81 | "BT", | COMMENT |
| LOW | skills/contrarian-setup-gate/scripts/gate_logic.py | 101 | NEWS_VERDICTS = {"CONFIRMED", "NOT_CONFIRMED", "INSUFFICIENT_EVIDENCE"} | COMMENT |
| LOW | skills/contrarian-setup-gate/scripts/gate_logic.py | 121 | "key_reversal": "weekly_key_reversal", | COMMENT |
| LOW | …monitor/scripts/tests/test_distribution_day_tracker.py | 221 | # Actually post_high[26] is index 26 in effective_history (oldest post-DD). | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | scripts/workflow_replay.py | 2416 | # already validated payload in the harness's canonical JSON form for stable goldens. | COMMENT |
| MEDIUM | scripts/workflow_replay.py | 5910 | # this check falls back to 100% of account (no leverage). | COMMENT |
| MEDIUM | scripts/smoke_contracts_runner.py | 153 | except Exception as exc: # noqa: BLE001 - evidence harness must record | CODE |
| MEDIUM | scripts/tests/test_workflow_replay_multi_asset.py | 552 | # the harness post-check still caps position value at 100% of account. | COMMENT |
| MEDIUM | skills/kanchi-dividend-sop/scripts/thresholds.py | 73 | UTILITY_FFO_DEBT_MIN = 0.13 # below this, regulated leverage is stretched | CODE |
| MEDIUM | skills/kanchi-dividend-sop/scripts/dividend_basis.py | 258 | # robust to rolling-window pay-count drift; v2.1 R-2) --- | COMMENT |
| MEDIUM | …ills/macro-regime-detector/scripts/report_generator.py | 19 | """Generate comprehensive Markdown report""" | STRING |
| MEDIUM | skills/market-top-detector/scripts/report_generator.py | 36 | """Generate comprehensive Markdown report""" | STRING |
| MEDIUM | …ls/market-breadth-analyzer/scripts/report_generator.py | 19 | """Generate comprehensive Markdown report.""" | STRING |
| MEDIUM | …us-undervalued-growth-screener/scripts/run_pipeline.py | 2040 | # score and pull TTM quality metrics (ROIC, FCF yield, EV/FCF, leverage, | COMMENT |
| MEDIUM | …-screener/scripts/tests/test_pool_floor_and_sectors.py | 129 | # general-company leverage gate (ABR: net debt/EBITDA 13x was excluded | COMMENT |
| MEDIUM | skills/uptrend-analyzer/scripts/report_generator.py | 24 | """Generate comprehensive Markdown report""" | STRING |
| MEDIUM | skills/ftd-detector/scripts/report_generator.py | 19 | """Generate comprehensive Markdown report.""" | STRING |
| MEDIUM | …y-druckenmiller-investment/scripts/report_generator.py | 22 | """Generate comprehensive Markdown report.""" | STRING |
| MEDIUM | skills/pair-trade-screener/scripts/analyze_spread.py | 274 | """Print comprehensive analysis report""" | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …skills/earnings-calendar/scripts/fetch_earnings_fmp.py | 82 | # Check if response is error message | COMMENT |
| LOW | …skills/earnings-calendar/scripts/fetch_earnings_fmp.py | 82 | # Check if response is error message | COMMENT |
| LOW | skills/macro-regime-detector/scripts/scorer.py | 422 | # Check if second-best regime is close (ambiguity) | COMMENT |
| LOW | …tector/scripts/calculators/leading_stock_calculator.py | 288 | # Check if most recent swing highs are declining | COMMENT |
| LOW | …reener/scripts/calculators/weekly_candle_calculator.py | 84 | # Check if the latest week is complete (has Friday data) | COMMENT |
| LOW | skills/trader-memory-core/scripts/thesis_ingest.py | 359 | # Check if it's a market basket or multi-ticker | COMMENT |
| LOW | skills/earnings-calendar/scripts/fetch_earnings_fmp.py | 88 | # Check if response is error message | COMMENT |
| LOW | …ls/edge-signal-aggregator/scripts/aggregate_signals.py | 1081 | # Check if at least one input is provided | COMMENT |
| LOW | …ullback-screener/scripts/screen_dividend_growth_rsi.py | 964 | # Check if this is a REIT (uses different payout ratio calculation) | COMMENT |
| LOW | …s/portfolio-manager/scripts/check_alpaca_connection.py | 113 | # Check if account is restricted | COMMENT |
| LOW | …adth-chart-analyst/scripts/extract_chart_right_edge.py | 144 | # Check if it's an image file | COMMENT |
| LOW | …adth-chart-analyst/scripts/extract_chart_right_edge.py | 149 | # Check if it's likely a breadth chart (by filename) | COMMENT |
| LOW | …/breadth-chart-analyst/scripts/detect_uptrend_ratio.py | 546 | # Check if value is in reasonable range | COMMENT |
| LOW | …breadth-chart-analyst/scripts/detect_breadth_values.py | 338 | # Check if reference lines were detected (not estimated) | COMMENT |
| LOW | …ue-dividend-screener/scripts/screen_dividend_stocks.py | 1165 | # Check if rate limit reached | COMMENT |
| LOW | …ue-dividend-screener/scripts/screen_dividend_stocks.py | 1275 | # Check if this is a REIT (uses different payout ratio calculation) | COMMENT |
| LOW | …al-flow-tracker/scripts/track_institution_portfolio.py | 65 | python3 analyze_single_stock.py AAPL # Check if Berkshire changed position | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | scripts/tests/test_github_templates.py | 33 | "input": {"label", "description", "placeholder", "value"}, | CODE |
| LOW | scripts/tests/test_github_templates.py | 34 | "textarea": {"label", "description", "placeholder", "value", "render"}, | CODE |
| LOW | scripts/tests/test_weekly_core_collect.py | 13 | DUMMY_FMP_VALUE = "placeholder" | CODE |
| LOW | …nings-calendar/scripts/tests/test_earnings_calendar.py | 28 | return FMPEarningsCalendar(api_key="dummy-key") | CODE |
| LOW | …ndervalued-growth-screener/scripts/manage_run_state.py | 215 | if not summary or "replace this" in summary.lower() or "placeholder" in summary.lower(): | CODE |
| LOW | …wth-screener/scripts/tests/test_evaluate_candidates.py | 812 | self.assertNotIn("placeholder", markdown.lower()) | CODE |
| LOW | …flow-tracker/scripts/tests/test_tracker_integration.py | 94 | tracker = InstitutionalFlowTracker("fake_key", as_of=AS_OF) | CODE |
| LOW | …flow-tracker/scripts/tests/test_tracker_integration.py | 125 | tracker = InstitutionalFlowTracker("fake_key", as_of=AS_OF) | CODE |
| LOW | …flow-tracker/scripts/tests/test_tracker_integration.py | 157 | tracker = InstitutionalFlowTracker("fake_key", as_of=AS_OF) | CODE |
| LOW | …flow-tracker/scripts/tests/test_tracker_integration.py | 179 | tracker = InstitutionalFlowTracker("fake_key", as_of=AS_OF) | CODE |
| LOW | …flow-tracker/scripts/tests/test_tracker_integration.py | 205 | tracker = InstitutionalFlowTracker("fake_key", as_of=AS_OF) | CODE |
| LOW | …flow-tracker/scripts/tests/test_tracker_integration.py | 223 | tracker = InstitutionalFlowTracker("fake_key", as_of=AS_OF) | CODE |
| LOW⚡ | …flow-tracker/scripts/tests/test_tracker_integration.py | 315 | tracker = InstitutionalFlowTracker("fake_key", as_of=AS_OF) | CODE |
| LOW⚡ | …flow-tracker/scripts/tests/test_tracker_integration.py | 321 | tracker = InstitutionalFlowTracker("fake_key", as_of=AS_OF) | CODE |
| LOW⚡ | …flow-tracker/scripts/tests/test_tracker_integration.py | 327 | tracker = InstitutionalFlowTracker("fake_key", as_of=AS_OF) | CODE |
| LOW | …tional-flow-tracker/scripts/tests/test_single_stock.py | 93 | analyzer = SingleStockAnalyzer("fake_key", as_of=AS_OF) | CODE |
| LOW⚡ | …tional-flow-tracker/scripts/tests/test_single_stock.py | 156 | analyzer = SingleStockAnalyzer("fake_key", as_of=AS_OF) | CODE |
| LOW⚡ | …tional-flow-tracker/scripts/tests/test_single_stock.py | 219 | analyzer = SingleStockAnalyzer("fake_key", as_of=AS_OF) | CODE |
| LOW⚡ | …tional-flow-tracker/scripts/tests/test_single_stock.py | 224 | analyzer = SingleStockAnalyzer("fake_key", as_of=AS_OF) | CODE |
| LOW⚡ | …tional-flow-tracker/scripts/tests/test_single_stock.py | 229 | analyzer = SingleStockAnalyzer("fake_key", as_of=AS_OF) | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | docs/ja/skillsets.md | 29 | | [`trade-memory`](#trade-memory) — Trade Memory | event-driven | no-api-basic | beginner | `trade-memory-loop`, `monthl | CODE |
| MEDIUM | docs/dev/metadata-and-workflow-schema.md | 382 | timeframe: daily # daily | weekly | event-driven | research | CODE |
| MEDIUM | docs/en/skillsets.md | 27 | | [`trade-memory`](#trade-memory) — Trade Memory | event-driven | no-api-basic | beginner | `trade-memory-loop`, `monthl | CODE |
| MEDIUM | docs/en/playbooks/shapiro-contrarian.md | 197 | ## Discipline and guardrails | COMMENT |
| MEDIUM | .github/workflows/packaged-deps-nightly.yml | 8 | # orchestration uses uv.lock; isolated standalone requirements installs are | COMMENT |
| MEDIUM | .github/workflows/ci.yml | 268 | # the orchestration environment is installed from uv.lock. | COMMENT |
| MEDIUM⚡ | …lls/data-quality-checker/scripts/check_data_quality.py | 673 | # Main orchestration | COMMENT |
| MEDIUM | skills/futures-position-sizer/scripts/futures_sizing.py | 780 | # --- Top-level sizing orchestration ------------------------------------------ | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | examples/daily-market-dashboard/generate_dashboard.py | 29 | logger = logging.getLogger(__name__) | CODE |
| LOW | examples/daily-market-dashboard/app.py | 46 | logger = logging.getLogger(__name__) | CODE |
| LOW | examples/daily-market-dashboard/agent/client.py | 33 | logger = logging.getLogger(__name__) | CODE |
| LOW | examples/daily-market-dashboard/agent/_sdk_patch.py | 15 | logger = logging.getLogger(__name__) | CODE |
| LOW | examples/daily-market-dashboard/agent/async_bridge.py | 10 | logger = logging.getLogger(__name__) | CODE |
| LOW | examples/daily-market-dashboard/agent/knowledge.py | 13 | logger = logging.getLogger(__name__) | CODE |
| LOW⚡ | scripts/tests/test_validate_skills_index.py | 480 | def _setup_minimal_workflow_repo(tmp_path: Path, **wf_overrides) -> None: | CODE |
| LOW | scripts/tests/test_skill_generation_pipeline.py | 162 | def _setup_mine_script(tmp_path: Path, pipeline_module) -> None: | CODE |
| LOW | scripts/tests/test_skill_generation_pipeline.py | 169 | def _setup_score_script(tmp_path: Path, pipeline_module) -> None: | CODE |
| LOW | scripts/tests/test_skill_generation_pipeline.py | 596 | def _setup_daily_backlog(tmp_path: Path, pipeline_module, ideas=None) -> None: | CODE |
| LOW | …ls/market-top-detector/scripts/calculators/__init__.py | 11 | __all__ = [ | CODE |
| LOW | skills/pead-screener/scripts/screen_pead.py | 44 | logger = logging.getLogger(__name__) | CODE |
| LOW | skills/trader-memory-core/scripts/thesis_review.py | 16 | logger = logging.getLogger(__name__) | CODE |
| LOW | skills/trader-memory-core/scripts/thesis_ingest.py | 21 | logger = logging.getLogger(__name__) | CODE |
| LOW | skills/trader-memory-core/scripts/thesis_store.py | 25 | logger = logging.getLogger(__name__) | CODE |
| LOW | skills/trader-memory-core/scripts/thesis_store.py | 936 | def _update_index_entry(index: dict, thesis: dict) -> None: | CODE |
| LOW | skills/trader-memory-core/scripts/fmp_price_adapter.py | 15 | logger = logging.getLogger(__name__) | CODE |
| LOW⚡ | …heme-detector/scripts/representative_stock_selector.py | 28 | logger = logging.getLogger(__name__) | CODE |
| LOW | skills/manifoldbt-backtester/scripts/bridge.py | 38 | __all__ = ["build_evaluation_inputs", "format_evaluate_command", "NANOS_PER_YEAR"] | CODE |
| LOW | skills/manifoldbt-backtester/scripts/spec.py | 25 | __all__ = ["validate_spec", "count_parameters", "SpecError", "INDICATORS", "OPERATORS", "SOURCES"] | CODE |
| LOW | skills/manifoldbt-backtester/scripts/round_trips.py | 36 | __all__ = ["pair_round_trips", "summarize_round_trips", "SIDE_BUY", "SIDE_SELL"] | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | skills/kanchi-dividend-sop/scripts/payout_safety.py | 85 | CODE | |
| LOW | …lls/macro-regime-detector/scripts/calculators/utils.py | 44 | CODE | |
| LOW | …ade-planner/scripts/tests/test_plan_breakout_trades.py | 39 | CODE | |
| LOW | skills/trader-memory-core/scripts/thesis_store.py | 2374 | CODE | |
| LOW | skills/vcp-screener/scripts/screen_vcp.py | 306 | CODE | |
| LOW | skills/vcp-screener/scripts/tests/test_vcp_screener.py | 3161 | CODE | |
| LOW | …screener/scripts/calculators/vcp_pattern_calculator.py | 22 | CODE | |
| LOW | …ullback-screener/scripts/screen_dividend_growth_rsi.py | 314 | CODE | |
| LOW | …/breadth-chart-analyst/scripts/detect_uptrend_ratio.py | 660 | CODE | |
| LOW | …hesizer/scripts/tests/test_synthesize_edge_concepts.py | 503 | CODE | |
| LOW | …stockbee-episodic-pivot-analyzer/scripts/analyze_ep.py | 993 | CODE | |
| LOW | …s/us-undervalued-growth-screener/scripts/fmp_client.py | 234 | CODE | |
| LOW | …undervalued-growth-screener/scripts/screen_universe.py | 1268 | CODE | |
| LOW | …ed-growth-screener/scripts/tests/test_ranking_scope.py | 88 | CODE | |
| LOW | …contrarian-setup-gate/scripts/tests/test_gate_logic.py | 769 | CODE | |
| LOW | skills/uptrend-analyzer/scripts/tests/helpers.py | 4 | CODE | |
| LOW | skills/ftd-detector/scripts/tests/helpers.py | 53 | CODE | |
| LOW | …flow-tracker/scripts/tests/test_tracker_integration.py | 20 | CODE | |
| LOW | …-trade-analyzer/scripts/calculators/ma50_calculator.py | 87 | CODE | |
| LOW | …r/scripts/calculators/pre_earnings_trend_calculator.py | 110 | CODE | |
| LOW | …trade-analyzer/scripts/calculators/ma200_calculator.py | 91 | CODE | |
| LOW | …nalyzer/scripts/calculators/volume_trend_calculator.py | 135 | CODE | |
| LOW | …-druckenmiller-investment/scripts/tests/test_scorer.py | 172 | CODE | |
| LOW | …-druckenmiller-investment/scripts/tests/test_scorer.py | 400 | CODE | |
| LOW | skills/strategy-pivot-designer/scripts/tests/helpers.py | 6 | CODE | |
| LOW | …ical-analyst/scripts/tests/test_weekly_price_action.py | 702 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | skills/canslim-screener/scripts/finviz_stock_client.py | 209 | # Example usage | COMMENT |
| LOW | skills/canslim-screener/scripts/report_generator.py | 435 | # Example usage | COMMENT |
| LOW | …m-screener/scripts/calculators/new_highs_calculator.py | 151 | # Example usage | COMMENT |
| LOW | …reener/scripts/calculators/supply_demand_calculator.py | 201 | # Example usage | COMMENT |
| LOW | …slim-screener/scripts/calculators/market_calculator.py | 223 | # Example usage | COMMENT |
| LOW | …reener/scripts/calculators/institutional_calculator.py | 351 | # Example usage | COMMENT |
| LOW | …-screener/scripts/calculators/leadership_calculator.py | 626 | # Example usage | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | scripts/tests/test_skill_improvement_loop.py | 346 | + "\n\nLet me know if you need more details." | CODE |