{"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-8f81b2c9a00b2a87", "name": "Stray `console.log` in TS/JS \u2014 packages/truth-arbiter/src/gates.ts:107", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/truth-arbiter/src/gates.ts:107"}, "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-e35995333acb43e2", "name": "Stray `console.log` in TS/JS \u2014 packages/truth-arbiter/src/voice/scribe.ts:97", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/truth-arbiter/src/voice/scribe.ts:97"}, "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-8388293e3ed16f94", "name": "Stray `console.log` in TS/JS \u2014 packages/truth-arbiter/src/voice/narrator.ts:101", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/truth-arbiter/src/voice/narrator.ts:101"}, "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-71bd2fdc413345ec", "name": "Stray `console.log` in TS/JS \u2014 packages/truth-arbiter/src/corpus/search.ts:40", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/truth-arbiter/src/corpus/search.ts:40"}, "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-3aceddb70e6b0d05", "name": "Stray `console.log` in TS/JS \u2014 packages/truth-arbiter/src/corpus/beast.ts:546", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/truth-arbiter/src/corpus/beast.ts:546"}, "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-6edc1e8028e212e6", "name": "Stray `console.log` in TS/JS \u2014 packages/truth-arbiter/src/corpus/scrape.ts:41", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/truth-arbiter/src/corpus/scrape.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-36632cad6c9cdffe", "name": "Stray `console.log` in TS/JS \u2014 packages/truth-arbiter/src/corpus/pff.ts:231", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/truth-arbiter/src/corpus/pff.ts:231"}, "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-ada8d512f03234eb", "name": "Stray `console.log` in TS/JS \u2014 packages/truth-arbiter/src/corpus/embed.ts:18", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/truth-arbiter/src/corpus/embed.ts:18"}, "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-5d71da7d124ad028", "name": "Stray `console.log` in TS/JS \u2014 packages/truth-arbiter/src/sim/star-separation.ts:26", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/truth-arbiter/src/sim/star-separation.ts:26"}, "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-dfba72d772c9966f", "name": "Stray `console.log` in TS/JS \u2014 packages/truth-arbiter/src/sim/goatinator.ts:156", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/truth-arbiter/src/sim/goatinator.ts:156"}, "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-03129df7e00d37d7", "name": "Stray `console.log` in TS/JS \u2014 packages/truth-arbiter/src/sim/slot-diag.ts:27", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/truth-arbiter/src/sim/slot-diag.ts:27"}, "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-c9e1664934340e85", "name": "Stray `console.log` in TS/JS \u2014 packages/truth-arbiter/src/sim/actuary.ts:100", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/truth-arbiter/src/sim/actuary.ts:100"}, "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-ac0f35ad2e71f583", "name": "Stray `console.log` in TS/JS \u2014 packages/truth-arbiter/src/sim/conversion.ts:20", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/truth-arbiter/src/sim/conversion.ts:20"}, "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-d980ce040dc6c1a7", "name": "Stray `console.log` in TS/JS \u2014 packages/truth-arbiter/src/sim/headhunter.ts:204", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/truth-arbiter/src/sim/headhunter.ts:204"}, "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-bbdaaab15ef4dcdf", "name": "Stray `console.log` in TS/JS \u2014 packages/truth-arbiter/src/sim/scorekeeper.ts:287", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/truth-arbiter/src/sim/scorekeeper.ts:287"}, "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-69aa30cd64ed6bba", "name": "Stray `console.log` in TS/JS \u2014 packages/truth-arbiter/src/sim/barterer.ts:752", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/truth-arbiter/src/sim/barterer.ts:752"}, "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-ea047eb141cd2ff8", "name": "Stray `console.log` in TS/JS \u2014 packages/truth-arbiter/src/sim/skill-adjudicator.ts:40", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/truth-arbiter/src/sim/skill-adjudicator.ts:40"}, "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-a7110dc9f8844d6e", "name": "Stray `console.log` in TS/JS \u2014 packages/truth-arbiter/src/sim/magistrate.ts:171", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/truth-arbiter/src/sim/magistrate.ts:171"}, "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-aa5a2c27617b4d80", "name": "Stray `console.log` in TS/JS \u2014 packages/truth-arbiter/src/media/ndb.ts:177", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/truth-arbiter/src/media/ndb.ts:177"}, "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-bc2d3eb5f99dedbf", "name": "Stray `console.log` in TS/JS \u2014 packages/truth-arbiter/src/media/ombudsman.ts:58", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/truth-arbiter/src/media/ombudsman.ts:58"}, "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-6f498140bed7e3ee", "name": "Stray `console.log` in TS/JS \u2014 packages/truth-arbiter/src/media/nmdd.ts:138", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/truth-arbiter/src/media/nmdd.ts:138"}, "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-e3b2f82cd991b1ea", "name": "Stray `console.log` in TS/JS \u2014 packages/truth-arbiter/src/draft-model/arbiter.ts:183", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/truth-arbiter/src/draft-model/arbiter.ts:183"}, "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-533c9ac1d18d6441", "name": "Stray `console.log` in TS/JS \u2014 packages/truth-arbiter/src/draft-model/arbiter-outcomes.ts:42", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/truth-arbiter/src/draft-model/arbiter-outcomes.ts:42"}, "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-28e31b74ffa3b5f7", "name": "Stray `console.log` in TS/JS \u2014 packages/truth-arbiter/src/draft-model/ras.ts:133", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/truth-arbiter/src/draft-model/ras.ts:133"}, "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-c2b6e1317d03e244", "name": "Stray `console.log` in TS/JS \u2014 packages/truth-arbiter/src/draft-model/arbiter-class.ts:125", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/truth-arbiter/src/draft-model/arbiter-class.ts:125"}, "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-0635c4a6a7056eb0", "name": "Stray `console.log` in TS/JS \u2014 packages/truth-arbiter/src/draft-model/class-talent.ts:98", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/truth-arbiter/src/draft-model/class-talent.ts:98"}, "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-481287c313598a10", "name": "Stray `console.log` in TS/JS \u2014 packages/truth-arbiter/src/cap/cap-usage-probe.ts:23", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/truth-arbiter/src/cap/cap-usage-probe.ts:23"}, "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-c1dcfd6ee038785a", "name": "Stray `console.log` in TS/JS \u2014 packages/truth-arbiter/src/cap/liquidator.ts:137", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/truth-arbiter/src/cap/liquidator.ts:137"}, "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-226eddd70e1862f1", "name": "Stray `console.log` in TS/JS \u2014 packages/engine/src/season/mood.test.ts:679", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/engine/src/season/mood.test.ts:679"}, "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-93b810702c886c46", "name": "Stray `console.log` in TS/JS \u2014 packages/engine/src/season/media-realism.diagnostic.test.ts:66", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/engine/src/season/media-realism.diagnostic.test.ts:66"}, "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-f678af64b5b5f055", "name": "Stray `console.log` in TS/JS \u2014 packages/engine/src/season/stats-realism.diagnostic.test.ts:48", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/engine/src/season/stats-realism.diagnostic.test.ts:48"}, "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-122f50713c8968c6", "name": "Stray `console.log` in TS/JS \u2014 packages/engine/src/season/validate-progression.test.ts:28", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/engine/src/season/validate-progression.test.ts:28"}, "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-12a329087d5e65e6", "name": "Stray `console.log` in TS/JS \u2014 packages/engine/src/draft/board.test.ts:174", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/engine/src/draft/board.test.ts:174"}, "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-580cb3ba3222d298", "name": "Stray `console.log` in TS/JS \u2014 packages/engine/src/draft/board-position-realism.diagnostic.test.ts:38", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/engine/src/draft/board-position-realism.diagnostic.test.ts:38"}, "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-653a3805ada78494", "name": "Stray `console.log` in TS/JS \u2014 packages/engine/src/draft/media-consumption.diagnostic.test.ts:79", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/engine/src/draft/media-consumption.diagnostic.test.ts:79"}, "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-1782dfbd8f1852ed", "name": "TODO/FIXME marker in shipping code \u2014 packages/engine/src/games/drive-sim.ts:121", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 packages/engine/src/games/drive-sim.ts:121"}, "fullDescription": {"text": "Track in /reviews or /issues, not as a code comment that rots.\n\nWhy: Drift control \u2014 shouldn't be the same as Quality TODO scanner.\nRule id: fq.todo-marker"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6e00c800026c6f22", "name": "Stray `console.log` in TS/JS \u2014 packages/engine/src/transactions/proactive-trades.test.ts:598", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/engine/src/transactions/proactive-trades.test.ts:598"}, "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-db385584a6a287ed", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/web/src/App.tsx:2671", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/web/src/App.tsx:2671"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9710c8d059e53154", "name": "No frontend routes/components detected", "shortDescription": {"text": "No frontend routes/components detected"}, "fullDescription": {"text": "No React/Vue/Next routes were found. This is fine for backend-only repos."}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0ba9a8bb773362a5", "name": "Insecure pattern 'node_child_process' in packages/truth-arbiter/src/gates.ts:1", "shortDescription": {"text": "Insecure pattern 'node_child_process' in packages/truth-arbiter/src/gates.ts:1"}, "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-c03d5115db942bb4", "name": "Insecure pattern 'node_child_process' in packages/truth-arbiter/src/sim/goatinator.ts:3", "shortDescription": {"text": "Insecure pattern 'node_child_process' in packages/truth-arbiter/src/sim/goatinator.ts:3"}, "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-f7d1eb01635255c8", "name": "Insecure pattern 'node_child_process' in packages/truth-arbiter/src/sim/scorekeeper.ts:3", "shortDescription": {"text": "Insecure pattern 'node_child_process' in packages/truth-arbiter/src/sim/scorekeeper.ts:3"}, "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-90433687991c1348", "name": "Insecure pattern 'node_child_process' in packages/truth-arbiter/src/media/ndb.ts:3", "shortDescription": {"text": "Insecure pattern 'node_child_process' in packages/truth-arbiter/src/media/ndb.ts:3"}, "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-6c415a9ebe7e3dcd", "name": "Insecure pattern 'node_child_process' in packages/truth-arbiter/src/media/nmdd.ts:3", "shortDescription": {"text": "Insecure pattern 'node_child_process' in packages/truth-arbiter/src/media/nmdd.ts:3"}, "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-6372cebde0220094", "name": "No auth library detected", "shortDescription": {"text": "No auth library detected"}, "fullDescription": {"text": "The scanner did not find any standard auth library (JWT, OAuth, NextAuth, Auth0, etc.). The repo has auth/admin/session surface indicators, so auth may live in custom code, in a separate service, or be missing."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-27924aa79fa4a517", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "actions/checkout@v6 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-28c4a04bd807da0c", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "actions/checkout@v6 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-ad6701f0a8405e22", "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-1b0fa0f61b8b2687", "name": "Very large file: packages/truth-arbiter/src/lib/engine-bridge.ts (1432 lines)", "shortDescription": {"text": "Very large file: packages/truth-arbiter/src/lib/engine-bridge.ts (1432 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-cebe33c828776001", "name": "Very large file: packages/engine/src/season/mood.test.ts (1429 lines)", "shortDescription": {"text": "Very large file: packages/engine/src/season/mood.test.ts (1429 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-3f4a7383e22ec48c", "name": "Very large file: packages/engine/src/season/lifecycle.ts (1941 lines)", "shortDescription": {"text": "Very large file: packages/engine/src/season/lifecycle.ts (1941 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-15dba5f52a6704ef", "name": "Very large file: packages/engine/src/npc-ai/front-office.ts (1528 lines)", "shortDescription": {"text": "Very large file: packages/engine/src/npc-ai/front-office.ts (1528 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-ff32e7962e684090", "name": "Very large file: apps/web/src/App.tsx (10618 lines)", "shortDescription": {"text": "Very large file: apps/web/src/App.tsx (10618 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-141b30a41e03817b", "name": "No license file detected", "shortDescription": {"text": "No license file detected"}, "fullDescription": {"text": "No LICENSE/COPYING/NOTICE file was found. Generated repositories often omit licensing, which blocks reuse and automated intake."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-196f1f9dd193bf4a", "name": "Node manifest has dependencies but no lockfile: packages/truth-arbiter/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: packages/truth-arbiter/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-4a9eb7dc7c6e3880", "name": "Node manifest has dependencies but no lockfile: apps/web/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: apps/web/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-3ab5d313dda8e5f9", "name": "Debug logging residue appears in source files", "shortDescription": {"text": "Debug logging residue appears in source files"}, "fullDescription": {"text": "Found 420 console/debugger/print-style debug statements in non-test source. This is a common fast-generation residue before production cleanup."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-72b2a6250083a784", "name": "Placeholder or mock-heavy implementation detected", "shortDescription": {"text": "Placeholder or mock-heavy implementation detected"}, "fullDescription": {"text": "Found 30 placeholder/mock markers across 12 source files. This often means the repo looks complete while core flows still use generated scaffolding or fake data."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-2d0c7b7ab8f8aacf", "name": "Critical user flow still appears backed by mock or placeholder data", "shortDescription": {"text": "Critical user flow still appears backed by mock or placeholder data"}, "fullDescription": {"text": "A payment/auth/admin/order/billing-style flow contains mock, fake, TODO, dummy, or placeholder markers in runtime source. In the Fable corpus this is a high-leverage completeness smell: the app can look finished while the money, identity, or tenant flow is still scaffolded."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-b9088664ace7f748", "name": "Composite production-readiness gap", "shortDescription": {"text": "Composite production-readiness gap"}, "fullDescription": {"text": "Multiple low-cost hardening controls are missing together: license, lockfile. Opus verification showed these co-occurring gaps are a better readiness signal than reading each flag in isolation."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-749d4bc1bd66df5f", "name": "Agent instructions exist but release-hardening basics are missing", "shortDescription": {"text": "Agent instructions exist but release-hardening basics are missing"}, "fullDescription": {"text": "AI-coder instruction files were found, but the repo is missing license, 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-bea357a6497a2d5d", "name": "Agent authority lacks a verifier contract: CLAUDE.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: CLAUDE.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-c5e4d0f7c10f1a85", "name": "Commented-code block (6 lines) in packages/truth-arbiter/src/voice/scribe.ts:180", "shortDescription": {"text": "Commented-code block (6 lines) in packages/truth-arbiter/src/voice/scribe.ts:180"}, "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-99df2cc497e5107b", "name": "`fetch()` without try/.catch or AbortSignal \u2014 packages/truth-arbiter/src/corpus/outcomes.ts:39", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/truth-arbiter/src/corpus/outcomes.ts:39"}, "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-a2ac72ab3398c463", "name": "`fetch()` without try/.catch or AbortSignal \u2014 packages/truth-arbiter/src/corpus/fetch.ts:38", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/truth-arbiter/src/corpus/fetch.ts:38"}, "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-14949fc47b54f32a", "name": "`fetch()` without try/.catch or AbortSignal \u2014 packages/truth-arbiter/src/corpus/combine.ts:44", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/truth-arbiter/src/corpus/combine.ts:44"}, "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-1a15d728c822cd65", "name": "`fetch()` without try/.catch or AbortSignal \u2014 packages/truth-arbiter/src/corpus/ollama.ts:9", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/truth-arbiter/src/corpus/ollama.ts:9"}, "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-946b7715c42dc73b", "name": "Legacy-named symbol `realOld` in packages/truth-arbiter/src/sim/actuary.ts:840", "shortDescription": {"text": "Legacy-named symbol `realOld` in packages/truth-arbiter/src/sim/actuary.ts:840"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-acde7f8e7b93d881", "name": "Commented-code block (5 lines) in packages/truth-arbiter/src/sim/actuary.ts:558", "shortDescription": {"text": "Commented-code block (5 lines) in packages/truth-arbiter/src/sim/actuary.ts:558"}, "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-cb9477623f502a47", "name": "`fetch()` without try/.catch or AbortSignal \u2014 packages/truth-arbiter/src/sim/actuary.ts:96", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/truth-arbiter/src/sim/actuary.ts:96"}, "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-f46d04002f062fa4", "name": "`fetch()` without try/.catch or AbortSignal \u2014 packages/truth-arbiter/src/sim/scorekeeper.ts:111", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/truth-arbiter/src/sim/scorekeeper.ts:111"}, "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-c13e72926982af55", "name": "Commented-code block (9 lines) in packages/truth-arbiter/src/sim/barterer.ts:631", "shortDescription": {"text": "Commented-code block (9 lines) in packages/truth-arbiter/src/sim/barterer.ts:631"}, "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-09048a20d29dbfc9", "name": "`fetch()` without try/.catch or AbortSignal \u2014 packages/truth-arbiter/src/sim/barterer.ts:74", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/truth-arbiter/src/sim/barterer.ts:74"}, "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-249af840e5d69fbf", "name": "Commented-code block (13 lines) in packages/truth-arbiter/src/sim/skill-adjudicator.ts:57", "shortDescription": {"text": "Commented-code block (13 lines) in packages/truth-arbiter/src/sim/skill-adjudicator.ts: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-caae4b3230096db2", "name": "`fetch()` without try/.catch or AbortSignal \u2014 packages/truth-arbiter/src/sim/magistrate.ts:47", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/truth-arbiter/src/sim/magistrate.ts:47"}, "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-fa511d8b800b7dce", "name": "Commented-code block (5 lines) in packages/truth-arbiter/src/draft-model/arbiter.ts:67", "shortDescription": {"text": "Commented-code block (5 lines) in packages/truth-arbiter/src/draft-model/arbiter.ts:67"}, "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-3bee1d5e2e41c4a4", "name": "Commented-code block (5 lines) in packages/truth-arbiter/src/draft-model/arbiter-outcomes.ts:49", "shortDescription": {"text": "Commented-code block (5 lines) in packages/truth-arbiter/src/draft-model/arbiter-outcomes.ts:49"}, "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-b6fe2b89d2e9a1a4", "name": "Commented-code block (6 lines) in packages/truth-arbiter/src/lib/engine-bridge.ts:171", "shortDescription": {"text": "Commented-code block (6 lines) in packages/truth-arbiter/src/lib/engine-bridge.ts:171"}, "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-baeaec096401c249", "name": "`fetch()` without try/.catch or AbortSignal \u2014 packages/truth-arbiter/src/lib/otc.ts:58", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/truth-arbiter/src/lib/otc.ts:58"}, "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-826a455e16346e65", "name": "Commented-code block (5 lines) in packages/engine/src/season/mood.test.ts:386", "shortDescription": {"text": "Commented-code block (5 lines) in packages/engine/src/season/mood.test.ts:386"}, "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-5d56dc80a99c5ee3", "name": "Commented-code block (5 lines) in packages/engine/src/season/awards.ts:374", "shortDescription": {"text": "Commented-code block (5 lines) in packages/engine/src/season/awards.ts:374"}, "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-8a0fe57c852d8c10", "name": "Commented-code block (5 lines) in packages/engine/src/season/media-realism.diagnostic.test.ts:135", "shortDescription": {"text": "Commented-code block (5 lines) in packages/engine/src/season/media-realism.diagnostic.test.ts:135"}, "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-628b3354539b9d80", "name": "Commented-code block (5 lines) in packages/engine/src/season/injuries.test.ts:100", "shortDescription": {"text": "Commented-code block (5 lines) in packages/engine/src/season/injuries.test.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-6e8764aed8c7438d", "name": "Commented-code block (5 lines) in packages/engine/src/season/mood.ts:265", "shortDescription": {"text": "Commented-code block (5 lines) in packages/engine/src/season/mood.ts:265"}, "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-2aca3803c2e61fed", "name": "Commented-code block (6 lines) in packages/engine/src/season/lifecycle.ts:402", "shortDescription": {"text": "Commented-code block (6 lines) in packages/engine/src/season/lifecycle.ts:402"}, "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-96c46a7bbe95f955", "name": "Commented-code block (6 lines) in packages/engine/src/season/news.ts:134", "shortDescription": {"text": "Commented-code block (6 lines) in packages/engine/src/season/news.ts:134"}, "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-42ad853dbf630320", "name": "Commented-code block (5 lines) in packages/engine/src/season/runner.ts:6", "shortDescription": {"text": "Commented-code block (5 lines) in packages/engine/src/season/runner.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-fa9b01d3371c549b", "name": "Commented-code block (6 lines) in packages/engine/src/season/development.ts:52", "shortDescription": {"text": "Commented-code block (6 lines) in packages/engine/src/season/development.ts:52"}, "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-ebcc7fe2e3999df8", "name": "Commented-code block (6 lines) in packages/engine/src/season/calendar.test.ts:137", "shortDescription": {"text": "Commented-code block (6 lines) in packages/engine/src/season/calendar.test.ts:137"}, "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-b026d963f0647bdd", "name": "Commented-code block (5 lines) in packages/engine/src/season/development.test.ts:91", "shortDescription": {"text": "Commented-code block (5 lines) in packages/engine/src/season/development.test.ts:91"}, "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-285f29ba0678cee2", "name": "Commented-code block (13 lines) in packages/engine/src/season/runner.test.ts:119", "shortDescription": {"text": "Commented-code block (13 lines) in packages/engine/src/season/runner.test.ts:119"}, "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-40b62696fcf1d7c7", "name": "Commented-code block (10 lines) in packages/engine/src/season/career-awards.test.ts:82", "shortDescription": {"text": "Commented-code block (10 lines) in packages/engine/src/season/career-awards.test.ts:82"}, "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-ea80fa82e72adad7", "name": "Commented-code block (14 lines) in packages/engine/src/season/migrations.ts:292", "shortDescription": {"text": "Commented-code block (14 lines) in packages/engine/src/season/migrations.ts:292"}, "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-93755e61ef521c13", "name": "Legacy-named symbol `prngOld` in packages/engine/src/season/retirement.test.ts:94", "shortDescription": {"text": "Legacy-named symbol `prngOld` in packages/engine/src/season/retirement.test.ts:94"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-19b18705f7a6ad38", "name": "Commented-code block (5 lines) in packages/engine/src/season/retirement.test.ts:125", "shortDescription": {"text": "Commented-code block (5 lines) in packages/engine/src/season/retirement.test.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}}, {"id": "scanner-e3a73b6e2376c1ce", "name": "Commented-code block (6 lines) in packages/engine/src/college-season/stats.ts:315", "shortDescription": {"text": "Commented-code block (6 lines) in packages/engine/src/college-season/stats.ts:315"}, "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-efcef55af60e45b3", "name": "Commented-code block (5 lines) in packages/engine/src/contracts/generate.ts:57", "shortDescription": {"text": "Commented-code block (5 lines) in packages/engine/src/contracts/generate.ts: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-2c4e61a0a8661a14", "name": "Commented-code block (5 lines) in packages/engine/src/draft/picks.test.ts:166", "shortDescription": {"text": "Commented-code block (5 lines) in packages/engine/src/draft/picks.test.ts:166"}, "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-56acdda120c84efe", "name": "Commented-code block (5 lines) in packages/engine/src/draft/board-conversion.test.ts:45", "shortDescription": {"text": "Commented-code block (5 lines) in packages/engine/src/draft/board-conversion.test.ts:45"}, "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-c3fedb0ecd5a5acc", "name": "Commented-code block (6 lines) in packages/engine/src/draft/team-needs.ts:330", "shortDescription": {"text": "Commented-code block (6 lines) in packages/engine/src/draft/team-needs.ts:330"}, "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-97cc3a8329ae44a8", "name": "Commented-code block (5 lines) in packages/engine/src/draft/trade-up.test.ts:130", "shortDescription": {"text": "Commented-code block (5 lines) in packages/engine/src/draft/trade-up.test.ts:130"}, "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-cc1b2f503c52b93a", "name": "Commented-code block (8 lines) in packages/engine/src/draft/board.test.ts:62", "shortDescription": {"text": "Commented-code block (8 lines) in packages/engine/src/draft/board.test.ts:62"}, "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-d47eb395cc736e22", "name": "Commented-code block (5 lines) in packages/engine/src/draft/college-observation.ts:279", "shortDescription": {"text": "Commented-code block (5 lines) in packages/engine/src/draft/college-observation.ts:279"}, "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-f44a002b490d531d", "name": "Commented-code block (5 lines) in packages/engine/src/draft/combine.test.ts:129", "shortDescription": {"text": "Commented-code block (5 lines) in packages/engine/src/draft/combine.test.ts:129"}, "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-75f14ed1913b0fd0", "name": "Commented-code block (6 lines) in packages/engine/src/draft/position-value.ts:59", "shortDescription": {"text": "Commented-code block (6 lines) in packages/engine/src/draft/position-value.ts:59"}, "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-9d73ebb1c09d98b7", "name": "Legacy-named symbol `highLegacy` in packages/engine/src/draft/chart-modifiers.ts:199", "shortDescription": {"text": "Legacy-named symbol `highLegacy` in packages/engine/src/draft/chart-modifiers.ts:199"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-fb4ea9323e2cf5ab", "name": "Commented-code block (5 lines) in packages/engine/src/draft/chart-modifiers.ts:153", "shortDescription": {"text": "Commented-code block (5 lines) in packages/engine/src/draft/chart-modifiers.ts:153"}, "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-1268030915d7c69e", "name": "Commented-code block (5 lines) in packages/engine/src/draft/event.test.ts:235", "shortDescription": {"text": "Commented-code block (5 lines) in packages/engine/src/draft/event.test.ts:235"}, "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-9c439dfb754d0a98", "name": "Commented-code block (5 lines) in packages/engine/src/draft/team-needs.test.ts:41", "shortDescription": {"text": "Commented-code block (5 lines) in packages/engine/src/draft/team-needs.test.ts:41"}, "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-46f83c3e0f3a93c1", "name": "Commented-code block (7 lines) in packages/engine/src/draft/event.ts:67", "shortDescription": {"text": "Commented-code block (7 lines) in packages/engine/src/draft/event.ts:67"}, "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-6ac8dacc2bba9501", "name": "Commented-code block (5 lines) in packages/engine/src/draft/coach-visits.test.ts:100", "shortDescription": {"text": "Commented-code block (5 lines) in packages/engine/src/draft/coach-visits.test.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-8da7d5e02a4c090a", "name": "Commented-code block (5 lines) in packages/engine/src/draft/board.ts:265", "shortDescription": {"text": "Commented-code block (5 lines) in packages/engine/src/draft/board.ts:265"}, "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-d78e2743e6278a19", "name": "Commented-code block (9 lines) in packages/engine/src/draft/generate-college-player.ts:77", "shortDescription": {"text": "Commented-code block (9 lines) in packages/engine/src/draft/generate-college-player.ts:77"}, "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-d3b485aae220bdd8", "name": "Commented-code block (9 lines) in packages/engine/src/draft/pool.ts:192", "shortDescription": {"text": "Commented-code block (9 lines) in packages/engine/src/draft/pool.ts:192"}, "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-16b9906de535722b", "name": "Commented-code block (6 lines) in packages/engine/src/draft/pick-value.test.ts:129", "shortDescription": {"text": "Commented-code block (6 lines) in packages/engine/src/draft/pick-value.test.ts:129"}, "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-bc23dee4edb3e14e", "name": "Commented-code block (5 lines) in packages/engine/src/draft/trade-up.ts:305", "shortDescription": {"text": "Commented-code block (5 lines) in packages/engine/src/draft/trade-up.ts:305"}, "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-1a7f72fa97a53548", "name": "Commented-code block (5 lines) in packages/engine/src/scheme/fit.test.ts:20", "shortDescription": {"text": "Commented-code block (5 lines) in packages/engine/src/scheme/fit.test.ts:20"}, "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-d4c33f2040556423", "name": "Commented-code block (5 lines) in packages/engine/src/scheme/fit.ts:42", "shortDescription": {"text": "Commented-code block (5 lines) in packages/engine/src/scheme/fit.ts:42"}, "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-810eee426373661f", "name": "Commented-code block (5 lines) in packages/engine/src/media/prospect-evaluators.ts:506", "shortDescription": {"text": "Commented-code block (5 lines) in packages/engine/src/media/prospect-evaluators.ts:506"}, "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-29c13633e4887747", "name": "Commented-code block (9 lines) in packages/engine/src/media/media-quality.test.ts:82", "shortDescription": {"text": "Commented-code block (9 lines) in packages/engine/src/media/media-quality.test.ts:82"}, "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-4c12915fb353c84c", "name": "Commented-code block (5 lines) in packages/engine/src/media/college-takes.ts:47", "shortDescription": {"text": "Commented-code block (5 lines) in packages/engine/src/media/college-takes.ts:47"}, "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-b63d7fd72b1e4b37", "name": "Commented-code block (6 lines) in packages/engine/src/games/drive-sim.ts:73", "shortDescription": {"text": "Commented-code block (6 lines) in packages/engine/src/games/drive-sim.ts:73"}, "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-e43898d1c9ec7b3f", "name": "Commented-code block (5 lines) in packages/engine/src/games/strength.ts:173", "shortDescription": {"text": "Commented-code block (5 lines) in packages/engine/src/games/strength.ts:173"}, "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-7c73190cabd3483b", "name": "Commented-code block (5 lines) in packages/engine/src/games/outcome.ts:244", "shortDescription": {"text": "Commented-code block (5 lines) in packages/engine/src/games/outcome.ts:244"}, "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-5a63f8ab5a0ce322", "name": "Commented-code block (6 lines) in packages/engine/src/games/stats.ts:366", "shortDescription": {"text": "Commented-code block (6 lines) in packages/engine/src/games/stats.ts:366"}, "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-5c1e3bd7b51c3857", "name": "Commented-code block (5 lines) in packages/engine/src/types/player.ts:219", "shortDescription": {"text": "Commented-code block (5 lines) in packages/engine/src/types/player.ts:219"}, "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-59866980490c3395", "name": "Commented-code block (11 lines) in packages/engine/src/transactions/practice-squad.test.ts:68", "shortDescription": {"text": "Commented-code block (11 lines) in packages/engine/src/transactions/practice-squad.test.ts:68"}, "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-2eb4d6cd3f24f6b6", "name": "Commented-code block (5 lines) in packages/engine/src/transactions/npc-trade.ts:196", "shortDescription": {"text": "Commented-code block (5 lines) in packages/engine/src/transactions/npc-trade.ts:196"}, "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-15c0a1da9ce81f3b", "name": "Commented-code block (5 lines) in packages/engine/src/transactions/practice-squad.ts:53", "shortDescription": {"text": "Commented-code block (5 lines) in packages/engine/src/transactions/practice-squad.ts:53"}, "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-eda724f1ec030d15", "name": "Commented-code block (6 lines) in packages/engine/src/transactions/proactive-trades.test.ts:103", "shortDescription": {"text": "Commented-code block (6 lines) in packages/engine/src/transactions/proactive-trades.test.ts:103"}, "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-ae34154f88686a75", "name": "Commented-code block (5 lines) in packages/engine/src/transactions/npc-trade.test.ts:17", "shortDescription": {"text": "Commented-code block (5 lines) in packages/engine/src/transactions/npc-trade.test.ts:17"}, "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-f75f2001de948c84", "name": "Commented-code block (6 lines) in packages/engine/src/transactions/offseason.ts:164", "shortDescription": {"text": "Commented-code block (6 lines) in packages/engine/src/transactions/offseason.ts:164"}, "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-6ded1c72cd3a73cc", "name": "Commented-code block (5 lines) in packages/engine/src/transactions/free-agency.ts:125", "shortDescription": {"text": "Commented-code block (5 lines) in packages/engine/src/transactions/free-agency.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}}, {"id": "scanner-f5fbbad239e68fe7", "name": "Commented-code block (5 lines) in packages/engine/src/transactions/fa-bidding.ts:250", "shortDescription": {"text": "Commented-code block (5 lines) in packages/engine/src/transactions/fa-bidding.ts:250"}, "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-55c5782eb99733d8", "name": "Commented-code block (5 lines) in packages/engine/src/transactions/proactive-trades.ts:328", "shortDescription": {"text": "Commented-code block (5 lines) in packages/engine/src/transactions/proactive-trades.ts:328"}, "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-dafcf5b0247f6ae8", "name": "Legacy-named symbol `ownerLegacy` in packages/engine/src/personnel/hc.ts:116", "shortDescription": {"text": "Legacy-named symbol `ownerLegacy` in packages/engine/src/personnel/hc.ts:116"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-df76337dfe9703fc", "name": "Commented-code block (6 lines) in packages/engine/src/npc-ai/front-office.ts:444", "shortDescription": {"text": "Commented-code block (6 lines) in packages/engine/src/npc-ai/front-office.ts:444"}, "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-efb6e24d7c749725", "name": "Legacy-named symbol `dOld` in packages/engine/src/npc-ai/front-office.test.ts:172", "shortDescription": {"text": "Legacy-named symbol `dOld` in packages/engine/src/npc-ai/front-office.test.ts:172"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-e55152f929dd21b8", "name": "Commented-code block (5 lines) in packages/engine/src/trade/value.test.ts:197", "shortDescription": {"text": "Commented-code block (5 lines) in packages/engine/src/trade/value.test.ts:197"}, "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-f2f449e3826a7a76", "name": "Commented-code block (5 lines) in packages/engine/src/players/skills.ts:254", "shortDescription": {"text": "Commented-code block (5 lines) in packages/engine/src/players/skills.ts:254"}, "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-76571c2674ebf9e4", "name": "Commented-code block (5 lines) in packages/engine/src/players/generate.ts:135", "shortDescription": {"text": "Commented-code block (5 lines) in packages/engine/src/players/generate.ts:135"}, "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-d7f43565e42c7925", "name": "Commented-code block (5 lines) in packages/engine/src/players/physical.ts:66", "shortDescription": {"text": "Commented-code block (5 lines) in packages/engine/src/players/physical.ts:66"}, "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-e081cbd575fc2cb6", "name": "Commented-code block (5 lines) in apps/web/vite.config.ts:31", "shortDescription": {"text": "Commented-code block (5 lines) in apps/web/vite.config.ts:31"}, "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-38cc68b3a4b2a0ea", "name": "Commented-code block (5 lines) in apps/web/src/App.tsx:177", "shortDescription": {"text": "Commented-code block (5 lines) in apps/web/src/App.tsx:177"}, "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/25220"}, "properties": {"repository": "DanielJMaher/GMSim", "repoUrl": "https://github.com/DanielJMaher/GMSim", "branch": "main"}, "results": [{"ruleId": "scanner-8f81b2c9a00b2a87", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/truth-arbiter/src/gates.ts:107"}, "properties": {"repobilityId": "08c8b24e32c4f9fa", "scanner": "scanner-primary", "fingerprint": "8f81b2c9a00b2a87", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-e35995333acb43e2", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/truth-arbiter/src/voice/scribe.ts:97"}, "properties": {"repobilityId": "d689fa6f27e9f2e8", "scanner": "scanner-primary", "fingerprint": "e35995333acb43e2", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-8388293e3ed16f94", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/truth-arbiter/src/voice/narrator.ts:101"}, "properties": {"repobilityId": "576d16be63425c3a", "scanner": "scanner-primary", "fingerprint": "8388293e3ed16f94", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-71bd2fdc413345ec", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/truth-arbiter/src/corpus/search.ts:40"}, "properties": {"repobilityId": "e776805c27a45dce", "scanner": "scanner-primary", "fingerprint": "71bd2fdc413345ec", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-3aceddb70e6b0d05", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/truth-arbiter/src/corpus/beast.ts:546"}, "properties": {"repobilityId": "bf759390cf0ecc49", "scanner": "scanner-primary", "fingerprint": "3aceddb70e6b0d05", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-6edc1e8028e212e6", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/truth-arbiter/src/corpus/scrape.ts:41"}, "properties": {"repobilityId": "138c1d024f2380f1", "scanner": "scanner-primary", "fingerprint": "6edc1e8028e212e6", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-36632cad6c9cdffe", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/truth-arbiter/src/corpus/pff.ts:231"}, "properties": {"repobilityId": "45b902addaafa0a5", "scanner": "scanner-primary", "fingerprint": "36632cad6c9cdffe", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-ada8d512f03234eb", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/truth-arbiter/src/corpus/embed.ts:18"}, "properties": {"repobilityId": "b69972aad43edf18", "scanner": "scanner-primary", "fingerprint": "ada8d512f03234eb", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-5d71da7d124ad028", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/truth-arbiter/src/sim/star-separation.ts:26"}, "properties": {"repobilityId": "539bdd3a440849fd", "scanner": "scanner-primary", "fingerprint": "5d71da7d124ad028", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-dfba72d772c9966f", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/truth-arbiter/src/sim/goatinator.ts:156"}, "properties": {"repobilityId": "8d565bb689e751bd", "scanner": "scanner-primary", "fingerprint": "dfba72d772c9966f", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-03129df7e00d37d7", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/truth-arbiter/src/sim/slot-diag.ts:27"}, "properties": {"repobilityId": "78dfc788bb17f09c", "scanner": "scanner-primary", "fingerprint": "03129df7e00d37d7", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-c9e1664934340e85", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/truth-arbiter/src/sim/actuary.ts:100"}, "properties": {"repobilityId": "8016da42f3fe05e0", "scanner": "scanner-primary", "fingerprint": "c9e1664934340e85", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-ac0f35ad2e71f583", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/truth-arbiter/src/sim/conversion.ts:20"}, "properties": {"repobilityId": "d54f53da333ecd53", "scanner": "scanner-primary", "fingerprint": "ac0f35ad2e71f583", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-d980ce040dc6c1a7", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/truth-arbiter/src/sim/headhunter.ts:204"}, "properties": {"repobilityId": "48ccf11dc410280e", "scanner": "scanner-primary", "fingerprint": "d980ce040dc6c1a7", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-bbdaaab15ef4dcdf", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/truth-arbiter/src/sim/scorekeeper.ts:287"}, "properties": {"repobilityId": "84d486d3af5375a8", "scanner": "scanner-primary", "fingerprint": "bbdaaab15ef4dcdf", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-69aa30cd64ed6bba", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/truth-arbiter/src/sim/barterer.ts:752"}, "properties": {"repobilityId": "ce9d335b70c2b0e9", "scanner": "scanner-primary", "fingerprint": "69aa30cd64ed6bba", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-ea047eb141cd2ff8", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/truth-arbiter/src/sim/skill-adjudicator.ts:40"}, "properties": {"repobilityId": "0f939b143cce7278", "scanner": "scanner-primary", "fingerprint": "ea047eb141cd2ff8", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-a7110dc9f8844d6e", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/truth-arbiter/src/sim/magistrate.ts:171"}, "properties": {"repobilityId": "2a5f290d42528578", "scanner": "scanner-primary", "fingerprint": "a7110dc9f8844d6e", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-aa5a2c27617b4d80", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/truth-arbiter/src/media/ndb.ts:177"}, "properties": {"repobilityId": "0ab5b9bb077834d7", "scanner": "scanner-primary", "fingerprint": "aa5a2c27617b4d80", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-bc2d3eb5f99dedbf", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/truth-arbiter/src/media/ombudsman.ts:58"}, "properties": {"repobilityId": "ac955e6589d43e34", "scanner": "scanner-primary", "fingerprint": "bc2d3eb5f99dedbf", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-6f498140bed7e3ee", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/truth-arbiter/src/media/nmdd.ts:138"}, "properties": {"repobilityId": "40ce7f211cd2b53f", "scanner": "scanner-primary", "fingerprint": "6f498140bed7e3ee", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-e3b2f82cd991b1ea", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/truth-arbiter/src/draft-model/arbiter.ts:183"}, "properties": {"repobilityId": "4a46be21176dd959", "scanner": "scanner-primary", "fingerprint": "e3b2f82cd991b1ea", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-533c9ac1d18d6441", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/truth-arbiter/src/draft-model/arbiter-outcomes.ts:42"}, "properties": {"repobilityId": "e8b464d253e79ba1", "scanner": "scanner-primary", "fingerprint": "533c9ac1d18d6441", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-28e31b74ffa3b5f7", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/truth-arbiter/src/draft-model/ras.ts:133"}, "properties": {"repobilityId": "fa6b97af05f7cf33", "scanner": "scanner-primary", "fingerprint": "28e31b74ffa3b5f7", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-c2b6e1317d03e244", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/truth-arbiter/src/draft-model/arbiter-class.ts:125"}, "properties": {"repobilityId": "6434958099a3b6ff", "scanner": "scanner-primary", "fingerprint": "c2b6e1317d03e244", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-0635c4a6a7056eb0", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/truth-arbiter/src/draft-model/class-talent.ts:98"}, "properties": {"repobilityId": "4fe6ee86562bc4fa", "scanner": "scanner-primary", "fingerprint": "0635c4a6a7056eb0", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-481287c313598a10", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/truth-arbiter/src/cap/cap-usage-probe.ts:23"}, "properties": {"repobilityId": "26a33e79cd2b68cc", "scanner": "scanner-primary", "fingerprint": "481287c313598a10", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-c1dcfd6ee038785a", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/truth-arbiter/src/cap/liquidator.ts:137"}, "properties": {"repobilityId": "79b5939ef4850c93", "scanner": "scanner-primary", "fingerprint": "c1dcfd6ee038785a", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-226eddd70e1862f1", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/engine/src/season/mood.test.ts:679"}, "properties": {"repobilityId": "47a9c48559133dad", "scanner": "scanner-primary", "fingerprint": "226eddd70e1862f1", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-93b810702c886c46", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/engine/src/season/media-realism.diagnostic.test.ts:66"}, "properties": {"repobilityId": "447eb9b2efeb52da", "scanner": "scanner-primary", "fingerprint": "93b810702c886c46", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-f678af64b5b5f055", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/engine/src/season/stats-realism.diagnostic.test.ts:48"}, "properties": {"repobilityId": "3b9e8b3f37e7b67b", "scanner": "scanner-primary", "fingerprint": "f678af64b5b5f055", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-122f50713c8968c6", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/engine/src/season/validate-progression.test.ts:28"}, "properties": {"repobilityId": "327ae8ebb8f1d458", "scanner": "scanner-primary", "fingerprint": "122f50713c8968c6", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-12a329087d5e65e6", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/engine/src/draft/board.test.ts:174"}, "properties": {"repobilityId": "5c034f85d63943aa", "scanner": "scanner-primary", "fingerprint": "12a329087d5e65e6", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-580cb3ba3222d298", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/engine/src/draft/board-position-realism.diagnostic.test.ts:38"}, "properties": {"repobilityId": "d3e3a0f4bbb9a06e", "scanner": "scanner-primary", "fingerprint": "580cb3ba3222d298", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-653a3805ada78494", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/engine/src/draft/media-consumption.diagnostic.test.ts:79"}, "properties": {"repobilityId": "cbd7fac543b303b3", "scanner": "scanner-primary", "fingerprint": "653a3805ada78494", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-1782dfbd8f1852ed", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 packages/engine/src/games/drive-sim.ts:121"}, "properties": {"repobilityId": "b16e0389ccf0822c", "scanner": "scanner-primary", "fingerprint": "1782dfbd8f1852ed", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-6e00c800026c6f22", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/engine/src/transactions/proactive-trades.test.ts:598"}, "properties": {"repobilityId": "09177269336734a5", "scanner": "scanner-primary", "fingerprint": "6e00c800026c6f22", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-db385584a6a287ed", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/web/src/App.tsx:2671"}, "properties": {"repobilityId": "9dd2be8e09997a2f", "scanner": "scanner-primary", "fingerprint": "db385584a6a287ed", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-9710c8d059e53154", "level": "none", "message": {"text": "No frontend routes/components detected"}, "properties": {"repobilityId": "44ca61485762e494", "scanner": "scanner-primary", "fingerprint": "9710c8d059e53154", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["coverage"]}}, {"ruleId": "scanner-0ba9a8bb773362a5", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in packages/truth-arbiter/src/gates.ts:1"}, "properties": {"repobilityId": "759c890c3bb2c0cb", "scanner": "scanner-primary", "fingerprint": "0ba9a8bb773362a5", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/truth-arbiter/src/gates.ts"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-c03d5115db942bb4", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in packages/truth-arbiter/src/sim/goatinator.ts:3"}, "properties": {"repobilityId": "8b5a458b31dd16f5", "scanner": "scanner-primary", "fingerprint": "c03d5115db942bb4", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/truth-arbiter/src/sim/goatinator.ts"}, "region": {"startLine": 3}}}]}, {"ruleId": "scanner-f7d1eb01635255c8", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in packages/truth-arbiter/src/sim/scorekeeper.ts:3"}, "properties": {"repobilityId": "7046844c2b8abb7d", "scanner": "scanner-primary", "fingerprint": "f7d1eb01635255c8", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/truth-arbiter/src/sim/scorekeeper.ts"}, "region": {"startLine": 3}}}]}, {"ruleId": "scanner-90433687991c1348", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in packages/truth-arbiter/src/media/ndb.ts:3"}, "properties": {"repobilityId": "f3c4d404a4dc91ef", "scanner": "scanner-primary", "fingerprint": "90433687991c1348", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/truth-arbiter/src/media/ndb.ts"}, "region": {"startLine": 3}}}]}, {"ruleId": "scanner-6c415a9ebe7e3dcd", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in packages/truth-arbiter/src/media/nmdd.ts:3"}, "properties": {"repobilityId": "4d4a208a3fd9d3e1", "scanner": "scanner-primary", "fingerprint": "6c415a9ebe7e3dcd", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/truth-arbiter/src/media/nmdd.ts"}, "region": {"startLine": 3}}}]}, {"ruleId": "scanner-6372cebde0220094", "level": "warning", "message": {"text": "No auth library detected"}, "properties": {"repobilityId": "a5b6035a5bbf8054", "scanner": "scanner-primary", "fingerprint": "6372cebde0220094", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["coverage", "auth"]}}, {"ruleId": "scanner-27924aa79fa4a517", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "97a9a5de61d82fcd", "scanner": "scanner-primary", "fingerprint": "27924aa79fa4a517", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/ci.yml"}, "region": {"startLine": 19}}}]}, {"ruleId": "scanner-27924aa79fa4a517", "level": "warning", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "9e5617d449b061f6", "scanner": "scanner-primary", "fingerprint": "27924aa79fa4a517", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/ci.yml"}, "region": {"startLine": 22}}}]}, {"ruleId": "scanner-27924aa79fa4a517", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "4a63b1fd6887cae9", "scanner": "scanner-primary", "fingerprint": "27924aa79fa4a517", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/ci.yml"}, "region": {"startLine": 27}}}]}, {"ruleId": "scanner-27924aa79fa4a517", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "97a9a5de61d82fcd", "scanner": "scanner-primary", "fingerprint": "27924aa79fa4a517", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/ci.yml"}, "region": {"startLine": 43}}}]}, {"ruleId": "scanner-27924aa79fa4a517", "level": "warning", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "9e5617d449b061f6", "scanner": "scanner-primary", "fingerprint": "27924aa79fa4a517", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/ci.yml"}, "region": {"startLine": 46}}}]}, {"ruleId": "scanner-27924aa79fa4a517", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "4a63b1fd6887cae9", "scanner": "scanner-primary", "fingerprint": "27924aa79fa4a517", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/ci.yml"}, "region": {"startLine": 51}}}]}, {"ruleId": "scanner-27924aa79fa4a517", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "97a9a5de61d82fcd", "scanner": "scanner-primary", "fingerprint": "27924aa79fa4a517", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/ci.yml"}, "region": {"startLine": 71}}}]}, {"ruleId": "scanner-27924aa79fa4a517", "level": "warning", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "9e5617d449b061f6", "scanner": "scanner-primary", "fingerprint": "27924aa79fa4a517", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/ci.yml"}, "region": {"startLine": 74}}}]}, {"ruleId": "scanner-27924aa79fa4a517", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "4a63b1fd6887cae9", "scanner": "scanner-primary", "fingerprint": "27924aa79fa4a517", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/ci.yml"}, "region": {"startLine": 79}}}]}, {"ruleId": "scanner-28c4a04bd807da0c", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "722ab4643920a278", "scanner": "scanner-primary", "fingerprint": "28c4a04bd807da0c", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/deploy.yml"}, "region": {"startLine": 23}}}]}, {"ruleId": "scanner-28c4a04bd807da0c", "level": "warning", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "24c28d8303f58301", "scanner": "scanner-primary", "fingerprint": "28c4a04bd807da0c", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/deploy.yml"}, "region": {"startLine": 26}}}]}, {"ruleId": "scanner-28c4a04bd807da0c", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "c266bde81c839bdc", "scanner": "scanner-primary", "fingerprint": "28c4a04bd807da0c", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/deploy.yml"}, "region": {"startLine": 31}}}]}, {"ruleId": "scanner-28c4a04bd807da0c", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "a14a700833f07929", "scanner": "scanner-primary", "fingerprint": "28c4a04bd807da0c", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/deploy.yml"}, "region": {"startLine": 47}}}]}, {"ruleId": "scanner-28c4a04bd807da0c", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "e2bbcbcc5f68615d", "scanner": "scanner-primary", "fingerprint": "28c4a04bd807da0c", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/deploy.yml"}, "region": {"startLine": 50}}}]}, {"ruleId": "scanner-28c4a04bd807da0c", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "4544a649b35fa68b", "scanner": "scanner-primary", "fingerprint": "28c4a04bd807da0c", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/deploy.yml"}, "region": {"startLine": 63}}}]}, {"ruleId": "scanner-ad6701f0a8405e22", "level": "warning", "message": {"text": "GitHub Actions workflow grants broad write permissions"}, "properties": {"repobilityId": "8384c23520d55657", "scanner": "scanner-primary", "fingerprint": "ad6701f0a8405e22", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "least-privilege"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/deploy.yml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-1b0fa0f61b8b2687", "level": "note", "message": {"text": "Very large file: packages/truth-arbiter/src/lib/engine-bridge.ts (1432 lines)"}, "properties": {"repobilityId": "8b786fdf0b6afa7f", "scanner": "scanner-primary", "fingerprint": "1b0fa0f61b8b2687", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-cebe33c828776001", "level": "note", "message": {"text": "Very large file: packages/engine/src/season/mood.test.ts (1429 lines)"}, "properties": {"repobilityId": "3c3f2d486163ac88", "scanner": "scanner-primary", "fingerprint": "cebe33c828776001", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-3f4a7383e22ec48c", "level": "note", "message": {"text": "Very large file: packages/engine/src/season/lifecycle.ts (1941 lines)"}, "properties": {"repobilityId": "f562c8ac2fb7cb8d", "scanner": "scanner-primary", "fingerprint": "3f4a7383e22ec48c", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-15dba5f52a6704ef", "level": "note", "message": {"text": "Very large file: packages/engine/src/npc-ai/front-office.ts (1528 lines)"}, "properties": {"repobilityId": "4f8c390e54e90886", "scanner": "scanner-primary", "fingerprint": "15dba5f52a6704ef", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-ff32e7962e684090", "level": "note", "message": {"text": "Very large file: apps/web/src/App.tsx (10618 lines)"}, "properties": {"repobilityId": "4ccb7d0f033e2f7e", "scanner": "scanner-primary", "fingerprint": "ff32e7962e684090", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-141b30a41e03817b", "level": "note", "message": {"text": "No license file detected"}, "properties": {"repobilityId": "1ac0e4ba641fe398", "scanner": "scanner-primary", "fingerprint": "141b30a41e03817b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["license", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-196f1f9dd193bf4a", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: packages/truth-arbiter/package.json"}, "properties": {"repobilityId": "b9041b3e2641b338", "scanner": "scanner-primary", "fingerprint": "196f1f9dd193bf4a", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/truth-arbiter/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-4a9eb7dc7c6e3880", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: apps/web/package.json"}, "properties": {"repobilityId": "6c1704bf24cf19ac", "scanner": "scanner-primary", "fingerprint": "4a9eb7dc7c6e3880", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/web/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-3ab5d313dda8e5f9", "level": "note", "message": {"text": "Debug logging residue appears in source files"}, "properties": {"repobilityId": "80508ff5b5d84e62", "scanner": "scanner-primary", "fingerprint": "3ab5d313dda8e5f9", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["debug", "cleanup", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-72b2a6250083a784", "level": "warning", "message": {"text": "Placeholder or mock-heavy implementation detected"}, "properties": {"repobilityId": "7f46fe8d31f4f68f", "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": "2490a1acb598e91b", "scanner": "scanner-primary", "fingerprint": "2d0c7b7ab8f8aacf", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["placeholder", "mock-data", "critical-flow", "generated-repo-pattern"]}}, {"ruleId": "scanner-b9088664ace7f748", "level": "note", "message": {"text": "Composite production-readiness gap"}, "properties": {"repobilityId": "305e22df3548ecbb", "scanner": "scanner-primary", "fingerprint": "b9088664ace7f748", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["production-readiness", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-749d4bc1bd66df5f", "level": "warning", "message": {"text": "Agent instructions exist but release-hardening basics are missing"}, "properties": {"repobilityId": "4db5193e8c5df00a", "scanner": "scanner-primary", "fingerprint": "749d4bc1bd66df5f", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-bea357a6497a2d5d", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: CLAUDE.md"}, "properties": {"repobilityId": "aae72df3934829ac", "scanner": "scanner-primary", "fingerprint": "bea357a6497a2d5d", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "CLAUDE.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-c5e4d0f7c10f1a85", "level": "none", "message": {"text": "Commented-code block (6 lines) in packages/truth-arbiter/src/voice/scribe.ts:180"}, "properties": {"repobilityId": "11a14bdc1028275a", "scanner": "scanner-primary", "fingerprint": "c5e4d0f7c10f1a85", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-99df2cc497e5107b", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/truth-arbiter/src/corpus/outcomes.ts:39"}, "properties": {"repobilityId": "d2e9cd5690459b2b", "scanner": "scanner-primary", "fingerprint": "99df2cc497e5107b", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-a2ac72ab3398c463", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/truth-arbiter/src/corpus/fetch.ts:38"}, "properties": {"repobilityId": "2369bd5fb558cfc5", "scanner": "scanner-primary", "fingerprint": "a2ac72ab3398c463", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-14949fc47b54f32a", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/truth-arbiter/src/corpus/combine.ts:44"}, "properties": {"repobilityId": "2afc99fe9c92b68e", "scanner": "scanner-primary", "fingerprint": "14949fc47b54f32a", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-1a15d728c822cd65", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/truth-arbiter/src/corpus/ollama.ts:9"}, "properties": {"repobilityId": "316a5a653f022a3d", "scanner": "scanner-primary", "fingerprint": "1a15d728c822cd65", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-946b7715c42dc73b", "level": "note", "message": {"text": "Legacy-named symbol `realOld` in packages/truth-arbiter/src/sim/actuary.ts:840"}, "properties": {"repobilityId": "cd1832a2af375464", "scanner": "scanner-primary", "fingerprint": "946b7715c42dc73b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-acde7f8e7b93d881", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/truth-arbiter/src/sim/actuary.ts:558"}, "properties": {"repobilityId": "cf997aa543f289bc", "scanner": "scanner-primary", "fingerprint": "acde7f8e7b93d881", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-cb9477623f502a47", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/truth-arbiter/src/sim/actuary.ts:96"}, "properties": {"repobilityId": "220b8a2111300400", "scanner": "scanner-primary", "fingerprint": "cb9477623f502a47", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-f46d04002f062fa4", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/truth-arbiter/src/sim/scorekeeper.ts:111"}, "properties": {"repobilityId": "e43647a7a3985ff3", "scanner": "scanner-primary", "fingerprint": "f46d04002f062fa4", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-c13e72926982af55", "level": "none", "message": {"text": "Commented-code block (9 lines) in packages/truth-arbiter/src/sim/barterer.ts:631"}, "properties": {"repobilityId": "bf70dfd541cdbe07", "scanner": "scanner-primary", "fingerprint": "c13e72926982af55", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-09048a20d29dbfc9", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/truth-arbiter/src/sim/barterer.ts:74"}, "properties": {"repobilityId": "67e851b5d3680a02", "scanner": "scanner-primary", "fingerprint": "09048a20d29dbfc9", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-249af840e5d69fbf", "level": "none", "message": {"text": "Commented-code block (13 lines) in packages/truth-arbiter/src/sim/skill-adjudicator.ts:57"}, "properties": {"repobilityId": "7f8cd293ca2abff1", "scanner": "scanner-primary", "fingerprint": "249af840e5d69fbf", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-caae4b3230096db2", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/truth-arbiter/src/sim/magistrate.ts:47"}, "properties": {"repobilityId": "a80516ed0001e428", "scanner": "scanner-primary", "fingerprint": "caae4b3230096db2", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-fa511d8b800b7dce", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/truth-arbiter/src/draft-model/arbiter.ts:67"}, "properties": {"repobilityId": "00808694cd7be02e", "scanner": "scanner-primary", "fingerprint": "fa511d8b800b7dce", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3bee1d5e2e41c4a4", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/truth-arbiter/src/draft-model/arbiter-outcomes.ts:49"}, "properties": {"repobilityId": "6db011e9331b9f34", "scanner": "scanner-primary", "fingerprint": "3bee1d5e2e41c4a4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b6fe2b89d2e9a1a4", "level": "none", "message": {"text": "Commented-code block (6 lines) in packages/truth-arbiter/src/lib/engine-bridge.ts:171"}, "properties": {"repobilityId": "c62a6c1b143e881b", "scanner": "scanner-primary", "fingerprint": "b6fe2b89d2e9a1a4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-baeaec096401c249", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/truth-arbiter/src/lib/otc.ts:58"}, "properties": {"repobilityId": "b97c0bbe30183fb5", "scanner": "scanner-primary", "fingerprint": "baeaec096401c249", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-826a455e16346e65", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/engine/src/season/mood.test.ts:386"}, "properties": {"repobilityId": "545d2c4e125e71b5", "scanner": "scanner-primary", "fingerprint": "826a455e16346e65", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5d56dc80a99c5ee3", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/engine/src/season/awards.ts:374"}, "properties": {"repobilityId": "2bec2254edb10f81", "scanner": "scanner-primary", "fingerprint": "5d56dc80a99c5ee3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8a0fe57c852d8c10", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/engine/src/season/media-realism.diagnostic.test.ts:135"}, "properties": {"repobilityId": "8b5c3104af39534e", "scanner": "scanner-primary", "fingerprint": "8a0fe57c852d8c10", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-628b3354539b9d80", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/engine/src/season/injuries.test.ts:100"}, "properties": {"repobilityId": "c5bdba6ce994c76d", "scanner": "scanner-primary", "fingerprint": "628b3354539b9d80", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6e8764aed8c7438d", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/engine/src/season/mood.ts:265"}, "properties": {"repobilityId": "968dffff80b5ea31", "scanner": "scanner-primary", "fingerprint": "6e8764aed8c7438d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2aca3803c2e61fed", "level": "none", "message": {"text": "Commented-code block (6 lines) in packages/engine/src/season/lifecycle.ts:402"}, "properties": {"repobilityId": "20e54a613cce8afc", "scanner": "scanner-primary", "fingerprint": "2aca3803c2e61fed", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-96c46a7bbe95f955", "level": "none", "message": {"text": "Commented-code block (6 lines) in packages/engine/src/season/news.ts:134"}, "properties": {"repobilityId": "818d732e7627dcaf", "scanner": "scanner-primary", "fingerprint": "96c46a7bbe95f955", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-42ad853dbf630320", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/engine/src/season/runner.ts:6"}, "properties": {"repobilityId": "3e8967492c979af8", "scanner": "scanner-primary", "fingerprint": "42ad853dbf630320", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-fa9b01d3371c549b", "level": "none", "message": {"text": "Commented-code block (6 lines) in packages/engine/src/season/development.ts:52"}, "properties": {"repobilityId": "6ce937459d3bf1e2", "scanner": "scanner-primary", "fingerprint": "fa9b01d3371c549b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ebcc7fe2e3999df8", "level": "none", "message": {"text": "Commented-code block (6 lines) in packages/engine/src/season/calendar.test.ts:137"}, "properties": {"repobilityId": "65bcc1348a97f179", "scanner": "scanner-primary", "fingerprint": "ebcc7fe2e3999df8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b026d963f0647bdd", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/engine/src/season/development.test.ts:91"}, "properties": {"repobilityId": "1c55f73c4d86c196", "scanner": "scanner-primary", "fingerprint": "b026d963f0647bdd", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-285f29ba0678cee2", "level": "none", "message": {"text": "Commented-code block (13 lines) in packages/engine/src/season/runner.test.ts:119"}, "properties": {"repobilityId": "cd3cee0ffb9f50a9", "scanner": "scanner-primary", "fingerprint": "285f29ba0678cee2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-40b62696fcf1d7c7", "level": "none", "message": {"text": "Commented-code block (10 lines) in packages/engine/src/season/career-awards.test.ts:82"}, "properties": {"repobilityId": "e6b9cda1501f602c", "scanner": "scanner-primary", "fingerprint": "40b62696fcf1d7c7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ea80fa82e72adad7", "level": "none", "message": {"text": "Commented-code block (14 lines) in packages/engine/src/season/migrations.ts:292"}, "properties": {"repobilityId": "61d461c473f04852", "scanner": "scanner-primary", "fingerprint": "ea80fa82e72adad7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-93755e61ef521c13", "level": "note", "message": {"text": "Legacy-named symbol `prngOld` in packages/engine/src/season/retirement.test.ts:94"}, "properties": {"repobilityId": "f2933a479f7a9c72", "scanner": "scanner-primary", "fingerprint": "93755e61ef521c13", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-19b18705f7a6ad38", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/engine/src/season/retirement.test.ts:125"}, "properties": {"repobilityId": "e3a6110a6efe9e76", "scanner": "scanner-primary", "fingerprint": "19b18705f7a6ad38", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e3a73b6e2376c1ce", "level": "none", "message": {"text": "Commented-code block (6 lines) in packages/engine/src/college-season/stats.ts:315"}, "properties": {"repobilityId": "8e51858232ab34cb", "scanner": "scanner-primary", "fingerprint": "e3a73b6e2376c1ce", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-efcef55af60e45b3", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/engine/src/contracts/generate.ts:57"}, "properties": {"repobilityId": "69b709f02f5ab272", "scanner": "scanner-primary", "fingerprint": "efcef55af60e45b3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2c4e61a0a8661a14", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/engine/src/draft/picks.test.ts:166"}, "properties": {"repobilityId": "78e97bfa3ba96471", "scanner": "scanner-primary", "fingerprint": "2c4e61a0a8661a14", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-56acdda120c84efe", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/engine/src/draft/board-conversion.test.ts:45"}, "properties": {"repobilityId": "ef6d5a7bd4649ccf", "scanner": "scanner-primary", "fingerprint": "56acdda120c84efe", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c3fedb0ecd5a5acc", "level": "none", "message": {"text": "Commented-code block (6 lines) in packages/engine/src/draft/team-needs.ts:330"}, "properties": {"repobilityId": "27027c5c4f71203d", "scanner": "scanner-primary", "fingerprint": "c3fedb0ecd5a5acc", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-97cc3a8329ae44a8", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/engine/src/draft/trade-up.test.ts:130"}, "properties": {"repobilityId": "dfbb458ea4fe307b", "scanner": "scanner-primary", "fingerprint": "97cc3a8329ae44a8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-cc1b2f503c52b93a", "level": "none", "message": {"text": "Commented-code block (8 lines) in packages/engine/src/draft/board.test.ts:62"}, "properties": {"repobilityId": "8d277bb2061bbf71", "scanner": "scanner-primary", "fingerprint": "cc1b2f503c52b93a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d47eb395cc736e22", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/engine/src/draft/college-observation.ts:279"}, "properties": {"repobilityId": "d6025fc96ecaaa07", "scanner": "scanner-primary", "fingerprint": "d47eb395cc736e22", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f44a002b490d531d", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/engine/src/draft/combine.test.ts:129"}, "properties": {"repobilityId": "3f8057aee14383b6", "scanner": "scanner-primary", "fingerprint": "f44a002b490d531d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-75f14ed1913b0fd0", "level": "none", "message": {"text": "Commented-code block (6 lines) in packages/engine/src/draft/position-value.ts:59"}, "properties": {"repobilityId": "ba79ca3113e13d1d", "scanner": "scanner-primary", "fingerprint": "75f14ed1913b0fd0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9d73ebb1c09d98b7", "level": "note", "message": {"text": "Legacy-named symbol `highLegacy` in packages/engine/src/draft/chart-modifiers.ts:199"}, "properties": {"repobilityId": "903d1f1c4cd92eb3", "scanner": "scanner-primary", "fingerprint": "9d73ebb1c09d98b7", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-fb4ea9323e2cf5ab", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/engine/src/draft/chart-modifiers.ts:153"}, "properties": {"repobilityId": "b461425830ed14b6", "scanner": "scanner-primary", "fingerprint": "fb4ea9323e2cf5ab", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1268030915d7c69e", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/engine/src/draft/event.test.ts:235"}, "properties": {"repobilityId": "0892e89fbbf3c89b", "scanner": "scanner-primary", "fingerprint": "1268030915d7c69e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9c439dfb754d0a98", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/engine/src/draft/team-needs.test.ts:41"}, "properties": {"repobilityId": "135884297d7e0271", "scanner": "scanner-primary", "fingerprint": "9c439dfb754d0a98", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-46f83c3e0f3a93c1", "level": "none", "message": {"text": "Commented-code block (7 lines) in packages/engine/src/draft/event.ts:67"}, "properties": {"repobilityId": "55d321632ae8e005", "scanner": "scanner-primary", "fingerprint": "46f83c3e0f3a93c1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6ac8dacc2bba9501", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/engine/src/draft/coach-visits.test.ts:100"}, "properties": {"repobilityId": "9be45719edd12cbc", "scanner": "scanner-primary", "fingerprint": "6ac8dacc2bba9501", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8da7d5e02a4c090a", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/engine/src/draft/board.ts:265"}, "properties": {"repobilityId": "97edc9e63892d505", "scanner": "scanner-primary", "fingerprint": "8da7d5e02a4c090a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d78e2743e6278a19", "level": "none", "message": {"text": "Commented-code block (9 lines) in packages/engine/src/draft/generate-college-player.ts:77"}, "properties": {"repobilityId": "7b9fa3e687445a10", "scanner": "scanner-primary", "fingerprint": "d78e2743e6278a19", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d3b485aae220bdd8", "level": "none", "message": {"text": "Commented-code block (9 lines) in packages/engine/src/draft/pool.ts:192"}, "properties": {"repobilityId": "c6fcd80651c7d966", "scanner": "scanner-primary", "fingerprint": "d3b485aae220bdd8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-16b9906de535722b", "level": "none", "message": {"text": "Commented-code block (6 lines) in packages/engine/src/draft/pick-value.test.ts:129"}, "properties": {"repobilityId": "b5fb383d98ceb381", "scanner": "scanner-primary", "fingerprint": "16b9906de535722b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-bc23dee4edb3e14e", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/engine/src/draft/trade-up.ts:305"}, "properties": {"repobilityId": "c7b32f49db0b9c1e", "scanner": "scanner-primary", "fingerprint": "bc23dee4edb3e14e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1a7f72fa97a53548", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/engine/src/scheme/fit.test.ts:20"}, "properties": {"repobilityId": "1edcea442635fc03", "scanner": "scanner-primary", "fingerprint": "1a7f72fa97a53548", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d4c33f2040556423", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/engine/src/scheme/fit.ts:42"}, "properties": {"repobilityId": "94add7e009508977", "scanner": "scanner-primary", "fingerprint": "d4c33f2040556423", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-810eee426373661f", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/engine/src/media/prospect-evaluators.ts:506"}, "properties": {"repobilityId": "30fbf7125518f8cd", "scanner": "scanner-primary", "fingerprint": "810eee426373661f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-29c13633e4887747", "level": "none", "message": {"text": "Commented-code block (9 lines) in packages/engine/src/media/media-quality.test.ts:82"}, "properties": {"repobilityId": "4351ee2757661c0a", "scanner": "scanner-primary", "fingerprint": "29c13633e4887747", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4c12915fb353c84c", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/engine/src/media/college-takes.ts:47"}, "properties": {"repobilityId": "d953bfb557aa9924", "scanner": "scanner-primary", "fingerprint": "4c12915fb353c84c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b63d7fd72b1e4b37", "level": "none", "message": {"text": "Commented-code block (6 lines) in packages/engine/src/games/drive-sim.ts:73"}, "properties": {"repobilityId": "64a802bf466c52a8", "scanner": "scanner-primary", "fingerprint": "b63d7fd72b1e4b37", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e43898d1c9ec7b3f", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/engine/src/games/strength.ts:173"}, "properties": {"repobilityId": "1d240da7f5073a8c", "scanner": "scanner-primary", "fingerprint": "e43898d1c9ec7b3f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7c73190cabd3483b", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/engine/src/games/outcome.ts:244"}, "properties": {"repobilityId": "431bc4cf1755c354", "scanner": "scanner-primary", "fingerprint": "7c73190cabd3483b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5a63f8ab5a0ce322", "level": "none", "message": {"text": "Commented-code block (6 lines) in packages/engine/src/games/stats.ts:366"}, "properties": {"repobilityId": "b75dcab0ad2819fe", "scanner": "scanner-primary", "fingerprint": "5a63f8ab5a0ce322", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5c1e3bd7b51c3857", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/engine/src/types/player.ts:219"}, "properties": {"repobilityId": "634868ca841d62f0", "scanner": "scanner-primary", "fingerprint": "5c1e3bd7b51c3857", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-59866980490c3395", "level": "none", "message": {"text": "Commented-code block (11 lines) in packages/engine/src/transactions/practice-squad.test.ts:68"}, "properties": {"repobilityId": "ac1cd6200fdacee5", "scanner": "scanner-primary", "fingerprint": "59866980490c3395", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2eb4d6cd3f24f6b6", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/engine/src/transactions/npc-trade.ts:196"}, "properties": {"repobilityId": "9fa75fa7717f983f", "scanner": "scanner-primary", "fingerprint": "2eb4d6cd3f24f6b6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-15c0a1da9ce81f3b", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/engine/src/transactions/practice-squad.ts:53"}, "properties": {"repobilityId": "0a67dd0f5e54cb1a", "scanner": "scanner-primary", "fingerprint": "15c0a1da9ce81f3b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-eda724f1ec030d15", "level": "none", "message": {"text": "Commented-code block (6 lines) in packages/engine/src/transactions/proactive-trades.test.ts:103"}, "properties": {"repobilityId": "46458bff0d8c3127", "scanner": "scanner-primary", "fingerprint": "eda724f1ec030d15", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ae34154f88686a75", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/engine/src/transactions/npc-trade.test.ts:17"}, "properties": {"repobilityId": "b334f43e8df20726", "scanner": "scanner-primary", "fingerprint": "ae34154f88686a75", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f75f2001de948c84", "level": "none", "message": {"text": "Commented-code block (6 lines) in packages/engine/src/transactions/offseason.ts:164"}, "properties": {"repobilityId": "a1b491addd3341fe", "scanner": "scanner-primary", "fingerprint": "f75f2001de948c84", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6ded1c72cd3a73cc", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/engine/src/transactions/free-agency.ts:125"}, "properties": {"repobilityId": "6262e04550200889", "scanner": "scanner-primary", "fingerprint": "6ded1c72cd3a73cc", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f5fbbad239e68fe7", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/engine/src/transactions/fa-bidding.ts:250"}, "properties": {"repobilityId": "9d89823aea97293c", "scanner": "scanner-primary", "fingerprint": "f5fbbad239e68fe7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-55c5782eb99733d8", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/engine/src/transactions/proactive-trades.ts:328"}, "properties": {"repobilityId": "80b4d9325cbb5a4d", "scanner": "scanner-primary", "fingerprint": "55c5782eb99733d8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-dafcf5b0247f6ae8", "level": "note", "message": {"text": "Legacy-named symbol `ownerLegacy` in packages/engine/src/personnel/hc.ts:116"}, "properties": {"repobilityId": "d1de514b5c543bc0", "scanner": "scanner-primary", "fingerprint": "dafcf5b0247f6ae8", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-df76337dfe9703fc", "level": "none", "message": {"text": "Commented-code block (6 lines) in packages/engine/src/npc-ai/front-office.ts:444"}, "properties": {"repobilityId": "10c3d7a6b7abefdd", "scanner": "scanner-primary", "fingerprint": "df76337dfe9703fc", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-efb6e24d7c749725", "level": "note", "message": {"text": "Legacy-named symbol `dOld` in packages/engine/src/npc-ai/front-office.test.ts:172"}, "properties": {"repobilityId": "51c206646f8c5871", "scanner": "scanner-primary", "fingerprint": "efb6e24d7c749725", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-e55152f929dd21b8", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/engine/src/trade/value.test.ts:197"}, "properties": {"repobilityId": "89ab0b1aaefd8619", "scanner": "scanner-primary", "fingerprint": "e55152f929dd21b8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f2f449e3826a7a76", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/engine/src/players/skills.ts:254"}, "properties": {"repobilityId": "b5c7330467211a0f", "scanner": "scanner-primary", "fingerprint": "f2f449e3826a7a76", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-76571c2674ebf9e4", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/engine/src/players/generate.ts:135"}, "properties": {"repobilityId": "921f12b2dce9eae6", "scanner": "scanner-primary", "fingerprint": "76571c2674ebf9e4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d7f43565e42c7925", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/engine/src/players/physical.ts:66"}, "properties": {"repobilityId": "86db7a0b32b55ee4", "scanner": "scanner-primary", "fingerprint": "d7f43565e42c7925", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e081cbd575fc2cb6", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/web/vite.config.ts:31"}, "properties": {"repobilityId": "d331b986cf254365", "scanner": "scanner-primary", "fingerprint": "e081cbd575fc2cb6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-38cc68b3a4b2a0ea", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/web/src/App.tsx:177"}, "properties": {"repobilityId": "5ad20447dbfc4d09", "scanner": "scanner-primary", "fingerprint": "38cc68b3a4b2a0ea", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}]}]}