{"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-9bdbf540789e980e", "name": "Possibly dead Python function: setup_logging", "shortDescription": {"text": "Possibly dead Python function: setup_logging"}, "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-df6314d08435bc77", "name": "Possibly dead Python function: handle_starttag", "shortDescription": {"text": "Possibly dead Python function: handle_starttag"}, "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-c19fec0ef5f56906", "name": "Possibly dead Python function: handle_endtag", "shortDescription": {"text": "Possibly dead Python function: handle_endtag"}, "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-1b2d208116aa9a0c", "name": "Possibly dead Python function: handle_data", "shortDescription": {"text": "Possibly dead Python function: handle_data"}, "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-64fb354344185f59", "name": "Possibly dead Python function: filter_recently_featured", "shortDescription": {"text": "Possibly dead Python function: filter_recently_featured"}, "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-1846191794fbdcd1", "name": "Possibly dead Python function: limit_media_items", "shortDescription": {"text": "Possibly dead Python function: limit_media_items"}, "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-adc17831d8371415", "name": "Possibly dead Python function: handle_starttag", "shortDescription": {"text": "Possibly dead Python function: handle_starttag"}, "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-67b61c20016f50b6", "name": "Possibly dead Python function: handle_endtag", "shortDescription": {"text": "Possibly dead Python function: handle_endtag"}, "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-a7a32123f37db4f5", "name": "Possibly dead Python function: handle_data", "shortDescription": {"text": "Possibly dead Python function: handle_data"}, "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-de1457279664e3ab", "name": "Possibly dead Python function: log_message", "shortDescription": {"text": "Possibly dead Python function: log_message"}, "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-8d776c6889ac91e0", "name": "Possibly dead Python function: do_GET", "shortDescription": {"text": "Possibly dead Python function: do_GET"}, "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-629fbd5e9815718a", "name": "Possibly dead Python function: do_POST", "shortDescription": {"text": "Possibly dead Python function: do_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-c173c07737e1c0ad", "name": "Possibly dead Python function: parse_price_history", "shortDescription": {"text": "Possibly dead Python function: parse_price_history"}, "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-4463dfcd2fcb3150", "name": "Possibly dead Python function: sort_key", "shortDescription": {"text": "Possibly dead Python function: sort_key"}, "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-ddeca95ede46b0e3", "name": "Possibly dead Python function: log_message", "shortDescription": {"text": "Possibly dead Python function: log_message"}, "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-346ecf2a5e719a5b", "name": "Possibly dead Python function: do_GET", "shortDescription": {"text": "Possibly dead Python function: do_GET"}, "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-9597a46aba95e1fe", "name": "Possibly dead Python function: do_POST", "shortDescription": {"text": "Possibly dead Python function: do_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-5b94d9ba91da043f", "name": "Possibly dead Python function: do_GET", "shortDescription": {"text": "Possibly dead Python function: do_GET"}, "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-ea63b6e72af11e7c", "name": "Possibly dead Python function: do_OPTIONS", "shortDescription": {"text": "Possibly dead Python function: do_OPTIONS"}, "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-e65a3f370c3a1c0e", "name": "Insecure pattern 'direct_innerhtml_assignment' in generate_report.py:717", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in generate_report.py:717"}, "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-056c7f88deaf2a42", "name": "Insecure pattern 'direct_innerhtml_assignment' in review_deals.py:1185", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in review_deals.py:1185"}, "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-94458f3fab1ac58b", "name": "Insecure pattern 'cors_wildcard' in api/prices.py:202", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in api/prices.py:202"}, "fullDescription": {"text": "Found a known-risky pattern (cors_wildcard). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-0ab1266a9801bdeb", "name": "Possible secret in scripts/archive/convert_to_geniuslinks.py", "shortDescription": {"text": "Possible secret in scripts/archive/convert_to_geniuslinks.py"}, "fullDescription": {"text": "Detected pattern matching generic_api_key. Rotate the credential and move to a secret manager."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "critical", "confidence": 1.0}}, {"id": "scanner-a393b4fc346067dc", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-01-25.html:237", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-01-25.html:237"}, "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-928b06f39abfd6c7", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-03-24.html:316", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-03-24.html:316"}, "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-02a0dd35aac3dd48", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-04-08.html:317", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-04-08.html:317"}, "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-fa9d518e076a0e9b", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-06-03.html:317", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-06-03.html:317"}, "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-34469a32af2f6dd2", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-04-18.html:317", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-04-18.html:317"}, "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-4b9c7f473bfdd46b", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-01-22.html:237", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-01-22.html:237"}, "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-1784c6c20b8b0ab1", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-01-29.html:237", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-01-29.html:237"}, "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-2fed469be691eed5", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-03-27.html:316", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-03-27.html:316"}, "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-5b544a3ee3d24943", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-02-07.html:237", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-02-07.html:237"}, "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-7f3f0b640b2ec55a", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-03-30.html:316", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-03-30.html:316"}, "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-59d0b7a010549294", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-02-25.html:316", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-02-25.html:316"}, "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-2ef08deddad10330", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-02-17.html:280", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-02-17.html:280"}, "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-b5ed3c260a72fa46", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-01-24.html:237", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-01-24.html:237"}, "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-d40ef03095822b7b", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-02-04.html:237", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-02-04.html:237"}, "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-148c14f4f8f8f8e1", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-06-09.html:317", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-06-09.html:317"}, "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-276edc744e50838e", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-01-30.html:237", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-01-30.html:237"}, "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-f450e13d9cd34396", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-04-15.html:317", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-04-15.html:317"}, "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-7d67bed7f0fcc297", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-06-01.html:317", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-06-01.html:317"}, "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-738729e83056b0ef", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-01-21.html:237", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-01-21.html:237"}, "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-a41e34afbfdfb627", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-03-26.html:316", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-03-26.html:316"}, "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-5e9a93393ca4b766", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-04-01.html:316", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-04-01.html:316"}, "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-0c25b2336ae0da32", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-02-02.html:237", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-02-02.html:237"}, "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-dd66c7ddf9ed95df", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-03-12.html:316", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-03-12.html:316"}, "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-76a799dc8f1e2d0c", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-01-27.html:237", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-01-27.html:237"}, "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-1fade95f88424a92", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-04-20.html:317", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-04-20.html:317"}, "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-cd2897459be51c07", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-05-12.html:317", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-05-12.html:317"}, "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-8da448137030663a", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-02-14.html:265", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-02-14.html:265"}, "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-1e4c415d59cdcdbc", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-06-11.html:317", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-06-11.html:317"}, "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-cb3f2b5695900d54", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-05-21.html:317", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-05-21.html:317"}, "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-b106f91076ceca00", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-02-16.html:286", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-02-16.html:286"}, "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-b2685643c99ee3dc", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-02-23.html:316", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-02-23.html:316"}, "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-073abbb1177a8078", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-01-20.html:237", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-01-20.html:237"}, "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-644c9abee7ea40c6", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-04-14.html:317", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-04-14.html:317"}, "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-2981e0f2f1d922be", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-04-16.html:317", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-04-16.html:317"}, "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-3fd52d6e6bee7eac", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-06-02.html:317", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-06-02.html:317"}, "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-0e3196ce413e86ef", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-05-19.html:317", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-05-19.html:317"}, "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-34ca497acdd9c862", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-05-05.html:317", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-05-05.html:317"}, "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-e3eb753fddba4b63", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-03-09.html:316", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-03-09.html:316"}, "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-fd617c2616854a08", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-03-11.html:316", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-03-11.html:316"}, "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-1ea0ae6fed9918df", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-04-09.html:317", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-04-09.html:317"}, "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-9bd12b6e0870920c", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-02-13.html:265", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-02-13.html:265"}, "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-cf6b2087861261f8", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-05-06.html:317", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-05-06.html:317"}, "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-5f17b98532a3f400", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-03-14.html:316", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-03-14.html:316"}, "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-6a8141e16e8f7c16", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-05-14.html:317", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-05-14.html:317"}, "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-db97b5a6cb2c7dd2", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-04-28.html:317", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-04-28.html:317"}, "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-d363cb6035a99164", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-02-15.html:286", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-02-15.html:286"}, "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-5facd926b3d54e75", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-06-15.html:317", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-06-15.html:317"}, "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-99fd46745a55b6e1", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-02-10.html:265", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-02-10.html:265"}, "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-72a9260a364e9d99", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-04-23.html:317", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-04-23.html:317"}, "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-ab43d149e9359a12", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-04-13.html:317", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-04-13.html:317"}, "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-20fbf9f93e0e5064", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-05-28.html:317", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-05-28.html:317"}, "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-b7022fc38e97ba5f", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-02-03.html:237", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-02-03.html:237"}, "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-dc7b65b2be353b8e", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-05-18.html:317", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-05-18.html:317"}, "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-8f55ed287bb63a55", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-06-05.html:317", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-06-05.html:317"}, "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-b4edf000a69700d0", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-03-17.html:316", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-03-17.html:316"}, "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-dbf38ee12ad51ce6", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-02-19.html:280", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-02-19.html:280"}, "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-e63c339ce21f34d2", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-03-23.html:316", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-03-23.html:316"}, "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-b92a16a99668e203", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-05-04.html:317", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-05-04.html:317"}, "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-27546e0bfd4fa525", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-01-28.html:237", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-01-28.html:237"}, "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-b63966743acebcdb", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-04-10.html:317", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-04-10.html:317"}, "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-f1c8b9ecd80c3f53", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-05-11.html:317", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-05-11.html:317"}, "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-af9017d4daad1c1a", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-05-27.html:317", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-05-27.html:317"}, "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-f399d6154ac40778", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-05-13.html:317", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-05-13.html:317"}, "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-1d12f610ad86bdb1", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-02-05.html:237", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-02-05.html:237"}, "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-8816b455d3e480de", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-02-06.html:237", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-02-06.html:237"}, "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-a3c79a9332eaf0c9", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-02-27.html:316", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-02-27.html:316"}, "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-c0edec7bd6b8100d", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-04-17.html:317", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-04-17.html:317"}, "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-1f7071775080d451", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-02-18.html:280", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-02-18.html:280"}, "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-3627becd239a3e3c", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-03-20.html:316", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-03-20.html:316"}, "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-e5945e47b349bd49", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-04-21.html:317", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-04-21.html:317"}, "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-b4ac29d3d9ea9037", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-03-31.html:316", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-03-31.html:316"}, "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-88c924c2f52467a6", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-02-24.html:316", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-02-24.html:316"}, "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-8bf15c5ff0e2c001", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-01-26.html:237", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-01-26.html:237"}, "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-4e6ad8c31239f842", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-05-15.html:317", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-05-15.html:317"}, "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-62fed39e66dffaeb", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-03-16.html:316", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-03-16.html:316"}, "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-6bb0076335bf0471", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-01-31.html:237", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-01-31.html:237"}, "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-a9ad245845227442", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-02-12.html:265", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-02-12.html:265"}, "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-368dcecba275c0c7", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-02-26.html:316", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-02-26.html:316"}, "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-9cac5d1ba6cf457b", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-01-23.html:237", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-01-23.html:237"}, "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-35a9add1a9d4f4e8", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-05-30.html:317", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-05-30.html:317"}, "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-ecb057d5a231b676", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-03-21.html:316", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-03-21.html:316"}, "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-72d7916ee1928ace", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-04-06.html:317", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-04-06.html:317"}, "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-3088f2e20dd19acd", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-02-09.html:265", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-02-09.html:265"}, "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-972099c3cd01873b", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-06-04.html:317", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-06-04.html:317"}, "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-a45722876c308b78", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-02-01.html:237", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-02-01.html:237"}, "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-7a91e5ea29bffb17", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-02-21.html:284", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-02-21.html:284"}, "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-fefbc0708dc66f1a", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-03-05.html:316", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-03-05.html:316"}, "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-bd1da7025f10245b", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-04-22.html:317", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-04-22.html:317"}, "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-e20a9bec14762bf8", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-04-29.html:317", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-04-29.html:317"}, "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-3e87f2b96badc408", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-04-03.html:317", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-04-03.html:317"}, "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-e7588f9ebca2ca2f", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-02-08.html:265", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-02-08.html:265"}, "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-7cfe8b9ce1a39c76", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-03-19.html:316", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-03-19.html:316"}, "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-aaee7971d6b8b975", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/index.html:463", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/index.html:463"}, "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-f5a38748a71b1411", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-05-25.html:317", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-05-25.html:317"}, "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-31f32128bd649165", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-04-24.html:317", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-04-24.html:317"}, "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-959935dfdc2f8f2f", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-04-02.html:316", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-04-02.html:316"}, "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-c7158b63ad8a9314", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-06-10.html:317", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-06-10.html:317"}, "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-9f694419a66e1d47", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-05-29.html:317", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-05-29.html:317"}, "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-9fbb05217bd60683", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/review.html:569", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/review.html:569"}, "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-45b85c2c7d6bfc57", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-05-07.html:317", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-05-07.html:317"}, "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-e65b5df1c06f8b2c", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-03-06.html:316", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-03-06.html:316"}, "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-3a9dbb135644a3b5", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-04-27.html:317", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-04-27.html:317"}, "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-8448802949bb70e0", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-02-22.html:284", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-02-22.html:284"}, "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-91f8030563dfecf9", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-03-18.html:316", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-03-18.html:316"}, "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-2806930553c0e66b", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-06-12.html:317", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-06-12.html:317"}, "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-adc3eb24893ad298", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-05-20.html:317", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-05-20.html:317"}, "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-8dd1bedc39cb9df3", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-03-04.html:316", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-03-04.html:316"}, "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-2e0ee22fde3b80d9", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-04-30.html:317", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-04-30.html:317"}, "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-5edd8ba8f0f03285", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-06-08.html:317", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-06-08.html:317"}, "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-8b312931d74d02de", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-03-10.html:316", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-03-10.html:316"}, "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-86193ad86533e569", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-03-25.html:316", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-03-25.html:316"}, "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-88894d7e8a135d99", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-02-11.html:265", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-02-11.html:265"}, "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-6b1710845dfd7906", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-04-07.html:317", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-04-07.html:317"}, "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-72e196236230f58d", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-02-20.html:280", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-02-20.html:280"}, "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-02eb2b2f237b6021", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-03-13.html:316", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-03-13.html:316"}, "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-ee19fe5bb4734b52", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-05-08.html:317", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-05-08.html:317"}, "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-1a39207e33f9e0cd", "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-0838101cb480f155", "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-4f6a4f55a8e374d0", "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-9a5b1ebeb1f50eef", "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-1a50467f36b413ec", "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-001aa8a3e2ad87b0", "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-8b691b9f06c51aa3", "name": "Very large file: review_deals.py (2032 lines)", "shortDescription": {"text": "Very large file: review_deals.py (2032 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-c9dd2c552f3eb0fb", "name": "Very large file: create_review_page.py (1515 lines)", "shortDescription": {"text": "Very large file: create_review_page.py (1515 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": "5 tests / 23 src (ratio 0.22)."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-141b30a41e03817b", "name": "No license file detected", "shortDescription": {"text": "No license file detected"}, "fullDescription": {"text": "No LICENSE/COPYING/NOTICE file was found. Generated repositories often omit licensing, which blocks reuse and automated intake."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-3ab5d313dda8e5f9", "name": "Debug logging residue appears in source files", "shortDescription": {"text": "Debug logging residue appears in source files"}, "fullDescription": {"text": "Found 413 console/debugger/print-style debug statements in non-test source. This is a common fast-generation residue before production cleanup."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-2d0c7b7ab8f8aacf", "name": "Critical user flow still appears backed by mock or placeholder data", "shortDescription": {"text": "Critical user flow still appears backed by mock or placeholder data"}, "fullDescription": {"text": "A payment/auth/admin/order/billing-style flow contains mock, fake, TODO, dummy, or placeholder markers in runtime source. In the Fable corpus this is a high-leverage completeness smell: the app can look finished while the money, identity, or tenant flow is still scaffolded."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-749d4bc1bd66df5f", "name": "Agent instructions exist but release-hardening basics are missing", "shortDescription": {"text": "Agent instructions exist but release-hardening basics are missing"}, "fullDescription": {"text": "AI-coder instruction files were found, but the repo is missing license. 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-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-231d05732eb371e6", "name": "Agent authority lacks a verifier contract: .claude/agents/deal-analyzer.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/agents/deal-analyzer.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-2469d24bc19da987", "name": "Agent authority lacks a verifier contract: .claude/skills/catalog-cleanup/SKILL.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/skills/catalog-cleanup/SKILL.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-ea0e000ad3394347", "name": "Agent authority lacks a verifier contract: .claude/skills/push-newsletter/SKILL.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/skills/push-newsletter/SKILL.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-12604fa40b1f1759", "name": "Agent authority lacks a verifier contract: .claude/skills/review-deals/SKILL.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/skills/review-deals/SKILL.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-0ea0487bd226f8ae", "name": "Agent authority lacks a verifier contract: .claude/skills/performance-report/SKILL.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/skills/performance-report/SKILL.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-55786fe7701677e0", "name": "Agent authority lacks a verifier contract: .claude/skills/regen-benefits/SKILL.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/skills/regen-benefits/SKILL.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-c01b099f8ec57657", "name": "Commented-code block (5 lines) in generate_report.py:391", "shortDescription": {"text": "Commented-code block (5 lines) in generate_report.py:391"}, "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-77da9d90daa3db5f", "name": "Network/subprocess call without timeout or try/except \u2014 review_deals.py:2003", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 review_deals.py:2003"}, "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-498e55e42733a146", "name": "Network/subprocess call without timeout or try/except \u2014 mailchimp_send.py:66", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 mailchimp_send.py:66"}, "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-b334d875f2339fa1", "name": "5 env vars used in code but missing from .env.example", "shortDescription": {"text": "5 env vars used in code but missing from .env.example"}, "fullDescription": {"text": "Drift between code and config docs. The first few: `CATALOG_MODE`, `PA_API_CACHE_TTL_SECS`, `PA_API_DEBUG`, `USE_CLAUDE_CLI`, `VERCEL_URL`. Add them (with a placeholder/comment) to .env.example so onboarding doesn't break."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-2c04133e54348533", "name": "Near-duplicate function bodies in 2 places", "shortDescription": {"text": "Near-duplicate function bodies in 2 places"}, "fullDescription": {"text": "Functions with the same first-5-line body hash:\ngenerate_all_benefits.py:fetch_article_html, review_deals.py:fetch_article_html\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:\nfetch_cooltools_campaigns.py:load_catalog, scripts/archive/fetch_latest_issue.py:load_catalog, catalog/import_cooltools.py:load_catalog\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/25038"}, "properties": {"repository": "coconutlampshade/reco-deals", "repoUrl": "https://github.com/coconutlampshade/reco-deals", "branch": "main"}, "results": [{"ruleId": "scanner-9bdbf540789e980e", "level": "note", "message": {"text": "Possibly dead Python function: setup_logging"}, "properties": {"repobilityId": "e79074b18f293f2b", "scanner": "scanner-primary", "fingerprint": "9bdbf540789e980e", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "utils.py:78"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-df6314d08435bc77", "level": "note", "message": {"text": "Possibly dead Python function: handle_starttag"}, "properties": {"repobilityId": "3bf216d149959ebf", "scanner": "scanner-primary", "fingerprint": "df6314d08435bc77", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "generate_all_benefits.py:123"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-c19fec0ef5f56906", "level": "note", "message": {"text": "Possibly dead Python function: handle_endtag"}, "properties": {"repobilityId": "7eb6f3decafc1766", "scanner": "scanner-primary", "fingerprint": "c19fec0ef5f56906", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "generate_all_benefits.py:129"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-1b2d208116aa9a0c", "level": "note", "message": {"text": "Possibly dead Python function: handle_data"}, "properties": {"repobilityId": "3a673a278f4fc1e6", "scanner": "scanner-primary", "fingerprint": "1b2d208116aa9a0c", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "generate_all_benefits.py:135"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-64fb354344185f59", "level": "note", "message": {"text": "Possibly dead Python function: filter_recently_featured"}, "properties": {"repobilityId": "223c72f1e9f51bc7", "scanner": "scanner-primary", "fingerprint": "64fb354344185f59", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "generate_report.py:169"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-1846191794fbdcd1", "level": "note", "message": {"text": "Possibly dead Python function: limit_media_items"}, "properties": {"repobilityId": "189b7cf638f0ec22", "scanner": "scanner-primary", "fingerprint": "1846191794fbdcd1", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "generate_report.py:240"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-adc17831d8371415", "level": "note", "message": {"text": "Possibly dead Python function: handle_starttag"}, "properties": {"repobilityId": "3bf216d149959ebf", "scanner": "scanner-primary", "fingerprint": "adc17831d8371415", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "review_deals.py:128"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-67b61c20016f50b6", "level": "note", "message": {"text": "Possibly dead Python function: handle_endtag"}, "properties": {"repobilityId": "7eb6f3decafc1766", "scanner": "scanner-primary", "fingerprint": "67b61c20016f50b6", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "review_deals.py:134"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-a7a32123f37db4f5", "level": "note", "message": {"text": "Possibly dead Python function: handle_data"}, "properties": {"repobilityId": "3a673a278f4fc1e6", "scanner": "scanner-primary", "fingerprint": "a7a32123f37db4f5", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "review_deals.py:140"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-de1457279664e3ab", "level": "note", "message": {"text": "Possibly dead Python function: log_message"}, "properties": {"repobilityId": "965f3150b4af5b2e", "scanner": "scanner-primary", "fingerprint": "de1457279664e3ab", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "review_deals.py:1294"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-8d776c6889ac91e0", "level": "note", "message": {"text": "Possibly dead Python function: do_GET"}, "properties": {"repobilityId": "2d943bb45e4f13bd", "scanner": "scanner-primary", "fingerprint": "8d776c6889ac91e0", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "review_deals.py:1297"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-629fbd5e9815718a", "level": "note", "message": {"text": "Possibly dead Python function: do_POST"}, "properties": {"repobilityId": "53357410ca9379a9", "scanner": "scanner-primary", "fingerprint": "629fbd5e9815718a", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "review_deals.py:1303"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-c173c07737e1c0ad", "level": "note", "message": {"text": "Possibly dead Python function: parse_price_history"}, "properties": {"repobilityId": "fd2ed6bf62068943", "scanner": "scanner-primary", "fingerprint": "c173c07737e1c0ad", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "check_deals.py:84"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-4463dfcd2fcb3150", "level": "note", "message": {"text": "Possibly dead Python function: sort_key"}, "properties": {"repobilityId": "ac2a4181eae38738", "scanner": "scanner-primary", "fingerprint": "4463dfcd2fcb3150", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "generate_catalog_data.py:243"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-ddeca95ede46b0e3", "level": "note", "message": {"text": "Possibly dead Python function: log_message"}, "properties": {"repobilityId": "965f3150b4af5b2e", "scanner": "scanner-primary", "fingerprint": "ddeca95ede46b0e3", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "create_review_page.py:926"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-346ecf2a5e719a5b", "level": "note", "message": {"text": "Possibly dead Python function: do_GET"}, "properties": {"repobilityId": "2d943bb45e4f13bd", "scanner": "scanner-primary", "fingerprint": "346ecf2a5e719a5b", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "create_review_page.py:959"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-9597a46aba95e1fe", "level": "note", "message": {"text": "Possibly dead Python function: do_POST"}, "properties": {"repobilityId": "53357410ca9379a9", "scanner": "scanner-primary", "fingerprint": "9597a46aba95e1fe", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "create_review_page.py:992"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-5b94d9ba91da043f", "level": "note", "message": {"text": "Possibly dead Python function: do_GET"}, "properties": {"repobilityId": "2d943bb45e4f13bd", "scanner": "scanner-primary", "fingerprint": "5b94d9ba91da043f", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "api/prices.py:166"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-ea63b6e72af11e7c", "level": "note", "message": {"text": "Possibly dead Python function: do_OPTIONS"}, "properties": {"repobilityId": "36491d1f4fa41aef", "scanner": "scanner-primary", "fingerprint": "ea63b6e72af11e7c", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "api/prices.py:212"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-e65a3f370c3a1c0e", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in generate_report.py:717"}, "properties": {"repobilityId": "973104604cd7b476", "scanner": "scanner-primary", "fingerprint": "e65a3f370c3a1c0e", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "generate_report.py"}, "region": {"startLine": 717}}}]}, {"ruleId": "scanner-056c7f88deaf2a42", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in review_deals.py:1185"}, "properties": {"repobilityId": "ebf718e614f0b95f", "scanner": "scanner-primary", "fingerprint": "056c7f88deaf2a42", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "review_deals.py"}, "region": {"startLine": 1185}}}]}, {"ruleId": "scanner-94458f3fab1ac58b", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in api/prices.py:202"}, "properties": {"repobilityId": "eec95964dc8bc0a7", "scanner": "scanner-primary", "fingerprint": "94458f3fab1ac58b", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "api/prices.py"}, "region": {"startLine": 202}}}]}, {"ruleId": "scanner-0ab1266a9801bdeb", "level": "error", "message": {"text": "Possible secret in scripts/archive/convert_to_geniuslinks.py"}, "properties": {"repobilityId": "9c81acc9bf7e4826", "scanner": "scanner-primary", "fingerprint": "0ab1266a9801bdeb", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/archive/convert_to_geniuslinks.py"}, "region": {"startLine": 27}}}]}, {"ruleId": "scanner-0ab1266a9801bdeb", "level": "error", "message": {"text": "Possible secret in scripts/archive/convert_to_geniuslinks.py"}, "properties": {"repobilityId": "9c81acc9bf7e4826", "scanner": "scanner-primary", "fingerprint": "0ab1266a9801bdeb", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/archive/convert_to_geniuslinks.py"}, "region": {"startLine": 28}}}]}, {"ruleId": "scanner-a393b4fc346067dc", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-01-25.html:237"}, "properties": {"repobilityId": "99c91f477daefa07", "scanner": "scanner-primary", "fingerprint": "a393b4fc346067dc", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/newsletter-2026-01-25.html"}, "region": {"startLine": 237}}}]}, {"ruleId": "scanner-928b06f39abfd6c7", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-03-24.html:316"}, "properties": {"repobilityId": "afd214fdb534a7f6", "scanner": "scanner-primary", "fingerprint": "928b06f39abfd6c7", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/newsletter-2026-03-24.html"}, "region": {"startLine": 316}}}]}, {"ruleId": "scanner-02a0dd35aac3dd48", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-04-08.html:317"}, "properties": {"repobilityId": "a2b8fec0ee2cefcf", "scanner": "scanner-primary", "fingerprint": "02a0dd35aac3dd48", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/newsletter-2026-04-08.html"}, "region": {"startLine": 317}}}]}, {"ruleId": "scanner-fa9d518e076a0e9b", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-06-03.html:317"}, "properties": {"repobilityId": "62616561e50de021", "scanner": "scanner-primary", "fingerprint": "fa9d518e076a0e9b", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/newsletter-2026-06-03.html"}, "region": {"startLine": 317}}}]}, {"ruleId": "scanner-34469a32af2f6dd2", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-04-18.html:317"}, "properties": {"repobilityId": "da819e97b29f208b", "scanner": "scanner-primary", "fingerprint": "34469a32af2f6dd2", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/newsletter-2026-04-18.html"}, "region": {"startLine": 317}}}]}, {"ruleId": "scanner-4b9c7f473bfdd46b", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-01-22.html:237"}, "properties": {"repobilityId": "5e15c0a8a8563c26", "scanner": "scanner-primary", "fingerprint": "4b9c7f473bfdd46b", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/newsletter-2026-01-22.html"}, "region": {"startLine": 237}}}]}, {"ruleId": "scanner-1784c6c20b8b0ab1", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-01-29.html:237"}, "properties": {"repobilityId": "3597acf40a8d8529", "scanner": "scanner-primary", "fingerprint": "1784c6c20b8b0ab1", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/newsletter-2026-01-29.html"}, "region": {"startLine": 237}}}]}, {"ruleId": "scanner-2fed469be691eed5", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-03-27.html:316"}, "properties": {"repobilityId": "ee0030a5987359ff", "scanner": "scanner-primary", "fingerprint": "2fed469be691eed5", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/newsletter-2026-03-27.html"}, "region": {"startLine": 316}}}]}, {"ruleId": "scanner-5b544a3ee3d24943", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-02-07.html:237"}, "properties": {"repobilityId": "3df13c39663408cd", "scanner": "scanner-primary", "fingerprint": "5b544a3ee3d24943", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/newsletter-2026-02-07.html"}, "region": {"startLine": 237}}}]}, {"ruleId": "scanner-7f3f0b640b2ec55a", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-03-30.html:316"}, "properties": {"repobilityId": "16945a19622e7f5f", "scanner": "scanner-primary", "fingerprint": "7f3f0b640b2ec55a", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/newsletter-2026-03-30.html"}, "region": {"startLine": 316}}}]}, {"ruleId": "scanner-59d0b7a010549294", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-02-25.html:316"}, "properties": {"repobilityId": "483a523506e28e8f", "scanner": "scanner-primary", "fingerprint": "59d0b7a010549294", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/newsletter-2026-02-25.html"}, "region": {"startLine": 316}}}]}, {"ruleId": "scanner-2ef08deddad10330", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-02-17.html:280"}, "properties": {"repobilityId": "fa540471a2577fe9", "scanner": "scanner-primary", "fingerprint": "2ef08deddad10330", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/newsletter-2026-02-17.html"}, "region": {"startLine": 280}}}]}, {"ruleId": "scanner-b5ed3c260a72fa46", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-01-24.html:237"}, "properties": {"repobilityId": "0f29b1d4dee898b8", "scanner": "scanner-primary", "fingerprint": "b5ed3c260a72fa46", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/newsletter-2026-01-24.html"}, "region": {"startLine": 237}}}]}, {"ruleId": "scanner-d40ef03095822b7b", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-02-04.html:237"}, "properties": {"repobilityId": "074e99be8ed4772c", "scanner": "scanner-primary", "fingerprint": "d40ef03095822b7b", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/newsletter-2026-02-04.html"}, "region": {"startLine": 237}}}]}, {"ruleId": "scanner-148c14f4f8f8f8e1", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-06-09.html:317"}, "properties": {"repobilityId": "24d4edaba7dfa406", "scanner": "scanner-primary", "fingerprint": "148c14f4f8f8f8e1", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/newsletter-2026-06-09.html"}, "region": {"startLine": 317}}}]}, {"ruleId": "scanner-276edc744e50838e", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-01-30.html:237"}, "properties": {"repobilityId": "d80de17a5f1584fc", "scanner": "scanner-primary", "fingerprint": "276edc744e50838e", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/newsletter-2026-01-30.html"}, "region": {"startLine": 237}}}]}, {"ruleId": "scanner-f450e13d9cd34396", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-04-15.html:317"}, "properties": {"repobilityId": "d9f48a7dd6e996ed", "scanner": "scanner-primary", "fingerprint": "f450e13d9cd34396", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/newsletter-2026-04-15.html"}, "region": {"startLine": 317}}}]}, {"ruleId": "scanner-7d67bed7f0fcc297", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-06-01.html:317"}, "properties": {"repobilityId": "74d244329d63d8fc", "scanner": "scanner-primary", "fingerprint": "7d67bed7f0fcc297", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/newsletter-2026-06-01.html"}, "region": {"startLine": 317}}}]}, {"ruleId": "scanner-738729e83056b0ef", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-01-21.html:237"}, "properties": {"repobilityId": "d9dfa814c4f823e0", "scanner": "scanner-primary", "fingerprint": "738729e83056b0ef", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/newsletter-2026-01-21.html"}, "region": {"startLine": 237}}}]}, {"ruleId": "scanner-a41e34afbfdfb627", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-03-26.html:316"}, "properties": {"repobilityId": "e9e94efa47ff62f8", "scanner": "scanner-primary", "fingerprint": "a41e34afbfdfb627", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/newsletter-2026-03-26.html"}, "region": {"startLine": 316}}}]}, {"ruleId": "scanner-5e9a93393ca4b766", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-04-01.html:316"}, "properties": {"repobilityId": "c462aa7c9f1e1cd7", "scanner": "scanner-primary", "fingerprint": "5e9a93393ca4b766", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/newsletter-2026-04-01.html"}, "region": {"startLine": 316}}}]}, {"ruleId": "scanner-0c25b2336ae0da32", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-02-02.html:237"}, "properties": {"repobilityId": "9edbe1aa2f16c675", "scanner": "scanner-primary", "fingerprint": "0c25b2336ae0da32", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/newsletter-2026-02-02.html"}, "region": {"startLine": 237}}}]}, {"ruleId": "scanner-dd66c7ddf9ed95df", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-03-12.html:316"}, "properties": {"repobilityId": "992270f13ee7a01e", "scanner": "scanner-primary", "fingerprint": "dd66c7ddf9ed95df", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/newsletter-2026-03-12.html"}, "region": {"startLine": 316}}}]}, {"ruleId": "scanner-76a799dc8f1e2d0c", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-01-27.html:237"}, "properties": {"repobilityId": "0a951b601d39d4bf", "scanner": "scanner-primary", "fingerprint": "76a799dc8f1e2d0c", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/newsletter-2026-01-27.html"}, "region": {"startLine": 237}}}]}, {"ruleId": "scanner-1fade95f88424a92", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-04-20.html:317"}, "properties": {"repobilityId": "e0591378a62eba14", "scanner": "scanner-primary", "fingerprint": "1fade95f88424a92", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/newsletter-2026-04-20.html"}, "region": {"startLine": 317}}}]}, {"ruleId": "scanner-cd2897459be51c07", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-05-12.html:317"}, "properties": {"repobilityId": "e0d33de9b0bfa7ba", "scanner": "scanner-primary", "fingerprint": "cd2897459be51c07", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/newsletter-2026-05-12.html"}, "region": {"startLine": 317}}}]}, {"ruleId": "scanner-8da448137030663a", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-02-14.html:265"}, "properties": {"repobilityId": "16e4fec818e075a8", "scanner": "scanner-primary", "fingerprint": "8da448137030663a", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/newsletter-2026-02-14.html"}, "region": {"startLine": 265}}}]}, {"ruleId": "scanner-1e4c415d59cdcdbc", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-06-11.html:317"}, "properties": {"repobilityId": "fcfdbc39d7d81048", "scanner": "scanner-primary", "fingerprint": "1e4c415d59cdcdbc", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/newsletter-2026-06-11.html"}, "region": {"startLine": 317}}}]}, {"ruleId": "scanner-cb3f2b5695900d54", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-05-21.html:317"}, "properties": {"repobilityId": "76f12468bab5eaf3", "scanner": "scanner-primary", "fingerprint": "cb3f2b5695900d54", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/newsletter-2026-05-21.html"}, "region": {"startLine": 317}}}]}, {"ruleId": "scanner-b106f91076ceca00", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-02-16.html:286"}, "properties": {"repobilityId": "af972e8ad2149546", "scanner": "scanner-primary", "fingerprint": "b106f91076ceca00", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/newsletter-2026-02-16.html"}, "region": {"startLine": 286}}}]}, {"ruleId": "scanner-b2685643c99ee3dc", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-02-23.html:316"}, "properties": {"repobilityId": "7c586487e41803ec", "scanner": "scanner-primary", "fingerprint": "b2685643c99ee3dc", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/newsletter-2026-02-23.html"}, "region": {"startLine": 316}}}]}, {"ruleId": "scanner-073abbb1177a8078", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-01-20.html:237"}, "properties": {"repobilityId": "46319149d6903aab", "scanner": "scanner-primary", "fingerprint": "073abbb1177a8078", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/newsletter-2026-01-20.html"}, "region": {"startLine": 237}}}]}, {"ruleId": "scanner-644c9abee7ea40c6", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-04-14.html:317"}, "properties": {"repobilityId": "1f9ca11d030125ff", "scanner": "scanner-primary", "fingerprint": "644c9abee7ea40c6", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/newsletter-2026-04-14.html"}, "region": {"startLine": 317}}}]}, {"ruleId": "scanner-2981e0f2f1d922be", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-04-16.html:317"}, "properties": {"repobilityId": "a4e67cfe02b5c589", "scanner": "scanner-primary", "fingerprint": "2981e0f2f1d922be", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/newsletter-2026-04-16.html"}, "region": {"startLine": 317}}}]}, {"ruleId": "scanner-3fd52d6e6bee7eac", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-06-02.html:317"}, "properties": {"repobilityId": "170969c17598378b", "scanner": "scanner-primary", "fingerprint": "3fd52d6e6bee7eac", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/newsletter-2026-06-02.html"}, "region": {"startLine": 317}}}]}, {"ruleId": "scanner-0e3196ce413e86ef", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-05-19.html:317"}, "properties": {"repobilityId": "93f05ed97859f036", "scanner": "scanner-primary", "fingerprint": "0e3196ce413e86ef", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/newsletter-2026-05-19.html"}, "region": {"startLine": 317}}}]}, {"ruleId": "scanner-34ca497acdd9c862", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-05-05.html:317"}, "properties": {"repobilityId": "7d8072801c408f53", "scanner": "scanner-primary", "fingerprint": "34ca497acdd9c862", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/newsletter-2026-05-05.html"}, "region": {"startLine": 317}}}]}, {"ruleId": "scanner-e3eb753fddba4b63", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-03-09.html:316"}, "properties": {"repobilityId": "4b89827f09ae6f48", "scanner": "scanner-primary", "fingerprint": "e3eb753fddba4b63", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/newsletter-2026-03-09.html"}, "region": {"startLine": 316}}}]}, {"ruleId": "scanner-fd617c2616854a08", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-03-11.html:316"}, "properties": {"repobilityId": "21be460eee273512", "scanner": "scanner-primary", "fingerprint": "fd617c2616854a08", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/newsletter-2026-03-11.html"}, "region": {"startLine": 316}}}]}, {"ruleId": "scanner-1ea0ae6fed9918df", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-04-09.html:317"}, "properties": {"repobilityId": "4bd09dbc118ddd75", "scanner": "scanner-primary", "fingerprint": "1ea0ae6fed9918df", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/newsletter-2026-04-09.html"}, "region": {"startLine": 317}}}]}, {"ruleId": "scanner-9bd12b6e0870920c", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-02-13.html:265"}, "properties": {"repobilityId": "f77577ec91c676fc", "scanner": "scanner-primary", "fingerprint": "9bd12b6e0870920c", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/newsletter-2026-02-13.html"}, "region": {"startLine": 265}}}]}, {"ruleId": "scanner-cf6b2087861261f8", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-05-06.html:317"}, "properties": {"repobilityId": "e25a5d82c9a79d55", "scanner": "scanner-primary", "fingerprint": "cf6b2087861261f8", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/newsletter-2026-05-06.html"}, "region": {"startLine": 317}}}]}, {"ruleId": "scanner-5f17b98532a3f400", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-03-14.html:316"}, "properties": {"repobilityId": "fa8c3866ace75bb1", "scanner": "scanner-primary", "fingerprint": "5f17b98532a3f400", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/newsletter-2026-03-14.html"}, "region": {"startLine": 316}}}]}, {"ruleId": "scanner-6a8141e16e8f7c16", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-05-14.html:317"}, "properties": {"repobilityId": "e6d9e87190edfa47", "scanner": "scanner-primary", "fingerprint": "6a8141e16e8f7c16", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/newsletter-2026-05-14.html"}, "region": {"startLine": 317}}}]}, {"ruleId": "scanner-db97b5a6cb2c7dd2", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-04-28.html:317"}, "properties": {"repobilityId": "231d100e13412c73", "scanner": "scanner-primary", "fingerprint": "db97b5a6cb2c7dd2", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/newsletter-2026-04-28.html"}, "region": {"startLine": 317}}}]}, {"ruleId": "scanner-d363cb6035a99164", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-02-15.html:286"}, "properties": {"repobilityId": "51d5fb1c5ae33596", "scanner": "scanner-primary", "fingerprint": "d363cb6035a99164", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/newsletter-2026-02-15.html"}, "region": {"startLine": 286}}}]}, {"ruleId": "scanner-5facd926b3d54e75", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-06-15.html:317"}, "properties": {"repobilityId": "371b58bc56090130", "scanner": "scanner-primary", "fingerprint": "5facd926b3d54e75", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/newsletter-2026-06-15.html"}, "region": {"startLine": 317}}}]}, {"ruleId": "scanner-99fd46745a55b6e1", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-02-10.html:265"}, "properties": {"repobilityId": "4043900ed3eac088", "scanner": "scanner-primary", "fingerprint": "99fd46745a55b6e1", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/newsletter-2026-02-10.html"}, "region": {"startLine": 265}}}]}, {"ruleId": "scanner-72a9260a364e9d99", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-04-23.html:317"}, "properties": {"repobilityId": "1fbdbe6796648188", "scanner": "scanner-primary", "fingerprint": "72a9260a364e9d99", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/newsletter-2026-04-23.html"}, "region": {"startLine": 317}}}]}, {"ruleId": "scanner-ab43d149e9359a12", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-04-13.html:317"}, "properties": {"repobilityId": "3911ec90ac91b795", "scanner": "scanner-primary", "fingerprint": "ab43d149e9359a12", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/newsletter-2026-04-13.html"}, "region": {"startLine": 317}}}]}, {"ruleId": "scanner-20fbf9f93e0e5064", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-05-28.html:317"}, "properties": {"repobilityId": "8b65f6f9b8d99cb1", "scanner": "scanner-primary", "fingerprint": "20fbf9f93e0e5064", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/newsletter-2026-05-28.html"}, "region": {"startLine": 317}}}]}, {"ruleId": "scanner-b7022fc38e97ba5f", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-02-03.html:237"}, "properties": {"repobilityId": "2c8c514ba309744a", "scanner": "scanner-primary", "fingerprint": "b7022fc38e97ba5f", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/newsletter-2026-02-03.html"}, "region": {"startLine": 237}}}]}, {"ruleId": "scanner-dc7b65b2be353b8e", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-05-18.html:317"}, "properties": {"repobilityId": "c4e168c6f4aeb34c", "scanner": "scanner-primary", "fingerprint": "dc7b65b2be353b8e", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/newsletter-2026-05-18.html"}, "region": {"startLine": 317}}}]}, {"ruleId": "scanner-8f55ed287bb63a55", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-06-05.html:317"}, "properties": {"repobilityId": "49bb63958b563a72", "scanner": "scanner-primary", "fingerprint": "8f55ed287bb63a55", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/newsletter-2026-06-05.html"}, "region": {"startLine": 317}}}]}, {"ruleId": "scanner-b4edf000a69700d0", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-03-17.html:316"}, "properties": {"repobilityId": "8d71922ce9996384", "scanner": "scanner-primary", "fingerprint": "b4edf000a69700d0", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/newsletter-2026-03-17.html"}, "region": {"startLine": 316}}}]}, {"ruleId": "scanner-dbf38ee12ad51ce6", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-02-19.html:280"}, "properties": {"repobilityId": "346b6885cebddc7a", "scanner": "scanner-primary", "fingerprint": "dbf38ee12ad51ce6", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/newsletter-2026-02-19.html"}, "region": {"startLine": 280}}}]}, {"ruleId": "scanner-e63c339ce21f34d2", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-03-23.html:316"}, "properties": {"repobilityId": "fa28147be5aa4e01", "scanner": "scanner-primary", "fingerprint": "e63c339ce21f34d2", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/newsletter-2026-03-23.html"}, "region": {"startLine": 316}}}]}, {"ruleId": "scanner-b92a16a99668e203", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-05-04.html:317"}, "properties": {"repobilityId": "fe3d446f64da172e", "scanner": "scanner-primary", "fingerprint": "b92a16a99668e203", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/newsletter-2026-05-04.html"}, "region": {"startLine": 317}}}]}, {"ruleId": "scanner-27546e0bfd4fa525", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-01-28.html:237"}, "properties": {"repobilityId": "6ee6e39d30221081", "scanner": "scanner-primary", "fingerprint": "27546e0bfd4fa525", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/newsletter-2026-01-28.html"}, "region": {"startLine": 237}}}]}, {"ruleId": "scanner-b63966743acebcdb", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-04-10.html:317"}, "properties": {"repobilityId": "03121daad972c342", "scanner": "scanner-primary", "fingerprint": "b63966743acebcdb", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/newsletter-2026-04-10.html"}, "region": {"startLine": 317}}}]}, {"ruleId": "scanner-f1c8b9ecd80c3f53", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-05-11.html:317"}, "properties": {"repobilityId": "43fb1b21c366dfea", "scanner": "scanner-primary", "fingerprint": "f1c8b9ecd80c3f53", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/newsletter-2026-05-11.html"}, "region": {"startLine": 317}}}]}, {"ruleId": "scanner-af9017d4daad1c1a", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-05-27.html:317"}, "properties": {"repobilityId": "2867e277e8580ac3", "scanner": "scanner-primary", "fingerprint": "af9017d4daad1c1a", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/newsletter-2026-05-27.html"}, "region": {"startLine": 317}}}]}, {"ruleId": "scanner-f399d6154ac40778", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-05-13.html:317"}, "properties": {"repobilityId": "8c876850b260ec73", "scanner": "scanner-primary", "fingerprint": "f399d6154ac40778", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/newsletter-2026-05-13.html"}, "region": {"startLine": 317}}}]}, {"ruleId": "scanner-1d12f610ad86bdb1", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-02-05.html:237"}, "properties": {"repobilityId": "564775e8dd864f07", "scanner": "scanner-primary", "fingerprint": "1d12f610ad86bdb1", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/newsletter-2026-02-05.html"}, "region": {"startLine": 237}}}]}, {"ruleId": "scanner-8816b455d3e480de", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-02-06.html:237"}, "properties": {"repobilityId": "07f1c5cc62e85bb3", "scanner": "scanner-primary", "fingerprint": "8816b455d3e480de", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/newsletter-2026-02-06.html"}, "region": {"startLine": 237}}}]}, {"ruleId": "scanner-a3c79a9332eaf0c9", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-02-27.html:316"}, "properties": {"repobilityId": "2a5905137a3fba13", "scanner": "scanner-primary", "fingerprint": "a3c79a9332eaf0c9", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/newsletter-2026-02-27.html"}, "region": {"startLine": 316}}}]}, {"ruleId": "scanner-c0edec7bd6b8100d", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-04-17.html:317"}, "properties": {"repobilityId": "a37031471ee37cf4", "scanner": "scanner-primary", "fingerprint": "c0edec7bd6b8100d", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/newsletter-2026-04-17.html"}, "region": {"startLine": 317}}}]}, {"ruleId": "scanner-1f7071775080d451", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-02-18.html:280"}, "properties": {"repobilityId": "8092d8789a7ba371", "scanner": "scanner-primary", "fingerprint": "1f7071775080d451", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/newsletter-2026-02-18.html"}, "region": {"startLine": 280}}}]}, {"ruleId": "scanner-3627becd239a3e3c", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-03-20.html:316"}, "properties": {"repobilityId": "bd01b56a183eee2a", "scanner": "scanner-primary", "fingerprint": "3627becd239a3e3c", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/newsletter-2026-03-20.html"}, "region": {"startLine": 316}}}]}, {"ruleId": "scanner-e5945e47b349bd49", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-04-21.html:317"}, "properties": {"repobilityId": "d8670c03bf05b35d", "scanner": "scanner-primary", "fingerprint": "e5945e47b349bd49", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/newsletter-2026-04-21.html"}, "region": {"startLine": 317}}}]}, {"ruleId": "scanner-b4ac29d3d9ea9037", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-03-31.html:316"}, "properties": {"repobilityId": "f42ebd51fe4ae93e", "scanner": "scanner-primary", "fingerprint": "b4ac29d3d9ea9037", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/newsletter-2026-03-31.html"}, "region": {"startLine": 316}}}]}, {"ruleId": "scanner-88c924c2f52467a6", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-02-24.html:316"}, "properties": {"repobilityId": "dfbc8a3fb30ecfef", "scanner": "scanner-primary", "fingerprint": "88c924c2f52467a6", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/newsletter-2026-02-24.html"}, "region": {"startLine": 316}}}]}, {"ruleId": "scanner-8bf15c5ff0e2c001", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-01-26.html:237"}, "properties": {"repobilityId": "aecc8c3d9cb61dee", "scanner": "scanner-primary", "fingerprint": "8bf15c5ff0e2c001", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/newsletter-2026-01-26.html"}, "region": {"startLine": 237}}}]}, {"ruleId": "scanner-4e6ad8c31239f842", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-05-15.html:317"}, "properties": {"repobilityId": "f8498a26c9b1958f", "scanner": "scanner-primary", "fingerprint": "4e6ad8c31239f842", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/newsletter-2026-05-15.html"}, "region": {"startLine": 317}}}]}, {"ruleId": "scanner-62fed39e66dffaeb", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-03-16.html:316"}, "properties": {"repobilityId": "3566ef4e0cfca24e", "scanner": "scanner-primary", "fingerprint": "62fed39e66dffaeb", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/newsletter-2026-03-16.html"}, "region": {"startLine": 316}}}]}, {"ruleId": "scanner-6bb0076335bf0471", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-01-31.html:237"}, "properties": {"repobilityId": "7b6bd423be7b65c0", "scanner": "scanner-primary", "fingerprint": "6bb0076335bf0471", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/newsletter-2026-01-31.html"}, "region": {"startLine": 237}}}]}, {"ruleId": "scanner-a9ad245845227442", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-02-12.html:265"}, "properties": {"repobilityId": "572a3bd9f7d24c06", "scanner": "scanner-primary", "fingerprint": "a9ad245845227442", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/newsletter-2026-02-12.html"}, "region": {"startLine": 265}}}]}, {"ruleId": "scanner-368dcecba275c0c7", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-02-26.html:316"}, "properties": {"repobilityId": "c15f0ca074bd3de8", "scanner": "scanner-primary", "fingerprint": "368dcecba275c0c7", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/newsletter-2026-02-26.html"}, "region": {"startLine": 316}}}]}, {"ruleId": "scanner-9cac5d1ba6cf457b", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-01-23.html:237"}, "properties": {"repobilityId": "c6e4ebfcbb2b8357", "scanner": "scanner-primary", "fingerprint": "9cac5d1ba6cf457b", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/newsletter-2026-01-23.html"}, "region": {"startLine": 237}}}]}, {"ruleId": "scanner-35a9add1a9d4f4e8", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-05-30.html:317"}, "properties": {"repobilityId": "1f0a89091aa9b6a1", "scanner": "scanner-primary", "fingerprint": "35a9add1a9d4f4e8", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/newsletter-2026-05-30.html"}, "region": {"startLine": 317}}}]}, {"ruleId": "scanner-ecb057d5a231b676", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-03-21.html:316"}, "properties": {"repobilityId": "395d03c218f6b8c6", "scanner": "scanner-primary", "fingerprint": "ecb057d5a231b676", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/newsletter-2026-03-21.html"}, "region": {"startLine": 316}}}]}, {"ruleId": "scanner-72d7916ee1928ace", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-04-06.html:317"}, "properties": {"repobilityId": "3879abc0d13a6dd6", "scanner": "scanner-primary", "fingerprint": "72d7916ee1928ace", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/newsletter-2026-04-06.html"}, "region": {"startLine": 317}}}]}, {"ruleId": "scanner-3088f2e20dd19acd", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-02-09.html:265"}, "properties": {"repobilityId": "04e7ab8c61c50053", "scanner": "scanner-primary", "fingerprint": "3088f2e20dd19acd", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/newsletter-2026-02-09.html"}, "region": {"startLine": 265}}}]}, {"ruleId": "scanner-972099c3cd01873b", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-06-04.html:317"}, "properties": {"repobilityId": "d63ac53d175dbcb2", "scanner": "scanner-primary", "fingerprint": "972099c3cd01873b", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/newsletter-2026-06-04.html"}, "region": {"startLine": 317}}}]}, {"ruleId": "scanner-a45722876c308b78", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-02-01.html:237"}, "properties": {"repobilityId": "8f628ee3d8d1604b", "scanner": "scanner-primary", "fingerprint": "a45722876c308b78", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/newsletter-2026-02-01.html"}, "region": {"startLine": 237}}}]}, {"ruleId": "scanner-7a91e5ea29bffb17", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-02-21.html:284"}, "properties": {"repobilityId": "7026dbcaa710626f", "scanner": "scanner-primary", "fingerprint": "7a91e5ea29bffb17", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/newsletter-2026-02-21.html"}, "region": {"startLine": 284}}}]}, {"ruleId": "scanner-fefbc0708dc66f1a", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-03-05.html:316"}, "properties": {"repobilityId": "9c8079f8b30efc6d", "scanner": "scanner-primary", "fingerprint": "fefbc0708dc66f1a", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/newsletter-2026-03-05.html"}, "region": {"startLine": 316}}}]}, {"ruleId": "scanner-bd1da7025f10245b", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-04-22.html:317"}, "properties": {"repobilityId": "aaeb06933d47f630", "scanner": "scanner-primary", "fingerprint": "bd1da7025f10245b", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/newsletter-2026-04-22.html"}, "region": {"startLine": 317}}}]}, {"ruleId": "scanner-e20a9bec14762bf8", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-04-29.html:317"}, "properties": {"repobilityId": "6650366a8c3adb98", "scanner": "scanner-primary", "fingerprint": "e20a9bec14762bf8", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/newsletter-2026-04-29.html"}, "region": {"startLine": 317}}}]}, {"ruleId": "scanner-3e87f2b96badc408", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-04-03.html:317"}, "properties": {"repobilityId": "694caedf7278b18d", "scanner": "scanner-primary", "fingerprint": "3e87f2b96badc408", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/newsletter-2026-04-03.html"}, "region": {"startLine": 317}}}]}, {"ruleId": "scanner-e7588f9ebca2ca2f", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-02-08.html:265"}, "properties": {"repobilityId": "9ef0d7605fd21fa5", "scanner": "scanner-primary", "fingerprint": "e7588f9ebca2ca2f", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/newsletter-2026-02-08.html"}, "region": {"startLine": 265}}}]}, {"ruleId": "scanner-7cfe8b9ce1a39c76", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-03-19.html:316"}, "properties": {"repobilityId": "2db89f1919482a87", "scanner": "scanner-primary", "fingerprint": "7cfe8b9ce1a39c76", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/newsletter-2026-03-19.html"}, "region": {"startLine": 316}}}]}, {"ruleId": "scanner-aaee7971d6b8b975", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/index.html:463"}, "properties": {"repobilityId": "fcd975cc51168fca", "scanner": "scanner-primary", "fingerprint": "aaee7971d6b8b975", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/index.html"}, "region": {"startLine": 463}}}]}, {"ruleId": "scanner-f5a38748a71b1411", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-05-25.html:317"}, "properties": {"repobilityId": "9a649cf901f0b8e3", "scanner": "scanner-primary", "fingerprint": "f5a38748a71b1411", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/newsletter-2026-05-25.html"}, "region": {"startLine": 317}}}]}, {"ruleId": "scanner-31f32128bd649165", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-04-24.html:317"}, "properties": {"repobilityId": "a149f46a73253bf0", "scanner": "scanner-primary", "fingerprint": "31f32128bd649165", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/newsletter-2026-04-24.html"}, "region": {"startLine": 317}}}]}, {"ruleId": "scanner-959935dfdc2f8f2f", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-04-02.html:316"}, "properties": {"repobilityId": "f00557df5aebf837", "scanner": "scanner-primary", "fingerprint": "959935dfdc2f8f2f", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/newsletter-2026-04-02.html"}, "region": {"startLine": 316}}}]}, {"ruleId": "scanner-c7158b63ad8a9314", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-06-10.html:317"}, "properties": {"repobilityId": "a6cc8bd173f3b44c", "scanner": "scanner-primary", "fingerprint": "c7158b63ad8a9314", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/newsletter-2026-06-10.html"}, "region": {"startLine": 317}}}]}, {"ruleId": "scanner-9f694419a66e1d47", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-05-29.html:317"}, "properties": {"repobilityId": "e75a6604b392356e", "scanner": "scanner-primary", "fingerprint": "9f694419a66e1d47", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/newsletter-2026-05-29.html"}, "region": {"startLine": 317}}}]}, {"ruleId": "scanner-9fbb05217bd60683", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/review.html:569"}, "properties": {"repobilityId": "6bf4fe5e7aa3ea86", "scanner": "scanner-primary", "fingerprint": "9fbb05217bd60683", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/review.html"}, "region": {"startLine": 569}}}]}, {"ruleId": "scanner-45b85c2c7d6bfc57", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-05-07.html:317"}, "properties": {"repobilityId": "7fb537de62e49111", "scanner": "scanner-primary", "fingerprint": "45b85c2c7d6bfc57", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/newsletter-2026-05-07.html"}, "region": {"startLine": 317}}}]}, {"ruleId": "scanner-e65b5df1c06f8b2c", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-03-06.html:316"}, "properties": {"repobilityId": "c6b33e1e34f7f7a2", "scanner": "scanner-primary", "fingerprint": "e65b5df1c06f8b2c", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/newsletter-2026-03-06.html"}, "region": {"startLine": 316}}}]}, {"ruleId": "scanner-3a9dbb135644a3b5", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-04-27.html:317"}, "properties": {"repobilityId": "b78e3e20c2416493", "scanner": "scanner-primary", "fingerprint": "3a9dbb135644a3b5", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/newsletter-2026-04-27.html"}, "region": {"startLine": 317}}}]}, {"ruleId": "scanner-8448802949bb70e0", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-02-22.html:284"}, "properties": {"repobilityId": "da84d7280f98bac3", "scanner": "scanner-primary", "fingerprint": "8448802949bb70e0", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/newsletter-2026-02-22.html"}, "region": {"startLine": 284}}}]}, {"ruleId": "scanner-91f8030563dfecf9", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-03-18.html:316"}, "properties": {"repobilityId": "438dcd9f9a52bb6a", "scanner": "scanner-primary", "fingerprint": "91f8030563dfecf9", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/newsletter-2026-03-18.html"}, "region": {"startLine": 316}}}]}, {"ruleId": "scanner-2806930553c0e66b", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-06-12.html:317"}, "properties": {"repobilityId": "52d9645cdba5faf4", "scanner": "scanner-primary", "fingerprint": "2806930553c0e66b", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/newsletter-2026-06-12.html"}, "region": {"startLine": 317}}}]}, {"ruleId": "scanner-adc3eb24893ad298", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-05-20.html:317"}, "properties": {"repobilityId": "b61a2d0d01e14943", "scanner": "scanner-primary", "fingerprint": "adc3eb24893ad298", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/newsletter-2026-05-20.html"}, "region": {"startLine": 317}}}]}, {"ruleId": "scanner-8dd1bedc39cb9df3", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-03-04.html:316"}, "properties": {"repobilityId": "77d5a2ef474244bd", "scanner": "scanner-primary", "fingerprint": "8dd1bedc39cb9df3", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/newsletter-2026-03-04.html"}, "region": {"startLine": 316}}}]}, {"ruleId": "scanner-2e0ee22fde3b80d9", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-04-30.html:317"}, "properties": {"repobilityId": "093559a93dd66877", "scanner": "scanner-primary", "fingerprint": "2e0ee22fde3b80d9", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/newsletter-2026-04-30.html"}, "region": {"startLine": 317}}}]}, {"ruleId": "scanner-5edd8ba8f0f03285", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-06-08.html:317"}, "properties": {"repobilityId": "bce5326c611895f0", "scanner": "scanner-primary", "fingerprint": "5edd8ba8f0f03285", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/newsletter-2026-06-08.html"}, "region": {"startLine": 317}}}]}, {"ruleId": "scanner-8b312931d74d02de", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-03-10.html:316"}, "properties": {"repobilityId": "49bf9c36e0a65191", "scanner": "scanner-primary", "fingerprint": "8b312931d74d02de", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/newsletter-2026-03-10.html"}, "region": {"startLine": 316}}}]}, {"ruleId": "scanner-86193ad86533e569", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-03-25.html:316"}, "properties": {"repobilityId": "3f5e645d74ee9234", "scanner": "scanner-primary", "fingerprint": "86193ad86533e569", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/newsletter-2026-03-25.html"}, "region": {"startLine": 316}}}]}, {"ruleId": "scanner-88894d7e8a135d99", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-02-11.html:265"}, "properties": {"repobilityId": "9f2322294845f3ba", "scanner": "scanner-primary", "fingerprint": "88894d7e8a135d99", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/newsletter-2026-02-11.html"}, "region": {"startLine": 265}}}]}, {"ruleId": "scanner-6b1710845dfd7906", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-04-07.html:317"}, "properties": {"repobilityId": "b4be83304781006e", "scanner": "scanner-primary", "fingerprint": "6b1710845dfd7906", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/newsletter-2026-04-07.html"}, "region": {"startLine": 317}}}]}, {"ruleId": "scanner-72e196236230f58d", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-02-20.html:280"}, "properties": {"repobilityId": "2549dd91f976819b", "scanner": "scanner-primary", "fingerprint": "72e196236230f58d", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/newsletter-2026-02-20.html"}, "region": {"startLine": 280}}}]}, {"ruleId": "scanner-02eb2b2f237b6021", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-03-13.html:316"}, "properties": {"repobilityId": "9682503e94aab8b5", "scanner": "scanner-primary", "fingerprint": "02eb2b2f237b6021", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/newsletter-2026-03-13.html"}, "region": {"startLine": 316}}}]}, {"ruleId": "scanner-ee19fe5bb4734b52", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/newsletter-2026-05-08.html:317"}, "properties": {"repobilityId": "8c94eb2d16df3e58", "scanner": "scanner-primary", "fingerprint": "ee19fe5bb4734b52", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/newsletter-2026-05-08.html"}, "region": {"startLine": 317}}}]}, {"ruleId": "scanner-1a39207e33f9e0cd", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "3d9d5b88457f1832", "scanner": "scanner-primary", "fingerprint": "1a39207e33f9e0cd", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/weekly-update.yml"}, "region": {"startLine": 21}}}]}, {"ruleId": "scanner-1a39207e33f9e0cd", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "1c2304d25232650f", "scanner": "scanner-primary", "fingerprint": "1a39207e33f9e0cd", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/weekly-update.yml"}, "region": {"startLine": 24}}}]}, {"ruleId": "scanner-0838101cb480f155", "level": "warning", "message": {"text": "GitHub Actions workflow grants broad write permissions"}, "properties": {"repobilityId": "df91af882e5f499c", "scanner": "scanner-primary", "fingerprint": "0838101cb480f155", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "least-privilege"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/weekly-update.yml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-4f6a4f55a8e374d0", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "59475bc1e5f4eed2", "scanner": "scanner-primary", "fingerprint": "4f6a4f55a8e374d0", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/daily-deals.yml"}, "region": {"startLine": 27}}}]}, {"ruleId": "scanner-4f6a4f55a8e374d0", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "b3a94240f3c3474b", "scanner": "scanner-primary", "fingerprint": "4f6a4f55a8e374d0", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/daily-deals.yml"}, "region": {"startLine": 30}}}]}, {"ruleId": "scanner-9a5b1ebeb1f50eef", "level": "warning", "message": {"text": "GitHub Actions workflow grants broad write permissions"}, "properties": {"repobilityId": "82d68e44a383d47d", "scanner": "scanner-primary", "fingerprint": "9a5b1ebeb1f50eef", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "least-privilege"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/daily-deals.yml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-1a50467f36b413ec", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "aecc3f31ca3f42da", "scanner": "scanner-primary", "fingerprint": "1a50467f36b413ec", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/tests.yml"}, "region": {"startLine": 29}}}]}, {"ruleId": "scanner-1a50467f36b413ec", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "926b5aa2fc342af4", "scanner": "scanner-primary", "fingerprint": "1a50467f36b413ec", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/tests.yml"}, "region": {"startLine": 32}}}]}, {"ruleId": "scanner-001aa8a3e2ad87b0", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "b87235e4f94c1b72", "scanner": "scanner-primary", "fingerprint": "001aa8a3e2ad87b0", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/deploy-vercel.yml"}, "region": {"startLine": 19}}}]}, {"ruleId": "scanner-8b691b9f06c51aa3", "level": "note", "message": {"text": "Very large file: review_deals.py (2032 lines)"}, "properties": {"repobilityId": "efb0b9b82a73c270", "scanner": "scanner-primary", "fingerprint": "8b691b9f06c51aa3", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-c9dd2c552f3eb0fb", "level": "note", "message": {"text": "Very large file: create_review_page.py (1515 lines)"}, "properties": {"repobilityId": "8ff3b349d997df3f", "scanner": "scanner-primary", "fingerprint": "c9dd2c552f3eb0fb", "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": "30764646afbe3e99", "scanner": "scanner-primary", "fingerprint": "141b30a41e03817b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["license", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-3ab5d313dda8e5f9", "level": "note", "message": {"text": "Debug logging residue appears in source files"}, "properties": {"repobilityId": "0164055b061451b5", "scanner": "scanner-primary", "fingerprint": "3ab5d313dda8e5f9", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["debug", "cleanup", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-2d0c7b7ab8f8aacf", "level": "warning", "message": {"text": "Critical user flow still appears backed by mock or placeholder data"}, "properties": {"repobilityId": "ea7f2b5c95bd4aca", "scanner": "scanner-primary", "fingerprint": "2d0c7b7ab8f8aacf", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["placeholder", "mock-data", "critical-flow", "generated-repo-pattern"]}}, {"ruleId": "scanner-749d4bc1bd66df5f", "level": "warning", "message": {"text": "Agent instructions exist but release-hardening basics are missing"}, "properties": {"repobilityId": "80247175ef4b6d81", "scanner": "scanner-primary", "fingerprint": "749d4bc1bd66df5f", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "repo-hardening", "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-231d05732eb371e6", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/agents/deal-analyzer.md"}, "properties": {"repobilityId": "43da6a9b48a0dc0e", "scanner": "scanner-primary", "fingerprint": "231d05732eb371e6", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/agents/deal-analyzer.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-2469d24bc19da987", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/skills/catalog-cleanup/SKILL.md"}, "properties": {"repobilityId": "a337570ff42ce000", "scanner": "scanner-primary", "fingerprint": "2469d24bc19da987", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/catalog-cleanup/SKILL.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-ea0e000ad3394347", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/skills/push-newsletter/SKILL.md"}, "properties": {"repobilityId": "d9b9de1859cec0e4", "scanner": "scanner-primary", "fingerprint": "ea0e000ad3394347", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/push-newsletter/SKILL.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-12604fa40b1f1759", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/skills/review-deals/SKILL.md"}, "properties": {"repobilityId": "eb7a60fbdc491dbc", "scanner": "scanner-primary", "fingerprint": "12604fa40b1f1759", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/review-deals/SKILL.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-0ea0487bd226f8ae", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/skills/performance-report/SKILL.md"}, "properties": {"repobilityId": "05616f8a9a858404", "scanner": "scanner-primary", "fingerprint": "0ea0487bd226f8ae", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/performance-report/SKILL.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-55786fe7701677e0", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/skills/regen-benefits/SKILL.md"}, "properties": {"repobilityId": "21eabd387f90a897", "scanner": "scanner-primary", "fingerprint": "55786fe7701677e0", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/regen-benefits/SKILL.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-c01b099f8ec57657", "level": "none", "message": {"text": "Commented-code block (5 lines) in generate_report.py:391"}, "properties": {"repobilityId": "3571d9bee518aad5", "scanner": "scanner-primary", "fingerprint": "c01b099f8ec57657", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-77da9d90daa3db5f", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 review_deals.py:2003"}, "properties": {"repobilityId": "fcbe9b1894eacecd", "scanner": "scanner-primary", "fingerprint": "77da9d90daa3db5f", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-498e55e42733a146", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 mailchimp_send.py:66"}, "properties": {"repobilityId": "9b7dee022ea7182f", "scanner": "scanner-primary", "fingerprint": "498e55e42733a146", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-b334d875f2339fa1", "level": "note", "message": {"text": "5 env vars used in code but missing from .env.example"}, "properties": {"repobilityId": "faa38682016f5d53", "scanner": "scanner-primary", "fingerprint": "b334d875f2339fa1", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "config-drift"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "373fb91bd13356ff", "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": "03c68f868e890917", "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": "941cc4451af7dbfa", "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": "35a63615fcd28679", "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": "9f0c25909747a268", "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": "1ad5697be5cffcf9", "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": "864fbb2a2ce13906", "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": "1f43fb138e5af5be", "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": "ba0d9e4503d108fb", "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": "6374a3dd92aea2b2", "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": "484be2ea6e0d7c9c", "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": "aa2a86a6fcf125da", "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": "ad505aa271b472ac", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}]}]}