{"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-c3add479934c8b0d", "name": "Possibly dead Python function: handler", "shortDescription": {"text": "Possibly dead Python function: handler"}, "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-b80898d66e301770", "name": "Possibly dead Python function: handle_health", "shortDescription": {"text": "Possibly dead Python function: handle_health"}, "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-aa089e19b8f0bd15", "name": "Possibly dead Python function: handle_events", "shortDescription": {"text": "Possibly dead Python function: handle_events"}, "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-e609136a8a9fdfd6", "name": "Possibly dead Python function: handle_suppressions", "shortDescription": {"text": "Possibly dead Python function: handle_suppressions"}, "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-a71d565266af29f0", "name": "Possibly dead Python function: handle_hosts", "shortDescription": {"text": "Possibly dead Python function: handle_hosts"}, "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-2908125acfbb81d9", "name": "Possibly dead Python function: handle_host_detail", "shortDescription": {"text": "Possibly dead Python function: handle_host_detail"}, "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-3d48f8176cf8edda", "name": "Possibly dead Python function: handle_targets_list", "shortDescription": {"text": "Possibly dead Python function: handle_targets_list"}, "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-a538f24b3380c2fe", "name": "Possibly dead Python function: handle_targets_add", "shortDescription": {"text": "Possibly dead Python function: handle_targets_add"}, "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-3a68ebb3686cdbcf", "name": "Possibly dead Python function: handle_target_patch", "shortDescription": {"text": "Possibly dead Python function: handle_target_patch"}, "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-ba59beb709a0f775", "name": "Possibly dead Python function: handle_target_delete", "shortDescription": {"text": "Possibly dead Python function: handle_target_delete"}, "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-f7b91cd371397b04", "name": "Possibly dead Python function: handle_target_test", "shortDescription": {"text": "Possibly dead Python function: handle_target_test"}, "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-5d67b735107ca623", "name": "Possibly dead Python function: handle_onboard_start", "shortDescription": {"text": "Possibly dead Python function: handle_onboard_start"}, "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-d05f30b7e011a716", "name": "Possibly dead Python function: handle_onboard_status", "shortDescription": {"text": "Possibly dead Python function: handle_onboard_status"}, "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-e5cd18b739d0503d", "name": "Possibly dead Python function: handle_container_logs", "shortDescription": {"text": "Possibly dead Python function: handle_container_logs"}, "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-b1d7f4201e1e6b9d", "name": "Possibly dead Python function: playbook_dns_failure", "shortDescription": {"text": "Possibly dead Python function: playbook_dns_failure"}, "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-40a3e0c86f779256", "name": "Possibly dead Python function: playbook_dns_latency", "shortDescription": {"text": "Possibly dead Python function: playbook_dns_latency"}, "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-e66641321461606e", "name": "Possibly dead Python function: playbook_wan_unreachable", "shortDescription": {"text": "Possibly dead Python function: playbook_wan_unreachable"}, "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-f0c4ada6da9514c7", "name": "Possibly dead Python function: playbook_probe_down", "shortDescription": {"text": "Possibly dead Python function: playbook_probe_down"}, "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-3de250944ef3ecc8", "name": "Possibly dead Python function: playbook_host_unreachable", "shortDescription": {"text": "Possibly dead Python function: playbook_host_unreachable"}, "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-2f6fa4373d6b9d5a", "name": "Possibly dead Python function: playbook_generic", "shortDescription": {"text": "Possibly dead Python function: playbook_generic"}, "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-7bd8cab1c12d89da", "name": "Possibly dead Python function: playbook_docker_error", "shortDescription": {"text": "Possibly dead Python function: playbook_docker_error"}, "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-6d8552e8df0d39ef", "name": "Possibly dead Python function: handle_webhook", "shortDescription": {"text": "Possibly dead Python function: handle_webhook"}, "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-80c5e3922fb340f3", "name": "Possibly dead Python function: handle_health", "shortDescription": {"text": "Possibly dead Python function: handle_health"}, "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-8b4ededb3ef5d26c", "name": "Possibly dead Python function: handle_dashboard", "shortDescription": {"text": "Possibly dead Python function: handle_dashboard"}, "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-c85b8f566fd86605", "name": "Possibly dead Python function: handle_state", "shortDescription": {"text": "Possibly dead Python function: handle_state"}, "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-30b7a129a5763bbe", "name": "Possibly dead Python function: handle_set_mode", "shortDescription": {"text": "Possibly dead Python function: handle_set_mode"}, "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-b0cd2fd453468685", "name": "Possibly dead Python function: handle_packages", "shortDescription": {"text": "Possibly dead Python function: handle_packages"}, "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-0a1258ef2cfd2ccd", "name": "Possibly dead Python function: handle_package_detail", "shortDescription": {"text": "Possibly dead Python function: handle_package_detail"}, "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-c468e3cae672dc0e", "name": "Possibly dead Python function: handle_diagnose", "shortDescription": {"text": "Possibly dead Python function: handle_diagnose"}, "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-c135e60262fdadc1", "name": "Privileged port 51 in use", "shortDescription": {"text": "Privileged port 51 in use"}, "fullDescription": {"text": "Port 51 is privileged (<1024). Make sure the service runs with the right caps or front it with a non-privileged port via a load balancer."}, "properties": {"scanner": "scanner-primary", "layer": "network", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-9948e0ef56eb5b36", "name": "Privileged port 26 in use", "shortDescription": {"text": "Privileged port 26 in use"}, "fullDescription": {"text": "Port 26 is privileged (<1024). Make sure the service runs with the right caps or front it with a non-privileged port via a load balancer."}, "properties": {"scanner": "scanner-primary", "layer": "network", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-b3f6decc9ab92698", "name": "Privileged port 164 in use", "shortDescription": {"text": "Privileged port 164 in use"}, "fullDescription": {"text": "Port 164 is privileged (<1024). Make sure the service runs with the right caps or front it with a non-privileged port via a load balancer."}, "properties": {"scanner": "scanner-primary", "layer": "network", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-e31c68053a5ffeae", "name": "Privileged port 81 in use", "shortDescription": {"text": "Privileged port 81 in use"}, "fullDescription": {"text": "Port 81 is privileged (<1024). Make sure the service runs with the right caps or front it with a non-privileged port via a load balancer."}, "properties": {"scanner": "scanner-primary", "layer": "network", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-f28ece237eaec763", "name": "Privileged port 52 in use", "shortDescription": {"text": "Privileged port 52 in use"}, "fullDescription": {"text": "Port 52 is privileged (<1024). Make sure the service runs with the right caps or front it with a non-privileged port via a load balancer."}, "properties": {"scanner": "scanner-primary", "layer": "network", "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-9a3973ba2cec7106", "name": "Possible secret in suricata-deploy/install-suricata-on-elk.sh", "shortDescription": {"text": "Possible secret in suricata-deploy/install-suricata-on-elk.sh"}, "fullDescription": {"text": "Detected pattern matching password_literal. Rotate the credential and move to a secret manager."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "critical", "confidence": 1.0}}, {"id": "scanner-926e05c630d95289", "name": "Possible secret in log-analyst/config.yml", "shortDescription": {"text": "Possible secret in log-analyst/config.yml"}, "fullDescription": {"text": "Detected pattern matching password_literal. Rotate the credential and move to a secret manager."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "critical", "confidence": 1.0}}, {"id": "scanner-35ffac0642182518", "name": "Insecure pattern 'direct_innerhtml_assignment' in log-analyst/webui/index.html:107", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in log-analyst/webui/index.html:107"}, "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-be9c9574583866b5", "name": "Insecure pattern 'direct_innerhtml_assignment' in log-analyst/webui/new.html:120", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in log-analyst/webui/new.html:120"}, "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-aa51933169e72161", "name": "Insecure pattern 'direct_innerhtml_assignment' in log-analyst/webui/host.html:133", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in log-analyst/webui/host.html:133"}, "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-910142d908c8a7e3", "name": "Insecure pattern 'direct_innerhtml_assignment' in log-analyst/webui/hosts.html:105", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in log-analyst/webui/hosts.html:105"}, "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-45ded00756f3a873", "name": "Insecure pattern 'direct_innerhtml_assignment' in log-analyst/webui/targets.html:104", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in log-analyst/webui/targets.html:104"}, "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-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-f0947ea95d568c43", "name": "Very large file: log-analyst/log-analyst.py (2181 lines)", "shortDescription": {"text": "Very large file: log-analyst/log-analyst.py (2181 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-b588e60586395c49", "name": "Very large file: diag-agent/diag-agent.py (1687 lines)", "shortDescription": {"text": "Very large file: diag-agent/diag-agent.py (1687 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 5 console/debugger/print-style debug statements in non-test source. This is a common fast-generation residue before production cleanup."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-2d0c7b7ab8f8aacf", "name": "Critical user flow still appears backed by mock or placeholder data", "shortDescription": {"text": "Critical user flow still appears backed by mock or placeholder data"}, "fullDescription": {"text": "A payment/auth/admin/order/billing-style flow contains mock, fake, TODO, dummy, or placeholder markers in runtime source. In the Fable corpus this is a high-leverage completeness smell: the app can look finished while the money, identity, or tenant flow is still scaffolded."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-b9088664ace7f748", "name": "Composite production-readiness gap", "shortDescription": {"text": "Composite production-readiness gap"}, "fullDescription": {"text": "Multiple low-cost hardening controls are missing together: license, ci. Opus verification showed these co-occurring gaps are a better readiness signal than reading each flag in isolation."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-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-f632265e983777b4", "name": "Commented-code block (5 lines) in log-analyst/log-analyst.py:549", "shortDescription": {"text": "Commented-code block (5 lines) in log-analyst/log-analyst.py:549"}, "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-b2f590080c4b92da", "name": "Commented-code block (10 lines) in diag-agent/diag-agent.py:55", "shortDescription": {"text": "Commented-code block (10 lines) in diag-agent/diag-agent.py:55"}, "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:\ndiag-agent/diag-agent.py:query, diag-agent/diag-agent.py:query\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/18277"}, "properties": {"repository": "robertegardner/homelab-monitor", "repoUrl": "https://github.com/robertegardner/homelab-monitor", "branch": "main"}, "results": [{"ruleId": "scanner-c3add479934c8b0d", "level": "note", "message": {"text": "Possibly dead Python function: handler"}, "properties": {"repobilityId": "bd219af3bd678eef", "scanner": "scanner-primary", "fingerprint": "c3add479934c8b0d", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "log-analyst/log-analyst.py:1916"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-b80898d66e301770", "level": "note", "message": {"text": "Possibly dead Python function: handle_health"}, "properties": {"repobilityId": "1c998a57b114fbaa", "scanner": "scanner-primary", "fingerprint": "b80898d66e301770", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "log-analyst/log-analyst.py:1929"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-aa089e19b8f0bd15", "level": "note", "message": {"text": "Possibly dead Python function: handle_events"}, "properties": {"repobilityId": "24eb3e4c4f4f7f83", "scanner": "scanner-primary", "fingerprint": "aa089e19b8f0bd15", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "log-analyst/log-analyst.py:1932"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-e609136a8a9fdfd6", "level": "note", "message": {"text": "Possibly dead Python function: handle_suppressions"}, "properties": {"repobilityId": "40bddc58a59b2a26", "scanner": "scanner-primary", "fingerprint": "e609136a8a9fdfd6", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "log-analyst/log-analyst.py:1941"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-a71d565266af29f0", "level": "note", "message": {"text": "Possibly dead Python function: handle_hosts"}, "properties": {"repobilityId": "1163d577cf4bdb5f", "scanner": "scanner-primary", "fingerprint": "a71d565266af29f0", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "log-analyst/log-analyst.py:1944"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-2908125acfbb81d9", "level": "note", "message": {"text": "Possibly dead Python function: handle_host_detail"}, "properties": {"repobilityId": "403237e34600d546", "scanner": "scanner-primary", "fingerprint": "2908125acfbb81d9", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "log-analyst/log-analyst.py:1947"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-3d48f8176cf8edda", "level": "note", "message": {"text": "Possibly dead Python function: handle_targets_list"}, "properties": {"repobilityId": "457d65dbcd3bfd7f", "scanner": "scanner-primary", "fingerprint": "3d48f8176cf8edda", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "log-analyst/log-analyst.py:1956"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-a538f24b3380c2fe", "level": "note", "message": {"text": "Possibly dead Python function: handle_targets_add"}, "properties": {"repobilityId": "59e5a7a5e0e3f59c", "scanner": "scanner-primary", "fingerprint": "a538f24b3380c2fe", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "log-analyst/log-analyst.py:1974"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-3a68ebb3686cdbcf", "level": "note", "message": {"text": "Possibly dead Python function: handle_target_patch"}, "properties": {"repobilityId": "405498ef56bab19e", "scanner": "scanner-primary", "fingerprint": "3a68ebb3686cdbcf", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "log-analyst/log-analyst.py:1998"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-ba59beb709a0f775", "level": "note", "message": {"text": "Possibly dead Python function: handle_target_delete"}, "properties": {"repobilityId": "6f97bc76a5adcb77", "scanner": "scanner-primary", "fingerprint": "ba59beb709a0f775", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "log-analyst/log-analyst.py:2016"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-f7b91cd371397b04", "level": "note", "message": {"text": "Possibly dead Python function: handle_target_test"}, "properties": {"repobilityId": "06e8e95d357708a5", "scanner": "scanner-primary", "fingerprint": "f7b91cd371397b04", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "log-analyst/log-analyst.py:2029"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-5d67b735107ca623", "level": "note", "message": {"text": "Possibly dead Python function: handle_onboard_start"}, "properties": {"repobilityId": "e45cefa0aa7c6a06", "scanner": "scanner-primary", "fingerprint": "5d67b735107ca623", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "log-analyst/log-analyst.py:2042"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-d05f30b7e011a716", "level": "note", "message": {"text": "Possibly dead Python function: handle_onboard_status"}, "properties": {"repobilityId": "a535600521c74dcb", "scanner": "scanner-primary", "fingerprint": "d05f30b7e011a716", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "log-analyst/log-analyst.py:2083"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-e5cd18b739d0503d", "level": "note", "message": {"text": "Possibly dead Python function: handle_container_logs"}, "properties": {"repobilityId": "cd415b39c707f6f0", "scanner": "scanner-primary", "fingerprint": "e5cd18b739d0503d", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "log-analyst/log-analyst.py:2089"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-b1d7f4201e1e6b9d", "level": "note", "message": {"text": "Possibly dead Python function: playbook_dns_failure"}, "properties": {"repobilityId": "9335b530824a5ba8", "scanner": "scanner-primary", "fingerprint": "b1d7f4201e1e6b9d", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "diag-agent/diag-agent.py:494"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-40a3e0c86f779256", "level": "note", "message": {"text": "Possibly dead Python function: playbook_dns_latency"}, "properties": {"repobilityId": "d75aa3413f64e639", "scanner": "scanner-primary", "fingerprint": "40a3e0c86f779256", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "diag-agent/diag-agent.py:570"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-e66641321461606e", "level": "note", "message": {"text": "Possibly dead Python function: playbook_wan_unreachable"}, "properties": {"repobilityId": "db107e184acefb28", "scanner": "scanner-primary", "fingerprint": "e66641321461606e", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "diag-agent/diag-agent.py:609"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-f0c4ada6da9514c7", "level": "note", "message": {"text": "Possibly dead Python function: playbook_probe_down"}, "properties": {"repobilityId": "16684a88554ed0f6", "scanner": "scanner-primary", "fingerprint": "f0c4ada6da9514c7", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "diag-agent/diag-agent.py:653"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-3de250944ef3ecc8", "level": "note", "message": {"text": "Possibly dead Python function: playbook_host_unreachable"}, "properties": {"repobilityId": "2308e5a4da1c54d9", "scanner": "scanner-primary", "fingerprint": "3de250944ef3ecc8", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "diag-agent/diag-agent.py:699"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-2f6fa4373d6b9d5a", "level": "note", "message": {"text": "Possibly dead Python function: playbook_generic"}, "properties": {"repobilityId": "24728b1abceedfea", "scanner": "scanner-primary", "fingerprint": "2f6fa4373d6b9d5a", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "diag-agent/diag-agent.py:769"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-7bd8cab1c12d89da", "level": "note", "message": {"text": "Possibly dead Python function: playbook_docker_error"}, "properties": {"repobilityId": "8b352a99c379d113", "scanner": "scanner-primary", "fingerprint": "7bd8cab1c12d89da", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "diag-agent/diag-agent.py:794"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-6d8552e8df0d39ef", "level": "note", "message": {"text": "Possibly dead Python function: handle_webhook"}, "properties": {"repobilityId": "f9590dbf798210af", "scanner": "scanner-primary", "fingerprint": "6d8552e8df0d39ef", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "diag-agent/diag-agent.py:1564"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-80c5e3922fb340f3", "level": "note", "message": {"text": "Possibly dead Python function: handle_health"}, "properties": {"repobilityId": "1c998a57b114fbaa", "scanner": "scanner-primary", "fingerprint": "80c5e3922fb340f3", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "diag-agent/diag-agent.py:1572"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-8b4ededb3ef5d26c", "level": "note", "message": {"text": "Possibly dead Python function: handle_dashboard"}, "properties": {"repobilityId": "a6b8dcb948ae34f0", "scanner": "scanner-primary", "fingerprint": "8b4ededb3ef5d26c", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "diag-agent/diag-agent.py:1575"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-c85b8f566fd86605", "level": "note", "message": {"text": "Possibly dead Python function: handle_state"}, "properties": {"repobilityId": "ad1764f347b7c5cc", "scanner": "scanner-primary", "fingerprint": "c85b8f566fd86605", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "diag-agent/diag-agent.py:1578"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-30b7a129a5763bbe", "level": "note", "message": {"text": "Possibly dead Python function: handle_set_mode"}, "properties": {"repobilityId": "29b74989f2ef96f0", "scanner": "scanner-primary", "fingerprint": "30b7a129a5763bbe", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "diag-agent/diag-agent.py:1581"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-b0cd2fd453468685", "level": "note", "message": {"text": "Possibly dead Python function: handle_packages"}, "properties": {"repobilityId": "3559440a3bf5ee04", "scanner": "scanner-primary", "fingerprint": "b0cd2fd453468685", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "diag-agent/diag-agent.py:1591"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-0a1258ef2cfd2ccd", "level": "note", "message": {"text": "Possibly dead Python function: handle_package_detail"}, "properties": {"repobilityId": "d63eab6f70d30f12", "scanner": "scanner-primary", "fingerprint": "0a1258ef2cfd2ccd", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "diag-agent/diag-agent.py:1594"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-c468e3cae672dc0e", "level": "note", "message": {"text": "Possibly dead Python function: handle_diagnose"}, "properties": {"repobilityId": "550864e654bbecdf", "scanner": "scanner-primary", "fingerprint": "c468e3cae672dc0e", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "diag-agent/diag-agent.py:1609"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-c135e60262fdadc1", "level": "warning", "message": {"text": "Privileged port 51 in use"}, "properties": {"repobilityId": "22e13070198289ad", "scanner": "scanner-primary", "fingerprint": "c135e60262fdadc1", "layer": "network", "severity": "medium", "confidence": 1.0, "tags": ["security", "ports"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "alloy-deploy/deploy.sh"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-9948e0ef56eb5b36", "level": "warning", "message": {"text": "Privileged port 26 in use"}, "properties": {"repobilityId": "9c5e4d9c5edd9bd2", "scanner": "scanner-primary", "fingerprint": "9948e0ef56eb5b36", "layer": "network", "severity": "medium", "confidence": 1.0, "tags": ["security", "ports"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "suricata-deploy/install-suricata-sensor.sh"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-b3f6decc9ab92698", "level": "warning", "message": {"text": "Privileged port 164 in use"}, "properties": {"repobilityId": "fbf04192be048063", "scanner": "scanner-primary", "fingerprint": "b3f6decc9ab92698", "layer": "network", "severity": "medium", "confidence": 1.0, "tags": ["security", "ports"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "log-analyst/config.yml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-e31c68053a5ffeae", "level": "warning", "message": {"text": "Privileged port 81 in use"}, "properties": {"repobilityId": "663b0bffb7f8fe66", "scanner": "scanner-primary", "fingerprint": "e31c68053a5ffeae", "layer": "network", "severity": "medium", "confidence": 1.0, "tags": ["security", "ports"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "log-analyst/config.yml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-f28ece237eaec763", "level": "warning", "message": {"text": "Privileged port 52 in use"}, "properties": {"repobilityId": "2b6877fa37212075", "scanner": "scanner-primary", "fingerprint": "f28ece237eaec763", "layer": "network", "severity": "medium", "confidence": 1.0, "tags": ["security", "ports"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "diag-agent/config.yml"}, "region": {"startLine": 1}}}]}, {"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-9a3973ba2cec7106", "level": "error", "message": {"text": "Possible secret in suricata-deploy/install-suricata-on-elk.sh"}, "properties": {"repobilityId": "8487adffb73c1522", "scanner": "scanner-primary", "fingerprint": "9a3973ba2cec7106", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "suricata-deploy/install-suricata-on-elk.sh"}, "region": {"startLine": 195}}}]}, {"ruleId": "scanner-926e05c630d95289", "level": "error", "message": {"text": "Possible secret in log-analyst/config.yml"}, "properties": {"repobilityId": "b53294dcbe093d42", "scanner": "scanner-primary", "fingerprint": "926e05c630d95289", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "log-analyst/config.yml"}, "region": {"startLine": 105}}}]}, {"ruleId": "scanner-35ffac0642182518", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in log-analyst/webui/index.html:107"}, "properties": {"repobilityId": "b8fe18ed5e03ec49", "scanner": "scanner-primary", "fingerprint": "35ffac0642182518", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "log-analyst/webui/index.html"}, "region": {"startLine": 107}}}]}, {"ruleId": "scanner-be9c9574583866b5", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in log-analyst/webui/new.html:120"}, "properties": {"repobilityId": "baae13535a9f50fa", "scanner": "scanner-primary", "fingerprint": "be9c9574583866b5", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "log-analyst/webui/new.html"}, "region": {"startLine": 120}}}]}, {"ruleId": "scanner-aa51933169e72161", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in log-analyst/webui/host.html:133"}, "properties": {"repobilityId": "264d4cc802576d18", "scanner": "scanner-primary", "fingerprint": "aa51933169e72161", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "log-analyst/webui/host.html"}, "region": {"startLine": 133}}}]}, {"ruleId": "scanner-910142d908c8a7e3", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in log-analyst/webui/hosts.html:105"}, "properties": {"repobilityId": "fed858ad9c0494ad", "scanner": "scanner-primary", "fingerprint": "910142d908c8a7e3", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "log-analyst/webui/hosts.html"}, "region": {"startLine": 105}}}]}, {"ruleId": "scanner-45ded00756f3a873", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in log-analyst/webui/targets.html:104"}, "properties": {"repobilityId": "f378df0697180841", "scanner": "scanner-primary", "fingerprint": "45ded00756f3a873", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "log-analyst/webui/targets.html"}, "region": {"startLine": 104}}}]}, {"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-f0947ea95d568c43", "level": "note", "message": {"text": "Very large file: log-analyst/log-analyst.py (2181 lines)"}, "properties": {"repobilityId": "9ae51a8daed8c21f", "scanner": "scanner-primary", "fingerprint": "f0947ea95d568c43", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-b588e60586395c49", "level": "note", "message": {"text": "Very large file: diag-agent/diag-agent.py (1687 lines)"}, "properties": {"repobilityId": "22b729ff408ab6bb", "scanner": "scanner-primary", "fingerprint": "b588e60586395c49", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-141b30a41e03817b", "level": "note", "message": {"text": "No license file detected"}, "properties": {"repobilityId": "b569e33cbb965403", "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": "becd5db9aa2d77e8", "scanner": "scanner-primary", "fingerprint": "3ab5d313dda8e5f9", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["debug", "cleanup", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-2d0c7b7ab8f8aacf", "level": "warning", "message": {"text": "Critical user flow still appears backed by mock or placeholder data"}, "properties": {"repobilityId": "21facb57717c66d2", "scanner": "scanner-primary", "fingerprint": "2d0c7b7ab8f8aacf", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["placeholder", "mock-data", "critical-flow", "generated-repo-pattern"]}}, {"ruleId": "scanner-b9088664ace7f748", "level": "note", "message": {"text": "Composite production-readiness gap"}, "properties": {"repobilityId": "51bc36b3c84271f7", "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": "8a9d6b39fdcd1257", "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": "a9a2488da262d657", "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": "6d1ae519a08609b9", "scanner": "scanner-primary", "fingerprint": "8424db9c75e04ba4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["provenance", "git-history", "generated-repo-pattern"]}}, {"ruleId": "scanner-f632265e983777b4", "level": "none", "message": {"text": "Commented-code block (5 lines) in log-analyst/log-analyst.py:549"}, "properties": {"repobilityId": "568b36678dab04b7", "scanner": "scanner-primary", "fingerprint": "f632265e983777b4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b2f590080c4b92da", "level": "none", "message": {"text": "Commented-code block (10 lines) in diag-agent/diag-agent.py:55"}, "properties": {"repobilityId": "7182c6a3eeb13cce", "scanner": "scanner-primary", "fingerprint": "b2f590080c4b92da", "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": "83d7071e718aa1ce", "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": "474fe68169f431ba", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}]}]}