{"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-6c3915bc9631bab0", "name": "Stray `console.log` in TS/JS \u2014 packages/brink-studio/e2e/decorations.spec.ts:41", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/brink-studio/e2e/decorations.spec.ts:41"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-1fb9cb8742041a8d", "name": "Insecure pattern 'direct_innerhtml_assignment' in crates/brink-web/www/player.js:15", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in crates/brink-web/www/player.js:15"}, "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-b89809154db5dd60", "name": "Insecure pattern 'direct_innerhtml_assignment' in packages/ink-editor/src/keybindings.ts:235", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in packages/ink-editor/src/keybindings.ts:235"}, "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-f278183c7fe4d18e", "name": "GitHub Actions workflow grants broad write permissions", "shortDescription": {"text": "GitHub Actions workflow grants broad write permissions"}, "fullDescription": {"text": "CI tokens with write permissions increase blast radius when an action, dependency, or PR workflow is compromised. Prefer job-level least-privilege permissions."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-1a94e65244d5be43", "name": "GitHub Actions workflow grants broad write permissions", "shortDescription": {"text": "GitHub Actions workflow grants broad write permissions"}, "fullDescription": {"text": "CI tokens with write permissions increase blast radius when an action, dependency, or PR workflow is compromised. Prefer job-level least-privilege permissions."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-46c644c6227e4d4a", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "actions/upload-artifact@v7 can move without a code change in this repo. Pin third-party actions to a reviewed 40-character commit SHA."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "low", "confidence": 1.0}}, {"id": "scanner-da1f48f96c1acd36", "name": "GitHub Actions workflow grants broad write permissions", "shortDescription": {"text": "GitHub Actions workflow grants broad write permissions"}, "fullDescription": {"text": "CI tokens with write permissions increase blast radius when an action, dependency, or PR workflow is compromised. Prefer job-level least-privilege permissions."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-453fc46cef2dcbb7", "name": "Very large file: crates/brink-lsp/src/backend.rs (1867 lines)", "shortDescription": {"text": "Very large file: crates/brink-lsp/src/backend.rs (1867 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-651ac6c19659d221", "name": "Very large file: crates/internal/brink-codegen-json/src/emit.rs (1640 lines)", "shortDescription": {"text": "Very large file: crates/internal/brink-codegen-json/src/emit.rs (1640 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-040e692754d9c09f", "name": "Very large file: crates/internal/brink-syntax/src/ast/nodes.rs (1551 lines)", "shortDescription": {"text": "Very large file: crates/internal/brink-syntax/src/ast/nodes.rs (1551 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-d60ad20534edd8f5", "name": "Very large file: crates/internal/brink-syntax/src/parser/tests/inline/cst.rs (2764 lines)", "shortDescription": {"text": "Very large file: crates/internal/brink-syntax/src/parser/tests/inline/cst.rs (2764 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-580f8bdc2436a327", "name": "Very large file: crates/internal/brink-test-harness/tests/newline_diagnostic.rs (1404 lines)", "shortDescription": {"text": "Very large file: crates/internal/brink-test-harness/tests/newline_diagnostic.rs (1404 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-6e88a8752bba1959", "name": "Very large file: crates/internal/brink-ir/tests/lir_lowering.rs (2953 lines)", "shortDescription": {"text": "Very large file: crates/internal/brink-ir/tests/lir_lowering.rs (2953 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-d99c76777d57e6cc", "name": "Very large file: crates/brink-runtime/src/story.rs (2907 lines)", "shortDescription": {"text": "Very large file: crates/brink-runtime/src/story.rs (2907 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-6638d02b97075324", "name": "Very large file: crates/brink-runtime/src/vm.rs (1456 lines)", "shortDescription": {"text": "Very large file: crates/brink-runtime/src/vm.rs (1456 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-00fbef03e9ccfe94", "name": "Very large file: crates/brink-runtime/src/output.rs (1582 lines)", "shortDescription": {"text": "Very large file: crates/brink-runtime/src/output.rs (1582 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-e41f0bc365145844", "name": "Very large file: crates/brink-web/src/lib.rs (4145 lines)", "shortDescription": {"text": "Very large file: crates/brink-web/src/lib.rs (4145 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-9b578b99d8541584", "name": "Very large file: crates/bevy-brink/src/bindings.rs (1530 lines)", "shortDescription": {"text": "Very large file: crates/bevy-brink/src/bindings.rs (1530 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-44b4fce4909c59ca", "name": "Very large file: crates/brink-compiler/tests/driver.rs (1950 lines)", "shortDescription": {"text": "Very large file: crates/brink-compiler/tests/driver.rs (1950 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-bab99fd31ddd6c05", "name": "Node manifest has dependencies but no lockfile: packages/wasm/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: packages/wasm/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-93b181f530f80e1f", "name": "Node manifest has dependencies but no lockfile: packages/ink-editor/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: packages/ink-editor/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-8dcc036de92d565c", "name": "Node manifest has dependencies but no lockfile: packages/ink-operations/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: packages/ink-operations/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-df65e3c46f71f1dd", "name": "Node manifest has dependencies but no lockfile: packages/studio-ui/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: packages/studio-ui/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-1cc623a13a2a0b86", "name": "Node manifest has dependencies but no lockfile: packages/studio-shell/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: packages/studio-shell/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-10e921aaf97cb84b", "name": "Node manifest has dependencies but no lockfile: packages/studio-store/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: packages/studio-store/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-72b2a6250083a784", "name": "Placeholder or mock-heavy implementation detected", "shortDescription": {"text": "Placeholder or mock-heavy implementation detected"}, "fullDescription": {"text": "Found 55 placeholder/mock markers across 33 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-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 lockfile. Treat this as a contract gap: the agent is guided, but the generated output is not yet guarded by the controls that make it repeatable."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ea8f3013f588db25", "name": "Shallow git history limits provenance confidence", "shortDescription": {"text": "Shallow git history limits provenance confidence"}, "fullDescription": {"text": "The repository is a shallow clone. Origin/evolution analysis cannot distinguish fresh generation, imported legacy code, or long-lived human code with high confidence."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-8424db9c75e04ba4", "name": "Very short observed git history", "shortDescription": {"text": "Very short observed git history"}, "fullDescription": {"text": "The repo has multiple source files but two or fewer visible commits. This is not a failure by itself, but it lowers confidence in evolution-based diagnosis."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7939bd94018e899c", "name": "Commented-code block (8 lines) in packages/wasm/tsup.config.ts:3", "shortDescription": {"text": "Commented-code block (8 lines) in packages/wasm/tsup.config.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-7e586215c9b38f29", "name": "Commented-code block (5 lines) in packages/wasm/src/index.ts:780", "shortDescription": {"text": "Commented-code block (5 lines) in packages/wasm/src/index.ts:780"}, "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-54837027fc6c96b2", "name": "Commented-code block (6 lines) in packages/studio-ui/src/PlayerPane.tsx:16", "shortDescription": {"text": "Commented-code block (6 lines) in packages/studio-ui/src/PlayerPane.tsx:16"}, "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-07d1dd81652e7607", "name": "Commented-code block (5 lines) in packages/studio-store/src/session/local-provider.ts:200", "shortDescription": {"text": "Commented-code block (5 lines) in packages/studio-store/src/session/local-provider.ts:200"}, "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-b5cb7b8df80b375e", "name": "Commented-code block (10 lines) in packages/brink-studio/vite.config.ts:6", "shortDescription": {"text": "Commented-code block (10 lines) in packages/brink-studio/vite.config.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-e5ce062691f23114", "name": "Commented-code block (7 lines) in packages/brink-studio/tsup.config.ts:3", "shortDescription": {"text": "Commented-code block (7 lines) in packages/brink-studio/tsup.config.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-ef7383d493ce8c1e", "name": "Commented-code block (7 lines) in packages/brink-studio/vite.config.embed.ts:6", "shortDescription": {"text": "Commented-code block (7 lines) in packages/brink-studio/vite.config.embed.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-13460e083db8c033", "name": "Commented-code block (5 lines) in packages/brink-studio/src/mount.tsx:339", "shortDescription": {"text": "Commented-code block (5 lines) in packages/brink-studio/src/mount.tsx:339"}, "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-ba122f369d943c77", "name": "Commented-code block (5 lines) in packages/brink-studio/src/adopted-style-sheets.ts:61", "shortDescription": {"text": "Commented-code block (5 lines) in packages/brink-studio/src/adopted-style-sheets.ts:61"}, "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-ae39cb145c0f96e9", "name": "Commented-code block (6 lines) in packages/brink-studio/src/index.ts:4", "shortDescription": {"text": "Commented-code block (6 lines) in packages/brink-studio/src/index.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-4f787107594af32f", "name": "Commented-code block (5 lines) in packages/brink-studio/src/example-extension.tsx:34", "shortDescription": {"text": "Commented-code block (5 lines) in packages/brink-studio/src/example-extension.tsx: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-5cdddad1adb41efa", "name": "Commented-code block (8 lines) in packages/brink-studio/src/main.tsx:57", "shortDescription": {"text": "Commented-code block (8 lines) in packages/brink-studio/src/main.tsx:57"}, "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-90832aa1de372ade", "name": "Commented-code block (5 lines) in packages/brink-studio/src/__tests__/shell-story-graph.test.tsx:277", "shortDescription": {"text": "Commented-code block (5 lines) in packages/brink-studio/src/__tests__/shell-story-graph.test.tsx:277"}, "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-a4c5bb1b07865e56", "name": "Commented-code block (7 lines) in packages/brink-studio/src/__tests__/player-replay.test.ts:9", "shortDescription": {"text": "Commented-code block (7 lines) in packages/brink-studio/src/__tests__/player-replay.test.ts:9"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c26cc672ecee2093", "name": "Commented-code block (6 lines) in packages/brink-studio/e2e/conversion.spec.ts:12", "shortDescription": {"text": "Commented-code block (6 lines) in packages/brink-studio/e2e/conversion.spec.ts:12"}, "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-4a703cfca4657bb0", "name": "Commented-code block (5 lines) in packages/brink-studio/e2e/story-graph.spec.ts:125", "shortDescription": {"text": "Commented-code block (5 lines) in packages/brink-studio/e2e/story-graph.spec.ts:125"}, "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/20708"}, "properties": {"repository": "Syynth/brink", "repoUrl": "https://github.com/Syynth/brink", "branch": "main"}, "results": [{"ruleId": "scanner-6c3915bc9631bab0", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/brink-studio/e2e/decorations.spec.ts:41"}, "properties": {"repobilityId": "c5c12046472eb801", "scanner": "scanner-primary", "fingerprint": "6c3915bc9631bab0", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-1fb9cb8742041a8d", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in crates/brink-web/www/player.js:15"}, "properties": {"repobilityId": "a67274626b1f9069", "scanner": "scanner-primary", "fingerprint": "1fb9cb8742041a8d", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "crates/brink-web/www/player.js"}, "region": {"startLine": 15}}}]}, {"ruleId": "scanner-b89809154db5dd60", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in packages/ink-editor/src/keybindings.ts:235"}, "properties": {"repobilityId": "e954fdbd52649f98", "scanner": "scanner-primary", "fingerprint": "b89809154db5dd60", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/ink-editor/src/keybindings.ts"}, "region": {"startLine": 235}}}]}, {"ruleId": "scanner-f278183c7fe4d18e", "level": "warning", "message": {"text": "GitHub Actions workflow grants broad write permissions"}, "properties": {"repobilityId": "4bfd5614ab689859", "scanner": "scanner-primary", "fingerprint": "f278183c7fe4d18e", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "least-privilege"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/book.yml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-1a94e65244d5be43", "level": "warning", "message": {"text": "GitHub Actions workflow grants broad write permissions"}, "properties": {"repobilityId": "192b2aa5de893b57", "scanner": "scanner-primary", "fingerprint": "1a94e65244d5be43", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "least-privilege"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/npm-release.yml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-46c644c6227e4d4a", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "40de0ea74eab3ee8", "scanner": "scanner-primary", "fingerprint": "46c644c6227e4d4a", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/release.yml"}, "region": {"startLine": 73}}}]}, {"ruleId": "scanner-46c644c6227e4d4a", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "40de0ea74eab3ee8", "scanner": "scanner-primary", "fingerprint": "46c644c6227e4d4a", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/release.yml"}, "region": {"startLine": 89}}}]}, {"ruleId": "scanner-46c644c6227e4d4a", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "1051a99633356d7b", "scanner": "scanner-primary", "fingerprint": "46c644c6227e4d4a", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/release.yml"}, "region": {"startLine": 138}}}]}, {"ruleId": "scanner-46c644c6227e4d4a", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "40de0ea74eab3ee8", "scanner": "scanner-primary", "fingerprint": "46c644c6227e4d4a", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/release.yml"}, "region": {"startLine": 165}}}]}, {"ruleId": "scanner-46c644c6227e4d4a", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "1051a99633356d7b", "scanner": "scanner-primary", "fingerprint": "46c644c6227e4d4a", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/release.yml"}, "region": {"startLine": 187}}}]}, {"ruleId": "scanner-46c644c6227e4d4a", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "1051a99633356d7b", "scanner": "scanner-primary", "fingerprint": "46c644c6227e4d4a", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/release.yml"}, "region": {"startLine": 194}}}]}, {"ruleId": "scanner-46c644c6227e4d4a", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "40de0ea74eab3ee8", "scanner": "scanner-primary", "fingerprint": "46c644c6227e4d4a", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/release.yml"}, "region": {"startLine": 212}}}]}, {"ruleId": "scanner-46c644c6227e4d4a", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "1051a99633356d7b", "scanner": "scanner-primary", "fingerprint": "46c644c6227e4d4a", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/release.yml"}, "region": {"startLine": 237}}}]}, {"ruleId": "scanner-46c644c6227e4d4a", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "1051a99633356d7b", "scanner": "scanner-primary", "fingerprint": "46c644c6227e4d4a", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/release.yml"}, "region": {"startLine": 244}}}]}, {"ruleId": "scanner-46c644c6227e4d4a", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "40de0ea74eab3ee8", "scanner": "scanner-primary", "fingerprint": "46c644c6227e4d4a", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/release.yml"}, "region": {"startLine": 257}}}]}, {"ruleId": "scanner-46c644c6227e4d4a", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "1051a99633356d7b", "scanner": "scanner-primary", "fingerprint": "46c644c6227e4d4a", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/release.yml"}, "region": {"startLine": 264}}}]}, {"ruleId": "scanner-da1f48f96c1acd36", "level": "warning", "message": {"text": "GitHub Actions workflow grants broad write permissions"}, "properties": {"repobilityId": "2128128295d93ea7", "scanner": "scanner-primary", "fingerprint": "da1f48f96c1acd36", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "least-privilege"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/release-plz.yml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-453fc46cef2dcbb7", "level": "note", "message": {"text": "Very large file: crates/brink-lsp/src/backend.rs (1867 lines)"}, "properties": {"repobilityId": "e8b5ef87303b4b82", "scanner": "scanner-primary", "fingerprint": "453fc46cef2dcbb7", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-651ac6c19659d221", "level": "note", "message": {"text": "Very large file: crates/internal/brink-codegen-json/src/emit.rs (1640 lines)"}, "properties": {"repobilityId": "ac6a323b8f671f7f", "scanner": "scanner-primary", "fingerprint": "651ac6c19659d221", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-040e692754d9c09f", "level": "note", "message": {"text": "Very large file: crates/internal/brink-syntax/src/ast/nodes.rs (1551 lines)"}, "properties": {"repobilityId": "08df5e7a1af48b94", "scanner": "scanner-primary", "fingerprint": "040e692754d9c09f", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-d60ad20534edd8f5", "level": "note", "message": {"text": "Very large file: crates/internal/brink-syntax/src/parser/tests/inline/cst.rs (2764 lines)"}, "properties": {"repobilityId": "640e38612b2b4856", "scanner": "scanner-primary", "fingerprint": "d60ad20534edd8f5", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-580f8bdc2436a327", "level": "note", "message": {"text": "Very large file: crates/internal/brink-test-harness/tests/newline_diagnostic.rs (1404 lines)"}, "properties": {"repobilityId": "fee2cc4a375fb1b3", "scanner": "scanner-primary", "fingerprint": "580f8bdc2436a327", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-6e88a8752bba1959", "level": "note", "message": {"text": "Very large file: crates/internal/brink-ir/tests/lir_lowering.rs (2953 lines)"}, "properties": {"repobilityId": "2bc1dcd650538859", "scanner": "scanner-primary", "fingerprint": "6e88a8752bba1959", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-d99c76777d57e6cc", "level": "note", "message": {"text": "Very large file: crates/brink-runtime/src/story.rs (2907 lines)"}, "properties": {"repobilityId": "05c6d6c87799c589", "scanner": "scanner-primary", "fingerprint": "d99c76777d57e6cc", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-6638d02b97075324", "level": "note", "message": {"text": "Very large file: crates/brink-runtime/src/vm.rs (1456 lines)"}, "properties": {"repobilityId": "cf53183332560229", "scanner": "scanner-primary", "fingerprint": "6638d02b97075324", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-00fbef03e9ccfe94", "level": "note", "message": {"text": "Very large file: crates/brink-runtime/src/output.rs (1582 lines)"}, "properties": {"repobilityId": "27978690bdf6d836", "scanner": "scanner-primary", "fingerprint": "00fbef03e9ccfe94", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-e41f0bc365145844", "level": "note", "message": {"text": "Very large file: crates/brink-web/src/lib.rs (4145 lines)"}, "properties": {"repobilityId": "fc9fb0fd6f3ed9d3", "scanner": "scanner-primary", "fingerprint": "e41f0bc365145844", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-9b578b99d8541584", "level": "note", "message": {"text": "Very large file: crates/bevy-brink/src/bindings.rs (1530 lines)"}, "properties": {"repobilityId": "3d6a87c2745167c1", "scanner": "scanner-primary", "fingerprint": "9b578b99d8541584", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-44b4fce4909c59ca", "level": "note", "message": {"text": "Very large file: crates/brink-compiler/tests/driver.rs (1950 lines)"}, "properties": {"repobilityId": "0e078f271b4e23fe", "scanner": "scanner-primary", "fingerprint": "44b4fce4909c59ca", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-bab99fd31ddd6c05", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: packages/wasm/package.json"}, "properties": {"repobilityId": "f1af32e19f5cb523", "scanner": "scanner-primary", "fingerprint": "bab99fd31ddd6c05", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/wasm/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-93b181f530f80e1f", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: packages/ink-editor/package.json"}, "properties": {"repobilityId": "0a06a2ea8d95dc4b", "scanner": "scanner-primary", "fingerprint": "93b181f530f80e1f", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/ink-editor/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-8dcc036de92d565c", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: packages/ink-operations/package.json"}, "properties": {"repobilityId": "acb6f1d3e3c19f57", "scanner": "scanner-primary", "fingerprint": "8dcc036de92d565c", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/ink-operations/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-df65e3c46f71f1dd", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: packages/studio-ui/package.json"}, "properties": {"repobilityId": "5588a6f3fe410f71", "scanner": "scanner-primary", "fingerprint": "df65e3c46f71f1dd", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/studio-ui/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-1cc623a13a2a0b86", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: packages/studio-shell/package.json"}, "properties": {"repobilityId": "4b9a8f5c02e92330", "scanner": "scanner-primary", "fingerprint": "1cc623a13a2a0b86", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/studio-shell/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-10e921aaf97cb84b", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: packages/studio-store/package.json"}, "properties": {"repobilityId": "08157cbe0fb42034", "scanner": "scanner-primary", "fingerprint": "10e921aaf97cb84b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/studio-store/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-72b2a6250083a784", "level": "warning", "message": {"text": "Placeholder or mock-heavy implementation detected"}, "properties": {"repobilityId": "b5fd1752743abae4", "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": "a9871dc771ffc0c8", "scanner": "scanner-primary", "fingerprint": "2d0c7b7ab8f8aacf", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["placeholder", "mock-data", "critical-flow", "generated-repo-pattern"]}}, {"ruleId": "scanner-749d4bc1bd66df5f", "level": "warning", "message": {"text": "Agent instructions exist but release-hardening basics are missing"}, "properties": {"repobilityId": "c1d4b9ecc320e811", "scanner": "scanner-primary", "fingerprint": "749d4bc1bd66df5f", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-ea8f3013f588db25", "level": "note", "message": {"text": "Shallow git history limits provenance confidence"}, "properties": {"repobilityId": "7640149e86c93e5f", "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": "57b888c55b4933ed", "scanner": "scanner-primary", "fingerprint": "8424db9c75e04ba4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["provenance", "git-history", "generated-repo-pattern"]}}, {"ruleId": "scanner-7939bd94018e899c", "level": "none", "message": {"text": "Commented-code block (8 lines) in packages/wasm/tsup.config.ts:3"}, "properties": {"repobilityId": "67de69f6695713f7", "scanner": "scanner-primary", "fingerprint": "7939bd94018e899c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7e586215c9b38f29", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/wasm/src/index.ts:780"}, "properties": {"repobilityId": "bdfcbf916b5fe4ce", "scanner": "scanner-primary", "fingerprint": "7e586215c9b38f29", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-54837027fc6c96b2", "level": "none", "message": {"text": "Commented-code block (6 lines) in packages/studio-ui/src/PlayerPane.tsx:16"}, "properties": {"repobilityId": "b0730b296a1308a1", "scanner": "scanner-primary", "fingerprint": "54837027fc6c96b2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-07d1dd81652e7607", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/studio-store/src/session/local-provider.ts:200"}, "properties": {"repobilityId": "bec3e72c840caf4b", "scanner": "scanner-primary", "fingerprint": "07d1dd81652e7607", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b5cb7b8df80b375e", "level": "none", "message": {"text": "Commented-code block (10 lines) in packages/brink-studio/vite.config.ts:6"}, "properties": {"repobilityId": "432e136bdd4aff30", "scanner": "scanner-primary", "fingerprint": "b5cb7b8df80b375e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e5ce062691f23114", "level": "none", "message": {"text": "Commented-code block (7 lines) in packages/brink-studio/tsup.config.ts:3"}, "properties": {"repobilityId": "e9bf9e902f978abf", "scanner": "scanner-primary", "fingerprint": "e5ce062691f23114", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ef7383d493ce8c1e", "level": "none", "message": {"text": "Commented-code block (7 lines) in packages/brink-studio/vite.config.embed.ts:6"}, "properties": {"repobilityId": "f8e938047b3a8af9", "scanner": "scanner-primary", "fingerprint": "ef7383d493ce8c1e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-13460e083db8c033", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/brink-studio/src/mount.tsx:339"}, "properties": {"repobilityId": "639711d5322fb9c4", "scanner": "scanner-primary", "fingerprint": "13460e083db8c033", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ba122f369d943c77", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/brink-studio/src/adopted-style-sheets.ts:61"}, "properties": {"repobilityId": "8d77f1b2ac8de10d", "scanner": "scanner-primary", "fingerprint": "ba122f369d943c77", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ae39cb145c0f96e9", "level": "none", "message": {"text": "Commented-code block (6 lines) in packages/brink-studio/src/index.ts:4"}, "properties": {"repobilityId": "5a2d5511f3c232c3", "scanner": "scanner-primary", "fingerprint": "ae39cb145c0f96e9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4f787107594af32f", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/brink-studio/src/example-extension.tsx:34"}, "properties": {"repobilityId": "29377ccb74ada69b", "scanner": "scanner-primary", "fingerprint": "4f787107594af32f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5cdddad1adb41efa", "level": "none", "message": {"text": "Commented-code block (8 lines) in packages/brink-studio/src/main.tsx:57"}, "properties": {"repobilityId": "5773e63836f60748", "scanner": "scanner-primary", "fingerprint": "5cdddad1adb41efa", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-90832aa1de372ade", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/brink-studio/src/__tests__/shell-story-graph.test.tsx:277"}, "properties": {"repobilityId": "221c3f68cc1f41ad", "scanner": "scanner-primary", "fingerprint": "90832aa1de372ade", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a4c5bb1b07865e56", "level": "none", "message": {"text": "Commented-code block (7 lines) in packages/brink-studio/src/__tests__/player-replay.test.ts:9"}, "properties": {"repobilityId": "d2072bcf35d88a46", "scanner": "scanner-primary", "fingerprint": "a4c5bb1b07865e56", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c26cc672ecee2093", "level": "none", "message": {"text": "Commented-code block (6 lines) in packages/brink-studio/e2e/conversion.spec.ts:12"}, "properties": {"repobilityId": "09898c507774134c", "scanner": "scanner-primary", "fingerprint": "c26cc672ecee2093", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4a703cfca4657bb0", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/brink-studio/e2e/story-graph.spec.ts:125"}, "properties": {"repobilityId": "7d40e965c9dbe9fd", "scanner": "scanner-primary", "fingerprint": "4a703cfca4657bb0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}]}]}