{"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-c909ed361f8f3c27", "name": "Possibly dead Python function: check_setreport_store", "shortDescription": {"text": "Possibly dead Python function: check_setreport_store"}, "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-d1a5440b9eb6c3f0", "name": "Possibly dead Python function: check_loi_refuses_without_opp", "shortDescription": {"text": "Possibly dead Python function: check_loi_refuses_without_opp"}, "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-8bb26c1479d3448b", "name": "Possibly dead Python function: check_loi_refuses_without_url", "shortDescription": {"text": "Possibly dead Python function: check_loi_refuses_without_url"}, "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-ef86404d213ef5d6", "name": "Possibly dead Python function: check_loi_refuses_without_close_date", "shortDescription": {"text": "Possibly dead Python function: check_loi_refuses_without_close_date"}, "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-78b25c328103a5a0", "name": "Possibly dead Python function: check_loi_passes_when_all_present", "shortDescription": {"text": "Possibly dead Python function: check_loi_passes_when_all_present"}, "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-55602448f1e60221", "name": "Possibly dead Python function: check_mcp_lists_load_bearing_tools", "shortDescription": {"text": "Possibly dead Python function: check_mcp_lists_load_bearing_tools"}, "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-cfcdc6bcbca5174f", "name": "Possibly dead Python function: check_mcp_find_grants_verbatim", "shortDescription": {"text": "Possibly dead Python function: check_mcp_find_grants_verbatim"}, "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-93ff79202d66508d", "name": "Possibly dead Python function: check_rerank_reason_present", "shortDescription": {"text": "Possibly dead Python function: check_rerank_reason_present"}, "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-12e396f97f5269cd", "name": "Possibly dead Python function: check_receipt_structure_and_offline_verify", "shortDescription": {"text": "Possibly dead Python function: check_receipt_structure_and_offline_verify"}, "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-731868bcf96a0817", "name": "Possibly dead Python function: check_receipt_detects_tampering", "shortDescription": {"text": "Possibly dead Python function: check_receipt_detects_tampering"}, "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-0cb30715d92e8ccb", "name": "Possibly dead Python function: check_receipt_anchored_in_live_grants_gov", "shortDescription": {"text": "Possibly dead Python function: check_receipt_anchored_in_live_grants_gov"}, "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-8d36e6f791416930", "name": "Possibly dead Python function: check_ask_grounded_or_refuses", "shortDescription": {"text": "Possibly dead Python function: check_ask_grounded_or_refuses"}, "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-46ae30883bfd4ac1", "name": "Possibly dead Python function: check_find_training_rejects_empty_keyword", "shortDescription": {"text": "Possibly dead Python function: check_find_training_rejects_empty_keyword"}, "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-75aec3e8f9bb7637", "name": "Possibly dead Python function: check_find_training_returns_real_programs", "shortDescription": {"text": "Possibly dead Python function: check_find_training_returns_real_programs"}, "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-2cacbd41a79014ae", "name": "Possibly dead Python function: check_pathway_rejects_empty_goal", "shortDescription": {"text": "Possibly dead Python function: check_pathway_rejects_empty_goal"}, "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-87b64ab5825536b4", "name": "Possibly dead Python function: check_pathway_composes_occupation_and_training", "shortDescription": {"text": "Possibly dead Python function: check_pathway_composes_occupation_and_training"}, "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-e429b5f8ad194767", "name": "Possibly dead Python function: check_pathway_receipt_offline_roundtrip", "shortDescription": {"text": "Possibly dead Python function: check_pathway_receipt_offline_roundtrip"}, "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-87e424559d2d0412", "name": "Possibly dead Python function: check_pathway_receipt_detects_tampering", "shortDescription": {"text": "Possibly dead Python function: check_pathway_receipt_detects_tampering"}, "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-6587d9fa05d0c771", "name": "Possibly dead Python function: check_pathway_receipt_anchored_in_live_careeronestop", "shortDescription": {"text": "Possibly dead Python function: check_pathway_receipt_anchored_in_live_careeronestop"}, "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-821b668ee4c01e42", "name": "Possibly dead Python function: check_pathway_plan_refuses_when_program_unnamed", "shortDescription": {"text": "Possibly dead Python function: check_pathway_plan_refuses_when_program_unnamed"}, "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-4ff89d880a0d7d91", "name": "Possibly dead Python function: check_receipt_types_not_confused", "shortDescription": {"text": "Possibly dead Python function: check_receipt_types_not_confused"}, "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-aaf9f95d615152f9", "name": "Possibly dead Python function: check_loi_receipt_verifies_without_close_date", "shortDescription": {"text": "Possibly dead Python function: check_loi_receipt_verifies_without_close_date"}, "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-8fbb30dfb4610516", "name": "Possibly dead Python function: check_verify_pathway_cli_exists_and_runs", "shortDescription": {"text": "Possibly dead Python function: check_verify_pathway_cli_exists_and_runs"}, "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-92ff3f8788b76d21", "name": "Possibly dead Python function: mcp_find_training", "shortDescription": {"text": "Possibly dead Python function: mcp_find_training"}, "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-770ad1bbc3f63141", "name": "Possibly dead Python function: mcp_build_pathway", "shortDescription": {"text": "Possibly dead Python function: mcp_build_pathway"}, "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-4f4f22466bc64bdb", "name": "Possibly dead Python function: mcp_draft_pathway_plan", "shortDescription": {"text": "Possibly dead Python function: mcp_draft_pathway_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-e7c2d8ce48c42f10", "name": "Possibly dead Python function: cmd_find_grants", "shortDescription": {"text": "Possibly dead Python function: cmd_find_grants"}, "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-648ab97dbf802f57", "name": "Possibly dead Python function: cmd_ask", "shortDescription": {"text": "Possibly dead Python function: cmd_ask"}, "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-f925cf85be482932", "name": "Possibly dead Python function: cmd_learn", "shortDescription": {"text": "Possibly dead Python function: cmd_learn"}, "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-eccf26b01256fee1", "name": "Insecure pattern 'direct_innerhtml_assignment' in demo/intro.html:15", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in demo/intro.html:15"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-e72c0293b9ab7333", "name": "Insecure pattern 'direct_innerhtml_assignment' in demo/build_bookends.py:25", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in demo/build_bookends.py:25"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-6ff37e3a25c12bab", "name": "Insecure pattern 'direct_innerhtml_assignment' in demo/player.html:89", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in demo/player.html:89"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-68775470792645e3", "name": "Insecure pattern 'direct_innerhtml_assignment' in demo/outro.html:15", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in demo/outro.html:15"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-f9ee5f8f29ad1ec0", "name": "Insecure pattern 'direct_innerhtml_assignment' in demo/build_player.py:116", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in demo/build_player.py:116"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-141b30a41e03817b", "name": "No license file detected", "shortDescription": {"text": "No license file detected"}, "fullDescription": {"text": "No LICENSE/COPYING/NOTICE file was found. Generated repositories often omit licensing, which blocks reuse and automated intake."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-3ab5d313dda8e5f9", "name": "Debug logging residue appears in source files", "shortDescription": {"text": "Debug logging residue appears in source files"}, "fullDescription": {"text": "Found 103 console/debugger/print-style debug statements in non-test source. This is a common fast-generation residue before production cleanup."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-72b2a6250083a784", "name": "Placeholder or mock-heavy implementation detected", "shortDescription": {"text": "Placeholder or mock-heavy implementation detected"}, "fullDescription": {"text": "Found 13 placeholder/mock markers across 4 source files. This often means the repo looks complete while core flows still use generated scaffolding or fake data."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-2d0c7b7ab8f8aacf", "name": "Critical user flow still appears backed by mock or placeholder data", "shortDescription": {"text": "Critical user flow still appears backed by mock or placeholder data"}, "fullDescription": {"text": "A payment/auth/admin/order/billing-style flow contains mock, fake, TODO, dummy, or placeholder markers in runtime source. In the Fable corpus this is a high-leverage completeness smell: the app can look finished while the money, identity, or tenant flow is still scaffolded."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-b9088664ace7f748", "name": "Composite production-readiness gap", "shortDescription": {"text": "Composite production-readiness gap"}, "fullDescription": {"text": "Multiple low-cost hardening controls are missing together: license, ci. Opus verification showed these co-occurring gaps are a better readiness signal than reading each flag in isolation."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-d6dcfe22d4a0b5bf", "name": "Commented-code block (5 lines) in training_api.py:79", "shortDescription": {"text": "Commented-code block (5 lines) in training_api.py:79"}, "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-319e66a630e14977", "name": "2 env vars used in code but missing from .env.example", "shortDescription": {"text": "2 env vars used in code but missing from .env.example"}, "fullDescription": {"text": "Drift between code and config docs. The first few: `FASTMCP_PORT`, `GRANTSCRIBE_MCP_URL`. Add them (with a placeholder/comment) to .env.example so onboarding doesn't break."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}]}}, "automationDetails": {"id": "repobility/24056"}, "properties": {"repository": "Alexander-Sorrell-IT/grantscribe", "repoUrl": "https://github.com/Alexander-Sorrell-IT/grantscribe", "branch": "main"}, "results": [{"ruleId": "scanner-c909ed361f8f3c27", "level": "note", "message": {"text": "Possibly dead Python function: check_setreport_store"}, "properties": {"repobilityId": "190292c0c9610959", "scanner": "scanner-primary", "fingerprint": "c909ed361f8f3c27", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "verify.py:130"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-d1a5440b9eb6c3f0", "level": "note", "message": {"text": "Possibly dead Python function: check_loi_refuses_without_opp"}, "properties": {"repobilityId": "8fa0a39a65b470d9", "scanner": "scanner-primary", "fingerprint": "d1a5440b9eb6c3f0", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "verify.py:154"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-8bb26c1479d3448b", "level": "note", "message": {"text": "Possibly dead Python function: check_loi_refuses_without_url"}, "properties": {"repobilityId": "812de1d8b46e1ef3", "scanner": "scanner-primary", "fingerprint": "8bb26c1479d3448b", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "verify.py:186"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-ef86404d213ef5d6", "level": "note", "message": {"text": "Possibly dead Python function: check_loi_refuses_without_close_date"}, "properties": {"repobilityId": "bd095fa6daf4ecf6", "scanner": "scanner-primary", "fingerprint": "ef86404d213ef5d6", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "verify.py:206"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-78b25c328103a5a0", "level": "note", "message": {"text": "Possibly dead Python function: check_loi_passes_when_all_present"}, "properties": {"repobilityId": "20ee164b47759d33", "scanner": "scanner-primary", "fingerprint": "78b25c328103a5a0", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "verify.py:229"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-55602448f1e60221", "level": "note", "message": {"text": "Possibly dead Python function: check_mcp_lists_load_bearing_tools"}, "properties": {"repobilityId": "03418a853438ac7a", "scanner": "scanner-primary", "fingerprint": "55602448f1e60221", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "verify.py:252"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-cfcdc6bcbca5174f", "level": "note", "message": {"text": "Possibly dead Python function: check_mcp_find_grants_verbatim"}, "properties": {"repobilityId": "4ba5525933df7e02", "scanner": "scanner-primary", "fingerprint": "cfcdc6bcbca5174f", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "verify.py:262"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-93ff79202d66508d", "level": "note", "message": {"text": "Possibly dead Python function: check_rerank_reason_present"}, "properties": {"repobilityId": "9565ed685222ca01", "scanner": "scanner-primary", "fingerprint": "93ff79202d66508d", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "verify.py:285"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-12e396f97f5269cd", "level": "note", "message": {"text": "Possibly dead Python function: check_receipt_structure_and_offline_verify"}, "properties": {"repobilityId": "0e87b0d770385044", "scanner": "scanner-primary", "fingerprint": "12e396f97f5269cd", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "verify.py:302"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-731868bcf96a0817", "level": "note", "message": {"text": "Possibly dead Python function: check_receipt_detects_tampering"}, "properties": {"repobilityId": "f568cc649d2964c9", "scanner": "scanner-primary", "fingerprint": "731868bcf96a0817", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "verify.py:325"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-0cb30715d92e8ccb", "level": "note", "message": {"text": "Possibly dead Python function: check_receipt_anchored_in_live_grants_gov"}, "properties": {"repobilityId": "48bddbf07feb375a", "scanner": "scanner-primary", "fingerprint": "0cb30715d92e8ccb", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "verify.py:352"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-8d36e6f791416930", "level": "note", "message": {"text": "Possibly dead Python function: check_ask_grounded_or_refuses"}, "properties": {"repobilityId": "797d28522925e967", "scanner": "scanner-primary", "fingerprint": "8d36e6f791416930", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "verify.py:382"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-46ae30883bfd4ac1", "level": "note", "message": {"text": "Possibly dead Python function: check_find_training_rejects_empty_keyword"}, "properties": {"repobilityId": "568317c66c4761b1", "scanner": "scanner-primary", "fingerprint": "46ae30883bfd4ac1", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "verify.py:401"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-75aec3e8f9bb7637", "level": "note", "message": {"text": "Possibly dead Python function: check_find_training_returns_real_programs"}, "properties": {"repobilityId": "99b1e44fe6d995fa", "scanner": "scanner-primary", "fingerprint": "75aec3e8f9bb7637", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "verify.py:411"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-2cacbd41a79014ae", "level": "note", "message": {"text": "Possibly dead Python function: check_pathway_rejects_empty_goal"}, "properties": {"repobilityId": "7a0f4aadceccfa8f", "scanner": "scanner-primary", "fingerprint": "2cacbd41a79014ae", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "verify.py:433"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-87b64ab5825536b4", "level": "note", "message": {"text": "Possibly dead Python function: check_pathway_composes_occupation_and_training"}, "properties": {"repobilityId": "3f061943605d3307", "scanner": "scanner-primary", "fingerprint": "87b64ab5825536b4", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "verify.py:443"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-e429b5f8ad194767", "level": "note", "message": {"text": "Possibly dead Python function: check_pathway_receipt_offline_roundtrip"}, "properties": {"repobilityId": "8e29804bbbb3fc03", "scanner": "scanner-primary", "fingerprint": "e429b5f8ad194767", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "verify.py:461"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-87e424559d2d0412", "level": "note", "message": {"text": "Possibly dead Python function: check_pathway_receipt_detects_tampering"}, "properties": {"repobilityId": "76e80192494d2410", "scanner": "scanner-primary", "fingerprint": "87e424559d2d0412", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "verify.py:481"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-6587d9fa05d0c771", "level": "note", "message": {"text": "Possibly dead Python function: check_pathway_receipt_anchored_in_live_careeronestop"}, "properties": {"repobilityId": "5ea93bb74caf5dd5", "scanner": "scanner-primary", "fingerprint": "6587d9fa05d0c771", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "verify.py:504"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-821b668ee4c01e42", "level": "note", "message": {"text": "Possibly dead Python function: check_pathway_plan_refuses_when_program_unnamed"}, "properties": {"repobilityId": "9e66c63d763267e5", "scanner": "scanner-primary", "fingerprint": "821b668ee4c01e42", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "verify.py:528"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-4ff89d880a0d7d91", "level": "note", "message": {"text": "Possibly dead Python function: check_receipt_types_not_confused"}, "properties": {"repobilityId": "04070e8b1dd3aa2b", "scanner": "scanner-primary", "fingerprint": "4ff89d880a0d7d91", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "verify.py:551"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-aaf9f95d615152f9", "level": "note", "message": {"text": "Possibly dead Python function: check_loi_receipt_verifies_without_close_date"}, "properties": {"repobilityId": "153c049c53f1fe63", "scanner": "scanner-primary", "fingerprint": "aaf9f95d615152f9", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "verify.py:565"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-8fbb30dfb4610516", "level": "note", "message": {"text": "Possibly dead Python function: check_verify_pathway_cli_exists_and_runs"}, "properties": {"repobilityId": "91f471e234114f14", "scanner": "scanner-primary", "fingerprint": "8fbb30dfb4610516", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "verify.py:581"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-92ff3f8788b76d21", "level": "note", "message": {"text": "Possibly dead Python function: mcp_find_training"}, "properties": {"repobilityId": "ba00dddfd94a172d", "scanner": "scanner-primary", "fingerprint": "92ff3f8788b76d21", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "mcp_bridge.py:82"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-770ad1bbc3f63141", "level": "note", "message": {"text": "Possibly dead Python function: mcp_build_pathway"}, "properties": {"repobilityId": "ff6527072e033405", "scanner": "scanner-primary", "fingerprint": "770ad1bbc3f63141", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "mcp_bridge.py:92"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-4f4f22466bc64bdb", "level": "note", "message": {"text": "Possibly dead Python function: mcp_draft_pathway_plan"}, "properties": {"repobilityId": "e81ec0637387ec42", "scanner": "scanner-primary", "fingerprint": "4f4f22466bc64bdb", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "mcp_bridge.py:102"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-e7c2d8ce48c42f10", "level": "note", "message": {"text": "Possibly dead Python function: cmd_find_grants"}, "properties": {"repobilityId": "df0dca41b9d3b8cf", "scanner": "scanner-primary", "fingerprint": "e7c2d8ce48c42f10", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "demo/mcp_client.py:70"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-648ab97dbf802f57", "level": "note", "message": {"text": "Possibly dead Python function: cmd_ask"}, "properties": {"repobilityId": "3bc3b0468a975c91", "scanner": "scanner-primary", "fingerprint": "648ab97dbf802f57", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "demo/mcp_client.py:80"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-f925cf85be482932", "level": "note", "message": {"text": "Possibly dead Python function: cmd_learn"}, "properties": {"repobilityId": "48527b118408ff69", "scanner": "scanner-primary", "fingerprint": "f925cf85be482932", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "demo/mcp_client.py:89"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-eccf26b01256fee1", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in demo/intro.html:15"}, "properties": {"repobilityId": "c715116aedee165a", "scanner": "scanner-primary", "fingerprint": "eccf26b01256fee1", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "demo/intro.html"}, "region": {"startLine": 15}}}]}, {"ruleId": "scanner-e72c0293b9ab7333", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in demo/build_bookends.py:25"}, "properties": {"repobilityId": "f572f21b93b868ad", "scanner": "scanner-primary", "fingerprint": "e72c0293b9ab7333", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "demo/build_bookends.py"}, "region": {"startLine": 25}}}]}, {"ruleId": "scanner-6ff37e3a25c12bab", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in demo/player.html:89"}, "properties": {"repobilityId": "7ce5d1c4d3ab02fb", "scanner": "scanner-primary", "fingerprint": "6ff37e3a25c12bab", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "demo/player.html"}, "region": {"startLine": 89}}}]}, {"ruleId": "scanner-68775470792645e3", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in demo/outro.html:15"}, "properties": {"repobilityId": "f3a8857e6edc5484", "scanner": "scanner-primary", "fingerprint": "68775470792645e3", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "demo/outro.html"}, "region": {"startLine": 15}}}]}, {"ruleId": "scanner-f9ee5f8f29ad1ec0", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in demo/build_player.py:116"}, "properties": {"repobilityId": "adde138d8f39b988", "scanner": "scanner-primary", "fingerprint": "f9ee5f8f29ad1ec0", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "demo/build_player.py"}, "region": {"startLine": 116}}}]}, {"ruleId": "scanner-141b30a41e03817b", "level": "note", "message": {"text": "No license file detected"}, "properties": {"repobilityId": "e27d751f30bf416d", "scanner": "scanner-primary", "fingerprint": "141b30a41e03817b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["license", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-3ab5d313dda8e5f9", "level": "note", "message": {"text": "Debug logging residue appears in source files"}, "properties": {"repobilityId": "ffe20426f6e96127", "scanner": "scanner-primary", "fingerprint": "3ab5d313dda8e5f9", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["debug", "cleanup", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-72b2a6250083a784", "level": "warning", "message": {"text": "Placeholder or mock-heavy implementation detected"}, "properties": {"repobilityId": "de4f7f3c2f8eb486", "scanner": "scanner-primary", "fingerprint": "72b2a6250083a784", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["placeholder", "mock-data", "incomplete", "generated-repo-pattern"]}}, {"ruleId": "scanner-2d0c7b7ab8f8aacf", "level": "warning", "message": {"text": "Critical user flow still appears backed by mock or placeholder data"}, "properties": {"repobilityId": "d56c02f3c64f50ee", "scanner": "scanner-primary", "fingerprint": "2d0c7b7ab8f8aacf", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["placeholder", "mock-data", "critical-flow", "generated-repo-pattern"]}}, {"ruleId": "scanner-b9088664ace7f748", "level": "note", "message": {"text": "Composite production-readiness gap"}, "properties": {"repobilityId": "26a8534e8a902dc2", "scanner": "scanner-primary", "fingerprint": "b9088664ace7f748", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["production-readiness", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-d6dcfe22d4a0b5bf", "level": "none", "message": {"text": "Commented-code block (5 lines) in training_api.py:79"}, "properties": {"repobilityId": "74f29edde2e794d9", "scanner": "scanner-primary", "fingerprint": "d6dcfe22d4a0b5bf", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-319e66a630e14977", "level": "none", "message": {"text": "2 env vars used in code but missing from .env.example"}, "properties": {"repobilityId": "d838d1fc5d8231c9", "scanner": "scanner-primary", "fingerprint": "319e66a630e14977", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "config-drift"]}}]}]}