{"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-573d483f811dcc35", "name": "Possibly dead Python function: un_jitted_call", "shortDescription": {"text": "Possibly dead Python function: un_jitted_call"}, "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-63416f5f68ae0ec5", "name": "Possibly dead Python function: jitted_call", "shortDescription": {"text": "Possibly dead Python function: jitted_call"}, "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-14660495188d03f1", "name": "Possibly dead Python function: loss_jax", "shortDescription": {"text": "Possibly dead Python function: loss_jax"}, "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-d5975ce66f3a952b", "name": "Possibly dead Python function: loss_stable", "shortDescription": {"text": "Possibly dead Python function: loss_stable"}, "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-d2ca7a7b6d4ba907", "name": "Possibly dead Python function: bromate_yield", "shortDescription": {"text": "Possibly dead Python function: bromate_yield"}, "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-f3b27a4ffbe5cbfd", "name": "Possibly dead Python function: mass_flow", "shortDescription": {"text": "Possibly dead Python function: mass_flow"}, "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-7e55a240590e539a", "name": "Possibly dead Python function: with_Q", "shortDescription": {"text": "Possibly dead Python function: with_Q"}, "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-07402a471ac3e68c", "name": "Possibly dead Python function: with_T", "shortDescription": {"text": "Possibly dead Python function: with_T"}, "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-a175b279c07f82ad", "name": "Possibly dead Python function: derived", "shortDescription": {"text": "Possibly dead Python function: derived"}, "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-9c8a586da7051f1d", "name": "Possibly dead Python function: body", "shortDescription": {"text": "Possibly dead Python function: body"}, "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-f1c59fef30091b3e", "name": "Possibly dead Python function: objective", "shortDescription": {"text": "Possibly dead Python function: objective"}, "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-63fbae7e5922263d", "name": "Possibly dead Python function: loss_from_free", "shortDescription": {"text": "Possibly dead Python function: loss_from_free"}, "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-4b215a13990ba456", "name": "Possibly dead Python function: assume_full_rank", "shortDescription": {"text": "Possibly dead Python function: assume_full_rank"}, "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-bccb058d744b4396", "name": "Possibly dead Python function: aug_rhs", "shortDescription": {"text": "Possibly dead Python function: aug_rhs"}, "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-8ec640b5fd402f3a", "name": "Possibly dead Python function: solve_fwd", "shortDescription": {"text": "Possibly dead Python function: solve_fwd"}, "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-f2e6c993dbfffb56", "name": "Possibly dead Python function: solve_bwd", "shortDescription": {"text": "Possibly dead Python function: solve_bwd"}, "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-238908610ccd0a05", "name": "Possibly dead Python function: body", "shortDescription": {"text": "Possibly dead Python function: body"}, "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-d48541e261159e23", "name": "Possibly dead Python function: do", "shortDescription": {"text": "Possibly dead Python function: do"}, "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-c7371856182b4341", "name": "Possibly dead Python function: rhs_aug", "shortDescription": {"text": "Possibly dead Python function: rhs_aug"}, "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-fa65e65b03cb8096", "name": "Possibly dead Python function: steady_state", "shortDescription": {"text": "Possibly dead Python function: steady_state"}, "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-24ea59276f2a9a2e", "name": "Possibly dead Python function: apply_halforder", "shortDescription": {"text": "Possibly dead Python function: apply_halforder"}, "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-c1024dc971559cf5", "name": "Possibly dead Python function: apply_directsulfate", "shortDescription": {"text": "Possibly dead Python function: apply_directsulfate"}, "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-ea8a6e965765883f", "name": "Possibly dead Python function: apply_srbsubstrate", "shortDescription": {"text": "Possibly dead Python function: apply_srbsubstrate"}, "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-a0051cb7b049b01b", "name": "Possibly dead Python function: apply_stopatS0", "shortDescription": {"text": "Possibly dead Python function: apply_stopatS0"}, "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-e5d0df1104a01370", "name": "Insecure pattern 'eval_used' in CLAUDE.md:378", "shortDescription": {"text": "Insecure pattern 'eval_used' in CLAUDE.md:378"}, "fullDescription": {"text": "Found a known-risky pattern (eval_used). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-e87777821b646117", "name": "Insecure pattern 'eval_used' in README.md:23", "shortDescription": {"text": "Insecure pattern 'eval_used' in README.md:23"}, "fullDescription": {"text": "Found a known-risky pattern (eval_used). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-6372cebde0220094", "name": "No auth library detected", "shortDescription": {"text": "No auth library detected"}, "fullDescription": {"text": "The scanner did not find any standard auth library (JWT, OAuth, NextAuth, Auth0, etc.). The repo has auth/admin/session surface indicators, so auth may live in custom code, in a separate service, or be missing."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-27924aa79fa4a517", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "actions/setup-python@v5 can move without a code change in this repo. Pin third-party actions to a reviewed 40-character commit SHA."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "low", "confidence": 1.0}}, {"id": "scanner-d7337e7aa0b39b81", "name": "Very large file: aquakin/plant/plant.py (1961 lines)", "shortDescription": {"text": "Very large file: aquakin/plant/plant.py (1961 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-3c4b5dac204c8b17", "name": "Very large file: aquakin/integrate/calibrate.py (1304 lines)", "shortDescription": {"text": "Very large file: aquakin/integrate/calibrate.py (1304 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 174 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-bea357a6497a2d5d", "name": "Agent authority lacks a verifier contract: CLAUDE.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: CLAUDE.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-b931a0fd4b01428a", "name": "Commented-code block (9 lines) in tests/conftest.py:20", "shortDescription": {"text": "Commented-code block (9 lines) in tests/conftest.py:20"}, "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-eeff66eae253fe08", "name": "Commented-code block (6 lines) in tests/integration/test_bsm2.py:22", "shortDescription": {"text": "Commented-code block (6 lines) in tests/integration/test_bsm2.py:22"}, "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-0748ca7a3c02d918", "name": "Commented-code block (6 lines) in tests/integration/test_discrete_adjoint.py:91", "shortDescription": {"text": "Commented-code block (6 lines) in tests/integration/test_discrete_adjoint.py:91"}, "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-b09485648928d7c3", "name": "Commented-code block (5 lines) in tests/integration/test_biofilm_variant.py:104", "shortDescription": {"text": "Commented-code block (5 lines) in tests/integration/test_biofilm_variant.py:104"}, "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-ba891708856cf8ab", "name": "Legacy-named symbol `test_shape_matches_v2` in tests/integration/test_ozone_bromate.py:32", "shortDescription": {"text": "Legacy-named symbol `test_shape_matches_v2` in tests/integration/test_ozone_bromate.py:32"}, "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-be08a87cb8d7ae6f", "name": "Legacy-named symbol `test_predictive_band_eig_keep_is_deprecated` in tests/integration/test_calibrate.py:466", "shortDescription": {"text": "Legacy-named symbol `test_predictive_band_eig_keep_is_deprecated` in tests/integration/test_calibrate.py:466"}, "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-519f5abef9aa9322", "name": "Commented-code block (5 lines) in tests/integration/test_mass_balance.py:71", "shortDescription": {"text": "Commented-code block (5 lines) in tests/integration/test_mass_balance.py:71"}, "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-eb69f525a44308b7", "name": "Commented-code block (5 lines) in tests/integration/test_plant_stable_adjoint.py:170", "shortDescription": {"text": "Commented-code block (5 lines) in tests/integration/test_plant_stable_adjoint.py:170"}, "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-094279478c32dbca", "name": "Commented-code block (5 lines) in tests/integration/test_biofilm.py:69", "shortDescription": {"text": "Commented-code block (5 lines) in tests/integration/test_biofilm.py:69"}, "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-594c3bcac9fe0004", "name": "Commented-code block (5 lines) in tests/integration/test_bsm2_control.py:111", "shortDescription": {"text": "Commented-code block (5 lines) in tests/integration/test_bsm2_control.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-d12aea5a89bed22b", "name": "Commented-code block (5 lines) in tests/integration/test_bsm1.py:156", "shortDescription": {"text": "Commented-code block (5 lines) in tests/integration/test_bsm1.py:156"}, "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-4abe2daf2667f44d", "name": "Commented-code block (5 lines) in tests/integration/test_forward_sensitivity.py:275", "shortDescription": {"text": "Commented-code block (5 lines) in tests/integration/test_forward_sensitivity.py:275"}, "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-3932977514023225", "name": "Commented-code block (5 lines) in tests/integration/test_wats_sewer_extended.py:144", "shortDescription": {"text": "Commented-code block (5 lines) in tests/integration/test_wats_sewer_extended.py:144"}, "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-81f4baf1d7121102", "name": "Commented-code block (5 lines) in tests/integration/test_wats_sewer_khalil_paper.py:93", "shortDescription": {"text": "Commented-code block (5 lines) in tests/integration/test_wats_sewer_khalil_paper.py:93"}, "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-f6edc7c1081bb801", "name": "Legacy-named symbol `test_dgsm_mode_alias_is_deprecated` in tests/integration/test_sensitivity.py:414", "shortDescription": {"text": "Legacy-named symbol `test_dgsm_mode_alias_is_deprecated` in tests/integration/test_sensitivity.py:414"}, "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-1bc32d56b36e5140", "name": "Commented-code block (5 lines) in scripts/sumo_to_aquakin.py:594", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/sumo_to_aquakin.py:594"}, "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-03ee67b7e24f61d5", "name": "Commented-code block (5 lines) in aquakin/utils/units.py:412", "shortDescription": {"text": "Commented-code block (5 lines) in aquakin/utils/units.py:412"}, "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-309e1568a1bd4e56", "name": "Commented-code block (5 lines) in aquakin/plant/clarifier.py:131", "shortDescription": {"text": "Commented-code block (5 lines) in aquakin/plant/clarifier.py:131"}, "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-c7f3e687659787d4", "name": "Commented-code block (7 lines) in aquakin/plant/takacs.py:125", "shortDescription": {"text": "Commented-code block (7 lines) in aquakin/plant/takacs.py:125"}, "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-908fc6c95221d118", "name": "Commented-code block (5 lines) in aquakin/plant/mixer.py:239", "shortDescription": {"text": "Commented-code block (5 lines) in aquakin/plant/mixer.py:239"}, "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-2f5b252cecb54ea3", "name": "Commented-code block (7 lines) in aquakin/plant/plant.py:330", "shortDescription": {"text": "Commented-code block (7 lines) in aquakin/plant/plant.py:330"}, "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-393a5de980863ebb", "name": "Commented-code block (7 lines) in aquakin/plant/bsm/bsm2.py:389", "shortDescription": {"text": "Commented-code block (7 lines) in aquakin/plant/bsm/bsm2.py:389"}, "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-c57159e373b545ed", "name": "Commented-code block (8 lines) in aquakin/plant/bsm/bsm1.py:143", "shortDescription": {"text": "Commented-code block (8 lines) in aquakin/plant/bsm/bsm1.py:143"}, "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-f0acea0007af5893", "name": "Commented-code block (6 lines) in aquakin/schema/network_spec.py:176", "shortDescription": {"text": "Commented-code block (6 lines) in aquakin/schema/network_spec.py:176"}, "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-60589154cbbc1910", "name": "Commented-code block (8 lines) in aquakin/schema/loader.py:32", "shortDescription": {"text": "Commented-code block (8 lines) in aquakin/schema/loader.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-be08ebe4c1d65967", "name": "Commented-code block (7 lines) in aquakin/core/network.py:177", "shortDescription": {"text": "Commented-code block (7 lines) in aquakin/core/network.py:177"}, "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-44d023766960c118", "name": "Commented-code block (5 lines) in aquakin/core/parser.py:51", "shortDescription": {"text": "Commented-code block (5 lines) in aquakin/core/parser.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-728232c2a2873c29", "name": "Commented-code block (7 lines) in aquakin/core/ph_solver.py:66", "shortDescription": {"text": "Commented-code block (7 lines) in aquakin/core/ph_solver.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-4dde2ea104384435", "name": "Commented-code block (10 lines) in aquakin/integrate/calibrate.py:56", "shortDescription": {"text": "Commented-code block (10 lines) in aquakin/integrate/calibrate.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-cd6f88e4247cea40", "name": "Commented-code block (7 lines) in aquakin/integrate/_common.py:154", "shortDescription": {"text": "Commented-code block (7 lines) in aquakin/integrate/_common.py:154"}, "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-60f06677f7d1d59c", "name": "Commented-code block (5 lines) in aquakin/integrate/discrete_adjoint.py:314", "shortDescription": {"text": "Commented-code block (5 lines) in aquakin/integrate/discrete_adjoint.py:314"}, "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-8f73c015a323e47f", "name": "Commented-code block (7 lines) in aquakin/integrate/biofilm.py:366", "shortDescription": {"text": "Commented-code block (7 lines) in aquakin/integrate/biofilm.py:366"}, "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-0ae648b57ce55a8c", "name": "Commented-code block (10 lines) in aquakin/networks/_make_khalil_paper.py:145", "shortDescription": {"text": "Commented-code block (10 lines) in aquakin/networks/_make_khalil_paper.py:145"}, "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-123da013224014bc", "name": "Commented-code block (6 lines) in aquakin/networks/_make_khalil_thesis.py:37", "shortDescription": {"text": "Commented-code block (6 lines) in aquakin/networks/_make_khalil_thesis.py:37"}, "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-c876c686e7bd1b2f", "name": "Commented-code block (7 lines) in aquakin/networks/_make_khalil_balanced.py:94", "shortDescription": {"text": "Commented-code block (7 lines) in aquakin/networks/_make_khalil_balanced.py:94"}, "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-a6a662324517e482", "name": "Commented-code block (6 lines) in aquakin/networks/_make_khalil_balanced_biofilm_biomass.py:136", "shortDescription": {"text": "Commented-code block (6 lines) in aquakin/networks/_make_khalil_balanced_biofilm_biomass.py:136"}, "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:\naquakin/utils/units.py:parse_units, aquakin/utils/units.py:parse\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-4a118a3aa3e47973", "name": "Near-duplicate function bodies in 19 places", "shortDescription": {"text": "Near-duplicate function bodies in 19 places"}, "fullDescription": {"text": "Functions with the same first-5-line body hash:\naquakin/plant/primary_clarifier.py:compute_outputs, aquakin/plant/primary_clarifier.py:rhs, aquakin/plant/clarifier.py:compute_outputs, aquakin/plant/separators.py:compute_outputs\n\nThis is *the* AI-coder failure mode (4\u00d7 more duplication in vibe-coded repos \u2014 see https://jw.hn/ai-code-hygiene). Consolidate or document why they're separate."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-be46ea126aa5d8dc", "name": "Near-duplicate function bodies in 3 places", "shortDescription": {"text": "Near-duplicate function bodies in 3 places"}, "fullDescription": {"text": "Functions with the same first-5-line body hash:\naquakin/plant/clarifier.py:input_ports, aquakin/plant/separators.py:input_ports, aquakin/plant/takacs.py:input_ports\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-ee53e8e0c58609d8", "name": "Near-duplicate function bodies in 15 places", "shortDescription": {"text": "Near-duplicate function bodies in 15 places"}, "fullDescription": {"text": "Functions with the same first-5-line body hash:\naquakin/core/nodes.py:compile, aquakin/core/nodes.py:compile, aquakin/core/nodes.py:compile, aquakin/core/nodes.py:compile\n\nThis is *the* AI-coder failure mode (4\u00d7 more duplication in vibe-coded repos \u2014 see https://jw.hn/ai-code-hygiene). Consolidate or document why they're separate."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-02525d39071dd2c7", "name": "Near-duplicate function bodies in 5 places", "shortDescription": {"text": "Near-duplicate function bodies in 5 places"}, "fullDescription": {"text": "Functions with the same first-5-line body hash:\naquakin/core/nodes.py:condition_names, aquakin/core/nodes.py:condition_names, aquakin/core/nodes.py:condition_names, aquakin/core/nodes.py:condition_names\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/25155"}, "properties": {"repository": "ctdegroot/aquakin", "repoUrl": "https://github.com/ctdegroot/aquakin", "branch": "main"}, "results": [{"ruleId": "scanner-573d483f811dcc35", "level": "note", "message": {"text": "Possibly dead Python function: un_jitted_call"}, "properties": {"repobilityId": "a951c4a7534d09e7", "scanner": "scanner-primary", "fingerprint": "573d483f811dcc35", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/benchmark_solve.py:56"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-63416f5f68ae0ec5", "level": "note", "message": {"text": "Possibly dead Python function: jitted_call"}, "properties": {"repobilityId": "1be4c5ba0987ebcf", "scanner": "scanner-primary", "fingerprint": "63416f5f68ae0ec5", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/benchmark_solve.py:65"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-14660495188d03f1", "level": "note", "message": {"text": "Possibly dead Python function: loss_jax"}, "properties": {"repobilityId": "688d5c12d8fdd09b", "scanner": "scanner-primary", "fingerprint": "14660495188d03f1", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "examples/adjoint_speed_benchmark.py:97"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-d5975ce66f3a952b", "level": "note", "message": {"text": "Possibly dead Python function: loss_stable"}, "properties": {"repobilityId": "54d1306993f6127f", "scanner": "scanner-primary", "fingerprint": "d5975ce66f3a952b", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "examples/adjoint_speed_benchmark.py:107"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-d2ca7a7b6d4ba907", "level": "note", "message": {"text": "Possibly dead Python function: bromate_yield"}, "properties": {"repobilityId": "9b59d329603a4a10", "scanner": "scanner-primary", "fingerprint": "d2ca7a7b6d4ba907", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "examples/dgsm_sensitivity_screen.py:45"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-f3b27a4ffbe5cbfd", "level": "note", "message": {"text": "Possibly dead Python function: mass_flow"}, "properties": {"repobilityId": "7fb339e2e9e0b0ed", "scanner": "scanner-primary", "fingerprint": "f3b27a4ffbe5cbfd", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "aquakin/plant/streams.py:50"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-7e55a240590e539a", "level": "note", "message": {"text": "Possibly dead Python function: with_Q"}, "properties": {"repobilityId": "2e24683e54151888", "scanner": "scanner-primary", "fingerprint": "7e55a240590e539a", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "aquakin/plant/streams.py:58"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-07402a471ac3e68c", "level": "note", "message": {"text": "Possibly dead Python function: with_T"}, "properties": {"repobilityId": "e2040bd3e3113d39", "scanner": "scanner-primary", "fingerprint": "07402a471ac3e68c", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "aquakin/plant/streams.py:62"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-a175b279c07f82ad", "level": "note", "message": {"text": "Possibly dead Python function: derived"}, "properties": {"repobilityId": "88aaf3e924c5f83b", "scanner": "scanner-primary", "fingerprint": "a175b279c07f82ad", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "aquakin/core/speciation.py:160"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-9c8a586da7051f1d", "level": "note", "message": {"text": "Possibly dead Python function: body"}, "properties": {"repobilityId": "1280806f2f56c4ce", "scanner": "scanner-primary", "fingerprint": "9c8a586da7051f1d", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "aquakin/core/ph_solver.py:371"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-f1c59fef30091b3e", "level": "note", "message": {"text": "Possibly dead Python function: objective"}, "properties": {"repobilityId": "b2ca8f96950eb149", "scanner": "scanner-primary", "fingerprint": "f1c59fef30091b3e", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "aquakin/integrate/calibrate.py:985"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-63fbae7e5922263d", "level": "note", "message": {"text": "Possibly dead Python function: loss_from_free"}, "properties": {"repobilityId": "0a8b92bf0457d09a", "scanner": "scanner-primary", "fingerprint": "63fbae7e5922263d", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "aquakin/integrate/sensitivity.py:315"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-4b215a13990ba456", "level": "note", "message": {"text": "Possibly dead Python function: assume_full_rank"}, "properties": {"repobilityId": "0c9b4b933795b42d", "scanner": "scanner-primary", "fingerprint": "4b215a13990ba456", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "aquakin/integrate/_simultaneous_corrector.py:138"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-bccb058d744b4396", "level": "note", "message": {"text": "Possibly dead Python function: aug_rhs"}, "properties": {"repobilityId": "ef533673b1df3392", "scanner": "scanner-primary", "fingerprint": "bccb058d744b4396", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "aquakin/integrate/forward_sensitivity.py:190"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-8ec640b5fd402f3a", "level": "note", "message": {"text": "Possibly dead Python function: solve_fwd"}, "properties": {"repobilityId": "a474c641c3ea2d2a", "scanner": "scanner-primary", "fingerprint": "8ec640b5fd402f3a", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "aquakin/integrate/discrete_adjoint.py:145"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-f2e6c993dbfffb56", "level": "note", "message": {"text": "Possibly dead Python function: solve_bwd"}, "properties": {"repobilityId": "fc5b40c676c4e4c8", "scanner": "scanner-primary", "fingerprint": "f2e6c993dbfffb56", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "aquakin/integrate/discrete_adjoint.py:150"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-238908610ccd0a05", "level": "note", "message": {"text": "Possibly dead Python function: body"}, "properties": {"repobilityId": "1280806f2f56c4ce", "scanner": "scanner-primary", "fingerprint": "238908610ccd0a05", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "aquakin/integrate/discrete_adjoint.py:169"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-d48541e261159e23", "level": "note", "message": {"text": "Possibly dead Python function: do"}, "properties": {"repobilityId": "d0af2d0dfdb3a59f", "scanner": "scanner-primary", "fingerprint": "d48541e261159e23", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "aquakin/integrate/discrete_adjoint.py:174"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-c7371856182b4341", "level": "note", "message": {"text": "Possibly dead Python function: rhs_aug"}, "properties": {"repobilityId": "d7304c1a576101e0", "scanner": "scanner-primary", "fingerprint": "c7371856182b4341", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "aquakin/integrate/discrete_adjoint.py:207"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-fa65e65b03cb8096", "level": "note", "message": {"text": "Possibly dead Python function: steady_state"}, "properties": {"repobilityId": "b54e3533aa46ae3a", "scanner": "scanner-primary", "fingerprint": "fa65e65b03cb8096", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "aquakin/integrate/biofilm.py:836"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-24ea59276f2a9a2e", "level": "note", "message": {"text": "Possibly dead Python function: apply_halforder"}, "properties": {"repobilityId": "c8869833ee7215b6", "scanner": "scanner-primary", "fingerprint": "24ea59276f2a9a2e", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "aquakin/networks/_make_khalil_variants.py:47"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-c1024dc971559cf5", "level": "note", "message": {"text": "Possibly dead Python function: apply_directsulfate"}, "properties": {"repobilityId": "81777a12adbebffc", "scanner": "scanner-primary", "fingerprint": "c1024dc971559cf5", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "aquakin/networks/_make_khalil_variants.py:55"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-ea8a6e965765883f", "level": "note", "message": {"text": "Possibly dead Python function: apply_srbsubstrate"}, "properties": {"repobilityId": "2b88ceb1581617aa", "scanner": "scanner-primary", "fingerprint": "ea8a6e965765883f", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "aquakin/networks/_make_khalil_variants.py:67"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-a0051cb7b049b01b", "level": "note", "message": {"text": "Possibly dead Python function: apply_stopatS0"}, "properties": {"repobilityId": "be77ca74bc2a9898", "scanner": "scanner-primary", "fingerprint": "a0051cb7b049b01b", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "aquakin/networks/_make_khalil_variants.py:86"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-e5d0df1104a01370", "level": "error", "message": {"text": "Insecure pattern 'eval_used' in CLAUDE.md:378"}, "properties": {"repobilityId": "c9592072ddaa74b7", "scanner": "scanner-primary", "fingerprint": "e5d0df1104a01370", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "eval_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "CLAUDE.md"}, "region": {"startLine": 378}}}]}, {"ruleId": "scanner-e87777821b646117", "level": "error", "message": {"text": "Insecure pattern 'eval_used' in README.md:23"}, "properties": {"repobilityId": "e44bf8409cbb7354", "scanner": "scanner-primary", "fingerprint": "e87777821b646117", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "eval_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "README.md"}, "region": {"startLine": 23}}}]}, {"ruleId": "scanner-6372cebde0220094", "level": "warning", "message": {"text": "No auth library detected"}, "properties": {"repobilityId": "a5b6035a5bbf8054", "scanner": "scanner-primary", "fingerprint": "6372cebde0220094", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["coverage", "auth"]}}, {"ruleId": "scanner-27924aa79fa4a517", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "04f57d208548fcef", "scanner": "scanner-primary", "fingerprint": "27924aa79fa4a517", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/ci.yml"}, "region": {"startLine": 49}}}]}, {"ruleId": "scanner-27924aa79fa4a517", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "04f57d208548fcef", "scanner": "scanner-primary", "fingerprint": "27924aa79fa4a517", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/ci.yml"}, "region": {"startLine": 96}}}]}, {"ruleId": "scanner-27924aa79fa4a517", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "04f57d208548fcef", "scanner": "scanner-primary", "fingerprint": "27924aa79fa4a517", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/ci.yml"}, "region": {"startLine": 154}}}]}, {"ruleId": "scanner-d7337e7aa0b39b81", "level": "note", "message": {"text": "Very large file: aquakin/plant/plant.py (1961 lines)"}, "properties": {"repobilityId": "9f5e69f5061496e9", "scanner": "scanner-primary", "fingerprint": "d7337e7aa0b39b81", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-3c4b5dac204c8b17", "level": "note", "message": {"text": "Very large file: aquakin/integrate/calibrate.py (1304 lines)"}, "properties": {"repobilityId": "ea1574e61cd6afc7", "scanner": "scanner-primary", "fingerprint": "3c4b5dac204c8b17", "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": "56b9547564609e03", "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": "f9af61c0235bd24b", "scanner": "scanner-primary", "fingerprint": "2d0c7b7ab8f8aacf", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["placeholder", "mock-data", "critical-flow", "generated-repo-pattern"]}}, {"ruleId": "scanner-bea357a6497a2d5d", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: CLAUDE.md"}, "properties": {"repobilityId": "aae72df3934829ac", "scanner": "scanner-primary", "fingerprint": "bea357a6497a2d5d", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "CLAUDE.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-b931a0fd4b01428a", "level": "none", "message": {"text": "Commented-code block (9 lines) in tests/conftest.py:20"}, "properties": {"repobilityId": "358c2a762d2f254f", "scanner": "scanner-primary", "fingerprint": "b931a0fd4b01428a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-eeff66eae253fe08", "level": "none", "message": {"text": "Commented-code block (6 lines) in tests/integration/test_bsm2.py:22"}, "properties": {"repobilityId": "cf9acb6d2796b63e", "scanner": "scanner-primary", "fingerprint": "eeff66eae253fe08", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0748ca7a3c02d918", "level": "none", "message": {"text": "Commented-code block (6 lines) in tests/integration/test_discrete_adjoint.py:91"}, "properties": {"repobilityId": "b32d629cbc03d4d2", "scanner": "scanner-primary", "fingerprint": "0748ca7a3c02d918", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b09485648928d7c3", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/integration/test_biofilm_variant.py:104"}, "properties": {"repobilityId": "3ee3a630b6a92780", "scanner": "scanner-primary", "fingerprint": "b09485648928d7c3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ba891708856cf8ab", "level": "note", "message": {"text": "Legacy-named symbol `test_shape_matches_v2` in tests/integration/test_ozone_bromate.py:32"}, "properties": {"repobilityId": "1ba2a885b1779be8", "scanner": "scanner-primary", "fingerprint": "ba891708856cf8ab", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-be08a87cb8d7ae6f", "level": "note", "message": {"text": "Legacy-named symbol `test_predictive_band_eig_keep_is_deprecated` in tests/integration/test_calibrate.py:466"}, "properties": {"repobilityId": "c64227bc2e45e652", "scanner": "scanner-primary", "fingerprint": "be08a87cb8d7ae6f", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-519f5abef9aa9322", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/integration/test_mass_balance.py:71"}, "properties": {"repobilityId": "1a85e24b38286f2d", "scanner": "scanner-primary", "fingerprint": "519f5abef9aa9322", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-eb69f525a44308b7", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/integration/test_plant_stable_adjoint.py:170"}, "properties": {"repobilityId": "99e3d59f6c55fd98", "scanner": "scanner-primary", "fingerprint": "eb69f525a44308b7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-094279478c32dbca", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/integration/test_biofilm.py:69"}, "properties": {"repobilityId": "6aafc49d11b26f91", "scanner": "scanner-primary", "fingerprint": "094279478c32dbca", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-594c3bcac9fe0004", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/integration/test_bsm2_control.py:111"}, "properties": {"repobilityId": "f818a5f01651f7d8", "scanner": "scanner-primary", "fingerprint": "594c3bcac9fe0004", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d12aea5a89bed22b", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/integration/test_bsm1.py:156"}, "properties": {"repobilityId": "6ab7cc0f0dab1415", "scanner": "scanner-primary", "fingerprint": "d12aea5a89bed22b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4abe2daf2667f44d", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/integration/test_forward_sensitivity.py:275"}, "properties": {"repobilityId": "604187a31cddc214", "scanner": "scanner-primary", "fingerprint": "4abe2daf2667f44d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3932977514023225", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/integration/test_wats_sewer_extended.py:144"}, "properties": {"repobilityId": "37b0976d55c0a6c2", "scanner": "scanner-primary", "fingerprint": "3932977514023225", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-81f4baf1d7121102", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/integration/test_wats_sewer_khalil_paper.py:93"}, "properties": {"repobilityId": "d616228c30d4fe76", "scanner": "scanner-primary", "fingerprint": "81f4baf1d7121102", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f6edc7c1081bb801", "level": "note", "message": {"text": "Legacy-named symbol `test_dgsm_mode_alias_is_deprecated` in tests/integration/test_sensitivity.py:414"}, "properties": {"repobilityId": "572bc59b0b3704c1", "scanner": "scanner-primary", "fingerprint": "f6edc7c1081bb801", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-1bc32d56b36e5140", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/sumo_to_aquakin.py:594"}, "properties": {"repobilityId": "f129d29479137898", "scanner": "scanner-primary", "fingerprint": "1bc32d56b36e5140", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-03ee67b7e24f61d5", "level": "none", "message": {"text": "Commented-code block (5 lines) in aquakin/utils/units.py:412"}, "properties": {"repobilityId": "cf2dc0d9431dbdd2", "scanner": "scanner-primary", "fingerprint": "03ee67b7e24f61d5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-309e1568a1bd4e56", "level": "none", "message": {"text": "Commented-code block (5 lines) in aquakin/plant/clarifier.py:131"}, "properties": {"repobilityId": "73ef2d6b0d1feec4", "scanner": "scanner-primary", "fingerprint": "309e1568a1bd4e56", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c7f3e687659787d4", "level": "none", "message": {"text": "Commented-code block (7 lines) in aquakin/plant/takacs.py:125"}, "properties": {"repobilityId": "481c5ff38a43e940", "scanner": "scanner-primary", "fingerprint": "c7f3e687659787d4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-908fc6c95221d118", "level": "none", "message": {"text": "Commented-code block (5 lines) in aquakin/plant/mixer.py:239"}, "properties": {"repobilityId": "b191a24ddb3a306e", "scanner": "scanner-primary", "fingerprint": "908fc6c95221d118", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2f5b252cecb54ea3", "level": "none", "message": {"text": "Commented-code block (7 lines) in aquakin/plant/plant.py:330"}, "properties": {"repobilityId": "4088a839f72d88a7", "scanner": "scanner-primary", "fingerprint": "2f5b252cecb54ea3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-393a5de980863ebb", "level": "none", "message": {"text": "Commented-code block (7 lines) in aquakin/plant/bsm/bsm2.py:389"}, "properties": {"repobilityId": "0cf60de61b0508d9", "scanner": "scanner-primary", "fingerprint": "393a5de980863ebb", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c57159e373b545ed", "level": "none", "message": {"text": "Commented-code block (8 lines) in aquakin/plant/bsm/bsm1.py:143"}, "properties": {"repobilityId": "1006079280002999", "scanner": "scanner-primary", "fingerprint": "c57159e373b545ed", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f0acea0007af5893", "level": "none", "message": {"text": "Commented-code block (6 lines) in aquakin/schema/network_spec.py:176"}, "properties": {"repobilityId": "874be365ab51b096", "scanner": "scanner-primary", "fingerprint": "f0acea0007af5893", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-60589154cbbc1910", "level": "none", "message": {"text": "Commented-code block (8 lines) in aquakin/schema/loader.py:32"}, "properties": {"repobilityId": "7fb7f00373346385", "scanner": "scanner-primary", "fingerprint": "60589154cbbc1910", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-be08ebe4c1d65967", "level": "none", "message": {"text": "Commented-code block (7 lines) in aquakin/core/network.py:177"}, "properties": {"repobilityId": "9e8b8e0bd5e2ff85", "scanner": "scanner-primary", "fingerprint": "be08ebe4c1d65967", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-44d023766960c118", "level": "none", "message": {"text": "Commented-code block (5 lines) in aquakin/core/parser.py:51"}, "properties": {"repobilityId": "601c58133f5d2854", "scanner": "scanner-primary", "fingerprint": "44d023766960c118", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-728232c2a2873c29", "level": "none", "message": {"text": "Commented-code block (7 lines) in aquakin/core/ph_solver.py:66"}, "properties": {"repobilityId": "755e7935a0b3e98f", "scanner": "scanner-primary", "fingerprint": "728232c2a2873c29", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4dde2ea104384435", "level": "none", "message": {"text": "Commented-code block (10 lines) in aquakin/integrate/calibrate.py:56"}, "properties": {"repobilityId": "5f54fa2153e931a2", "scanner": "scanner-primary", "fingerprint": "4dde2ea104384435", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-cd6f88e4247cea40", "level": "none", "message": {"text": "Commented-code block (7 lines) in aquakin/integrate/_common.py:154"}, "properties": {"repobilityId": "4f7fce7abaaad819", "scanner": "scanner-primary", "fingerprint": "cd6f88e4247cea40", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-60f06677f7d1d59c", "level": "none", "message": {"text": "Commented-code block (5 lines) in aquakin/integrate/discrete_adjoint.py:314"}, "properties": {"repobilityId": "9d319ed6a1d5e42e", "scanner": "scanner-primary", "fingerprint": "60f06677f7d1d59c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8f73c015a323e47f", "level": "none", "message": {"text": "Commented-code block (7 lines) in aquakin/integrate/biofilm.py:366"}, "properties": {"repobilityId": "83e05cf3e6323219", "scanner": "scanner-primary", "fingerprint": "8f73c015a323e47f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0ae648b57ce55a8c", "level": "none", "message": {"text": "Commented-code block (10 lines) in aquakin/networks/_make_khalil_paper.py:145"}, "properties": {"repobilityId": "8ac86e371061f654", "scanner": "scanner-primary", "fingerprint": "0ae648b57ce55a8c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-123da013224014bc", "level": "none", "message": {"text": "Commented-code block (6 lines) in aquakin/networks/_make_khalil_thesis.py:37"}, "properties": {"repobilityId": "504dcac10edce244", "scanner": "scanner-primary", "fingerprint": "123da013224014bc", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c876c686e7bd1b2f", "level": "none", "message": {"text": "Commented-code block (7 lines) in aquakin/networks/_make_khalil_balanced.py:94"}, "properties": {"repobilityId": "89b259cd11c2206b", "scanner": "scanner-primary", "fingerprint": "c876c686e7bd1b2f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a6a662324517e482", "level": "none", "message": {"text": "Commented-code block (6 lines) in aquakin/networks/_make_khalil_balanced_biofilm_biomass.py:136"}, "properties": {"repobilityId": "22b3667c10a01ea3", "scanner": "scanner-primary", "fingerprint": "a6a662324517e482", "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": "a2f3dff810051c92", "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": "776f4a8b65b3509e", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-4a118a3aa3e47973", "level": "note", "message": {"text": "Near-duplicate function bodies in 19 places"}, "properties": {"repobilityId": "fe4c043891c134e9", "scanner": "scanner-primary", "fingerprint": "4a118a3aa3e47973", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-be46ea126aa5d8dc", "level": "note", "message": {"text": "Near-duplicate function bodies in 3 places"}, "properties": {"repobilityId": "e63d4f644076824c", "scanner": "scanner-primary", "fingerprint": "be46ea126aa5d8dc", "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": "85a56e11451f4579", "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": "ac49bd8bcecce2b5", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-be46ea126aa5d8dc", "level": "note", "message": {"text": "Near-duplicate function bodies in 3 places"}, "properties": {"repobilityId": "3fa6fe40eb7c0773", "scanner": "scanner-primary", "fingerprint": "be46ea126aa5d8dc", "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": "468ca52da9f47820", "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": "3d6bea5a17a54810", "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": "1246c61ea2942d39", "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": "3985117b91bb1f60", "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": "70bc525bc3a9bd8b", "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": "95147e74b5043639", "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": "03caaf0680179f4f", "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": "50c5f4fed1590f66", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-be46ea126aa5d8dc", "level": "note", "message": {"text": "Near-duplicate function bodies in 3 places"}, "properties": {"repobilityId": "ae03a994dbddad8e", "scanner": "scanner-primary", "fingerprint": "be46ea126aa5d8dc", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-ee53e8e0c58609d8", "level": "note", "message": {"text": "Near-duplicate function bodies in 15 places"}, "properties": {"repobilityId": "069e5b3a3065b911", "scanner": "scanner-primary", "fingerprint": "ee53e8e0c58609d8", "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": "0c6f7052710d5e5b", "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": "1c1939cd59759184", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-02525d39071dd2c7", "level": "note", "message": {"text": "Near-duplicate function bodies in 5 places"}, "properties": {"repobilityId": "72aa4db8b807edfb", "scanner": "scanner-primary", "fingerprint": "02525d39071dd2c7", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}]}]}