{"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-1c465697d15dbd6b", "name": "Insecure pattern 'node_child_process' in scripts/poc/translate-poc.mjs:13", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/poc/translate-poc.mjs:13"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-297307cc3ce43546", "name": "Insecure pattern 'node_child_process' in packages/engine/src/claude-cli-engine.ts:9", "shortDescription": {"text": "Insecure pattern 'node_child_process' in packages/engine/src/claude-cli-engine.ts:9"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-9e4e19c4f067b313", "name": "Insecure pattern 'node_child_process' in packages/engine/src/local-llm-engine.ts:7", "shortDescription": {"text": "Insecure pattern 'node_child_process' in packages/engine/src/local-llm-engine.ts:7"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-73631e140efd88b1", "name": "Insecure pattern 'direct_innerhtml_assignment' in src/dashboard.ts:135", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/dashboard.ts:135"}, "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-09cca7fea22b5a51", "name": "Insecure pattern 'direct_innerhtml_assignment' in src/onboarding.ts:43", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/onboarding.ts:43"}, "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-eb722bc7326fe257", "name": "Insecure pattern 'direct_innerhtml_assignment' in src/main.ts:87", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/main.ts:87"}, "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-4eea92f8cad08702", "name": "Insecure pattern 'direct_innerhtml_assignment' in src/settings-sheet.ts:57", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/settings-sheet.ts:57"}, "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-c7e6c3e62da6e9b3", "name": "Insecure pattern 'direct_innerhtml_assignment' in src/review.ts:125", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/review.ts:125"}, "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-54fd66b423e33a6f", "name": "Insecure pattern 'node_child_process' in src/host/detect-cli.ts:6", "shortDescription": {"text": "Insecure pattern 'node_child_process' in src/host/detect-cli.ts:6"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-a90da7d22b1f0ecf", "name": "Insecure pattern 'node_child_process' in src/host/local-tier.ts:7", "shortDescription": {"text": "Insecure pattern 'node_child_process' in src/host/local-tier.ts:7"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-d5906992bf974caa", "name": "Node manifest has dependencies but no lockfile: packages/archive/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: packages/archive/package.json"}, "fullDescription": {"text": "`package.json` declares dependencies, but no same-directory npm/pnpm/yarn/bun lockfile was found. Generated projects without lockfiles are less reproducible and harder to secure-scan precisely."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-f9f13e1418f0ef36", "name": "Node manifest has dependencies but no lockfile: packages/engine/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: packages/engine/package.json"}, "fullDescription": {"text": "`package.json` declares dependencies, but no same-directory npm/pnpm/yarn/bun lockfile was found. Generated projects without lockfiles are less reproducible and harder to secure-scan precisely."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-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-454d93fe767abb7b", "name": "Commented-code block (5 lines) in test/review-coaching.test.ts:3", "shortDescription": {"text": "Commented-code block (5 lines) in test/review-coaching.test.ts:3"}, "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-856b21d6f811134f", "name": "Commented-code block (6 lines) in test/recording-survives.test.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in test/recording-survives.test.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e769b6001c9dd3fd", "name": "Commented-code block (5 lines) in packages/archive/src/retention.ts:100", "shortDescription": {"text": "Commented-code block (5 lines) in packages/archive/src/retention.ts:100"}, "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-ee756d1598c78b77", "name": "Commented-code block (5 lines) in packages/archive/src/paths.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in packages/archive/src/paths.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f55c35935a0a93fd", "name": "Commented-code block (8 lines) in packages/archive/src/adopt.ts:4", "shortDescription": {"text": "Commented-code block (8 lines) in packages/archive/src/adopt.ts:4"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d7fb17bd371724c2", "name": "Commented-code block (5 lines) in packages/archive/src/parse.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in packages/archive/src/parse.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-da2c78e9f4d5b0f4", "name": "Commented-code block (11 lines) in packages/archive/src/writer.ts:4", "shortDescription": {"text": "Commented-code block (11 lines) in packages/archive/src/writer.ts:4"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ac1d2725f52729cc", "name": "Commented-code block (7 lines) in packages/archive/src/sanitize.ts:34", "shortDescription": {"text": "Commented-code block (7 lines) in packages/archive/src/sanitize.ts:34"}, "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-af6f4ecd58066438", "name": "Commented-code block (6 lines) in packages/engine/test/fake-llama-server.mjs:2", "shortDescription": {"text": "Commented-code block (6 lines) in packages/engine/test/fake-llama-server.mjs:2"}, "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-92350d76e403aab4", "name": "Commented-code block (7 lines) in packages/engine/test/extras-economics.test.ts:1", "shortDescription": {"text": "Commented-code block (7 lines) in packages/engine/test/extras-economics.test.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-557881199f4b2c15", "name": "Commented-code block (5 lines) in packages/engine/test/fake-cli.mjs:7", "shortDescription": {"text": "Commented-code block (5 lines) in packages/engine/test/fake-cli.mjs:7"}, "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-81a6577e92682c54", "name": "Commented-code block (5 lines) in packages/engine/test/global-teardown.mjs:8", "shortDescription": {"text": "Commented-code block (5 lines) in packages/engine/test/global-teardown.mjs:8"}, "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-28c0a93bfc30b938", "name": "Commented-code block (5 lines) in packages/engine/test/extras-budget.test.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in packages/engine/test/extras-budget.test.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3cb0abd77acb93de", "name": "Commented-code block (5 lines) in packages/engine/test/local-llm-engine.e2e.test.ts:24", "shortDescription": {"text": "Commented-code block (5 lines) in packages/engine/test/local-llm-engine.e2e.test.ts:24"}, "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-453b7750e4ddd8ce", "name": "`fetch()` without try/.catch or AbortSignal \u2014 packages/engine/test/local-llm-engine.e2e.test.ts:83", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/engine/test/local-llm-engine.e2e.test.ts:83"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-53059cfc2378985e", "name": "Commented-code block (5 lines) in packages/engine/src/model-download.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in packages/engine/src/model-download.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e1b450d933584913", "name": "`fetch()` without try/.catch or AbortSignal \u2014 packages/engine/src/model-download.ts:161", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/engine/src/model-download.ts:161"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-a616b7084c85eb9d", "name": "Commented-code block (7 lines) in packages/engine/src/stream-parser.ts:6", "shortDescription": {"text": "Commented-code block (7 lines) in packages/engine/src/stream-parser.ts:6"}, "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-e3569b758e9a89a0", "name": "Commented-code block (5 lines) in packages/engine/src/claude-cli-engine.ts:311", "shortDescription": {"text": "Commented-code block (5 lines) in packages/engine/src/claude-cli-engine.ts:311"}, "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-c799dbbd99f314dd", "name": "Commented-code block (5 lines) in packages/engine/src/local-llm-engine.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in packages/engine/src/local-llm-engine.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-499cd62b19d84ed7", "name": "Commented-code block (5 lines) in packages/engine/src/fallback-router.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in packages/engine/src/fallback-router.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-67d8bce55c66ece4", "name": "Commented-code block (5 lines) in packages/engine/src/pins.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in packages/engine/src/pins.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a4768c2815e6d43d", "name": "Commented-code block (7 lines) in packages/engine/src/meeting-metrics.ts:3", "shortDescription": {"text": "Commented-code block (7 lines) in packages/engine/src/meeting-metrics.ts:3"}, "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-d45bd59601e62101", "name": "Commented-code block (8 lines) in packages/engine/src/extras-budget.ts:1", "shortDescription": {"text": "Commented-code block (8 lines) in packages/engine/src/extras-budget.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d1b73d956edf62fb", "name": "Commented-code block (5 lines) in src/ui-heartbeat.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/ui-heartbeat.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d7784697e866ebfe", "name": "Commented-code block (8 lines) in src/dashboard.ts:5", "shortDescription": {"text": "Commented-code block (8 lines) in src/dashboard.ts:5"}, "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-3d2fdbc0f39e10d5", "name": "Commented-code block (8 lines) in src/onboarding.ts:1", "shortDescription": {"text": "Commented-code block (8 lines) in src/onboarding.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6d07e06df9e82740", "name": "Commented-code block (5 lines) in src/bootstrap.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/bootstrap.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-10826977e677dacc", "name": "Commented-code block (5 lines) in src/main.ts:576", "shortDescription": {"text": "Commented-code block (5 lines) in src/main.ts:576"}, "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-0753da8e0d6a1697", "name": "Commented-code block (8 lines) in src/review.ts:4", "shortDescription": {"text": "Commented-code block (8 lines) in src/review.ts:4"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a36c02ed53cc5bda", "name": "Commented-code block (5 lines) in src/host/start-config.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/host/start-config.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-95f995219aeed336", "name": "Commented-code block (5 lines) in src/host/timeout.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/host/timeout.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-21fd37d842617f19", "name": "Commented-code block (5 lines) in src/host/main.ts:65", "shortDescription": {"text": "Commented-code block (5 lines) in src/host/main.ts:65"}, "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-7f96da30b9f4abaa", "name": "Commented-code block (5 lines) in src/host/session.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/host/session.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3fa9e912c34a3664", "name": "Commented-code block (5 lines) in src/host/local-tier.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/host/local-tier.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2ba0f31523a9fcd4", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/host/local-tier.ts:104", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/host/local-tier.ts:104"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-fadd8e4a93c72576", "name": "Commented-code block (5 lines) in src/host/translation-runner.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/host/translation-runner.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}]}}, "automationDetails": {"id": "repobility/17932"}, "properties": {"repository": "realproject7/livecap", "repoUrl": "https://github.com/realproject7/livecap", "branch": "main"}, "results": [{"ruleId": "scanner-1c465697d15dbd6b", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/poc/translate-poc.mjs:13"}, "properties": {"repobilityId": "5ba6d4ed689a1cb6", "scanner": "scanner-primary", "fingerprint": "1c465697d15dbd6b", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/poc/translate-poc.mjs"}, "region": {"startLine": 13}}}]}, {"ruleId": "scanner-297307cc3ce43546", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in packages/engine/src/claude-cli-engine.ts:9"}, "properties": {"repobilityId": "bea182b815a6c96a", "scanner": "scanner-primary", "fingerprint": "297307cc3ce43546", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/engine/src/claude-cli-engine.ts"}, "region": {"startLine": 9}}}]}, {"ruleId": "scanner-9e4e19c4f067b313", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in packages/engine/src/local-llm-engine.ts:7"}, "properties": {"repobilityId": "70c063ed6728d8a8", "scanner": "scanner-primary", "fingerprint": "9e4e19c4f067b313", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/engine/src/local-llm-engine.ts"}, "region": {"startLine": 7}}}]}, {"ruleId": "scanner-73631e140efd88b1", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/dashboard.ts:135"}, "properties": {"repobilityId": "838dec002ef54077", "scanner": "scanner-primary", "fingerprint": "73631e140efd88b1", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/dashboard.ts"}, "region": {"startLine": 135}}}]}, {"ruleId": "scanner-09cca7fea22b5a51", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/onboarding.ts:43"}, "properties": {"repobilityId": "ef66736a1c820ad2", "scanner": "scanner-primary", "fingerprint": "09cca7fea22b5a51", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/onboarding.ts"}, "region": {"startLine": 43}}}]}, {"ruleId": "scanner-eb722bc7326fe257", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/main.ts:87"}, "properties": {"repobilityId": "d54f1583e82d6ec4", "scanner": "scanner-primary", "fingerprint": "eb722bc7326fe257", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/main.ts"}, "region": {"startLine": 87}}}]}, {"ruleId": "scanner-4eea92f8cad08702", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/settings-sheet.ts:57"}, "properties": {"repobilityId": "b58cc85f9d14645e", "scanner": "scanner-primary", "fingerprint": "4eea92f8cad08702", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/settings-sheet.ts"}, "region": {"startLine": 57}}}]}, {"ruleId": "scanner-c7e6c3e62da6e9b3", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/review.ts:125"}, "properties": {"repobilityId": "1c5b291b8ce7d351", "scanner": "scanner-primary", "fingerprint": "c7e6c3e62da6e9b3", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/review.ts"}, "region": {"startLine": 125}}}]}, {"ruleId": "scanner-54fd66b423e33a6f", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in src/host/detect-cli.ts:6"}, "properties": {"repobilityId": "de23bfcb4f560801", "scanner": "scanner-primary", "fingerprint": "54fd66b423e33a6f", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/host/detect-cli.ts"}, "region": {"startLine": 6}}}]}, {"ruleId": "scanner-a90da7d22b1f0ecf", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in src/host/local-tier.ts:7"}, "properties": {"repobilityId": "8963e7d33aa863fd", "scanner": "scanner-primary", "fingerprint": "a90da7d22b1f0ecf", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/host/local-tier.ts"}, "region": {"startLine": 7}}}]}, {"ruleId": "scanner-d5906992bf974caa", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: packages/archive/package.json"}, "properties": {"repobilityId": "5b4599556d549ca4", "scanner": "scanner-primary", "fingerprint": "d5906992bf974caa", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/archive/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-f9f13e1418f0ef36", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: packages/engine/package.json"}, "properties": {"repobilityId": "81a373b6a2e74e41", "scanner": "scanner-primary", "fingerprint": "f9f13e1418f0ef36", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/engine/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-ea8f3013f588db25", "level": "note", "message": {"text": "Shallow git history limits provenance confidence"}, "properties": {"repobilityId": "beb33a674ad672d1", "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": "1c083933a228d1b9", "scanner": "scanner-primary", "fingerprint": "8424db9c75e04ba4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["provenance", "git-history", "generated-repo-pattern"]}}, {"ruleId": "scanner-454d93fe767abb7b", "level": "none", "message": {"text": "Commented-code block (5 lines) in test/review-coaching.test.ts:3"}, "properties": {"repobilityId": "dc48702f520c0b10", "scanner": "scanner-primary", "fingerprint": "454d93fe767abb7b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-856b21d6f811134f", "level": "none", "message": {"text": "Commented-code block (6 lines) in test/recording-survives.test.ts:1"}, "properties": {"repobilityId": "59574bade48dcfbe", "scanner": "scanner-primary", "fingerprint": "856b21d6f811134f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e769b6001c9dd3fd", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/archive/src/retention.ts:100"}, "properties": {"repobilityId": "18efcd7f6105df6b", "scanner": "scanner-primary", "fingerprint": "e769b6001c9dd3fd", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ee756d1598c78b77", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/archive/src/paths.ts:1"}, "properties": {"repobilityId": "8cf92a2af2594b98", "scanner": "scanner-primary", "fingerprint": "ee756d1598c78b77", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f55c35935a0a93fd", "level": "none", "message": {"text": "Commented-code block (8 lines) in packages/archive/src/adopt.ts:4"}, "properties": {"repobilityId": "1de86bd967db25ab", "scanner": "scanner-primary", "fingerprint": "f55c35935a0a93fd", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d7fb17bd371724c2", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/archive/src/parse.ts:1"}, "properties": {"repobilityId": "9efe417b40d000e9", "scanner": "scanner-primary", "fingerprint": "d7fb17bd371724c2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-da2c78e9f4d5b0f4", "level": "none", "message": {"text": "Commented-code block (11 lines) in packages/archive/src/writer.ts:4"}, "properties": {"repobilityId": "eab6997f71da886a", "scanner": "scanner-primary", "fingerprint": "da2c78e9f4d5b0f4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ac1d2725f52729cc", "level": "none", "message": {"text": "Commented-code block (7 lines) in packages/archive/src/sanitize.ts:34"}, "properties": {"repobilityId": "396351b539353ee9", "scanner": "scanner-primary", "fingerprint": "ac1d2725f52729cc", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-af6f4ecd58066438", "level": "none", "message": {"text": "Commented-code block (6 lines) in packages/engine/test/fake-llama-server.mjs:2"}, "properties": {"repobilityId": "383e3ae78c02af68", "scanner": "scanner-primary", "fingerprint": "af6f4ecd58066438", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-92350d76e403aab4", "level": "none", "message": {"text": "Commented-code block (7 lines) in packages/engine/test/extras-economics.test.ts:1"}, "properties": {"repobilityId": "f549693939a951b7", "scanner": "scanner-primary", "fingerprint": "92350d76e403aab4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-557881199f4b2c15", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/engine/test/fake-cli.mjs:7"}, "properties": {"repobilityId": "950827afbb825384", "scanner": "scanner-primary", "fingerprint": "557881199f4b2c15", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-81a6577e92682c54", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/engine/test/global-teardown.mjs:8"}, "properties": {"repobilityId": "4bddb1d3c51a8392", "scanner": "scanner-primary", "fingerprint": "81a6577e92682c54", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-28c0a93bfc30b938", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/engine/test/extras-budget.test.ts:1"}, "properties": {"repobilityId": "37d90d73ef10f3da", "scanner": "scanner-primary", "fingerprint": "28c0a93bfc30b938", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3cb0abd77acb93de", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/engine/test/local-llm-engine.e2e.test.ts:24"}, "properties": {"repobilityId": "a34fc7796d69a9b7", "scanner": "scanner-primary", "fingerprint": "3cb0abd77acb93de", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-453b7750e4ddd8ce", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/engine/test/local-llm-engine.e2e.test.ts:83"}, "properties": {"repobilityId": "0beca42b92674548", "scanner": "scanner-primary", "fingerprint": "453b7750e4ddd8ce", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-53059cfc2378985e", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/engine/src/model-download.ts:1"}, "properties": {"repobilityId": "6efd725a39ec9a20", "scanner": "scanner-primary", "fingerprint": "53059cfc2378985e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e1b450d933584913", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/engine/src/model-download.ts:161"}, "properties": {"repobilityId": "98000eb93d8ad854", "scanner": "scanner-primary", "fingerprint": "e1b450d933584913", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-a616b7084c85eb9d", "level": "none", "message": {"text": "Commented-code block (7 lines) in packages/engine/src/stream-parser.ts:6"}, "properties": {"repobilityId": "f877c9edc8e4972c", "scanner": "scanner-primary", "fingerprint": "a616b7084c85eb9d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e3569b758e9a89a0", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/engine/src/claude-cli-engine.ts:311"}, "properties": {"repobilityId": "4f3f3bc8e1a24c17", "scanner": "scanner-primary", "fingerprint": "e3569b758e9a89a0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c799dbbd99f314dd", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/engine/src/local-llm-engine.ts:1"}, "properties": {"repobilityId": "fe6f917dcab78fbb", "scanner": "scanner-primary", "fingerprint": "c799dbbd99f314dd", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-499cd62b19d84ed7", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/engine/src/fallback-router.ts:1"}, "properties": {"repobilityId": "7554a4e2221a45f8", "scanner": "scanner-primary", "fingerprint": "499cd62b19d84ed7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-67d8bce55c66ece4", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/engine/src/pins.ts:1"}, "properties": {"repobilityId": "5d2e2b1d347af9d6", "scanner": "scanner-primary", "fingerprint": "67d8bce55c66ece4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a4768c2815e6d43d", "level": "none", "message": {"text": "Commented-code block (7 lines) in packages/engine/src/meeting-metrics.ts:3"}, "properties": {"repobilityId": "82c7dba98f3a590d", "scanner": "scanner-primary", "fingerprint": "a4768c2815e6d43d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d45bd59601e62101", "level": "none", "message": {"text": "Commented-code block (8 lines) in packages/engine/src/extras-budget.ts:1"}, "properties": {"repobilityId": "0da756d35529e67b", "scanner": "scanner-primary", "fingerprint": "d45bd59601e62101", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d1b73d956edf62fb", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/ui-heartbeat.ts:1"}, "properties": {"repobilityId": "4e6b0fd5986aabe8", "scanner": "scanner-primary", "fingerprint": "d1b73d956edf62fb", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d7784697e866ebfe", "level": "none", "message": {"text": "Commented-code block (8 lines) in src/dashboard.ts:5"}, "properties": {"repobilityId": "fcf19e7b8b3dbc0a", "scanner": "scanner-primary", "fingerprint": "d7784697e866ebfe", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3d2fdbc0f39e10d5", "level": "none", "message": {"text": "Commented-code block (8 lines) in src/onboarding.ts:1"}, "properties": {"repobilityId": "c78f3c4cd8219434", "scanner": "scanner-primary", "fingerprint": "3d2fdbc0f39e10d5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6d07e06df9e82740", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/bootstrap.ts:1"}, "properties": {"repobilityId": "6dc1f2ecf3a2bd3b", "scanner": "scanner-primary", "fingerprint": "6d07e06df9e82740", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-10826977e677dacc", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/main.ts:576"}, "properties": {"repobilityId": "c6e3c548409b76bb", "scanner": "scanner-primary", "fingerprint": "10826977e677dacc", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0753da8e0d6a1697", "level": "none", "message": {"text": "Commented-code block (8 lines) in src/review.ts:4"}, "properties": {"repobilityId": "e97007b44bbbcd6a", "scanner": "scanner-primary", "fingerprint": "0753da8e0d6a1697", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a36c02ed53cc5bda", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/host/start-config.ts:1"}, "properties": {"repobilityId": "1c4d597d7fc00d22", "scanner": "scanner-primary", "fingerprint": "a36c02ed53cc5bda", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-95f995219aeed336", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/host/timeout.ts:1"}, "properties": {"repobilityId": "f6cbdb28c1d1e6dd", "scanner": "scanner-primary", "fingerprint": "95f995219aeed336", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-21fd37d842617f19", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/host/main.ts:65"}, "properties": {"repobilityId": "c8b48afa46c84e06", "scanner": "scanner-primary", "fingerprint": "21fd37d842617f19", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7f96da30b9f4abaa", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/host/session.ts:1"}, "properties": {"repobilityId": "982e125366f9651f", "scanner": "scanner-primary", "fingerprint": "7f96da30b9f4abaa", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3fa9e912c34a3664", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/host/local-tier.ts:1"}, "properties": {"repobilityId": "a8f2d49de0c60104", "scanner": "scanner-primary", "fingerprint": "3fa9e912c34a3664", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2ba0f31523a9fcd4", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/host/local-tier.ts:104"}, "properties": {"repobilityId": "62996a987ec22990", "scanner": "scanner-primary", "fingerprint": "2ba0f31523a9fcd4", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-fadd8e4a93c72576", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/host/translation-runner.ts:1"}, "properties": {"repobilityId": "99078ed32d451891", "scanner": "scanner-primary", "fingerprint": "fadd8e4a93c72576", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}]}]}