{"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-cb5bfad417fe7c6b", "name": "Possibly dead Python function: deassign", "shortDescription": {"text": "Possibly dead Python function: deassign"}, "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-9f8d06175219f2a9", "name": "Possibly dead Python function: as_text", "shortDescription": {"text": "Possibly dead Python function: as_text"}, "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-ed624d02f2ed5a60", "name": "Possibly dead Python function: do_zero", "shortDescription": {"text": "Possibly dead Python function: do_zero"}, "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-a005f3662df98fb1", "name": "Possibly dead Python function: cb", "shortDescription": {"text": "Possibly dead Python function: cb"}, "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-468cde3a260cf339", "name": "Possibly dead Python function: mwheel", "shortDescription": {"text": "Possibly dead Python function: mwheel"}, "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-dfc25242869c06ad", "name": "Possibly dead Python function: do_disasm_compare", "shortDescription": {"text": "Possibly dead Python function: do_disasm_compare"}, "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-b9e9bc2908d588eb", "name": "Possibly dead Python function: do_view", "shortDescription": {"text": "Possibly dead Python function: do_view"}, "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-68e44effaf3bfee7", "name": "Possibly dead Python function: do_diff", "shortDescription": {"text": "Possibly dead Python function: do_diff"}, "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-293d3615f6b2f837", "name": "Possibly dead Python function: do_bytevote", "shortDescription": {"text": "Possibly dead Python function: do_bytevote"}, "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-60c54fbd506a61b9", "name": "Possibly dead Python function: do_zeroes", "shortDescription": {"text": "Possibly dead Python function: do_zeroes"}, "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-6e32485bd737f1f5", "name": "Possibly dead Python function: do_disasm", "shortDescription": {"text": "Possibly dead Python function: do_disasm"}, "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-16cea036d095faf8", "name": "Possibly dead Python function: do_textmerge", "shortDescription": {"text": "Possibly dead Python function: do_textmerge"}, "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-602994b5cd018bf1", "name": "Possibly dead Python function: do_set", "shortDescription": {"text": "Possibly dead Python function: do_set"}, "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-a7a513fa049d5974", "name": "Possibly dead Python function: do_clear", "shortDescription": {"text": "Possibly dead Python function: do_clear"}, "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-f507c7a96be32cfd", "name": "Possibly dead Python function: do_save_as", "shortDescription": {"text": "Possibly dead Python function: do_save_as"}, "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-5dd4aa1d34015561", "name": "Possibly dead Python function: do_build_disk", "shortDescription": {"text": "Possibly dead Python function: do_build_disk"}, "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-a04089dacfe638a5", "name": "Possibly dead Python function: set_version", "shortDescription": {"text": "Possibly dead Python function: set_version"}, "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-56b086c7843597f8", "name": "Possibly dead Python function: layout", "shortDescription": {"text": "Possibly dead Python function: layout"}, "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-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/cache@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-1838a141491ce38c", "name": "GitHub Actions workflow grants broad write permissions", "shortDescription": {"text": "GitHub Actions workflow grants broad write permissions"}, "fullDescription": {"text": "CI tokens with write permissions increase blast radius when an action, dependency, or PR workflow is compromised. Prefer job-level least-privilege permissions."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-37092a8291039fbe", "name": "Very large file: rt11_devel/projects/saper/source/gen_saper.py (2258 lines)", "shortDescription": {"text": "Very large file: rt11_devel/projects/saper/source/gen_saper.py (2258 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-d35c47eb3d4f1210", "name": "Very large file: disk_recovery/tools/review.py (1586 lines)", "shortDescription": {"text": "Very large file: disk_recovery/tools/review.py (1586 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-ea3b5e389d8c9c0f", "name": "Low test-to-source ratio", "shortDescription": {"text": "Low test-to-source ratio"}, "fullDescription": {"text": "4 tests / 25 src (ratio 0.16)."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-141b30a41e03817b", "name": "No license file detected", "shortDescription": {"text": "No license file detected"}, "fullDescription": {"text": "No LICENSE/COPYING/NOTICE file was found. Generated repositories often omit licensing, which blocks reuse and automated intake."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-3ab5d313dda8e5f9", "name": "Debug logging residue appears in source files", "shortDescription": {"text": "Debug logging residue appears in source files"}, "fullDescription": {"text": "Found 170 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 license. 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-3ee276cd65643ec5", "name": "Commented-code block (14 lines) in rt11_devel/projects/saper/source/gen_saper.py:196", "shortDescription": {"text": "Commented-code block (14 lines) in rt11_devel/projects/saper/source/gen_saper.py:196"}, "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-cf917c6f8ce58c10", "name": "Commented-code block (7 lines) in rt11_devel/toolset/build.py:186", "shortDescription": {"text": "Commented-code block (7 lines) in rt11_devel/toolset/build.py:186"}, "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-5b157154149a9658", "name": "Network/subprocess call without timeout or try/except \u2014 rt11_devel/toolset/build.py:183", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 rt11_devel/toolset/build.py:183"}, "fullDescription": {"text": "`subprocess.run(...)` 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-87b7d4c9bc081cfd", "name": "Commented-code block (5 lines) in rt11_devel/toolset/tests/test_rt11.py:22", "shortDescription": {"text": "Commented-code block (5 lines) in rt11_devel/toolset/tests/test_rt11.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-6b960ff7381ddcc5", "name": "Network/subprocess call without timeout or try/except \u2014 disk_recovery/tools/import_images.py:54", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 disk_recovery/tools/import_images.py:54"}, "fullDescription": {"text": "`subprocess.run(...)` 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-80c598a4fec2dd9c", "name": "Commented-code block (5 lines) in disk_recovery/tools/consensus.py:58", "shortDescription": {"text": "Commented-code block (5 lines) in disk_recovery/tools/consensus.py:58"}, "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-79b5f6c196b15dd9", "name": "Commented-code block (7 lines) in disk_recovery/tools/build_corpus.py:107", "shortDescription": {"text": "Commented-code block (7 lines) in disk_recovery/tools/build_corpus.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-3c8249108713337a", "name": "Network/subprocess call without timeout or try/except \u2014 disk_recovery/tools/build_corpus.py:72", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 disk_recovery/tools/build_corpus.py:72"}, "fullDescription": {"text": "`subprocess.run(...)` 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-72d0efb4059d0c48", "name": "Network/subprocess call without timeout or try/except \u2014 disk_recovery/tools/identify.py:56", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 disk_recovery/tools/identify.py:56"}, "fullDescription": {"text": "`subprocess.run(...)` 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-c0d57f6f213475a8", "name": "Commented-code block (8 lines) in disk_recovery/tools/review.py:41", "shortDescription": {"text": "Commented-code block (8 lines) in disk_recovery/tools/review.py:41"}, "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-17547adebc213694", "name": "Network/subprocess call without timeout or try/except \u2014 disk_recovery/tools/review.py:1379", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 disk_recovery/tools/review.py:1379"}, "fullDescription": {"text": "`subprocess.run(...)` 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-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:\ndisk_recovery/tools/build_corpus.py:main, disk_recovery/tools/identify.py:main\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/22477"}, "properties": {"repository": "vvv104/ms0515", "repoUrl": "https://github.com/vvv104/ms0515", "branch": "main"}, "results": [{"ruleId": "scanner-cb5bfad417fe7c6b", "level": "note", "message": {"text": "Possibly dead Python function: deassign"}, "properties": {"repobilityId": "e7099406e0163c4e", "scanner": "scanner-primary", "fingerprint": "cb5bfad417fe7c6b", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "rt11_devel/toolset/rt11.py:102"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-9f8d06175219f2a9", "level": "note", "message": {"text": "Possibly dead Python function: as_text"}, "properties": {"repobilityId": "e4b98e26d65de678", "scanner": "scanner-primary", "fingerprint": "9f8d06175219f2a9", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "disk_recovery/tools/review.py:219"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-ed624d02f2ed5a60", "level": "note", "message": {"text": "Possibly dead Python function: do_zero"}, "properties": {"repobilityId": "7daf77638e257593", "scanner": "scanner-primary", "fingerprint": "ed624d02f2ed5a60", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "disk_recovery/tools/review.py:264"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-a005f3662df98fb1", "level": "note", "message": {"text": "Possibly dead Python function: cb"}, "properties": {"repobilityId": "c388730a0badedf1", "scanner": "scanner-primary", "fingerprint": "a005f3662df98fb1", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "disk_recovery/tools/review.py:304"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-468cde3a260cf339", "level": "note", "message": {"text": "Possibly dead Python function: mwheel"}, "properties": {"repobilityId": "6a50bf27da2e35f4", "scanner": "scanner-primary", "fingerprint": "468cde3a260cf339", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "disk_recovery/tools/review.py:314"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-dfc25242869c06ad", "level": "note", "message": {"text": "Possibly dead Python function: do_disasm_compare"}, "properties": {"repobilityId": "a8751612b58557f4", "scanner": "scanner-primary", "fingerprint": "dfc25242869c06ad", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "disk_recovery/tools/review.py:500"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-b9e9bc2908d588eb", "level": "note", "message": {"text": "Possibly dead Python function: do_view"}, "properties": {"repobilityId": "0bc13f3d7392a812", "scanner": "scanner-primary", "fingerprint": "b9e9bc2908d588eb", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "disk_recovery/tools/review.py:1024"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-68e44effaf3bfee7", "level": "note", "message": {"text": "Possibly dead Python function: do_diff"}, "properties": {"repobilityId": "f502e1e95fb1e702", "scanner": "scanner-primary", "fingerprint": "68e44effaf3bfee7", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "disk_recovery/tools/review.py:1032"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-293d3615f6b2f837", "level": "note", "message": {"text": "Possibly dead Python function: do_bytevote"}, "properties": {"repobilityId": "1e6a845e922bc013", "scanner": "scanner-primary", "fingerprint": "293d3615f6b2f837", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "disk_recovery/tools/review.py:1048"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-60c54fbd506a61b9", "level": "note", "message": {"text": "Possibly dead Python function: do_zeroes"}, "properties": {"repobilityId": "cc077af50a48972f", "scanner": "scanner-primary", "fingerprint": "60c54fbd506a61b9", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "disk_recovery/tools/review.py:1071"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-6e32485bd737f1f5", "level": "note", "message": {"text": "Possibly dead Python function: do_disasm"}, "properties": {"repobilityId": "36afdca28feb097d", "scanner": "scanner-primary", "fingerprint": "6e32485bd737f1f5", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "disk_recovery/tools/review.py:1124"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-16cea036d095faf8", "level": "note", "message": {"text": "Possibly dead Python function: do_textmerge"}, "properties": {"repobilityId": "7965e186eec00f85", "scanner": "scanner-primary", "fingerprint": "16cea036d095faf8", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "disk_recovery/tools/review.py:1171"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-602994b5cd018bf1", "level": "note", "message": {"text": "Possibly dead Python function: do_set"}, "properties": {"repobilityId": "bc1be1f0bdef541e", "scanner": "scanner-primary", "fingerprint": "602994b5cd018bf1", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "disk_recovery/tools/review.py:1255"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-a7a513fa049d5974", "level": "note", "message": {"text": "Possibly dead Python function: do_clear"}, "properties": {"repobilityId": "1bac323983a0cc54", "scanner": "scanner-primary", "fingerprint": "a7a513fa049d5974", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "disk_recovery/tools/review.py:1277"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-f507c7a96be32cfd", "level": "note", "message": {"text": "Possibly dead Python function: do_save_as"}, "properties": {"repobilityId": "fe8ff7d2b8b2e65f", "scanner": "scanner-primary", "fingerprint": "f507c7a96be32cfd", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "disk_recovery/tools/review.py:1288"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-5dd4aa1d34015561", "level": "note", "message": {"text": "Possibly dead Python function: do_build_disk"}, "properties": {"repobilityId": "307e3ff852f2d4b1", "scanner": "scanner-primary", "fingerprint": "5dd4aa1d34015561", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "disk_recovery/tools/review.py:1391"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-a04089dacfe638a5", "level": "note", "message": {"text": "Possibly dead Python function: set_version"}, "properties": {"repobilityId": "da455db65c7430e0", "scanner": "scanner-primary", "fingerprint": "a04089dacfe638a5", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/conanfile.py:39"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-56b086c7843597f8", "level": "note", "message": {"text": "Possibly dead Python function: layout"}, "properties": {"repobilityId": "823c435dcef94df9", "scanner": "scanner-primary", "fingerprint": "56b086c7843597f8", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/conanfile.py:46"}, "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-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": "a22664b58dca3181", "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": 45}}}]}, {"ruleId": "scanner-1838a141491ce38c", "level": "warning", "message": {"text": "GitHub Actions workflow grants broad write permissions"}, "properties": {"repobilityId": "b8fd4f5048f96576", "scanner": "scanner-primary", "fingerprint": "1838a141491ce38c", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "least-privilege"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/release.yml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-37092a8291039fbe", "level": "note", "message": {"text": "Very large file: rt11_devel/projects/saper/source/gen_saper.py (2258 lines)"}, "properties": {"repobilityId": "ead653c9304824e8", "scanner": "scanner-primary", "fingerprint": "37092a8291039fbe", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-d35c47eb3d4f1210", "level": "note", "message": {"text": "Very large file: disk_recovery/tools/review.py (1586 lines)"}, "properties": {"repobilityId": "008cfc02d94dd56f", "scanner": "scanner-primary", "fingerprint": "d35c47eb3d4f1210", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-ea3b5e389d8c9c0f", "level": "note", "message": {"text": "Low test-to-source ratio"}, "properties": {"repobilityId": "ef7b2552cc00a375", "scanner": "scanner-primary", "fingerprint": "ea3b5e389d8c9c0f", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["tests"]}}, {"ruleId": "scanner-141b30a41e03817b", "level": "note", "message": {"text": "No license file detected"}, "properties": {"repobilityId": "71945d47b4bda048", "scanner": "scanner-primary", "fingerprint": "141b30a41e03817b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["license", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-3ab5d313dda8e5f9", "level": "note", "message": {"text": "Debug logging residue appears in source files"}, "properties": {"repobilityId": "2c3e2db42122efe3", "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": "56ba4e4e5192dbc1", "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": "c759d0e0d998de26", "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": "272af2693c0895ea", "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": "7e698b5f822b9122", "scanner": "scanner-primary", "fingerprint": "8424db9c75e04ba4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["provenance", "git-history", "generated-repo-pattern"]}}, {"ruleId": "scanner-3ee276cd65643ec5", "level": "none", "message": {"text": "Commented-code block (14 lines) in rt11_devel/projects/saper/source/gen_saper.py:196"}, "properties": {"repobilityId": "494bdeda6782d41e", "scanner": "scanner-primary", "fingerprint": "3ee276cd65643ec5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-cf917c6f8ce58c10", "level": "none", "message": {"text": "Commented-code block (7 lines) in rt11_devel/toolset/build.py:186"}, "properties": {"repobilityId": "6b10062debba2de8", "scanner": "scanner-primary", "fingerprint": "cf917c6f8ce58c10", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5b157154149a9658", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 rt11_devel/toolset/build.py:183"}, "properties": {"repobilityId": "8377c36d4a00fa08", "scanner": "scanner-primary", "fingerprint": "5b157154149a9658", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-87b7d4c9bc081cfd", "level": "none", "message": {"text": "Commented-code block (5 lines) in rt11_devel/toolset/tests/test_rt11.py:22"}, "properties": {"repobilityId": "c6319906a74e29b6", "scanner": "scanner-primary", "fingerprint": "87b7d4c9bc081cfd", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6b960ff7381ddcc5", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 disk_recovery/tools/import_images.py:54"}, "properties": {"repobilityId": "3f8cf8127e75cb8b", "scanner": "scanner-primary", "fingerprint": "6b960ff7381ddcc5", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-80c598a4fec2dd9c", "level": "none", "message": {"text": "Commented-code block (5 lines) in disk_recovery/tools/consensus.py:58"}, "properties": {"repobilityId": "7814f8db2fbc1464", "scanner": "scanner-primary", "fingerprint": "80c598a4fec2dd9c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-79b5f6c196b15dd9", "level": "none", "message": {"text": "Commented-code block (7 lines) in disk_recovery/tools/build_corpus.py:107"}, "properties": {"repobilityId": "145740569b7cd1b9", "scanner": "scanner-primary", "fingerprint": "79b5f6c196b15dd9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3c8249108713337a", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 disk_recovery/tools/build_corpus.py:72"}, "properties": {"repobilityId": "1e1b58f4c03fafcb", "scanner": "scanner-primary", "fingerprint": "3c8249108713337a", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-72d0efb4059d0c48", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 disk_recovery/tools/identify.py:56"}, "properties": {"repobilityId": "3b232f9c57bb9006", "scanner": "scanner-primary", "fingerprint": "72d0efb4059d0c48", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-c0d57f6f213475a8", "level": "none", "message": {"text": "Commented-code block (8 lines) in disk_recovery/tools/review.py:41"}, "properties": {"repobilityId": "77d75eaae7e885dd", "scanner": "scanner-primary", "fingerprint": "c0d57f6f213475a8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-17547adebc213694", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 disk_recovery/tools/review.py:1379"}, "properties": {"repobilityId": "95d117c87e3fa288", "scanner": "scanner-primary", "fingerprint": "17547adebc213694", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "06a71d15b86aa28d", "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": "dd3f4eba40f07773", "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": "8725575dcc579205", "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": "721f3a5ce8bbba85", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}]}]}