{"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-6889bddb13ea93c6", "name": "Possibly dead Python function: load_hld_map_json", "shortDescription": {"text": "Possibly dead Python function: load_hld_map_json"}, "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-fed49530ce0228cb", "name": "Possibly dead Python function: iter_write_block_paths", "shortDescription": {"text": "Possibly dead Python function: iter_write_block_paths"}, "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-cdcd00fc52d6f7b4", "name": "Possibly dead Python function: render_conversion_decisions", "shortDescription": {"text": "Possibly dead Python function: render_conversion_decisions"}, "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-60a844502fbab9d8", "name": "Possibly dead Python function: render_spec_build_plan", "shortDescription": {"text": "Possibly dead Python function: render_spec_build_plan"}, "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-61d89d35b52f0c1e", "name": "Possibly dead Python function: render_prework_missing", "shortDescription": {"text": "Possibly dead Python function: render_prework_missing"}, "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-b9fcb0de64036c6d", "name": "Possibly dead Python function: render_prework_rework", "shortDescription": {"text": "Possibly dead Python function: render_prework_rework"}, "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-a43d7d4795a12c3b", "name": "Possibly dead Python function: render_prework_approval", "shortDescription": {"text": "Possibly dead Python function: render_prework_approval"}, "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-c4b0f6efcbcd385b", "name": "Possibly dead Python function: status_is_blocking", "shortDescription": {"text": "Possibly dead Python function: status_is_blocking"}, "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-663b63b7b7c81135", "name": "Possibly dead Python function: command_start", "shortDescription": {"text": "Possibly dead Python function: command_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-791528e860e063af", "name": "Possibly dead Python function: command_status", "shortDescription": {"text": "Possibly dead Python function: command_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-4bc338a075c3779f", "name": "Possibly dead Python function: command_review", "shortDescription": {"text": "Possibly dead Python function: command_review"}, "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-907bf0cf0e65d4dc", "name": "Possibly dead Python function: command_diff", "shortDescription": {"text": "Possibly dead Python function: command_diff"}, "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-128016b80492ebfa", "name": "Possibly dead Python function: command_speckit_doctor", "shortDescription": {"text": "Possibly dead Python function: command_speckit_doctor"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-f96c89dac8d159a6", "name": "Possibly dead Python function: command_operator_state", "shortDescription": {"text": "Possibly dead Python function: command_operator_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-cdde0026a44288c9", "name": "Possibly dead Python function: command_git_lifecycle", "shortDescription": {"text": "Possibly dead Python function: command_git_lifecycle"}, "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-b1e21c1b2ff4b8b1", "name": "Possibly dead Python function: command_help", "shortDescription": {"text": "Possibly dead Python function: command_help"}, "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-97ed16e02162e1ca", "name": "Possibly dead Python function: candidate_map", "shortDescription": {"text": "Possibly dead Python function: candidate_map"}, "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-fc2e7dd0496020c5", "name": "Possibly dead Python function: has", "shortDescription": {"text": "Possibly dead Python function: has"}, "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-b07a9022358c81bf", "name": "Possibly dead Python function: render_manifest", "shortDescription": {"text": "Possibly dead Python function: render_manifest"}, "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-685dc737e3ef109e", "name": "Possibly dead Python function: render_queue", "shortDescription": {"text": "Possibly dead Python function: render_queue"}, "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-19018799fafe085f", "name": "Possibly dead Python function: render_constitution", "shortDescription": {"text": "Possibly dead Python function: render_constitution"}, "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-e0f02b21ab8a030c", "name": "Possibly dead Python function: render_graph", "shortDescription": {"text": "Possibly dead Python function: render_graph"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-981cd6ed1ac24a70", "name": "Possibly dead Python function: present_checkpoint", "shortDescription": {"text": "Possibly dead Python function: present_checkpoint"}, "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-ad0ec929d196485e", "name": "Possibly dead Python function: record_decision", "shortDescription": {"text": "Possibly dead Python function: record_decision"}, "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-61535fee3e769498", "name": "Possibly dead Python function: externalize_target_control_artifacts", "shortDescription": {"text": "Possibly dead Python function: externalize_target_control_artifacts"}, "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-48cb3b1b1ceb633a", "name": "Possibly dead Python function: expected_hldspec_target_paths", "shortDescription": {"text": "Possibly dead Python function: expected_hldspec_target_paths"}, "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-bfa95a47fc94b3af", "name": "Possibly dead Python function: packet_to_dict", "shortDescription": {"text": "Possibly dead Python function: packet_to_dict"}, "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-e81634998565aec9", "name": "Possibly dead Python function: build_prework_approval_record", "shortDescription": {"text": "Possibly dead Python function: build_prework_approval_record"}, "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-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-6372cebde0220094", "name": "No auth library detected", "shortDescription": {"text": "No auth library detected"}, "fullDescription": {"text": "The scanner did not find any standard auth library (JWT, OAuth, NextAuth, Auth0, etc.). The repo has auth/admin/session surface indicators, so auth may live in custom code, in a separate service, or be missing."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-4601e3ad3bb28677", "name": "No CI/CD pipelines detected", "shortDescription": {"text": "No CI/CD pipelines detected"}, "fullDescription": {"text": "No GitHub Actions, GitLab CI, or CircleCI configs found. Without CI you can't gate deploys on tests/lints."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-182bdcc47901f8a0", "name": "Very large file: hld_spec_sync.py (3034 lines)", "shortDescription": {"text": "Very large file: hld_spec_sync.py (3034 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-1f438f96f2a87aa5", "name": "Very large file: hld_spec_downstream.py (1571 lines)", "shortDescription": {"text": "Very large file: hld_spec_downstream.py (1571 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-032921cbf7988d08", "name": "Very large file: tests_v2/test_agent_first_cli_contract.py (1155 lines)", "shortDescription": {"text": "Very large file: tests_v2/test_agent_first_cli_contract.py (1155 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-a736427da7faa5cd", "name": "Very large file: scripts/hldspec_agent_session.py (1905 lines)", "shortDescription": {"text": "Very large file: scripts/hldspec_agent_session.py (1905 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-3ab5d313dda8e5f9", "name": "Debug logging residue appears in source files", "shortDescription": {"text": "Debug logging residue appears in source files"}, "fullDescription": {"text": "Found 719 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-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-140d482c5d37538d", "name": "Agent authority lacks a verifier contract: templates/orchestrator/CLAUDE.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: templates/orchestrator/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-e725d2ab884fbd49", "name": "Multiple root agent instruction files without precedence", "shortDescription": {"text": "Multiple root agent instruction files without precedence"}, "fullDescription": {"text": "The repo has multiple top-level AI-coder instruction files. Without precedence rules, different agents may follow different policies."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-0f60a73f1dc9f069", "name": "Commented-code block (5 lines) in hld_spec_sync.py:993", "shortDescription": {"text": "Commented-code block (5 lines) in hld_spec_sync.py:993"}, "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-ea419750db51a71e", "name": "Legacy-named symbol `tests_v2` in tests_v2/test_invariant_coverage_principle.py:44", "shortDescription": {"text": "Legacy-named symbol `tests_v2` in tests_v2/test_invariant_coverage_principle.py:44"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-a40faefdc5437a69", "name": "Legacy-named symbol `tests_v2` in tests_v2/test_backlog_scorecard_truth.py:19", "shortDescription": {"text": "Legacy-named symbol `tests_v2` in tests_v2/test_backlog_scorecard_truth.py:19"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-2c53560c42cc0810", "name": "Legacy-named symbol `hldspec_v2` in tests_v2/test_cli_ux_contract.py:143", "shortDescription": {"text": "Legacy-named symbol `hldspec_v2` in tests_v2/test_cli_ux_contract.py:143"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-0fbe10f750dfb84a", "name": "Legacy-named symbol `tests_v2` in tests_v2/test_hldspec_smoke_slice_e2e.py:12", "shortDescription": {"text": "Legacy-named symbol `tests_v2` in tests_v2/test_hldspec_smoke_slice_e2e.py:12"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-0bb809e05ba05505", "name": "Legacy-named symbol `tests_legacy` in tests_v2/test_todo_v2_plan.py:49", "shortDescription": {"text": "Legacy-named symbol `tests_legacy` in tests_v2/test_todo_v2_plan.py:49"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-fe860c1c691f0168", "name": "Legacy-named symbol `tests_v2` in tests_v2/test_repo_layout_readability.py:37", "shortDescription": {"text": "Legacy-named symbol `tests_v2` in tests_v2/test_repo_layout_readability.py:37"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-9b0257226512194e", "name": "Legacy-named symbol `test_compatibility_only_is_legacy` in tests_v2/test_promotion_status.py:48", "shortDescription": {"text": "Legacy-named symbol `test_compatibility_only_is_legacy` in tests_v2/test_promotion_status.py:48"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-6714fa30a9a569aa", "name": "Legacy-named symbol `hldspec_v2` in tests_v2/test_agent_first_cli_contract.py:1042", "shortDescription": {"text": "Legacy-named symbol `hldspec_v2` in tests_v2/test_agent_first_cli_contract.py:1042"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-b738c38bdc69e414", "name": "Legacy-named symbol `test_layout_default_is_legacy` in tests_v2/test_workspace_adapter.py:22", "shortDescription": {"text": "Legacy-named symbol `test_layout_default_is_legacy` in tests_v2/test_workspace_adapter.py:22"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-d3280f2cbe59d2c3", "name": "Legacy-named symbol `file_copy` in tests_v2/test_model_routing.py:26", "shortDescription": {"text": "Legacy-named symbol `file_copy` in tests_v2/test_model_routing.py:26"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-e7c4ad385efd0e98", "name": "Legacy-named symbol `test_marker_in_canonical_wins_over_legacy` in tests_v2/test_control_paths.py:80", "shortDescription": {"text": "Legacy-named symbol `test_marker_in_canonical_wins_over_legacy` in tests_v2/test_control_paths.py:80"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-e04f634852297cc4", "name": "Legacy-named symbol `tests_v2` in tests_v2/test_product_readiness_docs.py:99", "shortDescription": {"text": "Legacy-named symbol `tests_v2` in tests_v2/test_product_readiness_docs.py:99"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-5a593e1fc284d414", "name": "Legacy-named symbol `tests_v2` in tests_v2/test_architecture_layers_contract.py:169", "shortDescription": {"text": "Legacy-named symbol `tests_v2` in tests_v2/test_architecture_layers_contract.py:169"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-36579ce40b8cb2dd", "name": "Legacy-named symbol `tests_v2` in tests_v2/test_product_readiness_script.py:4", "shortDescription": {"text": "Legacy-named symbol `tests_v2` in tests_v2/test_product_readiness_script.py:4"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-d8fde1c6f85c280a", "name": "Legacy-named symbol `hldspec_v2` in scripts/speckit_drive_loop.py:6", "shortDescription": {"text": "Legacy-named symbol `hldspec_v2` in scripts/speckit_drive_loop.py:6"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-ab937cc03c6585d5", "name": "Legacy-named symbol `tests_v2` in scripts/hldspec_v2_ready_gate.py:38", "shortDescription": {"text": "Legacy-named symbol `tests_v2` in scripts/hldspec_v2_ready_gate.py:38"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-d12f83cfdde7240a", "name": "Network/subprocess call without timeout or try/except \u2014 scripts/hldspec_v2_ready_gate.py:13", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 scripts/hldspec_v2_ready_gate.py:13"}, "fullDescription": {"text": "`subprocess.run(...)` here lacks both a `timeout=` arg and an enclosing try/except. This is exactly the class of bug that took down our git-clone earlier (HTTP/2 stream cancel surfaced as a fatal). Add a `timeout=` and wrap in try/except, or use a wrapper that retries."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-5bd94829f038bfca", "name": "Legacy-named symbol `hldspec_v2` in scripts/hldspec_agent_session.py:950", "shortDescription": {"text": "Legacy-named symbol `hldspec_v2` in scripts/hldspec_agent_session.py:950"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-5d77991f37f7f107", "name": "Commented-code block (5 lines) in scripts/hldspec_agent_session.py:1114", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/hldspec_agent_session.py:1114"}, "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-b1c4a0060d99cba7", "name": "Network/subprocess call without timeout or try/except \u2014 scripts/apply_hldspec_queue_answers.py:218", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 scripts/apply_hldspec_queue_answers.py:218"}, "fullDescription": {"text": "`subprocess.run(...)` here lacks both a `timeout=` arg and an enclosing try/except. This is exactly the class of bug that took down our git-clone earlier (HTTP/2 stream cancel surfaced as a fatal). Add a `timeout=` and wrap in try/except, or use a wrapper that retries."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-885edc4fe50a1bf4", "name": "Legacy-named symbol `hldspec_v2` in scripts/hldspec_speckit_next.py:6", "shortDescription": {"text": "Legacy-named symbol `hldspec_v2` in scripts/hldspec_speckit_next.py:6"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-98c96180cca4e7c0", "name": "Legacy-named symbol `raw_copy` in scripts/build_hldspec_agent_start_prompt.py:60", "shortDescription": {"text": "Legacy-named symbol `raw_copy` in scripts/build_hldspec_agent_start_prompt.py:60"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-e4550bfc62fbe05b", "name": "Network/subprocess call without timeout or try/except \u2014 scripts/preflight_check.py:48", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 scripts/preflight_check.py:48"}, "fullDescription": {"text": "`subprocess.run(...)` here lacks both a `timeout=` arg and an enclosing try/except. This is exactly the class of bug that took down our git-clone earlier (HTTP/2 stream cancel surfaced as a fatal). Add a `timeout=` and wrap in try/except, or use a wrapper that retries."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-a3cf1838c3b2c028", "name": "Legacy-named symbol `tests_v2` in scripts/hldspec_dev_handoff.py:124", "shortDescription": {"text": "Legacy-named symbol `tests_v2` in scripts/hldspec_dev_handoff.py:124"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-865015f081b9ec75", "name": "Network/subprocess call without timeout or try/except \u2014 scripts/hldspec_dev_handoff.py:78", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 scripts/hldspec_dev_handoff.py:78"}, "fullDescription": {"text": "`subprocess.run(...)` here lacks both a `timeout=` arg and an enclosing try/except. This is exactly the class of bug that took down our git-clone earlier (HTTP/2 stream cancel surfaced as a fatal). Add a `timeout=` and wrap in try/except, or use a wrapper that retries."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-44926fbc47227ccc", "name": "Legacy-named symbol `tests_v2` in scripts/hldspec_smoke_slice_e2e.py:64", "shortDescription": {"text": "Legacy-named symbol `tests_v2` in scripts/hldspec_smoke_slice_e2e.py:64"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-bc4ffd004bccd7fe", "name": "Network/subprocess call without timeout or try/except \u2014 scripts/hldspec_smoke_slice_e2e.py:55", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 scripts/hldspec_smoke_slice_e2e.py:55"}, "fullDescription": {"text": "`subprocess.run(...)` here lacks both a `timeout=` arg and an enclosing try/except. This is exactly the class of bug that took down our git-clone earlier (HTTP/2 stream cancel surfaced as a fatal). Add a `timeout=` and wrap in try/except, or use a wrapper that retries."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-3fe3f4d3589cc968", "name": "Network/subprocess call without timeout or try/except \u2014 scripts/build_hldspec_speckit_spec_list.py:236", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 scripts/build_hldspec_speckit_spec_list.py:236"}, "fullDescription": {"text": "`subprocess.run(...)` here lacks both a `timeout=` arg and an enclosing try/except. This is exactly the class of bug that took down our git-clone earlier (HTTP/2 stream cancel surfaced as a fatal). Add a `timeout=` and wrap in try/except, or use a wrapper that retries."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-d13726527542b6c3", "name": "Legacy-named symbol `tests_v2` in scripts/hldspec_ready_gate.py:55", "shortDescription": {"text": "Legacy-named symbol `tests_v2` in scripts/hldspec_ready_gate.py:55"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-221eca840c463394", "name": "Network/subprocess call without timeout or try/except \u2014 scripts/hldspec_ready_gate.py:73", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 scripts/hldspec_ready_gate.py:73"}, "fullDescription": {"text": "`subprocess.run(...)` here lacks both a `timeout=` arg and an enclosing try/except. This is exactly the class of bug that took down our git-clone earlier (HTTP/2 stream cancel surfaced as a fatal). Add a `timeout=` and wrap in try/except, or use a wrapper that retries."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-37ba15300ecd8f09", "name": "Commented-code block (5 lines) in hldspec/speckit_drive_loop.py:33", "shortDescription": {"text": "Commented-code block (5 lines) in hldspec/speckit_drive_loop.py:33"}, "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-470137dd2121ba24", "name": "Network/subprocess call without timeout or try/except \u2014 hldspec/agent_context_handoff.py:105", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 hldspec/agent_context_handoff.py:105"}, "fullDescription": {"text": "`subprocess.run(...)` here lacks both a `timeout=` arg and an enclosing try/except. This is exactly the class of bug that took down our git-clone earlier (HTTP/2 stream cancel surfaced as a fatal). Add a `timeout=` and wrap in try/except, or use a wrapper that retries."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-b1ca401302642f2a", "name": "Commented-code block (11 lines) in hldspec/speckit_invoker.py:42", "shortDescription": {"text": "Commented-code block (11 lines) in hldspec/speckit_invoker.py:42"}, "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-8849c671ba51de35", "name": "Legacy-named symbol `raw_copy` in hldspec/source_freshness.py:82", "shortDescription": {"text": "Legacy-named symbol `raw_copy` in hldspec/source_freshness.py:82"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-8136d41dfe009b41", "name": "Commented-code block (5 lines) in hldspec/workspace_adapter.py:32", "shortDescription": {"text": "Commented-code block (5 lines) in hldspec/workspace_adapter.py:32"}, "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-37e4a123110af0d7", "name": "Legacy-named symbol `hldspec_v2` in hldspec/speckit_execution_state.py:242", "shortDescription": {"text": "Legacy-named symbol `hldspec_v2` in hldspec/speckit_execution_state.py:242"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-10954a06031453ab", "name": "Legacy-named symbol `tests_v2` in hldspec/session_control.py:236", "shortDescription": {"text": "Legacy-named symbol `tests_v2` in hldspec/session_control.py:236"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-57dc50f46b18e80f", "name": "Network/subprocess call without timeout or try/except \u2014 hldspec/command_runner.py:19", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 hldspec/command_runner.py:19"}, "fullDescription": {"text": "`subprocess.run(...)` here lacks both a `timeout=` arg and an enclosing try/except. This is exactly the class of bug that took down our git-clone earlier (HTTP/2 stream cancel surfaced as a fatal). Add a `timeout=` and wrap in try/except, or use a wrapper that retries."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-8c37cc59b1b074ad", "name": "Legacy-named symbol `file_copy` in hldspec/model_routing.py:48", "shortDescription": {"text": "Legacy-named symbol `file_copy` in hldspec/model_routing.py:48"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-fefcac41c4cb2c46", "name": "Commented-code block (5 lines) in hldspec/next_feature_readiness.py:70", "shortDescription": {"text": "Commented-code block (5 lines) in hldspec/next_feature_readiness.py:70"}, "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-9e177ad8502e1eb3", "name": "Commented-code block (10 lines) in hldspec/machines/speckit_execution.py:49", "shortDescription": {"text": "Commented-code block (10 lines) in hldspec/machines/speckit_execution.py:49"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-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:\nhld_spec_sync.py:eprint, hld_spec_downstream.py:eprint\n\nThis is *the* AI-coder failure mode (4\u00d7 more duplication in vibe-coded repos \u2014 see https://jw.hn/ai-code-hygiene). Consolidate or document why they're separate."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-49c98f7cedd9c977", "name": "Near-duplicate function bodies in 4 places", "shortDescription": {"text": "Near-duplicate function bodies in 4 places"}, "fullDescription": {"text": "Functions with the same first-5-line body hash:\nhld_spec_sync.py:build_agent_command, hld_spec_sync.py:run_agent, hld_spec_downstream.py:build_agent_command, hld_spec_downstream.py:run_agent\n\nThis is *the* AI-coder failure mode (4\u00d7 more duplication in vibe-coded repos \u2014 see https://jw.hn/ai-code-hygiene). Consolidate or document why they're separate."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-be46ea126aa5d8dc", "name": "Near-duplicate function bodies in 3 places", "shortDescription": {"text": "Near-duplicate function bodies in 3 places"}, "fullDescription": {"text": "Functions with the same first-5-line body hash:\nhld_map.py:to_dict, hld_map.py:to_dict, hld_map.py:to_dict\n\nThis is *the* AI-coder failure mode (4\u00d7 more duplication in vibe-coded repos \u2014 see https://jw.hn/ai-code-hygiene). Consolidate or document why they're separate."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-6297377883dd7783", "name": "Near-duplicate function bodies in 13 places", "shortDescription": {"text": "Near-duplicate function bodies in 13 places"}, "fullDescription": {"text": "Functions with the same first-5-line body hash:\nscripts/build_speckit_constitution_from_hld_verify.py:load_json, scripts/promote_hldspec_artifact.py:load_json, scripts/lookup_speckit_clarify_answer.py:load_json, scripts/build_speckit_product_manager_pack.py:load_json\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-33a6b62e30ce7ab4", "name": "Near-duplicate function bodies in 6 places", "shortDescription": {"text": "Near-duplicate function bodies in 6 places"}, "fullDescription": {"text": "Functions with the same first-5-line body hash:\nscripts/build_speckit_constitution_from_hld_verify.py:write_json, scripts/apply_spec_build_plan_decisions.py:write_json, scripts/build_speckit_constitution_from_contracts.py:write_json, scripts/apply_hldspec_queue_answers.py:write_json\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/18731"}, "properties": {"repository": "saffih/HLDspec", "repoUrl": "https://github.com/saffih/HLDspec", "branch": "main"}, "results": [{"ruleId": "scanner-6889bddb13ea93c6", "level": "note", "message": {"text": "Possibly dead Python function: load_hld_map_json"}, "properties": {"repobilityId": "009a233928a5b818", "scanner": "scanner-primary", "fingerprint": "6889bddb13ea93c6", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "hld_map.py:334"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-fed49530ce0228cb", "level": "note", "message": {"text": "Possibly dead Python function: iter_write_block_paths"}, "properties": {"repobilityId": "c48c098b88da81dd", "scanner": "scanner-primary", "fingerprint": "fed49530ce0228cb", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "hld_spec_downstream.py:718"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-cdcd00fc52d6f7b4", "level": "note", "message": {"text": "Possibly dead Python function: render_conversion_decisions"}, "properties": {"repobilityId": "778473c516a3baa4", "scanner": "scanner-primary", "fingerprint": "cdcd00fc52d6f7b4", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/render_hldspec_checkpoint.py:32"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-60a844502fbab9d8", "level": "note", "message": {"text": "Possibly dead Python function: render_spec_build_plan"}, "properties": {"repobilityId": "d77da9af1a610bf0", "scanner": "scanner-primary", "fingerprint": "60a844502fbab9d8", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/render_hldspec_checkpoint.py:125"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-61d89d35b52f0c1e", "level": "note", "message": {"text": "Possibly dead Python function: render_prework_missing"}, "properties": {"repobilityId": "0be223ab0f27e834", "scanner": "scanner-primary", "fingerprint": "61d89d35b52f0c1e", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/render_hldspec_checkpoint.py:168"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-b9fcb0de64036c6d", "level": "note", "message": {"text": "Possibly dead Python function: render_prework_rework"}, "properties": {"repobilityId": "8b928b7ebdb99d14", "scanner": "scanner-primary", "fingerprint": "b9fcb0de64036c6d", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/render_hldspec_checkpoint.py:190"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-a43d7d4795a12c3b", "level": "note", "message": {"text": "Possibly dead Python function: render_prework_approval"}, "properties": {"repobilityId": "96e304fb345c4f91", "scanner": "scanner-primary", "fingerprint": "a43d7d4795a12c3b", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/render_hldspec_checkpoint.py:229"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-c4b0f6efcbcd385b", "level": "note", "message": {"text": "Possibly dead Python function: status_is_blocking"}, "properties": {"repobilityId": "5b1ff642a0d5d4fa", "scanner": "scanner-primary", "fingerprint": "c4b0f6efcbcd385b", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/hldspec_agent_session.py:72"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-663b63b7b7c81135", "level": "note", "message": {"text": "Possibly dead Python function: command_start"}, "properties": {"repobilityId": "447038b100ca57e2", "scanner": "scanner-primary", "fingerprint": "663b63b7b7c81135", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/hldspec_agent_session.py:975"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-791528e860e063af", "level": "note", "message": {"text": "Possibly dead Python function: command_status"}, "properties": {"repobilityId": "9cdcd4f9aeb78962", "scanner": "scanner-primary", "fingerprint": "791528e860e063af", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/hldspec_agent_session.py:1199"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-4bc338a075c3779f", "level": "note", "message": {"text": "Possibly dead Python function: command_review"}, "properties": {"repobilityId": "861063a5c1c82f77", "scanner": "scanner-primary", "fingerprint": "4bc338a075c3779f", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/hldspec_agent_session.py:1294"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-907bf0cf0e65d4dc", "level": "note", "message": {"text": "Possibly dead Python function: command_diff"}, "properties": {"repobilityId": "3a55e62302463461", "scanner": "scanner-primary", "fingerprint": "907bf0cf0e65d4dc", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/hldspec_agent_session.py:1416"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-128016b80492ebfa", "level": "note", "message": {"text": "Possibly dead Python function: command_speckit_doctor"}, "properties": {"repobilityId": "50c0f04b475566f5", "scanner": "scanner-primary", "fingerprint": "128016b80492ebfa", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/hldspec_agent_session.py:1673"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-f96c89dac8d159a6", "level": "note", "message": {"text": "Possibly dead Python function: command_operator_state"}, "properties": {"repobilityId": "882f63d98a3ab13a", "scanner": "scanner-primary", "fingerprint": "f96c89dac8d159a6", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/hldspec_agent_session.py:1680"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-cdde0026a44288c9", "level": "note", "message": {"text": "Possibly dead Python function: command_git_lifecycle"}, "properties": {"repobilityId": "320a0195e24f9247", "scanner": "scanner-primary", "fingerprint": "cdde0026a44288c9", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/hldspec_agent_session.py:1687"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-b1e21c1b2ff4b8b1", "level": "note", "message": {"text": "Possibly dead Python function: command_help"}, "properties": {"repobilityId": "44c1a0403fac7984", "scanner": "scanner-primary", "fingerprint": "b1e21c1b2ff4b8b1", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/hldspec_agent_session.py:1808"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-97ed16e02162e1ca", "level": "note", "message": {"text": "Possibly dead Python function: candidate_map"}, "properties": {"repobilityId": "1d29df4d26c29417", "scanner": "scanner-primary", "fingerprint": "97ed16e02162e1ca", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/apply_hld_conversion_decisions.py:52"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-fc2e7dd0496020c5", "level": "note", "message": {"text": "Possibly dead Python function: has"}, "properties": {"repobilityId": "a4a0bbbabe6e2b93", "scanner": "scanner-primary", "fingerprint": "fc2e7dd0496020c5", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/run_skeptic_meta_review.py:37"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-b07a9022358c81bf", "level": "note", "message": {"text": "Possibly dead Python function: render_manifest"}, "properties": {"repobilityId": "cfe420ca1814e774", "scanner": "scanner-primary", "fingerprint": "b07a9022358c81bf", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/build_speckit_prework_plan.py:435"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-685dc737e3ef109e", "level": "note", "message": {"text": "Possibly dead Python function: render_queue"}, "properties": {"repobilityId": "9bc08a4b9d6830e9", "scanner": "scanner-primary", "fingerprint": "685dc737e3ef109e", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/build_speckit_prework_plan.py:475"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-19018799fafe085f", "level": "note", "message": {"text": "Possibly dead Python function: render_constitution"}, "properties": {"repobilityId": "78223866af299f09", "scanner": "scanner-primary", "fingerprint": "19018799fafe085f", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/build_speckit_prework_plan.py:509"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-e0f02b21ab8a030c", "level": "note", "message": {"text": "Possibly dead Python function: render_graph"}, "properties": {"repobilityId": "d2f2ed3427cbbfe1", "scanner": "scanner-primary", "fingerprint": "e0f02b21ab8a030c", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/build_speckit_prework_plan.py:543"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-981cd6ed1ac24a70", "level": "note", "message": {"text": "Possibly dead Python function: present_checkpoint"}, "properties": {"repobilityId": "9b7c884945da674e", "scanner": "scanner-primary", "fingerprint": "981cd6ed1ac24a70", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "hldspec/ports.py:8"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-ad0ec929d196485e", "level": "note", "message": {"text": "Possibly dead Python function: record_decision"}, "properties": {"repobilityId": "073b468027a6dda6", "scanner": "scanner-primary", "fingerprint": "ad0ec929d196485e", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "hldspec/ports.py:11"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-61535fee3e769498", "level": "note", "message": {"text": "Possibly dead Python function: externalize_target_control_artifacts"}, "properties": {"repobilityId": "13812c8ed9ad8afc", "scanner": "scanner-primary", "fingerprint": "61535fee3e769498", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "hldspec/run_state.py:185"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-48cb3b1b1ceb633a", "level": "note", "message": {"text": "Possibly dead Python function: expected_hldspec_target_paths"}, "properties": {"repobilityId": "bc22797a42a50fba", "scanner": "scanner-primary", "fingerprint": "48cb3b1b1ceb633a", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "hldspec/run_state.py:200"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-bfa95a47fc94b3af", "level": "note", "message": {"text": "Possibly dead Python function: packet_to_dict"}, "properties": {"repobilityId": "24d3653143230882", "scanner": "scanner-primary", "fingerprint": "bfa95a47fc94b3af", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "hldspec/session_control.py:701"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-e81634998565aec9", "level": "note", "message": {"text": "Possibly dead Python function: build_prework_approval_record"}, "properties": {"repobilityId": "bef45ff18795b8f1", "scanner": "scanner-primary", "fingerprint": "e81634998565aec9", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "hldspec/prework_approval.py:33"}, "region": {"startLine": 1}}}]}, {"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-6372cebde0220094", "level": "warning", "message": {"text": "No auth library detected"}, "properties": {"repobilityId": "a5b6035a5bbf8054", "scanner": "scanner-primary", "fingerprint": "6372cebde0220094", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["coverage", "auth"]}}, {"ruleId": "scanner-4601e3ad3bb28677", "level": "warning", "message": {"text": "No CI/CD pipelines detected"}, "properties": {"repobilityId": "c3ee439bce2bc51e", "scanner": "scanner-primary", "fingerprint": "4601e3ad3bb28677", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["coverage"]}}, {"ruleId": "scanner-182bdcc47901f8a0", "level": "note", "message": {"text": "Very large file: hld_spec_sync.py (3034 lines)"}, "properties": {"repobilityId": "697e3dfa0c0b9814", "scanner": "scanner-primary", "fingerprint": "182bdcc47901f8a0", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-1f438f96f2a87aa5", "level": "note", "message": {"text": "Very large file: hld_spec_downstream.py (1571 lines)"}, "properties": {"repobilityId": "8338e05c15da1286", "scanner": "scanner-primary", "fingerprint": "1f438f96f2a87aa5", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-032921cbf7988d08", "level": "note", "message": {"text": "Very large file: tests_v2/test_agent_first_cli_contract.py (1155 lines)"}, "properties": {"repobilityId": "275c04b8866bd2a2", "scanner": "scanner-primary", "fingerprint": "032921cbf7988d08", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-a736427da7faa5cd", "level": "note", "message": {"text": "Very large file: scripts/hldspec_agent_session.py (1905 lines)"}, "properties": {"repobilityId": "11e200e1e9e4d73c", "scanner": "scanner-primary", "fingerprint": "a736427da7faa5cd", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-3ab5d313dda8e5f9", "level": "note", "message": {"text": "Debug logging residue appears in source files"}, "properties": {"repobilityId": "881939b1a9d13786", "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": "c2af42e614f67f6b", "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": "2206a2d9f3560d40", "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": "9c0fe84fd93d3c78", "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": "9090499b684b2495", "scanner": "scanner-primary", "fingerprint": "8424db9c75e04ba4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["provenance", "git-history", "generated-repo-pattern"]}}, {"ruleId": "scanner-140d482c5d37538d", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: templates/orchestrator/CLAUDE.md"}, "properties": {"repobilityId": "46c9905468fc0625", "scanner": "scanner-primary", "fingerprint": "140d482c5d37538d", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "templates/orchestrator/CLAUDE.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-e725d2ab884fbd49", "level": "note", "message": {"text": "Multiple root agent instruction files without precedence"}, "properties": {"repobilityId": "1953db6c89508d22", "scanner": "scanner-primary", "fingerprint": "e725d2ab884fbd49", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["agent-instructions", "governance"]}}, {"ruleId": "scanner-0f60a73f1dc9f069", "level": "none", "message": {"text": "Commented-code block (5 lines) in hld_spec_sync.py:993"}, "properties": {"repobilityId": "843e1a16268ae161", "scanner": "scanner-primary", "fingerprint": "0f60a73f1dc9f069", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ea419750db51a71e", "level": "note", "message": {"text": "Legacy-named symbol `tests_v2` in tests_v2/test_invariant_coverage_principle.py:44"}, "properties": {"repobilityId": "cfff7c4e28c15390", "scanner": "scanner-primary", "fingerprint": "ea419750db51a71e", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-a40faefdc5437a69", "level": "note", "message": {"text": "Legacy-named symbol `tests_v2` in tests_v2/test_backlog_scorecard_truth.py:19"}, "properties": {"repobilityId": "23bb8abcb607bb63", "scanner": "scanner-primary", "fingerprint": "a40faefdc5437a69", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-2c53560c42cc0810", "level": "note", "message": {"text": "Legacy-named symbol `hldspec_v2` in tests_v2/test_cli_ux_contract.py:143"}, "properties": {"repobilityId": "44ae1de52c9f0b4e", "scanner": "scanner-primary", "fingerprint": "2c53560c42cc0810", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-0fbe10f750dfb84a", "level": "note", "message": {"text": "Legacy-named symbol `tests_v2` in tests_v2/test_hldspec_smoke_slice_e2e.py:12"}, "properties": {"repobilityId": "8587dd96e64e817a", "scanner": "scanner-primary", "fingerprint": "0fbe10f750dfb84a", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-0bb809e05ba05505", "level": "note", "message": {"text": "Legacy-named symbol `tests_legacy` in tests_v2/test_todo_v2_plan.py:49"}, "properties": {"repobilityId": "de896a86287aaace", "scanner": "scanner-primary", "fingerprint": "0bb809e05ba05505", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-fe860c1c691f0168", "level": "note", "message": {"text": "Legacy-named symbol `tests_v2` in tests_v2/test_repo_layout_readability.py:37"}, "properties": {"repobilityId": "2b84c8686fb44c64", "scanner": "scanner-primary", "fingerprint": "fe860c1c691f0168", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-9b0257226512194e", "level": "note", "message": {"text": "Legacy-named symbol `test_compatibility_only_is_legacy` in tests_v2/test_promotion_status.py:48"}, "properties": {"repobilityId": "242ad343e3b04201", "scanner": "scanner-primary", "fingerprint": "9b0257226512194e", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-6714fa30a9a569aa", "level": "note", "message": {"text": "Legacy-named symbol `hldspec_v2` in tests_v2/test_agent_first_cli_contract.py:1042"}, "properties": {"repobilityId": "c48e9d9d63429451", "scanner": "scanner-primary", "fingerprint": "6714fa30a9a569aa", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-b738c38bdc69e414", "level": "note", "message": {"text": "Legacy-named symbol `test_layout_default_is_legacy` in tests_v2/test_workspace_adapter.py:22"}, "properties": {"repobilityId": "192606f4ea9d86f3", "scanner": "scanner-primary", "fingerprint": "b738c38bdc69e414", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-d3280f2cbe59d2c3", "level": "note", "message": {"text": "Legacy-named symbol `file_copy` in tests_v2/test_model_routing.py:26"}, "properties": {"repobilityId": "423a486e9c41439a", "scanner": "scanner-primary", "fingerprint": "d3280f2cbe59d2c3", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-e7c4ad385efd0e98", "level": "note", "message": {"text": "Legacy-named symbol `test_marker_in_canonical_wins_over_legacy` in tests_v2/test_control_paths.py:80"}, "properties": {"repobilityId": "a58d11612588bae0", "scanner": "scanner-primary", "fingerprint": "e7c4ad385efd0e98", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-e04f634852297cc4", "level": "note", "message": {"text": "Legacy-named symbol `tests_v2` in tests_v2/test_product_readiness_docs.py:99"}, "properties": {"repobilityId": "4032b9cc04e1fad6", "scanner": "scanner-primary", "fingerprint": "e04f634852297cc4", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-5a593e1fc284d414", "level": "note", "message": {"text": "Legacy-named symbol `tests_v2` in tests_v2/test_architecture_layers_contract.py:169"}, "properties": {"repobilityId": "00d1740d563f41e9", "scanner": "scanner-primary", "fingerprint": "5a593e1fc284d414", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-36579ce40b8cb2dd", "level": "note", "message": {"text": "Legacy-named symbol `tests_v2` in tests_v2/test_product_readiness_script.py:4"}, "properties": {"repobilityId": "c1916691722cdf14", "scanner": "scanner-primary", "fingerprint": "36579ce40b8cb2dd", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-d8fde1c6f85c280a", "level": "note", "message": {"text": "Legacy-named symbol `hldspec_v2` in scripts/speckit_drive_loop.py:6"}, "properties": {"repobilityId": "e511cf093371fa51", "scanner": "scanner-primary", "fingerprint": "d8fde1c6f85c280a", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-ab937cc03c6585d5", "level": "note", "message": {"text": "Legacy-named symbol `tests_v2` in scripts/hldspec_v2_ready_gate.py:38"}, "properties": {"repobilityId": "c164fb362559ace7", "scanner": "scanner-primary", "fingerprint": "ab937cc03c6585d5", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-d12f83cfdde7240a", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 scripts/hldspec_v2_ready_gate.py:13"}, "properties": {"repobilityId": "df0521677274a850", "scanner": "scanner-primary", "fingerprint": "d12f83cfdde7240a", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-5bd94829f038bfca", "level": "note", "message": {"text": "Legacy-named symbol `hldspec_v2` in scripts/hldspec_agent_session.py:950"}, "properties": {"repobilityId": "574f999faed552a6", "scanner": "scanner-primary", "fingerprint": "5bd94829f038bfca", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-5d77991f37f7f107", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/hldspec_agent_session.py:1114"}, "properties": {"repobilityId": "24bdaf5badab2e7c", "scanner": "scanner-primary", "fingerprint": "5d77991f37f7f107", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b1c4a0060d99cba7", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 scripts/apply_hldspec_queue_answers.py:218"}, "properties": {"repobilityId": "5880be3b1af800f6", "scanner": "scanner-primary", "fingerprint": "b1c4a0060d99cba7", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-885edc4fe50a1bf4", "level": "note", "message": {"text": "Legacy-named symbol `hldspec_v2` in scripts/hldspec_speckit_next.py:6"}, "properties": {"repobilityId": "8fbc871f6ddd3a3c", "scanner": "scanner-primary", "fingerprint": "885edc4fe50a1bf4", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-98c96180cca4e7c0", "level": "note", "message": {"text": "Legacy-named symbol `raw_copy` in scripts/build_hldspec_agent_start_prompt.py:60"}, "properties": {"repobilityId": "1043c2247e4988c9", "scanner": "scanner-primary", "fingerprint": "98c96180cca4e7c0", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-e4550bfc62fbe05b", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 scripts/preflight_check.py:48"}, "properties": {"repobilityId": "7fa06673fc2cd7f1", "scanner": "scanner-primary", "fingerprint": "e4550bfc62fbe05b", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-a3cf1838c3b2c028", "level": "note", "message": {"text": "Legacy-named symbol `tests_v2` in scripts/hldspec_dev_handoff.py:124"}, "properties": {"repobilityId": "f1e0ef655688f211", "scanner": "scanner-primary", "fingerprint": "a3cf1838c3b2c028", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-865015f081b9ec75", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 scripts/hldspec_dev_handoff.py:78"}, "properties": {"repobilityId": "0cf3bdc161683a00", "scanner": "scanner-primary", "fingerprint": "865015f081b9ec75", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-44926fbc47227ccc", "level": "note", "message": {"text": "Legacy-named symbol `tests_v2` in scripts/hldspec_smoke_slice_e2e.py:64"}, "properties": {"repobilityId": "76a42b8072076a2f", "scanner": "scanner-primary", "fingerprint": "44926fbc47227ccc", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-bc4ffd004bccd7fe", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 scripts/hldspec_smoke_slice_e2e.py:55"}, "properties": {"repobilityId": "0a5ab468774c5072", "scanner": "scanner-primary", "fingerprint": "bc4ffd004bccd7fe", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-3fe3f4d3589cc968", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 scripts/build_hldspec_speckit_spec_list.py:236"}, "properties": {"repobilityId": "f473bd2168c17118", "scanner": "scanner-primary", "fingerprint": "3fe3f4d3589cc968", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-d13726527542b6c3", "level": "note", "message": {"text": "Legacy-named symbol `tests_v2` in scripts/hldspec_ready_gate.py:55"}, "properties": {"repobilityId": "feb9af099aa71f88", "scanner": "scanner-primary", "fingerprint": "d13726527542b6c3", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-221eca840c463394", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 scripts/hldspec_ready_gate.py:73"}, "properties": {"repobilityId": "dfa3dccf496c6d40", "scanner": "scanner-primary", "fingerprint": "221eca840c463394", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-37ba15300ecd8f09", "level": "none", "message": {"text": "Commented-code block (5 lines) in hldspec/speckit_drive_loop.py:33"}, "properties": {"repobilityId": "4ef15acf97affe6e", "scanner": "scanner-primary", "fingerprint": "37ba15300ecd8f09", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-470137dd2121ba24", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 hldspec/agent_context_handoff.py:105"}, "properties": {"repobilityId": "4bcb565de182dccd", "scanner": "scanner-primary", "fingerprint": "470137dd2121ba24", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-b1ca401302642f2a", "level": "none", "message": {"text": "Commented-code block (11 lines) in hldspec/speckit_invoker.py:42"}, "properties": {"repobilityId": "b1c2b2be4d55d74f", "scanner": "scanner-primary", "fingerprint": "b1ca401302642f2a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8849c671ba51de35", "level": "note", "message": {"text": "Legacy-named symbol `raw_copy` in hldspec/source_freshness.py:82"}, "properties": {"repobilityId": "075940d6ec082dbe", "scanner": "scanner-primary", "fingerprint": "8849c671ba51de35", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-8136d41dfe009b41", "level": "none", "message": {"text": "Commented-code block (5 lines) in hldspec/workspace_adapter.py:32"}, "properties": {"repobilityId": "c20c49626fb1ceb9", "scanner": "scanner-primary", "fingerprint": "8136d41dfe009b41", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-37e4a123110af0d7", "level": "note", "message": {"text": "Legacy-named symbol `hldspec_v2` in hldspec/speckit_execution_state.py:242"}, "properties": {"repobilityId": "2d2b1a1b1d938858", "scanner": "scanner-primary", "fingerprint": "37e4a123110af0d7", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-10954a06031453ab", "level": "note", "message": {"text": "Legacy-named symbol `tests_v2` in hldspec/session_control.py:236"}, "properties": {"repobilityId": "73fadf24d7d8d2bc", "scanner": "scanner-primary", "fingerprint": "10954a06031453ab", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-57dc50f46b18e80f", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 hldspec/command_runner.py:19"}, "properties": {"repobilityId": "ca5570317ea48869", "scanner": "scanner-primary", "fingerprint": "57dc50f46b18e80f", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-8c37cc59b1b074ad", "level": "note", "message": {"text": "Legacy-named symbol `file_copy` in hldspec/model_routing.py:48"}, "properties": {"repobilityId": "a86ad4df64253135", "scanner": "scanner-primary", "fingerprint": "8c37cc59b1b074ad", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-fefcac41c4cb2c46", "level": "none", "message": {"text": "Commented-code block (5 lines) in hldspec/next_feature_readiness.py:70"}, "properties": {"repobilityId": "5056f43f7ae40b68", "scanner": "scanner-primary", "fingerprint": "fefcac41c4cb2c46", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9e177ad8502e1eb3", "level": "none", "message": {"text": "Commented-code block (10 lines) in hldspec/machines/speckit_execution.py:49"}, "properties": {"repobilityId": "e4472417239efcb9", "scanner": "scanner-primary", "fingerprint": "9e177ad8502e1eb3", "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": "f140d193104c5cc2", "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": "5371f0842ac62ae4", "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": "90af0eacdc129438", "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": "a8ae96fa2950dd10", "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": "b5b07c0e5c1c058c", "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": "ebbc54bb4337b41b", "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": "bef93a53e81cc737", "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": "8e8feef9f1837076", "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": "cff91595cf68343f", "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": "44a5f38181bce592", "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": "fa11a54db3238a24", "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": "2f64bb28011d8514", "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": "d67ccf10de063462", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-49c98f7cedd9c977", "level": "note", "message": {"text": "Near-duplicate function bodies in 4 places"}, "properties": {"repobilityId": "c036ea7650924bd7", "scanner": "scanner-primary", "fingerprint": "49c98f7cedd9c977", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "6f493bd6d039e8d6", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-be46ea126aa5d8dc", "level": "note", "message": {"text": "Near-duplicate function bodies in 3 places"}, "properties": {"repobilityId": "0cbae68ee0bf73fa", "scanner": "scanner-primary", "fingerprint": "be46ea126aa5d8dc", "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": "7499c0558646e282", "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": "d0fceb18309897e5", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-6297377883dd7783", "level": "note", "message": {"text": "Near-duplicate function bodies in 13 places"}, "properties": {"repobilityId": "dddd1c92dbddf1f6", "scanner": "scanner-primary", "fingerprint": "6297377883dd7783", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-33a6b62e30ce7ab4", "level": "note", "message": {"text": "Near-duplicate function bodies in 6 places"}, "properties": {"repobilityId": "a68d76abcd04fece", "scanner": "scanner-primary", "fingerprint": "33a6b62e30ce7ab4", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}]}]}