{"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-79bcb5618d8d1088", "name": "Possibly dead Python function: cmd_approve", "shortDescription": {"text": "Possibly dead Python function: cmd_approve"}, "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-33508ec8419c1524", "name": "Possibly dead Python function: cmd_annotate", "shortDescription": {"text": "Possibly dead Python function: cmd_annotate"}, "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-8fa4aa82e5373c25", "name": "Possibly dead Python function: cmd_check", "shortDescription": {"text": "Possibly dead Python function: cmd_check"}, "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-99b0d2b4baf6743e", "name": "Possibly dead Python function: cmd_audit", "shortDescription": {"text": "Possibly dead Python function: cmd_audit"}, "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-1878ad4bea9dd2e5", "name": "Possibly dead Python function: cmd_trace", "shortDescription": {"text": "Possibly dead Python function: cmd_trace"}, "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-dd70323201a2540e", "name": "Possibly dead Python function: cmd_graph", "shortDescription": {"text": "Possibly dead Python function: cmd_graph"}, "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-ea9c52d8be00ddf0", "name": "Possibly dead Python function: cmd_digest", "shortDescription": {"text": "Possibly dead Python function: cmd_digest"}, "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-560bcb6f4337ccf2", "name": "Possibly dead Python function: cmd_init", "shortDescription": {"text": "Possibly dead Python function: cmd_init"}, "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-51c43c769f38b5c3", "name": "Possibly dead Python function: cmd_hook", "shortDescription": {"text": "Possibly dead Python function: cmd_hook"}, "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-4566f3283fad679d", "name": "Possibly dead Python function: cmd_explain", "shortDescription": {"text": "Possibly dead Python function: cmd_explain"}, "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-4cc870de0b27734a", "name": "Possibly dead Python function: cmd_doctor", "shortDescription": {"text": "Possibly dead Python function: cmd_doctor"}, "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-bf42fca8e483a657", "name": "Possibly dead Python function: cmd_install_hook", "shortDescription": {"text": "Possibly dead Python function: cmd_install_hook"}, "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-1e948f9f29d7cabe", "name": "Insecure pattern 'subprocess_shell_true' in charter.py:134", "shortDescription": {"text": "Insecure pattern 'subprocess_shell_true' in charter.py:134"}, "fullDescription": {"text": "Found a known-risky pattern (subprocess_shell_true). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-527563b12feb701b", "name": "Very large file: charter.py (1197 lines)", "shortDescription": {"text": "Very large file: charter.py (1197 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 66 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}}]}}, "automationDetails": {"id": "repobility/25152"}, "properties": {"repository": "cspergel/Charter", "repoUrl": "https://github.com/cspergel/Charter", "branch": "main"}, "results": [{"ruleId": "scanner-79bcb5618d8d1088", "level": "note", "message": {"text": "Possibly dead Python function: cmd_approve"}, "properties": {"repobilityId": "db9b0be4996c2d95", "scanner": "scanner-primary", "fingerprint": "79bcb5618d8d1088", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "charter.py:425"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-33508ec8419c1524", "level": "note", "message": {"text": "Possibly dead Python function: cmd_annotate"}, "properties": {"repobilityId": "ce82924c2203e81e", "scanner": "scanner-primary", "fingerprint": "33508ec8419c1524", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "charter.py:478"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-8fa4aa82e5373c25", "level": "note", "message": {"text": "Possibly dead Python function: cmd_check"}, "properties": {"repobilityId": "fea974108d10c36c", "scanner": "scanner-primary", "fingerprint": "8fa4aa82e5373c25", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "charter.py:573"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-99b0d2b4baf6743e", "level": "note", "message": {"text": "Possibly dead Python function: cmd_audit"}, "properties": {"repobilityId": "51ac11579de8cd34", "scanner": "scanner-primary", "fingerprint": "99b0d2b4baf6743e", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "charter.py:691"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-1878ad4bea9dd2e5", "level": "note", "message": {"text": "Possibly dead Python function: cmd_trace"}, "properties": {"repobilityId": "b3b0136ed1025ab3", "scanner": "scanner-primary", "fingerprint": "1878ad4bea9dd2e5", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "charter.py:785"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-dd70323201a2540e", "level": "note", "message": {"text": "Possibly dead Python function: cmd_graph"}, "properties": {"repobilityId": "37c3a935a3d7ae45", "scanner": "scanner-primary", "fingerprint": "dd70323201a2540e", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "charter.py:808"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-ea9c52d8be00ddf0", "level": "note", "message": {"text": "Possibly dead Python function: cmd_digest"}, "properties": {"repobilityId": "50f3adf251e4a433", "scanner": "scanner-primary", "fingerprint": "ea9c52d8be00ddf0", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "charter.py:842"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-560bcb6f4337ccf2", "level": "note", "message": {"text": "Possibly dead Python function: cmd_init"}, "properties": {"repobilityId": "3f17b7245a36f920", "scanner": "scanner-primary", "fingerprint": "560bcb6f4337ccf2", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "charter.py:882"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-51c43c769f38b5c3", "level": "note", "message": {"text": "Possibly dead Python function: cmd_hook"}, "properties": {"repobilityId": "a6a2174c795e510d", "scanner": "scanner-primary", "fingerprint": "51c43c769f38b5c3", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "charter.py:895"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-4566f3283fad679d", "level": "note", "message": {"text": "Possibly dead Python function: cmd_explain"}, "properties": {"repobilityId": "97d457a4beff448c", "scanner": "scanner-primary", "fingerprint": "4566f3283fad679d", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "charter.py:946"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-4cc870de0b27734a", "level": "note", "message": {"text": "Possibly dead Python function: cmd_doctor"}, "properties": {"repobilityId": "9a95a890c390a044", "scanner": "scanner-primary", "fingerprint": "4cc870de0b27734a", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "charter.py:1007"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-bf42fca8e483a657", "level": "note", "message": {"text": "Possibly dead Python function: cmd_install_hook"}, "properties": {"repobilityId": "1b0ce1a4f807d092", "scanner": "scanner-primary", "fingerprint": "bf42fca8e483a657", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "charter.py:1083"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-1e948f9f29d7cabe", "level": "error", "message": {"text": "Insecure pattern 'subprocess_shell_true' in charter.py:134"}, "properties": {"repobilityId": "912a8907cfbce8b7", "scanner": "scanner-primary", "fingerprint": "1e948f9f29d7cabe", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "subprocess_shell_true"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "charter.py"}, "region": {"startLine": 134}}}]}, {"ruleId": "scanner-527563b12feb701b", "level": "note", "message": {"text": "Very large file: charter.py (1197 lines)"}, "properties": {"repobilityId": "4aa185c1bedd6d83", "scanner": "scanner-primary", "fingerprint": "527563b12feb701b", "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": "d12c72eef8a58161", "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": "0f938b0dd28318bf", "scanner": "scanner-primary", "fingerprint": "2d0c7b7ab8f8aacf", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["placeholder", "mock-data", "critical-flow", "generated-repo-pattern"]}}]}]}