{"version": "2.1.0", "$schema": "https://json.schemastore.org/sarif-2.1.0.json", "runs": [{"tool": {"driver": {"name": "Repobility", "informationUri": "https://repobility.com", "rules": [{"id": "scanner-5f952941bc8fc932", "name": "Possibly dead Python function: load_recent", "shortDescription": {"text": "Possibly dead Python function: load_recent"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-734ae53a9c172293", "name": "Possibly dead Python function: signal_label", "shortDescription": {"text": "Possibly dead Python function: signal_label"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-40ba5a80ee4ad40c", "name": "Possibly dead Python function: resample_1min_to_daily_sessions", "shortDescription": {"text": "Possibly dead Python function: resample_1min_to_daily_sessions"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-83408619ccda64a4", "name": "Possibly dead Python function: intraday_slice", "shortDescription": {"text": "Possibly dead Python function: intraday_slice"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-2ae0ca548d354ff1", "name": "Possibly dead Python function: strat_opening_spike_fade", "shortDescription": {"text": "Possibly dead Python function: strat_opening_spike_fade"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-ccc7866242123133", "name": "Possibly dead Python function: strat_lunch_reversal", "shortDescription": {"text": "Possibly dead Python function: strat_lunch_reversal"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-def778fe2d02bb32", "name": "Possibly dead Python function: strat_morning_afternoon", "shortDescription": {"text": "Possibly dead Python function: strat_morning_afternoon"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-8a8ecd6141ac06a9", "name": "Possibly dead Python function: strat_last_hour", "shortDescription": {"text": "Possibly dead Python function: strat_last_hour"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-df2f40b954d29cdc", "name": "Possibly dead Python function: strat_vwap_mr", "shortDescription": {"text": "Possibly dead Python function: strat_vwap_mr"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-837d472d8c93fe07", "name": "Possibly dead Python function: strat_intraday_z", "shortDescription": {"text": "Possibly dead Python function: strat_intraday_z"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-569817b1a254155a", "name": "Possibly dead Python function: next_jp", "shortDescription": {"text": "Possibly dead Python function: next_jp"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-4d0a69a9871abc56", "name": "Possibly dead Python function: session_index", "shortDescription": {"text": "Possibly dead Python function: session_index"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-0a34aae66533e896", "name": "Possibly dead Python function: hook", "shortDescription": {"text": "Possibly dead Python function: hook"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-b5d18faf025ba4f1", "name": "Possibly dead Python function: assign_regime", "shortDescription": {"text": "Possibly dead Python function: assign_regime"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-ee2efc431306cd73", "name": "Possibly dead Python function: qw", "shortDescription": {"text": "Possibly dead Python function: qw"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-62348ee79a0c8f53", "name": "Possibly dead Python function: qw", "shortDescription": {"text": "Possibly dead Python function: qw"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-f951930bc1b2f348", "name": "Possibly dead Python function: compute", "shortDescription": {"text": "Possibly dead Python function: compute"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-7548cfb324859da6", "name": "Possibly dead Python function: compute", "shortDescription": {"text": "Possibly dead Python function: compute"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-926ad8914a767c3a", "name": "Possibly dead Python function: compute", "shortDescription": {"text": "Possibly dead Python function: compute"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-20dcda0e326c2faf", "name": "Possibly dead Python function: build_p2_no_thresh", "shortDescription": {"text": "Possibly dead Python function: build_p2_no_thresh"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-33ac33f65cbd4233", "name": "Possibly dead Python function: build_p2b", "shortDescription": {"text": "Possibly dead Python function: build_p2b"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-c4fe648af03a84a3", "name": "Possibly dead Python function: analyze_dev_vs_rest", "shortDescription": {"text": "Possibly dead Python function: analyze_dev_vs_rest"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-428ece10a583b925", "name": "Possibly dead Python function: per_stock_condition", "shortDescription": {"text": "Possibly dead Python function: per_stock_condition"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-ef181b3f138b0e34", "name": "Possibly dead Python function: s_eneos", "shortDescription": {"text": "Possibly dead Python function: s_eneos"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-b3d621c5af72281f", "name": "Possibly dead Python function: s_vwap_morning", "shortDescription": {"text": "Possibly dead Python function: s_vwap_morning"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-af41d99c2f832c63", "name": "Possibly dead Python function: s_lasertec", "shortDescription": {"text": "Possibly dead Python function: s_lasertec"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-7959043b615c7bd6", "name": "Possibly dead Python function: s_bank", "shortDescription": {"text": "Possibly dead Python function: s_bank"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-9710c8d059e53154", "name": "No frontend routes/components detected", "shortDescription": {"text": "No frontend routes/components detected"}, "fullDescription": {"text": "No React/Vue/Next routes were found. This is fine for backend-only repos."}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-271c354a107fb788", "name": "Possible secret in analyses/20260422_nonferrous_semi_intraday/run_F3_sox_top5.py", "shortDescription": {"text": "Possible secret in analyses/20260422_nonferrous_semi_intraday/run_F3_sox_top5.py"}, "fullDescription": {"text": "Detected pattern matching password_literal. Rotate the credential and move to a secret manager."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "critical", "confidence": 1.0}}, {"id": "scanner-681905936f20daab", "name": "Possible secret in analyses/20260422_nonferrous_semi_intraday/run_F_sox_semi.py", "shortDescription": {"text": "Possible secret in analyses/20260422_nonferrous_semi_intraday/run_F_sox_semi.py"}, "fullDescription": {"text": "Detected pattern matching password_literal. Rotate the credential and move to a secret manager."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "critical", "confidence": 1.0}}, {"id": "scanner-b6af2d55ac3afd07", "name": "Possible secret in analyses/20260422_nonferrous_semi_intraday/run_F2_sox_fade.py", "shortDescription": {"text": "Possible secret in analyses/20260422_nonferrous_semi_intraday/run_F2_sox_fade.py"}, "fullDescription": {"text": "Detected pattern matching password_literal. Rotate the credential and move to a secret manager."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "critical", "confidence": 1.0}}, {"id": "scanner-83f4db9fa6d9eed0", "name": "Possible secret in analyses/20260422_pair_trading/run_volatility.py", "shortDescription": {"text": "Possible secret in analyses/20260422_pair_trading/run_volatility.py"}, "fullDescription": {"text": "Detected pattern matching password_literal. Rotate the credential and move to a secret manager."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "critical", "confidence": 1.0}}, {"id": "scanner-95756c2165dbfd23", "name": "Possible secret in analyses/20260422_pair_trading/run_basket.py", "shortDescription": {"text": "Possible secret in analyses/20260422_pair_trading/run_basket.py"}, "fullDescription": {"text": "Detected pattern matching password_literal. Rotate the credential and move to a secret manager."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "critical", "confidence": 1.0}}, {"id": "scanner-c6c05cdd199217d1", "name": "Possible secret in analyses/20260422_pair_trading/run_basket_variants.py", "shortDescription": {"text": "Possible secret in analyses/20260422_pair_trading/run_basket_variants.py"}, "fullDescription": {"text": "Detected pattern matching password_literal. Rotate the credential and move to a secret manager."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "critical", "confidence": 1.0}}, {"id": "scanner-84963a417d6ae520", "name": "Possible secret in analyses/20260422_pair_trading/run_portfolio.py", "shortDescription": {"text": "Possible secret in analyses/20260422_pair_trading/run_portfolio.py"}, "fullDescription": {"text": "Detected pattern matching password_literal. Rotate the credential and move to a secret manager."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "critical", "confidence": 1.0}}, {"id": "scanner-6bc820743ad9437d", "name": "Possible secret in analyses/20260422_pair_trading/run_wf_long.py", "shortDescription": {"text": "Possible secret in analyses/20260422_pair_trading/run_wf_long.py"}, "fullDescription": {"text": "Detected pattern matching password_literal. Rotate the credential and move to a secret manager."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "critical", "confidence": 1.0}}, {"id": "scanner-38a5ef00b7daae7b", "name": "Possible secret in analyses/20260422_pair_trading/run_filtered.py", "shortDescription": {"text": "Possible secret in analyses/20260422_pair_trading/run_filtered.py"}, "fullDescription": {"text": "Detected pattern matching password_literal. Rotate the credential and move to a secret manager."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "critical", "confidence": 1.0}}, {"id": "scanner-e7f965ebd4d637ce", "name": "Possible secret in analyses/20260422_sector_us_sensitivity/run.py", "shortDescription": {"text": "Possible secret in analyses/20260422_sector_us_sensitivity/run.py"}, "fullDescription": {"text": "Detected pattern matching password_literal. Rotate the credential and move to a secret manager."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "critical", "confidence": 1.0}}, {"id": "scanner-0000cfa7de843eb6", "name": "Possible secret in analyses/20260422_sox_short_oos/run.py", "shortDescription": {"text": "Possible secret in analyses/20260422_sox_short_oos/run.py"}, "fullDescription": {"text": "Detected pattern matching password_literal. Rotate the credential and move to a secret manager."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "critical", "confidence": 1.0}}, {"id": "scanner-6bbd56dab3b92fa3", "name": "Possible secret in analyses/20260422_us_jp_leadlag/run.py", "shortDescription": {"text": "Possible secret in analyses/20260422_us_jp_leadlag/run.py"}, "fullDescription": {"text": "Detected pattern matching password_literal. Rotate the credential and move to a secret manager."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "critical", "confidence": 1.0}}, {"id": "scanner-d38f11549f218323", "name": "Possible secret in analyses/20260613_taiwan_foreign_flow_jp_semis_leadlag/verify_sox_filter.py", "shortDescription": {"text": "Possible secret in analyses/20260613_taiwan_foreign_flow_jp_semis_leadlag/verify_sox_filter.py"}, "fullDescription": {"text": "Detected pattern matching password_literal. Rotate the credential and move to a secret manager."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "critical", "confidence": 1.0}}, {"id": "scanner-1e0d45c87ad9dfe1", "name": "Possible secret in analyses/20260603_sector_rotation_17/run.py", "shortDescription": {"text": "Possible secret in analyses/20260603_sector_rotation_17/run.py"}, "fullDescription": {"text": "Detected pattern matching password_literal. Rotate the credential and move to a secret manager."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "critical", "confidence": 1.0}}, {"id": "scanner-c56833c67e808211", "name": "Possible secret in analyses/_utils/check_earnings2.py", "shortDescription": {"text": "Possible secret in analyses/_utils/check_earnings2.py"}, "fullDescription": {"text": "Detected pattern matching password_literal. Rotate the credential and move to a secret manager."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "critical", "confidence": 1.0}}, {"id": "scanner-fd577cdebc61456f", "name": "Possible secret in analyses/_utils/check_earnings.py", "shortDescription": {"text": "Possible secret in analyses/_utils/check_earnings.py"}, "fullDescription": {"text": "Detected pattern matching password_literal. Rotate the credential and move to a secret manager."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "critical", "confidence": 1.0}}, {"id": "scanner-a956bc80055e626a", "name": "Possible secret in analyses/_utils/check_refinitiv_setup.py", "shortDescription": {"text": "Possible secret in analyses/_utils/check_refinitiv_setup.py"}, "fullDescription": {"text": "Detected pattern matching password_literal. Rotate the credential and move to a secret manager."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "critical", "confidence": 1.0}}, {"id": "scanner-6d192757dbcd089a", "name": "Possible secret in analyses/20260426_dayofweek_followup/check_symbols.py", "shortDescription": {"text": "Possible secret in analyses/20260426_dayofweek_followup/check_symbols.py"}, "fullDescription": {"text": "Detected pattern matching password_literal. Rotate the credential and move to a secret manager."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "critical", "confidence": 1.0}}, {"id": "scanner-686ac37de70b5ce9", "name": "Possible secret in analyses/20260509_strategy_validation/task1_sox.py", "shortDescription": {"text": "Possible secret in analyses/20260509_strategy_validation/task1_sox.py"}, "fullDescription": {"text": "Detected pattern matching password_literal. Rotate the credential and move to a secret manager."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "critical", "confidence": 1.0}}, {"id": "scanner-6d2f45af4ae9328a", "name": "Possible secret in analyses/20260509_strategy_validation/run.py", "shortDescription": {"text": "Possible secret in analyses/20260509_strategy_validation/run.py"}, "fullDescription": {"text": "Detected pattern matching password_literal. Rotate the credential and move to a secret manager."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "critical", "confidence": 1.0}}, {"id": "scanner-434ddf01cd4c6e09", "name": "Possible secret in analyses/20260601_lme_edge_recheck/probe_db.py", "shortDescription": {"text": "Possible secret in analyses/20260601_lme_edge_recheck/probe_db.py"}, "fullDescription": {"text": "Detected pattern matching password_literal. Rotate the credential and move to a secret manager."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "critical", "confidence": 1.0}}, {"id": "scanner-b5f2272791102ee1", "name": "Possible secret in analyses/20260422_semi_intraday_battery/run.py", "shortDescription": {"text": "Possible secret in analyses/20260422_semi_intraday_battery/run.py"}, "fullDescription": {"text": "Detected pattern matching password_literal. Rotate the credential and move to a secret manager."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "critical", "confidence": 1.0}}, {"id": "scanner-d607572e7b7f4e1c", "name": "Possible secret in strategies/_archive/sox_overnight_short/signal_check.py", "shortDescription": {"text": "Possible secret in strategies/_archive/sox_overnight_short/signal_check.py"}, "fullDescription": {"text": "Detected pattern matching password_literal. Rotate the credential and move to a secret manager."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "critical", "confidence": 1.0}}, {"id": "scanner-f30c471d0d12ac76", "name": "Possible secret in strategies/_archive/semi_sox_fade/signal_check.py", "shortDescription": {"text": "Possible secret in strategies/_archive/semi_sox_fade/signal_check.py"}, "fullDescription": {"text": "Detected pattern matching password_literal. Rotate the credential and move to a secret manager."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "critical", "confidence": 1.0}}, {"id": "scanner-6372cebde0220094", "name": "No auth library detected", "shortDescription": {"text": "No auth library detected"}, "fullDescription": {"text": "The scanner did not find any standard auth library (JWT, OAuth, NextAuth, Auth0, etc.). The repo has auth/admin/session surface indicators, so auth may live in custom code, in a separate service, or be missing."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-4601e3ad3bb28677", "name": "No CI/CD pipelines detected", "shortDescription": {"text": "No CI/CD pipelines detected"}, "fullDescription": {"text": "No GitHub Actions, GitLab CI, or CircleCI configs found. Without CI you can't gate deploys on tests/lints."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-6893a6c8b0861585", "name": "Very low test-to-source ratio", "shortDescription": {"text": "Very low test-to-source ratio"}, "fullDescription": {"text": "14 test file(s) for 289 source file(s) (ratio 0.05). Consider adding integration or unit tests for critical paths."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-141b30a41e03817b", "name": "No license file detected", "shortDescription": {"text": "No license file detected"}, "fullDescription": {"text": "No LICENSE/COPYING/NOTICE file was found. Generated repositories often omit licensing, which blocks reuse and automated intake."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-3ab5d313dda8e5f9", "name": "Debug logging residue appears in source files", "shortDescription": {"text": "Debug logging residue appears in source files"}, "fullDescription": {"text": "Found 6619 console/debugger/print-style debug statements in non-test source. This is a common fast-generation residue before production cleanup."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-2d0c7b7ab8f8aacf", "name": "Critical user flow still appears backed by mock or placeholder data", "shortDescription": {"text": "Critical user flow still appears backed by mock or placeholder data"}, "fullDescription": {"text": "A payment/auth/admin/order/billing-style flow contains mock, fake, TODO, dummy, or placeholder markers in runtime source. In the Fable corpus this is a high-leverage completeness smell: the app can look finished while the money, identity, or tenant flow is still scaffolded."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-b9088664ace7f748", "name": "Composite production-readiness gap", "shortDescription": {"text": "Composite production-readiness gap"}, "fullDescription": {"text": "Multiple low-cost hardening controls are missing together: license, ci, tests. Opus verification showed these co-occurring gaps are a better readiness signal than reading each flag in isolation."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-749d4bc1bd66df5f", "name": "Agent instructions exist but release-hardening basics are missing", "shortDescription": {"text": "Agent instructions exist but release-hardening basics are missing"}, "fullDescription": {"text": "AI-coder instruction files were found, but the repo is missing license, ci, tests. Treat this as a contract gap: the agent is guided, but the generated output is not yet guarded by the controls that make it repeatable."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ea8f3013f588db25", "name": "Shallow git history limits provenance confidence", "shortDescription": {"text": "Shallow git history limits provenance confidence"}, "fullDescription": {"text": "The repository is a shallow clone. Origin/evolution analysis cannot distinguish fresh generation, imported legacy code, or long-lived human code with high confidence."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-8424db9c75e04ba4", "name": "Very short observed git history", "shortDescription": {"text": "Very short observed git history"}, "fullDescription": {"text": "The repo has multiple source files but two or fewer visible commits. This is not a failure by itself, but it lowers confidence in evolution-based diagnosis."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-1f73c54600c996fd", "name": "Agent authority lacks a verifier contract: .claude/CLAUDE.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/CLAUDE.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-a8c320e2bdc65a2c", "name": "Commented-code block (5 lines) in analyses/20260512_earnings_patterns/run.py:341", "shortDescription": {"text": "Commented-code block (5 lines) in analyses/20260512_earnings_patterns/run.py:341"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-45bd1f0e5268e7aa", "name": "Commented-code block (5 lines) in analyses/20260422_pair_trading/run_daily.py:151", "shortDescription": {"text": "Commented-code block (5 lines) in analyses/20260422_pair_trading/run_daily.py:151"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-77e5815827163a8c", "name": "Commented-code block (12 lines) in analyses/20260422_us_jp_leadlag/run_yfinance.py:78", "shortDescription": {"text": "Commented-code block (12 lines) in analyses/20260422_us_jp_leadlag/run_yfinance.py:78"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e899be09c8ae7dbe", "name": "Legacy-named symbol `result_v2` in analyses/20260613_edinet_large_holding_accumulation_drift/run_v2.py:121", "shortDescription": {"text": "Legacy-named symbol `result_v2` in analyses/20260613_edinet_large_holding_accumulation_drift/run_v2.py:121"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-0b228b9f2723a7f9", "name": "Legacy-named symbol `result_v2` in analyses/20260613_earnings_forecast_revision_drift/run_v2.py:126", "shortDescription": {"text": "Legacy-named symbol `result_v2` in analyses/20260613_earnings_forecast_revision_drift/run_v2.py:126"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-75e569519950b97c", "name": "Commented-code block (5 lines) in analyses/20260531_pead_enhanced/run.py:87", "shortDescription": {"text": "Commented-code block (5 lines) in analyses/20260531_pead_enhanced/run.py:87"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-33a6b62e30ce7ab4", "name": "Near-duplicate function bodies in 6 places", "shortDescription": {"text": "Near-duplicate function bodies in 6 places"}, "fullDescription": {"text": "Functions with the same first-5-line body hash:\nanalyses/20260424_trading_framework/orb_backtest.py:trading_hours, analyses/20260424_trading_framework/orb_threshold_optimize.py:trading_hours, analyses/20260422_friday_intraday/semiconductor_dayofweek.py:trading_hours, analyses/20260425_price_characteristics/price_characteristics.py:trading_hours\n\nThis is *the* AI-coder failure mode (4\u00d7 more duplication in vibe-coded repos \u2014 see https://jw.hn/ai-code-hygiene). Consolidate or document why they're separate."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-76a2f6818267a9a8", "name": "Near-duplicate function bodies in 8 places", "shortDescription": {"text": "Near-duplicate function bodies in 8 places"}, "fullDescription": {"text": "Functions with the same first-5-line body hash:\nanalyses/20260424_trading_framework/pattern_encyclopedia.py:load, analyses/20260423_algo_fingerprint/run_G_intraday_direction.py:load, analyses/20260423_algo_fingerprint/run_C_cluster.py:load, analyses/20260423_algo_fingerprint/run_B_timeofday.py:load\n\nThis is *the* AI-coder failure mode (4\u00d7 more duplication in vibe-coded repos \u2014 see https://jw.hn/ai-code-hygiene). Consolidate or document why they're separate."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-be46ea126aa5d8dc", "name": "Near-duplicate function bodies in 3 places", "shortDescription": {"text": "Near-duplicate function bodies in 3 places"}, "fullDescription": {"text": "Functions with the same first-5-line body hash:\nanalyses/20260422_friday_intraday/friday_intraday.py:load_data, analyses/20260422_nonferrous_nikkei_leadlag/leadlag_analysis.py:load_data, analyses/20260422_nonferrous_nikkei_followthrough/followthrough_analysis.py:load_data\n\nThis is *the* AI-coder failure mode (4\u00d7 more duplication in vibe-coded repos \u2014 see https://jw.hn/ai-code-hygiene). Consolidate or document why they're separate."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-9dad557909b86499", "name": "Near-duplicate function bodies in 10 places", "shortDescription": {"text": "Near-duplicate function bodies in 10 places"}, "fullDescription": {"text": "Functions with the same first-5-line body hash:\nanalyses/20260531_v6score_comprehensive/run.py:fetch, analyses/20260602_v6score_50stock_backtest/run_takeprofit.py:fetch, analyses/20260602_v6score_50stock_backtest/run.py:fetch, analyses/20260602_v6score_50stock_backtest/run_longonly.py:fetch\n\nThis is *the* AI-coder failure mode (4\u00d7 more duplication in vibe-coded repos \u2014 see https://jw.hn/ai-code-hygiene). Consolidate or document why they're separate."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-fe1d9311d6aee734", "name": "Near-duplicate function bodies in 12 places", "shortDescription": {"text": "Near-duplicate function bodies in 12 places"}, "fullDescription": {"text": "Functions with the same first-5-line body hash:\nanalyses/20260512_earnings_patterns/run.py:q, analyses/20260511_sector_patterns_comprehensive/run.py:q, analyses/20260515_mtf_trend_alignment/run.py:q, analyses/20260511_monday_tuesday_on/run.py:q\n\nThis is *the* AI-coder failure mode (4\u00d7 more duplication in vibe-coded repos \u2014 see https://jw.hn/ai-code-hygiene). Consolidate or document why they're separate."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-2c04133e54348533", "name": "Near-duplicate function bodies in 2 places", "shortDescription": {"text": "Near-duplicate function bodies in 2 places"}, "fullDescription": {"text": "Functions with the same first-5-line body hash:\nanalyses/20260531_strategy_battery_20/run.py:shp, analyses/20260531_strategy_battery_20/run.py:shp\n\nThis is *the* AI-coder failure mode (4\u00d7 more duplication in vibe-coded repos \u2014 see https://jw.hn/ai-code-hygiene). Consolidate or document why they're separate."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-02525d39071dd2c7", "name": "Near-duplicate function bodies in 5 places", "shortDescription": {"text": "Near-duplicate function bodies in 5 places"}, "fullDescription": {"text": "Functions with the same first-5-line body hash:\nanalyses/20260421_lme_intraday_signal/run.py:is_bst, analyses/20260422_lme_momentum_overlap/run.py:is_bst, analyses/20260601_lme_edge_recheck/run.py:is_bst, analyses/20260421_lme_copper_overnight/lme_all_stocks_clean.py:is_bst\n\nThis is *the* AI-coder failure mode (4\u00d7 more duplication in vibe-coded repos \u2014 see https://jw.hn/ai-code-hygiene). Consolidate or document why they're separate."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-49c98f7cedd9c977", "name": "Near-duplicate function bodies in 4 places", "shortDescription": {"text": "Near-duplicate function bodies in 4 places"}, "fullDescription": {"text": "Functions with the same first-5-line body hash:\nanalyses/20260424_volume_intraday_profile/run.py:load_1min, analyses/20260424_volume_direction/run.py:load_1min, analyses/20260422_orb_volume/run.py:load_1min, analyses/20260422_vwap_direction/run.py:load_1min\n\nThis is *the* AI-coder failure mode (4\u00d7 more duplication in vibe-coded repos \u2014 see https://jw.hn/ai-code-hygiene). Consolidate or document why they're separate."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}]}}, "automationDetails": {"id": "repobility/20970"}, "properties": {"repository": "telesuhr/japan-stocks", "repoUrl": "https://github.com/telesuhr/japan-stocks", "branch": "main"}, "results": [{"ruleId": "scanner-5f952941bc8fc932", "level": "note", "message": {"text": "Possibly dead Python function: load_recent"}, "properties": {"repobilityId": "c1a38b95626fc909", "scanner": "scanner-primary", "fingerprint": "5f952941bc8fc932", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "analyses/20260424_trading_framework/daily_signal.py:60"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-734ae53a9c172293", "level": "note", "message": {"text": "Possibly dead Python function: signal_label"}, "properties": {"repobilityId": "42054cb90df1c390", "scanner": "scanner-primary", "fingerprint": "734ae53a9c172293", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "analyses/20260424_trading_framework/daily_signal.py:99"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-40ba5a80ee4ad40c", "level": "note", "message": {"text": "Possibly dead Python function: resample_1min_to_daily_sessions"}, "properties": {"repobilityId": "1be9f7febe74b3cc", "scanner": "scanner-primary", "fingerprint": "40ba5a80ee4ad40c", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "analyses/20260422_nonferrous_semi_intraday/run_all_strategies.py:19"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-83408619ccda64a4", "level": "note", "message": {"text": "Possibly dead Python function: intraday_slice"}, "properties": {"repobilityId": "58a9d0c9fd1430ca", "scanner": "scanner-primary", "fingerprint": "83408619ccda64a4", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "analyses/20260422_nonferrous_semi_intraday/run_all_strategies.py:25"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-2ae0ca548d354ff1", "level": "note", "message": {"text": "Possibly dead Python function: strat_opening_spike_fade"}, "properties": {"repobilityId": "f713f042b293c4b0", "scanner": "scanner-primary", "fingerprint": "2ae0ca548d354ff1", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "analyses/20260422_nonferrous_semi_intraday/run_all_strategies.py:86"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-ccc7866242123133", "level": "note", "message": {"text": "Possibly dead Python function: strat_lunch_reversal"}, "properties": {"repobilityId": "2f2007bf0ab803cc", "scanner": "scanner-primary", "fingerprint": "ccc7866242123133", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "analyses/20260422_nonferrous_semi_intraday/run_all_strategies.py:108"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-def778fe2d02bb32", "level": "note", "message": {"text": "Possibly dead Python function: strat_morning_afternoon"}, "properties": {"repobilityId": "0fe62030e29d0b70", "scanner": "scanner-primary", "fingerprint": "def778fe2d02bb32", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "analyses/20260422_nonferrous_semi_intraday/run_all_strategies.py:126"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-8a8ecd6141ac06a9", "level": "note", "message": {"text": "Possibly dead Python function: strat_last_hour"}, "properties": {"repobilityId": "9fdd864ab2c3edd1", "scanner": "scanner-primary", "fingerprint": "8a8ecd6141ac06a9", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "analyses/20260422_nonferrous_semi_intraday/run_all_strategies.py:149"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-df2f40b954d29cdc", "level": "note", "message": {"text": "Possibly dead Python function: strat_vwap_mr"}, "properties": {"repobilityId": "1742108703118035", "scanner": "scanner-primary", "fingerprint": "df2f40b954d29cdc", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "analyses/20260422_nonferrous_semi_intraday/run_all_strategies.py:177"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-837d472d8c93fe07", "level": "note", "message": {"text": "Possibly dead Python function: strat_intraday_z"}, "properties": {"repobilityId": "d9076b32adbc0597", "scanner": "scanner-primary", "fingerprint": "837d472d8c93fe07", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "analyses/20260422_nonferrous_semi_intraday/run_all_strategies.py:207"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-569817b1a254155a", "level": "note", "message": {"text": "Possibly dead Python function: next_jp"}, "properties": {"repobilityId": "9a25bedc383c95af", "scanner": "scanner-primary", "fingerprint": "569817b1a254155a", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "analyses/20260612_sox_up_sector_screen/run.py:37"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-4d0a69a9871abc56", "level": "note", "message": {"text": "Possibly dead Python function: session_index"}, "properties": {"repobilityId": "49240cb190064f61", "scanner": "scanner-primary", "fingerprint": "4d0a69a9871abc56", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "analyses/20260422_pair_trading/run_intraday.py:79"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-0a34aae66533e896", "level": "note", "message": {"text": "Possibly dead Python function: hook"}, "properties": {"repobilityId": "0fda80138dc2ef67", "scanner": "scanner-primary", "fingerprint": "0a34aae66533e896", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "analyses/20260610_strategy_recency_check/run.py:22"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-b5d18faf025ba4f1", "level": "note", "message": {"text": "Possibly dead Python function: assign_regime"}, "properties": {"repobilityId": "418d0b53600b8f93", "scanner": "scanner-primary", "fingerprint": "b5d18faf025ba4f1", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "analyses/20260422_vwap_mr_polish/run.py:259"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-ee2efc431306cd73", "level": "note", "message": {"text": "Possibly dead Python function: qw"}, "properties": {"repobilityId": "a2bb0b58e8f5fa77", "scanner": "scanner-primary", "fingerprint": "ee2efc431306cd73", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "analyses/20260530_jquants_margin_short_factors/run.py:100"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-62348ee79a0c8f53", "level": "note", "message": {"text": "Possibly dead Python function: qw"}, "properties": {"repobilityId": "a2bb0b58e8f5fa77", "scanner": "scanner-primary", "fingerprint": "62348ee79a0c8f53", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "analyses/20260530_jquants_margin_short_factors/make_chart.py:38"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-f951930bc1b2f348", "level": "note", "message": {"text": "Possibly dead Python function: compute"}, "properties": {"repobilityId": "93f64dd87c93b51c", "scanner": "scanner-primary", "fingerprint": "f951930bc1b2f348", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "analyses/20260512_matrix_strategy/run.py:47"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-7548cfb324859da6", "level": "note", "message": {"text": "Possibly dead Python function: compute"}, "properties": {"repobilityId": "93f64dd87c93b51c", "scanner": "scanner-primary", "fingerprint": "7548cfb324859da6", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "analyses/20260512_overnight_by_dow/run.py:55"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-926ad8914a767c3a", "level": "note", "message": {"text": "Possibly dead Python function: compute"}, "properties": {"repobilityId": "93f64dd87c93b51c", "scanner": "scanner-primary", "fingerprint": "926ad8914a767c3a", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "analyses/20260518_matrix_5year_validation/run.py:46"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-20dcda0e326c2faf", "level": "note", "message": {"text": "Possibly dead Python function: build_p2_no_thresh"}, "properties": {"repobilityId": "07b7bb46af995221", "scanner": "scanner-primary", "fingerprint": "20dcda0e326c2faf", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "analyses/20260422_lunch_close/run.py:99"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-33ac33f65cbd4233", "level": "note", "message": {"text": "Possibly dead Python function: build_p2b"}, "properties": {"repobilityId": "8f815ebabab07c4d", "scanner": "scanner-primary", "fingerprint": "33ac33f65cbd4233", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "analyses/20260422_lunch_close/run.py:259"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-c4fe648af03a84a3", "level": "note", "message": {"text": "Possibly dead Python function: analyze_dev_vs_rest"}, "properties": {"repobilityId": "768eee074add9248", "scanner": "scanner-primary", "fingerprint": "c4fe648af03a84a3", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "analyses/20260422_vwap_direction/run.py:88"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-428ece10a583b925", "level": "note", "message": {"text": "Possibly dead Python function: per_stock_condition"}, "properties": {"repobilityId": "1dc3851d76181614", "scanner": "scanner-primary", "fingerprint": "428ece10a583b925", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "analyses/20260605_sector_edge_research/analyze.py:207"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-ef181b3f138b0e34", "level": "note", "message": {"text": "Possibly dead Python function: s_eneos"}, "properties": {"repobilityId": "8fc105b40b61bbb8", "scanner": "scanner-primary", "fingerprint": "ef181b3f138b0e34", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "analyses/20260531_portfolio_daily_sharpe/run.py:61"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-b3d621c5af72281f", "level": "note", "message": {"text": "Possibly dead Python function: s_vwap_morning"}, "properties": {"repobilityId": "82f87c46d2672ae2", "scanner": "scanner-primary", "fingerprint": "b3d621c5af72281f", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "analyses/20260531_portfolio_daily_sharpe/run.py:88"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-af41d99c2f832c63", "level": "note", "message": {"text": "Possibly dead Python function: s_lasertec"}, "properties": {"repobilityId": "01a1a4f88a9fd273", "scanner": "scanner-primary", "fingerprint": "af41d99c2f832c63", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "analyses/20260531_portfolio_daily_sharpe/run.py:127"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-7959043b615c7bd6", "level": "note", "message": {"text": "Possibly dead Python function: s_bank"}, "properties": {"repobilityId": "e75abc9fdf11c33b", "scanner": "scanner-primary", "fingerprint": "7959043b615c7bd6", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "analyses/20260531_portfolio_daily_sharpe/run.py:159"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-9710c8d059e53154", "level": "none", "message": {"text": "No frontend routes/components detected"}, "properties": {"repobilityId": "44ca61485762e494", "scanner": "scanner-primary", "fingerprint": "9710c8d059e53154", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["coverage"]}}, {"ruleId": "scanner-271c354a107fb788", "level": "error", "message": {"text": "Possible secret in analyses/20260422_nonferrous_semi_intraday/run_F3_sox_top5.py"}, "properties": {"repobilityId": "37d7fe900aac8324", "scanner": "scanner-primary", "fingerprint": "271c354a107fb788", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "analyses/20260422_nonferrous_semi_intraday/run_F3_sox_top5.py"}, "region": {"startLine": 14}}}]}, {"ruleId": "scanner-681905936f20daab", "level": "error", "message": {"text": "Possible secret in analyses/20260422_nonferrous_semi_intraday/run_F_sox_semi.py"}, "properties": {"repobilityId": "a1ce4f6fcc4f0793", "scanner": "scanner-primary", "fingerprint": "681905936f20daab", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "analyses/20260422_nonferrous_semi_intraday/run_F_sox_semi.py"}, "region": {"startLine": 18}}}]}, {"ruleId": "scanner-b6af2d55ac3afd07", "level": "error", "message": {"text": "Possible secret in analyses/20260422_nonferrous_semi_intraday/run_F2_sox_fade.py"}, "properties": {"repobilityId": "0c942569debd0bc1", "scanner": "scanner-primary", "fingerprint": "b6af2d55ac3afd07", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "analyses/20260422_nonferrous_semi_intraday/run_F2_sox_fade.py"}, "region": {"startLine": 10}}}]}, {"ruleId": "scanner-83f4db9fa6d9eed0", "level": "error", "message": {"text": "Possible secret in analyses/20260422_pair_trading/run_volatility.py"}, "properties": {"repobilityId": "dae17546a6a4f9b2", "scanner": "scanner-primary", "fingerprint": "83f4db9fa6d9eed0", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "analyses/20260422_pair_trading/run_volatility.py"}, "region": {"startLine": 23}}}]}, {"ruleId": "scanner-95756c2165dbfd23", "level": "error", "message": {"text": "Possible secret in analyses/20260422_pair_trading/run_basket.py"}, "properties": {"repobilityId": "ff7261c05f7922e7", "scanner": "scanner-primary", "fingerprint": "95756c2165dbfd23", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "analyses/20260422_pair_trading/run_basket.py"}, "region": {"startLine": 21}}}]}, {"ruleId": "scanner-c6c05cdd199217d1", "level": "error", "message": {"text": "Possible secret in analyses/20260422_pair_trading/run_basket_variants.py"}, "properties": {"repobilityId": "b5e707e1791bd289", "scanner": "scanner-primary", "fingerprint": "c6c05cdd199217d1", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "analyses/20260422_pair_trading/run_basket_variants.py"}, "region": {"startLine": 10}}}]}, {"ruleId": "scanner-84963a417d6ae520", "level": "error", "message": {"text": "Possible secret in analyses/20260422_pair_trading/run_portfolio.py"}, "properties": {"repobilityId": "ea699b805e4109e1", "scanner": "scanner-primary", "fingerprint": "84963a417d6ae520", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "analyses/20260422_pair_trading/run_portfolio.py"}, "region": {"startLine": 22}}}]}, {"ruleId": "scanner-6bc820743ad9437d", "level": "error", "message": {"text": "Possible secret in analyses/20260422_pair_trading/run_wf_long.py"}, "properties": {"repobilityId": "de1336e89f86f412", "scanner": "scanner-primary", "fingerprint": "6bc820743ad9437d", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "analyses/20260422_pair_trading/run_wf_long.py"}, "region": {"startLine": 25}}}]}, {"ruleId": "scanner-38a5ef00b7daae7b", "level": "error", "message": {"text": "Possible secret in analyses/20260422_pair_trading/run_filtered.py"}, "properties": {"repobilityId": "7abdd4dff63f4917", "scanner": "scanner-primary", "fingerprint": "38a5ef00b7daae7b", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "analyses/20260422_pair_trading/run_filtered.py"}, "region": {"startLine": 21}}}]}, {"ruleId": "scanner-e7f965ebd4d637ce", "level": "error", "message": {"text": "Possible secret in analyses/20260422_sector_us_sensitivity/run.py"}, "properties": {"repobilityId": "0268b4fbd7399233", "scanner": "scanner-primary", "fingerprint": "e7f965ebd4d637ce", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "analyses/20260422_sector_us_sensitivity/run.py"}, "region": {"startLine": 35}}}]}, {"ruleId": "scanner-0000cfa7de843eb6", "level": "error", "message": {"text": "Possible secret in analyses/20260422_sox_short_oos/run.py"}, "properties": {"repobilityId": "97dedf0dd6440894", "scanner": "scanner-primary", "fingerprint": "0000cfa7de843eb6", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "analyses/20260422_sox_short_oos/run.py"}, "region": {"startLine": 32}}}]}, {"ruleId": "scanner-6bbd56dab3b92fa3", "level": "error", "message": {"text": "Possible secret in analyses/20260422_us_jp_leadlag/run.py"}, "properties": {"repobilityId": "5ee131d84d790a80", "scanner": "scanner-primary", "fingerprint": "6bbd56dab3b92fa3", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "analyses/20260422_us_jp_leadlag/run.py"}, "region": {"startLine": 30}}}]}, {"ruleId": "scanner-d38f11549f218323", "level": "error", "message": {"text": "Possible secret in analyses/20260613_taiwan_foreign_flow_jp_semis_leadlag/verify_sox_filter.py"}, "properties": {"repobilityId": "cdd4973f9c24d694", "scanner": "scanner-primary", "fingerprint": "d38f11549f218323", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "analyses/20260613_taiwan_foreign_flow_jp_semis_leadlag/verify_sox_filter.py"}, "region": {"startLine": 8}}}]}, {"ruleId": "scanner-1e0d45c87ad9dfe1", "level": "error", "message": {"text": "Possible secret in analyses/20260603_sector_rotation_17/run.py"}, "properties": {"repobilityId": "fd612ac930138df6", "scanner": "scanner-primary", "fingerprint": "1e0d45c87ad9dfe1", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "analyses/20260603_sector_rotation_17/run.py"}, "region": {"startLine": 24}}}]}, {"ruleId": "scanner-c56833c67e808211", "level": "error", "message": {"text": "Possible secret in analyses/_utils/check_earnings2.py"}, "properties": {"repobilityId": "82aac26be9885233", "scanner": "scanner-primary", "fingerprint": "c56833c67e808211", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "analyses/_utils/check_earnings2.py"}, "region": {"startLine": 2}}}]}, {"ruleId": "scanner-fd577cdebc61456f", "level": "error", "message": {"text": "Possible secret in analyses/_utils/check_earnings.py"}, "properties": {"repobilityId": "ddaba4456a7ca125", "scanner": "scanner-primary", "fingerprint": "fd577cdebc61456f", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "analyses/_utils/check_earnings.py"}, "region": {"startLine": 2}}}]}, {"ruleId": "scanner-a956bc80055e626a", "level": "error", "message": {"text": "Possible secret in analyses/_utils/check_refinitiv_setup.py"}, "properties": {"repobilityId": "37e8a1d94cc8eec2", "scanner": "scanner-primary", "fingerprint": "a956bc80055e626a", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "analyses/_utils/check_refinitiv_setup.py"}, "region": {"startLine": 2}}}]}, {"ruleId": "scanner-6d192757dbcd089a", "level": "error", "message": {"text": "Possible secret in analyses/20260426_dayofweek_followup/check_symbols.py"}, "properties": {"repobilityId": "ea0f0e47c491a699", "scanner": "scanner-primary", "fingerprint": "6d192757dbcd089a", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "analyses/20260426_dayofweek_followup/check_symbols.py"}, "region": {"startLine": 2}}}]}, {"ruleId": "scanner-686ac37de70b5ce9", "level": "error", "message": {"text": "Possible secret in analyses/20260509_strategy_validation/task1_sox.py"}, "properties": {"repobilityId": "ae2b72fd4f529cb8", "scanner": "scanner-primary", "fingerprint": "686ac37de70b5ce9", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "analyses/20260509_strategy_validation/task1_sox.py"}, "region": {"startLine": 18}}}]}, {"ruleId": "scanner-6d2f45af4ae9328a", "level": "error", "message": {"text": "Possible secret in analyses/20260509_strategy_validation/run.py"}, "properties": {"repobilityId": "2c74a6b19eaa0ae6", "scanner": "scanner-primary", "fingerprint": "6d2f45af4ae9328a", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "analyses/20260509_strategy_validation/run.py"}, "region": {"startLine": 523}}}]}, {"ruleId": "scanner-434ddf01cd4c6e09", "level": "error", "message": {"text": "Possible secret in analyses/20260601_lme_edge_recheck/probe_db.py"}, "properties": {"repobilityId": "d8d98332b64142c1", "scanner": "scanner-primary", "fingerprint": "434ddf01cd4c6e09", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "analyses/20260601_lme_edge_recheck/probe_db.py"}, "region": {"startLine": 5}}}]}, {"ruleId": "scanner-b5f2272791102ee1", "level": "error", "message": {"text": "Possible secret in analyses/20260422_semi_intraday_battery/run.py"}, "properties": {"repobilityId": "47ea089ffe9d9c91", "scanner": "scanner-primary", "fingerprint": "b5f2272791102ee1", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "analyses/20260422_semi_intraday_battery/run.py"}, "region": {"startLine": 30}}}]}, {"ruleId": "scanner-d607572e7b7f4e1c", "level": "error", "message": {"text": "Possible secret in strategies/_archive/sox_overnight_short/signal_check.py"}, "properties": {"repobilityId": "946d1080cfd8fff8", "scanner": "scanner-primary", "fingerprint": "d607572e7b7f4e1c", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "strategies/_archive/sox_overnight_short/signal_check.py"}, "region": {"startLine": 32}}}]}, {"ruleId": "scanner-f30c471d0d12ac76", "level": "error", "message": {"text": "Possible secret in strategies/_archive/semi_sox_fade/signal_check.py"}, "properties": {"repobilityId": "b60f9990723dd0c9", "scanner": "scanner-primary", "fingerprint": "f30c471d0d12ac76", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "strategies/_archive/semi_sox_fade/signal_check.py"}, "region": {"startLine": 13}}}]}, {"ruleId": "scanner-f30c471d0d12ac76", "level": "error", "message": {"text": "Possible secret in strategies/_archive/semi_sox_fade/signal_check.py"}, "properties": {"repobilityId": "b60f9990723dd0c9", "scanner": "scanner-primary", "fingerprint": "f30c471d0d12ac76", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "strategies/_archive/semi_sox_fade/signal_check.py"}, "region": {"startLine": 15}}}]}, {"ruleId": "scanner-6372cebde0220094", "level": "warning", "message": {"text": "No auth library detected"}, "properties": {"repobilityId": "a5b6035a5bbf8054", "scanner": "scanner-primary", "fingerprint": "6372cebde0220094", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["coverage", "auth"]}}, {"ruleId": "scanner-4601e3ad3bb28677", "level": "warning", "message": {"text": "No CI/CD pipelines detected"}, "properties": {"repobilityId": "c3ee439bce2bc51e", "scanner": "scanner-primary", "fingerprint": "4601e3ad3bb28677", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["coverage"]}}, {"ruleId": "scanner-6893a6c8b0861585", "level": "warning", "message": {"text": "Very low test-to-source ratio"}, "properties": {"repobilityId": "54a7de3f06314bf0", "scanner": "scanner-primary", "fingerprint": "6893a6c8b0861585", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["tests", "coverage"]}}, {"ruleId": "scanner-141b30a41e03817b", "level": "note", "message": {"text": "No license file detected"}, "properties": {"repobilityId": "a40152638dab72a1", "scanner": "scanner-primary", "fingerprint": "141b30a41e03817b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["license", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-3ab5d313dda8e5f9", "level": "note", "message": {"text": "Debug logging residue appears in source files"}, "properties": {"repobilityId": "e4a2924c2875c33e", "scanner": "scanner-primary", "fingerprint": "3ab5d313dda8e5f9", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["debug", "cleanup", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-2d0c7b7ab8f8aacf", "level": "warning", "message": {"text": "Critical user flow still appears backed by mock or placeholder data"}, "properties": {"repobilityId": "8db5653813b01612", "scanner": "scanner-primary", "fingerprint": "2d0c7b7ab8f8aacf", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["placeholder", "mock-data", "critical-flow", "generated-repo-pattern"]}}, {"ruleId": "scanner-b9088664ace7f748", "level": "warning", "message": {"text": "Composite production-readiness gap"}, "properties": {"repobilityId": "f4d1bc2aa66e47ff", "scanner": "scanner-primary", "fingerprint": "b9088664ace7f748", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["production-readiness", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-749d4bc1bd66df5f", "level": "warning", "message": {"text": "Agent instructions exist but release-hardening basics are missing"}, "properties": {"repobilityId": "ab9f30282e5a9175", "scanner": "scanner-primary", "fingerprint": "749d4bc1bd66df5f", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-ea8f3013f588db25", "level": "note", "message": {"text": "Shallow git history limits provenance confidence"}, "properties": {"repobilityId": "ed0b360a1bdb3666", "scanner": "scanner-primary", "fingerprint": "ea8f3013f588db25", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["provenance", "git-history", "generated-repo-pattern"]}}, {"ruleId": "scanner-8424db9c75e04ba4", "level": "none", "message": {"text": "Very short observed git history"}, "properties": {"repobilityId": "899be463cd178067", "scanner": "scanner-primary", "fingerprint": "8424db9c75e04ba4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["provenance", "git-history", "generated-repo-pattern"]}}, {"ruleId": "scanner-1f73c54600c996fd", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/CLAUDE.md"}, "properties": {"repobilityId": "31713f8f64e4a724", "scanner": "scanner-primary", "fingerprint": "1f73c54600c996fd", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/CLAUDE.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-a8c320e2bdc65a2c", "level": "none", "message": {"text": "Commented-code block (5 lines) in analyses/20260512_earnings_patterns/run.py:341"}, "properties": {"repobilityId": "3e243671e660f245", "scanner": "scanner-primary", "fingerprint": "a8c320e2bdc65a2c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-45bd1f0e5268e7aa", "level": "none", "message": {"text": "Commented-code block (5 lines) in analyses/20260422_pair_trading/run_daily.py:151"}, "properties": {"repobilityId": "50105af9f636dbcb", "scanner": "scanner-primary", "fingerprint": "45bd1f0e5268e7aa", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-77e5815827163a8c", "level": "none", "message": {"text": "Commented-code block (12 lines) in analyses/20260422_us_jp_leadlag/run_yfinance.py:78"}, "properties": {"repobilityId": "c12087eb2e56d06d", "scanner": "scanner-primary", "fingerprint": "77e5815827163a8c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e899be09c8ae7dbe", "level": "note", "message": {"text": "Legacy-named symbol `result_v2` in analyses/20260613_edinet_large_holding_accumulation_drift/run_v2.py:121"}, "properties": {"repobilityId": "ae646810e46ac81d", "scanner": "scanner-primary", "fingerprint": "e899be09c8ae7dbe", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-0b228b9f2723a7f9", "level": "note", "message": {"text": "Legacy-named symbol `result_v2` in analyses/20260613_earnings_forecast_revision_drift/run_v2.py:126"}, "properties": {"repobilityId": "9ffe843d9c587c6b", "scanner": "scanner-primary", "fingerprint": "0b228b9f2723a7f9", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-75e569519950b97c", "level": "none", "message": {"text": "Commented-code block (5 lines) in analyses/20260531_pead_enhanced/run.py:87"}, "properties": {"repobilityId": "58ac4b8e1b36de25", "scanner": "scanner-primary", "fingerprint": "75e569519950b97c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-33a6b62e30ce7ab4", "level": "note", "message": {"text": "Near-duplicate function bodies in 6 places"}, "properties": {"repobilityId": "7b7adcfac2b721ee", "scanner": "scanner-primary", "fingerprint": "33a6b62e30ce7ab4", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-76a2f6818267a9a8", "level": "note", "message": {"text": "Near-duplicate function bodies in 8 places"}, "properties": {"repobilityId": "19465342c198eeb2", "scanner": "scanner-primary", "fingerprint": "76a2f6818267a9a8", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-be46ea126aa5d8dc", "level": "note", "message": {"text": "Near-duplicate function bodies in 3 places"}, "properties": {"repobilityId": "89fb27b6d4777393", "scanner": "scanner-primary", "fingerprint": "be46ea126aa5d8dc", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-9dad557909b86499", "level": "note", "message": {"text": "Near-duplicate function bodies in 10 places"}, "properties": {"repobilityId": "b0b48061266a58e2", "scanner": "scanner-primary", "fingerprint": "9dad557909b86499", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-be46ea126aa5d8dc", "level": "note", "message": {"text": "Near-duplicate function bodies in 3 places"}, "properties": {"repobilityId": "8e3bbe13190a9d4b", "scanner": "scanner-primary", "fingerprint": "be46ea126aa5d8dc", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-be46ea126aa5d8dc", "level": "note", "message": {"text": "Near-duplicate function bodies in 3 places"}, "properties": {"repobilityId": "62c897dbe5a8d9c6", "scanner": "scanner-primary", "fingerprint": "be46ea126aa5d8dc", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-be46ea126aa5d8dc", "level": "note", "message": {"text": "Near-duplicate function bodies in 3 places"}, "properties": {"repobilityId": "2cfffa2035122196", "scanner": "scanner-primary", "fingerprint": "be46ea126aa5d8dc", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-fe1d9311d6aee734", "level": "note", "message": {"text": "Near-duplicate function bodies in 12 places"}, "properties": {"repobilityId": "482edcfe663425ca", "scanner": "scanner-primary", "fingerprint": "fe1d9311d6aee734", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "a2901d6919dbaa95", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "289cf16889816e65", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "375e2ce14362e90d", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "8d59b42ca29f6c2f", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "6e783a72b542e7b4", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "fa1c988f9ce2a8a9", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "66eddd326d7de948", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-02525d39071dd2c7", "level": "note", "message": {"text": "Near-duplicate function bodies in 5 places"}, "properties": {"repobilityId": "326dd5fa57d60b2c", "scanner": "scanner-primary", "fingerprint": "02525d39071dd2c7", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "8a4086e8ad71f6f8", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-49c98f7cedd9c977", "level": "note", "message": {"text": "Near-duplicate function bodies in 4 places"}, "properties": {"repobilityId": "54ba2b4d3b63e770", "scanner": "scanner-primary", "fingerprint": "49c98f7cedd9c977", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-02525d39071dd2c7", "level": "note", "message": {"text": "Near-duplicate function bodies in 5 places"}, "properties": {"repobilityId": "53b7b94e543e26b4", "scanner": "scanner-primary", "fingerprint": "02525d39071dd2c7", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "a6c82722365614a3", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}]}]}