{"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-8525ce8c2b4b62e1", "name": "Possibly dead Python function: cap", "shortDescription": {"text": "Possibly dead Python function: cap"}, "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-de5b2f416e63e2ff", "name": "Possibly dead Python function: inner_w", "shortDescription": {"text": "Possibly dead Python function: inner_w"}, "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-ddea416c75af8969", "name": "Possibly dead Python function: t", "shortDescription": {"text": "Possibly dead Python function: 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-4be3042c5b259024", "name": "Possibly dead Python function: build_dungeon_seekers_labyrinth", "shortDescription": {"text": "Possibly dead Python function: build_dungeon_seekers_labyrinth"}, "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-151fd90ad1947cfe", "name": "Possibly dead Python function: build_dungeon_waypoint_sanctum", "shortDescription": {"text": "Possibly dead Python function: build_dungeon_waypoint_sanctum"}, "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-6ad04ce10d4934b9", "name": "Possibly dead Python function: gg", "shortDescription": {"text": "Possibly dead Python function: gg"}, "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-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-7287bddcb25c5b1c", "name": "Very large file: main.py (5254 lines)", "shortDescription": {"text": "Very large file: main.py (5254 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-7e6747ccdab06108", "name": "Very large file: art/_gen_runes.py (1083 lines)", "shortDescription": {"text": "Very large file: art/_gen_runes.py (1083 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-6c08b19e50cfcc82", "name": "Very large file: generation/dungeon_gen.py (6819 lines)", "shortDescription": {"text": "Very large file: generation/dungeon_gen.py (6819 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-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 39 console/debugger/print-style debug statements in non-test source. This is a common fast-generation residue before production cleanup."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-2d0c7b7ab8f8aacf", "name": "Critical user flow still appears backed by mock or placeholder data", "shortDescription": {"text": "Critical user flow still appears backed by mock or placeholder data"}, "fullDescription": {"text": "A payment/auth/admin/order/billing-style flow contains mock, fake, TODO, dummy, or placeholder markers in runtime source. In the Fable corpus this is a high-leverage completeness smell: the app can look finished while the money, identity, or tenant flow is still scaffolded."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-b9088664ace7f748", "name": "Composite production-readiness gap", "shortDescription": {"text": "Composite production-readiness gap"}, "fullDescription": {"text": "Multiple low-cost hardening controls are missing together: license, ci. Opus verification showed these co-occurring gaps are a better readiness signal than reading each flag in isolation."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-d1e8993b60885e0d", "name": "Commented-code block (8 lines) in conftest.py:3", "shortDescription": {"text": "Commented-code block (8 lines) in conftest.py:3"}, "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-bdcb27b99554db54", "name": "Commented-code block (5 lines) in main.py:564", "shortDescription": {"text": "Commented-code block (5 lines) in main.py:564"}, "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-3de18d2686d957ed", "name": "Commented-code block (6 lines) in tests/test_answer_paths.py:79", "shortDescription": {"text": "Commented-code block (6 lines) in tests/test_answer_paths.py:79"}, "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-372e67ec14624615", "name": "Commented-code block (8 lines) in tests/test_motion.py:774", "shortDescription": {"text": "Commented-code block (8 lines) in tests/test_motion.py:774"}, "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-804a1c787c877d95", "name": "Commented-code block (5 lines) in tests/test_sight_sanctum.py:104", "shortDescription": {"text": "Commented-code block (5 lines) in tests/test_sight_sanctum.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-ecadce08f6b9f86f", "name": "Commented-code block (12 lines) in art/_gen_runes.py:338", "shortDescription": {"text": "Commented-code block (12 lines) in art/_gen_runes.py:338"}, "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-b5a783a87cb911c1", "name": "Commented-code block (5 lines) in render/overworld.py:84", "shortDescription": {"text": "Commented-code block (5 lines) in render/overworld.py:84"}, "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-e2f40b1a50342672", "name": "Commented-code block (8 lines) in render/wizard_blessing.py:18", "shortDescription": {"text": "Commented-code block (8 lines) in render/wizard_blessing.py:18"}, "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-b8ec2b2912e90147", "name": "Commented-code block (5 lines) in generation/dungeon_gen.py:463", "shortDescription": {"text": "Commented-code block (5 lines) in generation/dungeon_gen.py:463"}, "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-2f28afcd72db28d9", "name": "Commented-code block (7 lines) in engine/world.py:79", "shortDescription": {"text": "Commented-code block (7 lines) in engine/world.py:79"}, "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-c6639c7596836612", "name": "Commented-code block (11 lines) in engine/motion.py:84", "shortDescription": {"text": "Commented-code block (11 lines) in engine/motion.py:84"}, "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-9d19996242614cbe", "name": "Commented-code block (5 lines) in content/scrolls.py:101", "shortDescription": {"text": "Commented-code block (5 lines) in content/scrolls.py:101"}, "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:\nmain.py:row, main.py:row\n\nThis is *the* AI-coder failure mode (4\u00d7 more duplication in vibe-coded repos \u2014 see https://jw.hn/ai-code-hygiene). Consolidate or document why they're separate."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-76a2f6818267a9a8", "name": "Near-duplicate function bodies in 8 places", "shortDescription": {"text": "Near-duplicate function bodies in 8 places"}, "fullDescription": {"text": "Functions with the same first-5-line body hash:\ngeneration/dungeon_gen.py:neighbors, generation/dungeon_gen.py:neighbors, generation/dungeon_gen.py:neighbors, generation/dungeon_gen.py:neighbors\n\nThis is *the* AI-coder failure mode (4\u00d7 more duplication in vibe-coded repos \u2014 see https://jw.hn/ai-code-hygiene). Consolidate or document why they're separate."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-49c98f7cedd9c977", "name": "Near-duplicate function bodies in 4 places", "shortDescription": {"text": "Near-duplicate function bodies in 4 places"}, "fullDescription": {"text": "Functions with the same first-5-line body hash:\ngeneration/dungeon_gen.py:lay, generation/dungeon_gen.py:lay, generation/dungeon_gen.py:lay, generation/dungeon_gen.py:lay\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/24933"}, "properties": {"repository": "chkiss/Vimny", "repoUrl": "https://github.com/chkiss/Vimny", "branch": "main"}, "results": [{"ruleId": "scanner-8525ce8c2b4b62e1", "level": "note", "message": {"text": "Possibly dead Python function: cap"}, "properties": {"repobilityId": "eb7d6058481b4ace", "scanner": "scanner-primary", "fingerprint": "8525ce8c2b4b62e1", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tools/par_audit.py:176"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-de5b2f416e63e2ff", "level": "note", "message": {"text": "Possibly dead Python function: inner_w"}, "properties": {"repobilityId": "2f69f54a6759d974", "scanner": "scanner-primary", "fingerprint": "de5b2f416e63e2ff", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "render/utils.py:3"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-ddea416c75af8969", "level": "note", "message": {"text": "Possibly dead Python function: t"}, "properties": {"repobilityId": "cd0a46fede537361", "scanner": "scanner-primary", "fingerprint": "ddea416c75af8969", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "render/colors.py:12"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-4be3042c5b259024", "level": "note", "message": {"text": "Possibly dead Python function: build_dungeon_seekers_labyrinth"}, "properties": {"repobilityId": "b7de73ab6721d079", "scanner": "scanner-primary", "fingerprint": "4be3042c5b259024", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "generation/dungeon_gen.py:3185"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-151fd90ad1947cfe", "level": "note", "message": {"text": "Possibly dead Python function: build_dungeon_waypoint_sanctum"}, "properties": {"repobilityId": "002b7e219a454aab", "scanner": "scanner-primary", "fingerprint": "151fd90ad1947cfe", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "generation/dungeon_gen.py:3424"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-6ad04ce10d4934b9", "level": "note", "message": {"text": "Possibly dead Python function: gg"}, "properties": {"repobilityId": "d8435ba837096b31", "scanner": "scanner-primary", "fingerprint": "6ad04ce10d4934b9", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "engine/substitute.py:156"}, "region": {"startLine": 1}}}]}, {"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-7287bddcb25c5b1c", "level": "note", "message": {"text": "Very large file: main.py (5254 lines)"}, "properties": {"repobilityId": "d28330f452f23706", "scanner": "scanner-primary", "fingerprint": "7287bddcb25c5b1c", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-7e6747ccdab06108", "level": "note", "message": {"text": "Very large file: art/_gen_runes.py (1083 lines)"}, "properties": {"repobilityId": "2849281020644ddc", "scanner": "scanner-primary", "fingerprint": "7e6747ccdab06108", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-6c08b19e50cfcc82", "level": "note", "message": {"text": "Very large file: generation/dungeon_gen.py (6819 lines)"}, "properties": {"repobilityId": "33759fbdb8df8bf9", "scanner": "scanner-primary", "fingerprint": "6c08b19e50cfcc82", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-141b30a41e03817b", "level": "note", "message": {"text": "No license file detected"}, "properties": {"repobilityId": "b3abb2ddd33a5af1", "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": "d37a38b9cdec535d", "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": "8020a9a9dc5b3ff2", "scanner": "scanner-primary", "fingerprint": "2d0c7b7ab8f8aacf", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["placeholder", "mock-data", "critical-flow", "generated-repo-pattern"]}}, {"ruleId": "scanner-b9088664ace7f748", "level": "note", "message": {"text": "Composite production-readiness gap"}, "properties": {"repobilityId": "df7d9fbbbf353dc8", "scanner": "scanner-primary", "fingerprint": "b9088664ace7f748", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["production-readiness", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-d1e8993b60885e0d", "level": "none", "message": {"text": "Commented-code block (8 lines) in conftest.py:3"}, "properties": {"repobilityId": "dd97efe1ab53ac90", "scanner": "scanner-primary", "fingerprint": "d1e8993b60885e0d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-bdcb27b99554db54", "level": "none", "message": {"text": "Commented-code block (5 lines) in main.py:564"}, "properties": {"repobilityId": "63bb395da18d1aa1", "scanner": "scanner-primary", "fingerprint": "bdcb27b99554db54", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3de18d2686d957ed", "level": "none", "message": {"text": "Commented-code block (6 lines) in tests/test_answer_paths.py:79"}, "properties": {"repobilityId": "b8ba362495043e58", "scanner": "scanner-primary", "fingerprint": "3de18d2686d957ed", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-372e67ec14624615", "level": "none", "message": {"text": "Commented-code block (8 lines) in tests/test_motion.py:774"}, "properties": {"repobilityId": "9a4537d11cab295a", "scanner": "scanner-primary", "fingerprint": "372e67ec14624615", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-804a1c787c877d95", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/test_sight_sanctum.py:104"}, "properties": {"repobilityId": "b1d237470e47f919", "scanner": "scanner-primary", "fingerprint": "804a1c787c877d95", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ecadce08f6b9f86f", "level": "none", "message": {"text": "Commented-code block (12 lines) in art/_gen_runes.py:338"}, "properties": {"repobilityId": "36c757996e5cd07c", "scanner": "scanner-primary", "fingerprint": "ecadce08f6b9f86f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b5a783a87cb911c1", "level": "none", "message": {"text": "Commented-code block (5 lines) in render/overworld.py:84"}, "properties": {"repobilityId": "66582cadb1d72aaa", "scanner": "scanner-primary", "fingerprint": "b5a783a87cb911c1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e2f40b1a50342672", "level": "none", "message": {"text": "Commented-code block (8 lines) in render/wizard_blessing.py:18"}, "properties": {"repobilityId": "f9efa2d60529a5e6", "scanner": "scanner-primary", "fingerprint": "e2f40b1a50342672", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b8ec2b2912e90147", "level": "none", "message": {"text": "Commented-code block (5 lines) in generation/dungeon_gen.py:463"}, "properties": {"repobilityId": "b2e3c52cdff1585f", "scanner": "scanner-primary", "fingerprint": "b8ec2b2912e90147", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2f28afcd72db28d9", "level": "none", "message": {"text": "Commented-code block (7 lines) in engine/world.py:79"}, "properties": {"repobilityId": "a709a79981f1c88f", "scanner": "scanner-primary", "fingerprint": "2f28afcd72db28d9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c6639c7596836612", "level": "none", "message": {"text": "Commented-code block (11 lines) in engine/motion.py:84"}, "properties": {"repobilityId": "63a81629e706f8de", "scanner": "scanner-primary", "fingerprint": "c6639c7596836612", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9d19996242614cbe", "level": "none", "message": {"text": "Commented-code block (5 lines) in content/scrolls.py:101"}, "properties": {"repobilityId": "29e81be2333496c9", "scanner": "scanner-primary", "fingerprint": "9d19996242614cbe", "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": "04eec8022078b822", "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": "bf86e5bbd802a90a", "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": "395726d92fb3c6c7", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-76a2f6818267a9a8", "level": "note", "message": {"text": "Near-duplicate function bodies in 8 places"}, "properties": {"repobilityId": "cb0e9368a49530b5", "scanner": "scanner-primary", "fingerprint": "76a2f6818267a9a8", "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": "14dd24196eb65a19", "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": "4ca156cd891dd43b", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-49c98f7cedd9c977", "level": "note", "message": {"text": "Near-duplicate function bodies in 4 places"}, "properties": {"repobilityId": "4546bc215e74298b", "scanner": "scanner-primary", "fingerprint": "49c98f7cedd9c977", "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": "05e4c779c77a8d76", "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": "506dcf38b6e5c5af", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}]}]}