[{"data":1,"prerenderedAt":855},["ShallowReactive",2],{"navigation_docs":3,"trending-repo-tradermonty\u002Fclaude-trading-skills":249,"page-views-\u002Ftrending\u002Ftradermonty\u002Fclaude-trading-skills":853},[4,29,104,124,194],{"title":5,"icon":6,"path":7,"stem":8,"children":9},"Start",false,"\u002Fstart","1.start",[10,14,19,24],{"title":11,"path":7,"stem":12,"icon":13},"What jscpd finds","1.start\u002Findex","i-lucide-house",{"title":15,"path":16,"stem":17,"icon":18},"Installation","\u002Fstart\u002Finstallation","1.start\u002F2.installation","i-lucide-download",{"title":20,"path":21,"stem":22,"icon":23},"Quickstart","\u002Fstart\u002Fquickstart","1.start\u002F3.quickstart","i-lucide-rocket",{"title":25,"path":26,"stem":27,"icon":28},"Configuration basics","\u002Fstart\u002Fconfiguration","1.start\u002F4.configuration","i-lucide-settings-2",{"title":30,"icon":6,"path":31,"stem":32,"children":33,"page":6},"Guides","\u002Fguides","2.guides",[34,39,44,49,54,59,64,69,74,79,84,89,94,99],{"title":35,"path":36,"stem":37,"icon":38},"Use jscpd in CI","\u002Fguides\u002Fci","2.guides\u002F01.ci","i-lucide-github",{"title":40,"path":41,"stem":42,"icon":43},"Pre-commit hooks","\u002Fguides\u002Fpre-commit","2.guides\u002F02.pre-commit","i-lucide-git-commit",{"title":45,"path":46,"stem":47,"icon":48},"Fail only on new duplication","\u002Fguides\u002Fbaseline","2.guides\u002F03.baseline","i-lucide-git-compare",{"title":50,"path":51,"stem":52,"icon":53},"Monorepos","\u002Fguides\u002Fmonorepos","2.guides\u002F04.monorepos","i-lucide-folder-tree",{"title":55,"path":56,"stem":57,"icon":58},"Cross-format detection","\u002Fguides\u002Fcross-format","2.guides\u002F05.cross-format","i-lucide-layers",{"title":60,"path":61,"stem":62,"icon":63},"Agents","\u002Fguides\u002Fagents","2.guides\u002F06.agents","i-lucide-cpu",{"title":65,"path":66,"stem":67,"icon":68},"Editors","\u002Fguides\u002Feditors","2.guides\u002F07.editors","i-lucide-code",{"title":70,"path":71,"stem":72,"icon":73},"Duplication over git history","\u002Fguides\u002Fhistory","2.guides\u002F08.history","i-lucide-chart-no-axes-combined",{"title":75,"path":76,"stem":77,"icon":78},"Dashboard and health score","\u002Fguides\u002Fdashboard","2.guides\u002F09.dashboard","i-lucide-layout-dashboard",{"title":80,"path":81,"stem":82,"icon":83},"Dead code","\u002Fguides\u002Fdead-code","2.guides\u002F10.dead-code","i-lucide-ghost",{"title":85,"path":86,"stem":87,"icon":88},"Comparing two codebases","\u002Fguides\u002Fcompare","2.guides\u002F11.compare","i-lucide-git-compare-arrows",{"title":90,"path":91,"stem":92,"icon":93},"Semantic clones","\u002Fguides\u002Fsemantic-clones","2.guides\u002F12.semantic-clones","i-lucide-brain-circuit",{"title":95,"path":96,"stem":97,"icon":98},"Similar functions","\u002Fguides\u002Fsimilarity","2.guides\u002F13.similarity","i-lucide-list-tree",{"title":100,"path":101,"stem":102,"icon":103},"Boundaries","\u002Fguides\u002Fboundaries","2.guides\u002F14.boundaries","i-lucide-fence",{"title":105,"icon":6,"path":106,"stem":107,"children":108,"page":6},"Concepts","\u002Fconcepts","3.concepts",[109,114,119],{"title":110,"path":111,"stem":112,"icon":113},"Types of code clones","\u002Fconcepts\u002Fclone-types","3.concepts\u002F1.clone-types","i-lucide-copy",{"title":115,"path":116,"stem":117,"icon":118},"How detection works","\u002Fconcepts\u002Fhow-detection-works","3.concepts\u002F2.how-detection-works","i-lucide-scan-search",{"title":120,"path":121,"stem":122,"icon":123},"The health score","\u002Fconcepts\u002Fhealth-score","3.concepts\u002F3.health-score","i-lucide-heart-pulse",{"title":125,"icon":6,"path":126,"stem":127,"children":128,"page":6},"Reference","\u002Freference","4.reference",[129,134,139,144,181,186,190],{"title":130,"path":131,"stem":132,"icon":133},"CLI options","\u002Freference\u002Fcli","4.reference\u002F1.cli","i-lucide-terminal",{"title":135,"path":136,"stem":137,"icon":138},"The config file","\u002Freference\u002Fconfig-file","4.reference\u002F2.config-file","i-lucide-settings",{"title":140,"path":141,"stem":142,"icon":143},"Exit codes","\u002Freference\u002Fexit-codes","4.reference\u002F3.exit-codes","i-lucide-log-out",{"title":145,"icon":6,"path":146,"stem":147,"children":148},"Reporters","\u002Freference\u002Freporters","4.reference\u002F4.reporters\u002Findex",[149,151,156,161,166,171,176],{"title":145,"path":146,"stem":147,"icon":150},"i-lucide-file-chart-column",{"title":152,"path":153,"stem":154,"icon":155},"HTML reporter","\u002Freference\u002Freporters\u002Fhtml","4.reference\u002F4.reporters\u002F2.html","i-lucide-file-code",{"title":157,"path":158,"stem":159,"icon":160},"JSON reporter","\u002Freference\u002Freporters\u002Fjson","4.reference\u002F4.reporters\u002F3.json","i-lucide-braces",{"title":162,"path":163,"stem":164,"icon":165},"Badge reporter","\u002Freference\u002Freporters\u002Fbadge","4.reference\u002F4.reporters\u002F4.badge","i-lucide-award",{"title":167,"path":168,"stem":169,"icon":170},"SARIF reporter","\u002Freference\u002Freporters\u002Fsarif","4.reference\u002F4.reporters\u002F5.sarif","i-lucide-shield-check",{"title":172,"path":173,"stem":174,"icon":175},"CodeClimate reporter","\u002Freference\u002Freporters\u002Fcodeclimate","4.reference\u002F4.reporters\u002F6.codeclimate","i-lucide-flag-triangle-right",{"title":177,"path":178,"stem":179,"icon":180},"OpenMetrics reporter","\u002Freference\u002Freporters\u002Fopenmetrics","4.reference\u002F4.reporters\u002F7.openmetrics","i-lucide-activity",{"title":182,"path":183,"stem":184,"icon":185},"Supported formats","\u002Freference\u002Fsupported-formats","4.reference\u002F5.supported-formats","i-lucide-languages",{"title":187,"path":188,"stem":189,"icon":38},"GitHub Action","\u002Freference\u002Fgithub-action","4.reference\u002F6.github-action",{"title":191,"path":192,"stem":193,"icon":68},"Rust crates","\u002Freference\u002Frust-crates","4.reference\u002F7.rust-crates",{"title":195,"icon":6,"path":196,"stem":197,"children":198,"page":6},"Project","\u002Fproject","5.project",[199,204,209,214,239,244],{"title":200,"path":201,"stem":202,"icon":203},"Changelog","\u002Fproject\u002Fchangelog","5.project\u002F1.changelog","i-lucide-scroll-text",{"title":205,"path":206,"stem":207,"icon":208},"Migrating from v4 to v5","\u002Fproject\u002Fmigration","5.project\u002F2.migration","i-lucide-arrow-right-left",{"title":210,"path":211,"stem":212,"icon":213},"jscpd v4 (TypeScript)","\u002Fproject\u002Fv4","5.project\u002F3.v4","i-simple-icons-typescript",{"title":215,"icon":6,"path":216,"stem":217,"children":218},"Benchmarks","\u002Fproject\u002Fbenchmarks","5.project\u002F4.benchmarks\u002Findex",[219,221,226,230,235],{"title":215,"path":216,"stem":217,"icon":220},"i-lucide-gauge",{"title":222,"path":223,"stem":224,"icon":225},"Detection Speed","\u002Fproject\u002Fbenchmarks\u002Fdetection-speed","5.project\u002F4.benchmarks\u002F2.detection-speed","i-lucide-zap",{"title":227,"path":228,"stem":229,"icon":58},"Multi-Format Detection","\u002Fproject\u002Fbenchmarks\u002Fcross-format","5.project\u002F4.benchmarks\u002F3.cross-format",{"title":231,"path":232,"stem":233,"icon":234},"AI Token Efficiency","\u002Fproject\u002Fbenchmarks\u002Fai-token-efficiency","5.project\u002F4.benchmarks\u002F4.ai-token-efficiency","i-lucide-sparkles",{"title":236,"path":237,"stem":238,"icon":93},"Embedding Models","\u002Fproject\u002Fbenchmarks\u002Fembedding-models","5.project\u002F4.benchmarks\u002F5.embedding-models",{"title":240,"path":241,"stem":242,"icon":243},"Research","\u002Fproject\u002Fresearch","5.project\u002F5.research","i-lucide-graduation-cap",{"title":245,"path":246,"stem":247,"icon":248},"Articles","\u002Fproject\u002Farticles","5.project\u002F6.articles","i-lucide-newspaper",{"name":250,"url":251,"appearances":252,"latest":268},"tradermonty\u002Fclaude-trading-skills","https:\u002F\u002Fgithub.com\u002Ftradermonty\u002Fclaude-trading-skills",[253],{"date":254,"rank":255,"stars":256,"starsToday":257,"headSha":258,"sources":259,"lines":260,"clones":261,"duplicatedLines":262,"percentage":263,"codePercentage":264,"codeSources":265,"healthScore":266,"healthGrade":267},"2026-11-14",6,4272,69,"3bd4b7a2c7329ffb5efef95db2e53d1125b3dc40",2516,529950,2559,74015,13.97,4.5,399,55,"C",{"date":254,"generatedAt":269,"name":250,"url":251,"description":270,"language":271,"stars":256,"starsToday":257,"defaultBranch":272,"headSha":258,"durationMs":273,"total":274,"formats":278,"topClones":342,"code":511,"health":731,"complexity":761,"deadCode":812},"2026-11-14T05:21:34.109Z","Claude Code skills for equity investors and traders — market analysis, technical charting, economic calendars, screeners, and trading strategy development.","Python","main",2187,{"sources":259,"lines":260,"tokens":275,"clones":261,"duplicatedLines":262,"duplicatedTokens":276,"percentage":263,"percentageTokens":277},3349534,420864,12.56,[279,286,293,300,307,314,321,328,335,339],{"format":280,"sources":281,"lines":282,"clones":283,"duplicatedLines":284,"percentage":285},"python",963,333647,1179,32691,9.8,{"format":287,"sources":288,"lines":289,"clones":290,"duplicatedLines":291,"percentage":292},"markdown",657,129373,798,22707,17.55,{"format":294,"sources":295,"lines":296,"clones":297,"duplicatedLines":298,"percentage":299},"json",272,42935,303,13911,32.4,{"format":301,"sources":302,"lines":303,"clones":304,"duplicatedLines":305,"percentage":306},"bash",223,4517,134,1643,36.37,{"format":308,"sources":309,"lines":310,"clones":311,"duplicatedLines":312,"percentage":313},"yaml",219,13459,92,1947,14.47,{"format":315,"sources":316,"lines":317,"clones":318,"duplicatedLines":319,"percentage":320},"text",160,4902,38,965,19.69,{"format":322,"sources":323,"lines":324,"clones":325,"duplicatedLines":326,"percentage":327},"markup",7,603,14,131,21.72,{"format":329,"sources":330,"lines":331,"clones":332,"duplicatedLines":333,"percentage":334},"mermaid",3,98,1,20,20.41,{"format":336,"sources":332,"lines":337,"clones":338,"duplicatedLines":338,"percentage":338},"toml",185,0,{"format":340,"sources":332,"lines":341,"clones":338,"duplicatedLines":338,"percentage":338},"scss",158,[343,378,403,431,449,458,466,482,494,502],{"format":280,"lines":344,"tokens":345,"first":346,"others":348,"copies":365,"excerpt":366,"kind":377},319,1779,{"name":347,"start":332,"end":344},"examples\u002Fweekly-trade-strategy\u002Fskills\u002Fmarket-environment-analysis\u002Fscripts\u002F_market_calendar.py",[349,351,353,355,357,359,361,363],{"name":350,"start":332,"end":344},"skills\u002Fbreakout-trade-planner\u002Fscripts\u002F_market_calendar.py",{"name":352,"start":332,"end":344},"skills\u002Fdrawdown-circuit-breaker\u002Fscripts\u002F_market_calendar.py",{"name":354,"start":332,"end":344},"skills\u002Fearnings-trade-analyzer\u002Fscripts\u002F_market_calendar.py",{"name":356,"start":332,"end":344},"skills\u002Fmarket-environment-analysis\u002Fscripts\u002F_market_calendar.py",{"name":358,"start":332,"end":344},"skills\u002Fmarket-top-detector\u002Fscripts\u002F_market_calendar.py",{"name":360,"start":332,"end":344},"skills\u002Fparabolic-short-trade-planner\u002Fscripts\u002F_market_calendar.py",{"name":362,"start":332,"end":344},"skills\u002Fstockbee-momentum-burst-screener\u002Fscripts\u002F_market_calendar.py",{"name":364,"start":332,"end":344},"skills\u002Ftheme-detector\u002Fscripts\u002F_market_calendar.py",9,{"lines":367,"total":344},[368,369,370,371,372,373,374,375,376,371],"# GENERATED by scripts\u002Fgenerate_market_calendar.py — do not edit.","# Source of truth: scripts\u002Fmarket_calendar\u002F and config\u002Fmarket-calendar-dependency.yaml.","\"\"\"Shared exchange-calendar and timezone contract for cash-equity skills.","","The module is vendored into each standalone skill by","``scripts\u002Fgenerate_market_calendar.py``. Runtime code must not read repository","configuration: packaged skills contain this self-contained module plus an exact","runtime dependency declaration.","\"\"\"","docs",{"format":280,"lines":379,"tokens":380,"first":381,"others":385,"copies":392,"excerpt":393,"kind":402},430,2503,{"name":382,"start":383,"end":384},"skills\u002Fstockbee-20pct-study\u002Fscripts\u002Ffmp_client.py",8,437,[386,388,390],{"name":387,"start":383,"end":384},"skills\u002Fstockbee-episodic-pivot-analyzer\u002Fscripts\u002Ffmp_client.py",{"name":389,"start":383,"end":384},"skills\u002Fstockbee-exhaustion-hammer-screener\u002Fscripts\u002Ffmp_client.py",{"name":391,"start":383,"end":384},"skills\u002Fstockbee-setup-fluency-trainer\u002Fscripts\u002Ffmp_client.py",4,{"lines":394,"total":379},[395,371,396,397,398,399,400,376,371,401],"Provides rate-limited access to Financial Modeling Prep API endpoints.","Features:","- Rate limiting (0.3s between requests)","- Automatic retry on 429 errors","- Session caching for duplicate requests","- Stable-only screener\u002FEOD\u002Fquote primitives for stockbee adapters","import os","code",{"format":280,"lines":404,"tokens":405,"first":406,"others":408,"copies":383,"excerpt":423,"kind":430},137,960,{"name":407,"start":332,"end":404},"skills\u002Fbreakout-trade-planner\u002Fscripts\u002Ftests\u002Ftest_market_calendar_contract.py",[409,411,413,415,417,419,421],{"name":410,"start":332,"end":404},"skills\u002Fdrawdown-circuit-breaker\u002Fscripts\u002Ftests\u002Ftest_market_calendar_contract.py",{"name":412,"start":332,"end":404},"skills\u002Fearnings-trade-analyzer\u002Fscripts\u002Ftests\u002Ftest_market_calendar_contract.py",{"name":414,"start":332,"end":404},"skills\u002Fmarket-environment-analysis\u002Fscripts\u002Ftests\u002Ftest_market_calendar_contract.py",{"name":416,"start":332,"end":404},"skills\u002Fmarket-top-detector\u002Fscripts\u002Ftests\u002Ftest_market_calendar_contract.py",{"name":418,"start":332,"end":404},"skills\u002Fparabolic-short-trade-planner\u002Fscripts\u002Ftests\u002Ftest_market_calendar_contract.py",{"name":420,"start":332,"end":404},"skills\u002Fstockbee-momentum-burst-screener\u002Fscripts\u002Ftests\u002Ftest_market_calendar_contract.py",{"name":422,"start":332,"end":404},"skills\u002Ftheme-detector\u002Fscripts\u002Ftests\u002Ftest_market_calendar_contract.py",{"lines":424,"total":404},[368,369,425,371,426,427,371,428,429,371],"\"\"\"Generated contract tests for the vendored exchange calendar.\"\"\"","from datetime import date, datetime","from zoneinfo import ZoneInfo","import _market_calendar as calendar","import pytest","tests",{"format":280,"lines":432,"tokens":433,"first":434,"others":438,"copies":392,"kind":402},305,1855,{"name":435,"start":436,"end":437},"skills\u002Fcot-contrarian-detector\u002Fscripts\u002Ffmp_client.py",67,371,[439,443,447],{"name":440,"start":441,"end":442},"skills\u002Fearnings-calendar\u002Fscripts\u002Ffmp_client.py",73,377,{"name":444,"start":445,"end":446},"skills\u002Feconomic-calendar-fetcher\u002Fscripts\u002Ffmp_client.py",66,370,{"name":448,"start":436,"end":437},"skills\u002Finstitutional-flow-tracker\u002Fscripts\u002Ffmp_client.py",{"format":287,"lines":450,"tokens":451,"first":452,"others":454,"copies":457,"kind":377},590,5086,{"name":453,"start":332,"end":450},"examples\u002Fweekly-trade-strategy\u002Fskills\u002Fbreadth-chart-analyst\u002Freferences\u002Fbreadth_chart_methodology.md",[455],{"name":456,"start":332,"end":450},"skills\u002Fbreadth-chart-analyst\u002Freferences\u002Fbreadth_chart_methodology.md",2,{"format":287,"lines":459,"tokens":460,"first":461,"others":463,"copies":457,"kind":377},558,4505,{"name":462,"start":332,"end":459},"examples\u002Fweekly-trade-strategy\u002Fskills\u002Fbreadth-chart-analyst\u002Fassets\u002Fbreadth_analysis_template.md",[464],{"name":465,"start":332,"end":459},"skills\u002Fbreadth-chart-analyst\u002Fassets\u002Fbreadth_analysis_template.md",{"format":280,"lines":467,"tokens":468,"first":469,"others":471,"copies":255,"kind":402},128,839,{"name":470,"start":332,"end":467},"skills\u002Fearnings-calendar\u002Fscripts\u002F_fmp_compat.py",[472,474,476,478,480],{"name":473,"start":332,"end":467},"skills\u002Fearnings-trade-analyzer\u002Fscripts\u002F_fmp_compat.py",{"name":475,"start":332,"end":467},"skills\u002Fibd-distribution-day-monitor\u002Fscripts\u002F_fmp_compat.py",{"name":477,"start":332,"end":467},"skills\u002Fparabolic-short-trade-planner\u002Fscripts\u002F_fmp_compat.py",{"name":479,"start":332,"end":467},"skills\u002Fpead-screener\u002Fscripts\u002F_fmp_compat.py",{"name":481,"start":332,"end":467},"skills\u002Fvcp-screener\u002Fscripts\u002F_fmp_compat.py",{"format":280,"lines":483,"tokens":484,"first":485,"others":489,"copies":457,"kind":402},524,3693,{"name":486,"start":487,"end":488},"scripts\u002Ffmp_client\u002Fspecials\u002Fgarp.py.tmpl",239,762,[490],{"name":491,"start":492,"end":493},"skills\u002Fus-undervalued-growth-screener\u002Fscripts\u002Ffmp_client.py",262,785,{"format":287,"lines":495,"tokens":496,"first":497,"others":499,"copies":457,"kind":377},499,3033,{"name":498,"start":332,"end":495},"examples\u002Fweekly-trade-strategy\u002Fskills\u002Fmarket-news-analyst\u002Freferences\u002Fgeopolitical_commodity_correlations.md",[500],{"name":501,"start":332,"end":495},"skills\u002Fmarket-news-analyst\u002Freferences\u002Fgeopolitical_commodity_correlations.md",{"format":280,"lines":503,"tokens":504,"first":505,"others":508,"copies":457,"kind":402},505,2854,{"name":506,"start":383,"end":507},"skills\u002Fparabolic-short-trade-planner\u002Fscripts\u002Ffmp_client.py",512,[509],{"name":510,"start":383,"end":507},"skills\u002Fvcp-screener\u002Fscripts\u002Ffmp_client.py",{"sources":265,"lines":512,"tokens":513,"clones":514,"duplicatedLines":515,"duplicatedTokens":516,"percentage":264,"percentageTokens":517,"formats":518,"topClones":528,"generated":720},156421,862598,400,7042,41690,4.83,[519,523],{"format":280,"sources":520,"lines":521,"clones":265,"duplicatedLines":522,"percentage":264},394,156138,7025,{"format":301,"sources":524,"lines":525,"clones":332,"duplicatedLines":526,"percentage":527},5,283,17,6.01,[529,547,565,613,643,657,665,689,700,710],{"format":280,"lines":467,"tokens":468,"first":530,"others":531,"copies":255,"excerpt":537,"kind":402},{"name":470,"start":332,"end":467},[532,533,534,535,536],{"name":473,"start":332,"end":467},{"name":475,"start":332,"end":467},{"name":477,"start":332,"end":467},{"name":479,"start":332,"end":467},{"name":481,"start":332,"end":467},{"lines":538,"total":467},[539,371,540,541,371,542,543,544,545,546],"\"\"\"FMP ``\u002Fapi\u002Fv3`` → ``\u002Fstable`` URL compatibility shim.","FMP retired the legacy ``\u002Fapi\u002Fv3\u002F`` surface on 2025-08-31; API keys issued","after that date receive ``403 \"Legacy Endpoint\"`` on every ``\u002Fapi\u002Fv3\u002F`` request.","This helper rewrites a legacy v3-style URL (and its params) to the ``\u002Fstable``","equivalent. It is applied ONLY at construction points that build hardcoded v3","URLs and are *not* part of an explicit stable→v3 fallback list. Methods that","already iterate a ``_FMP_ENDPOINTS`` stable→v3 table must NOT route through this","shim, or the v3 fallback entry would be rewritten back to stable and the",{"format":280,"lines":548,"tokens":549,"first":550,"others":552,"copies":330,"excerpt":557,"kind":402},215,1164,{"name":551,"start":332,"end":548},"skills\u002Fexposure-coach\u002Fscripts\u002Fprovenance_contract.py",[553,555],{"name":554,"start":332,"end":548},"skills\u002Fmarket-breadth-analyzer\u002Fscripts\u002Fprovenance_contract.py",{"name":556,"start":332,"end":548},"skills\u002Fuptrend-analyzer\u002Fscripts\u002Fprovenance_contract.py",{"lines":558,"total":548},[559,371,560,561,376,371,562,371,563,564],"\"\"\"Standalone common schema 1.0 and opt-in market handoff policy.","Vendored identically in the three market-regime skills. Keep schema validation","compatible with scripts\u002Fvalidate_provenance.py; strict policy is separate.","from __future__ import annotations","from datetime import date, datetime, timedelta","from typing import Any",{"format":280,"lines":566,"tokens":567,"first":568,"others":572,"copies":526,"excerpt":597,"excerptSecond":609,"kind":402},10,70,{"name":569,"start":570,"end":571},"scripts\u002Fworkflow_replay_pkg\u002Fsteps_earnings.py",54,63,[573,576,579,582,586,590,592,595],{"name":569,"start":574,"end":575},111,120,{"name":569,"start":577,"end":578},167,176,{"name":569,"start":580,"end":581},241,250,{"name":583,"start":584,"end":585},"scripts\u002Fworkflow_replay_pkg\u002Fsteps_kanchi.py",116,125,{"name":587,"start":588,"end":589},"scripts\u002Fworkflow_replay_pkg\u002Fsteps_monthly.py",161,170,{"name":587,"start":591,"end":442},368,{"name":587,"start":593,"end":594},425,434,{"name":587,"start":596,"end":503},496,{"lines":598,"total":566},[599,600,601,602,603,604,605,606,607,608],"def _earnings_analyze(","    repo_root: Path,","    spec: Mapping[str, Any],","    step: Mapping[str, Any],","    inputs: Mapping[str, Path],","    consumed: Mapping[str, dict[str, Any]],","    work: Path,","    stage: Path,",") -> dict[str, dict[str, Any]]:","    if consumed:",{"lines":610,"total":566},[611,600,601,602,603,604,605,606,607,612],"def _earnings_pead(","    if set(consumed) != {\"earnings_trade_analysis\"}:",{"format":280,"lines":365,"tokens":257,"first":614,"others":616,"copies":526,"kind":402},{"name":569,"start":570,"end":615},62,[617,620,623,626,630,632,636,640],{"name":569,"start":618,"end":619},287,295,{"name":569,"start":621,"end":622},408,416,{"name":583,"start":624,"end":625},406,414,{"name":627,"start":628,"end":629},"scripts\u002Fworkflow_replay_pkg\u002Fsteps_market_regime.py",300,308,{"name":587,"start":459,"end":631},566,{"name":633,"start":634,"end":635},"scripts\u002Fworkflow_replay_pkg\u002Fsteps_stockbee_fluency.py",85,93,{"name":637,"start":638,"end":639},"scripts\u002Fworkflow_replay_pkg\u002Fsteps_strategy_research.py",82,90,{"name":637,"start":641,"end":642},96,104,{"format":280,"lines":644,"tokens":520,"first":645,"others":649,"copies":330,"kind":402},51,{"name":646,"start":647,"end":648},"scripts\u002Ffmp_client\u002Fcore_template.py.tmpl",118,168,[650,654],{"name":651,"start":652,"end":653},"scripts\u002Ffmp_client\u002Fspecials\u002Fcanslim.py.tmpl",106,156,{"name":655,"start":311,"end":656},"scripts\u002Ffmp_client\u002Fspecials\u002Fmacro.py.tmpl",142,{"format":280,"lines":658,"tokens":659,"first":660,"others":662,"copies":457,"kind":402},124,738,{"name":651,"start":661,"end":653},33,[663],{"name":664,"start":661,"end":653},"scripts\u002Ffmp_client\u002Fspecials\u002Fmarket_top.py.tmpl",{"format":280,"lines":323,"tokens":666,"first":667,"others":669,"copies":688,"kind":402},56,{"name":569,"start":668,"end":575},114,[670,671,673,675,676,680,683,685],{"name":569,"start":589,"end":578},{"name":569,"start":672,"end":581},244,{"name":587,"start":674,"end":589},164,{"name":587,"start":437,"end":442},{"name":677,"start":678,"end":679},"scripts\u002Fworkflow_replay_pkg\u002Fsteps_multi_asset.py",321,327,{"name":677,"start":681,"end":682},422,428,{"name":637,"start":684,"end":653},150,{"name":686,"start":629,"end":687},"scripts\u002Fworkflow_replay_pkg\u002Fsteps_swing.py",314,11,{"format":280,"lines":257,"tokens":690,"first":691,"others":695,"copies":457,"kind":402},493,{"name":692,"start":693,"end":694},"skills\u002Fnews-reaction-failure-analyzer\u002Fscripts\u002Fanalyze_news_reaction.py",514,582,[696],{"name":697,"start":698,"end":699},"skills\u002Ftechnical-analyst\u002Fscripts\u002Fcheck_weekly_price_action.py",381,449,{"format":280,"lines":701,"tokens":702,"first":703,"others":706,"copies":457,"kind":402},31,481,{"name":692,"start":704,"end":705},102,132,[707],{"name":697,"start":708,"end":709},89,119,{"format":280,"lines":711,"tokens":712,"first":713,"others":716,"copies":457,"kind":402},87,450,{"name":714,"start":678,"end":715},"skills\u002Fdividend-growth-pullback-screener\u002Fscripts\u002Fscreen_dividend_growth_rsi.py",407,[717],{"name":718,"start":525,"end":719},"skills\u002Fvalue-dividend-screener\u002Fscripts\u002Fscreen_dividend_stocks.py",369,{"files":721,"minified":338,"sample":722},41,[723,347,350,407,724,435,725,352,410,440,354,726,412,444,727,728,448,729,730,356],"examples\u002Fweekly-trade-strategy\u002F.claude\u002Fskills\u002Fmarket-environment-analysis\u002Fscripts\u002F_market_calendar.py","skills\u002Fcanslim-screener\u002Fscripts\u002Ffmp_client.py","skills\u002Fdividend-growth-pullback-screener\u002Fscripts\u002Ffmp_client.py","skills\u002Fearnings-trade-analyzer\u002Fscripts\u002Ffmp_client.py","skills\u002Fftd-detector\u002Fscripts\u002Ffmp_client.py","skills\u002Fibd-distribution-day-monitor\u002Fscripts\u002Ffmp_client.py","skills\u002Fkanchi-dividend-sop\u002Fscripts\u002Ffmp_client.py","skills\u002Fmacro-regime-detector\u002Fscripts\u002Ffmp_client.py",{"score":266,"grade":267,"size":732,"dimensions":736},{"lines":733,"files":734,"class":735},332280,941,"L",[737,748,754],{"id":738,"source":739,"value":740,"adjusted":741,"lines":742,"halfLife":743,"formats":744,"excluded":745,"weight":332,"score":747},"duplication","jscpd",9.7,9.6,32184,8.5,[280,301],[322,315,746],"data",45.5,{"id":749,"source":739,"value":750,"adjusted":750,"lines":751,"halfLife":752,"coverage":753,"weight":332,"score":635},"dead-code",0.8,2544,7.5,100,{"id":755,"source":739,"value":756,"adjusted":757,"lines":758,"halfLife":759,"weight":332,"score":760},"complexity",67.5,67.2,224179,50,39.4,{"total":762,"mean":763,"files":764},47665,50.7,[765,770,775,780,785,790,794,799,804,808],{"path":766,"complexity":767,"lines":768,"bytes":769},"skills\u002Fus-undervalued-growth-screener\u002Fscripts\u002Fscreen_universe.py",542,2032,88673,{"path":771,"complexity":772,"lines":773,"bytes":774},"skills\u002Fus-undervalued-growth-screener\u002Fscripts\u002Fresearch_contract.py",538,1898,83455,{"path":776,"complexity":777,"lines":778,"bytes":779},"skills\u002Fstockbee-20pct-study\u002Fscripts\u002Frun_20pct_study.py",452,1839,69698,{"path":781,"complexity":782,"lines":783,"bytes":784},"skills\u002Fstockbee-exhaustion-hammer-screener\u002Fscripts\u002Fscreen_exhaustion_hammer.py",364,1361,50285,{"path":786,"complexity":787,"lines":788,"bytes":789},"skills\u002Fstockbee-episodic-pivot-analyzer\u002Fscripts\u002Fanalyze_ep.py",351,1251,45094,{"path":791,"complexity":787,"lines":792,"bytes":793},"skills\u002Fvcp-screener\u002Fscripts\u002Ftests\u002Ftest_vcp_screener.py",3490,138916,{"path":795,"complexity":796,"lines":797,"bytes":798},"skills\u002Fedge-signal-aggregator\u002Fscripts\u002Faggregate_signals.py",338,1649,64204,{"path":800,"complexity":801,"lines":802,"bytes":803},"skills\u002Fstockbee-momentum-burst-screener\u002Fscripts\u002Fscreen_momentum_burst.py",337,1240,45140,{"path":805,"complexity":344,"lines":806,"bytes":807},"skills\u002Fmt5-robot-tester\u002Fscripts\u002Fmt5_batch_tester.py",1493,57870,{"path":809,"complexity":297,"lines":810,"bytes":811},"skills\u002Fresidual-edge-analyzer\u002Fscripts\u002Fanalyze_residual_edge.py",1285,50655,{"percentage":813,"findings":266,"files":814,"byCategory":815,"largest":826},0.77,975,[816,819,822,824],{"category":817,"count":818},"unused-file",18,{"category":820,"count":821},"unused-export",16,{"category":823,"count":821},"unused-symbol",{"category":825,"count":524},"unused-import",[827,828,831,834,837,842,844,846,849,851],{"category":817,"path":362,"name":371,"line":332,"lines":344},{"category":817,"path":829,"name":371,"line":332,"lines":830},"scripts\u002Fmarket_calendar\u002Fmarket_calendar.py",317,{"category":817,"path":832,"name":371,"line":332,"lines":833},"scripts\u002Fdev\u002Fgenerate_earnings_weekly_fixture.py",266,{"category":817,"path":835,"name":371,"line":332,"lines":836},"skills\u002Fparabolic-short-trade-planner\u002Fscripts\u002Fadapters\u002Falpaca_market_data_adapter.py",192,{"category":823,"path":838,"name":839,"line":840,"lines":841},"skills\u002Ftrader-memory-core\u002Fscripts\u002Fthesis_store_parts\u002Fpositions_futures.py","_finalize_futures_outcome",233,121,{"category":817,"path":843,"name":371,"line":332,"lines":642},"skills\u002Fparabolic-short-trade-planner\u002Fscripts\u002Fcalculators\u002Fparabolic_score_calculator.py",{"category":817,"path":845,"name":371,"line":332,"lines":642},"skills\u002Ftrader-memory-core\u002Fscripts\u002Ffmp_price_adapter.py",{"category":817,"path":847,"name":371,"line":332,"lines":848},"skills\u002Fparabolic-short-trade-planner\u002Fscripts\u002Fadapters\u002Falpaca_inventory_adapter.py",103,{"category":817,"path":850,"name":371,"line":332,"lines":641},"skills\u002Fparabolic-short-trade-planner\u002Fscripts\u002Fcalculators\u002Facceleration_calculator.py",{"category":817,"path":852,"name":371,"line":332,"lines":708},"skills\u002Fparabolic-short-trade-planner\u002Fscripts\u002Fadapters\u002Ffixture_market_data_adapter.py",{"\u002Ftrending\u002Ftradermonty\u002Fclaude-trading-skills":854},{"views":338,"visits":338},1794633810693]