Claude Code skills for equity investors and traders — market analysis, technical charting, economic calendars, screeners, and trading strategy development.
This report presents the forensic synthetic code analysis of tradermonty/claude-trading-skills, a Python project with 2,370 GitHub stars. SynthScan v2.0 examined 312,993 lines of code across 1181 source files, recording 5967 pattern matches distributed across 21 syntactic categories. The overall adjusted score of 33.2 places this repository in the Strong AI signal band.
The scanner applied 160+ deterministic lexical heuristics, multi-line block detectors, abstract syntax tree depth profilers, and a cross-file Jaccard similarity matrix to construct a statistically normalised synthetic code estimate. All matches are individually weighted by severity coefficient and contextual multiplier before summation, and the resulting headline score is temporally discounted to account for the repository's development history relative to the commercial emergence of large language model coding tooling (November 2022 onward).
Longitudinal tracking requires multiple scan runs. Once this repository is re-scanned after new commits land, this chart will visualise how the synthetic code signal evolves over time — enabling you to detect whether AI authorship is growing, stabilising, or being actively corrected by human engineers.
Classifies detected patterns by their diagnostic confidence and structural impact. CRITICAL patterns (coefficient 10) represent definitive synthetic signatures — hallucinated imports, explicit LLM attribution metadata — virtually never produced by human authors. HIGH (5) indicates strong structural tells such as cross-file repetition or cross-linguistic idioms. MEDIUM (2) covers recognisable conversational padding and AI-specific vocabulary. LOW (1) captures subtle indicators like tautological comments and generic boilerplate that require density to carry independent signal.
This horizontal bar chart decomposes the repository's raw synthetic code score by top-level directory, allowing you to pinpoint precisely which modules or components carry the highest AI authorship density. Directories with disproportionately high scores relative to their size warrant targeted manual review: concentrated AI signatures often trace back to mass-generated configuration layers, auto-ported test suites, LLM-scaffolded boilerplate classes, or entire subsystems authored under heavy copilot assistance. Use this view to prioritise your human code-review effort.
The scanner identified 5967 distinct pattern matches across 21 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a statistically significant AI authorship indicator. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.
Reading the findings table: The Severity column indicates the diagnostic confidence level (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — comment-context matches receive a ×1.5 weight because LLMs systematically over-annotate. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier as dense clusters constitute far stronger evidence of synthetic authorship than isolated hits.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | 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 | 31 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | scripts/generate_catalog_from_index.py | 33 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | scripts/generate_catalog_from_index.py | 40 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | scripts/generate_catalog_from_index.py | 42 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | scripts/generate_catalog_from_index.py | 75 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | scripts/generate_catalog_from_index.py | 77 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | scripts/generate_catalog_from_index.py | 121 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | scripts/generate_catalog_from_index.py | 123 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | scripts/generate_catalog_from_index.py | 283 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | scripts/generate_catalog_from_index.py | 285 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | scripts/generate_catalog_from_index.py | 313 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | scripts/generate_catalog_from_index.py | 315 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | scripts/generate_catalog_from_index.py | 337 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | scripts/generate_catalog_from_index.py | 339 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | scripts/generate_skillset_docs.py | 24 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | scripts/generate_skillset_docs.py | 26 | # --------------------------------------------------------------------------- | COMMENT |
| 1117 more matches not shown… | ||||
| 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 | 23 | def format_market_report_header(): | CODE |
| LOW | …ls/market-environment-analysis/scripts/market_utils.py | 36 | def calculate_trading_days_to_event(event_date_str): | STRING |
| 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 | 23 | def format_market_report_header(): | CODE |
| LOW | …ls/market-environment-analysis/scripts/market_utils.py | 36 | def calculate_trading_days_to_event(event_date_str): | STRING |
| 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/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/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/run_skill_improvement_loop.py | 371 | def _extract_json_from_claude(output: str, required_keys: list[str]) -> dict | None: | CODE |
| LOW | scripts/run_skill_improvement_loop.py | 411 | def _is_nothing_to_commit_output(output: str) -> bool: | CODE |
| LOW | scripts/run_skill_improvement_loop.py | 482 | def _extract_prerequisites_section(skill_md_text: str) -> str | None: | CODE |
| LOW | scripts/run_skill_improvement_loop.py | 560 | def check_prerequisites_faithfulness(project_root: Path, skill_name: str) -> list[str]: | CODE |
| LOW | scripts/generate_workflow_docs.py | 202 | def _render_prerequisite_workflows(prereqs: list[dict], labels: dict[str, str]) -> str: | CODE |
| LOW | scripts/package_skills.py | 102 | def _archive_logical_contents(archive_path: Path) -> dict[str, tuple[bytes, bool]]: | CODE |
| LOW | scripts/validate_skills_index.py | 130 | def _validate_index_structure( | CODE |
| LOW | scripts/validate_skills_index.py | 286 | def _validate_bijection_and_frontmatter( | CODE |
| LOW | scripts/validate_skills_index.py | 339 | def _validate_workflow_references( | CODE |
| LOW | scripts/validate_skills_index.py | 369 | def _validate_workflow_internal( | CODE |
| LOW | scripts/weekly_core_collect.py | 211 | def _should_fallback_on_empty_stable(source: str, path: str, data: Any) -> bool: | CODE |
| LOW | scripts/weekly_core_collect.py | 256 | def fetch_profiles_and_quotes(symbols: list[str], fmp_client: FmpClient) -> tuple[dict, dict]: | CODE |
| LOW | scripts/check_package_drift_for_changed_skills.py | 55 | def packaged_skills_for_changed_paths( | CODE |
| LOW | scripts/check_package_drift_for_changed_skills.py | 106 | def check_changed_package_drift( | CODE |
| LOW | scripts/tests/test_fmp_client_truncate_contract.py | 73 | def test_get_historical_prices_truncates_to_days(client_path, monkeypatch): | CODE |
| LOW⚡ | scripts/tests/test_generate_skill_docs.py | 778 | def test_buttons_en_with_package(self, tmp_path): | CODE |
| LOW⚡ | scripts/tests/test_generate_skill_docs.py | 811 | def test_buttons_none_still_shows_source(self): | CODE |
| LOW⚡ | scripts/tests/test_generate_skill_docs.py | 817 | def test_buttons_none_ja_still_shows_source(self): | CODE |
| LOW⚡ | scripts/tests/test_generate_skill_docs.py | 961 | def test_extracts_linked_slugs(self): | CODE |
| 2975 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 |
| 148 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 | 123 | ### Step 4: セットアップ手順を示す | COMMENT |
| LOW | docs/ja/skills/trading-skills-navigator.md | 127 | ### 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 | 86 | ### Step 2: サーキットブレーカールールを評価する | COMMENT |
| LOW | docs/ja/skills/drawdown-circuit-breaker.md | 111 | ### Step 3: 閾値を上書きする | COMMENT |
| LOW | docs/ja/skills/drawdown-circuit-breaker.md | 139 | ### 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 |
| 530 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 | 61 | 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 | 61 | 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/generate_skill_docs.py | 57 | CODE | |
| LOW | scripts/generate_skill_docs.py | 1119 | 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 | 65 | CODE | |
| LOW | scripts/ci_test_matrix.py | 290 | 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 | 619 | CODE | |
| LOW | scripts/run_skill_improvement_loop.py | 1031 | CODE | |
| LOW | scripts/run_skill_improvement_loop.py | 1060 | CODE | |
| LOW | scripts/validate_skills_index.py | 369 | CODE | |
| LOW | scripts/weekly_core_collect.py | 278 | CODE | |
| LOW | scripts/weekly_core_collect.py | 155 | CODE | |
| LOW | scripts/hooks/check_no_absolute_paths.py | 26 | CODE | |
| LOW | scripts/dev/bootstrap_skills_index.py | 177 | CODE | |
| LOW | skills/kanchi-dividend-sop/scripts/event_scanner.py | 88 | CODE | |
| LOW | skills/kanchi-dividend-sop/scripts/payout_safety.py | 85 | CODE | |
| LOW | skills/kanchi-dividend-sop/scripts/build_sop_plan.py | 24 | CODE | |
| LOW | skills/kanchi-dividend-sop/scripts/dividend_basis.py | 132 | CODE | |
| LOW | …lls/kanchi-dividend-sop/scripts/build_entry_signals.py | 41 | CODE | |
| LOW | skills/exposure-coach/scripts/calculate_exposure.py | 53 | CODE | |
| LOW | skills/exposure-coach/scripts/calculate_exposure.py | 160 | CODE | |
| LOW | skills/exposure-coach/scripts/calculate_exposure.py | 224 | CODE | |
| LOW | skills/exposure-coach/scripts/calculate_exposure.py | 244 | CODE | |
| LOW | skills/exposure-coach/scripts/calculate_exposure.py | 309 | CODE | |
| LOW | skills/exposure-coach/scripts/calculate_exposure.py | 476 | CODE | |
| LOW | skills/macro-regime-detector/scripts/fmp_client.py | 146 | CODE | |
| LOW | skills/macro-regime-detector/scripts/fmp_client.py | 193 | CODE | |
| LOW | …ills/macro-regime-detector/scripts/report_generator.py | 18 | CODE | |
| LOW | …ills/macro-regime-detector/scripts/report_generator.py | 439 | CODE | |
| LOW | skills/macro-regime-detector/scripts/scorer.py | 484 | CODE | |
| LOW | skills/macro-regime-detector/scripts/scorer.py | 545 | CODE | |
| LOW | …tector/scripts/calculators/concentration_calculator.py | 33 | CODE | |
| LOW | …tector/scripts/calculators/concentration_calculator.py | 140 | CODE | |
| LOW | …detector/scripts/calculators/yield_curve_calculator.py | 246 | CODE | |
| LOW | …lls/macro-regime-detector/scripts/calculators/utils.py | 289 | CODE | |
| LOW | skills/position-sizer/scripts/position_sizer.py | 314 | CODE | |
| LOW | …lls/market-top-detector/scripts/market_top_detector.py | 142 | CODE | |
| 254 more matches not shown… | ||||
| 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/api/v3/earning_calendar?apikey=YOUR_API_KEY&from=2025-11-03&to=2025-11-09 | 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 | 190 | api_key = "YOUR_API_KEY" | CODE |
| HIGH⚡ | skills/earnings-calendar/references/fmp_api_guide.md | 256 | api_key = "YOUR_API_KEY" | CODE |
| HIGH⚡ | 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 | …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 | 95 | 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 | 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/generate_skill_docs.py | 13 | CODE | |
| LOW | scripts/run_skill_generation_pipeline.py | 8 | CODE | |
| LOW | scripts/ci_test_matrix.py | 4 | CODE | |
| LOW | scripts/generate_catalog_from_index.py | 20 | CODE | |
| LOW | scripts/generate_skillset_docs.py | 14 | CODE | |
| LOW | scripts/run_skill_improvement_loop.py | 9 | CODE | |
| LOW | scripts/generate_workflow_docs.py | 14 | 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/tests/test_fmp_client_truncate_contract.py | 12 | CODE | |
| LOW | scripts/tests/test_generate_skill_docs.py | 3 | CODE | |
| LOW | scripts/tests/test_generate_fmp_client.py | 3 | CODE | |
| LOW | scripts/tests/test_skill_improvement_loop.py | 3 | CODE | |
| LOW | scripts/tests/test_package_skills.py | 3 | CODE | |
| LOW | scripts/tests/test_fmp_client_shared_behavior.py | 10 | CODE | |
| LOW | scripts/tests/test_validate_skills_index.py | 7 | CODE | |
| LOW | scripts/tests/test_generate_catalog_from_index.py | 3 | CODE | |
| LOW | scripts/tests/test_validate_skillsets.py | 8 | CODE | |
| LOW | scripts/tests/test_weekly_core_collect.py | 1 | CODE | |
| LOW | scripts/tests/test_generate_workflow_docs.py | 7 | CODE | |
| LOW | …s/tests/test_check_package_drift_for_changed_skills.py | 3 | CODE | |
| LOW | scripts/tests/test_generate_skillset_docs.py | 7 | CODE | |
| LOW | scripts/tests/test_ci_test_matrix.py | 1 | CODE | |
| LOW | scripts/tests/test_skill_generation_pipeline.py | 3 | CODE | |
| LOW | scripts/dev/bootstrap_skills_index.py | 17 | CODE | |
| LOW | scripts/fmp_client/registry.py | 16 | CODE | |
| LOW | skills/kanchi-dividend-sop/scripts/event_scanner.py | 25 | CODE | |
| LOW | skills/kanchi-dividend-sop/scripts/payout_safety.py | 18 | CODE | |
| LOW | skills/kanchi-dividend-sop/scripts/thresholds.py | 12 | CODE | |
| LOW | skills/kanchi-dividend-sop/scripts/build_sop_plan.py | 4 | CODE | |
| LOW | skills/kanchi-dividend-sop/scripts/dividend_basis.py | 15 | CODE | |
| LOW | …lls/kanchi-dividend-sop/scripts/build_entry_signals.py | 4 | CODE | |
| LOW | skills/kanchi-dividend-sop/scripts/verdict.py | 13 | CODE | |
| LOW | skills/position-sizer/scripts/position_sizer.py | 8 | CODE | |
| LOW | skills/backtest-expert/scripts/evaluate_backtest.py | 15 | CODE | |
| LOW | skills/backtest-expert/scripts/tests/conftest.py | 3 | CODE | |
| LOW | …acktest-expert/scripts/tests/test_evaluate_backtest.py | 3 | CODE | |
| LOW | …ls/market-top-detector/scripts/calculators/__init__.py | 3 | CODE | |
| LOW | …ls/market-top-detector/scripts/calculators/__init__.py | 4 | CODE | |
| LOW | …ls/market-top-detector/scripts/calculators/__init__.py | 5 | CODE | |
| LOW | …ls/market-top-detector/scripts/calculators/__init__.py | 6 | CODE | |
| 155 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 | 1166 | ### Step 1: Run it | COMMENT |
| LOW⚡ | …macro-regime-detector/scripts/macro_regime_detector.py | 97 | # Step 1: Fetch Market Data (9 ETFs + Treasury rates = 10 API calls) | COMMENT |
| LOW⚡ | …macro-regime-detector/scripts/macro_regime_detector.py | 130 | # Step 2: Calculate 6 Components | COMMENT |
| LOW⚡ | …macro-regime-detector/scripts/macro_regime_detector.py | 187 | # Step 3: Composite Score & Regime Classification | COMMENT |
| LOW⚡ | …macro-regime-detector/scripts/macro_regime_detector.py | 232 | # Step 4: Generate Reports | COMMENT |
| LOW⚡ | …lls/market-top-detector/scripts/market_top_detector.py | 296 | # Step 1: Fetch shared data (indices, ETFs) | COMMENT |
| LOW⚡ | …lls/market-top-detector/scripts/market_top_detector.py | 379 | # Step 2: Calculate Components | COMMENT |
| LOW⚡ | …lls/market-top-detector/scripts/market_top_detector.py | 473 | # Step 3: Composite Score | COMMENT |
| LOW⚡ | …lls/market-top-detector/scripts/market_top_detector.py | 529 | # Step 4: Follow-Through Day Check | COMMENT |
| LOW⚡ | …lls/market-top-detector/scripts/market_top_detector.py | 539 | # Step 5: Historical Comparison & Scenarios | COMMENT |
| LOW⚡ | …lls/market-top-detector/scripts/market_top_detector.py | 552 | # 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 | 406 | # Step 1: Fetch earnings calendar | COMMENT |
| LOW⚡ | skills/earnings-calendar/scripts/fetch_earnings_fmp.py | 417 | # Step 2: Fetch company profiles | COMMENT |
| LOW⚡ | skills/earnings-calendar/scripts/fetch_earnings_fmp.py | 423 | # Step 3: Filter by market cap | COMMENT |
| LOW⚡ | skills/earnings-calendar/scripts/fetch_earnings_fmp.py | 433 | # Step 4: Process earnings data | COMMENT |
| LOW⚡ | skills/earnings-calendar/scripts/fetch_earnings_fmp.py | 438 | # 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 | 1004 | # Step 1: Get candidate list | COMMENT |
| LOW | …ue-dividend-screener/scripts/screen_dividend_stocks.py | 1261 | # 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 | 553 | # Step 0: Load theme configuration (YAML or inline fallback) | COMMENT |
| LOW⚡ | skills/theme-detector/scripts/theme_detector.py | 586 | # Step 1: Fetch FINVIZ industry performance | COMMENT |
| LOW⚡ | skills/theme-detector/scripts/theme_detector.py | 603 | # Step 2: Rank industries by momentum | COMMENT |
| LOW⚡ | skills/theme-detector/scripts/theme_detector.py | 614 | # Step 3: Classify themes | COMMENT |
| LOW⚡ | skills/theme-detector/scripts/theme_detector.py | 708 | # Step 4: Collect all stock symbols for batch download | COMMENT |
| LOW⚡ | skills/theme-detector/scripts/theme_detector.py | 757 | # Step 5: Batch fetch stock metrics (yfinance) | COMMENT |
| LOW⚡ | skills/theme-detector/scripts/theme_detector.py | 771 | # Step 6: Fetch ETF volume ratios for each theme's proxy ETFs | COMMENT |
| LOW⚡ | skills/theme-detector/scripts/theme_detector.py | 806 | # Step 7: Fetch uptrend-dashboard data | COMMENT |
| LOW⚡ | skills/theme-detector/scripts/theme_detector.py | 826 | # Step 8: Score each theme | COMMENT |
| LOW⚡ | skills/theme-detector/scripts/theme_detector.py | 1043 | # Step 9: Generate reports | COMMENT |
| 27 more matches not shown… | ||||
| 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 | …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 | …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/run_skill_improvement_loop.py | 898 | except Exception: | CODE |
| LOW | skills/macro-regime-detector/scripts/fmp_client.py | 332 | except Exception as e: | CODE |
| MEDIUM | skills/position-sizer/scripts/position_sizer.py | 495 | print(f"Error: {e}", file=sys.stderr) | CODE |
| LOW | skills/market-top-detector/scripts/fmp_client.py | 403 | except Exception as e: | CODE |
| LOW | skills/trader-memory-core/scripts/thesis_review.py | 58 | except Exception as e: | CODE |
| LOW | skills/trader-memory-core/scripts/thesis_store.py | 1385 | except Exception as e: | CODE |
| LOW | skills/trader-memory-core/scripts/thesis_store.py | 1417 | except Exception: | CODE |
| LOW | skills/earnings-calendar/references/fmp_api_guide.md | 372 | except Exception as e: | CODE |
| LOW | skills/earnings-calendar/scripts/fetch_earnings_fmp.py | 96 | except Exception as e: | CODE |
| LOW | skills/earnings-calendar/scripts/fetch_earnings_fmp.py | 129 | except Exception as e: | CODE |
| LOW | skills/earnings-calendar/scripts/generate_report.py | 72 | except Exception as e: | CODE |
| LOW | …ge-strategy-reviewer/scripts/review_strategy_drafts.py | 565 | except Exception as exc: | CODE |
| MEDIUM | …tion-failure-analyzer/scripts/analyze_news_reaction.py | 779 | print(f"Error: {error}", file=sys.stderr) | CODE |
| MEDIUM | …tion-failure-analyzer/scripts/analyze_news_reaction.py | 845 | print(f"Error: {error}", file=sys.stderr) | CODE |
| MEDIUM | …tion-failure-analyzer/scripts/analyze_news_reaction.py | 879 | print("Error: FMP API key is required. Set FMP_API_KEY or use --api-key.", file=sys.stderr) | CODE |
| MEDIUM | …ls/edge-signal-aggregator/scripts/aggregate_signals.py | 1092 | print("Error: At least one input source must be provided", file=sys.stderr) | CODE |
| MEDIUM | …lls/data-quality-checker/scripts/check_data_quality.py | 766 | print(f"Error: File not found: {args.file}", file=sys.stderr) | CODE |
| MEDIUM | …lls/data-quality-checker/scripts/check_data_quality.py | 778 | print(f"Error: Invalid date format: {args.as_of}", file=sys.stderr) | CODE |
| LOW | …ullback-screener/scripts/screen_dividend_growth_rsi.py | 176 | except Exception as e: | CODE |
| LOW | …ullback-screener/scripts/screen_dividend_growth_rsi.py | 300 | except Exception: | CODE |
| LOW⚡ | …eener/scripts/tests/test_screen_dividend_growth_rsi.py | 98 | except Exception: | CODE |
| LOW⚡ | …eener/scripts/tests/test_screen_dividend_growth_rsi.py | 131 | except Exception: | CODE |
| LOW⚡ | …eener/scripts/tests/test_screen_dividend_growth_rsi.py | 145 | except Exception: | CODE |
| LOW | …eener/scripts/tests/test_screen_dividend_growth_rsi.py | 74 | except Exception: | CODE |
| LOW | …eener/scripts/tests/test_screen_dividend_growth_rsi.py | 85 | except Exception: | CODE |
| LOW | …s/portfolio-manager/scripts/check_alpaca_connection.py | 218 | except Exception as e: | CODE |
| LOW | …adth-chart-analyst/scripts/extract_chart_right_edge.py | 100 | except Exception: | CODE |
| LOW | …adth-chart-analyst/scripts/extract_chart_right_edge.py | 165 | except Exception as e: | CODE |
| MEDIUM | …adth-chart-analyst/scripts/extract_chart_right_edge.py | 211 | print(f"Error: Directory not found: {args.dir}", file=sys.stderr) | STRING |
| MEDIUM | …adth-chart-analyst/scripts/extract_chart_right_edge.py | 230 | print(f"Error: File not found: {args.image_path}", file=sys.stderr) | STRING |
| MEDIUM | …/breadth-chart-analyst/scripts/detect_uptrend_ratio.py | 787 | print(f"Error: File not found: {args.image_path}", file=sys.stderr) | STRING |
| MEDIUM⚡ | …/breadth-chart-analyst/scripts/detect_uptrend_ratio.py | 804 | print(f"Error: {str(e)}", file=sys.stderr) | STRING |
| LOW⚡ | …/breadth-chart-analyst/scripts/detect_uptrend_ratio.py | 806 | except Exception as e: | STRING |
| 76 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 | …breakout-trade-planner/scripts/plan_breakout_trades.py | 344 | f"valid_vcp && state=Pre-breakout && risk_worst={risk_pct_worst}% <= {MAX_RISK_PCT}%" | CODE |
| 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 | 363 | shape (top-level list/string/null, `markets`/`skipped` not lists, list | STRING |
| HIGH | …tion-failure-analyzer/scripts/analyze_news_reaction.py | 848 | # (top-level list/string/null, or "events" not a list at all) must | COMMENT |
| 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 | …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 | …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 | 366 | "earnings_within_days": int|null, | STRING |
| HIGH⚡ | …abolic-short-trade-planner/scripts/screen_parabolic.py | 367 | "last_earnings_date": "YYYY-MM-DD"|null, | STRING |
| HIGH⚡ | …abolic-short-trade-planner/scripts/screen_parabolic.py | 368 | "next_earnings_date": "YYYY-MM-DD"|null, | STRING |
| HIGH⚡ | …abolic-short-trade-planner/scripts/screen_parabolic.py | 369 | "trading_days_since_earnings": int|null, | STRING |
| HIGH⚡ | …abolic-short-trade-planner/scripts/screen_parabolic.py | 370 | "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 | 453 | 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 | 514 | 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 | 904 | 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 | 1118 | 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 | 1289 | 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 | scripts/tests/test_generate_skill_docs.py | 383 | # Create a skill that matches HAND_WRITTEN | STRING |
| MEDIUM | scripts/tests/test_generate_skill_docs.py | 461 | # 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 | 641 | # 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 | …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 | 316 | # Check if it's a market basket or multi-ticker | COMMENT |
| LOW | skills/earnings-calendar/scripts/fetch_earnings_fmp.py | 80 | # 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 | 79 | # 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 | 1072 | # Check if rate limit reached | COMMENT |
| LOW | …ue-dividend-screener/scripts/screen_dividend_stocks.py | 1182 | # 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_weekly_core_collect.py | 13 | DUMMY_FMP_VALUE = "placeholder" | CODE |
| LOW | …nings-calendar/scripts/tests/test_earnings_calendar.py | 26 | return FMPEarningsCalendar(api_key="dummy-key") | 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 |
|---|---|---|---|---|
| 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 | 380 | 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 | 43 | 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 | 23 | logger = logging.getLogger(__name__) | CODE |
| LOW | skills/trader-memory-core/scripts/thesis_store.py | 413 | 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 |
| 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 | 38 | 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 | 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 | …de-analyzer/scripts/calculators/gap_size_calculator.py | 152 | 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 |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| 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/ci.yml | 121 | # Default mode is what pre-commit runs on each commit. | COMMENT |
| LOW | .github/workflows/ci.yml | 141 | - name: Validate skillsets | 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 | …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 | …e-analyzer/scripts/tests/test_analyze_news_reaction.py | 521 | 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 | …cot-contrarian-detector/scripts/screen_cot_crowding.py | 81 | "BT", | 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 | 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 | 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 | 258 | """Print comprehensive analysis report""" | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | docs/ja/skillsets.md | 28 | | [`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 | 280 | timeframe: daily # daily | weekly | event-driven | research | CODE |
| MEDIUM | docs/en/skillsets.md | 26 | | [`trade-memory`](#trade-memory) — Trade Memory | event-driven | no-api-basic | beginner | `trade-memory-loop`, `monthl | CODE |
| MEDIUM⚡ | …lls/data-quality-checker/scripts/check_data_quality.py | 673 | # Main orchestration | COMMENT |
| 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 |