{"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-30a85105c670a974", "name": "Insecure pattern 'direct_innerhtml_assignment' in preflight.html:277", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in preflight.html:277"}, "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-2e3bcd1db0fb3d17", "name": "Insecure pattern 'direct_innerhtml_assignment' in learn.html:282", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in learn.html:282"}, "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-0501d8daf40e4f8c", "name": "Insecure pattern 'direct_innerhtml_assignment' in parchment-picks.html:54", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in parchment-picks.html:54"}, "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-3c943a2f8341765a", "name": "Insecure pattern 'direct_innerhtml_assignment' in showcase.html:367", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in showcase.html:367"}, "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-2cdb7a05278ea409", "name": "Insecure pattern 'direct_innerhtml_assignment' in community.html:214", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in community.html:214"}, "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-2dcaf60a85f3f98c", "name": "Insecure pattern 'direct_innerhtml_assignment' in course-discuss.js:362", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in course-discuss.js:362"}, "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-f61129544eb2f57f", "name": "Insecure pattern 'direct_innerhtml_assignment' in homework-mine.html:132", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in homework-mine.html:132"}, "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-b6207853693827c4", "name": "Insecure pattern 'direct_innerhtml_assignment' in topbar.js:40", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in topbar.js:40"}, "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-9a5c9064135313d9", "name": "Insecure pattern 'direct_innerhtml_assignment' in homework-detail.html:64", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in homework-detail.html:64"}, "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-d900cff2d39286ec", "name": "Insecure pattern 'direct_innerhtml_assignment' in toolbox.html:312", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in toolbox.html:312"}, "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-8bd193681d39b345", "name": "Insecure pattern 'direct_innerhtml_assignment' in profile.html:200", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in profile.html:200"}, "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-168f620f7ba81e3c", "name": "Insecure pattern 'direct_innerhtml_assignment' in roadmap.html:2033", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in roadmap.html:2033"}, "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-498b626852166c36", "name": "Insecure pattern 'direct_innerhtml_assignment' in members.html:213", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in members.html:213"}, "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-ebf4bcb99292f1ae", "name": "Insecure pattern 'direct_innerhtml_assignment' in article.html:122", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in article.html:122"}, "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-8a530ffca7030193", "name": "Insecure pattern 'direct_innerhtml_assignment' in assistant.js:212", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in assistant.js:212"}, "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-d799c146fabaad27", "name": "Insecure pattern 'direct_innerhtml_assignment' in homework-submit.html:150", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in homework-submit.html:150"}, "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-9e8538cb41f811b5", "name": "Insecure pattern 'direct_innerhtml_assignment' in calendar.html:713", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in calendar.html:713"}, "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-bae0676e1693b607", "name": "Insecure pattern 'direct_innerhtml_assignment' in routes-ui.js:131", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in routes-ui.js:131"}, "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-20bc7699be3a69f8", "name": "Insecure pattern 'direct_innerhtml_assignment' in course-discuss.html:364", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in course-discuss.html:364"}, "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-6117fc4d08219cbf", "name": "Insecure pattern 'direct_innerhtml_assignment' in feed.html:281", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in feed.html:281"}, "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-98f9f589ad4bf436", "name": "Insecure pattern 'direct_innerhtml_assignment' in workbench.html:218", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in workbench.html:218"}, "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-b513a70c2f9b9316", "name": "Insecure pattern 'direct_innerhtml_assignment' in demo-switcher.js:120", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in demo-switcher.js:120"}, "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-2d6a311ae5e99c43", "name": "Insecure pattern 'direct_innerhtml_assignment' in discuss-feed.html:918", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in discuss-feed.html:918"}, "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-f29614b303eb5a38", "name": "Insecure pattern 'direct_innerhtml_assignment' in discuss.html:472", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in discuss.html:472"}, "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-3c734b02aa78c711", "name": "Very large file: feed-data.js (1197 lines)", "shortDescription": {"text": "Very large file: feed-data.js (1197 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-ba9d3ba3c4c76830", "name": "Very large file: course-data.js (1918 lines)", "shortDescription": {"text": "Very large file: course-data.js (1918 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-6893a6c8b0861585", "name": "Very low test-to-source ratio", "shortDescription": {"text": "Very low test-to-source ratio"}, "fullDescription": {"text": "0 test file(s) for 12 source file(s) (ratio 0.00). Consider adding integration or unit tests for critical paths."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-141b30a41e03817b", "name": "No license file detected", "shortDescription": {"text": "No license file detected"}, "fullDescription": {"text": "No LICENSE/COPYING/NOTICE file was found. Generated repositories often omit licensing, which blocks reuse and automated intake."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-faccb9061e9b52a0", "name": "No README detected", "shortDescription": {"text": "No README detected"}, "fullDescription": {"text": "No README file was found. Generated repos without README context are hard to operate, validate, or safely hand off."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-72b2a6250083a784", "name": "Placeholder or mock-heavy implementation detected", "shortDescription": {"text": "Placeholder or mock-heavy implementation detected"}, "fullDescription": {"text": "Found 17 placeholder/mock markers across 3 source files. This often means the repo looks complete while core flows still use generated scaffolding or fake data."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-2d0c7b7ab8f8aacf", "name": "Critical user flow still appears backed by mock or placeholder data", "shortDescription": {"text": "Critical user flow still appears backed by mock or placeholder data"}, "fullDescription": {"text": "A payment/auth/admin/order/billing-style flow contains mock, fake, TODO, dummy, or placeholder markers in runtime source. In the Fable corpus this is a high-leverage completeness smell: the app can look finished while the money, identity, or tenant flow is still scaffolded."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-b9088664ace7f748", "name": "Composite production-readiness gap", "shortDescription": {"text": "Composite production-readiness gap"}, "fullDescription": {"text": "Multiple low-cost hardening controls are missing together: license, ci, tests, operator-readme. Opus verification showed these co-occurring gaps are a better readiness signal than reading each flag in isolation."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "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, ci, tests, operator-readme. 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}}]}}, "automationDetails": {"id": "repobility/26198"}, "properties": {"repository": "guasi18587278913/deepsea-newcomer", "repoUrl": "https://github.com/guasi18587278913/deepsea-newcomer", "branch": "main"}, "results": [{"ruleId": "scanner-30a85105c670a974", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in preflight.html:277"}, "properties": {"repobilityId": "7884795295160e8b", "scanner": "scanner-primary", "fingerprint": "30a85105c670a974", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "preflight.html"}, "region": {"startLine": 277}}}]}, {"ruleId": "scanner-2e3bcd1db0fb3d17", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in learn.html:282"}, "properties": {"repobilityId": "10d732ccaf6ce2c0", "scanner": "scanner-primary", "fingerprint": "2e3bcd1db0fb3d17", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "learn.html"}, "region": {"startLine": 282}}}]}, {"ruleId": "scanner-0501d8daf40e4f8c", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in parchment-picks.html:54"}, "properties": {"repobilityId": "955844209bb49f78", "scanner": "scanner-primary", "fingerprint": "0501d8daf40e4f8c", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "parchment-picks.html"}, "region": {"startLine": 54}}}]}, {"ruleId": "scanner-3c943a2f8341765a", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in showcase.html:367"}, "properties": {"repobilityId": "39fd832ed246bd13", "scanner": "scanner-primary", "fingerprint": "3c943a2f8341765a", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "showcase.html"}, "region": {"startLine": 367}}}]}, {"ruleId": "scanner-2cdb7a05278ea409", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in community.html:214"}, "properties": {"repobilityId": "f9013da8a9ebcd73", "scanner": "scanner-primary", "fingerprint": "2cdb7a05278ea409", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "community.html"}, "region": {"startLine": 214}}}]}, {"ruleId": "scanner-2dcaf60a85f3f98c", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in course-discuss.js:362"}, "properties": {"repobilityId": "c1b0053bdaa1a1dc", "scanner": "scanner-primary", "fingerprint": "2dcaf60a85f3f98c", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "course-discuss.js"}, "region": {"startLine": 362}}}]}, {"ruleId": "scanner-f61129544eb2f57f", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in homework-mine.html:132"}, "properties": {"repobilityId": "97ea452fb681f163", "scanner": "scanner-primary", "fingerprint": "f61129544eb2f57f", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "homework-mine.html"}, "region": {"startLine": 132}}}]}, {"ruleId": "scanner-b6207853693827c4", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in topbar.js:40"}, "properties": {"repobilityId": "152f02c912e17b4c", "scanner": "scanner-primary", "fingerprint": "b6207853693827c4", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "topbar.js"}, "region": {"startLine": 40}}}]}, {"ruleId": "scanner-9a5c9064135313d9", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in homework-detail.html:64"}, "properties": {"repobilityId": "fbe25bb10f215caf", "scanner": "scanner-primary", "fingerprint": "9a5c9064135313d9", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "homework-detail.html"}, "region": {"startLine": 64}}}]}, {"ruleId": "scanner-d900cff2d39286ec", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in toolbox.html:312"}, "properties": {"repobilityId": "8983e37a6889aa8c", "scanner": "scanner-primary", "fingerprint": "d900cff2d39286ec", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "toolbox.html"}, "region": {"startLine": 312}}}]}, {"ruleId": "scanner-8bd193681d39b345", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in profile.html:200"}, "properties": {"repobilityId": "310e2e909a7be4fa", "scanner": "scanner-primary", "fingerprint": "8bd193681d39b345", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "profile.html"}, "region": {"startLine": 200}}}]}, {"ruleId": "scanner-168f620f7ba81e3c", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in roadmap.html:2033"}, "properties": {"repobilityId": "c0a1cd16be5c98aa", "scanner": "scanner-primary", "fingerprint": "168f620f7ba81e3c", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "roadmap.html"}, "region": {"startLine": 2033}}}]}, {"ruleId": "scanner-498b626852166c36", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in members.html:213"}, "properties": {"repobilityId": "5b485d19184dddc5", "scanner": "scanner-primary", "fingerprint": "498b626852166c36", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "members.html"}, "region": {"startLine": 213}}}]}, {"ruleId": "scanner-ebf4bcb99292f1ae", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in article.html:122"}, "properties": {"repobilityId": "82d2fd056b716294", "scanner": "scanner-primary", "fingerprint": "ebf4bcb99292f1ae", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "article.html"}, "region": {"startLine": 122}}}]}, {"ruleId": "scanner-8a530ffca7030193", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in assistant.js:212"}, "properties": {"repobilityId": "5737ccc0047a4731", "scanner": "scanner-primary", "fingerprint": "8a530ffca7030193", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "assistant.js"}, "region": {"startLine": 212}}}]}, {"ruleId": "scanner-d799c146fabaad27", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in homework-submit.html:150"}, "properties": {"repobilityId": "d93a0ce055fb860e", "scanner": "scanner-primary", "fingerprint": "d799c146fabaad27", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "homework-submit.html"}, "region": {"startLine": 150}}}]}, {"ruleId": "scanner-9e8538cb41f811b5", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in calendar.html:713"}, "properties": {"repobilityId": "b65db1c5b98a2804", "scanner": "scanner-primary", "fingerprint": "9e8538cb41f811b5", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "calendar.html"}, "region": {"startLine": 713}}}]}, {"ruleId": "scanner-bae0676e1693b607", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in routes-ui.js:131"}, "properties": {"repobilityId": "cd0f4c033cd4bf72", "scanner": "scanner-primary", "fingerprint": "bae0676e1693b607", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes-ui.js"}, "region": {"startLine": 131}}}]}, {"ruleId": "scanner-20bc7699be3a69f8", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in course-discuss.html:364"}, "properties": {"repobilityId": "47e1b206b9c74ebb", "scanner": "scanner-primary", "fingerprint": "20bc7699be3a69f8", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "course-discuss.html"}, "region": {"startLine": 364}}}]}, {"ruleId": "scanner-6117fc4d08219cbf", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in feed.html:281"}, "properties": {"repobilityId": "a2cad1ebea113f6b", "scanner": "scanner-primary", "fingerprint": "6117fc4d08219cbf", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "feed.html"}, "region": {"startLine": 281}}}]}, {"ruleId": "scanner-98f9f589ad4bf436", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in workbench.html:218"}, "properties": {"repobilityId": "691bde1a53ff2198", "scanner": "scanner-primary", "fingerprint": "98f9f589ad4bf436", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "workbench.html"}, "region": {"startLine": 218}}}]}, {"ruleId": "scanner-b513a70c2f9b9316", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in demo-switcher.js:120"}, "properties": {"repobilityId": "a146f8d67d03d285", "scanner": "scanner-primary", "fingerprint": "b513a70c2f9b9316", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "demo-switcher.js"}, "region": {"startLine": 120}}}]}, {"ruleId": "scanner-2d6a311ae5e99c43", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in discuss-feed.html:918"}, "properties": {"repobilityId": "974c2d0e90e62d0e", "scanner": "scanner-primary", "fingerprint": "2d6a311ae5e99c43", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "discuss-feed.html"}, "region": {"startLine": 918}}}]}, {"ruleId": "scanner-f29614b303eb5a38", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in discuss.html:472"}, "properties": {"repobilityId": "e9c8e116bb404895", "scanner": "scanner-primary", "fingerprint": "f29614b303eb5a38", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "discuss.html"}, "region": {"startLine": 472}}}]}, {"ruleId": "scanner-3c734b02aa78c711", "level": "note", "message": {"text": "Very large file: feed-data.js (1197 lines)"}, "properties": {"repobilityId": "dff21ec08469c474", "scanner": "scanner-primary", "fingerprint": "3c734b02aa78c711", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-ba9d3ba3c4c76830", "level": "note", "message": {"text": "Very large file: course-data.js (1918 lines)"}, "properties": {"repobilityId": "6dae43e9f813e6f6", "scanner": "scanner-primary", "fingerprint": "ba9d3ba3c4c76830", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-6893a6c8b0861585", "level": "warning", "message": {"text": "Very low test-to-source ratio"}, "properties": {"repobilityId": "54a7de3f06314bf0", "scanner": "scanner-primary", "fingerprint": "6893a6c8b0861585", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["tests", "coverage"]}}, {"ruleId": "scanner-141b30a41e03817b", "level": "note", "message": {"text": "No license file detected"}, "properties": {"repobilityId": "b6d40a0500e15f79", "scanner": "scanner-primary", "fingerprint": "141b30a41e03817b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["license", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-faccb9061e9b52a0", "level": "note", "message": {"text": "No README detected"}, "properties": {"repobilityId": "562c7162f94ad0cc", "scanner": "scanner-primary", "fingerprint": "faccb9061e9b52a0", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["docs", "readme", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-72b2a6250083a784", "level": "warning", "message": {"text": "Placeholder or mock-heavy implementation detected"}, "properties": {"repobilityId": "1950e5afcd0f8272", "scanner": "scanner-primary", "fingerprint": "72b2a6250083a784", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["placeholder", "mock-data", "incomplete", "generated-repo-pattern"]}}, {"ruleId": "scanner-2d0c7b7ab8f8aacf", "level": "warning", "message": {"text": "Critical user flow still appears backed by mock or placeholder data"}, "properties": {"repobilityId": "1785c3c2accd1683", "scanner": "scanner-primary", "fingerprint": "2d0c7b7ab8f8aacf", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["placeholder", "mock-data", "critical-flow", "generated-repo-pattern"]}}, {"ruleId": "scanner-b9088664ace7f748", "level": "warning", "message": {"text": "Composite production-readiness gap"}, "properties": {"repobilityId": "f51783eb635ea395", "scanner": "scanner-primary", "fingerprint": "b9088664ace7f748", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["production-readiness", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-749d4bc1bd66df5f", "level": "warning", "message": {"text": "Agent instructions exist but release-hardening basics are missing"}, "properties": {"repobilityId": "072cd2c445c30506", "scanner": "scanner-primary", "fingerprint": "749d4bc1bd66df5f", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "repo-hardening", "generated-repo-pattern"]}}]}]}