{"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-62a19d91ffe158cf", "name": "Possibly dead Python function: shush_thread", "shortDescription": {"text": "Possibly dead Python function: shush_thread"}, "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-d7ef4ab1f2d2183a", "name": "Possibly dead Python function: do_ramp", "shortDescription": {"text": "Possibly dead Python function: do_ramp"}, "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-9fd4a0e02bf07982", "name": "Possibly dead Python function: dual_color_str", "shortDescription": {"text": "Possibly dead Python function: dual_color_str"}, "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-b16a35f723409e79", "name": "Possibly dead Python function: bg_color_str", "shortDescription": {"text": "Possibly dead Python function: bg_color_str"}, "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-33d7263cf6aace94", "name": "Possibly dead Python function: rainbow_str", "shortDescription": {"text": "Possibly dead Python function: rainbow_str"}, "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-8a3b972da7ea5ba3", "name": "Possibly dead Python function: print_grey", "shortDescription": {"text": "Possibly dead Python function: print_grey"}, "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-bc55de48b7dcf700", "name": "Possibly dead Python function: print_bold", "shortDescription": {"text": "Possibly dead Python function: print_bold"}, "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-401871b8f44a2a89", "name": "Possibly dead Python function: print_underline", "shortDescription": {"text": "Possibly dead Python function: print_underline"}, "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-4eb3ec807b420619", "name": "Possibly dead Python function: print_red", "shortDescription": {"text": "Possibly dead Python function: print_red"}, "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-95d87167180b5e24", "name": "Possibly dead Python function: print_green", "shortDescription": {"text": "Possibly dead Python function: print_green"}, "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-94277c9b4cadeb76", "name": "Possibly dead Python function: print_yellow", "shortDescription": {"text": "Possibly dead Python function: print_yellow"}, "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-ac60e52fabc1d0cb", "name": "Possibly dead Python function: brew_reclaimable_kb", "shortDescription": {"text": "Possibly dead Python function: brew_reclaimable_kb"}, "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-c2baa432e4d1f4e1", "name": "Possibly dead Python function: process_object", "shortDescription": {"text": "Possibly dead Python function: process_object"}, "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-8778715e4647180e", "name": "Possibly dead Python function: getprop", "shortDescription": {"text": "Possibly dead Python function: getprop"}, "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-dc12411bd20fab2a", "name": "Possibly dead Python function: adb_available", "shortDescription": {"text": "Possibly dead Python function: adb_available"}, "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-9ed2900859f7eda1", "name": "Possibly dead Python function: utc_seconds", "shortDescription": {"text": "Possibly dead Python function: utc_seconds"}, "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-388a5d656add09ce", "name": "Possibly dead Python function: noisy_sleep", "shortDescription": {"text": "Possibly dead Python function: noisy_sleep"}, "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-ee9e932497bf3f03", "name": "Possibly dead Python function: flushprint_to_stderr", "shortDescription": {"text": "Possibly dead Python function: flushprint_to_stderr"}, "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-3865fcb06ae04584", "name": "Possibly dead Python function: status_bar", "shortDescription": {"text": "Possibly dead Python function: status_bar"}, "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-562c64df8c4d167f", "name": "Possibly dead Python function: print_to_stderr", "shortDescription": {"text": "Possibly dead Python function: print_to_stderr"}, "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-95f0649ccd2d8eda", "name": "Possibly dead Python function: in_tmux", "shortDescription": {"text": "Possibly dead Python function: in_tmux"}, "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-5ad0950ad817a95f", "name": "Possibly dead Python function: is_uuid", "shortDescription": {"text": "Possibly dead Python function: is_uuid"}, "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-6bc0708c581e5f6d", "name": "Possibly dead Python function: is_email", "shortDescription": {"text": "Possibly dead Python function: is_email"}, "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-821859e3a11b4668", "name": "Possibly dead Python function: str_hash", "shortDescription": {"text": "Possibly dead Python function: str_hash"}, "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-58b587e7994416a2", "name": "Possibly dead Python function: confirm_or_exception", "shortDescription": {"text": "Possibly dead Python function: confirm_or_exception"}, "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-2899c093abec9c35", "name": "Possibly dead Python function: html_read", "shortDescription": {"text": "Possibly dead Python function: html_read"}, "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-35f1279d592f5899", "name": "Stray `console.log` in TS/JS \u2014 examples/javascript/arrays.js:11", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 examples/javascript/arrays.js:11"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "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-3d6a4cb20976daca", "name": "Insecure pattern 'debug_true' in projects/whitenoise/server.py:297", "shortDescription": {"text": "Insecure pattern 'debug_true' in projects/whitenoise/server.py:297"}, "fullDescription": {"text": "Found a known-risky pattern (debug_true). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "low", "confidence": 1.0}}, {"id": "scanner-bdf0d0c5dc63d930", "name": "Insecure pattern 'direct_innerhtml_assignment' in projects/whitenoise/files/index.html:21", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in projects/whitenoise/files/index.html:21"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-67a04d4fa3f59492", "name": "Insecure pattern 'subprocess_shell_true' in pytools/kubelogs.py:32", "shortDescription": {"text": "Insecure pattern 'subprocess_shell_true' in pytools/kubelogs.py:32"}, "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-6372cebde0220094", "name": "No auth library detected", "shortDescription": {"text": "No auth library detected"}, "fullDescription": {"text": "The scanner did not find any standard auth library (JWT, OAuth, NextAuth, Auth0, etc.). The repo has auth/admin/session surface indicators, so auth may live in custom code, in a separate service, or be missing."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-4601e3ad3bb28677", "name": "No CI/CD pipelines detected", "shortDescription": {"text": "No CI/CD pipelines detected"}, "fullDescription": {"text": "No GitHub Actions, GitLab CI, or CircleCI configs found. Without CI you can't gate deploys on tests/lints."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-6893a6c8b0861585", "name": "Very low test-to-source ratio", "shortDescription": {"text": "Very low test-to-source ratio"}, "fullDescription": {"text": "3 test file(s) for 154 source file(s) (ratio 0.02). Consider adding integration or unit tests for critical paths."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-141b30a41e03817b", "name": "No license file detected", "shortDescription": {"text": "No license file detected"}, "fullDescription": {"text": "No LICENSE/COPYING/NOTICE file was found. Generated repositories often omit licensing, which blocks reuse and automated intake."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-3ab5d313dda8e5f9", "name": "Debug logging residue appears in source files", "shortDescription": {"text": "Debug logging residue appears in source files"}, "fullDescription": {"text": "Found 580 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 27 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-b9088664ace7f748", "name": "Composite production-readiness gap", "shortDescription": {"text": "Composite production-readiness gap"}, "fullDescription": {"text": "Multiple low-cost hardening controls are missing together: license, ci. Opus verification showed these co-occurring gaps are a better readiness signal than reading each flag in isolation."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-749d4bc1bd66df5f", "name": "Agent instructions exist but release-hardening basics are missing", "shortDescription": {"text": "Agent instructions exist but release-hardening basics are missing"}, "fullDescription": {"text": "AI-coder instruction files were found, but the repo is missing license, ci. Treat this as a contract gap: the agent is guided, but the generated output is not yet guarded by the controls that make it repeatable."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ea8f3013f588db25", "name": "Shallow git history limits provenance confidence", "shortDescription": {"text": "Shallow git history limits provenance confidence"}, "fullDescription": {"text": "The repository is a shallow clone. Origin/evolution analysis cannot distinguish fresh generation, imported legacy code, or long-lived human code with high confidence."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-8424db9c75e04ba4", "name": "Very short observed git history", "shortDescription": {"text": "Very short observed git history"}, "fullDescription": {"text": "The repo has multiple source files but two or fewer visible commits. This is not a failure by itself, but it lowers confidence in evolution-based diagnosis."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-122f91b7f2906dc4", "name": "Agent authority lacks a verifier contract: .claude/settings.json", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/settings.json"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-a505024e7b925f5b", "name": "Agent authority lacks a verifier contract: claude/CLAUDE.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: claude/CLAUDE.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-348962bb2a8f9dd9", "name": "Agent authority lacks a verifier contract: claude/skills/simplify/SKILL.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: claude/skills/simplify/SKILL.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-b31464c16fabb91d", "name": "Network/subprocess call without timeout or try/except \u2014 test_redact_secrets.py:40", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 test_redact_secrets.py:40"}, "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-24177debbc8046f9", "name": "Legacy-named symbol `list_objects_v2` in pytools/s3_size.py:39", "shortDescription": {"text": "Legacy-named symbol `list_objects_v2` in pytools/s3_size.py:39"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-1c63a15d6075f6c7", "name": "Legacy-named symbol `list_objects_v2` in pytools/s3.py:98", "shortDescription": {"text": "Legacy-named symbol `list_objects_v2` in pytools/s3.py:98"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-a7a0df13abc81b6c", "name": "Commented-code block (6 lines) in pytools/srutils.py:628", "shortDescription": {"text": "Commented-code block (6 lines) in pytools/srutils.py:628"}, "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-d22bc240631aba8e", "name": "Network/subprocess call without timeout or try/except \u2014 pytools/srutils.py:511", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 pytools/srutils.py:511"}, "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-ec7eab4c09e81cb8", "name": "Commented-code block (5 lines) in examples/tensorflow/simple_linear_with_contrib_learn.py:13", "shortDescription": {"text": "Commented-code block (5 lines) in examples/tensorflow/simple_linear_with_contrib_learn.py:13"}, "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-949c8b739acfae01", "name": "Commented-code block (5 lines) in examples/tensorflow/two_neural_network.py:77", "shortDescription": {"text": "Commented-code block (5 lines) in examples/tensorflow/two_neural_network.py:77"}, "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-63cde326ed373ffc", "name": "Network/subprocess call without timeout or try/except \u2014 examples/python/fixit.py:13", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 examples/python/fixit.py:13"}, "fullDescription": {"text": "`requests.get(...)` 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-9eb5bc9c68699109", "name": "Commented-code block (5 lines) in examples/interviews/sparse.py:44", "shortDescription": {"text": "Commented-code block (5 lines) in examples/interviews/sparse.py:44"}, "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-e8ad8f1217a1d9c1", "name": "Commented-code block (8 lines) in examples/interviews/balance.py:5", "shortDescription": {"text": "Commented-code block (8 lines) in examples/interviews/balance.py:5"}, "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-2c8c8a1fce573358", "name": "Commented-code block (5 lines) in examples/interviews/flights.py:25", "shortDescription": {"text": "Commented-code block (5 lines) in examples/interviews/flights.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-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:\nprojects/whitenoise/server.py:shush_thread, projects/whitenoise/server.py:shush\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:\nexamples/tensorflow/three_regularized.py:reformat, examples/tensorflow/two_neural_network_relu.py:reformat, examples/tensorflow/two_neural_network.py:reformat, examples/tensorflow/two_neural_network_stochastic.py:reformat\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-2c3ec1a76cd08d41", "name": "Unused endpoint: ANY /vol/off", "shortDescription": {"text": "Unused endpoint: ANY /vol/off"}, "fullDescription": {"text": "`projects/whitenoise/server.py` declares `ANY /vol/off` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-6678613f90a68bd3", "name": "Unused endpoint: ANY /vol/less", "shortDescription": {"text": "Unused endpoint: ANY /vol/less"}, "fullDescription": {"text": "`projects/whitenoise/server.py` declares `ANY /vol/less` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-5c6d8ea2ac76794b", "name": "Unused endpoint: ANY /vol/more", "shortDescription": {"text": "Unused endpoint: ANY /vol/more"}, "fullDescription": {"text": "`projects/whitenoise/server.py` declares `ANY /vol/more` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-54ec1c9cd946e18b", "name": "Unused endpoint: ANY /vol/max", "shortDescription": {"text": "Unused endpoint: ANY /vol/max"}, "fullDescription": {"text": "`projects/whitenoise/server.py` declares `ANY /vol/max` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-e5d49f825dd92bdf", "name": "Unused endpoint: ANY /vol/rampup", "shortDescription": {"text": "Unused endpoint: ANY /vol/rampup"}, "fullDescription": {"text": "`projects/whitenoise/server.py` declares `ANY /vol/rampup` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-0b4c80e39d5a8f6c", "name": "Unused endpoint: ANY /vol/rampdown", "shortDescription": {"text": "Unused endpoint: ANY /vol/rampdown"}, "fullDescription": {"text": "`projects/whitenoise/server.py` declares `ANY /vol/rampdown` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-21a190b86ed3880a", "name": "Unused endpoint: ANY /vol/rampmax", "shortDescription": {"text": "Unused endpoint: ANY /vol/rampmax"}, "fullDescription": {"text": "`projects/whitenoise/server.py` declares `ANY /vol/rampmax` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-2d1816f88ca9d00c", "name": "Unused endpoint: ANY /vol/rampoff", "shortDescription": {"text": "Unused endpoint: ANY /vol/rampoff"}, "fullDescription": {"text": "`projects/whitenoise/server.py` declares `ANY /vol/rampoff` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-df206cc032ac2b91", "name": "Unused endpoint: ANY /vol/unset", "shortDescription": {"text": "Unused endpoint: ANY /vol/unset"}, "fullDescription": {"text": "`projects/whitenoise/server.py` declares `ANY /vol/unset` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-b25df019c0de2c1d", "name": "Unused endpoint: ANY /reset", "shortDescription": {"text": "Unused endpoint: ANY /reset"}, "fullDescription": {"text": "`projects/whitenoise/server.py` declares `ANY /reset` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-6fe8791605b44d57", "name": "Unused endpoint: ANY /shush", "shortDescription": {"text": "Unused endpoint: ANY /shush"}, "fullDescription": {"text": "`projects/whitenoise/server.py` declares `ANY /shush` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-9b794874f747d494", "name": "Unused endpoint: ANY /files/<fid>", "shortDescription": {"text": "Unused endpoint: ANY /files/<fid>"}, "fullDescription": {"text": "`projects/whitenoise/server.py` declares `ANY /files/<fid>` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-156d543acef786d8", "name": "Unused endpoint: ANY /index.html", "shortDescription": {"text": "Unused endpoint: ANY /index.html"}, "fullDescription": {"text": "`projects/whitenoise/server.py` declares `ANY /index.html` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-1a6d91f2236825bf", "name": "Unused endpoint: ANY /", "shortDescription": {"text": "Unused endpoint: ANY /"}, "fullDescription": {"text": "`projects/whitenoise/server.py` declares `ANY /` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-bd298d2ebef6826d", "name": "Unused endpoint: PATCH /foo.lolz", "shortDescription": {"text": "Unused endpoint: PATCH /foo.lolz"}, "fullDescription": {"text": "`examples/python/mock_patch.py` declares `PATCH /foo.lolz` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-0412540feadfa5bf", "name": "Unused endpoint: ANY /cell/<addr>", "shortDescription": {"text": "Unused endpoint: ANY /cell/<addr>"}, "fullDescription": {"text": "`examples/interviews/excel/part3.py` declares `ANY /cell/<addr>` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}]}}, "automationDetails": {"id": "repobility/20162"}, "properties": {"repository": "sr228822/srpub", "repoUrl": "https://github.com/sr228822/srpub", "branch": "main"}, "results": [{"ruleId": "scanner-62a19d91ffe158cf", "level": "note", "message": {"text": "Possibly dead Python function: shush_thread"}, "properties": {"repobilityId": "4947f0e7c76759fc", "scanner": "scanner-primary", "fingerprint": "62a19d91ffe158cf", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "projects/whitenoise/server.py:170"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-d7ef4ab1f2d2183a", "level": "note", "message": {"text": "Possibly dead Python function: do_ramp"}, "properties": {"repobilityId": "6a6353ec9f657914", "scanner": "scanner-primary", "fingerprint": "d7ef4ab1f2d2183a", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "projects/whitenoise/server.py:194"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-9fd4a0e02bf07982", "level": "note", "message": {"text": "Possibly dead Python function: dual_color_str"}, "properties": {"repobilityId": "0e563151c1260a73", "scanner": "scanner-primary", "fingerprint": "9fd4a0e02bf07982", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pytools/colorstrings.py:70"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-b16a35f723409e79", "level": "note", "message": {"text": "Possibly dead Python function: bg_color_str"}, "properties": {"repobilityId": "2f0dea1af7266b8a", "scanner": "scanner-primary", "fingerprint": "b16a35f723409e79", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pytools/colorstrings.py:81"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-33d7263cf6aace94", "level": "note", "message": {"text": "Possibly dead Python function: rainbow_str"}, "properties": {"repobilityId": "95062c6784970499", "scanner": "scanner-primary", "fingerprint": "33d7263cf6aace94", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pytools/colorstrings.py:140"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-8a3b972da7ea5ba3", "level": "note", "message": {"text": "Possibly dead Python function: print_grey"}, "properties": {"repobilityId": "375708f1f761c919", "scanner": "scanner-primary", "fingerprint": "8a3b972da7ea5ba3", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pytools/colorstrings.py:145"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-bc55de48b7dcf700", "level": "note", "message": {"text": "Possibly dead Python function: print_bold"}, "properties": {"repobilityId": "ddf09ca3054ba36d", "scanner": "scanner-primary", "fingerprint": "bc55de48b7dcf700", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pytools/colorstrings.py:149"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-401871b8f44a2a89", "level": "note", "message": {"text": "Possibly dead Python function: print_underline"}, "properties": {"repobilityId": "6870b5e909ac1f4a", "scanner": "scanner-primary", "fingerprint": "401871b8f44a2a89", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pytools/colorstrings.py:153"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-4eb3ec807b420619", "level": "note", "message": {"text": "Possibly dead Python function: print_red"}, "properties": {"repobilityId": "3933ebfd570e56e2", "scanner": "scanner-primary", "fingerprint": "4eb3ec807b420619", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pytools/colorstrings.py:157"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-95d87167180b5e24", "level": "note", "message": {"text": "Possibly dead Python function: print_green"}, "properties": {"repobilityId": "61ee02032dd9c2fa", "scanner": "scanner-primary", "fingerprint": "95d87167180b5e24", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pytools/colorstrings.py:165"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-94277c9b4cadeb76", "level": "note", "message": {"text": "Possibly dead Python function: print_yellow"}, "properties": {"repobilityId": "430bfe3f7b22a9f5", "scanner": "scanner-primary", "fingerprint": "94277c9b4cadeb76", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pytools/colorstrings.py:169"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-ac60e52fabc1d0cb", "level": "note", "message": {"text": "Possibly dead Python function: brew_reclaimable_kb"}, "properties": {"repobilityId": "97eb5c8c9fbf95d6", "scanner": "scanner-primary", "fingerprint": "ac60e52fabc1d0cb", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pytools/diskfree.py:216"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-c2baa432e4d1f4e1", "level": "note", "message": {"text": "Possibly dead Python function: process_object"}, "properties": {"repobilityId": "81897bce8362cea9", "scanner": "scanner-primary", "fingerprint": "c2baa432e4d1f4e1", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pytools/s3_size.py:50"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-8778715e4647180e", "level": "note", "message": {"text": "Possibly dead Python function: getprop"}, "properties": {"repobilityId": "9b8ff0570fef5afc", "scanner": "scanner-primary", "fingerprint": "8778715e4647180e", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pytools/srutils.py:37"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-dc12411bd20fab2a", "level": "note", "message": {"text": "Possibly dead Python function: adb_available"}, "properties": {"repobilityId": "4dab396780b0f585", "scanner": "scanner-primary", "fingerprint": "dc12411bd20fab2a", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pytools/srutils.py:41"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-9ed2900859f7eda1", "level": "note", "message": {"text": "Possibly dead Python function: utc_seconds"}, "properties": {"repobilityId": "afdda7305b5757f3", "scanner": "scanner-primary", "fingerprint": "9ed2900859f7eda1", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pytools/srutils.py:46"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-388a5d656add09ce", "level": "note", "message": {"text": "Possibly dead Python function: noisy_sleep"}, "properties": {"repobilityId": "9cb50f0f66c846ff", "scanner": "scanner-primary", "fingerprint": "388a5d656add09ce", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pytools/srutils.py:52"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-ee9e932497bf3f03", "level": "note", "message": {"text": "Possibly dead Python function: flushprint_to_stderr"}, "properties": {"repobilityId": "5ac6faaad59f8ae4", "scanner": "scanner-primary", "fingerprint": "ee9e932497bf3f03", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pytools/srutils.py:101"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-3865fcb06ae04584", "level": "note", "message": {"text": "Possibly dead Python function: status_bar"}, "properties": {"repobilityId": "0f6d156534e41a23", "scanner": "scanner-primary", "fingerprint": "3865fcb06ae04584", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pytools/srutils.py:109"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-562c64df8c4d167f", "level": "note", "message": {"text": "Possibly dead Python function: print_to_stderr"}, "properties": {"repobilityId": "78a027954d1a8371", "scanner": "scanner-primary", "fingerprint": "562c64df8c4d167f", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pytools/srutils.py:114"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-95f0649ccd2d8eda", "level": "note", "message": {"text": "Possibly dead Python function: in_tmux"}, "properties": {"repobilityId": "21c87a139b9991e9", "scanner": "scanner-primary", "fingerprint": "95f0649ccd2d8eda", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pytools/srutils.py:118"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-5ad0950ad817a95f", "level": "note", "message": {"text": "Possibly dead Python function: is_uuid"}, "properties": {"repobilityId": "51b649554aefb83f", "scanner": "scanner-primary", "fingerprint": "5ad0950ad817a95f", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pytools/srutils.py:132"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-6bc0708c581e5f6d", "level": "note", "message": {"text": "Possibly dead Python function: is_email"}, "properties": {"repobilityId": "5c2e3fff9ef69767", "scanner": "scanner-primary", "fingerprint": "6bc0708c581e5f6d", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pytools/srutils.py:142"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-821859e3a11b4668", "level": "note", "message": {"text": "Possibly dead Python function: str_hash"}, "properties": {"repobilityId": "00c448f7de22ec69", "scanner": "scanner-primary", "fingerprint": "821859e3a11b4668", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pytools/srutils.py:153"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-58b587e7994416a2", "level": "note", "message": {"text": "Possibly dead Python function: confirm_or_exception"}, "properties": {"repobilityId": "96f12fc20e83c5bb", "scanner": "scanner-primary", "fingerprint": "58b587e7994416a2", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pytools/srutils.py:178"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-2899c093abec9c35", "level": "note", "message": {"text": "Possibly dead Python function: html_read"}, "properties": {"repobilityId": "2f12e84c9c26efd2", "scanner": "scanner-primary", "fingerprint": "2899c093abec9c35", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pytools/srutils.py:205"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-35f1279d592f5899", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 examples/javascript/arrays.js:11"}, "properties": {"repobilityId": "22e4238db84a64d3", "scanner": "scanner-primary", "fingerprint": "35f1279d592f5899", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"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-3d6a4cb20976daca", "level": "note", "message": {"text": "Insecure pattern 'debug_true' in projects/whitenoise/server.py:297"}, "properties": {"repobilityId": "dcffc49b53e26beb", "scanner": "scanner-primary", "fingerprint": "3d6a4cb20976daca", "layer": "security", "severity": "low", "confidence": 1.0, "tags": ["owasp", "debug_true"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "projects/whitenoise/server.py"}, "region": {"startLine": 297}}}]}, {"ruleId": "scanner-bdf0d0c5dc63d930", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in projects/whitenoise/files/index.html:21"}, "properties": {"repobilityId": "7c1dcbf567fbf41a", "scanner": "scanner-primary", "fingerprint": "bdf0d0c5dc63d930", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "projects/whitenoise/files/index.html"}, "region": {"startLine": 21}}}]}, {"ruleId": "scanner-67a04d4fa3f59492", "level": "warning", "message": {"text": "Insecure pattern 'subprocess_shell_true' in pytools/kubelogs.py:32"}, "properties": {"repobilityId": "a5a7bd06f56a2513", "scanner": "scanner-primary", "fingerprint": "67a04d4fa3f59492", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "subprocess_shell_true"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pytools/kubelogs.py"}, "region": {"startLine": 32}}}]}, {"ruleId": "scanner-6372cebde0220094", "level": "warning", "message": {"text": "No auth library detected"}, "properties": {"repobilityId": "a5b6035a5bbf8054", "scanner": "scanner-primary", "fingerprint": "6372cebde0220094", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["coverage", "auth"]}}, {"ruleId": "scanner-4601e3ad3bb28677", "level": "warning", "message": {"text": "No CI/CD pipelines detected"}, "properties": {"repobilityId": "c3ee439bce2bc51e", "scanner": "scanner-primary", "fingerprint": "4601e3ad3bb28677", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["coverage"]}}, {"ruleId": "scanner-6893a6c8b0861585", "level": "warning", "message": {"text": "Very low test-to-source ratio"}, "properties": {"repobilityId": "54a7de3f06314bf0", "scanner": "scanner-primary", "fingerprint": "6893a6c8b0861585", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["tests", "coverage"]}}, {"ruleId": "scanner-141b30a41e03817b", "level": "note", "message": {"text": "No license file detected"}, "properties": {"repobilityId": "d5d641d4bcdd9575", "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": "91ccf0cd44e538bd", "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": "0f895bf4c2c28da4", "scanner": "scanner-primary", "fingerprint": "72b2a6250083a784", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["placeholder", "mock-data", "incomplete", "generated-repo-pattern"]}}, {"ruleId": "scanner-b9088664ace7f748", "level": "note", "message": {"text": "Composite production-readiness gap"}, "properties": {"repobilityId": "460a4933f4bcba0e", "scanner": "scanner-primary", "fingerprint": "b9088664ace7f748", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["production-readiness", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-749d4bc1bd66df5f", "level": "warning", "message": {"text": "Agent instructions exist but release-hardening basics are missing"}, "properties": {"repobilityId": "54ca66f09db88fee", "scanner": "scanner-primary", "fingerprint": "749d4bc1bd66df5f", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-ea8f3013f588db25", "level": "note", "message": {"text": "Shallow git history limits provenance confidence"}, "properties": {"repobilityId": "f7020977ea3cd635", "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": "3a2909bbd3734583", "scanner": "scanner-primary", "fingerprint": "8424db9c75e04ba4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["provenance", "git-history", "generated-repo-pattern"]}}, {"ruleId": "scanner-122f91b7f2906dc4", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/settings.json"}, "properties": {"repobilityId": "a2967269048b6a9d", "scanner": "scanner-primary", "fingerprint": "122f91b7f2906dc4", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/settings.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-a505024e7b925f5b", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: claude/CLAUDE.md"}, "properties": {"repobilityId": "0471fd1489275440", "scanner": "scanner-primary", "fingerprint": "a505024e7b925f5b", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "claude/CLAUDE.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-348962bb2a8f9dd9", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: claude/skills/simplify/SKILL.md"}, "properties": {"repobilityId": "efbf64f5ba1cfe03", "scanner": "scanner-primary", "fingerprint": "348962bb2a8f9dd9", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "skill_file"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "claude/skills/simplify/SKILL.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-b31464c16fabb91d", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 test_redact_secrets.py:40"}, "properties": {"repobilityId": "cd7c5a46ab04ff43", "scanner": "scanner-primary", "fingerprint": "b31464c16fabb91d", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-24177debbc8046f9", "level": "note", "message": {"text": "Legacy-named symbol `list_objects_v2` in pytools/s3_size.py:39"}, "properties": {"repobilityId": "73c87fab6ceababe", "scanner": "scanner-primary", "fingerprint": "24177debbc8046f9", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-1c63a15d6075f6c7", "level": "note", "message": {"text": "Legacy-named symbol `list_objects_v2` in pytools/s3.py:98"}, "properties": {"repobilityId": "d93b6cd346aa9749", "scanner": "scanner-primary", "fingerprint": "1c63a15d6075f6c7", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-a7a0df13abc81b6c", "level": "none", "message": {"text": "Commented-code block (6 lines) in pytools/srutils.py:628"}, "properties": {"repobilityId": "b85a348056036511", "scanner": "scanner-primary", "fingerprint": "a7a0df13abc81b6c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d22bc240631aba8e", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 pytools/srutils.py:511"}, "properties": {"repobilityId": "c898e76cf5d825c5", "scanner": "scanner-primary", "fingerprint": "d22bc240631aba8e", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-ec7eab4c09e81cb8", "level": "none", "message": {"text": "Commented-code block (5 lines) in examples/tensorflow/simple_linear_with_contrib_learn.py:13"}, "properties": {"repobilityId": "20121500f6445b7d", "scanner": "scanner-primary", "fingerprint": "ec7eab4c09e81cb8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-949c8b739acfae01", "level": "none", "message": {"text": "Commented-code block (5 lines) in examples/tensorflow/two_neural_network.py:77"}, "properties": {"repobilityId": "87bd8eb4ce8472ef", "scanner": "scanner-primary", "fingerprint": "949c8b739acfae01", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-63cde326ed373ffc", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 examples/python/fixit.py:13"}, "properties": {"repobilityId": "ab521825ff046269", "scanner": "scanner-primary", "fingerprint": "63cde326ed373ffc", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-9eb5bc9c68699109", "level": "none", "message": {"text": "Commented-code block (5 lines) in examples/interviews/sparse.py:44"}, "properties": {"repobilityId": "dcc905f05cc910ac", "scanner": "scanner-primary", "fingerprint": "9eb5bc9c68699109", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e8ad8f1217a1d9c1", "level": "none", "message": {"text": "Commented-code block (8 lines) in examples/interviews/balance.py:5"}, "properties": {"repobilityId": "4c80ed922e1c7f02", "scanner": "scanner-primary", "fingerprint": "e8ad8f1217a1d9c1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2c8c8a1fce573358", "level": "none", "message": {"text": "Commented-code block (5 lines) in examples/interviews/flights.py:25"}, "properties": {"repobilityId": "0f254f9d67447806", "scanner": "scanner-primary", "fingerprint": "2c8c8a1fce573358", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "b4e27e5d2d3be85c", "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": "d69c4ab63d27081d", "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": "50123c3c5eca2714", "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": "bf157c1234d62652", "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": "f9452b628b32dda5", "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": "93278256dbcd6292", "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": "1bb9b7715d1387b2", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-49c98f7cedd9c977", "level": "note", "message": {"text": "Near-duplicate function bodies in 4 places"}, "properties": {"repobilityId": "5e4c539d009967bf", "scanner": "scanner-primary", "fingerprint": "49c98f7cedd9c977", "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": "9b3279e54d03ab5e", "scanner": "scanner-primary", "fingerprint": "49c98f7cedd9c977", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "82651d20221be52c", "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": "7c99f262b03c002e", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-49c98f7cedd9c977", "level": "note", "message": {"text": "Near-duplicate function bodies in 4 places"}, "properties": {"repobilityId": "0c2a1bbeed584f71", "scanner": "scanner-primary", "fingerprint": "49c98f7cedd9c977", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "bbab4efa20a90848", "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": "03e7ae04408abec0", "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": "bd611b562517e8de", "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": "e6f82929e0253691", "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": "cf461f36298a520e", "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": "ed4b5f98bb61954b", "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": "92438626740d5629", "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": "80facfb74839a638", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c3ec1a76cd08d41", "level": "note", "message": {"text": "Unused endpoint: ANY /vol/off"}, "properties": {"repobilityId": "d5baea40ece9049e", "scanner": "scanner-primary", "fingerprint": "2c3ec1a76cd08d41", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-6678613f90a68bd3", "level": "note", "message": {"text": "Unused endpoint: ANY /vol/less"}, "properties": {"repobilityId": "30d5666ccb85ec32", "scanner": "scanner-primary", "fingerprint": "6678613f90a68bd3", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-5c6d8ea2ac76794b", "level": "note", "message": {"text": "Unused endpoint: ANY /vol/more"}, "properties": {"repobilityId": "12547bb2be1c28a7", "scanner": "scanner-primary", "fingerprint": "5c6d8ea2ac76794b", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-54ec1c9cd946e18b", "level": "note", "message": {"text": "Unused endpoint: ANY /vol/max"}, "properties": {"repobilityId": "e004939f6e375224", "scanner": "scanner-primary", "fingerprint": "54ec1c9cd946e18b", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-e5d49f825dd92bdf", "level": "note", "message": {"text": "Unused endpoint: ANY /vol/rampup"}, "properties": {"repobilityId": "37055365eb6c3a14", "scanner": "scanner-primary", "fingerprint": "e5d49f825dd92bdf", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-0b4c80e39d5a8f6c", "level": "note", "message": {"text": "Unused endpoint: ANY /vol/rampdown"}, "properties": {"repobilityId": "41e775dd4a5d07f0", "scanner": "scanner-primary", "fingerprint": "0b4c80e39d5a8f6c", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-21a190b86ed3880a", "level": "note", "message": {"text": "Unused endpoint: ANY /vol/rampmax"}, "properties": {"repobilityId": "ce85a8a62cc60dab", "scanner": "scanner-primary", "fingerprint": "21a190b86ed3880a", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-2d1816f88ca9d00c", "level": "note", "message": {"text": "Unused endpoint: ANY /vol/rampoff"}, "properties": {"repobilityId": "327213d450c8d0be", "scanner": "scanner-primary", "fingerprint": "2d1816f88ca9d00c", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-df206cc032ac2b91", "level": "note", "message": {"text": "Unused endpoint: ANY /vol/unset"}, "properties": {"repobilityId": "f87b94d1f1f2e409", "scanner": "scanner-primary", "fingerprint": "df206cc032ac2b91", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-b25df019c0de2c1d", "level": "note", "message": {"text": "Unused endpoint: ANY /reset"}, "properties": {"repobilityId": "6751539fef12c972", "scanner": "scanner-primary", "fingerprint": "b25df019c0de2c1d", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-6fe8791605b44d57", "level": "note", "message": {"text": "Unused endpoint: ANY /shush"}, "properties": {"repobilityId": "85149c4f5e0076ff", "scanner": "scanner-primary", "fingerprint": "6fe8791605b44d57", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-9b794874f747d494", "level": "note", "message": {"text": "Unused endpoint: ANY /files/<fid>"}, "properties": {"repobilityId": "3e2b3e05f2f780d5", "scanner": "scanner-primary", "fingerprint": "9b794874f747d494", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-156d543acef786d8", "level": "note", "message": {"text": "Unused endpoint: ANY /index.html"}, "properties": {"repobilityId": "e9bdb812e1c39c51", "scanner": "scanner-primary", "fingerprint": "156d543acef786d8", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-1a6d91f2236825bf", "level": "note", "message": {"text": "Unused endpoint: ANY /"}, "properties": {"repobilityId": "3253834fd6e46609", "scanner": "scanner-primary", "fingerprint": "1a6d91f2236825bf", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-bd298d2ebef6826d", "level": "note", "message": {"text": "Unused endpoint: PATCH /foo.lolz"}, "properties": {"repobilityId": "61c678f1f900a3c0", "scanner": "scanner-primary", "fingerprint": "bd298d2ebef6826d", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-0412540feadfa5bf", "level": "note", "message": {"text": "Unused endpoint: ANY /cell/<addr>"}, "properties": {"repobilityId": "d6ad709906f1c235", "scanner": "scanner-primary", "fingerprint": "0412540feadfa5bf", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}]}]}