{"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-9710c8d059e53154", "name": "No frontend routes/components detected", "shortDescription": {"text": "No frontend routes/components detected"}, "fullDescription": {"text": "No React/Vue/Next routes were found. This is fine for backend-only repos."}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-5464c714e72da005", "name": "Insecure pattern 'direct_innerhtml_assignment' in index.html:2944", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in index.html:2944"}, "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-8c16fdc6936d82bf", "name": "Insecure pattern 'direct_innerhtml_assignment' in langley-hvac-marketing/index.html:2386", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in langley-hvac-marketing/index.html:2386"}, "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-5ccdf002f4e4b611", "name": "Insecure pattern 'direct_innerhtml_assignment' in port-moody-hvac-marketing/index.html:2386", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in port-moody-hvac-marketing/index.html:2386"}, "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-495eb995158b7bdd", "name": "Insecure pattern 'direct_innerhtml_assignment' in _archive/landing-preview-2026-06-08/index.html:1591", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in _archive/landing-preview-2026-06-08/index.html:1591"}, "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-10cc63b3611bdc55", "name": "Insecure pattern 'direct_innerhtml_assignment' in _archive/plumbing-pages-2026-05-12/burnaby-plumbing-marketing/index.ht", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in _archive/plumbing-pages-2026-05-12/burnaby-plumbing-marketing/index.html:1157"}, "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-61401591e82c7b34", "name": "Insecure pattern 'direct_innerhtml_assignment' in _archive/plumbing-pages-2026-05-12/north-vancouver-plumbing-marketing/", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in _archive/plumbing-pages-2026-05-12/north-vancouver-plumbing-marketing/index.html:1157"}, "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-423f18fa3155c174", "name": "Insecure pattern 'direct_innerhtml_assignment' in _archive/plumbing-pages-2026-05-12/coquitlam-plumbing-marketing/index.", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in _archive/plumbing-pages-2026-05-12/coquitlam-plumbing-marketing/index.html:1157"}, "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-96879e529f695912", "name": "Insecure pattern 'direct_innerhtml_assignment' in _archive/plumbing-pages-2026-05-12/vancouver-plumbing-marketing/index.", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in _archive/plumbing-pages-2026-05-12/vancouver-plumbing-marketing/index.html:1157"}, "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-9c4ca177c7563adc", "name": "Insecure pattern 'direct_innerhtml_assignment' in _archive/plumbing-pages-2026-05-12/plumbing/index.html:1158", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in _archive/plumbing-pages-2026-05-12/plumbing/index.html:1158"}, "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-5a14abf861eabb11", "name": "Insecure pattern 'direct_innerhtml_assignment' in _archive/plumbing-pages-2026-05-12/richmond-plumbing-marketing/index.h", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in _archive/plumbing-pages-2026-05-12/richmond-plumbing-marketing/index.html:1157"}, "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-3cdcbe0911f210eb", "name": "Insecure pattern 'direct_innerhtml_assignment' in _archive/plumbing-pages-2026-05-12/surrey-plumbing-marketing/index.htm", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in _archive/plumbing-pages-2026-05-12/surrey-plumbing-marketing/index.html:1157"}, "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-dc4a2a412b2a0b05", "name": "Insecure pattern 'direct_innerhtml_assignment' in pitt-meadows-hvac-marketing/index.html:2386", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in pitt-meadows-hvac-marketing/index.html:2386"}, "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-5ed3adf096b93979", "name": "Insecure pattern 'direct_innerhtml_assignment' in delta-hvac-marketing/index.html:2386", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in delta-hvac-marketing/index.html:2386"}, "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-40e94e3ea45a9500", "name": "Insecure pattern 'direct_innerhtml_assignment' in port-coquitlam-hvac-marketing/index.html:2386", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in port-coquitlam-hvac-marketing/index.html:2386"}, "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-277ff33c1fb569e0", "name": "Insecure pattern 'direct_innerhtml_assignment' in assets/nav-mobile.js:14", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in assets/nav-mobile.js:14"}, "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-d332ce015f47a693", "name": "Insecure pattern 'direct_innerhtml_assignment' in abbotsford-hvac-marketing/index.html:2386", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in abbotsford-hvac-marketing/index.html:2386"}, "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-765956d067315e98", "name": "Insecure pattern 'direct_innerhtml_assignment' in audit/index.html:425", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in audit/index.html:425"}, "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-a79610aa220d51f5", "name": "Insecure pattern 'direct_innerhtml_assignment' in surrey-hvac-marketing/index.html:2386", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in surrey-hvac-marketing/index.html:2386"}, "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-213c77bde3ec5693", "name": "Insecure pattern 'direct_innerhtml_assignment' in white-rock-hvac-marketing/index.html:2386", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in white-rock-hvac-marketing/index.html:2386"}, "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-26296cf824d07438", "name": "Insecure pattern 'direct_innerhtml_assignment' in mission-hvac-marketing/index.html:2386", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in mission-hvac-marketing/index.html:2386"}, "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-13ae0798f008cda8", "name": "Insecure pattern 'direct_innerhtml_assignment' in north-vancouver-hvac-marketing/index.html:2386", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in north-vancouver-hvac-marketing/index.html:2386"}, "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-dc6f09c33229e34a", "name": "Insecure pattern 'direct_innerhtml_assignment' in west-vancouver-hvac-marketing/index.html:2386", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in west-vancouver-hvac-marketing/index.html:2386"}, "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-68e35e5be762ba16", "name": "Insecure pattern 'direct_innerhtml_assignment' in richmond-hvac-marketing/index.html:2386", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in richmond-hvac-marketing/index.html:2386"}, "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-3a1ef1edd0dd8b63", "name": "Insecure pattern 'direct_innerhtml_assignment' in vancouver-hvac-marketing/index.html:2386", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in vancouver-hvac-marketing/index.html:2386"}, "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-c7dfca861c19bb44", "name": "Insecure pattern 'direct_innerhtml_assignment' in new-westminster-hvac-marketing/index.html:2386", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in new-westminster-hvac-marketing/index.html:2386"}, "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-4829cd30735c4f4c", "name": "Insecure pattern 'direct_innerhtml_assignment' in portal/index.html:477", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in portal/index.html:477"}, "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-01644fce06c31019", "name": "Insecure pattern 'direct_innerhtml_assignment' in coquitlam-hvac-marketing/index.html:2386", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in coquitlam-hvac-marketing/index.html:2386"}, "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-f88d5e6fb76bd42e", "name": "Insecure pattern 'direct_innerhtml_assignment' in tiktok-callback/index.html:231", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in tiktok-callback/index.html:231"}, "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-20331c92b6a12933", "name": "Insecure pattern 'direct_innerhtml_assignment' in maple-ridge-hvac-marketing/index.html:2386", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in maple-ridge-hvac-marketing/index.html:2386"}, "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-412d874e316ab11d", "name": "Insecure pattern 'direct_innerhtml_assignment' in burnaby-hvac-marketing/index.html:2386", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in burnaby-hvac-marketing/index.html:2386"}, "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-4601e3ad3bb28677", "name": "No CI/CD pipelines detected", "shortDescription": {"text": "No CI/CD pipelines detected"}, "fullDescription": {"text": "No GitHub Actions, GitLab CI, or CircleCI configs found. Without CI you can't gate deploys on tests/lints."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-a313ba95b50833c7", "name": "Very large file: _generate_city_pages.py (1335 lines)", "shortDescription": {"text": "Very large file: _generate_city_pages.py (1335 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 6 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-3ab5d313dda8e5f9", "name": "Debug logging residue appears in source files", "shortDescription": {"text": "Debug logging residue appears in source files"}, "fullDescription": {"text": "Found 12 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-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-ea8f3013f588db25", "name": "Shallow git history limits provenance confidence", "shortDescription": {"text": "Shallow git history limits provenance confidence"}, "fullDescription": {"text": "The repository is a shallow clone. Origin/evolution analysis cannot distinguish fresh generation, imported legacy code, or long-lived human code with high confidence."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-8424db9c75e04ba4", "name": "Very short observed git history", "shortDescription": {"text": "Very short observed git history"}, "fullDescription": {"text": "The repo has multiple source files but two or fewer visible commits. This is not a failure by itself, but it lowers confidence in evolution-based diagnosis."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7cfb7c3c2cf19ff8", "name": "Legacy-named symbol `hero_copy` in _generate_city_pages.py:27", "shortDescription": {"text": "Legacy-named symbol `hero_copy` in _generate_city_pages.py:27"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-5791d49e0dc643cc", "name": "Commented-code block (5 lines) in _generate_city_pages.py:598", "shortDescription": {"text": "Commented-code block (5 lines) in _generate_city_pages.py:598"}, "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-2e8abb8c7af89e62", "name": "Network/subprocess call without timeout or try/except \u2014 generate_sitemap.py:24", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 generate_sitemap.py:24"}, "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-3dccdbb42be2233d", "name": "`fetch()` without try/.catch or AbortSignal \u2014 assets/audit-widget.js:109", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 assets/audit-widget.js:109"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}]}}, "automationDetails": {"id": "repobility/23704"}, "properties": {"repository": "zshefrin/Rankwise", "repoUrl": "https://github.com/zshefrin/Rankwise", "branch": "main"}, "results": [{"ruleId": "scanner-9710c8d059e53154", "level": "none", "message": {"text": "No frontend routes/components detected"}, "properties": {"repobilityId": "44ca61485762e494", "scanner": "scanner-primary", "fingerprint": "9710c8d059e53154", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["coverage"]}}, {"ruleId": "scanner-5464c714e72da005", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in index.html:2944"}, "properties": {"repobilityId": "f91708437a3a5445", "scanner": "scanner-primary", "fingerprint": "5464c714e72da005", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "index.html"}, "region": {"startLine": 2944}}}]}, {"ruleId": "scanner-8c16fdc6936d82bf", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in langley-hvac-marketing/index.html:2386"}, "properties": {"repobilityId": "2d7f42fcf01ac4f0", "scanner": "scanner-primary", "fingerprint": "8c16fdc6936d82bf", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "langley-hvac-marketing/index.html"}, "region": {"startLine": 2386}}}]}, {"ruleId": "scanner-5ccdf002f4e4b611", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in port-moody-hvac-marketing/index.html:2386"}, "properties": {"repobilityId": "b6891b8942175373", "scanner": "scanner-primary", "fingerprint": "5ccdf002f4e4b611", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "port-moody-hvac-marketing/index.html"}, "region": {"startLine": 2386}}}]}, {"ruleId": "scanner-495eb995158b7bdd", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in _archive/landing-preview-2026-06-08/index.html:1591"}, "properties": {"repobilityId": "ea1519d44195ed25", "scanner": "scanner-primary", "fingerprint": "495eb995158b7bdd", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "_archive/landing-preview-2026-06-08/index.html"}, "region": {"startLine": 1591}}}]}, {"ruleId": "scanner-10cc63b3611bdc55", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in _archive/plumbing-pages-2026-05-12/burnaby-plumbing-marketing/index.html:1157"}, "properties": {"repobilityId": "1496f2ae0c009ba0", "scanner": "scanner-primary", "fingerprint": "10cc63b3611bdc55", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "_archive/plumbing-pages-2026-05-12/burnaby-plumbing-marketing/index.html"}, "region": {"startLine": 1157}}}]}, {"ruleId": "scanner-61401591e82c7b34", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in _archive/plumbing-pages-2026-05-12/north-vancouver-plumbing-marketing/index.html:1157"}, "properties": {"repobilityId": "784f5251907e3ffb", "scanner": "scanner-primary", "fingerprint": "61401591e82c7b34", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "_archive/plumbing-pages-2026-05-12/north-vancouver-plumbing-marketing/index.html"}, "region": {"startLine": 1157}}}]}, {"ruleId": "scanner-423f18fa3155c174", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in _archive/plumbing-pages-2026-05-12/coquitlam-plumbing-marketing/index.html:1157"}, "properties": {"repobilityId": "40112ac7feaa1a6b", "scanner": "scanner-primary", "fingerprint": "423f18fa3155c174", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "_archive/plumbing-pages-2026-05-12/coquitlam-plumbing-marketing/index.html"}, "region": {"startLine": 1157}}}]}, {"ruleId": "scanner-96879e529f695912", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in _archive/plumbing-pages-2026-05-12/vancouver-plumbing-marketing/index.html:1157"}, "properties": {"repobilityId": "e88e1df2ad0f467a", "scanner": "scanner-primary", "fingerprint": "96879e529f695912", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "_archive/plumbing-pages-2026-05-12/vancouver-plumbing-marketing/index.html"}, "region": {"startLine": 1157}}}]}, {"ruleId": "scanner-9c4ca177c7563adc", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in _archive/plumbing-pages-2026-05-12/plumbing/index.html:1158"}, "properties": {"repobilityId": "c8fa04dbfc55ced5", "scanner": "scanner-primary", "fingerprint": "9c4ca177c7563adc", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "_archive/plumbing-pages-2026-05-12/plumbing/index.html"}, "region": {"startLine": 1158}}}]}, {"ruleId": "scanner-5a14abf861eabb11", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in _archive/plumbing-pages-2026-05-12/richmond-plumbing-marketing/index.html:1157"}, "properties": {"repobilityId": "46f2a8f51a39f443", "scanner": "scanner-primary", "fingerprint": "5a14abf861eabb11", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "_archive/plumbing-pages-2026-05-12/richmond-plumbing-marketing/index.html"}, "region": {"startLine": 1157}}}]}, {"ruleId": "scanner-3cdcbe0911f210eb", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in _archive/plumbing-pages-2026-05-12/surrey-plumbing-marketing/index.html:1157"}, "properties": {"repobilityId": "f886a3d351f886a6", "scanner": "scanner-primary", "fingerprint": "3cdcbe0911f210eb", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "_archive/plumbing-pages-2026-05-12/surrey-plumbing-marketing/index.html"}, "region": {"startLine": 1157}}}]}, {"ruleId": "scanner-dc4a2a412b2a0b05", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in pitt-meadows-hvac-marketing/index.html:2386"}, "properties": {"repobilityId": "ce3f193fe78f37cd", "scanner": "scanner-primary", "fingerprint": "dc4a2a412b2a0b05", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pitt-meadows-hvac-marketing/index.html"}, "region": {"startLine": 2386}}}]}, {"ruleId": "scanner-5ed3adf096b93979", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in delta-hvac-marketing/index.html:2386"}, "properties": {"repobilityId": "da75e9549681300f", "scanner": "scanner-primary", "fingerprint": "5ed3adf096b93979", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "delta-hvac-marketing/index.html"}, "region": {"startLine": 2386}}}]}, {"ruleId": "scanner-40e94e3ea45a9500", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in port-coquitlam-hvac-marketing/index.html:2386"}, "properties": {"repobilityId": "38dfc4b8befceb75", "scanner": "scanner-primary", "fingerprint": "40e94e3ea45a9500", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "port-coquitlam-hvac-marketing/index.html"}, "region": {"startLine": 2386}}}]}, {"ruleId": "scanner-277ff33c1fb569e0", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in assets/nav-mobile.js:14"}, "properties": {"repobilityId": "9eb5c25e57550f0e", "scanner": "scanner-primary", "fingerprint": "277ff33c1fb569e0", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "assets/nav-mobile.js"}, "region": {"startLine": 14}}}]}, {"ruleId": "scanner-d332ce015f47a693", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in abbotsford-hvac-marketing/index.html:2386"}, "properties": {"repobilityId": "12c4ffb8f1115ad8", "scanner": "scanner-primary", "fingerprint": "d332ce015f47a693", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "abbotsford-hvac-marketing/index.html"}, "region": {"startLine": 2386}}}]}, {"ruleId": "scanner-765956d067315e98", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in audit/index.html:425"}, "properties": {"repobilityId": "4488b684360027a7", "scanner": "scanner-primary", "fingerprint": "765956d067315e98", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "audit/index.html"}, "region": {"startLine": 425}}}]}, {"ruleId": "scanner-a79610aa220d51f5", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in surrey-hvac-marketing/index.html:2386"}, "properties": {"repobilityId": "f7b9c8b5c0a587db", "scanner": "scanner-primary", "fingerprint": "a79610aa220d51f5", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "surrey-hvac-marketing/index.html"}, "region": {"startLine": 2386}}}]}, {"ruleId": "scanner-213c77bde3ec5693", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in white-rock-hvac-marketing/index.html:2386"}, "properties": {"repobilityId": "1353c7b5fada02ce", "scanner": "scanner-primary", "fingerprint": "213c77bde3ec5693", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "white-rock-hvac-marketing/index.html"}, "region": {"startLine": 2386}}}]}, {"ruleId": "scanner-26296cf824d07438", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in mission-hvac-marketing/index.html:2386"}, "properties": {"repobilityId": "44f6049f6df4c844", "scanner": "scanner-primary", "fingerprint": "26296cf824d07438", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "mission-hvac-marketing/index.html"}, "region": {"startLine": 2386}}}]}, {"ruleId": "scanner-13ae0798f008cda8", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in north-vancouver-hvac-marketing/index.html:2386"}, "properties": {"repobilityId": "a2a69779b359886e", "scanner": "scanner-primary", "fingerprint": "13ae0798f008cda8", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "north-vancouver-hvac-marketing/index.html"}, "region": {"startLine": 2386}}}]}, {"ruleId": "scanner-dc6f09c33229e34a", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in west-vancouver-hvac-marketing/index.html:2386"}, "properties": {"repobilityId": "1de5562da3309e62", "scanner": "scanner-primary", "fingerprint": "dc6f09c33229e34a", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "west-vancouver-hvac-marketing/index.html"}, "region": {"startLine": 2386}}}]}, {"ruleId": "scanner-68e35e5be762ba16", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in richmond-hvac-marketing/index.html:2386"}, "properties": {"repobilityId": "52b4f160bb55bfa4", "scanner": "scanner-primary", "fingerprint": "68e35e5be762ba16", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "richmond-hvac-marketing/index.html"}, "region": {"startLine": 2386}}}]}, {"ruleId": "scanner-3a1ef1edd0dd8b63", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in vancouver-hvac-marketing/index.html:2386"}, "properties": {"repobilityId": "714952a28d65d3af", "scanner": "scanner-primary", "fingerprint": "3a1ef1edd0dd8b63", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "vancouver-hvac-marketing/index.html"}, "region": {"startLine": 2386}}}]}, {"ruleId": "scanner-c7dfca861c19bb44", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in new-westminster-hvac-marketing/index.html:2386"}, "properties": {"repobilityId": "5838dcfd8ba8604a", "scanner": "scanner-primary", "fingerprint": "c7dfca861c19bb44", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "new-westminster-hvac-marketing/index.html"}, "region": {"startLine": 2386}}}]}, {"ruleId": "scanner-4829cd30735c4f4c", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in portal/index.html:477"}, "properties": {"repobilityId": "57d232be0896e65c", "scanner": "scanner-primary", "fingerprint": "4829cd30735c4f4c", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "portal/index.html"}, "region": {"startLine": 477}}}]}, {"ruleId": "scanner-01644fce06c31019", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in coquitlam-hvac-marketing/index.html:2386"}, "properties": {"repobilityId": "dd1ef745fd5316fb", "scanner": "scanner-primary", "fingerprint": "01644fce06c31019", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "coquitlam-hvac-marketing/index.html"}, "region": {"startLine": 2386}}}]}, {"ruleId": "scanner-f88d5e6fb76bd42e", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in tiktok-callback/index.html:231"}, "properties": {"repobilityId": "85649ef9c7979005", "scanner": "scanner-primary", "fingerprint": "f88d5e6fb76bd42e", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tiktok-callback/index.html"}, "region": {"startLine": 231}}}]}, {"ruleId": "scanner-20331c92b6a12933", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in maple-ridge-hvac-marketing/index.html:2386"}, "properties": {"repobilityId": "8f8f3df6ce1d3c75", "scanner": "scanner-primary", "fingerprint": "20331c92b6a12933", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "maple-ridge-hvac-marketing/index.html"}, "region": {"startLine": 2386}}}]}, {"ruleId": "scanner-412d874e316ab11d", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in burnaby-hvac-marketing/index.html:2386"}, "properties": {"repobilityId": "19257b303d3ebd33", "scanner": "scanner-primary", "fingerprint": "412d874e316ab11d", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "burnaby-hvac-marketing/index.html"}, "region": {"startLine": 2386}}}]}, {"ruleId": "scanner-4601e3ad3bb28677", "level": "warning", "message": {"text": "No CI/CD pipelines detected"}, "properties": {"repobilityId": "c3ee439bce2bc51e", "scanner": "scanner-primary", "fingerprint": "4601e3ad3bb28677", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["coverage"]}}, {"ruleId": "scanner-a313ba95b50833c7", "level": "note", "message": {"text": "Very large file: _generate_city_pages.py (1335 lines)"}, "properties": {"repobilityId": "1cce20425024e247", "scanner": "scanner-primary", "fingerprint": "a313ba95b50833c7", "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": "3ba3f24b9f941699", "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": "47440173f74ffa3a", "scanner": "scanner-primary", "fingerprint": "faccb9061e9b52a0", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["docs", "readme", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-3ab5d313dda8e5f9", "level": "note", "message": {"text": "Debug logging residue appears in source files"}, "properties": {"repobilityId": "f524b033d7544da7", "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": "c5613b71d1d95085", "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": "de042eb06e0f91fd", "scanner": "scanner-primary", "fingerprint": "b9088664ace7f748", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["production-readiness", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-ea8f3013f588db25", "level": "note", "message": {"text": "Shallow git history limits provenance confidence"}, "properties": {"repobilityId": "cb8c808ad3294ef9", "scanner": "scanner-primary", "fingerprint": "ea8f3013f588db25", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["provenance", "git-history", "generated-repo-pattern"]}}, {"ruleId": "scanner-8424db9c75e04ba4", "level": "none", "message": {"text": "Very short observed git history"}, "properties": {"repobilityId": "279f591109cc1c0b", "scanner": "scanner-primary", "fingerprint": "8424db9c75e04ba4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["provenance", "git-history", "generated-repo-pattern"]}}, {"ruleId": "scanner-7cfb7c3c2cf19ff8", "level": "note", "message": {"text": "Legacy-named symbol `hero_copy` in _generate_city_pages.py:27"}, "properties": {"repobilityId": "29bbcd616d8c6ea3", "scanner": "scanner-primary", "fingerprint": "7cfb7c3c2cf19ff8", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-5791d49e0dc643cc", "level": "none", "message": {"text": "Commented-code block (5 lines) in _generate_city_pages.py:598"}, "properties": {"repobilityId": "985be32e39626d7a", "scanner": "scanner-primary", "fingerprint": "5791d49e0dc643cc", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2e8abb8c7af89e62", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 generate_sitemap.py:24"}, "properties": {"repobilityId": "32c93cd851e607c1", "scanner": "scanner-primary", "fingerprint": "2e8abb8c7af89e62", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-3dccdbb42be2233d", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 assets/audit-widget.js:109"}, "properties": {"repobilityId": "d7c4e67fd3efeb4e", "scanner": "scanner-primary", "fingerprint": "3dccdbb42be2233d", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}]}]}