{"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-48db396620dc8ff3", "name": "Possibly dead Python function: generate_launch_description", "shortDescription": {"text": "Possibly dead Python function: generate_launch_description"}, "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-fc612d0f36e319de", "name": "Possibly dead Python function: generate_launch_description", "shortDescription": {"text": "Possibly dead Python function: generate_launch_description"}, "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-5a5098013c084af2", "name": "Possibly dead Python function: generate_launch_description", "shortDescription": {"text": "Possibly dead Python function: generate_launch_description"}, "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-c28a7c2ba332b440", "name": "Possibly dead Python function: generate_launch_description", "shortDescription": {"text": "Possibly dead Python function: generate_launch_description"}, "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-bf70391f15fe28a8", "name": "Possibly dead Python function: generate_launch_description", "shortDescription": {"text": "Possibly dead Python function: generate_launch_description"}, "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-2b1820820567c84e", "name": "Possibly dead Python function: generate_launch_description", "shortDescription": {"text": "Possibly dead Python function: generate_launch_description"}, "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-d207a063e8c47073", "name": "Possibly dead Python function: generate_launch_description", "shortDescription": {"text": "Possibly dead Python function: generate_launch_description"}, "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-dc6ec44dce8fcd9e", "name": "Possibly dead Python function: generate_launch_description", "shortDescription": {"text": "Possibly dead Python function: generate_launch_description"}, "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-fb228eb88f82fdfb", "name": "Possibly dead Python function: generate_launch_description", "shortDescription": {"text": "Possibly dead Python function: generate_launch_description"}, "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-c69e9a78fe4f31b8", "name": "Possibly dead Python function: generate_launch_description", "shortDescription": {"text": "Possibly dead Python function: generate_launch_description"}, "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-cb051361f9543e89", "name": "Possibly dead Python function: generate_launch_description", "shortDescription": {"text": "Possibly dead Python function: generate_launch_description"}, "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-fcb4302f3f1928d7", "name": "Possibly dead Python function: generate_launch_description", "shortDescription": {"text": "Possibly dead Python function: generate_launch_description"}, "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-b09c97049cec4b64", "name": "Possibly dead Python function: generate_launch_description", "shortDescription": {"text": "Possibly dead Python function: generate_launch_description"}, "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-6639ff4a29109051", "name": "Possibly dead Python function: generate_launch_description", "shortDescription": {"text": "Possibly dead Python function: generate_launch_description"}, "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-a4969e9597d51eca", "name": "Possibly dead Python function: imu_cb", "shortDescription": {"text": "Possibly dead Python function: imu_cb"}, "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-e34e579758be8175", "name": "Possibly dead Python function: odom_cb", "shortDescription": {"text": "Possibly dead Python function: odom_cb"}, "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-7ed859c9d435ef4d", "name": "Possibly dead Python function: scan_cb", "shortDescription": {"text": "Possibly dead Python function: scan_cb"}, "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-799a9d981bcbf069", "name": "Possibly dead Python function: scan_cb", "shortDescription": {"text": "Possibly dead Python function: scan_cb"}, "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-584135c073d0eea2", "name": "Possibly dead Python function: callback", "shortDescription": {"text": "Possibly dead Python function: callback"}, "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-95b504d55498971d", "name": "Possibly dead Python function: compute_predicted_dopplers", "shortDescription": {"text": "Possibly dead Python function: compute_predicted_dopplers"}, "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-14467707812c6627", "name": "Possibly dead Python function: make_residual_fn", "shortDescription": {"text": "Possibly dead Python function: make_residual_fn"}, "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-93cc4e67358295b7", "name": "Possibly dead Python function: residual_fn", "shortDescription": {"text": "Possibly dead Python function: residual_fn"}, "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-ee93b502c9afe517", "name": "Possibly dead Python function: validate_from_dump_obj", "shortDescription": {"text": "Possibly dead Python function: validate_from_dump_obj"}, "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-d1848a22bd349aa1", "name": "Possibly dead Python function: build_cpp_solver_args", "shortDescription": {"text": "Possibly dead Python function: build_cpp_solver_args"}, "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-87a360fad703e110", "name": "Possibly dead Python function: compute_omega_and_jacobians", "shortDescription": {"text": "Possibly dead Python function: compute_omega_and_jacobians"}, "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-3438d62911e9e48a", "name": "Possibly dead Python function: quaternion_multiply", "shortDescription": {"text": "Possibly dead Python function: quaternion_multiply"}, "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-77107c10f47b7eff", "name": "Possibly dead Python function: huber_loss", "shortDescription": {"text": "Possibly dead Python function: huber_loss"}, "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-4056ea2c2d692b1f", "name": "Possibly dead Python function: compute_accelerometer_residuals_nonlinear", "shortDescription": {"text": "Possibly dead Python function: compute_accelerometer_residuals_nonlinear"}, "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-059c4c8d5d4edc55", "name": "Possibly dead Python function: compute_gyroscope_residuals_nonlinear", "shortDescription": {"text": "Possibly dead Python function: compute_gyroscope_residuals_nonlinear"}, "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-79338fd256be68fa", "name": "Possibly dead Python function: radar_residual", "shortDescription": {"text": "Possibly dead Python function: radar_residual"}, "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-0a35c89d4e05e6c5", "name": "Dockerfile runs as root: baselines/Dockerfile", "shortDescription": {"text": "Dockerfile runs as root: baselines/Dockerfile"}, "fullDescription": {"text": "No non-root USER set. Containers running as root expand the blast radius of any vulnerability inside the image."}, "properties": {"scanner": "scanner-primary", "layer": "hardware", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-51e89a2d13d97316", "name": "Docker base image uses a mutable or implicit tag: docker-iwr6843:latest", "shortDescription": {"text": "Docker base image uses a mutable or implicit tag: docker-iwr6843:latest"}, "fullDescription": {"text": "Container tags can be retagged upstream. Pin production base images to a reviewed digest (`image@sha256:...`) when reproducibility and supply-chain integrity matter."}, "properties": {"scanner": "scanner-primary", "layer": "hardware", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-47636e33caef255d", "name": "Dockerfile runs as root: docker/Dockerfile", "shortDescription": {"text": "Dockerfile runs as root: docker/Dockerfile"}, "fullDescription": {"text": "No non-root USER set. Containers running as root expand the blast radius of any vulnerability inside the image."}, "properties": {"scanner": "scanner-primary", "layer": "hardware", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-940331801673b164", "name": "Docker base image is tag-pinned but not digest-pinned: osrf/ros:noetic-desktop-full", "shortDescription": {"text": "Docker base image is tag-pinned but not digest-pinned: osrf/ros:noetic-desktop-full"}, "fullDescription": {"text": "Container tags can be retagged upstream. Pin production base images to a reviewed digest (`image@sha256:...`) when reproducibility and supply-chain integrity matter."}, "properties": {"scanner": "scanner-primary", "layer": "hardware", "severity": "low", "confidence": 1.0}}, {"id": "scanner-adf6c0c7e3923ba7", "name": "Dockerfile pipes a remote installer into a shell", "shortDescription": {"text": "Dockerfile pipes a remote installer into a shell"}, "fullDescription": {"text": "Executing downloaded code during image build gives the remote endpoint build-time code execution. Prefer pinned packages or verify downloaded installers by checksum/signature."}, "properties": {"scanner": "scanner-primary", "layer": "hardware", "severity": "high", "confidence": 1.0}}, {"id": "scanner-12bf4a555f6d4830", "name": "Insecure pattern 'eval_used' in CLAUDE.md:317", "shortDescription": {"text": "Insecure pattern 'eval_used' in CLAUDE.md:317"}, "fullDescription": {"text": "Found a known-risky pattern (eval_used). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-a8b039b650bbdc79", "name": "Insecure pattern 'subprocess_shell_true' in mmwave_ti_ros/autonomous_robotics_ros/src/turtlebot_apps/turtlebot_calibrati", "shortDescription": {"text": "Insecure pattern 'subprocess_shell_true' in mmwave_ti_ros/autonomous_robotics_ros/src/turtlebot_apps/turtlebot_calibration/src/turtlebot_calibration/calibrate.py:205"}, "fullDescription": {"text": "Found a known-risky pattern (subprocess_shell_true). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-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-0c9851bf425f1508", "name": "Very large file: analysis/validate_live_solver.py (2846 lines)", "shortDescription": {"text": "Very large file: analysis/validate_live_solver.py (2846 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-f752abe59a72aee0", "name": "Very large file: analysis/validate_nonlinear_solver.py (3396 lines)", "shortDescription": {"text": "Very large file: analysis/validate_nonlinear_solver.py (3396 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-ff8771ed1423070f", "name": "Very large file: analysis/codegen/generated_jacobians.py (3201 lines)", "shortDescription": {"text": "Very large file: analysis/codegen/generated_jacobians.py (3201 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-ea3b5e389d8c9c0f", "name": "Low test-to-source ratio", "shortDescription": {"text": "Low test-to-source ratio"}, "fullDescription": {"text": "16 tests / 82 src (ratio 0.20)."}, "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 1546 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-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 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-bea357a6497a2d5d", "name": "Agent authority lacks a verifier contract: CLAUDE.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: 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-27d24ac0786c7a00", "name": "Commented-code block (9 lines) in mmwave_ti_ros/autonomous_robotics_ros/src/turtlebot_apps/turtlebot_calibration/src/tur", "shortDescription": {"text": "Commented-code block (9 lines) in mmwave_ti_ros/autonomous_robotics_ros/src/turtlebot_apps/turtlebot_calibration/src/turtlebot_calibration/calibrate.py:12"}, "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-f5e8e42b6ae4b6c8", "name": "Network/subprocess call without timeout or try/except \u2014 mmwave_ti_ros/autonomous_robotics_ros/src/turtlebot_apps/turtleb", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 mmwave_ti_ros/autonomous_robotics_ros/src/turtlebot_apps/turtlebot_calibration/src/turtlebot_calibration/calibrate.py:230"}, "fullDescription": {"text": "`subprocess.check_output(...)` 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-2a1f9ad9fb01ab92", "name": "Commented-code block (9 lines) in mmwave_ti_ros/autonomous_robotics_ros/src/turtlebot_apps/turtlebot_calibration/src/tur", "shortDescription": {"text": "Commented-code block (9 lines) in mmwave_ti_ros/autonomous_robotics_ros/src/turtlebot_apps/turtlebot_calibration/src/turtlebot_calibration/scan_to_angle.py:12"}, "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-2f9492af3c38e1d4", "name": "Commented-code block (7 lines) in baselines/adapters/convert_bag_to_rio.py:101", "shortDescription": {"text": "Commented-code block (7 lines) in baselines/adapters/convert_bag_to_rio.py:101"}, "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-070e36d92d280aae", "name": "Commented-code block (5 lines) in analysis/validate_linear_solver.py:157", "shortDescription": {"text": "Commented-code block (5 lines) in analysis/validate_linear_solver.py:157"}, "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-016a003280e4d401", "name": "Commented-code block (7 lines) in analysis/validate_live_solver.py:855", "shortDescription": {"text": "Commented-code block (7 lines) in analysis/validate_live_solver.py:855"}, "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-9e1854907cb4446a", "name": "Commented-code block (9 lines) in analysis/codegen/derive_jacobians_symforce.py:851", "shortDescription": {"text": "Commented-code block (9 lines) in analysis/codegen/derive_jacobians_symforce.py:851"}, "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-27071f24f4585049", "name": "Commented-code block (6 lines) in analysis/adaptive_knots/v0_basis_check.py:156", "shortDescription": {"text": "Commented-code block (6 lines) in analysis/adaptive_knots/v0_basis_check.py:156"}, "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-1808403fd970e118", "name": "Commented-code block (5 lines) in analysis/diagnostics/diagnose_doppler.py:186", "shortDescription": {"text": "Commented-code block (5 lines) in analysis/diagnostics/diagnose_doppler.py:186"}, "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-0027e313ade46c8f", "name": "Near-duplicate function bodies in 7 places", "shortDescription": {"text": "Near-duplicate function bodies in 7 places"}, "fullDescription": {"text": "Functions with the same first-5-line body hash:\nmmwave_ti_ros/ros2_driver/src/ti_mmwave_rospkg/launch/6843ISK_Standard.py:generate_launch_description, mmwave_ti_ros/ros2_driver/src/ti_mmwave_rospkg/launch/6843AOP_StaticTracking.py:generate_launch_description, mmwave_ti_ros/ros2_driver/src/ti_mmwave_rospkg/launch/6843ISK_Occupancy.py:generate_launch_description, mmwave_ti_ros/ros2_driver/src/ti_mmwave_rospkg/launch/6843ISK_Tracking.py:generate_launch_description\n\nThis is *the* AI-coder failure mode (4\u00d7 more duplication in vibe-coded repos \u2014 see https://jw.hn/ai-code-hygiene). Consolidate or document why they're separate."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-2c04133e54348533", "name": "Near-duplicate function bodies in 2 places", "shortDescription": {"text": "Near-duplicate function bodies in 2 places"}, "fullDescription": {"text": "Functions with the same first-5-line body hash:\nanalysis/validate_nonlinear_solver.py:compute_jacobian_analytical, analysis/validate_nonlinear_solver.py:compute_residuals_only\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/25505"}, "properties": {"repository": "Dr1zz3l/radar-iwr6843-driver", "repoUrl": "https://github.com/Dr1zz3l/radar-iwr6843-driver", "branch": "main"}, "results": [{"ruleId": "scanner-48db396620dc8ff3", "level": "note", "message": {"text": "Possibly dead Python function: generate_launch_description"}, "properties": {"repobilityId": "d9a90a15bddc43f1", "scanner": "scanner-primary", "fingerprint": "48db396620dc8ff3", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "mmwave_ti_ros/ros2_driver/src/ti_mmwave_rospkg/launch/6843ISK_Standard.py:9"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-fc612d0f36e319de", "level": "note", "message": {"text": "Possibly dead Python function: generate_launch_description"}, "properties": {"repobilityId": "d9a90a15bddc43f1", "scanner": "scanner-primary", "fingerprint": "fc612d0f36e319de", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "mmwave_ti_ros/ros2_driver/src/ti_mmwave_rospkg/launch/6843AOP_StaticTracking.py:9"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-5a5098013c084af2", "level": "note", "message": {"text": "Possibly dead Python function: generate_launch_description"}, "properties": {"repobilityId": "d9a90a15bddc43f1", "scanner": "scanner-primary", "fingerprint": "5a5098013c084af2", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "mmwave_ti_ros/ros2_driver/src/ti_mmwave_rospkg/launch/6843ISK_Occupancy.py:9"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-c28a7c2ba332b440", "level": "note", "message": {"text": "Possibly dead Python function: generate_launch_description"}, "properties": {"repobilityId": "d9a90a15bddc43f1", "scanner": "scanner-primary", "fingerprint": "c28a7c2ba332b440", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "mmwave_ti_ros/ros2_driver/src/ti_mmwave_rospkg/launch/rviz_launch.py:6"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-bf70391f15fe28a8", "level": "note", "message": {"text": "Possibly dead Python function: generate_launch_description"}, "properties": {"repobilityId": "d9a90a15bddc43f1", "scanner": "scanner-primary", "fingerprint": "bf70391f15fe28a8", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "mmwave_ti_ros/ros2_driver/src/ti_mmwave_rospkg/launch/6843ISK_Tracking.py:9"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-2b1820820567c84e", "level": "note", "message": {"text": "Possibly dead Python function: generate_launch_description"}, "properties": {"repobilityId": "d9a90a15bddc43f1", "scanner": "scanner-primary", "fingerprint": "2b1820820567c84e", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "mmwave_ti_ros/ros2_driver/src/ti_mmwave_rospkg/launch/6843AOP_Standard.py:9"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-d207a063e8c47073", "level": "note", "message": {"text": "Possibly dead Python function: generate_launch_description"}, "properties": {"repobilityId": "d9a90a15bddc43f1", "scanner": "scanner-primary", "fingerprint": "d207a063e8c47073", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "mmwave_ti_ros/ros2_driver/src/ti_mmwave_rospkg/launch/1843_Standard.py:8"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-dc6ec44dce8fcd9e", "level": "note", "message": {"text": "Possibly dead Python function: generate_launch_description"}, "properties": {"repobilityId": "d9a90a15bddc43f1", "scanner": "scanner-primary", "fingerprint": "dc6ec44dce8fcd9e", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "mmwave_ti_ros/ros2_driver/src/ti_mmwave_rospkg/launch/6843AOP_Tracking.py:9"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-fb228eb88f82fdfb", "level": "note", "message": {"text": "Possibly dead Python function: generate_launch_description"}, "properties": {"repobilityId": "d9a90a15bddc43f1", "scanner": "scanner-primary", "fingerprint": "fb228eb88f82fdfb", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "mmwave_ti_ros/ros2_driver/src/ti_mmwave_rospkg/launch/1642_Standard.py:8"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-c69e9a78fe4f31b8", "level": "note", "message": {"text": "Possibly dead Python function: generate_launch_description"}, "properties": {"repobilityId": "d9a90a15bddc43f1", "scanner": "scanner-primary", "fingerprint": "c69e9a78fe4f31b8", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "mmwave_ti_ros/ros2_driver/src/ti_mmwave_rospkg/launch/6843AOP_FineMotion.py:9"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-cb051361f9543e89", "level": "note", "message": {"text": "Possibly dead Python function: generate_launch_description"}, "properties": {"repobilityId": "d9a90a15bddc43f1", "scanner": "scanner-primary", "fingerprint": "cb051361f9543e89", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "mmwave_ti_ros/ros2_driver/src/ti_mmwave_rospkg/launch/1443_Standard.py:8"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-fcb4302f3f1928d7", "level": "note", "message": {"text": "Possibly dead Python function: generate_launch_description"}, "properties": {"repobilityId": "d9a90a15bddc43f1", "scanner": "scanner-primary", "fingerprint": "fcb4302f3f1928d7", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "mmwave_ti_ros/ros2_driver/src/ti_mmwave_rospkg/launch/IWR6843.py:9"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-b09c97049cec4b64", "level": "note", "message": {"text": "Possibly dead Python function: generate_launch_description"}, "properties": {"repobilityId": "d9a90a15bddc43f1", "scanner": "scanner-primary", "fingerprint": "b09c97049cec4b64", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "mmwave_ti_ros/ros2_driver/src/ti_mmwave_rospkg/launch/6432_Classification.py:12"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-6639ff4a29109051", "level": "note", "message": {"text": "Possibly dead Python function: generate_launch_description"}, "properties": {"repobilityId": "d9a90a15bddc43f1", "scanner": "scanner-primary", "fingerprint": "6639ff4a29109051", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "mmwave_ti_ros/ros2_driver/src/ti_mmwave_rospkg/launch/6432_Standard.py:12"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-a4969e9597d51eca", "level": "note", "message": {"text": "Possibly dead Python function: imu_cb"}, "properties": {"repobilityId": "099d4cfae447917b", "scanner": "scanner-primary", "fingerprint": "a4969e9597d51eca", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "mmwave_ti_ros/autonomous_robotics_ros/src/turtlebot_apps/turtlebot_calibration/src/turtlebot_calibration/calibrate.py:186"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-e34e579758be8175", "level": "note", "message": {"text": "Possibly dead Python function: odom_cb"}, "properties": {"repobilityId": "9c71d23bb8facbbd", "scanner": "scanner-primary", "fingerprint": "e34e579758be8175", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "mmwave_ti_ros/autonomous_robotics_ros/src/turtlebot_apps/turtlebot_calibration/src/turtlebot_calibration/calibrate.py:192"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-7ed859c9d435ef4d", "level": "note", "message": {"text": "Possibly dead Python function: scan_cb"}, "properties": {"repobilityId": "19b11a7a5d60a329", "scanner": "scanner-primary", "fingerprint": "7ed859c9d435ef4d", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "mmwave_ti_ros/autonomous_robotics_ros/src/turtlebot_apps/turtlebot_calibration/src/turtlebot_calibration/calibrate.py:198"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-799a9d981bcbf069", "level": "note", "message": {"text": "Possibly dead Python function: scan_cb"}, "properties": {"repobilityId": "19b11a7a5d60a329", "scanner": "scanner-primary", "fingerprint": "799a9d981bcbf069", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "mmwave_ti_ros/autonomous_robotics_ros/src/turtlebot_apps/turtlebot_calibration/src/turtlebot_calibration/scan_to_angle.py:56"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-584135c073d0eea2", "level": "note", "message": {"text": "Possibly dead Python function: callback"}, "properties": {"repobilityId": "d86912f8937c65c2", "scanner": "scanner-primary", "fingerprint": "584135c073d0eea2", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "mmwave_ti_ros/autonomous_robotics_ros/src/turtlebot_apps/turtlebot_follower/scripts/switch.py:15"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-95b504d55498971d", "level": "note", "message": {"text": "Possibly dead Python function: compute_predicted_dopplers"}, "properties": {"repobilityId": "6ce1c7d3a429298c", "scanner": "scanner-primary", "fingerprint": "95b504d55498971d", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "analysis/calibrate_extrinsics.py:165"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-14467707812c6627", "level": "note", "message": {"text": "Possibly dead Python function: make_residual_fn"}, "properties": {"repobilityId": "2736d6f4eda25d18", "scanner": "scanner-primary", "fingerprint": "14467707812c6627", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "analysis/calibrate_extrinsics.py:214"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-93cc4e67358295b7", "level": "note", "message": {"text": "Possibly dead Python function: residual_fn"}, "properties": {"repobilityId": "177680090024afb3", "scanner": "scanner-primary", "fingerprint": "93cc4e67358295b7", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "analysis/calibrate_extrinsics.py:223"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-ee93b502c9afe517", "level": "note", "message": {"text": "Possibly dead Python function: validate_from_dump_obj"}, "properties": {"repobilityId": "ad06601ba0979090", "scanner": "scanner-primary", "fingerprint": "ee93b502c9afe517", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "analysis/prototype_banded_solver.py:352"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-d1848a22bd349aa1", "level": "note", "message": {"text": "Possibly dead Python function: build_cpp_solver_args"}, "properties": {"repobilityId": "7fab2dda270e8fa3", "scanner": "scanner-primary", "fingerprint": "d1848a22bd349aa1", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "analysis/dump_linear_system.py:91"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-87a360fad703e110", "level": "note", "message": {"text": "Possibly dead Python function: compute_omega_and_jacobians"}, "properties": {"repobilityId": "e53693cfb070dc53", "scanner": "scanner-primary", "fingerprint": "87a360fad703e110", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "analysis/validate_nonlinear_solver.py:102"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-3438d62911e9e48a", "level": "note", "message": {"text": "Possibly dead Python function: quaternion_multiply"}, "properties": {"repobilityId": "218998b2961ab044", "scanner": "scanner-primary", "fingerprint": "3438d62911e9e48a", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "analysis/validate_nonlinear_solver.py:132"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-77107c10f47b7eff", "level": "note", "message": {"text": "Possibly dead Python function: huber_loss"}, "properties": {"repobilityId": "4462bc6c9ffdf1f2", "scanner": "scanner-primary", "fingerprint": "77107c10f47b7eff", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "analysis/validate_nonlinear_solver.py:239"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-4056ea2c2d692b1f", "level": "note", "message": {"text": "Possibly dead Python function: compute_accelerometer_residuals_nonlinear"}, "properties": {"repobilityId": "7caa3cece316db16", "scanner": "scanner-primary", "fingerprint": "4056ea2c2d692b1f", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "analysis/validate_nonlinear_solver.py:349"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-059c4c8d5d4edc55", "level": "note", "message": {"text": "Possibly dead Python function: compute_gyroscope_residuals_nonlinear"}, "properties": {"repobilityId": "0eb8eda63443c81a", "scanner": "scanner-primary", "fingerprint": "059c4c8d5d4edc55", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "analysis/validate_nonlinear_solver.py:397"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-79338fd256be68fa", "level": "note", "message": {"text": "Possibly dead Python function: radar_residual"}, "properties": {"repobilityId": "d9610e9bbe161bc5", "scanner": "scanner-primary", "fingerprint": "79338fd256be68fa", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "analysis/codegen/derive_jacobians_symforce.py:39"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-0a35c89d4e05e6c5", "level": "warning", "message": {"text": "Dockerfile runs as root: baselines/Dockerfile"}, "properties": {"repobilityId": "ad9b0ec70f5880ec", "scanner": "scanner-primary", "fingerprint": "0a35c89d4e05e6c5", "layer": "hardware", "severity": "medium", "confidence": 1.0, "tags": ["security", "container"]}}, {"ruleId": "scanner-51e89a2d13d97316", "level": "warning", "message": {"text": "Docker base image uses a mutable or implicit tag: docker-iwr6843:latest"}, "properties": {"repobilityId": "90a196099e1f0180", "scanner": "scanner-primary", "fingerprint": "51e89a2d13d97316", "layer": "hardware", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "docker", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "baselines/Dockerfile"}, "region": {"startLine": 5}}}]}, {"ruleId": "scanner-47636e33caef255d", "level": "warning", "message": {"text": "Dockerfile runs as root: docker/Dockerfile"}, "properties": {"repobilityId": "8a345ba4198453bd", "scanner": "scanner-primary", "fingerprint": "47636e33caef255d", "layer": "hardware", "severity": "medium", "confidence": 1.0, "tags": ["security", "container"]}}, {"ruleId": "scanner-940331801673b164", "level": "note", "message": {"text": "Docker base image is tag-pinned but not digest-pinned: osrf/ros:noetic-desktop-full"}, "properties": {"repobilityId": "8807b5696a6d674e", "scanner": "scanner-primary", "fingerprint": "940331801673b164", "layer": "hardware", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "docker", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docker/Dockerfile"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-adf6c0c7e3923ba7", "level": "error", "message": {"text": "Dockerfile pipes a remote installer into a shell"}, "properties": {"repobilityId": "1a76b627696442ad", "scanner": "scanner-primary", "fingerprint": "adf6c0c7e3923ba7", "layer": "hardware", "severity": "high", "confidence": 1.0, "tags": ["supply-chain", "docker", "remote-installer"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docker/Dockerfile"}, "region": {"startLine": 16}}}]}, {"ruleId": "scanner-12bf4a555f6d4830", "level": "error", "message": {"text": "Insecure pattern 'eval_used' in CLAUDE.md:317"}, "properties": {"repobilityId": "c9592072ddaa74b7", "scanner": "scanner-primary", "fingerprint": "12bf4a555f6d4830", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "eval_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "CLAUDE.md"}, "region": {"startLine": 317}}}]}, {"ruleId": "scanner-a8b039b650bbdc79", "level": "error", "message": {"text": "Insecure pattern 'subprocess_shell_true' in mmwave_ti_ros/autonomous_robotics_ros/src/turtlebot_apps/turtlebot_calibration/src/turtlebot_calibration/calibrate.py:205"}, "properties": {"repobilityId": "03a235916190f2d8", "scanner": "scanner-primary", "fingerprint": "a8b039b650bbdc79", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "subprocess_shell_true"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "mmwave_ti_ros/autonomous_robotics_ros/src/turtlebot_apps/turtlebot_calibration/src/turtlebot_calibration/calibrate.py"}, "region": {"startLine": 205}}}]}, {"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-0c9851bf425f1508", "level": "note", "message": {"text": "Very large file: analysis/validate_live_solver.py (2846 lines)"}, "properties": {"repobilityId": "87c68c50c021b6f4", "scanner": "scanner-primary", "fingerprint": "0c9851bf425f1508", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-f752abe59a72aee0", "level": "note", "message": {"text": "Very large file: analysis/validate_nonlinear_solver.py (3396 lines)"}, "properties": {"repobilityId": "b5e51cf670fc76a8", "scanner": "scanner-primary", "fingerprint": "f752abe59a72aee0", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-ff8771ed1423070f", "level": "note", "message": {"text": "Very large file: analysis/codegen/generated_jacobians.py (3201 lines)"}, "properties": {"repobilityId": "3ee4ca5e532a77a4", "scanner": "scanner-primary", "fingerprint": "ff8771ed1423070f", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-ea3b5e389d8c9c0f", "level": "note", "message": {"text": "Low test-to-source ratio"}, "properties": {"repobilityId": "ef7b2552cc00a375", "scanner": "scanner-primary", "fingerprint": "ea3b5e389d8c9c0f", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["tests"]}}, {"ruleId": "scanner-3ab5d313dda8e5f9", "level": "note", "message": {"text": "Debug logging residue appears in source files"}, "properties": {"repobilityId": "a2de6e5314000abd", "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": "1dba52cf4f833c6e", "scanner": "scanner-primary", "fingerprint": "2d0c7b7ab8f8aacf", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["placeholder", "mock-data", "critical-flow", "generated-repo-pattern"]}}, {"ruleId": "scanner-749d4bc1bd66df5f", "level": "warning", "message": {"text": "Agent instructions exist but release-hardening basics are missing"}, "properties": {"repobilityId": "e72c6ada3fae01e9", "scanner": "scanner-primary", "fingerprint": "749d4bc1bd66df5f", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-bea357a6497a2d5d", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: CLAUDE.md"}, "properties": {"repobilityId": "aae72df3934829ac", "scanner": "scanner-primary", "fingerprint": "bea357a6497a2d5d", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "CLAUDE.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-27d24ac0786c7a00", "level": "none", "message": {"text": "Commented-code block (9 lines) in mmwave_ti_ros/autonomous_robotics_ros/src/turtlebot_apps/turtlebot_calibration/src/turtlebot_calibration/calibrate.py:12"}, "properties": {"repobilityId": "26a83aad92206c90", "scanner": "scanner-primary", "fingerprint": "27d24ac0786c7a00", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f5e8e42b6ae4b6c8", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 mmwave_ti_ros/autonomous_robotics_ros/src/turtlebot_apps/turtlebot_calibration/src/turtlebot_calibration/calibrate.py:230"}, "properties": {"repobilityId": "fecbeccf0355f53b", "scanner": "scanner-primary", "fingerprint": "f5e8e42b6ae4b6c8", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-2a1f9ad9fb01ab92", "level": "none", "message": {"text": "Commented-code block (9 lines) in mmwave_ti_ros/autonomous_robotics_ros/src/turtlebot_apps/turtlebot_calibration/src/turtlebot_calibration/scan_to_angle.py:12"}, "properties": {"repobilityId": "77a34b1118e33be9", "scanner": "scanner-primary", "fingerprint": "2a1f9ad9fb01ab92", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2f9492af3c38e1d4", "level": "none", "message": {"text": "Commented-code block (7 lines) in baselines/adapters/convert_bag_to_rio.py:101"}, "properties": {"repobilityId": "873ce409223d91c6", "scanner": "scanner-primary", "fingerprint": "2f9492af3c38e1d4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-070e36d92d280aae", "level": "none", "message": {"text": "Commented-code block (5 lines) in analysis/validate_linear_solver.py:157"}, "properties": {"repobilityId": "9bdaca7d9b99b148", "scanner": "scanner-primary", "fingerprint": "070e36d92d280aae", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-016a003280e4d401", "level": "none", "message": {"text": "Commented-code block (7 lines) in analysis/validate_live_solver.py:855"}, "properties": {"repobilityId": "4b506fe80e7d44bd", "scanner": "scanner-primary", "fingerprint": "016a003280e4d401", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9e1854907cb4446a", "level": "none", "message": {"text": "Commented-code block (9 lines) in analysis/codegen/derive_jacobians_symforce.py:851"}, "properties": {"repobilityId": "bcd72379199e4204", "scanner": "scanner-primary", "fingerprint": "9e1854907cb4446a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-27071f24f4585049", "level": "none", "message": {"text": "Commented-code block (6 lines) in analysis/adaptive_knots/v0_basis_check.py:156"}, "properties": {"repobilityId": "3227d8e009390b9e", "scanner": "scanner-primary", "fingerprint": "27071f24f4585049", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1808403fd970e118", "level": "none", "message": {"text": "Commented-code block (5 lines) in analysis/diagnostics/diagnose_doppler.py:186"}, "properties": {"repobilityId": "c48203947bc734ab", "scanner": "scanner-primary", "fingerprint": "1808403fd970e118", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0027e313ade46c8f", "level": "note", "message": {"text": "Near-duplicate function bodies in 7 places"}, "properties": {"repobilityId": "b66333685b4b8288", "scanner": "scanner-primary", "fingerprint": "0027e313ade46c8f", "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": "924b5ce72a44056c", "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": "2c2d8732fd97a708", "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": "2ffc568b22f8b2bc", "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": "996176990a55da98", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-0027e313ade46c8f", "level": "note", "message": {"text": "Near-duplicate function bodies in 7 places"}, "properties": {"repobilityId": "53d09d053855d052", "scanner": "scanner-primary", "fingerprint": "0027e313ade46c8f", "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": "c836af5d1c393c2c", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}]}]}