{"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-8efb2126cedacc84", "name": "Possibly dead Python function: load_regional_map", "shortDescription": {"text": "Possibly dead Python function: load_regional_map"}, "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-34cad0abfab0018e", "name": "Possibly dead Python function: parse_bbox", "shortDescription": {"text": "Possibly dead Python function: parse_bbox"}, "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-aed4412be96c9353", "name": "Possibly dead Python function: find_exact_tree", "shortDescription": {"text": "Possibly dead Python function: find_exact_tree"}, "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-37df1493363ce6e3", "name": "Possibly dead Python function: lns8_eml", "shortDescription": {"text": "Possibly dead Python function: lns8_eml"}, "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-5e7de3dc5470e6e0", "name": "Possibly dead Python function: do_GET", "shortDescription": {"text": "Possibly dead Python function: do_GET"}, "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-05da4fe91c1440c8", "name": "Possibly dead Python function: log_message", "shortDescription": {"text": "Possibly dead Python function: log_message"}, "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-cc14eee8e46d1228", "name": "Possibly dead Python function: do_GET", "shortDescription": {"text": "Possibly dead Python function: do_GET"}, "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-8dc48369c9b12e6f", "name": "Possibly dead Python function: log_message", "shortDescription": {"text": "Possibly dead Python function: log_message"}, "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-c514298515a82e97", "name": "Possibly dead Python function: read_stdin", "shortDescription": {"text": "Possibly dead Python function: read_stdin"}, "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-cde619f16b9082d7", "name": "Possibly dead Python function: eval_depth2_tree", "shortDescription": {"text": "Possibly dead Python function: eval_depth2_tree"}, "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-2616d6c4cffe7366", "name": "Possibly dead Python function: eval_depth1_tree", "shortDescription": {"text": "Possibly dead Python function: eval_depth1_tree"}, "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-057d5fc285877054", "name": "Possibly dead Python function: count_params", "shortDescription": {"text": "Possibly dead Python function: count_params"}, "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-743c57310dd19cc2", "name": "Possibly dead Python function: lns_multiply", "shortDescription": {"text": "Possibly dead Python function: lns_multiply"}, "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-dc012663477cd33b", "name": "Possibly dead Python function: lns_divide", "shortDescription": {"text": "Possibly dead Python function: lns_divide"}, "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-13017d689491d803", "name": "Possibly dead Python function: ou_integrated_var", "shortDescription": {"text": "Possibly dead Python function: ou_integrated_var"}, "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-2bd06ea166d00686", "name": "Possibly dead Python function: recorder", "shortDescription": {"text": "Possibly dead Python function: recorder"}, "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-de2657cbf8db0afb", "name": "Possibly dead Python function: run_simulation", "shortDescription": {"text": "Possibly dead Python function: run_simulation"}, "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-76ca24ece831e001", "name": "Possibly dead Python function: sample_salinity_gradient_ms", "shortDescription": {"text": "Possibly dead Python function: sample_salinity_gradient_ms"}, "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-9c9401aac51ec717", "name": "Possibly dead Python function: rk4_advect_step", "shortDescription": {"text": "Possibly dead Python function: rk4_advect_step"}, "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-7e0727b07e4324dd", "name": "Possibly dead Python function: dyn_current", "shortDescription": {"text": "Possibly dead Python function: dyn_current"}, "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-a47ec757bd3b2b02", "name": "Possibly dead Python function: recorder", "shortDescription": {"text": "Possibly dead Python function: recorder"}, "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-3c68ca6db781b42a", "name": "Possibly dead Python function: dyn_current", "shortDescription": {"text": "Possibly dead Python function: dyn_current"}, "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-56f47b834e117227", "name": "Possibly dead Python function: available_prior_months", "shortDescription": {"text": "Possibly dead Python function: available_prior_months"}, "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-7c2b665d5a0ff1cc", "name": "Possibly dead Python function: dyn_current", "shortDescription": {"text": "Possibly dead Python function: dyn_current"}, "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-cd5e075a331b3229", "name": "Possibly dead Python function: recorder", "shortDescription": {"text": "Possibly dead Python function: recorder"}, "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-12780df189746cb3", "name": "Possibly dead Python function: logged_choose_depth", "shortDescription": {"text": "Possibly dead Python function: logged_choose_depth"}, "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-bf119c92aa4d810c", "name": "Possibly dead Python function: dyn_current", "shortDescription": {"text": "Possibly dead Python function: dyn_current"}, "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-69b28e0cdc298b8e", "name": "Possibly dead Python function: cur", "shortDescription": {"text": "Possibly dead Python function: cur"}, "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-9914bb144420a4d4", "name": "Possibly dead Python function: step_sub", "shortDescription": {"text": "Possibly dead Python function: step_sub"}, "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-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-b6be54b96c09081d", "name": "Very large file: tests/maritime/test_scenario_schema.py (1313 lines)", "shortDescription": {"text": "Very large file: tests/maritime/test_scenario_schema.py (1313 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-4e0a8c7898156ebc", "name": "Very large file: tests/maritime/test_sensors.py (1529 lines)", "shortDescription": {"text": "Very large file: tests/maritime/test_sensors.py (1529 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-2bbd29e3efb4849b", "name": "Very large file: experiments/harmonic_prototype/_fleet_sweep_v0.py (1617 lines)", "shortDescription": {"text": "Very large file: experiments/harmonic_prototype/_fleet_sweep_v0.py (1617 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-907a04f2ca7dfe84", "name": "Very large file: experiments/harmonic_prototype/_fleet_sweep_v0_analyze.py (2455 lines)", "shortDescription": {"text": "Very large file: experiments/harmonic_prototype/_fleet_sweep_v0_analyze.py (2455 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-97243799c2eddb51", "name": "Very large file: experiments/harmonic_prototype/_fleet_sim_v0.py (1510 lines)", "shortDescription": {"text": "Very large file: experiments/harmonic_prototype/_fleet_sim_v0.py (1510 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-70a5dd983e935f21", "name": "Very large file: experiments/harmonic_prototype/ballast_controller.py (1080 lines)", "shortDescription": {"text": "Very large file: experiments/harmonic_prototype/ballast_controller.py (1080 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-3b0b2514e6e4bb2d", "name": "Very large file: experiments/harmonic_prototype/rbpf_prototype/experiment.py (1506 lines)", "shortDescription": {"text": "Very large file: experiments/harmonic_prototype/rbpf_prototype/experiment.py (1506 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "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 1292 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-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 ci. 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-6c10344bdf57df51", "name": "Agent authority lacks a verifier contract: .claude/commands/opsx/sync.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/commands/opsx/sync.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-df8d7aecf447de62", "name": "Agent authority lacks a verifier contract: .claude/commands/opsx/archive.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/commands/opsx/archive.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-021b572fe2fa6b9c", "name": "Agent authority lacks a verifier contract: .claude/commands/opsx/apply.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/commands/opsx/apply.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-1ac6c95b74a11795", "name": "Agent authority lacks a verifier contract: .claude/skills/opsx:archive/SKILL.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/skills/opsx:archive/SKILL.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-6fd51e80fce28f7a", "name": "Agent authority lacks a verifier contract: .claude/skills/codex-review/SKILL.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/skills/codex-review/SKILL.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-3ad724f44f976e34", "name": "Agent authority lacks a verifier contract: .claude/skills/opsx:sync/SKILL.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/skills/opsx:sync/SKILL.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-7233946d69ecf2ec", "name": "Commented-code block (8 lines) in tests/maritime/test_dashboard.py:575", "shortDescription": {"text": "Commented-code block (8 lines) in tests/maritime/test_dashboard.py:575"}, "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-c93133abd38dcd87", "name": "Commented-code block (6 lines) in tests/maritime/test_run_pf_float.py:1132", "shortDescription": {"text": "Commented-code block (6 lines) in tests/maritime/test_run_pf_float.py:1132"}, "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-5cbba13977efbea8", "name": "Commented-code block (5 lines) in tests/maritime/test_dynamics.py:327", "shortDescription": {"text": "Commented-code block (5 lines) in tests/maritime/test_dynamics.py:327"}, "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-e16c74a16eb4ce3b", "name": "Commented-code block (11 lines) in tests/maritime/test_pf_float_weight.py:376", "shortDescription": {"text": "Commented-code block (11 lines) in tests/maritime/test_pf_float_weight.py:376"}, "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-5dc4dc78e9ff8d19", "name": "Commented-code block (7 lines) in tests/maritime/test_state_layout.py:429", "shortDescription": {"text": "Commented-code block (7 lines) in tests/maritime/test_state_layout.py:429"}, "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-6831c41c494b8265", "name": "Commented-code block (6 lines) in tests/maritime/test_pf_float_predict.py:725", "shortDescription": {"text": "Commented-code block (6 lines) in tests/maritime/test_pf_float_predict.py:725"}, "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-b1585cfac5850f46", "name": "Commented-code block (5 lines) in rtl/vectors/pf_weight_trace.py:182", "shortDescription": {"text": "Commented-code block (5 lines) in rtl/vectors/pf_weight_trace.py:182"}, "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-aa91f686d32d0083", "name": "Commented-code block (8 lines) in rtl/vectors/maritime/dynamics.py:29", "shortDescription": {"text": "Commented-code block (8 lines) in rtl/vectors/maritime/dynamics.py:29"}, "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-fd3e2606c07b821d", "name": "Legacy-named symbol `_vel_noise_unused` in rtl/vectors/maritime/pf_float.py:337", "shortDescription": {"text": "Legacy-named symbol `_vel_noise_unused` in rtl/vectors/maritime/pf_float.py:337"}, "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-698b43199b8af8b7", "name": "Commented-code block (11 lines) in rtl/vectors/maritime/pf_float.py:56", "shortDescription": {"text": "Commented-code block (11 lines) in rtl/vectors/maritime/pf_float.py:56"}, "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-e7590d245e82fe34", "name": "Commented-code block (7 lines) in experiments/01_eml_basics.py:95", "shortDescription": {"text": "Commented-code block (7 lines) in experiments/01_eml_basics.py:95"}, "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-e631e623230d5985", "name": "Commented-code block (7 lines) in experiments/06_lns_precision.py:277", "shortDescription": {"text": "Commented-code block (7 lines) in experiments/06_lns_precision.py:277"}, "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-a30710c9769ef249", "name": "Commented-code block (5 lines) in experiments/08_lns_cycle_accurate.py:32", "shortDescription": {"text": "Commented-code block (5 lines) in experiments/08_lns_cycle_accurate.py:32"}, "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-b1ca0a71f3593beb", "name": "Commented-code block (5 lines) in experiments/12_maritime_dashboard.py:39", "shortDescription": {"text": "Commented-code block (5 lines) in experiments/12_maritime_dashboard.py:39"}, "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-67dd44e8583baf71", "name": "Network/subprocess call without timeout or try/except \u2014 experiments/harmonic_prototype/_probe_gpu_mem.py:50", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 experiments/harmonic_prototype/_probe_gpu_mem.py:50"}, "fullDescription": {"text": "`subprocess.check_output(...)` here lacks both a `timeout=` arg and an enclosing try/except. This is exactly the class of bug that took down our git-clone earlier (HTTP/2 stream cancel surfaced as a fatal). Add a `timeout=` and wrap in try/except, or use a wrapper that retries."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-314509100ed2c311", "name": "Commented-code block (6 lines) in experiments/harmonic_prototype/23_acoustic_detection.py:73", "shortDescription": {"text": "Commented-code block (6 lines) in experiments/harmonic_prototype/23_acoustic_detection.py:73"}, "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-81035b36b2510131", "name": "Commented-code block (5 lines) in experiments/harmonic_prototype/_diag_surfacing_compare.py:150", "shortDescription": {"text": "Commented-code block (5 lines) in experiments/harmonic_prototype/_diag_surfacing_compare.py:150"}, "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-a087fda51d8633a4", "name": "Commented-code block (8 lines) in experiments/harmonic_prototype/17_duty_cycle_single_node.py:68", "shortDescription": {"text": "Commented-code block (8 lines) in experiments/harmonic_prototype/17_duty_cycle_single_node.py:68"}, "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-f3e1ba292e77f641", "name": "Commented-code block (5 lines) in experiments/harmonic_prototype/power_budget.py:222", "shortDescription": {"text": "Commented-code block (5 lines) in experiments/harmonic_prototype/power_budget.py:222"}, "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-a19639adb7b91ae0", "name": "Commented-code block (6 lines) in experiments/harmonic_prototype/_fleet_sweep_v0.py:55", "shortDescription": {"text": "Commented-code block (6 lines) in experiments/harmonic_prototype/_fleet_sweep_v0.py:55"}, "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-0f626ceb0994f334", "name": "Commented-code block (5 lines) in experiments/harmonic_prototype/_fleet_sweep_v0_analyze.py:1877", "shortDescription": {"text": "Commented-code block (5 lines) in experiments/harmonic_prototype/_fleet_sweep_v0_analyze.py:1877"}, "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-c43bf7c35a0d3f89", "name": "Commented-code block (6 lines) in experiments/harmonic_prototype/mpc_rollout_jax.py:83", "shortDescription": {"text": "Commented-code block (6 lines) in experiments/harmonic_prototype/mpc_rollout_jax.py:83"}, "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-e9a348d27df451cd", "name": "Legacy-named symbol `iid_legacy` in experiments/harmonic_prototype/_smoke_ctd_one_station.py:217", "shortDescription": {"text": "Legacy-named symbol `iid_legacy` in experiments/harmonic_prototype/_smoke_ctd_one_station.py:217"}, "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-e8fb1fab9f26736a", "name": "Commented-code block (5 lines) in experiments/harmonic_prototype/_smoke_ctd_one_station.py:222", "shortDescription": {"text": "Commented-code block (5 lines) in experiments/harmonic_prototype/_smoke_ctd_one_station.py:222"}, "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-d9c67140ff5b9e97", "name": "Commented-code block (8 lines) in experiments/harmonic_prototype/_drop_point_optimizer.py:107", "shortDescription": {"text": "Commented-code block (8 lines) in experiments/harmonic_prototype/_drop_point_optimizer.py:107"}, "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-12188ab5c9809a82", "name": "Commented-code block (5 lines) in experiments/harmonic_prototype/19_pf_with_bias_learning.py:111", "shortDescription": {"text": "Commented-code block (5 lines) in experiments/harmonic_prototype/19_pf_with_bias_learning.py:111"}, "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-58083eeb2ca97277", "name": "Commented-code block (5 lines) in experiments/harmonic_prototype/_diag_bias_vs_truth.py:207", "shortDescription": {"text": "Commented-code block (5 lines) in experiments/harmonic_prototype/_diag_bias_vs_truth.py:207"}, "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-a5d63fd5c3a75d00", "name": "Commented-code block (8 lines) in experiments/harmonic_prototype/_fleet_sim_v0.py:66", "shortDescription": {"text": "Commented-code block (8 lines) in experiments/harmonic_prototype/_fleet_sim_v0.py:66"}, "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-2affeff45eb8830d", "name": "Commented-code block (8 lines) in experiments/harmonic_prototype/22_rbpf_v2_bias_learning.py:95", "shortDescription": {"text": "Commented-code block (8 lines) in experiments/harmonic_prototype/22_rbpf_v2_bias_learning.py:95"}, "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-25244604e9505666", "name": "Commented-code block (6 lines) in experiments/harmonic_prototype/salishseacast_cache.py:51", "shortDescription": {"text": "Commented-code block (6 lines) in experiments/harmonic_prototype/salishseacast_cache.py:51"}, "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-ef9cd83f4b9dcb3e", "name": "Legacy-named symbol `iid_legacy` in experiments/harmonic_prototype/_diag_sigma_pos_calibration.py:175", "shortDescription": {"text": "Legacy-named symbol `iid_legacy` in experiments/harmonic_prototype/_diag_sigma_pos_calibration.py:175"}, "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-0ffc2330a5d2c0e2", "name": "Commented-code block (5 lines) in experiments/harmonic_prototype/_summarize_sweep_axes.py:181", "shortDescription": {"text": "Commented-code block (5 lines) in experiments/harmonic_prototype/_summarize_sweep_axes.py:181"}, "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-ec619ddcf44495a4", "name": "Commented-code block (10 lines) in experiments/harmonic_prototype/04_run_utide.py:109", "shortDescription": {"text": "Commented-code block (10 lines) in experiments/harmonic_prototype/04_run_utide.py:109"}, "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-ca8d9044d4c0b748", "name": "Commented-code block (6 lines) in experiments/harmonic_prototype/13_fin_thrust_sweep.py:328", "shortDescription": {"text": "Commented-code block (6 lines) in experiments/harmonic_prototype/13_fin_thrust_sweep.py:328"}, "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-235549f983a7b2fe", "name": "Commented-code block (7 lines) in experiments/harmonic_prototype/ballast_controller.py:165", "shortDescription": {"text": "Commented-code block (7 lines) in experiments/harmonic_prototype/ballast_controller.py:165"}, "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-9b6f3a2f633639b1", "name": "Commented-code block (9 lines) in experiments/harmonic_prototype/_diag_site_authority.py:64", "shortDescription": {"text": "Commented-code block (9 lines) in experiments/harmonic_prototype/_diag_site_authority.py:64"}, "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-1a854dd092a14f81", "name": "Commented-code block (6 lines) in experiments/harmonic_prototype/submesoscale.py:33", "shortDescription": {"text": "Commented-code block (6 lines) in experiments/harmonic_prototype/submesoscale.py:33"}, "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-256052b5040d093a", "name": "Legacy-named symbol `iid_legacy` in experiments/harmonic_prototype/rbpf_prototype/rbpf.py:82", "shortDescription": {"text": "Legacy-named symbol `iid_legacy` in experiments/harmonic_prototype/rbpf_prototype/rbpf.py:82"}, "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-03dba2b4caaa8d2a", "name": "Commented-code block (5 lines) in experiments/harmonic_prototype/rbpf_prototype/rbpf.py:33", "shortDescription": {"text": "Commented-code block (5 lines) in experiments/harmonic_prototype/rbpf_prototype/rbpf.py:33"}, "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-9f24063bf501dc21", "name": "Legacy-named symbol `iid_legacy` in experiments/harmonic_prototype/rbpf_prototype/experiment.py:558", "shortDescription": {"text": "Legacy-named symbol `iid_legacy` in experiments/harmonic_prototype/rbpf_prototype/experiment.py:558"}, "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-0e920600c5e4edcf", "name": "Commented-code block (8 lines) in experiments/harmonic_prototype/rbpf_prototype/experiment.py:81", "shortDescription": {"text": "Commented-code block (8 lines) in experiments/harmonic_prototype/rbpf_prototype/experiment.py:81"}, "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-fc4afa0ac3f6ab4d", "name": "Commented-code block (5 lines) in experiments/harmonic_prototype/rbpf_prototype/rts_smoother.py:193", "shortDescription": {"text": "Commented-code block (5 lines) in experiments/harmonic_prototype/rbpf_prototype/rts_smoother.py:193"}, "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-639abfc4e2410064", "name": "Commented-code block (5 lines) in experiments/harmonic_prototype/rbpf_prototype/bias_field.py:150", "shortDescription": {"text": "Commented-code block (5 lines) in experiments/harmonic_prototype/rbpf_prototype/bias_field.py:150"}, "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-d0a05555b694baab", "name": "Commented-code block (5 lines) in experiments/harmonic_prototype/rbpf_prototype/surfacing.py:34", "shortDescription": {"text": "Commented-code block (5 lines) in experiments/harmonic_prototype/rbpf_prototype/surfacing.py:34"}, "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-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:\nrtl/vectors/maritime/scenario_truth_schema.py:onboard_map, rtl/vectors/maritime/scenario_schema.py:onboard_map\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-0027e313ade46c8f", "name": "Near-duplicate function bodies in 7 places", "shortDescription": {"text": "Near-duplicate function bodies in 7 places"}, "fullDescription": {"text": "Functions with the same first-5-line body hash:\nrtl/vectors/maritime/sensors.py:name, rtl/vectors/maritime/sensors.py:name, rtl/vectors/maritime/sensors.py:name, rtl/vectors/maritime/sensors.py:name\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-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:\nrtl/vectors/maritime/sensors.py:sample, rtl/vectors/maritime/sensors.py:sample, rtl/vectors/maritime/sensors.py:sample, rtl/vectors/maritime/sensors.py:sample\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-0d32ef4b8a679ae8", "name": "Near-duplicate function bodies in 24 places", "shortDescription": {"text": "Near-duplicate function bodies in 24 places"}, "fullDescription": {"text": "Functions with the same first-5-line body hash:\nexperiments/harmonic_prototype/_probe_gpu_mem.py:sample, experiments/harmonic_prototype/_probe_gpu_mem.py:sample, experiments/harmonic_prototype/_probe_gpu_mem.py:sample, experiments/harmonic_prototype/_diag_rts_smoother_multiseed.py:sample\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:\nexperiments/harmonic_prototype/_probe_gpu_mem.py:sample_batched, experiments/harmonic_prototype/_probe_gpu_mem.py:sample_batched, experiments/harmonic_prototype/_diag_rts_smoother_multiseed.py:sample_batched, experiments/harmonic_prototype/_diag_rts_smoother_multiseed.py:sample_batched\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/21650"}, "properties": {"repository": "trrad/maritime-acoustic-drifter-detection-nets", "repoUrl": "https://github.com/trrad/maritime-acoustic-drifter-detection-nets", "branch": "main"}, "results": [{"ruleId": "scanner-8efb2126cedacc84", "level": "note", "message": {"text": "Possibly dead Python function: load_regional_map"}, "properties": {"repobilityId": "d05ced5688730fc5", "scanner": "scanner-primary", "fingerprint": "8efb2126cedacc84", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "rtl/vectors/maritime/map_payload.py:177"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-34cad0abfab0018e", "level": "note", "message": {"text": "Possibly dead Python function: parse_bbox"}, "properties": {"repobilityId": "61bf43bb828dc8dd", "scanner": "scanner-primary", "fingerprint": "34cad0abfab0018e", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "rtl/vectors/maritime/gen_maritime_scenario.py:48"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-aed4412be96c9353", "level": "note", "message": {"text": "Possibly dead Python function: find_exact_tree"}, "properties": {"repobilityId": "36fa50adfa101c46", "scanner": "scanner-primary", "fingerprint": "aed4412be96c9353", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "experiments/06_lns_precision.py:175"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-37df1493363ce6e3", "level": "note", "message": {"text": "Possibly dead Python function: lns8_eml"}, "properties": {"repobilityId": "ba37aad89940f437", "scanner": "scanner-primary", "fingerprint": "37df1493363ce6e3", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "experiments/08_lns_cycle_accurate.py:353"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-5e7de3dc5470e6e0", "level": "note", "message": {"text": "Possibly dead Python function: do_GET"}, "properties": {"repobilityId": "2d943bb45e4f13bd", "scanner": "scanner-primary", "fingerprint": "5e7de3dc5470e6e0", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "experiments/12_maritime_dashboard.py:952"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-05da4fe91c1440c8", "level": "note", "message": {"text": "Possibly dead Python function: log_message"}, "properties": {"repobilityId": "965f3150b4af5b2e", "scanner": "scanner-primary", "fingerprint": "05da4fe91c1440c8", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "experiments/12_maritime_dashboard.py:971"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-cc14eee8e46d1228", "level": "note", "message": {"text": "Possibly dead Python function: do_GET"}, "properties": {"repobilityId": "2d943bb45e4f13bd", "scanner": "scanner-primary", "fingerprint": "cc14eee8e46d1228", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "experiments/11_pf_dashboard.py:454"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-8dc48369c9b12e6f", "level": "note", "message": {"text": "Possibly dead Python function: log_message"}, "properties": {"repobilityId": "965f3150b4af5b2e", "scanner": "scanner-primary", "fingerprint": "8dc48369c9b12e6f", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "experiments/11_pf_dashboard.py:487"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-c514298515a82e97", "level": "note", "message": {"text": "Possibly dead Python function: read_stdin"}, "properties": {"repobilityId": "643ebb06e7e4abf4", "scanner": "scanner-primary", "fingerprint": "c514298515a82e97", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "experiments/11_pf_dashboard.py:495"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-cde619f16b9082d7", "level": "note", "message": {"text": "Possibly dead Python function: eval_depth2_tree"}, "properties": {"repobilityId": "a6bfab5ccb18628e", "scanner": "scanner-primary", "fingerprint": "cde619f16b9082d7", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "experiments/02_master_formula.py:45"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-2616d6c4cffe7366", "level": "note", "message": {"text": "Possibly dead Python function: eval_depth1_tree"}, "properties": {"repobilityId": "b898b83440607c57", "scanner": "scanner-primary", "fingerprint": "2616d6c4cffe7366", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "experiments/02_master_formula.py:74"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-057d5fc285877054", "level": "note", "message": {"text": "Possibly dead Python function: count_params"}, "properties": {"repobilityId": "fdcfa89cdd1e0da8", "scanner": "scanner-primary", "fingerprint": "057d5fc285877054", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "experiments/04_torch_master_formula.py:225"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-743c57310dd19cc2", "level": "note", "message": {"text": "Possibly dead Python function: lns_multiply"}, "properties": {"repobilityId": "7513e1d6b509d2df", "scanner": "scanner-primary", "fingerprint": "743c57310dd19cc2", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "experiments/03_lns_prototype.py:53"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-dc012663477cd33b", "level": "note", "message": {"text": "Possibly dead Python function: lns_divide"}, "properties": {"repobilityId": "86bbdef3830a9a21", "scanner": "scanner-primary", "fingerprint": "dc012663477cd33b", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "experiments/03_lns_prototype.py:60"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-13017d689491d803", "level": "note", "message": {"text": "Possibly dead Python function: ou_integrated_var"}, "properties": {"repobilityId": "09f1cef0e9252032", "scanner": "scanner-primary", "fingerprint": "13017d689491d803", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "experiments/harmonic_prototype/process_noise.py:115"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-2bd06ea166d00686", "level": "note", "message": {"text": "Possibly dead Python function: recorder"}, "properties": {"repobilityId": "a44799651e3be78f", "scanner": "scanner-primary", "fingerprint": "2bd06ea166d00686", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "experiments/harmonic_prototype/_probe_gpu_mem.py:255"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-de2657cbf8db0afb", "level": "note", "message": {"text": "Possibly dead Python function: run_simulation"}, "properties": {"repobilityId": "d5bd0ffa4471b3c2", "scanner": "scanner-primary", "fingerprint": "de2657cbf8db0afb", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "experiments/harmonic_prototype/09_sim_skeleton.py:110"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-76ca24ece831e001", "level": "note", "message": {"text": "Possibly dead Python function: sample_salinity_gradient_ms"}, "properties": {"repobilityId": "b7b72860c9f631ac", "scanner": "scanner-primary", "fingerprint": "76ca24ece831e001", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "experiments/harmonic_prototype/truth_field.py:172"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-9c9401aac51ec717", "level": "note", "message": {"text": "Possibly dead Python function: rk4_advect_step"}, "properties": {"repobilityId": "345ffec52243154e", "scanner": "scanner-primary", "fingerprint": "9c9401aac51ec717", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "experiments/harmonic_prototype/truth_field.py:356"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-7e0727b07e4324dd", "level": "note", "message": {"text": "Possibly dead Python function: dyn_current"}, "properties": {"repobilityId": "40d26c7286982ffa", "scanner": "scanner-primary", "fingerprint": "7e0727b07e4324dd", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "experiments/harmonic_prototype/16_glider_transition_sweep.py:86"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-a47ec757bd3b2b02", "level": "note", "message": {"text": "Possibly dead Python function: recorder"}, "properties": {"repobilityId": "a44799651e3be78f", "scanner": "scanner-primary", "fingerprint": "a47ec757bd3b2b02", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "experiments/harmonic_prototype/_diag_calib_drilldown.py:162"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-3c68ca6db781b42a", "level": "note", "message": {"text": "Possibly dead Python function: dyn_current"}, "properties": {"repobilityId": "40d26c7286982ffa", "scanner": "scanner-primary", "fingerprint": "3c68ca6db781b42a", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "experiments/harmonic_prototype/15_passive_drag_sweep.py:83"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-56f47b834e117227", "level": "note", "message": {"text": "Possibly dead Python function: available_prior_months"}, "properties": {"repobilityId": "084e56bf3b8511a1", "scanner": "scanner-primary", "fingerprint": "56f47b834e117227", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "experiments/harmonic_prototype/knowledge_sources.py:257"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-7c2b665d5a0ff1cc", "level": "note", "message": {"text": "Possibly dead Python function: dyn_current"}, "properties": {"repobilityId": "40d26c7286982ffa", "scanner": "scanner-primary", "fingerprint": "7c2b665d5a0ff1cc", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "experiments/harmonic_prototype/17_duty_cycle_single_node.py:353"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-cd5e075a331b3229", "level": "note", "message": {"text": "Possibly dead Python function: recorder"}, "properties": {"repobilityId": "a44799651e3be78f", "scanner": "scanner-primary", "fingerprint": "cd5e075a331b3229", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "experiments/harmonic_prototype/_diag_bias_cov_shrinkage.py:151"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-12780df189746cb3", "level": "note", "message": {"text": "Possibly dead Python function: logged_choose_depth"}, "properties": {"repobilityId": "0122022bceda0f3b", "scanner": "scanner-primary", "fingerprint": "12780df189746cb3", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "experiments/harmonic_prototype/_diag_rung_chatter.py:193"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-bf119c92aa4d810c", "level": "note", "message": {"text": "Possibly dead Python function: dyn_current"}, "properties": {"repobilityId": "40d26c7286982ffa", "scanner": "scanner-primary", "fingerprint": "bf119c92aa4d810c", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "experiments/harmonic_prototype/_diag_20_trigger.py:80"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-69b28e0cdc298b8e", "level": "note", "message": {"text": "Possibly dead Python function: cur"}, "properties": {"repobilityId": "ca0109f334319345", "scanner": "scanner-primary", "fingerprint": "69b28e0cdc298b8e", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "experiments/harmonic_prototype/_diag_sog_site_survey.py:201"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-9914bb144420a4d4", "level": "note", "message": {"text": "Possibly dead Python function: step_sub"}, "properties": {"repobilityId": "d5a2d5f4a0d94e05", "scanner": "scanner-primary", "fingerprint": "9914bb144420a4d4", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "experiments/harmonic_prototype/mpc_rollout_jax.py:406"}, "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-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-b6be54b96c09081d", "level": "note", "message": {"text": "Very large file: tests/maritime/test_scenario_schema.py (1313 lines)"}, "properties": {"repobilityId": "a8e51af92614ca81", "scanner": "scanner-primary", "fingerprint": "b6be54b96c09081d", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-4e0a8c7898156ebc", "level": "note", "message": {"text": "Very large file: tests/maritime/test_sensors.py (1529 lines)"}, "properties": {"repobilityId": "4a4d10b5f00d13b1", "scanner": "scanner-primary", "fingerprint": "4e0a8c7898156ebc", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-2bbd29e3efb4849b", "level": "note", "message": {"text": "Very large file: experiments/harmonic_prototype/_fleet_sweep_v0.py (1617 lines)"}, "properties": {"repobilityId": "10b4d800c6711d0c", "scanner": "scanner-primary", "fingerprint": "2bbd29e3efb4849b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-907a04f2ca7dfe84", "level": "note", "message": {"text": "Very large file: experiments/harmonic_prototype/_fleet_sweep_v0_analyze.py (2455 lines)"}, "properties": {"repobilityId": "507c803cd802c668", "scanner": "scanner-primary", "fingerprint": "907a04f2ca7dfe84", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-97243799c2eddb51", "level": "note", "message": {"text": "Very large file: experiments/harmonic_prototype/_fleet_sim_v0.py (1510 lines)"}, "properties": {"repobilityId": "bf0fbedcb320aefd", "scanner": "scanner-primary", "fingerprint": "97243799c2eddb51", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-70a5dd983e935f21", "level": "note", "message": {"text": "Very large file: experiments/harmonic_prototype/ballast_controller.py (1080 lines)"}, "properties": {"repobilityId": "bee788719728e5d3", "scanner": "scanner-primary", "fingerprint": "70a5dd983e935f21", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-3b0b2514e6e4bb2d", "level": "note", "message": {"text": "Very large file: experiments/harmonic_prototype/rbpf_prototype/experiment.py (1506 lines)"}, "properties": {"repobilityId": "a9d8604cb2fe203c", "scanner": "scanner-primary", "fingerprint": "3b0b2514e6e4bb2d", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-3ab5d313dda8e5f9", "level": "note", "message": {"text": "Debug logging residue appears in source files"}, "properties": {"repobilityId": "2e8e10051dc5461b", "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": "549595db4190b9ef", "scanner": "scanner-primary", "fingerprint": "2d0c7b7ab8f8aacf", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["placeholder", "mock-data", "critical-flow", "generated-repo-pattern"]}}, {"ruleId": "scanner-749d4bc1bd66df5f", "level": "warning", "message": {"text": "Agent instructions exist but release-hardening basics are missing"}, "properties": {"repobilityId": "54c93d43c0291ae9", "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": "a8060d11f3d45070", "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": "e5dae7957835be54", "scanner": "scanner-primary", "fingerprint": "8424db9c75e04ba4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["provenance", "git-history", "generated-repo-pattern"]}}, {"ruleId": "scanner-6c10344bdf57df51", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/commands/opsx/sync.md"}, "properties": {"repobilityId": "c67e0c803c0dbcac", "scanner": "scanner-primary", "fingerprint": "6c10344bdf57df51", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/commands/opsx/sync.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-df8d7aecf447de62", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/commands/opsx/archive.md"}, "properties": {"repobilityId": "222623e99b9cb4f7", "scanner": "scanner-primary", "fingerprint": "df8d7aecf447de62", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/commands/opsx/archive.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-021b572fe2fa6b9c", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/commands/opsx/apply.md"}, "properties": {"repobilityId": "5ba922ec1bca34d1", "scanner": "scanner-primary", "fingerprint": "021b572fe2fa6b9c", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/commands/opsx/apply.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-1ac6c95b74a11795", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/skills/opsx:archive/SKILL.md"}, "properties": {"repobilityId": "5751297a68f3754d", "scanner": "scanner-primary", "fingerprint": "1ac6c95b74a11795", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/opsx:archive/SKILL.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-6fd51e80fce28f7a", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/skills/codex-review/SKILL.md"}, "properties": {"repobilityId": "18570f147c66eb53", "scanner": "scanner-primary", "fingerprint": "6fd51e80fce28f7a", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/codex-review/SKILL.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-3ad724f44f976e34", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/skills/opsx:sync/SKILL.md"}, "properties": {"repobilityId": "388b211c72a20ae7", "scanner": "scanner-primary", "fingerprint": "3ad724f44f976e34", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/opsx:sync/SKILL.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-7233946d69ecf2ec", "level": "none", "message": {"text": "Commented-code block (8 lines) in tests/maritime/test_dashboard.py:575"}, "properties": {"repobilityId": "19c83b93d43e21d0", "scanner": "scanner-primary", "fingerprint": "7233946d69ecf2ec", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c93133abd38dcd87", "level": "none", "message": {"text": "Commented-code block (6 lines) in tests/maritime/test_run_pf_float.py:1132"}, "properties": {"repobilityId": "d84dbb9c2c74dddb", "scanner": "scanner-primary", "fingerprint": "c93133abd38dcd87", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5cbba13977efbea8", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/maritime/test_dynamics.py:327"}, "properties": {"repobilityId": "a1a305c1739b60e0", "scanner": "scanner-primary", "fingerprint": "5cbba13977efbea8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e16c74a16eb4ce3b", "level": "none", "message": {"text": "Commented-code block (11 lines) in tests/maritime/test_pf_float_weight.py:376"}, "properties": {"repobilityId": "acdfa49c5b03252b", "scanner": "scanner-primary", "fingerprint": "e16c74a16eb4ce3b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5dc4dc78e9ff8d19", "level": "none", "message": {"text": "Commented-code block (7 lines) in tests/maritime/test_state_layout.py:429"}, "properties": {"repobilityId": "686b37ef97acbd51", "scanner": "scanner-primary", "fingerprint": "5dc4dc78e9ff8d19", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6831c41c494b8265", "level": "none", "message": {"text": "Commented-code block (6 lines) in tests/maritime/test_pf_float_predict.py:725"}, "properties": {"repobilityId": "33c8f8ce6f95b15e", "scanner": "scanner-primary", "fingerprint": "6831c41c494b8265", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b1585cfac5850f46", "level": "none", "message": {"text": "Commented-code block (5 lines) in rtl/vectors/pf_weight_trace.py:182"}, "properties": {"repobilityId": "c4a07a1b1bca1279", "scanner": "scanner-primary", "fingerprint": "b1585cfac5850f46", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-aa91f686d32d0083", "level": "none", "message": {"text": "Commented-code block (8 lines) in rtl/vectors/maritime/dynamics.py:29"}, "properties": {"repobilityId": "002a1138bc62a1fb", "scanner": "scanner-primary", "fingerprint": "aa91f686d32d0083", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-fd3e2606c07b821d", "level": "note", "message": {"text": "Legacy-named symbol `_vel_noise_unused` in rtl/vectors/maritime/pf_float.py:337"}, "properties": {"repobilityId": "8258056d6b78f77f", "scanner": "scanner-primary", "fingerprint": "fd3e2606c07b821d", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-698b43199b8af8b7", "level": "none", "message": {"text": "Commented-code block (11 lines) in rtl/vectors/maritime/pf_float.py:56"}, "properties": {"repobilityId": "2b0d2de9b57c62de", "scanner": "scanner-primary", "fingerprint": "698b43199b8af8b7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e7590d245e82fe34", "level": "none", "message": {"text": "Commented-code block (7 lines) in experiments/01_eml_basics.py:95"}, "properties": {"repobilityId": "5cf8aa14d2aec251", "scanner": "scanner-primary", "fingerprint": "e7590d245e82fe34", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e631e623230d5985", "level": "none", "message": {"text": "Commented-code block (7 lines) in experiments/06_lns_precision.py:277"}, "properties": {"repobilityId": "1e4fc096c0e9603c", "scanner": "scanner-primary", "fingerprint": "e631e623230d5985", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a30710c9769ef249", "level": "none", "message": {"text": "Commented-code block (5 lines) in experiments/08_lns_cycle_accurate.py:32"}, "properties": {"repobilityId": "0f359c9bdb5f2a93", "scanner": "scanner-primary", "fingerprint": "a30710c9769ef249", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b1ca0a71f3593beb", "level": "none", "message": {"text": "Commented-code block (5 lines) in experiments/12_maritime_dashboard.py:39"}, "properties": {"repobilityId": "2994d682d043d174", "scanner": "scanner-primary", "fingerprint": "b1ca0a71f3593beb", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-67dd44e8583baf71", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 experiments/harmonic_prototype/_probe_gpu_mem.py:50"}, "properties": {"repobilityId": "fd897e2f1b5c5f77", "scanner": "scanner-primary", "fingerprint": "67dd44e8583baf71", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-314509100ed2c311", "level": "none", "message": {"text": "Commented-code block (6 lines) in experiments/harmonic_prototype/23_acoustic_detection.py:73"}, "properties": {"repobilityId": "3259ab1996cc113d", "scanner": "scanner-primary", "fingerprint": "314509100ed2c311", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-81035b36b2510131", "level": "none", "message": {"text": "Commented-code block (5 lines) in experiments/harmonic_prototype/_diag_surfacing_compare.py:150"}, "properties": {"repobilityId": "be2c2bc850da31cb", "scanner": "scanner-primary", "fingerprint": "81035b36b2510131", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a087fda51d8633a4", "level": "none", "message": {"text": "Commented-code block (8 lines) in experiments/harmonic_prototype/17_duty_cycle_single_node.py:68"}, "properties": {"repobilityId": "d5d24d4c6905af5e", "scanner": "scanner-primary", "fingerprint": "a087fda51d8633a4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f3e1ba292e77f641", "level": "none", "message": {"text": "Commented-code block (5 lines) in experiments/harmonic_prototype/power_budget.py:222"}, "properties": {"repobilityId": "7d34d8d5d5cc233f", "scanner": "scanner-primary", "fingerprint": "f3e1ba292e77f641", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a19639adb7b91ae0", "level": "none", "message": {"text": "Commented-code block (6 lines) in experiments/harmonic_prototype/_fleet_sweep_v0.py:55"}, "properties": {"repobilityId": "e15c8eef2ab01d32", "scanner": "scanner-primary", "fingerprint": "a19639adb7b91ae0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0f626ceb0994f334", "level": "none", "message": {"text": "Commented-code block (5 lines) in experiments/harmonic_prototype/_fleet_sweep_v0_analyze.py:1877"}, "properties": {"repobilityId": "8d839089dc741793", "scanner": "scanner-primary", "fingerprint": "0f626ceb0994f334", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c43bf7c35a0d3f89", "level": "none", "message": {"text": "Commented-code block (6 lines) in experiments/harmonic_prototype/mpc_rollout_jax.py:83"}, "properties": {"repobilityId": "ca4b47b21b773bbf", "scanner": "scanner-primary", "fingerprint": "c43bf7c35a0d3f89", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e9a348d27df451cd", "level": "note", "message": {"text": "Legacy-named symbol `iid_legacy` in experiments/harmonic_prototype/_smoke_ctd_one_station.py:217"}, "properties": {"repobilityId": "fb20b3016c983e22", "scanner": "scanner-primary", "fingerprint": "e9a348d27df451cd", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-e8fb1fab9f26736a", "level": "none", "message": {"text": "Commented-code block (5 lines) in experiments/harmonic_prototype/_smoke_ctd_one_station.py:222"}, "properties": {"repobilityId": "afd8a1f7b428ea21", "scanner": "scanner-primary", "fingerprint": "e8fb1fab9f26736a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d9c67140ff5b9e97", "level": "none", "message": {"text": "Commented-code block (8 lines) in experiments/harmonic_prototype/_drop_point_optimizer.py:107"}, "properties": {"repobilityId": "0b05f9e238958f5c", "scanner": "scanner-primary", "fingerprint": "d9c67140ff5b9e97", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-12188ab5c9809a82", "level": "none", "message": {"text": "Commented-code block (5 lines) in experiments/harmonic_prototype/19_pf_with_bias_learning.py:111"}, "properties": {"repobilityId": "42f65bd01c43d612", "scanner": "scanner-primary", "fingerprint": "12188ab5c9809a82", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-58083eeb2ca97277", "level": "none", "message": {"text": "Commented-code block (5 lines) in experiments/harmonic_prototype/_diag_bias_vs_truth.py:207"}, "properties": {"repobilityId": "5c48dafe5eb4f746", "scanner": "scanner-primary", "fingerprint": "58083eeb2ca97277", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a5d63fd5c3a75d00", "level": "none", "message": {"text": "Commented-code block (8 lines) in experiments/harmonic_prototype/_fleet_sim_v0.py:66"}, "properties": {"repobilityId": "ea2474338436c6fb", "scanner": "scanner-primary", "fingerprint": "a5d63fd5c3a75d00", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2affeff45eb8830d", "level": "none", "message": {"text": "Commented-code block (8 lines) in experiments/harmonic_prototype/22_rbpf_v2_bias_learning.py:95"}, "properties": {"repobilityId": "31526d4ff6ac2543", "scanner": "scanner-primary", "fingerprint": "2affeff45eb8830d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-25244604e9505666", "level": "none", "message": {"text": "Commented-code block (6 lines) in experiments/harmonic_prototype/salishseacast_cache.py:51"}, "properties": {"repobilityId": "3b1265d04410c9c9", "scanner": "scanner-primary", "fingerprint": "25244604e9505666", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ef9cd83f4b9dcb3e", "level": "note", "message": {"text": "Legacy-named symbol `iid_legacy` in experiments/harmonic_prototype/_diag_sigma_pos_calibration.py:175"}, "properties": {"repobilityId": "0b07cc6a23a1ccdb", "scanner": "scanner-primary", "fingerprint": "ef9cd83f4b9dcb3e", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-0ffc2330a5d2c0e2", "level": "none", "message": {"text": "Commented-code block (5 lines) in experiments/harmonic_prototype/_summarize_sweep_axes.py:181"}, "properties": {"repobilityId": "a1b5b5cd58edf3e9", "scanner": "scanner-primary", "fingerprint": "0ffc2330a5d2c0e2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ec619ddcf44495a4", "level": "none", "message": {"text": "Commented-code block (10 lines) in experiments/harmonic_prototype/04_run_utide.py:109"}, "properties": {"repobilityId": "872f679b8e732b44", "scanner": "scanner-primary", "fingerprint": "ec619ddcf44495a4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ca8d9044d4c0b748", "level": "none", "message": {"text": "Commented-code block (6 lines) in experiments/harmonic_prototype/13_fin_thrust_sweep.py:328"}, "properties": {"repobilityId": "dc60bc5b84558c5b", "scanner": "scanner-primary", "fingerprint": "ca8d9044d4c0b748", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-235549f983a7b2fe", "level": "none", "message": {"text": "Commented-code block (7 lines) in experiments/harmonic_prototype/ballast_controller.py:165"}, "properties": {"repobilityId": "a79c6aeb76c1f2d0", "scanner": "scanner-primary", "fingerprint": "235549f983a7b2fe", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9b6f3a2f633639b1", "level": "none", "message": {"text": "Commented-code block (9 lines) in experiments/harmonic_prototype/_diag_site_authority.py:64"}, "properties": {"repobilityId": "ccd5d344778f3fd9", "scanner": "scanner-primary", "fingerprint": "9b6f3a2f633639b1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1a854dd092a14f81", "level": "none", "message": {"text": "Commented-code block (6 lines) in experiments/harmonic_prototype/submesoscale.py:33"}, "properties": {"repobilityId": "4c879bc1e39cc595", "scanner": "scanner-primary", "fingerprint": "1a854dd092a14f81", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-256052b5040d093a", "level": "note", "message": {"text": "Legacy-named symbol `iid_legacy` in experiments/harmonic_prototype/rbpf_prototype/rbpf.py:82"}, "properties": {"repobilityId": "536e8301997fca91", "scanner": "scanner-primary", "fingerprint": "256052b5040d093a", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-03dba2b4caaa8d2a", "level": "none", "message": {"text": "Commented-code block (5 lines) in experiments/harmonic_prototype/rbpf_prototype/rbpf.py:33"}, "properties": {"repobilityId": "a0e9cdf54b732dbf", "scanner": "scanner-primary", "fingerprint": "03dba2b4caaa8d2a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9f24063bf501dc21", "level": "note", "message": {"text": "Legacy-named symbol `iid_legacy` in experiments/harmonic_prototype/rbpf_prototype/experiment.py:558"}, "properties": {"repobilityId": "6a8be092d4893bef", "scanner": "scanner-primary", "fingerprint": "9f24063bf501dc21", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-0e920600c5e4edcf", "level": "none", "message": {"text": "Commented-code block (8 lines) in experiments/harmonic_prototype/rbpf_prototype/experiment.py:81"}, "properties": {"repobilityId": "2afe8152ba5fe9bf", "scanner": "scanner-primary", "fingerprint": "0e920600c5e4edcf", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-fc4afa0ac3f6ab4d", "level": "none", "message": {"text": "Commented-code block (5 lines) in experiments/harmonic_prototype/rbpf_prototype/rts_smoother.py:193"}, "properties": {"repobilityId": "8d70934c2ec371bc", "scanner": "scanner-primary", "fingerprint": "fc4afa0ac3f6ab4d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-639abfc4e2410064", "level": "none", "message": {"text": "Commented-code block (5 lines) in experiments/harmonic_prototype/rbpf_prototype/bias_field.py:150"}, "properties": {"repobilityId": "37028d25565dc52e", "scanner": "scanner-primary", "fingerprint": "639abfc4e2410064", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d0a05555b694baab", "level": "none", "message": {"text": "Commented-code block (5 lines) in experiments/harmonic_prototype/rbpf_prototype/surfacing.py:34"}, "properties": {"repobilityId": "3dd544235621e1a0", "scanner": "scanner-primary", "fingerprint": "d0a05555b694baab", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "863add5f3f13381e", "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": "c5c76f509034964e", "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": "b8630d66f202046f", "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": "c2b3ade03eaa18d9", "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": "22ccf36668672880", "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": "4dbf5f5dbef702c4", "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": "25b03f2244388617", "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": "abd0e16de9a8d7c9", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-0027e313ade46c8f", "level": "note", "message": {"text": "Near-duplicate function bodies in 7 places"}, "properties": {"repobilityId": "63414ef544ae2bd9", "scanner": "scanner-primary", "fingerprint": "0027e313ade46c8f", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-0027e313ade46c8f", "level": "note", "message": {"text": "Near-duplicate function bodies in 7 places"}, "properties": {"repobilityId": "acf37bfaaf8a6234", "scanner": "scanner-primary", "fingerprint": "0027e313ade46c8f", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-33a6b62e30ce7ab4", "level": "note", "message": {"text": "Near-duplicate function bodies in 6 places"}, "properties": {"repobilityId": "6a24471c835b18b1", "scanner": "scanner-primary", "fingerprint": "33a6b62e30ce7ab4", "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": "6cedaa518ec6484c", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-0d32ef4b8a679ae8", "level": "note", "message": {"text": "Near-duplicate function bodies in 24 places"}, "properties": {"repobilityId": "9f4213e910957432", "scanner": "scanner-primary", "fingerprint": "0d32ef4b8a679ae8", "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": "3fac8ca1ee08e24c", "scanner": "scanner-primary", "fingerprint": "fe1d9311d6aee734", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-33a6b62e30ce7ab4", "level": "note", "message": {"text": "Near-duplicate function bodies in 6 places"}, "properties": {"repobilityId": "f55c2decbfbd0d68", "scanner": "scanner-primary", "fingerprint": "33a6b62e30ce7ab4", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-33a6b62e30ce7ab4", "level": "note", "message": {"text": "Near-duplicate function bodies in 6 places"}, "properties": {"repobilityId": "a740feb9807b3596", "scanner": "scanner-primary", "fingerprint": "33a6b62e30ce7ab4", "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": "4a734bbf39d01699", "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": "35f3c215209c16c1", "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": "33461274c7195267", "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": "76708426e61545f2", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}]}]}