{"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-83728806041fea6e", "name": "Possibly dead Python function: do_GET", "shortDescription": {"text": "Possibly dead Python function: do_GET"}, "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-b926f0f5cdf43b12", "name": "Possibly dead Python function: log_message", "shortDescription": {"text": "Possibly dead Python function: log_message"}, "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-64ff9de1574cb0a7", "name": "Possibly dead Python function: do_GET", "shortDescription": {"text": "Possibly dead Python function: do_GET"}, "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-4905920d844e22a1", "name": "Possibly dead Python function: do_POST", "shortDescription": {"text": "Possibly dead Python function: do_POST"}, "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-2c4c84e32bc4c51f", "name": "Possibly dead Python function: log_message", "shortDescription": {"text": "Possibly dead Python function: log_message"}, "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-71f3fac332239285", "name": "Possibly dead Python function: do_GET", "shortDescription": {"text": "Possibly dead Python function: do_GET"}, "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-2cdbb2c45f0eb4bb", "name": "Possibly dead Python function: log_message", "shortDescription": {"text": "Possibly dead Python function: log_message"}, "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-b3b64c695c357adc", "name": "Possibly dead Python function: do_GET", "shortDescription": {"text": "Possibly dead Python function: do_GET"}, "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-55769b6592887bf6", "name": "Possibly dead Python function: do_POST", "shortDescription": {"text": "Possibly dead Python function: do_POST"}, "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-2269e7ea62b0f36b", "name": "Possibly dead Python function: log_message", "shortDescription": {"text": "Possibly dead Python function: log_message"}, "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-6378bd01cbff799a", "name": "Possibly dead Python function: do_GET", "shortDescription": {"text": "Possibly dead Python function: do_GET"}, "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-bb20f7096d25e8a5", "name": "Possibly dead Python function: log_message", "shortDescription": {"text": "Possibly dead Python function: log_message"}, "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-6142c4617a3fbfc0", "name": "Possibly dead Python function: do_GET", "shortDescription": {"text": "Possibly dead Python function: do_GET"}, "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-a9fc73cc79e48446", "name": "Possibly dead Python function: log_message", "shortDescription": {"text": "Possibly dead Python function: log_message"}, "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-9ceac24acd2c56ef", "name": "Possibly dead Python function: do_GET", "shortDescription": {"text": "Possibly dead Python function: do_GET"}, "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-62ade706f6409fce", "name": "Possibly dead Python function: log_message", "shortDescription": {"text": "Possibly dead Python function: log_message"}, "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-baf91da5c9ee4cc9", "name": "Possibly dead Python function: do_GET", "shortDescription": {"text": "Possibly dead Python function: do_GET"}, "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-7272b76988625c68", "name": "Possibly dead Python function: do_POST", "shortDescription": {"text": "Possibly dead Python function: do_POST"}, "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-cb09b02c01bae5ff", "name": "Possibly dead Python function: log_message", "shortDescription": {"text": "Possibly dead Python function: log_message"}, "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-ede0a3f75e9218e8", "name": "Dockerfile runs as root: container-addon/Dockerfile", "shortDescription": {"text": "Dockerfile runs as root: container-addon/Dockerfile"}, "fullDescription": {"text": "No non-root USER set. Containers running as root expand the blast radius of any vulnerability inside the image."}, "properties": {"scanner": "scanner-primary", "layer": "hardware", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-aa5acaa49eb8315b", "name": "Containers defined but no K8s/orchestration manifest found", "shortDescription": {"text": "Containers defined but no K8s/orchestration manifest found"}, "fullDescription": {"text": "Repo has Dockerfiles/compose but no Kubernetes/Nomad manifests. If the target deployment is K8s, the manifests may live in a separate ops repo."}, "properties": {"scanner": "scanner-primary", "layer": "hardware", "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-62a23a192507efb4", "name": "Insecure pattern 'subprocess_shell_true' in cursor/setup.py:423", "shortDescription": {"text": "Insecure pattern 'subprocess_shell_true' in cursor/setup.py:423"}, "fullDescription": {"text": "Found a known-risky pattern (subprocess_shell_true). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ac454ce557774572", "name": "Insecure pattern 'subprocess_shell_true' in cursor/mdm/setup.py:823", "shortDescription": {"text": "Insecure pattern 'subprocess_shell_true' in cursor/mdm/setup.py:823"}, "fullDescription": {"text": "Found a known-risky pattern (subprocess_shell_true). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-cfbc20da6195ca02", "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-d39b249be07e8f14", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "actions/setup-python@v5 can move without a code change in this repo. Pin third-party actions to a reviewed 40-character commit SHA."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "low", "confidence": 1.0}}, {"id": "scanner-badf5c7fd1a094dd", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "devcontainers/action@v1 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": "medium", "confidence": 1.0}}, {"id": "scanner-bae329a94ee1da19", "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-7fca27451ee3f4ce", "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-c2692ef1e8748b11", "name": "Very large file: codex/hooks/unbound.py (1597 lines)", "shortDescription": {"text": "Very large file: codex/hooks/unbound.py (1597 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-0c71331bf24ba04d", "name": "Very large file: codex/hooks/mdm/setup.py (1771 lines)", "shortDescription": {"text": "Very large file: codex/hooks/mdm/setup.py (1771 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-9d5376cbe10cba20", "name": "Very large file: cursor/unbound.py (1711 lines)", "shortDescription": {"text": "Very large file: cursor/unbound.py (1711 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-bd6fbab4a5970335", "name": "Very large file: copilot/hooks/unbound.py (1333 lines)", "shortDescription": {"text": "Very large file: copilot/hooks/unbound.py (1333 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-ebdad8e6105cbf58", "name": "Very large file: copilot/hooks/mdm/setup.py (1409 lines)", "shortDescription": {"text": "Very large file: copilot/hooks/mdm/setup.py (1409 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-41de6232ebec5103", "name": "Very large file: claude-code/hooks/unbound.py (1683 lines)", "shortDescription": {"text": "Very large file: claude-code/hooks/unbound.py (1683 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-b1c7167ea575ce2e", "name": "Very large file: claude-code/hooks/mdm/setup.py (1624 lines)", "shortDescription": {"text": "Very large file: claude-code/hooks/mdm/setup.py (1624 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 937 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-72b2a6250083a784", "name": "Placeholder or mock-heavy implementation detected", "shortDescription": {"text": "Placeholder or mock-heavy implementation detected"}, "fullDescription": {"text": "Found 22 placeholder/mock markers across 9 source files. This often means the repo looks complete while core flows still use generated scaffolding or fake data."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "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-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-f24fd7ae8871e7e8", "name": "Network/subprocess call without timeout or try/except \u2014 openclaw/setup.py:36", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 openclaw/setup.py:36"}, "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-7eb196f1fc984f1f", "name": "Stub function `log_message` (body is just `pass`/`return`) \u2014 openclaw/setup.py:202", "shortDescription": {"text": "Stub function `log_message` (body is just `pass`/`return`) \u2014 openclaw/setup.py:202"}, "fullDescription": {"text": "Likely an AI scaffold that was never filled in. Remove or implement."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-324edbdc865b4a4a", "name": "Commented-code block (5 lines) in mdm/onboard.py:49", "shortDescription": {"text": "Commented-code block (5 lines) in mdm/onboard.py:49"}, "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-eaeb3e9947bbe213", "name": "Network/subprocess call without timeout or try/except \u2014 gemini-cli/gateway/setup.py:232", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 gemini-cli/gateway/setup.py:232"}, "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-c9496e6523934a1b", "name": "Stub function `log_message` (body is just `pass`/`return`) \u2014 gemini-cli/gateway/setup.py:302", "shortDescription": {"text": "Stub function `log_message` (body is just `pass`/`return`) \u2014 gemini-cli/gateway/setup.py:302"}, "fullDescription": {"text": "Likely an AI scaffold that was never filled in. Remove or implement."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-2401d226cb18ff61", "name": "Commented-code block (5 lines) in codex/hooks/unbound.py:60", "shortDescription": {"text": "Commented-code block (5 lines) in codex/hooks/unbound.py:60"}, "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-28a7c44b9c634085", "name": "Commented-code block (6 lines) in codex/hooks/setup.py:946", "shortDescription": {"text": "Commented-code block (6 lines) in codex/hooks/setup.py:946"}, "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-3a024ff8e97c118d", "name": "Network/subprocess call without timeout or try/except \u2014 codex/hooks/setup.py:53", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 codex/hooks/setup.py:53"}, "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-4a7e59a48030ebf9", "name": "Stub function `log_message` (body is just `pass`/`return`) \u2014 codex/hooks/setup.py:249", "shortDescription": {"text": "Stub function `log_message` (body is just `pass`/`return`) \u2014 codex/hooks/setup.py:249"}, "fullDescription": {"text": "Likely an AI scaffold that was never filled in. Remove or implement."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-b09c63bc525e398a", "name": "Commented-code block (6 lines) in codex/hooks/mdm/setup.py:1419", "shortDescription": {"text": "Commented-code block (6 lines) in codex/hooks/mdm/setup.py:1419"}, "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-0a3512f7f813b4dc", "name": "Network/subprocess call without timeout or try/except \u2014 codex/gateway/setup.py:232", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 codex/gateway/setup.py:232"}, "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-6a63ad5835e61286", "name": "Stub function `log_message` (body is just `pass`/`return`) \u2014 codex/gateway/setup.py:302", "shortDescription": {"text": "Stub function `log_message` (body is just `pass`/`return`) \u2014 codex/gateway/setup.py:302"}, "fullDescription": {"text": "Likely an AI scaffold that was never filled in. Remove or implement."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-75b896bb5b2538fa", "name": "Commented-code block (5 lines) in cursor/unbound.py:64", "shortDescription": {"text": "Commented-code block (5 lines) in cursor/unbound.py:64"}, "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-d12f9725358d83d2", "name": "Network/subprocess call without timeout or try/except \u2014 cursor/unbound.py:123", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 cursor/unbound.py:123"}, "fullDescription": {"text": "`subprocess.Popen(...)` 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-46a888ae4156bf3a", "name": "Network/subprocess call without timeout or try/except \u2014 cursor/setup.py:38", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 cursor/setup.py:38"}, "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-6dbfe22df6acdebd", "name": "Stub function `log_message` (body is just `pass`/`return`) \u2014 cursor/setup.py:236", "shortDescription": {"text": "Stub function `log_message` (body is just `pass`/`return`) \u2014 cursor/setup.py:236"}, "fullDescription": {"text": "Likely an AI scaffold that was never filled in. Remove or implement."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-a5c8992e7815eaa4", "name": "Commented-code block (5 lines) in cursor/mdm/setup.py:18", "shortDescription": {"text": "Commented-code block (5 lines) in cursor/mdm/setup.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-23db025db5a0842c", "name": "Commented-code block (5 lines) in packaging/unbound_discovery_entry.py:25", "shortDescription": {"text": "Commented-code block (5 lines) in packaging/unbound_discovery_entry.py:25"}, "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-aa06e933c8a8c977", "name": "Commented-code block (5 lines) in copilot/hooks/unbound.py:58", "shortDescription": {"text": "Commented-code block (5 lines) in copilot/hooks/unbound.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-ae8fc124b6bb2c97", "name": "Network/subprocess call without timeout or try/except \u2014 copilot/hooks/unbound.py:168", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 copilot/hooks/unbound.py:168"}, "fullDescription": {"text": "`subprocess.Popen(...)` 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-7d74928e25ccc8e7", "name": "Commented-code block (6 lines) in copilot/hooks/setup.py:654", "shortDescription": {"text": "Commented-code block (6 lines) in copilot/hooks/setup.py:654"}, "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-4843cad5a0452da1", "name": "Network/subprocess call without timeout or try/except \u2014 copilot/hooks/setup.py:46", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 copilot/hooks/setup.py:46"}, "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-a114e75211a90168", "name": "Stub function `log_message` (body is just `pass`/`return`) \u2014 copilot/hooks/setup.py:244", "shortDescription": {"text": "Stub function `log_message` (body is just `pass`/`return`) \u2014 copilot/hooks/setup.py:244"}, "fullDescription": {"text": "Likely an AI scaffold that was never filled in. Remove or implement."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-e9d2f2db5f12d73c", "name": "Commented-code block (6 lines) in copilot/hooks/mdm/setup.py:904", "shortDescription": {"text": "Commented-code block (6 lines) in copilot/hooks/mdm/setup.py:904"}, "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-2a2ff4ce8562564d", "name": "Commented-code block (5 lines) in claude-code/hooks/unbound.py:60", "shortDescription": {"text": "Commented-code block (5 lines) in claude-code/hooks/unbound.py:60"}, "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-67fe8bc509fff39f", "name": "Network/subprocess call without timeout or try/except \u2014 claude-code/hooks/unbound.py:103", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 claude-code/hooks/unbound.py:103"}, "fullDescription": {"text": "`subprocess.Popen(...)` 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-fad688fd7d960625", "name": "Commented-code block (6 lines) in claude-code/hooks/setup.py:856", "shortDescription": {"text": "Commented-code block (6 lines) in claude-code/hooks/setup.py:856"}, "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-f0e0cecafc998cd3", "name": "Network/subprocess call without timeout or try/except \u2014 claude-code/hooks/setup.py:50", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 claude-code/hooks/setup.py:50"}, "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-cb14d183d43bfb3e", "name": "Stub function `log_message` (body is just `pass`/`return`) \u2014 claude-code/hooks/setup.py:246", "shortDescription": {"text": "Stub function `log_message` (body is just `pass`/`return`) \u2014 claude-code/hooks/setup.py:246"}, "fullDescription": {"text": "Likely an AI scaffold that was never filled in. Remove or implement."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-c4ad457b5720a315", "name": "Commented-code block (6 lines) in claude-code/hooks/mdm/setup.py:1275", "shortDescription": {"text": "Commented-code block (6 lines) in claude-code/hooks/mdm/setup.py:1275"}, "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-f19019e48cba8823", "name": "Network/subprocess call without timeout or try/except \u2014 claude-code/gateway/setup.py:230", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 claude-code/gateway/setup.py:230"}, "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-3d81113869ab20e6", "name": "Stub function `log_message` (body is just `pass`/`return`) \u2014 claude-code/gateway/setup.py:377", "shortDescription": {"text": "Stub function `log_message` (body is just `pass`/`return`) \u2014 claude-code/gateway/setup.py:377"}, "fullDescription": {"text": "Likely an AI scaffold that was never filled in. Remove or implement."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-33a6b62e30ce7ab4", "name": "Near-duplicate function bodies in 6 places", "shortDescription": {"text": "Near-duplicate function bodies in 6 places"}, "fullDescription": {"text": "Functions with the same first-5-line body hash:\nopenclaw/setup.py:get_shell_rc_file, codex/hooks/setup.py:get_shell_rc_file, cursor/setup.py:get_shell_rc_file, cursor/mdm/setup.py:get_shell_rc_file\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-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:\nopenclaw/setup.py:set_env_var_windows, openclaw/setup.py:set_env_var\n\nThis is *the* AI-coder failure mode (4\u00d7 more duplication in vibe-coded repos \u2014 see https://jw.hn/ai-code-hygiene). Consolidate or document why they're separate."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-02525d39071dd2c7", "name": "Near-duplicate function bodies in 5 places", "shortDescription": {"text": "Near-duplicate function bodies in 5 places"}, "fullDescription": {"text": "Functions with the same first-5-line body hash:\nopenclaw/setup.py:log_message, codex/hooks/setup.py:log_message, cursor/setup.py:log_message, copilot/hooks/setup.py:log_message\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:\nopenclaw/setup.py:main, gemini-cli/gateway/mdm/setup.py:main, codex/gateway/mdm/setup.py:main, claude-code/gateway/mdm/setup.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}}, {"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:\ngemini-cli/gateway/setup.py:debug_print, codex/hooks/setup.py:debug_print, codex/gateway/setup.py:debug_print, cursor/setup.py:debug_print\n\nThis is *the* AI-coder failure mode (4\u00d7 more duplication in vibe-coded repos \u2014 see https://jw.hn/ai-code-hygiene). Consolidate or document why they're separate."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-be46ea126aa5d8dc", "name": "Near-duplicate function bodies in 3 places", "shortDescription": {"text": "Near-duplicate function bodies in 3 places"}, "fullDescription": {"text": "Functions with the same first-5-line body hash:\ngemini-cli/gateway/setup.py:get_shell_rc_file, codex/gateway/setup.py:get_shell_rc_file, claude-code/gateway/setup.py:get_shell_rc_file\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-122053f21232d80c", "name": "Near-duplicate function bodies in 14 places", "shortDescription": {"text": "Near-duplicate function bodies in 14 places"}, "fullDescription": {"text": "Functions with the same first-5-line body hash:\ngemini-cli/gateway/setup.py:remove_env_var_on_unix, gemini-cli/gateway/setup.py:remove_env_var, codex/hooks/setup.py:remove_env_var_on_unix, codex/hooks/setup.py:remove_env_var\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-0027e313ade46c8f", "name": "Near-duplicate function bodies in 7 places", "shortDescription": {"text": "Near-duplicate function bodies in 7 places"}, "fullDescription": {"text": "Functions with the same first-5-line body hash:\ngemini-cli/gateway/setup.py:remove_env_var_on_windows, codex/hooks/setup.py:remove_env_var_on_windows, codex/gateway/setup.py:remove_env_var_on_windows, cursor/setup.py:remove_env_var_on_windows\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-6297377883dd7783", "name": "Near-duplicate function bodies in 13 places", "shortDescription": {"text": "Near-duplicate function bodies in 13 places"}, "fullDescription": {"text": "Functions with the same first-5-line body hash:\ngemini-cli/gateway/setup.py:get_device_identifier, gemini-cli/gateway/mdm/setup.py:get_device_identifier, codex/hooks/setup.py:get_device_identifier, codex/hooks/mdm/setup.py:get_device_identifier\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/22619"}, "properties": {"repository": "websentry-ai/setup", "repoUrl": "https://github.com/websentry-ai/setup", "branch": "main"}, "results": [{"ruleId": "scanner-83728806041fea6e", "level": "note", "message": {"text": "Possibly dead Python function: do_GET"}, "properties": {"repobilityId": "2d943bb45e4f13bd", "scanner": "scanner-primary", "fingerprint": "83728806041fea6e", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "openclaw/setup.py:190"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-b926f0f5cdf43b12", "level": "note", "message": {"text": "Possibly dead Python function: log_message"}, "properties": {"repobilityId": "965f3150b4af5b2e", "scanner": "scanner-primary", "fingerprint": "b926f0f5cdf43b12", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "openclaw/setup.py:202"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-64ff9de1574cb0a7", "level": "note", "message": {"text": "Possibly dead Python function: do_GET"}, "properties": {"repobilityId": "2d943bb45e4f13bd", "scanner": "scanner-primary", "fingerprint": "64ff9de1574cb0a7", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "gemini-cli/gateway/setup.py:280"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-4905920d844e22a1", "level": "note", "message": {"text": "Possibly dead Python function: do_POST"}, "properties": {"repobilityId": "53357410ca9379a9", "scanner": "scanner-primary", "fingerprint": "4905920d844e22a1", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "gemini-cli/gateway/setup.py:290"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-2c4c84e32bc4c51f", "level": "note", "message": {"text": "Possibly dead Python function: log_message"}, "properties": {"repobilityId": "965f3150b4af5b2e", "scanner": "scanner-primary", "fingerprint": "2c4c84e32bc4c51f", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "gemini-cli/gateway/setup.py:302"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-71f3fac332239285", "level": "note", "message": {"text": "Possibly dead Python function: do_GET"}, "properties": {"repobilityId": "2d943bb45e4f13bd", "scanner": "scanner-primary", "fingerprint": "71f3fac332239285", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "codex/hooks/setup.py:235"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-2cdbb2c45f0eb4bb", "level": "note", "message": {"text": "Possibly dead Python function: log_message"}, "properties": {"repobilityId": "965f3150b4af5b2e", "scanner": "scanner-primary", "fingerprint": "2cdbb2c45f0eb4bb", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "codex/hooks/setup.py:249"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-b3b64c695c357adc", "level": "note", "message": {"text": "Possibly dead Python function: do_GET"}, "properties": {"repobilityId": "2d943bb45e4f13bd", "scanner": "scanner-primary", "fingerprint": "b3b64c695c357adc", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "codex/gateway/setup.py:280"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-55769b6592887bf6", "level": "note", "message": {"text": "Possibly dead Python function: do_POST"}, "properties": {"repobilityId": "53357410ca9379a9", "scanner": "scanner-primary", "fingerprint": "55769b6592887bf6", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "codex/gateway/setup.py:290"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-2269e7ea62b0f36b", "level": "note", "message": {"text": "Possibly dead Python function: log_message"}, "properties": {"repobilityId": "965f3150b4af5b2e", "scanner": "scanner-primary", "fingerprint": "2269e7ea62b0f36b", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "codex/gateway/setup.py:302"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-6378bd01cbff799a", "level": "note", "message": {"text": "Possibly dead Python function: do_GET"}, "properties": {"repobilityId": "2d943bb45e4f13bd", "scanner": "scanner-primary", "fingerprint": "6378bd01cbff799a", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "cursor/setup.py:226"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-bb20f7096d25e8a5", "level": "note", "message": {"text": "Possibly dead Python function: log_message"}, "properties": {"repobilityId": "965f3150b4af5b2e", "scanner": "scanner-primary", "fingerprint": "bb20f7096d25e8a5", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "cursor/setup.py:236"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-6142c4617a3fbfc0", "level": "note", "message": {"text": "Possibly dead Python function: do_GET"}, "properties": {"repobilityId": "2d943bb45e4f13bd", "scanner": "scanner-primary", "fingerprint": "6142c4617a3fbfc0", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "copilot/hooks/setup.py:234"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-a9fc73cc79e48446", "level": "note", "message": {"text": "Possibly dead Python function: log_message"}, "properties": {"repobilityId": "965f3150b4af5b2e", "scanner": "scanner-primary", "fingerprint": "a9fc73cc79e48446", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "copilot/hooks/setup.py:244"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-9ceac24acd2c56ef", "level": "note", "message": {"text": "Possibly dead Python function: do_GET"}, "properties": {"repobilityId": "2d943bb45e4f13bd", "scanner": "scanner-primary", "fingerprint": "9ceac24acd2c56ef", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "claude-code/hooks/setup.py:232"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-62ade706f6409fce", "level": "note", "message": {"text": "Possibly dead Python function: log_message"}, "properties": {"repobilityId": "965f3150b4af5b2e", "scanner": "scanner-primary", "fingerprint": "62ade706f6409fce", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "claude-code/hooks/setup.py:246"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-baf91da5c9ee4cc9", "level": "note", "message": {"text": "Possibly dead Python function: do_GET"}, "properties": {"repobilityId": "2d943bb45e4f13bd", "scanner": "scanner-primary", "fingerprint": "baf91da5c9ee4cc9", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "claude-code/gateway/setup.py:355"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-7272b76988625c68", "level": "note", "message": {"text": "Possibly dead Python function: do_POST"}, "properties": {"repobilityId": "53357410ca9379a9", "scanner": "scanner-primary", "fingerprint": "7272b76988625c68", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "claude-code/gateway/setup.py:365"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-cb09b02c01bae5ff", "level": "note", "message": {"text": "Possibly dead Python function: log_message"}, "properties": {"repobilityId": "965f3150b4af5b2e", "scanner": "scanner-primary", "fingerprint": "cb09b02c01bae5ff", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "claude-code/gateway/setup.py:377"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-ede0a3f75e9218e8", "level": "warning", "message": {"text": "Dockerfile runs as root: container-addon/Dockerfile"}, "properties": {"repobilityId": "489d19e48c4262ca", "scanner": "scanner-primary", "fingerprint": "ede0a3f75e9218e8", "layer": "hardware", "severity": "medium", "confidence": 1.0, "tags": ["security", "container"]}}, {"ruleId": "scanner-aa5acaa49eb8315b", "level": "note", "message": {"text": "Containers defined but no K8s/orchestration manifest found"}, "properties": {"repobilityId": "b230ea9b68736081", "scanner": "scanner-primary", "fingerprint": "aa5acaa49eb8315b", "layer": "hardware", "severity": "low", "confidence": 1.0, "tags": ["coverage", "deployment"]}}, {"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-62a23a192507efb4", "level": "warning", "message": {"text": "Insecure pattern 'subprocess_shell_true' in cursor/setup.py:423"}, "properties": {"repobilityId": "9a8b4a8cf6f0c71b", "scanner": "scanner-primary", "fingerprint": "62a23a192507efb4", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "subprocess_shell_true"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "cursor/setup.py"}, "region": {"startLine": 423}}}]}, {"ruleId": "scanner-ac454ce557774572", "level": "warning", "message": {"text": "Insecure pattern 'subprocess_shell_true' in cursor/mdm/setup.py:823"}, "properties": {"repobilityId": "f7a2baf94c816508", "scanner": "scanner-primary", "fingerprint": "ac454ce557774572", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "subprocess_shell_true"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "cursor/mdm/setup.py"}, "region": {"startLine": 823}}}]}, {"ruleId": "scanner-cfbc20da6195ca02", "level": "warning", "message": {"text": "GitHub Actions workflow grants broad write permissions"}, "properties": {"repobilityId": "08ab97464635ca88", "scanner": "scanner-primary", "fingerprint": "cfbc20da6195ca02", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "least-privilege"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/publish-addon.yml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-d39b249be07e8f14", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "84eacc75c83bd9ec", "scanner": "scanner-primary", "fingerprint": "d39b249be07e8f14", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/deploy-to-production.yml"}, "region": {"startLine": 60}}}]}, {"ruleId": "scanner-badf5c7fd1a094dd", "level": "warning", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "2fce2d8da3eb67d7", "scanner": "scanner-primary", "fingerprint": "badf5c7fd1a094dd", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/publish-feature.yml"}, "region": {"startLine": 64}}}]}, {"ruleId": "scanner-bae329a94ee1da19", "level": "warning", "message": {"text": "GitHub Actions workflow grants broad write permissions"}, "properties": {"repobilityId": "bd15fe5091904ed1", "scanner": "scanner-primary", "fingerprint": "bae329a94ee1da19", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "least-privilege"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/publish-feature.yml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-7fca27451ee3f4ce", "level": "warning", "message": {"text": "GitHub Actions workflow grants broad write permissions"}, "properties": {"repobilityId": "3e32a5b07cecbdcd", "scanner": "scanner-primary", "fingerprint": "7fca27451ee3f4ce", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "least-privilege"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/release-macos-runtime.yml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-c2692ef1e8748b11", "level": "note", "message": {"text": "Very large file: codex/hooks/unbound.py (1597 lines)"}, "properties": {"repobilityId": "84522e19ee8ae0bc", "scanner": "scanner-primary", "fingerprint": "c2692ef1e8748b11", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-0c71331bf24ba04d", "level": "note", "message": {"text": "Very large file: codex/hooks/mdm/setup.py (1771 lines)"}, "properties": {"repobilityId": "5bec2c3216035e5b", "scanner": "scanner-primary", "fingerprint": "0c71331bf24ba04d", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-9d5376cbe10cba20", "level": "note", "message": {"text": "Very large file: cursor/unbound.py (1711 lines)"}, "properties": {"repobilityId": "63d47dbb06a7522c", "scanner": "scanner-primary", "fingerprint": "9d5376cbe10cba20", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-bd6fbab4a5970335", "level": "note", "message": {"text": "Very large file: copilot/hooks/unbound.py (1333 lines)"}, "properties": {"repobilityId": "7a20b139da0359cd", "scanner": "scanner-primary", "fingerprint": "bd6fbab4a5970335", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-ebdad8e6105cbf58", "level": "note", "message": {"text": "Very large file: copilot/hooks/mdm/setup.py (1409 lines)"}, "properties": {"repobilityId": "07e372e4eec511d7", "scanner": "scanner-primary", "fingerprint": "ebdad8e6105cbf58", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-41de6232ebec5103", "level": "note", "message": {"text": "Very large file: claude-code/hooks/unbound.py (1683 lines)"}, "properties": {"repobilityId": "bd30b9b08bde1a2a", "scanner": "scanner-primary", "fingerprint": "41de6232ebec5103", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-b1c7167ea575ce2e", "level": "note", "message": {"text": "Very large file: claude-code/hooks/mdm/setup.py (1624 lines)"}, "properties": {"repobilityId": "9a10668c5f6c9472", "scanner": "scanner-primary", "fingerprint": "b1c7167ea575ce2e", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-141b30a41e03817b", "level": "note", "message": {"text": "No license file detected"}, "properties": {"repobilityId": "da44db65dc7cc886", "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": "15f8daf57f22afe3", "scanner": "scanner-primary", "fingerprint": "3ab5d313dda8e5f9", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["debug", "cleanup", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-72b2a6250083a784", "level": "warning", "message": {"text": "Placeholder or mock-heavy implementation detected"}, "properties": {"repobilityId": "9ac9c45cdb3f6432", "scanner": "scanner-primary", "fingerprint": "72b2a6250083a784", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["placeholder", "mock-data", "incomplete", "generated-repo-pattern"]}}, {"ruleId": "scanner-2d0c7b7ab8f8aacf", "level": "warning", "message": {"text": "Critical user flow still appears backed by mock or placeholder data"}, "properties": {"repobilityId": "7058dfedb128c17b", "scanner": "scanner-primary", "fingerprint": "2d0c7b7ab8f8aacf", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["placeholder", "mock-data", "critical-flow", "generated-repo-pattern"]}}, {"ruleId": "scanner-ea8f3013f588db25", "level": "note", "message": {"text": "Shallow git history limits provenance confidence"}, "properties": {"repobilityId": "268ebc4337c02bd7", "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": "d0060bc985e6c621", "scanner": "scanner-primary", "fingerprint": "8424db9c75e04ba4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["provenance", "git-history", "generated-repo-pattern"]}}, {"ruleId": "scanner-f24fd7ae8871e7e8", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 openclaw/setup.py:36"}, "properties": {"repobilityId": "abd86c06c74292da", "scanner": "scanner-primary", "fingerprint": "f24fd7ae8871e7e8", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-7eb196f1fc984f1f", "level": "note", "message": {"text": "Stub function `log_message` (body is just `pass`/`return`) \u2014 openclaw/setup.py:202"}, "properties": {"repobilityId": "1a99b1b244808477", "scanner": "scanner-primary", "fingerprint": "7eb196f1fc984f1f", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "empty-handler", "dead-code"]}}, {"ruleId": "scanner-324edbdc865b4a4a", "level": "none", "message": {"text": "Commented-code block (5 lines) in mdm/onboard.py:49"}, "properties": {"repobilityId": "bc1be2856efb88d7", "scanner": "scanner-primary", "fingerprint": "324edbdc865b4a4a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-eaeb3e9947bbe213", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 gemini-cli/gateway/setup.py:232"}, "properties": {"repobilityId": "c52f586e66c2513e", "scanner": "scanner-primary", "fingerprint": "eaeb3e9947bbe213", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-c9496e6523934a1b", "level": "note", "message": {"text": "Stub function `log_message` (body is just `pass`/`return`) \u2014 gemini-cli/gateway/setup.py:302"}, "properties": {"repobilityId": "e5bb9c0ce4009228", "scanner": "scanner-primary", "fingerprint": "c9496e6523934a1b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "empty-handler", "dead-code"]}}, {"ruleId": "scanner-2401d226cb18ff61", "level": "none", "message": {"text": "Commented-code block (5 lines) in codex/hooks/unbound.py:60"}, "properties": {"repobilityId": "dce00d75c3c06d5a", "scanner": "scanner-primary", "fingerprint": "2401d226cb18ff61", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-28a7c44b9c634085", "level": "none", "message": {"text": "Commented-code block (6 lines) in codex/hooks/setup.py:946"}, "properties": {"repobilityId": "a8df58a078cb8934", "scanner": "scanner-primary", "fingerprint": "28a7c44b9c634085", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3a024ff8e97c118d", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 codex/hooks/setup.py:53"}, "properties": {"repobilityId": "441b6c8966a2a38c", "scanner": "scanner-primary", "fingerprint": "3a024ff8e97c118d", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-4a7e59a48030ebf9", "level": "note", "message": {"text": "Stub function `log_message` (body is just `pass`/`return`) \u2014 codex/hooks/setup.py:249"}, "properties": {"repobilityId": "97771617ce7ae73c", "scanner": "scanner-primary", "fingerprint": "4a7e59a48030ebf9", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "empty-handler", "dead-code"]}}, {"ruleId": "scanner-b09c63bc525e398a", "level": "none", "message": {"text": "Commented-code block (6 lines) in codex/hooks/mdm/setup.py:1419"}, "properties": {"repobilityId": "35b4ea91f733bdf9", "scanner": "scanner-primary", "fingerprint": "b09c63bc525e398a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0a3512f7f813b4dc", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 codex/gateway/setup.py:232"}, "properties": {"repobilityId": "9b9eebc5d197633f", "scanner": "scanner-primary", "fingerprint": "0a3512f7f813b4dc", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-6a63ad5835e61286", "level": "note", "message": {"text": "Stub function `log_message` (body is just `pass`/`return`) \u2014 codex/gateway/setup.py:302"}, "properties": {"repobilityId": "e9597f5545213c8e", "scanner": "scanner-primary", "fingerprint": "6a63ad5835e61286", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "empty-handler", "dead-code"]}}, {"ruleId": "scanner-75b896bb5b2538fa", "level": "none", "message": {"text": "Commented-code block (5 lines) in cursor/unbound.py:64"}, "properties": {"repobilityId": "d523c540a5ec6e38", "scanner": "scanner-primary", "fingerprint": "75b896bb5b2538fa", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d12f9725358d83d2", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 cursor/unbound.py:123"}, "properties": {"repobilityId": "2c548c794d482c85", "scanner": "scanner-primary", "fingerprint": "d12f9725358d83d2", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-46a888ae4156bf3a", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 cursor/setup.py:38"}, "properties": {"repobilityId": "6b26ee15938a619f", "scanner": "scanner-primary", "fingerprint": "46a888ae4156bf3a", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-6dbfe22df6acdebd", "level": "note", "message": {"text": "Stub function `log_message` (body is just `pass`/`return`) \u2014 cursor/setup.py:236"}, "properties": {"repobilityId": "c342abc0a9df4eeb", "scanner": "scanner-primary", "fingerprint": "6dbfe22df6acdebd", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "empty-handler", "dead-code"]}}, {"ruleId": "scanner-a5c8992e7815eaa4", "level": "none", "message": {"text": "Commented-code block (5 lines) in cursor/mdm/setup.py:18"}, "properties": {"repobilityId": "825e61a08d7a7204", "scanner": "scanner-primary", "fingerprint": "a5c8992e7815eaa4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-23db025db5a0842c", "level": "none", "message": {"text": "Commented-code block (5 lines) in packaging/unbound_discovery_entry.py:25"}, "properties": {"repobilityId": "823e0b6f14bd5d7f", "scanner": "scanner-primary", "fingerprint": "23db025db5a0842c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-aa06e933c8a8c977", "level": "none", "message": {"text": "Commented-code block (5 lines) in copilot/hooks/unbound.py:58"}, "properties": {"repobilityId": "261c129b143ffffd", "scanner": "scanner-primary", "fingerprint": "aa06e933c8a8c977", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ae8fc124b6bb2c97", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 copilot/hooks/unbound.py:168"}, "properties": {"repobilityId": "71e876304602a521", "scanner": "scanner-primary", "fingerprint": "ae8fc124b6bb2c97", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-7d74928e25ccc8e7", "level": "none", "message": {"text": "Commented-code block (6 lines) in copilot/hooks/setup.py:654"}, "properties": {"repobilityId": "f2c7ebf4fe7e4639", "scanner": "scanner-primary", "fingerprint": "7d74928e25ccc8e7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4843cad5a0452da1", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 copilot/hooks/setup.py:46"}, "properties": {"repobilityId": "7f03358d77fc076d", "scanner": "scanner-primary", "fingerprint": "4843cad5a0452da1", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-a114e75211a90168", "level": "note", "message": {"text": "Stub function `log_message` (body is just `pass`/`return`) \u2014 copilot/hooks/setup.py:244"}, "properties": {"repobilityId": "6b64369c868e43b5", "scanner": "scanner-primary", "fingerprint": "a114e75211a90168", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "empty-handler", "dead-code"]}}, {"ruleId": "scanner-e9d2f2db5f12d73c", "level": "none", "message": {"text": "Commented-code block (6 lines) in copilot/hooks/mdm/setup.py:904"}, "properties": {"repobilityId": "bb80890a744845f9", "scanner": "scanner-primary", "fingerprint": "e9d2f2db5f12d73c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2a2ff4ce8562564d", "level": "none", "message": {"text": "Commented-code block (5 lines) in claude-code/hooks/unbound.py:60"}, "properties": {"repobilityId": "5ca1d67e98b57c04", "scanner": "scanner-primary", "fingerprint": "2a2ff4ce8562564d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-67fe8bc509fff39f", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 claude-code/hooks/unbound.py:103"}, "properties": {"repobilityId": "c70cfdabbd094f39", "scanner": "scanner-primary", "fingerprint": "67fe8bc509fff39f", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-fad688fd7d960625", "level": "none", "message": {"text": "Commented-code block (6 lines) in claude-code/hooks/setup.py:856"}, "properties": {"repobilityId": "f03dc537b0a6c367", "scanner": "scanner-primary", "fingerprint": "fad688fd7d960625", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f0e0cecafc998cd3", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 claude-code/hooks/setup.py:50"}, "properties": {"repobilityId": "ee1db83e64ba09e3", "scanner": "scanner-primary", "fingerprint": "f0e0cecafc998cd3", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-cb14d183d43bfb3e", "level": "note", "message": {"text": "Stub function `log_message` (body is just `pass`/`return`) \u2014 claude-code/hooks/setup.py:246"}, "properties": {"repobilityId": "db3e03111f062336", "scanner": "scanner-primary", "fingerprint": "cb14d183d43bfb3e", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "empty-handler", "dead-code"]}}, {"ruleId": "scanner-c4ad457b5720a315", "level": "none", "message": {"text": "Commented-code block (6 lines) in claude-code/hooks/mdm/setup.py:1275"}, "properties": {"repobilityId": "31796c3bdbdf1f67", "scanner": "scanner-primary", "fingerprint": "c4ad457b5720a315", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f19019e48cba8823", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 claude-code/gateway/setup.py:230"}, "properties": {"repobilityId": "a195c26e7acbc406", "scanner": "scanner-primary", "fingerprint": "f19019e48cba8823", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-3d81113869ab20e6", "level": "note", "message": {"text": "Stub function `log_message` (body is just `pass`/`return`) \u2014 claude-code/gateway/setup.py:377"}, "properties": {"repobilityId": "607418923552f5d9", "scanner": "scanner-primary", "fingerprint": "3d81113869ab20e6", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "empty-handler", "dead-code"]}}, {"ruleId": "scanner-33a6b62e30ce7ab4", "level": "note", "message": {"text": "Near-duplicate function bodies in 6 places"}, "properties": {"repobilityId": "02e07c955be168df", "scanner": "scanner-primary", "fingerprint": "33a6b62e30ce7ab4", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-33a6b62e30ce7ab4", "level": "note", "message": {"text": "Near-duplicate function bodies in 6 places"}, "properties": {"repobilityId": "f03e6397e149bf54", "scanner": "scanner-primary", "fingerprint": "33a6b62e30ce7ab4", "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": "47c7d04e360d6ea9", "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": "cba37f0401a078f3", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-02525d39071dd2c7", "level": "note", "message": {"text": "Near-duplicate function bodies in 5 places"}, "properties": {"repobilityId": "e3e8a6e0e1183ccb", "scanner": "scanner-primary", "fingerprint": "02525d39071dd2c7", "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": "31580342a508a691", "scanner": "scanner-primary", "fingerprint": "49c98f7cedd9c977", "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": "4cec111920b5da62", "scanner": "scanner-primary", "fingerprint": "76a2f6818267a9a8", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-02525d39071dd2c7", "level": "note", "message": {"text": "Near-duplicate function bodies in 5 places"}, "properties": {"repobilityId": "10986dd1e0b24929", "scanner": "scanner-primary", "fingerprint": "02525d39071dd2c7", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-be46ea126aa5d8dc", "level": "note", "message": {"text": "Near-duplicate function bodies in 3 places"}, "properties": {"repobilityId": "44d0f548daa37ddc", "scanner": "scanner-primary", "fingerprint": "be46ea126aa5d8dc", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-be46ea126aa5d8dc", "level": "note", "message": {"text": "Near-duplicate function bodies in 3 places"}, "properties": {"repobilityId": "e7ece17067231efd", "scanner": "scanner-primary", "fingerprint": "be46ea126aa5d8dc", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-33a6b62e30ce7ab4", "level": "note", "message": {"text": "Near-duplicate function bodies in 6 places"}, "properties": {"repobilityId": "4fecec670878647e", "scanner": "scanner-primary", "fingerprint": "33a6b62e30ce7ab4", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-be46ea126aa5d8dc", "level": "note", "message": {"text": "Near-duplicate function bodies in 3 places"}, "properties": {"repobilityId": "646c70256f93540a", "scanner": "scanner-primary", "fingerprint": "be46ea126aa5d8dc", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-122053f21232d80c", "level": "note", "message": {"text": "Near-duplicate function bodies in 14 places"}, "properties": {"repobilityId": "cfa482cec0e8d32e", "scanner": "scanner-primary", "fingerprint": "122053f21232d80c", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-0027e313ade46c8f", "level": "note", "message": {"text": "Near-duplicate function bodies in 7 places"}, "properties": {"repobilityId": "83b01824cbd67834", "scanner": "scanner-primary", "fingerprint": "0027e313ade46c8f", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-be46ea126aa5d8dc", "level": "note", "message": {"text": "Near-duplicate function bodies in 3 places"}, "properties": {"repobilityId": "864629e9b1888ec6", "scanner": "scanner-primary", "fingerprint": "be46ea126aa5d8dc", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-0027e313ade46c8f", "level": "note", "message": {"text": "Near-duplicate function bodies in 7 places"}, "properties": {"repobilityId": "8d37e7ee4924be3f", "scanner": "scanner-primary", "fingerprint": "0027e313ade46c8f", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-be46ea126aa5d8dc", "level": "note", "message": {"text": "Near-duplicate function bodies in 3 places"}, "properties": {"repobilityId": "76d4ae2b0d5b1103", "scanner": "scanner-primary", "fingerprint": "be46ea126aa5d8dc", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-be46ea126aa5d8dc", "level": "note", "message": {"text": "Near-duplicate function bodies in 3 places"}, "properties": {"repobilityId": "c37cff4dca488e9a", "scanner": "scanner-primary", "fingerprint": "be46ea126aa5d8dc", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-0027e313ade46c8f", "level": "note", "message": {"text": "Near-duplicate function bodies in 7 places"}, "properties": {"repobilityId": "080aa5c9154164ca", "scanner": "scanner-primary", "fingerprint": "0027e313ade46c8f", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-6297377883dd7783", "level": "note", "message": {"text": "Near-duplicate function bodies in 13 places"}, "properties": {"repobilityId": "8ba99e302e2b8bd5", "scanner": "scanner-primary", "fingerprint": "6297377883dd7783", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}]}]}