{"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-34d1dc7f25f2cd18", "name": "Possibly dead Python function: is_cached", "shortDescription": {"text": "Possibly dead Python function: is_cached"}, "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-245801020f5c8879", "name": "Possibly dead Python function: init_db", "shortDescription": {"text": "Possibly dead Python function: init_db"}, "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-a66d09e4b255aa3d", "name": "Possibly dead Python function: rename_month", "shortDescription": {"text": "Possibly dead Python function: rename_month"}, "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-c0cc137f91366d45", "name": "Possibly dead Python function: delete_month", "shortDescription": {"text": "Possibly dead Python function: delete_month"}, "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-08f77042fa74bb24", "name": "Possibly dead Python function: add_transaction", "shortDescription": {"text": "Possibly dead Python function: add_transaction"}, "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-3c64f1130f976caf", "name": "Possibly dead Python function: update_transaction", "shortDescription": {"text": "Possibly dead Python function: update_transaction"}, "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-62f390c8e137e49b", "name": "Possibly dead Python function: delete_transaction", "shortDescription": {"text": "Possibly dead Python function: delete_transaction"}, "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-af58e1f1c96f100c", "name": "Possibly dead Python function: confirm_expectation", "shortDescription": {"text": "Possibly dead Python function: confirm_expectation"}, "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-5f931db77131deb5", "name": "Possibly dead Python function: copy_transactions_to_month", "shortDescription": {"text": "Possibly dead Python function: copy_transactions_to_month"}, "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-90bb7e5ea6e8dd87", "name": "Possibly dead Python function: create_goal", "shortDescription": {"text": "Possibly dead Python function: create_goal"}, "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-0bb25d3b0a53ae89", "name": "Possibly dead Python function: add_goal_contribution", "shortDescription": {"text": "Possibly dead Python function: add_goal_contribution"}, "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-d6d739ae944707f8", "name": "Possibly dead Python function: update_goal", "shortDescription": {"text": "Possibly dead Python function: update_goal"}, "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-fd9f5414db1866c3", "name": "Possibly dead Python function: delete_goal", "shortDescription": {"text": "Possibly dead Python function: delete_goal"}, "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-70686d59c109f37b", "name": "Possibly dead Python function: create_card", "shortDescription": {"text": "Possibly dead Python function: create_card"}, "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-4353299c7234ae25", "name": "Possibly dead Python function: update_card", "shortDescription": {"text": "Possibly dead Python function: update_card"}, "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-9b2fc507d7a12d9c", "name": "Possibly dead Python function: delete_card", "shortDescription": {"text": "Possibly dead Python function: delete_card"}, "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-3835b8591928f60a", "name": "Possibly dead Python function: add_card_transaction", "shortDescription": {"text": "Possibly dead Python function: add_card_transaction"}, "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-9d59fd080a4ca9c2", "name": "Possibly dead Python function: delete_card_transaction", "shortDescription": {"text": "Possibly dead Python function: delete_card_transaction"}, "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-46b07cc9c778f15f", "name": "Possibly dead Python function: pay_card_bill", "shortDescription": {"text": "Possibly dead Python function: pay_card_bill"}, "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-ad63053e0f972d2b", "name": "Possibly dead Python function: clear_cache", "shortDescription": {"text": "Possibly dead Python function: clear_cache"}, "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-adb14f1aa0c6fc81", "name": "Possibly dead Python function: create_investment", "shortDescription": {"text": "Possibly dead Python function: create_investment"}, "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-192f77da01dd1a2a", "name": "Possibly dead Python function: add_movement", "shortDescription": {"text": "Possibly dead Python function: add_movement"}, "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-73f3ddf4cddce2e9", "name": "Possibly dead Python function: update_investment", "shortDescription": {"text": "Possibly dead Python function: update_investment"}, "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-12be69c6d746b0e4", "name": "Possibly dead Python function: update_movement", "shortDescription": {"text": "Possibly dead Python function: update_movement"}, "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-6893a6c8b0861585", "name": "Very low test-to-source ratio", "shortDescription": {"text": "Very low test-to-source ratio"}, "fullDescription": {"text": "0 test file(s) for 3 source file(s) (ratio 0.00). Consider adding integration or unit tests for critical paths."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-141b30a41e03817b", "name": "No license file detected", "shortDescription": {"text": "No license file detected"}, "fullDescription": {"text": "No LICENSE/COPYING/NOTICE file was found. Generated repositories often omit licensing, which blocks reuse and automated intake."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-faccb9061e9b52a0", "name": "No README detected", "shortDescription": {"text": "No README detected"}, "fullDescription": {"text": "No README file was found. Generated repos without README context are hard to operate, validate, or safely hand off."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-b9088664ace7f748", "name": "Composite production-readiness gap", "shortDescription": {"text": "Composite production-readiness gap"}, "fullDescription": {"text": "Multiple low-cost hardening controls are missing together: license, ci, tests, operator-readme. Opus verification showed these co-occurring gaps are a better readiness signal than reading each flag in isolation."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-77586d0b1ea030c0", "name": "Legacy-named symbol `to_copy` in database.py:236", "shortDescription": {"text": "Legacy-named symbol `to_copy` in database.py:236"}, "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}}]}}, "automationDetails": {"id": "repobility/25999"}, "properties": {"repository": "gabrielmserra/des.tino", "repoUrl": "https://github.com/gabrielmserra/des.tino", "branch": "main"}, "results": [{"ruleId": "scanner-34d1dc7f25f2cd18", "level": "note", "message": {"text": "Possibly dead Python function: is_cached"}, "properties": {"repobilityId": "ed2d8e4b4b10f8ee", "scanner": "scanner-primary", "fingerprint": "34d1dc7f25f2cd18", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "database.py:19"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-245801020f5c8879", "level": "note", "message": {"text": "Possibly dead Python function: init_db"}, "properties": {"repobilityId": "a776a5dfbdf65853", "scanner": "scanner-primary", "fingerprint": "245801020f5c8879", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "database.py:23"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-a66d09e4b255aa3d", "level": "note", "message": {"text": "Possibly dead Python function: rename_month"}, "properties": {"repobilityId": "8c5cdc1a136fa223", "scanner": "scanner-primary", "fingerprint": "a66d09e4b255aa3d", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "database.py:61"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-c0cc137f91366d45", "level": "note", "message": {"text": "Possibly dead Python function: delete_month"}, "properties": {"repobilityId": "e38d2f4e4fea8646", "scanner": "scanner-primary", "fingerprint": "c0cc137f91366d45", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "database.py:72"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-08f77042fa74bb24", "level": "note", "message": {"text": "Possibly dead Python function: add_transaction"}, "properties": {"repobilityId": "9aed3f3f5fe77815", "scanner": "scanner-primary", "fingerprint": "08f77042fa74bb24", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "database.py:94"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-3c64f1130f976caf", "level": "note", "message": {"text": "Possibly dead Python function: update_transaction"}, "properties": {"repobilityId": "6c6fcc96e67f78ff", "scanner": "scanner-primary", "fingerprint": "3c64f1130f976caf", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "database.py:120"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-62f390c8e137e49b", "level": "note", "message": {"text": "Possibly dead Python function: delete_transaction"}, "properties": {"repobilityId": "81dfa21355d55432", "scanner": "scanner-primary", "fingerprint": "62f390c8e137e49b", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "database.py:141"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-af58e1f1c96f100c", "level": "note", "message": {"text": "Possibly dead Python function: confirm_expectation"}, "properties": {"repobilityId": "ea9f9c1e4acbe17a", "scanner": "scanner-primary", "fingerprint": "af58e1f1c96f100c", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "database.py:146"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-5f931db77131deb5", "level": "note", "message": {"text": "Possibly dead Python function: copy_transactions_to_month"}, "properties": {"repobilityId": "12138caa6f600e22", "scanner": "scanner-primary", "fingerprint": "5f931db77131deb5", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "database.py:225"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-90bb7e5ea6e8dd87", "level": "note", "message": {"text": "Possibly dead Python function: create_goal"}, "properties": {"repobilityId": "153bc920d51c4301", "scanner": "scanner-primary", "fingerprint": "90bb7e5ea6e8dd87", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "database.py:288"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-0bb25d3b0a53ae89", "level": "note", "message": {"text": "Possibly dead Python function: add_goal_contribution"}, "properties": {"repobilityId": "eb30015832e686b7", "scanner": "scanner-primary", "fingerprint": "0bb25d3b0a53ae89", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "database.py:298"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-d6d739ae944707f8", "level": "note", "message": {"text": "Possibly dead Python function: update_goal"}, "properties": {"repobilityId": "05a8b986b26ae06d", "scanner": "scanner-primary", "fingerprint": "d6d739ae944707f8", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "database.py:307"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-fd9f5414db1866c3", "level": "note", "message": {"text": "Possibly dead Python function: delete_goal"}, "properties": {"repobilityId": "d731d2486f3046f0", "scanner": "scanner-primary", "fingerprint": "fd9f5414db1866c3", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "database.py:313"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-70686d59c109f37b", "level": "note", "message": {"text": "Possibly dead Python function: create_card"}, "properties": {"repobilityId": "78157197bb61cc8f", "scanner": "scanner-primary", "fingerprint": "70686d59c109f37b", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "database.py:331"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-4353299c7234ae25", "level": "note", "message": {"text": "Possibly dead Python function: update_card"}, "properties": {"repobilityId": "83295bab0d334037", "scanner": "scanner-primary", "fingerprint": "4353299c7234ae25", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "database.py:341"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-9b2fc507d7a12d9c", "level": "note", "message": {"text": "Possibly dead Python function: delete_card"}, "properties": {"repobilityId": "6eb016710a2d8cc5", "scanner": "scanner-primary", "fingerprint": "9b2fc507d7a12d9c", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "database.py:348"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-3835b8591928f60a", "level": "note", "message": {"text": "Possibly dead Python function: add_card_transaction"}, "properties": {"repobilityId": "6fb370e499bc8056", "scanner": "scanner-primary", "fingerprint": "3835b8591928f60a", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "database.py:369"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-9d59fd080a4ca9c2", "level": "note", "message": {"text": "Possibly dead Python function: delete_card_transaction"}, "properties": {"repobilityId": "313309a5b7d0df79", "scanner": "scanner-primary", "fingerprint": "9d59fd080a4ca9c2", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "database.py:379"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-46b07cc9c778f15f", "level": "note", "message": {"text": "Possibly dead Python function: pay_card_bill"}, "properties": {"repobilityId": "52f53bc2abbcccac", "scanner": "scanner-primary", "fingerprint": "46b07cc9c778f15f", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "database.py:395"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-ad63053e0f972d2b", "level": "note", "message": {"text": "Possibly dead Python function: clear_cache"}, "properties": {"repobilityId": "089acf3efecdf10a", "scanner": "scanner-primary", "fingerprint": "ad63053e0f972d2b", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "database.py:409"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-adb14f1aa0c6fc81", "level": "note", "message": {"text": "Possibly dead Python function: create_investment"}, "properties": {"repobilityId": "0b3ac60e62b4a2a4", "scanner": "scanner-primary", "fingerprint": "adb14f1aa0c6fc81", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "database.py:452"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-192f77da01dd1a2a", "level": "note", "message": {"text": "Possibly dead Python function: add_movement"}, "properties": {"repobilityId": "4278805bf4ee6b01", "scanner": "scanner-primary", "fingerprint": "192f77da01dd1a2a", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "database.py:494"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-73f3ddf4cddce2e9", "level": "note", "message": {"text": "Possibly dead Python function: update_investment"}, "properties": {"repobilityId": "fecf2842463abf26", "scanner": "scanner-primary", "fingerprint": "73f3ddf4cddce2e9", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "database.py:515"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-12be69c6d746b0e4", "level": "note", "message": {"text": "Possibly dead Python function: update_movement"}, "properties": {"repobilityId": "e022b7d4794730c7", "scanner": "scanner-primary", "fingerprint": "12be69c6d746b0e4", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "database.py:521"}, "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-6893a6c8b0861585", "level": "warning", "message": {"text": "Very low test-to-source ratio"}, "properties": {"repobilityId": "54a7de3f06314bf0", "scanner": "scanner-primary", "fingerprint": "6893a6c8b0861585", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["tests", "coverage"]}}, {"ruleId": "scanner-141b30a41e03817b", "level": "note", "message": {"text": "No license file detected"}, "properties": {"repobilityId": "84562e22e93d7836", "scanner": "scanner-primary", "fingerprint": "141b30a41e03817b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["license", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-faccb9061e9b52a0", "level": "note", "message": {"text": "No README detected"}, "properties": {"repobilityId": "9d06a6519643dc68", "scanner": "scanner-primary", "fingerprint": "faccb9061e9b52a0", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["docs", "readme", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-b9088664ace7f748", "level": "warning", "message": {"text": "Composite production-readiness gap"}, "properties": {"repobilityId": "b01a6d2499501b16", "scanner": "scanner-primary", "fingerprint": "b9088664ace7f748", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["production-readiness", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-77586d0b1ea030c0", "level": "note", "message": {"text": "Legacy-named symbol `to_copy` in database.py:236"}, "properties": {"repobilityId": "bf40acc7d243d9c4", "scanner": "scanner-primary", "fingerprint": "77586d0b1ea030c0", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}]}]}