{"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-fcacb3dc381d61b5", "name": "Possibly dead Python function: update_d1_detail", "shortDescription": {"text": "Possibly dead Python function: update_d1_detail"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-222cb7e0c0ce2f6d", "name": "Possibly dead Python function: draw_icon_stethoscope", "shortDescription": {"text": "Possibly dead Python function: draw_icon_stethoscope"}, "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-5b21bbc1ec0a8356", "name": "Possibly dead Python function: render_slide_playwright", "shortDescription": {"text": "Possibly dead Python function: render_slide_playwright"}, "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-74a68f57fae5bf35", "name": "Possibly dead Python function: extract_aica_intake", "shortDescription": {"text": "Possibly dead Python function: extract_aica_intake"}, "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-35b29cb1be52567b", "name": "Possibly dead Python function: extract_aica_axis", "shortDescription": {"text": "Possibly dead Python function: extract_aica_axis"}, "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-729ae3f0ca271729", "name": "Possibly dead Python function: extract_resume_ai", "shortDescription": {"text": "Possibly dead Python function: extract_resume_ai"}, "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-5112d4b112ed3448", "name": "Possibly dead Python function: extract_seo_fix", "shortDescription": {"text": "Possibly dead Python function: extract_seo_fix"}, "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-3c47e3357f5c2f94", "name": "Possibly dead Python function: extract_sns_content", "shortDescription": {"text": "Possibly dead Python function: extract_sns_content"}, "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-fd71c426db9ae3fd", "name": "Possibly dead Python function: kv_exists", "shortDescription": {"text": "Possibly dead Python function: kv_exists"}, "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-637450fe760ca355", "name": "Possibly dead Python function: pick_narration_opening", "shortDescription": {"text": "Possibly dead Python function: pick_narration_opening"}, "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-9174f38f2a43e93d", "name": "Possibly dead Python function: pick_narration_transition", "shortDescription": {"text": "Possibly dead Python function: pick_narration_transition"}, "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-3c6abf1b1d782d5a", "name": "Possibly dead Python function: pick_catchphrase", "shortDescription": {"text": "Possibly dead Python function: pick_catchphrase"}, "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-c8babb012a3b2fae", "name": "Possibly dead Python function: build_robby_caption", "shortDescription": {"text": "Possibly dead Python function: build_robby_caption"}, "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-7509f42b3a8dadb8", "name": "Possibly dead Python function: check_14day_diversity", "shortDescription": {"text": "Possibly dead Python function: check_14day_diversity"}, "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-a9d69c2bef4c9b07", "name": "Possibly dead Python function: draw_chat_icon", "shortDescription": {"text": "Possibly dead Python function: draw_chat_icon"}, "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-3c6222d922a5a8e3", "name": "Possibly dead Python function: draw_clock_icon", "shortDescription": {"text": "Possibly dead Python function: draw_clock_icon"}, "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-fc7661a5ea807347", "name": "Possibly dead Python function: replace_cb", "shortDescription": {"text": "Possibly dead Python function: replace_cb"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-02bac4173a5f1b50", "name": "Possibly dead Python function: ease_out_bounce", "shortDescription": {"text": "Possibly dead Python function: ease_out_bounce"}, "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-a803613bd374d215", "name": "Possibly dead Python function: total_in_window", "shortDescription": {"text": "Possibly dead Python function: total_in_window"}, "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-5cac841660a8e464", "name": "Possibly dead Python function: check_R1_no_apply_reach_7d", "shortDescription": {"text": "Possibly dead Python function: check_R1_no_apply_reach_7d"}, "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-a02865ae9caf6e35", "name": "Possibly dead Python function: check_R0_no_placement_30d", "shortDescription": {"text": "Possibly dead Python function: check_R0_no_placement_30d"}, "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-18e9177ef77d74bc", "name": "Possibly dead Python function: check_R2_no_registrations_3d", "shortDescription": {"text": "Possibly dead Python function: check_R2_no_registrations_3d"}, "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-ec028c0d59a0c104", "name": "Possibly dead Python function: check_R3_active_users_drop", "shortDescription": {"text": "Possibly dead Python function: check_R3_active_users_drop"}, "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-fd2cada382e4687f", "name": "Possibly dead Python function: check_R4_autoresearch_stale", "shortDescription": {"text": "Possibly dead Python function: check_R4_autoresearch_stale"}, "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-b7ce998748d5b14c", "name": "Possibly dead Python function: check_R5_content_mix_drift", "shortDescription": {"text": "Possibly dead Python function: check_R5_content_mix_drift"}, "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-fafb62c9d51c0609", "name": "Possibly dead Python function: check_R6_matching_no_handoff", "shortDescription": {"text": "Possibly dead Python function: check_R6_matching_no_handoff"}, "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-c47140b13e00c430", "name": "Possibly dead Python function: sanitize_cookies_for_playwright", "shortDescription": {"text": "Possibly dead Python function: sanitize_cookies_for_playwright"}, "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-8ed7197335679050", "name": "Possibly dead Python function: verify_post", "shortDescription": {"text": "Possibly dead Python function: verify_post"}, "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-3398f1075535b79a", "name": "Stray `console.log` in TS/JS \u2014 script.js:520", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 script.js:520"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-c040f4bb37758f72", "name": "Stray `console.log` in TS/JS \u2014 slack-bot.js:120", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 slack-bot.js:120"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-36e6c63a4473ae85", "name": "Stray `console.log` in TS/JS \u2014 slack-notify.js:65", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 slack-notify.js:65"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-a37d1e2178bf801d", "name": "Stray `console.log` in TS/JS \u2014 scripts/generate_worker_facilities.js:29", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/generate_worker_facilities.js:29"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-ad39001eb5e9fb25", "name": "Stray `console.log` in TS/JS \u2014 scripts/build_worker_data.js:134", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/build_worker_data.js:134"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-3b2625a1b1b467fa", "name": "Stray `console.log` in TS/JS \u2014 api-aica/src/index.js:107", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 api-aica/src/index.js:107"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-4cb93bda12ff4fee", "name": "Stray `console.log` in TS/JS \u2014 api-aica/src/lib/cron-resume.js:86", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 api-aica/src/lib/cron-resume.js:86"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-df986e56d5d4a194", "name": "Stray `console.log` in TS/JS \u2014 api-aica/src/phases/career-sheet.js:131", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 api-aica/src/phases/career-sheet.js:131"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-01bd25f96d6db75b", "name": "Privileged port 17 in use", "shortDescription": {"text": "Privileged port 17 in use"}, "fullDescription": {"text": "Port 17 is privileged (<1024). Make sure the service runs with the right caps or front it with a non-privileged port via a load balancer."}, "properties": {"scanner": "scanner-primary", "layer": "network", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-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-73bf239062062332", "name": "Insecure pattern 'direct_innerhtml_assignment' in script.js:613", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in script.js:613"}, "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-441ea63ccaf343f0", "name": "Insecure pattern 'direct_innerhtml_assignment' in dashboard.js:285", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in dashboard.js:285"}, "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-53d2a1daf829b57f", "name": "Insecure pattern 'local_storage_auth_token' in dashboard.js:39", "shortDescription": {"text": "Insecure pattern 'local_storage_auth_token' in dashboard.js:39"}, "fullDescription": {"text": "Found a known-risky pattern (local_storage_auth_token). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-61fdb29dda3159a4", "name": "Insecure pattern 'direct_innerhtml_assignment' in 404.html:167", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in 404.html:167"}, "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-f07fbd6c94881f37", "name": "Insecure pattern 'direct_innerhtml_assignment' in chat.js:386", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in chat.js:386"}, "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-6a556781ecb0ec67", "name": "Insecure pattern 'direct_innerhtml_assignment' in career-sheet.html:644", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in career-sheet.html:644"}, "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-bb96ee301f295fba", "name": "Insecure pattern 'node_child_process' in slack-bot.js:7", "shortDescription": {"text": "Insecure pattern 'node_child_process' in slack-bot.js:7"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ab0cabbbf17b137a", "name": "Insecure pattern 'direct_innerhtml_assignment' in proposal.html:450", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in proposal.html:450"}, "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-453ad793d6045024", "name": "Insecure pattern 'local_storage_auth_token' in track.js:34", "shortDescription": {"text": "Insecure pattern 'local_storage_auth_token' in track.js:34"}, "fullDescription": {"text": "Found a known-risky pattern (local_storage_auth_token). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-5451d6730ce6cf81", "name": "Insecure pattern 'node_child_process' in scripts/jobsearch_d1_smoke.mjs:33", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/jobsearch_d1_smoke.mjs:33"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-24228e072fa7ea6a", "name": "Insecure pattern 'insert_adjacent_html' in resume/index.html:418", "shortDescription": {"text": "Insecure pattern 'insert_adjacent_html' in resume/index.html:418"}, "fullDescription": {"text": "Found a known-risky pattern (insert_adjacent_html). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-4b615e0f60790fb7", "name": "Insecure pattern 'insert_adjacent_html' in resume/member/index.html:1193", "shortDescription": {"text": "Insecure pattern 'insert_adjacent_html' in resume/member/index.html:1193"}, "fullDescription": {"text": "Found a known-risky pattern (insert_adjacent_html). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-17a56847f1075cae", "name": "Insecure pattern 'direct_innerhtml_assignment' in salary-check/index.html:1167", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in salary-check/index.html:1167"}, "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-f943178adf27574a", "name": "Insecure pattern 'direct_innerhtml_assignment' in lp/job-seeker/shindan.js:177", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in lp/job-seeker/shindan.js:177"}, "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-ca03098e3ca3469a", "name": "Insecure pattern 'direct_innerhtml_assignment' in lp/job-seeker/liff.html:250", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in lp/job-seeker/liff.html:250"}, "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-7a007516b4c2039a", "name": "Insecure pattern 'direct_innerhtml_assignment' in lp/job-seeker/salary-map.html:838", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in lp/job-seeker/salary-map.html:838"}, "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-381676ba4a8a8038", "name": "Insecure pattern 'direct_innerhtml_assignment' in mypage/mypage.js:31", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in mypage/mypage.js:31"}, "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-5c4339a7b59cb552", "name": "Insecure pattern 'direct_innerhtml_assignment' in mypage/index.html:376", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in mypage/index.html:376"}, "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-0c3f38e982e0b677", "name": "Insecure pattern 'direct_innerhtml_assignment' in mypage/resume/edit.html:551", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in mypage/resume/edit.html:551"}, "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-0b36e515db32fc6b", "name": "Insecure pattern 'insert_adjacent_html' in mypage/resume/edit.html:381", "shortDescription": {"text": "Insecure pattern 'insert_adjacent_html' in mypage/resume/edit.html:381"}, "fullDescription": {"text": "Found a known-risky pattern (insert_adjacent_html). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-2a5699633dae60f3", "name": "Insecure pattern 'direct_innerhtml_assignment' in mypage/resume/index.html:100", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in mypage/resume/index.html:100"}, "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-1aa8aa096a49e1fb", "name": "Insecure pattern 'direct_innerhtml_assignment' in mypage/favorites/index.html:139", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in mypage/favorites/index.html:139"}, "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-f7a49ddaff150949", "name": "Insecure pattern 'direct_innerhtml_assignment' in mypage/preferences/index.html:378", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in mypage/preferences/index.html:378"}, "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-c1e62c8a8becdce0", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "actions/checkout@v4 can move without a code change in this repo. Pin third-party actions to a reviewed 40-character commit SHA."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "low", "confidence": 1.0}}, {"id": "scanner-11fe6710547243fb", "name": "GitHub Actions workflow grants broad write permissions", "shortDescription": {"text": "GitHub Actions workflow grants broad write permissions"}, "fullDescription": {"text": "CI tokens with write permissions increase blast radius when an action, dependency, or PR workflow is compromised. Prefer job-level least-privilege permissions."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-dbe9a4ea4f508334", "name": "Very large file: chat.js (1568 lines)", "shortDescription": {"text": "Very large file: chat.js (1568 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-a2db50821b604a5b", "name": "Very large file: scripts/quality_checker.py (3540 lines)", "shortDescription": {"text": "Very large file: scripts/quality_checker.py (3540 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-1f307cbaa9755a10", "name": "Very large file: scripts/generate_carousel.py (4442 lines)", "shortDescription": {"text": "Very large file: scripts/generate_carousel.py (4442 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-c8985f4fd7ab7fb0", "name": "Very large file: scripts/hellowork_to_d1.py (1193 lines)", "shortDescription": {"text": "Very large file: scripts/hellowork_to_d1.py (1193 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-feeb5d980919caef", "name": "Very large file: scripts/tiktok_post.py (1835 lines)", "shortDescription": {"text": "Very large file: scripts/tiktok_post.py (1835 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-1346af5149d8538a", "name": "Very large file: scripts/watchdog.py (2739 lines)", "shortDescription": {"text": "Very large file: scripts/watchdog.py (2739 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-85b92d3a92bb18b1", "name": "Very large file: scripts/ai_content_engine.py (2894 lines)", "shortDescription": {"text": "Very large file: scripts/ai_content_engine.py (2894 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-6e35c390af9f08b3", "name": "Very large file: scripts/audit/generate_remaining_cases.py (2301 lines)", "shortDescription": {"text": "Very large file: scripts/audit/generate_remaining_cases.py (2301 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-ea3b5e389d8c9c0f", "name": "Low test-to-source ratio", "shortDescription": {"text": "Low test-to-source ratio"}, "fullDescription": {"text": "44 tests / 245 src (ratio 0.18)."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-141b30a41e03817b", "name": "No license file detected", "shortDescription": {"text": "No license file detected"}, "fullDescription": {"text": "No LICENSE/COPYING/NOTICE file was found. Generated repositories often omit licensing, which blocks reuse and automated intake."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-53b5ceeec3045a9b", "name": "Node manifest has dependencies but no lockfile: api-aica/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: api-aica/package.json"}, "fullDescription": {"text": "`package.json` declares dependencies, but no same-directory npm/pnpm/yarn/bun lockfile was found. Generated projects without lockfiles are less reproducible and harder to secure-scan precisely."}, "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 3399 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 33 placeholder/mock markers across 7 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, lockfile. Opus verification showed these co-occurring gaps are a better readiness signal than reading each flag in isolation."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-749d4bc1bd66df5f", "name": "Agent instructions exist but release-hardening basics are missing", "shortDescription": {"text": "Agent instructions exist but release-hardening basics are missing"}, "fullDescription": {"text": "AI-coder instruction files were found, but the repo is missing license, lockfile. Treat this as a contract gap: the agent is guided, but the generated output is not yet guarded by the controls that make it repeatable."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ea8f3013f588db25", "name": "Shallow git history limits provenance confidence", "shortDescription": {"text": "Shallow git history limits provenance confidence"}, "fullDescription": {"text": "The repository is a shallow clone. Origin/evolution analysis cannot distinguish fresh generation, imported legacy code, or long-lived human code with high confidence."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-8424db9c75e04ba4", "name": "Very short observed git history", "shortDescription": {"text": "Very short observed git history"}, "fullDescription": {"text": "The repo has multiple source files but two or fewer visible commits. This is not a failure by itself, but it lowers confidence in evolution-based diagnosis."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-122f91b7f2906dc4", "name": "Agent authority lacks a verifier contract: .claude/settings.json", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/settings.json"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-e7169245f478e3f7", "name": "Agent authority lacks a verifier contract: .claude/rules/scripts.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/rules/scripts.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-8a1dd4583cfc8d82", "name": "Agent authority lacks a verifier contract: .claude/agents/site-check.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/agents/site-check.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-5f83a6d25a7616bc", "name": "Agent authority lacks a verifier contract: .claude/agents/content-gen.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/agents/content-gen.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-fd52c8470e79633a", "name": "Agent authority lacks a verifier contract: .claude/agents/pdca.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/agents/pdca.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-ca792dc1d4184a95", "name": "Agent authority lacks a verifier contract: .claude/agents/seo-audit.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/agents/seo-audit.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-a3ddee03299c0e80", "name": "Commented-code block (6 lines) in script.js:195", "shortDescription": {"text": "Commented-code block (6 lines) in script.js:195"}, "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-43146ff249cb77c8", "name": "`fetch()` without try/.catch or AbortSignal \u2014 script.js:525", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 script.js:525"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-176998e4c36f860a", "name": "Commented-code block (5 lines) in chat.js:1", "shortDescription": {"text": "Commented-code block (5 lines) in chat.js:1"}, "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-2d1cb4846690a77c", "name": "Commented-code block (9 lines) in slack-notify.js:1", "shortDescription": {"text": "Commented-code block (9 lines) in slack-notify.js:1"}, "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-b42a2623c9949202", "name": "Commented-code block (8 lines) in tests/jobsearchRouting.smoke.test.mjs:9", "shortDescription": {"text": "Commented-code block (8 lines) in tests/jobsearchRouting.smoke.test.mjs:9"}, "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-d516866bf2f6ee8a", "name": "Commented-code block (9 lines) in tests/sqlConstants.test.mjs:1", "shortDescription": {"text": "Commented-code block (9 lines) in tests/sqlConstants.test.mjs:1"}, "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-8f28443fc903f78e", "name": "Commented-code block (5 lines) in tests/getOrCreateSessionId.test.mjs:1", "shortDescription": {"text": "Commented-code block (5 lines) in tests/getOrCreateSessionId.test.mjs:1"}, "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-4b368068fc483a89", "name": "Commented-code block (7 lines) in tests/matchStrictness.test.mjs:1", "shortDescription": {"text": "Commented-code block (7 lines) in tests/matchStrictness.test.mjs:1"}, "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-1094788676f81f93", "name": "Commented-code block (5 lines) in tests/parseSourceContext.test.mjs:1", "shortDescription": {"text": "Commented-code block (5 lines) in tests/parseSourceContext.test.mjs:1"}, "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-9a9de66bd08da3ba", "name": "Commented-code block (6 lines) in api/worker_facilities.js:1", "shortDescription": {"text": "Commented-code block (6 lines) in api/worker_facilities.js:1"}, "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-f857e8a7db64e601", "name": "Commented-code block (6 lines) in api/lib/flex.js:161", "shortDescription": {"text": "Commented-code block (6 lines) in api/lib/flex.js:161"}, "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-751157bf17202c56", "name": "`fetch()` without try/.catch or AbortSignal \u2014 api/lib/matching_rationale.js:201", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 api/lib/matching_rationale.js:201"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-c9b3755d3253e412", "name": "Commented-code block (5 lines) in api/lib/facility_name.js:20", "shortDescription": {"text": "Commented-code block (5 lines) in api/lib/facility_name.js:20"}, "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-f57e5bb445fc95eb", "name": "Commented-code block (5 lines) in api/lib/source_medium.js:63", "shortDescription": {"text": "Commented-code block (5 lines) in api/lib/source_medium.js:63"}, "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-9bc3d1cb538f84d0", "name": "Legacy-named symbol `final_slides_v2` in docs/archive/add_text_overlay_v2.py:14", "shortDescription": {"text": "Legacy-named symbol `final_slides_v2` in docs/archive/add_text_overlay_v2.py:14"}, "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-2cc4f6467ececf14", "name": "Network/subprocess call without timeout or try/except \u2014 scripts/sns_v2_refresh_token.py:58", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 scripts/sns_v2_refresh_token.py:58"}, "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-40f5945bd49bd6ba", "name": "Legacy-named symbol `heartbeat_v2` in scripts/hellowork_detail_scrape.py:82", "shortDescription": {"text": "Legacy-named symbol `heartbeat_v2` in scripts/hellowork_detail_scrape.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-d6a88aad7eab6bc9", "name": "Commented-code block (10 lines) in scripts/quality_checker.py:2520", "shortDescription": {"text": "Commented-code block (10 lines) in scripts/quality_checker.py:2520"}, "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-8d25ccda4769c641", "name": "Legacy-named symbol `d_old` in scripts/kpi_handoff_weekly_pdca.py:229", "shortDescription": {"text": "Legacy-named symbol `d_old` in scripts/kpi_handoff_weekly_pdca.py:229"}, "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-2277cb4a9e138f20", "name": "Network/subprocess call without timeout or try/except \u2014 scripts/validate_data.py:21", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 scripts/validate_data.py:21"}, "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-ebbfb9f69e762258", "name": "Commented-code block (5 lines) in scripts/test_quality_checker.py:194", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/test_quality_checker.py:194"}, "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-72840b81cf694e44", "name": "Commented-code block (5 lines) in scripts/image_humanizer.py:274", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/image_humanizer.py:274"}, "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-f474def9eb822b59", "name": "Commented-code block (5 lines) in scripts/hellowork_to_d1.py:770", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/hellowork_to_d1.py:770"}, "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-8578a7eed0691dae", "name": "Network/subprocess call without timeout or try/except \u2014 scripts/phase_transition_weekly_report.py:64", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 scripts/phase_transition_weekly_report.py:64"}, "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-93c209b5c0d23d25", "name": "Network/subprocess call without timeout or try/except \u2014 scripts/hellowork_worker_safe_check.py:28", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 scripts/hellowork_worker_safe_check.py:28"}, "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-98ddf2a3f52e9d37", "name": "Legacy-named symbol `collect_aica_v2` in scripts/kpi_realtime.py:420", "shortDescription": {"text": "Legacy-named symbol `collect_aica_v2` in scripts/kpi_realtime.py:420"}, "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-aa6cf2db9591b43c", "name": "Commented-code block (10 lines) in scripts/kpi_realtime.py:60", "shortDescription": {"text": "Commented-code block (10 lines) in scripts/kpi_realtime.py:60"}, "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-f45b6406a9ded612", "name": "Network/subprocess call without timeout or try/except \u2014 scripts/meta_ads_create_v7_ad4_ad5.py:69", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 scripts/meta_ads_create_v7_ad4_ad5.py:69"}, "fullDescription": {"text": "`requests.get(...)` here lacks both a `timeout=` arg and an enclosing try/except. This is exactly the class of bug that took down our git-clone earlier (HTTP/2 stream cancel surfaced as a fatal). Add a `timeout=` and wrap in try/except, or use a wrapper that retries."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-a6911822d8be6a96", "name": "Legacy-named symbol `hook_patterns_v2` in scripts/robby_character.py:946", "shortDescription": {"text": "Legacy-named symbol `hook_patterns_v2` in scripts/robby_character.py:946"}, "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-7fb362795096bce5", "name": "Commented-code block (5 lines) in scripts/test_richmenu_personas.py:180", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/test_richmenu_personas.py:180"}, "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-6ffe075a4c5a7afc", "name": "Network/subprocess call without timeout or try/except \u2014 scripts/fetch_shitei_vn.py:219", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 scripts/fetch_shitei_vn.py:219"}, "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-f1b902e428536238", "name": "Legacy-named symbol `slides_copy` in scripts/sns_v2_render.py:924", "shortDescription": {"text": "Legacy-named symbol `slides_copy` in scripts/sns_v2_render.py:924"}, "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-c3dc947a95867cb8", "name": "Legacy-named symbol `generate_guides_v2` in scripts/seo_queue_consumer.py:49", "shortDescription": {"text": "Legacy-named symbol `generate_guides_v2` in scripts/seo_queue_consumer.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-eeaafdfb4b3aae42", "name": "Network/subprocess call without timeout or try/except \u2014 scripts/init_kv_encryption_key.py:63", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 scripts/init_kv_encryption_key.py:63"}, "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-a38eb69b3b0001ea", "name": "Commented-code block (5 lines) in scripts/cron_sync_check.py:202", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/cron_sync_check.py:202"}, "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-bfe054a8b88d7e2a", "name": "Legacy-named symbol `heartbeat_v2` in scripts/clarity_report.py:338", "shortDescription": {"text": "Legacy-named symbol `heartbeat_v2` in scripts/clarity_report.py:338"}, "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-4c3795aabde17071", "name": "Network/subprocess call without timeout or try/except \u2014 scripts/tiktok_post.py:217", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 scripts/tiktok_post.py:217"}, "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-fad3643df84bad51", "name": "Network/subprocess call without timeout or try/except \u2014 scripts/indexnow_ping.py:16", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 scripts/indexnow_ping.py:16"}, "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-ff72724d2fd4b8f8", "name": "Legacy-named symbol `encrypt_v1` in scripts/kv_reencrypt.py:67", "shortDescription": {"text": "Legacy-named symbol `encrypt_v1` in scripts/kv_reencrypt.py:67"}, "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-89f8cd442ff9cb01", "name": "Network/subprocess call without timeout or try/except \u2014 scripts/kv_reencrypt.py:85", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 scripts/kv_reencrypt.py:85"}, "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-61d8dc7ad8407c9f", "name": "Legacy-named symbol `get_next_unposted_legacy` in scripts/auto_post.py:194", "shortDescription": {"text": "Legacy-named symbol `get_next_unposted_legacy` in scripts/auto_post.py:194"}, "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-201b8d70c7dd3d76", "name": "Legacy-named symbol `heartbeat_v2` in scripts/sns_v2_insights.py:254", "shortDescription": {"text": "Legacy-named symbol `heartbeat_v2` in scripts/sns_v2_insights.py:254"}, "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-25329860da311e15", "name": "Network/subprocess call without timeout or try/except \u2014 scripts/import_egov_facilities.py:254", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 scripts/import_egov_facilities.py:254"}, "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-5c91f63aa48ace88", "name": "Network/subprocess call without timeout or try/except \u2014 scripts/sns_v2_init_sheets.py:176", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 scripts/sns_v2_init_sheets.py:176"}, "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-55bed240a37c2e58", "name": "Commented-code block (5 lines) in scripts/hellowork_to_jobs.py:97", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/hellowork_to_jobs.py:97"}, "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-3af6fb1a03bc89d9", "name": "Legacy-named symbol `generate_guides_v2` in scripts/generate_guides_v2.py:7", "shortDescription": {"text": "Legacy-named symbol `generate_guides_v2` in scripts/generate_guides_v2.py:7"}, "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-2137b6a0f3c51cc1", "name": "Legacy-named symbol `content_legacy` in scripts/watchdog.py:207", "shortDescription": {"text": "Legacy-named symbol `content_legacy` in scripts/watchdog.py:207"}, "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-ea1e7ca4f4c8b8bc", "name": "Commented-code block (9 lines) in scripts/watchdog.py:610", "shortDescription": {"text": "Commented-code block (9 lines) in scripts/watchdog.py:610"}, "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-d787adee13b6af99", "name": "Network/subprocess call without timeout or try/except \u2014 scripts/fetch_analytics.py:45", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 scripts/fetch_analytics.py:45"}, "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-d6dbef314dc6f65d", "name": "Legacy-named symbol `heartbeat_v2` in scripts/lib_heartbeat.py:12", "shortDescription": {"text": "Legacy-named symbol `heartbeat_v2` in scripts/lib_heartbeat.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-7385739ca1b5b303", "name": "Commented-code block (5 lines) in scripts/jobsearch_d1_smoke.mjs:11", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/jobsearch_d1_smoke.mjs:11"}, "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-1948177933589ea7", "name": "Network/subprocess call without timeout or try/except \u2014 scripts/survival_scoreboard.py:131", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 scripts/survival_scoreboard.py:131"}, "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-d76b886913cac166", "name": "Commented-code block (5 lines) in scripts/generate_worker_facilities.js:665", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/generate_worker_facilities.js:665"}, "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-8d1ce1854dbb51ea", "name": "Network/subprocess call without timeout or try/except \u2014 scripts/claude_cli_helper.py:18", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 scripts/claude_cli_helper.py:18"}, "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-bd6ef766baf55128", "name": "Network/subprocess call without timeout or try/except \u2014 scripts/job_card_event_report.py:49", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 scripts/job_card_event_report.py:49"}, "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-aff4be0a67d268b0", "name": "Legacy-named symbol `sns_v2` in scripts/sns_v2_post.py:237", "shortDescription": {"text": "Legacy-named symbol `sns_v2` in scripts/sns_v2_post.py:237"}, "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-33b2658997a8dde5", "name": "Network/subprocess call without timeout or try/except \u2014 scripts/sns_v2_post.py:59", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 scripts/sns_v2_post.py:59"}, "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-b8f19e2658cbe68a", "name": "Network/subprocess call without timeout or try/except \u2014 scripts/rotate_admin_secrets.py:64", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 scripts/rotate_admin_secrets.py:64"}, "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-4fd186980773c576", "name": "Legacy-named symbol `heartbeat_v2` in scripts/sync_heartbeats_to_kv.py:256", "shortDescription": {"text": "Legacy-named symbol `heartbeat_v2` in scripts/sync_heartbeats_to_kv.py:256"}, "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-91347181b0ea0838", "name": "Commented-code block (6 lines) in scripts/matching_keyset_lint.mjs:4", "shortDescription": {"text": "Commented-code block (6 lines) in scripts/matching_keyset_lint.mjs:4"}, "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-9b7177b256a62902", "name": "Network/subprocess call without timeout or try/except \u2014 scripts/daily_ads_report.py:34", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 scripts/daily_ads_report.py:34"}, "fullDescription": {"text": "`requests.get(...)` here lacks both a `timeout=` arg and an enclosing try/except. This is exactly the class of bug that took down our git-clone earlier (HTTP/2 stream cancel surfaced as a fatal). Add a `timeout=` and wrap in try/except, or use a wrapper that retries."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-fa0219de32ef7da5", "name": "Legacy-named symbol `ssid_ucp_v1` in scripts/tiktok_cookie_refresh.py:19", "shortDescription": {"text": "Legacy-named symbol `ssid_ucp_v1` in scripts/tiktok_cookie_refresh.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-95202156b2b22a32", "name": "Network/subprocess call without timeout or try/except \u2014 scripts/ig_post_meta_suite.py:645", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 scripts/ig_post_meta_suite.py:645"}, "fullDescription": {"text": "`requests.post(...)` 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-60ab4fccde384835", "name": "Legacy-named symbol `slides_copy` in scripts/sns_v2_lint.py:3", "shortDescription": {"text": "Legacy-named symbol `slides_copy` in scripts/sns_v2_lint.py:3"}, "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-f4e867c540db5348", "name": "Commented-code block (5 lines) in scripts/unify_header_footer.py:112", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/unify_header_footer.py:112"}, "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-49fb5cad3565d1c5", "name": "Network/subprocess call without timeout or try/except \u2014 scripts/sns_v2_fill_sheets.py:144", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 scripts/sns_v2_fill_sheets.py:144"}, "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-c03c8b02465b6624", "name": "Network/subprocess call without timeout or try/except \u2014 scripts/update_area_pages.py:50", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 scripts/update_area_pages.py:50"}, "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-4dc7d045fed2669e", "name": "Commented-code block (5 lines) in scripts/tests/test_career_sheet_phone_required.mjs:1", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/tests/test_career_sheet_phone_required.mjs:1"}, "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-84b736f9680841c0", "name": "Legacy-named symbol `planner_v1` in scripts/audit/generate_initial_cases.py:126", "shortDescription": {"text": "Legacy-named symbol `planner_v1` in scripts/audit/generate_initial_cases.py:126"}, "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-71ed712f1790d9ea", "name": "Legacy-named symbol `render_yaml_v2` in scripts/audit/generate_remaining_cases.py:51", "shortDescription": {"text": "Legacy-named symbol `render_yaml_v2` in scripts/audit/generate_remaining_cases.py:51"}, "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-cd2142a1f5020023", "name": "Network/subprocess call without timeout or try/except \u2014 scripts/audit/lib/git_helper.py:82", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 scripts/audit/lib/git_helper.py:82"}, "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-99a1b1c64ec43f52", "name": "Network/subprocess call without timeout or try/except \u2014 scripts/deprecated/post_to_tiktok.py:128", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 scripts/deprecated/post_to_tiktok.py:128"}, "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-4d466b6cb8b9e59b", "name": "`fetch()` without try/.catch or AbortSignal \u2014 api-aica/src/index.js:48", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 api-aica/src/index.js:48"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-cff15f12010ba2db", "name": "`fetch()` without try/.catch or AbortSignal \u2014 api-aica/src/lib/slack.js:20", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 api-aica/src/lib/slack.js:20"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-34370ec06d1ea15c", "name": "`fetch()` without try/.catch or AbortSignal \u2014 api-aica/src/lib/line.js:40", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 api-aica/src/lib/line.js:40"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-1bf1ce0ec9228ebb", "name": "`fetch()` without try/.catch or AbortSignal \u2014 api-aica/src/lib/openai.js:138", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 api-aica/src/lib/openai.js:138"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-da62d0de21b78dfe", "name": "`fetch()` without try/.catch or AbortSignal \u2014 mypage/mypage.js:165", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 mypage/mypage.js:165"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "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:\ndocs/archive/generate_images_cloudflare.py:generate_slides_from_json, docs/archive/generate_images_gemini.py:generate_slides_from_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-02525d39071dd2c7", "name": "Near-duplicate function bodies in 5 places", "shortDescription": {"text": "Near-duplicate function bodies in 5 places"}, "fullDescription": {"text": "Functions with the same first-5-line body hash:\nscripts/tiktok_analytics.py:load_env, scripts/tiktok_post.py:load_env, scripts/auto_post.py:load_env, scripts/sns_workflow.py:load_env\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:\nscripts/sns_v2_refresh_token.py:slack, scripts/sns_v2_insights.py:slack, scripts/sns_v2_post.py:slack\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/17615"}, "properties": {"repository": "Quads-Inc/robby-the-match", "repoUrl": "https://github.com/Quads-Inc/robby-the-match", "branch": "main"}, "results": [{"ruleId": "scanner-fcacb3dc381d61b5", "level": "note", "message": {"text": "Possibly dead Python function: update_d1_detail"}, "properties": {"repobilityId": "4dcbe2e1d6f99141", "scanner": "scanner-primary", "fingerprint": "fcacb3dc381d61b5", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/hellowork_detail_scrape.py:340"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-222cb7e0c0ce2f6d", "level": "note", "message": {"text": "Possibly dead Python function: draw_icon_stethoscope"}, "properties": {"repobilityId": "d1ec142df8808a96", "scanner": "scanner-primary", "fingerprint": "222cb7e0c0ce2f6d", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/generate_carousel.py:777"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-5b21bbc1ec0a8356", "level": "note", "message": {"text": "Possibly dead Python function: render_slide_playwright"}, "properties": {"repobilityId": "7a2aa33c4d372fd7", "scanner": "scanner-primary", "fingerprint": "5b21bbc1ec0a8356", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/generate_carousel.py:4137"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-74a68f57fae5bf35", "level": "note", "message": {"text": "Possibly dead Python function: extract_aica_intake"}, "properties": {"repobilityId": "21f281660e643c8b", "scanner": "scanner-primary", "fingerprint": "74a68f57fae5bf35", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/autoresearch_multi.py:73"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-35b29cb1be52567b", "level": "note", "message": {"text": "Possibly dead Python function: extract_aica_axis"}, "properties": {"repobilityId": "1fdf220ca9cae37e", "scanner": "scanner-primary", "fingerprint": "35b29cb1be52567b", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/autoresearch_multi.py:80"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-729ae3f0ca271729", "level": "note", "message": {"text": "Possibly dead Python function: extract_resume_ai"}, "properties": {"repobilityId": "8c77769ecb788060", "scanner": "scanner-primary", "fingerprint": "729ae3f0ca271729", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/autoresearch_multi.py:87"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-5112d4b112ed3448", "level": "note", "message": {"text": "Possibly dead Python function: extract_seo_fix"}, "properties": {"repobilityId": "a6f02f85499f3ee4", "scanner": "scanner-primary", "fingerprint": "5112d4b112ed3448", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/autoresearch_multi.py:102"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-3c47e3357f5c2f94", "level": "note", "message": {"text": "Possibly dead Python function: extract_sns_content"}, "properties": {"repobilityId": "4b6e78d665ad9103", "scanner": "scanner-primary", "fingerprint": "3c47e3357f5c2f94", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/autoresearch_multi.py:116"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-fd71c426db9ae3fd", "level": "note", "message": {"text": "Possibly dead Python function: kv_exists"}, "properties": {"repobilityId": "3e6032a35e620ed5", "scanner": "scanner-primary", "fingerprint": "fd71c426db9ae3fd", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/wipe_line_user.py:50"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-637450fe760ca355", "level": "note", "message": {"text": "Possibly dead Python function: pick_narration_opening"}, "properties": {"repobilityId": "efa8d68caa8748d4", "scanner": "scanner-primary", "fingerprint": "637450fe760ca355", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/robby_character.py:695"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-9174f38f2a43e93d", "level": "note", "message": {"text": "Possibly dead Python function: pick_narration_transition"}, "properties": {"repobilityId": "8ead362d64f827ec", "scanner": "scanner-primary", "fingerprint": "9174f38f2a43e93d", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/robby_character.py:700"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-3c6abf1b1d782d5a", "level": "note", "message": {"text": "Possibly dead Python function: pick_catchphrase"}, "properties": {"repobilityId": "739628e9d844a2e3", "scanner": "scanner-primary", "fingerprint": "3c6abf1b1d782d5a", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/robby_character.py:705"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-c8babb012a3b2fae", "level": "note", "message": {"text": "Possibly dead Python function: build_robby_caption"}, "properties": {"repobilityId": "0070a54958de0ff1", "scanner": "scanner-primary", "fingerprint": "c8babb012a3b2fae", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/robby_character.py:733"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-7509f42b3a8dadb8", "level": "note", "message": {"text": "Possibly dead Python function: check_14day_diversity"}, "properties": {"repobilityId": "43d377684c62a51b", "scanner": "scanner-primary", "fingerprint": "7509f42b3a8dadb8", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/robby_character.py:827"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-a9d69c2bef4c9b07", "level": "note", "message": {"text": "Possibly dead Python function: draw_chat_icon"}, "properties": {"repobilityId": "cebc159417f989e5", "scanner": "scanner-primary", "fingerprint": "a9d69c2bef4c9b07", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/sns_v2_render.py:168"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-3c6222d922a5a8e3", "level": "note", "message": {"text": "Possibly dead Python function: draw_clock_icon"}, "properties": {"repobilityId": "9773b54c9ad2c4b7", "scanner": "scanner-primary", "fingerprint": "3c6222d922a5a8e3", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/sns_v2_render.py:183"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-fc7661a5ea807347", "level": "note", "message": {"text": "Possibly dead Python function: replace_cb"}, "properties": {"repobilityId": "c62c1df6c9c223b6", "scanner": "scanner-primary", "fingerprint": "fc7661a5ea807347", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/lp_cta_phase4.py:282"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-02bac4173a5f1b50", "level": "note", "message": {"text": "Possibly dead Python function: ease_out_bounce"}, "properties": {"repobilityId": "5503d6741a9261d7", "scanner": "scanner-primary", "fingerprint": "02bac4173a5f1b50", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/video_text_animator.py:145"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-a803613bd374d215", "level": "note", "message": {"text": "Possibly dead Python function: total_in_window"}, "properties": {"repobilityId": "1e6b64ed76e95af0", "scanner": "scanner-primary", "fingerprint": "a803613bd374d215", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/tail_monitor.py:284"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-5cac841660a8e464", "level": "note", "message": {"text": "Possibly dead Python function: check_R1_no_apply_reach_7d"}, "properties": {"repobilityId": "2f67b1e7cb3edce1", "scanner": "scanner-primary", "fingerprint": "5cac841660a8e464", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/outcome_watchdog.py:85"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-a02865ae9caf6e35", "level": "note", "message": {"text": "Possibly dead Python function: check_R0_no_placement_30d"}, "properties": {"repobilityId": "21d510f1f8db035b", "scanner": "scanner-primary", "fingerprint": "a02865ae9caf6e35", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/outcome_watchdog.py:123"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-18e9177ef77d74bc", "level": "note", "message": {"text": "Possibly dead Python function: check_R2_no_registrations_3d"}, "properties": {"repobilityId": "f65cf08c714417ef", "scanner": "scanner-primary", "fingerprint": "18e9177ef77d74bc", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/outcome_watchdog.py:162"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-ec028c0d59a0c104", "level": "note", "message": {"text": "Possibly dead Python function: check_R3_active_users_drop"}, "properties": {"repobilityId": "e09a6a5d0662695a", "scanner": "scanner-primary", "fingerprint": "ec028c0d59a0c104", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/outcome_watchdog.py:180"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-fd2cada382e4687f", "level": "note", "message": {"text": "Possibly dead Python function: check_R4_autoresearch_stale"}, "properties": {"repobilityId": "873ad5ff7fd2660f", "scanner": "scanner-primary", "fingerprint": "fd2cada382e4687f", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/outcome_watchdog.py:214"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-b7ce998748d5b14c", "level": "note", "message": {"text": "Possibly dead Python function: check_R5_content_mix_drift"}, "properties": {"repobilityId": "b546fe6387c10228", "scanner": "scanner-primary", "fingerprint": "b7ce998748d5b14c", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/outcome_watchdog.py:235"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-fafb62c9d51c0609", "level": "note", "message": {"text": "Possibly dead Python function: check_R6_matching_no_handoff"}, "properties": {"repobilityId": "ea22c0587294132b", "scanner": "scanner-primary", "fingerprint": "fafb62c9d51c0609", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/outcome_watchdog.py:260"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-c47140b13e00c430", "level": "note", "message": {"text": "Possibly dead Python function: sanitize_cookies_for_playwright"}, "properties": {"repobilityId": "aa27b8ebeb5e0722", "scanner": "scanner-primary", "fingerprint": "c47140b13e00c430", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/tiktok_post.py:131"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-8ed7197335679050", "level": "note", "message": {"text": "Possibly dead Python function: verify_post"}, "properties": {"repobilityId": "786491f72c8ca39b", "scanner": "scanner-primary", "fingerprint": "8ed7197335679050", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/tiktok_post.py:263"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-3398f1075535b79a", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 script.js:520"}, "properties": {"repobilityId": "124bba370bb38401", "scanner": "scanner-primary", "fingerprint": "3398f1075535b79a", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-c040f4bb37758f72", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 slack-bot.js:120"}, "properties": {"repobilityId": "a26eae63e3dd6456", "scanner": "scanner-primary", "fingerprint": "c040f4bb37758f72", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-36e6c63a4473ae85", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 slack-notify.js:65"}, "properties": {"repobilityId": "b94b7f38498e63e3", "scanner": "scanner-primary", "fingerprint": "36e6c63a4473ae85", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-a37d1e2178bf801d", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/generate_worker_facilities.js:29"}, "properties": {"repobilityId": "f51ae974938fe4a7", "scanner": "scanner-primary", "fingerprint": "a37d1e2178bf801d", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-ad39001eb5e9fb25", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/build_worker_data.js:134"}, "properties": {"repobilityId": "56c99c58d9dab434", "scanner": "scanner-primary", "fingerprint": "ad39001eb5e9fb25", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-3b2625a1b1b467fa", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 api-aica/src/index.js:107"}, "properties": {"repobilityId": "6447e0f965f4ed7d", "scanner": "scanner-primary", "fingerprint": "3b2625a1b1b467fa", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-4cb93bda12ff4fee", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 api-aica/src/lib/cron-resume.js:86"}, "properties": {"repobilityId": "13f34b61847c6ea3", "scanner": "scanner-primary", "fingerprint": "4cb93bda12ff4fee", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-df986e56d5d4a194", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 api-aica/src/phases/career-sheet.js:131"}, "properties": {"repobilityId": "c9572fbaa977b4ed", "scanner": "scanner-primary", "fingerprint": "df986e56d5d4a194", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-01bd25f96d6db75b", "level": "warning", "message": {"text": "Privileged port 17 in use"}, "properties": {"repobilityId": "0bf38fb8f89ec589", "scanner": "scanner-primary", "fingerprint": "01bd25f96d6db75b", "layer": "network", "severity": "medium", "confidence": 1.0, "tags": ["security", "ports"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/deprecated/daily_pipeline.sh"}, "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-73bf239062062332", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in script.js:613"}, "properties": {"repobilityId": "6579c6710200525f", "scanner": "scanner-primary", "fingerprint": "73bf239062062332", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "script.js"}, "region": {"startLine": 613}}}]}, {"ruleId": "scanner-441ea63ccaf343f0", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in dashboard.js:285"}, "properties": {"repobilityId": "7ce9f76231a38cc5", "scanner": "scanner-primary", "fingerprint": "441ea63ccaf343f0", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "dashboard.js"}, "region": {"startLine": 285}}}]}, {"ruleId": "scanner-53d2a1daf829b57f", "level": "warning", "message": {"text": "Insecure pattern 'local_storage_auth_token' in dashboard.js:39"}, "properties": {"repobilityId": "3dc18942413130b1", "scanner": "scanner-primary", "fingerprint": "53d2a1daf829b57f", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "local_storage_auth_token"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "dashboard.js"}, "region": {"startLine": 39}}}]}, {"ruleId": "scanner-61fdb29dda3159a4", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in 404.html:167"}, "properties": {"repobilityId": "1995879b743b7b70", "scanner": "scanner-primary", "fingerprint": "61fdb29dda3159a4", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "404.html"}, "region": {"startLine": 167}}}]}, {"ruleId": "scanner-f07fbd6c94881f37", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in chat.js:386"}, "properties": {"repobilityId": "80e88cb4387b6262", "scanner": "scanner-primary", "fingerprint": "f07fbd6c94881f37", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "chat.js"}, "region": {"startLine": 386}}}]}, {"ruleId": "scanner-6a556781ecb0ec67", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in career-sheet.html:644"}, "properties": {"repobilityId": "96438604d8492b2a", "scanner": "scanner-primary", "fingerprint": "6a556781ecb0ec67", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "career-sheet.html"}, "region": {"startLine": 644}}}]}, {"ruleId": "scanner-bb96ee301f295fba", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in slack-bot.js:7"}, "properties": {"repobilityId": "9426e4e0a2e9c9a3", "scanner": "scanner-primary", "fingerprint": "bb96ee301f295fba", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "slack-bot.js"}, "region": {"startLine": 7}}}]}, {"ruleId": "scanner-ab0cabbbf17b137a", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in proposal.html:450"}, "properties": {"repobilityId": "46604f77cf938b7f", "scanner": "scanner-primary", "fingerprint": "ab0cabbbf17b137a", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "proposal.html"}, "region": {"startLine": 450}}}]}, {"ruleId": "scanner-453ad793d6045024", "level": "warning", "message": {"text": "Insecure pattern 'local_storage_auth_token' in track.js:34"}, "properties": {"repobilityId": "cd4b43f2548974cd", "scanner": "scanner-primary", "fingerprint": "453ad793d6045024", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "local_storage_auth_token"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "track.js"}, "region": {"startLine": 34}}}]}, {"ruleId": "scanner-5451d6730ce6cf81", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/jobsearch_d1_smoke.mjs:33"}, "properties": {"repobilityId": "b939bbdad68242cf", "scanner": "scanner-primary", "fingerprint": "5451d6730ce6cf81", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/jobsearch_d1_smoke.mjs"}, "region": {"startLine": 33}}}]}, {"ruleId": "scanner-24228e072fa7ea6a", "level": "warning", "message": {"text": "Insecure pattern 'insert_adjacent_html' in resume/index.html:418"}, "properties": {"repobilityId": "67e7c6579464baf5", "scanner": "scanner-primary", "fingerprint": "24228e072fa7ea6a", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "insert_adjacent_html"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "resume/index.html"}, "region": {"startLine": 418}}}]}, {"ruleId": "scanner-4b615e0f60790fb7", "level": "warning", "message": {"text": "Insecure pattern 'insert_adjacent_html' in resume/member/index.html:1193"}, "properties": {"repobilityId": "bbcfd7a5168186f1", "scanner": "scanner-primary", "fingerprint": "4b615e0f60790fb7", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "insert_adjacent_html"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "resume/member/index.html"}, "region": {"startLine": 1193}}}]}, {"ruleId": "scanner-17a56847f1075cae", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in salary-check/index.html:1167"}, "properties": {"repobilityId": "39d21315ed9399bf", "scanner": "scanner-primary", "fingerprint": "17a56847f1075cae", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "salary-check/index.html"}, "region": {"startLine": 1167}}}]}, {"ruleId": "scanner-f943178adf27574a", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in lp/job-seeker/shindan.js:177"}, "properties": {"repobilityId": "d541c7c7de4cf41d", "scanner": "scanner-primary", "fingerprint": "f943178adf27574a", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "lp/job-seeker/shindan.js"}, "region": {"startLine": 177}}}]}, {"ruleId": "scanner-ca03098e3ca3469a", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in lp/job-seeker/liff.html:250"}, "properties": {"repobilityId": "85a4e6b8724eb1f8", "scanner": "scanner-primary", "fingerprint": "ca03098e3ca3469a", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "lp/job-seeker/liff.html"}, "region": {"startLine": 250}}}]}, {"ruleId": "scanner-7a007516b4c2039a", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in lp/job-seeker/salary-map.html:838"}, "properties": {"repobilityId": "24c01c060056153f", "scanner": "scanner-primary", "fingerprint": "7a007516b4c2039a", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "lp/job-seeker/salary-map.html"}, "region": {"startLine": 838}}}]}, {"ruleId": "scanner-381676ba4a8a8038", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in mypage/mypage.js:31"}, "properties": {"repobilityId": "25fd5612ee15e6f8", "scanner": "scanner-primary", "fingerprint": "381676ba4a8a8038", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "mypage/mypage.js"}, "region": {"startLine": 31}}}]}, {"ruleId": "scanner-5c4339a7b59cb552", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in mypage/index.html:376"}, "properties": {"repobilityId": "4eb1904002a04bad", "scanner": "scanner-primary", "fingerprint": "5c4339a7b59cb552", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "mypage/index.html"}, "region": {"startLine": 376}}}]}, {"ruleId": "scanner-0c3f38e982e0b677", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in mypage/resume/edit.html:551"}, "properties": {"repobilityId": "55ccedccbd0c1c02", "scanner": "scanner-primary", "fingerprint": "0c3f38e982e0b677", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "mypage/resume/edit.html"}, "region": {"startLine": 551}}}]}, {"ruleId": "scanner-0b36e515db32fc6b", "level": "warning", "message": {"text": "Insecure pattern 'insert_adjacent_html' in mypage/resume/edit.html:381"}, "properties": {"repobilityId": "fa409f776e3b0f5e", "scanner": "scanner-primary", "fingerprint": "0b36e515db32fc6b", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "insert_adjacent_html"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "mypage/resume/edit.html"}, "region": {"startLine": 381}}}]}, {"ruleId": "scanner-2a5699633dae60f3", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in mypage/resume/index.html:100"}, "properties": {"repobilityId": "5508f481e9162788", "scanner": "scanner-primary", "fingerprint": "2a5699633dae60f3", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "mypage/resume/index.html"}, "region": {"startLine": 100}}}]}, {"ruleId": "scanner-1aa8aa096a49e1fb", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in mypage/favorites/index.html:139"}, "properties": {"repobilityId": "bbb45c99aac83f04", "scanner": "scanner-primary", "fingerprint": "1aa8aa096a49e1fb", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "mypage/favorites/index.html"}, "region": {"startLine": 139}}}]}, {"ruleId": "scanner-f7a49ddaff150949", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in mypage/preferences/index.html:378"}, "properties": {"repobilityId": "f266475136546244", "scanner": "scanner-primary", "fingerprint": "f7a49ddaff150949", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "mypage/preferences/index.html"}, "region": {"startLine": 378}}}]}, {"ruleId": "scanner-c1e62c8a8becdce0", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "19eb4268d280af38", "scanner": "scanner-primary", "fingerprint": "c1e62c8a8becdce0", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/deploy-pages.yml"}, "region": {"startLine": 24}}}]}, {"ruleId": "scanner-c1e62c8a8becdce0", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "4d9c072374e25292", "scanner": "scanner-primary", "fingerprint": "c1e62c8a8becdce0", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/deploy-pages.yml"}, "region": {"startLine": 70}}}]}, {"ruleId": "scanner-c1e62c8a8becdce0", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "293d3dbcb67ba2f7", "scanner": "scanner-primary", "fingerprint": "c1e62c8a8becdce0", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/deploy-pages.yml"}, "region": {"startLine": 73}}}]}, {"ruleId": "scanner-c1e62c8a8becdce0", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "4a5232ca5f9d3d6d", "scanner": "scanner-primary", "fingerprint": "c1e62c8a8becdce0", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/deploy-pages.yml"}, "region": {"startLine": 79}}}]}, {"ruleId": "scanner-11fe6710547243fb", "level": "warning", "message": {"text": "GitHub Actions workflow grants broad write permissions"}, "properties": {"repobilityId": "c88f07fd35b9711f", "scanner": "scanner-primary", "fingerprint": "11fe6710547243fb", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "least-privilege"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/deploy-pages.yml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-dbe9a4ea4f508334", "level": "note", "message": {"text": "Very large file: chat.js (1568 lines)"}, "properties": {"repobilityId": "f656ffc00e8d73b9", "scanner": "scanner-primary", "fingerprint": "dbe9a4ea4f508334", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-a2db50821b604a5b", "level": "note", "message": {"text": "Very large file: scripts/quality_checker.py (3540 lines)"}, "properties": {"repobilityId": "ef75c61a8f6a0d6e", "scanner": "scanner-primary", "fingerprint": "a2db50821b604a5b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-1f307cbaa9755a10", "level": "note", "message": {"text": "Very large file: scripts/generate_carousel.py (4442 lines)"}, "properties": {"repobilityId": "6e0ee65ec01ae0b2", "scanner": "scanner-primary", "fingerprint": "1f307cbaa9755a10", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-c8985f4fd7ab7fb0", "level": "note", "message": {"text": "Very large file: scripts/hellowork_to_d1.py (1193 lines)"}, "properties": {"repobilityId": "1dbcd54a155de7da", "scanner": "scanner-primary", "fingerprint": "c8985f4fd7ab7fb0", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-feeb5d980919caef", "level": "note", "message": {"text": "Very large file: scripts/tiktok_post.py (1835 lines)"}, "properties": {"repobilityId": "aba835a68e4d3feb", "scanner": "scanner-primary", "fingerprint": "feeb5d980919caef", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-1346af5149d8538a", "level": "note", "message": {"text": "Very large file: scripts/watchdog.py (2739 lines)"}, "properties": {"repobilityId": "6ee09cd11f243bf0", "scanner": "scanner-primary", "fingerprint": "1346af5149d8538a", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-85b92d3a92bb18b1", "level": "note", "message": {"text": "Very large file: scripts/ai_content_engine.py (2894 lines)"}, "properties": {"repobilityId": "7ea40c4f2b496e4f", "scanner": "scanner-primary", "fingerprint": "85b92d3a92bb18b1", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-6e35c390af9f08b3", "level": "note", "message": {"text": "Very large file: scripts/audit/generate_remaining_cases.py (2301 lines)"}, "properties": {"repobilityId": "e2cfcf8a4dacc3b7", "scanner": "scanner-primary", "fingerprint": "6e35c390af9f08b3", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-ea3b5e389d8c9c0f", "level": "note", "message": {"text": "Low test-to-source ratio"}, "properties": {"repobilityId": "ef7b2552cc00a375", "scanner": "scanner-primary", "fingerprint": "ea3b5e389d8c9c0f", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["tests"]}}, {"ruleId": "scanner-141b30a41e03817b", "level": "note", "message": {"text": "No license file detected"}, "properties": {"repobilityId": "cd6613295fcad728", "scanner": "scanner-primary", "fingerprint": "141b30a41e03817b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["license", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-53b5ceeec3045a9b", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: api-aica/package.json"}, "properties": {"repobilityId": "8a29289f70f2af84", "scanner": "scanner-primary", "fingerprint": "53b5ceeec3045a9b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "api-aica/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-3ab5d313dda8e5f9", "level": "note", "message": {"text": "Debug logging residue appears in source files"}, "properties": {"repobilityId": "e17ad49b001ae929", "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": "3eb1fd1568dcc7e2", "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": "04cfb847e127d726", "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": "e2e30f469952defa", "scanner": "scanner-primary", "fingerprint": "b9088664ace7f748", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["production-readiness", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-749d4bc1bd66df5f", "level": "warning", "message": {"text": "Agent instructions exist but release-hardening basics are missing"}, "properties": {"repobilityId": "85727010d0afe18d", "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": "9bec72c3293ba0e4", "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": "19377454a4c128dd", "scanner": "scanner-primary", "fingerprint": "8424db9c75e04ba4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["provenance", "git-history", "generated-repo-pattern"]}}, {"ruleId": "scanner-122f91b7f2906dc4", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/settings.json"}, "properties": {"repobilityId": "a2967269048b6a9d", "scanner": "scanner-primary", "fingerprint": "122f91b7f2906dc4", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/settings.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-e7169245f478e3f7", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/rules/scripts.md"}, "properties": {"repobilityId": "016501b9c3df42a2", "scanner": "scanner-primary", "fingerprint": "e7169245f478e3f7", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/rules/scripts.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-8a1dd4583cfc8d82", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/agents/site-check.md"}, "properties": {"repobilityId": "af2e5c713e4db86b", "scanner": "scanner-primary", "fingerprint": "8a1dd4583cfc8d82", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/agents/site-check.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-5f83a6d25a7616bc", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/agents/content-gen.md"}, "properties": {"repobilityId": "55b94774a932a5e5", "scanner": "scanner-primary", "fingerprint": "5f83a6d25a7616bc", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/agents/content-gen.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-fd52c8470e79633a", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/agents/pdca.md"}, "properties": {"repobilityId": "e465564cb07eae11", "scanner": "scanner-primary", "fingerprint": "fd52c8470e79633a", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/agents/pdca.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-ca792dc1d4184a95", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/agents/seo-audit.md"}, "properties": {"repobilityId": "3e388b289e0b4615", "scanner": "scanner-primary", "fingerprint": "ca792dc1d4184a95", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/agents/seo-audit.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-a3ddee03299c0e80", "level": "none", "message": {"text": "Commented-code block (6 lines) in script.js:195"}, "properties": {"repobilityId": "a5a889da62b2342a", "scanner": "scanner-primary", "fingerprint": "a3ddee03299c0e80", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-43146ff249cb77c8", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 script.js:525"}, "properties": {"repobilityId": "4d8337f29eec5e04", "scanner": "scanner-primary", "fingerprint": "43146ff249cb77c8", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-176998e4c36f860a", "level": "none", "message": {"text": "Commented-code block (5 lines) in chat.js:1"}, "properties": {"repobilityId": "995ebb54f40fa87a", "scanner": "scanner-primary", "fingerprint": "176998e4c36f860a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2d1cb4846690a77c", "level": "none", "message": {"text": "Commented-code block (9 lines) in slack-notify.js:1"}, "properties": {"repobilityId": "0fd7abd19c3cf015", "scanner": "scanner-primary", "fingerprint": "2d1cb4846690a77c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b42a2623c9949202", "level": "none", "message": {"text": "Commented-code block (8 lines) in tests/jobsearchRouting.smoke.test.mjs:9"}, "properties": {"repobilityId": "64112ec3ae36eef0", "scanner": "scanner-primary", "fingerprint": "b42a2623c9949202", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d516866bf2f6ee8a", "level": "none", "message": {"text": "Commented-code block (9 lines) in tests/sqlConstants.test.mjs:1"}, "properties": {"repobilityId": "a7c00cb08867e88b", "scanner": "scanner-primary", "fingerprint": "d516866bf2f6ee8a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8f28443fc903f78e", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/getOrCreateSessionId.test.mjs:1"}, "properties": {"repobilityId": "fad86e774bcdde95", "scanner": "scanner-primary", "fingerprint": "8f28443fc903f78e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4b368068fc483a89", "level": "none", "message": {"text": "Commented-code block (7 lines) in tests/matchStrictness.test.mjs:1"}, "properties": {"repobilityId": "e87c62a3d1ae4645", "scanner": "scanner-primary", "fingerprint": "4b368068fc483a89", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1094788676f81f93", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/parseSourceContext.test.mjs:1"}, "properties": {"repobilityId": "e109a53e79ac4ee7", "scanner": "scanner-primary", "fingerprint": "1094788676f81f93", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9a9de66bd08da3ba", "level": "none", "message": {"text": "Commented-code block (6 lines) in api/worker_facilities.js:1"}, "properties": {"repobilityId": "3074f119cc3aa864", "scanner": "scanner-primary", "fingerprint": "9a9de66bd08da3ba", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f857e8a7db64e601", "level": "none", "message": {"text": "Commented-code block (6 lines) in api/lib/flex.js:161"}, "properties": {"repobilityId": "e096b3ce0016c5be", "scanner": "scanner-primary", "fingerprint": "f857e8a7db64e601", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-751157bf17202c56", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 api/lib/matching_rationale.js:201"}, "properties": {"repobilityId": "0e74f4cabaef0021", "scanner": "scanner-primary", "fingerprint": "751157bf17202c56", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-c9b3755d3253e412", "level": "none", "message": {"text": "Commented-code block (5 lines) in api/lib/facility_name.js:20"}, "properties": {"repobilityId": "531eb51b54e71257", "scanner": "scanner-primary", "fingerprint": "c9b3755d3253e412", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f57e5bb445fc95eb", "level": "none", "message": {"text": "Commented-code block (5 lines) in api/lib/source_medium.js:63"}, "properties": {"repobilityId": "4230c605f83c7168", "scanner": "scanner-primary", "fingerprint": "f57e5bb445fc95eb", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9bc3d1cb538f84d0", "level": "note", "message": {"text": "Legacy-named symbol `final_slides_v2` in docs/archive/add_text_overlay_v2.py:14"}, "properties": {"repobilityId": "51a5ed51dbfec5e4", "scanner": "scanner-primary", "fingerprint": "9bc3d1cb538f84d0", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-2cc4f6467ececf14", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 scripts/sns_v2_refresh_token.py:58"}, "properties": {"repobilityId": "59052911519e2222", "scanner": "scanner-primary", "fingerprint": "2cc4f6467ececf14", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-40f5945bd49bd6ba", "level": "note", "message": {"text": "Legacy-named symbol `heartbeat_v2` in scripts/hellowork_detail_scrape.py:82"}, "properties": {"repobilityId": "4e9e7b403b0b7039", "scanner": "scanner-primary", "fingerprint": "40f5945bd49bd6ba", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-d6a88aad7eab6bc9", "level": "none", "message": {"text": "Commented-code block (10 lines) in scripts/quality_checker.py:2520"}, "properties": {"repobilityId": "a6b9468acc7c8737", "scanner": "scanner-primary", "fingerprint": "d6a88aad7eab6bc9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8d25ccda4769c641", "level": "note", "message": {"text": "Legacy-named symbol `d_old` in scripts/kpi_handoff_weekly_pdca.py:229"}, "properties": {"repobilityId": "0f6c0d8d222f0e81", "scanner": "scanner-primary", "fingerprint": "8d25ccda4769c641", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-2277cb4a9e138f20", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 scripts/validate_data.py:21"}, "properties": {"repobilityId": "ef36766ecb61a722", "scanner": "scanner-primary", "fingerprint": "2277cb4a9e138f20", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-ebbfb9f69e762258", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/test_quality_checker.py:194"}, "properties": {"repobilityId": "ab4b1bdaa1043f13", "scanner": "scanner-primary", "fingerprint": "ebbfb9f69e762258", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-72840b81cf694e44", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/image_humanizer.py:274"}, "properties": {"repobilityId": "01df88c4013f2a53", "scanner": "scanner-primary", "fingerprint": "72840b81cf694e44", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f474def9eb822b59", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/hellowork_to_d1.py:770"}, "properties": {"repobilityId": "cc837921c8098153", "scanner": "scanner-primary", "fingerprint": "f474def9eb822b59", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8578a7eed0691dae", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 scripts/phase_transition_weekly_report.py:64"}, "properties": {"repobilityId": "7ba626b2556c4885", "scanner": "scanner-primary", "fingerprint": "8578a7eed0691dae", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-93c209b5c0d23d25", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 scripts/hellowork_worker_safe_check.py:28"}, "properties": {"repobilityId": "b246236bdbcc2494", "scanner": "scanner-primary", "fingerprint": "93c209b5c0d23d25", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-98ddf2a3f52e9d37", "level": "note", "message": {"text": "Legacy-named symbol `collect_aica_v2` in scripts/kpi_realtime.py:420"}, "properties": {"repobilityId": "193fe55d25b2a8e8", "scanner": "scanner-primary", "fingerprint": "98ddf2a3f52e9d37", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-aa6cf2db9591b43c", "level": "none", "message": {"text": "Commented-code block (10 lines) in scripts/kpi_realtime.py:60"}, "properties": {"repobilityId": "95941a65f972fdd4", "scanner": "scanner-primary", "fingerprint": "aa6cf2db9591b43c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f45b6406a9ded612", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 scripts/meta_ads_create_v7_ad4_ad5.py:69"}, "properties": {"repobilityId": "94355cf3b5e0617c", "scanner": "scanner-primary", "fingerprint": "f45b6406a9ded612", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-a6911822d8be6a96", "level": "note", "message": {"text": "Legacy-named symbol `hook_patterns_v2` in scripts/robby_character.py:946"}, "properties": {"repobilityId": "ae24d38f8fef7623", "scanner": "scanner-primary", "fingerprint": "a6911822d8be6a96", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-7fb362795096bce5", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/test_richmenu_personas.py:180"}, "properties": {"repobilityId": "6d8be1111e70bcb9", "scanner": "scanner-primary", "fingerprint": "7fb362795096bce5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6ffe075a4c5a7afc", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 scripts/fetch_shitei_vn.py:219"}, "properties": {"repobilityId": "23963202fbf87c92", "scanner": "scanner-primary", "fingerprint": "6ffe075a4c5a7afc", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-f1b902e428536238", "level": "note", "message": {"text": "Legacy-named symbol `slides_copy` in scripts/sns_v2_render.py:924"}, "properties": {"repobilityId": "64cb3f240ac2f517", "scanner": "scanner-primary", "fingerprint": "f1b902e428536238", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-c3dc947a95867cb8", "level": "note", "message": {"text": "Legacy-named symbol `generate_guides_v2` in scripts/seo_queue_consumer.py:49"}, "properties": {"repobilityId": "213f32cbd794c602", "scanner": "scanner-primary", "fingerprint": "c3dc947a95867cb8", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-eeaafdfb4b3aae42", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 scripts/init_kv_encryption_key.py:63"}, "properties": {"repobilityId": "787e7f28405fd13e", "scanner": "scanner-primary", "fingerprint": "eeaafdfb4b3aae42", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-a38eb69b3b0001ea", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/cron_sync_check.py:202"}, "properties": {"repobilityId": "426c128a2eb6f784", "scanner": "scanner-primary", "fingerprint": "a38eb69b3b0001ea", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-bfe054a8b88d7e2a", "level": "note", "message": {"text": "Legacy-named symbol `heartbeat_v2` in scripts/clarity_report.py:338"}, "properties": {"repobilityId": "ff2bbcb8288978ed", "scanner": "scanner-primary", "fingerprint": "bfe054a8b88d7e2a", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-4c3795aabde17071", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 scripts/tiktok_post.py:217"}, "properties": {"repobilityId": "ff1985545c003048", "scanner": "scanner-primary", "fingerprint": "4c3795aabde17071", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-fad3643df84bad51", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 scripts/indexnow_ping.py:16"}, "properties": {"repobilityId": "283c5d0fd99277c7", "scanner": "scanner-primary", "fingerprint": "fad3643df84bad51", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-ff72724d2fd4b8f8", "level": "note", "message": {"text": "Legacy-named symbol `encrypt_v1` in scripts/kv_reencrypt.py:67"}, "properties": {"repobilityId": "678f362cba7729b9", "scanner": "scanner-primary", "fingerprint": "ff72724d2fd4b8f8", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-89f8cd442ff9cb01", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 scripts/kv_reencrypt.py:85"}, "properties": {"repobilityId": "a63f5b61f9fe266d", "scanner": "scanner-primary", "fingerprint": "89f8cd442ff9cb01", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-61d8dc7ad8407c9f", "level": "note", "message": {"text": "Legacy-named symbol `get_next_unposted_legacy` in scripts/auto_post.py:194"}, "properties": {"repobilityId": "42692e59062e09d6", "scanner": "scanner-primary", "fingerprint": "61d8dc7ad8407c9f", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-201b8d70c7dd3d76", "level": "note", "message": {"text": "Legacy-named symbol `heartbeat_v2` in scripts/sns_v2_insights.py:254"}, "properties": {"repobilityId": "9c7ae4cdfdfcf9cf", "scanner": "scanner-primary", "fingerprint": "201b8d70c7dd3d76", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-25329860da311e15", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 scripts/import_egov_facilities.py:254"}, "properties": {"repobilityId": "4cf8105132dc0edf", "scanner": "scanner-primary", "fingerprint": "25329860da311e15", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-5c91f63aa48ace88", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 scripts/sns_v2_init_sheets.py:176"}, "properties": {"repobilityId": "5295e79fd47380f7", "scanner": "scanner-primary", "fingerprint": "5c91f63aa48ace88", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-55bed240a37c2e58", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/hellowork_to_jobs.py:97"}, "properties": {"repobilityId": "4f62b744a9999ac6", "scanner": "scanner-primary", "fingerprint": "55bed240a37c2e58", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3af6fb1a03bc89d9", "level": "note", "message": {"text": "Legacy-named symbol `generate_guides_v2` in scripts/generate_guides_v2.py:7"}, "properties": {"repobilityId": "72e2ca242c2a3b2b", "scanner": "scanner-primary", "fingerprint": "3af6fb1a03bc89d9", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-2137b6a0f3c51cc1", "level": "note", "message": {"text": "Legacy-named symbol `content_legacy` in scripts/watchdog.py:207"}, "properties": {"repobilityId": "82921ee78d5e6fea", "scanner": "scanner-primary", "fingerprint": "2137b6a0f3c51cc1", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-ea1e7ca4f4c8b8bc", "level": "none", "message": {"text": "Commented-code block (9 lines) in scripts/watchdog.py:610"}, "properties": {"repobilityId": "62d8704caa6ff4e3", "scanner": "scanner-primary", "fingerprint": "ea1e7ca4f4c8b8bc", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d787adee13b6af99", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 scripts/fetch_analytics.py:45"}, "properties": {"repobilityId": "a854d0adcc4a5e0f", "scanner": "scanner-primary", "fingerprint": "d787adee13b6af99", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-d6dbef314dc6f65d", "level": "note", "message": {"text": "Legacy-named symbol `heartbeat_v2` in scripts/lib_heartbeat.py:12"}, "properties": {"repobilityId": "2d6310d961effa75", "scanner": "scanner-primary", "fingerprint": "d6dbef314dc6f65d", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-7385739ca1b5b303", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/jobsearch_d1_smoke.mjs:11"}, "properties": {"repobilityId": "20a0b0bcd96bffee", "scanner": "scanner-primary", "fingerprint": "7385739ca1b5b303", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1948177933589ea7", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 scripts/survival_scoreboard.py:131"}, "properties": {"repobilityId": "0766d1eb49bef99b", "scanner": "scanner-primary", "fingerprint": "1948177933589ea7", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-d76b886913cac166", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/generate_worker_facilities.js:665"}, "properties": {"repobilityId": "138c986379aaf646", "scanner": "scanner-primary", "fingerprint": "d76b886913cac166", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8d1ce1854dbb51ea", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 scripts/claude_cli_helper.py:18"}, "properties": {"repobilityId": "461a40f3f3d8aa20", "scanner": "scanner-primary", "fingerprint": "8d1ce1854dbb51ea", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-bd6ef766baf55128", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 scripts/job_card_event_report.py:49"}, "properties": {"repobilityId": "de812d35799fd547", "scanner": "scanner-primary", "fingerprint": "bd6ef766baf55128", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-aff4be0a67d268b0", "level": "note", "message": {"text": "Legacy-named symbol `sns_v2` in scripts/sns_v2_post.py:237"}, "properties": {"repobilityId": "8e05f79fa025e57b", "scanner": "scanner-primary", "fingerprint": "aff4be0a67d268b0", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-33b2658997a8dde5", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 scripts/sns_v2_post.py:59"}, "properties": {"repobilityId": "b5d7944ed5ed46a0", "scanner": "scanner-primary", "fingerprint": "33b2658997a8dde5", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-b8f19e2658cbe68a", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 scripts/rotate_admin_secrets.py:64"}, "properties": {"repobilityId": "3a8217fd7b1dca56", "scanner": "scanner-primary", "fingerprint": "b8f19e2658cbe68a", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-4fd186980773c576", "level": "note", "message": {"text": "Legacy-named symbol `heartbeat_v2` in scripts/sync_heartbeats_to_kv.py:256"}, "properties": {"repobilityId": "e0ad9cc5145f319d", "scanner": "scanner-primary", "fingerprint": "4fd186980773c576", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-91347181b0ea0838", "level": "none", "message": {"text": "Commented-code block (6 lines) in scripts/matching_keyset_lint.mjs:4"}, "properties": {"repobilityId": "69bc7390d5b329a1", "scanner": "scanner-primary", "fingerprint": "91347181b0ea0838", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9b7177b256a62902", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 scripts/daily_ads_report.py:34"}, "properties": {"repobilityId": "6c2ff33be5c529e1", "scanner": "scanner-primary", "fingerprint": "9b7177b256a62902", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-fa0219de32ef7da5", "level": "note", "message": {"text": "Legacy-named symbol `ssid_ucp_v1` in scripts/tiktok_cookie_refresh.py:19"}, "properties": {"repobilityId": "6e36f80b5b1aeedd", "scanner": "scanner-primary", "fingerprint": "fa0219de32ef7da5", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-95202156b2b22a32", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 scripts/ig_post_meta_suite.py:645"}, "properties": {"repobilityId": "526cd6c6139d5634", "scanner": "scanner-primary", "fingerprint": "95202156b2b22a32", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-60ab4fccde384835", "level": "note", "message": {"text": "Legacy-named symbol `slides_copy` in scripts/sns_v2_lint.py:3"}, "properties": {"repobilityId": "6be3ab870b8c5191", "scanner": "scanner-primary", "fingerprint": "60ab4fccde384835", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-f4e867c540db5348", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/unify_header_footer.py:112"}, "properties": {"repobilityId": "ab779009e8514737", "scanner": "scanner-primary", "fingerprint": "f4e867c540db5348", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-49fb5cad3565d1c5", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 scripts/sns_v2_fill_sheets.py:144"}, "properties": {"repobilityId": "d4d80781c62869c1", "scanner": "scanner-primary", "fingerprint": "49fb5cad3565d1c5", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-c03c8b02465b6624", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 scripts/update_area_pages.py:50"}, "properties": {"repobilityId": "71db28bf4b18add6", "scanner": "scanner-primary", "fingerprint": "c03c8b02465b6624", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-4dc7d045fed2669e", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/tests/test_career_sheet_phone_required.mjs:1"}, "properties": {"repobilityId": "8a36a50681859cdf", "scanner": "scanner-primary", "fingerprint": "4dc7d045fed2669e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-84b736f9680841c0", "level": "note", "message": {"text": "Legacy-named symbol `planner_v1` in scripts/audit/generate_initial_cases.py:126"}, "properties": {"repobilityId": "86b999ba152f75a8", "scanner": "scanner-primary", "fingerprint": "84b736f9680841c0", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-71ed712f1790d9ea", "level": "note", "message": {"text": "Legacy-named symbol `render_yaml_v2` in scripts/audit/generate_remaining_cases.py:51"}, "properties": {"repobilityId": "66ce131fda6de461", "scanner": "scanner-primary", "fingerprint": "71ed712f1790d9ea", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-cd2142a1f5020023", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 scripts/audit/lib/git_helper.py:82"}, "properties": {"repobilityId": "8c818a5e51710fe3", "scanner": "scanner-primary", "fingerprint": "cd2142a1f5020023", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-99a1b1c64ec43f52", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 scripts/deprecated/post_to_tiktok.py:128"}, "properties": {"repobilityId": "e170ab2342df6ca2", "scanner": "scanner-primary", "fingerprint": "99a1b1c64ec43f52", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-4d466b6cb8b9e59b", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 api-aica/src/index.js:48"}, "properties": {"repobilityId": "24c4cd211f104c8f", "scanner": "scanner-primary", "fingerprint": "4d466b6cb8b9e59b", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-cff15f12010ba2db", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 api-aica/src/lib/slack.js:20"}, "properties": {"repobilityId": "e42537b00d739431", "scanner": "scanner-primary", "fingerprint": "cff15f12010ba2db", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-34370ec06d1ea15c", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 api-aica/src/lib/line.js:40"}, "properties": {"repobilityId": "feb49b55b63411d9", "scanner": "scanner-primary", "fingerprint": "34370ec06d1ea15c", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-1bf1ce0ec9228ebb", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 api-aica/src/lib/openai.js:138"}, "properties": {"repobilityId": "057664ee530d49e2", "scanner": "scanner-primary", "fingerprint": "1bf1ce0ec9228ebb", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-da62d0de21b78dfe", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 mypage/mypage.js:165"}, "properties": {"repobilityId": "247c2b09ac63579e", "scanner": "scanner-primary", "fingerprint": "da62d0de21b78dfe", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "d0f571ddeec8fd1b", "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": "115433e3fbaf5fe7", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-02525d39071dd2c7", "level": "note", "message": {"text": "Near-duplicate function bodies in 5 places"}, "properties": {"repobilityId": "f925687399ead462", "scanner": "scanner-primary", "fingerprint": "02525d39071dd2c7", "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": "41ff98a9c7ba54aa", "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": "1d7f05af416c2c8a", "scanner": "scanner-primary", "fingerprint": "be46ea126aa5d8dc", "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": "649102d604a2a3a8", "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": "8fa2982060b1c483", "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": "469b02abc1b58498", "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": "c225fcc4a89cab9c", "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": "e654a68facd06a44", "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": "94448d6aee8480f1", "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": "7bd6b9594e669cf2", "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": "67346ec5ec2b7f0a", "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": "62679bb6bc2a49ba", "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": "6a7cf36085385135", "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": "f33999c19e6a2f2d", "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": "3ad542f69c89de69", "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": "70f29a00476fb07c", "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": "2e8306a7b492eb0c", "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": "30ac8cbc6ca57e49", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}]}]}