{"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-4a812742fd7fa6c5", "name": "Possibly dead Python function: check_url", "shortDescription": {"text": "Possibly dead Python function: check_url"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-de021663e5cd9a35", "name": "Possibly dead Python function: tokenize_jsonl_path", "shortDescription": {"text": "Possibly dead Python function: tokenize_jsonl_path"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-be50a9b7fa2d9148", "name": "Possibly dead Python function: unsafe", "shortDescription": {"text": "Possibly dead Python function: unsafe"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-d8a76ca146ebdb64", "name": "Possibly dead Python function: safe", "shortDescription": {"text": "Possibly dead Python function: safe"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-7d1c499b5f334e72", "name": "Possibly dead Python function: tool_run_shell", "shortDescription": {"text": "Possibly dead Python function: tool_run_shell"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-98d4db7dfc6bc0f5", "name": "Possibly dead Python function: destructive_guard", "shortDescription": {"text": "Possibly dead Python function: destructive_guard"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-173c6078fa951fb7", "name": "Possibly dead Python function: synthetic_loader", "shortDescription": {"text": "Possibly dead Python function: synthetic_loader"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-cd23e412e8161988", "name": "Possibly dead Python function: rank_main", "shortDescription": {"text": "Possibly dead Python function: rank_main"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-e5b150cc4bc96803", "name": "Possibly dead Python function: write_response", "shortDescription": {"text": "Possibly dead Python function: write_response"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-ce52a9913333dfc3", "name": "Possibly dead Python function: apply_known_fixes", "shortDescription": {"text": "Possibly dead Python function: apply_known_fixes"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-5b4a787aaaa91e92", "name": "Possibly dead Python function: noop_candidate", "shortDescription": {"text": "Possibly dead Python function: noop_candidate"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-68c154aef3525fd1", "name": "Possibly dead Python function: reverse_list", "shortDescription": {"text": "Possibly dead Python function: reverse_list"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-3e65786ffb3f40dd", "name": "Possibly dead Python function: reverse_list", "shortDescription": {"text": "Possibly dead Python function: reverse_list"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-2600512e42a18b57", "name": "Possibly dead Python function: fizzbuzz", "shortDescription": {"text": "Possibly dead Python function: fizzbuzz"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-ce229413542e8500", "name": "Possibly dead Python function: fizzbuzz", "shortDescription": {"text": "Possibly dead Python function: fizzbuzz"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-ce935002d5258301", "name": "Possibly dead Python function: linked_list_length", "shortDescription": {"text": "Possibly dead Python function: linked_list_length"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-aa75e63ce1991472", "name": "Possibly dead Python function: linked_list_length", "shortDescription": {"text": "Possibly dead Python function: linked_list_length"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-697550bc1acaf330", "name": "Possibly dead Python function: baseline_pipeline", "shortDescription": {"text": "Possibly dead Python function: baseline_pipeline"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-9b79afc69e633d93", "name": "Possibly dead Python function: hybrid_plus_rerank_pipeline", "shortDescription": {"text": "Possibly dead Python function: hybrid_plus_rerank_pipeline"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-5f37af56efc4f07d", "name": "Possibly dead Python function: inject_inf_into_first_grad", "shortDescription": {"text": "Possibly dead Python function: inject_inf_into_first_grad"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-06702fdeeb246417", "name": "Possibly dead Python function: deterministic_expander", "shortDescription": {"text": "Possibly dead Python function: deterministic_expander"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-90db289ef1bed21a", "name": "Possibly dead Python function: to_envelope", "shortDescription": {"text": "Possibly dead Python function: to_envelope"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-6d9cb07ca008c350", "name": "Stray `console.log` in TS/JS \u2014 deploy/license-service/keygen.js:26", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 deploy/license-service/keygen.js: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-8b957765a5936dc2", "name": "Stray `console.log` in TS/JS \u2014 deploy/license-service/server.js:246", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 deploy/license-service/server.js:246"}, "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-5ccab30aa14343e1", "name": "Stray `console.log` in TS/JS \u2014 site/build.js:492", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 site/build.js:492"}, "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-a237b75f9f872a1d", "name": "Stray `console.log` in TS/JS \u2014 phases/19-capstone-projects/08-production-rag-chatbot/code/ts/src/index.ts:52", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 phases/19-capstone-projects/08-production-rag-chatbot/code/ts/src/index.ts:52"}, "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-ec077f27a21aea96", "name": "Stray `console.log` in TS/JS \u2014 phases/19-capstone-projects/10-multi-agent-software-team/code/ts/tests/runtime.test.ts:46", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 phases/19-capstone-projects/10-multi-agent-software-team/code/ts/tests/runtime.test.ts:46"}, "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-826d20092d689444", "name": "Stray `console.log` in TS/JS \u2014 phases/19-capstone-projects/10-multi-agent-software-team/code/ts/src/index.ts:17", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 phases/19-capstone-projects/10-multi-agent-software-team/code/ts/src/index.ts:17"}, "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-0adff22e10741564", "name": "Stray `console.log` in TS/JS \u2014 phases/19-capstone-projects/06-devops-troubleshooting-agent/code/ts/src/index.ts:59", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 phases/19-capstone-projects/06-devops-troubleshooting-agent/code/ts/src/index.ts:59"}, "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-cb1678f2c0a213de", "name": "Stray `console.log` in TS/JS \u2014 phases/19-capstone-projects/01-terminal-native-coding-agent/code/ts/src/index.ts:32", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 phases/19-capstone-projects/01-terminal-native-coding-agent/code/ts/src/index.ts:32"}, "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-6ae8c68dc7dff908", "name": "Stray `console.log` in TS/JS \u2014 phases/19-capstone-projects/01-terminal-native-coding-agent/code/ts/src/repl.ts:39", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 phases/19-capstone-projects/01-terminal-native-coding-agent/code/ts/src/repl.ts:39"}, "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-3cd87cd024c11ef3", "name": "Stray `console.log` in TS/JS \u2014 phases/19-capstone-projects/04-multimodal-document-qa/code/ts/src/index.ts:47", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 phases/19-capstone-projects/04-multimodal-document-qa/code/ts/src/index.ts:47"}, "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-49e7681b82418f8a", "name": "Stray `console.log` in TS/JS \u2014 phases/19-capstone-projects/09-code-migration-agent/code/ts/src/index.ts:19", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 phases/19-capstone-projects/09-code-migration-agent/code/ts/src/index.ts:19"}, "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-1412d3263bb2624b", "name": "Stray `console.log` in TS/JS \u2014 phases/19-capstone-projects/11-llm-observability-dashboard/code/ts/src/index.ts:67", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 phases/19-capstone-projects/11-llm-observability-dashboard/code/ts/src/index.ts:67"}, "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-0cd3758c93741fee", "name": "Stray `console.log` in TS/JS \u2014 phases/19-capstone-projects/02-rag-over-codebase/code/ts/src/index.ts:81", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 phases/19-capstone-projects/02-rag-over-codebase/code/ts/src/index.ts:81"}, "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-3302593f16cf871c", "name": "Stray `console.log` in TS/JS \u2014 phases/19-capstone-projects/03-realtime-voice-assistant/code/ts/src/index.ts:107", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 phases/19-capstone-projects/03-realtime-voice-assistant/code/ts/src/index.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-2d5575f25cfc8b71", "name": "Stray `console.log` in TS/JS \u2014 phases/19-capstone-projects/03-realtime-voice-assistant/code/ts/src/orchestrator.ts:154", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 phases/19-capstone-projects/03-realtime-voice-assistant/code/ts/src/orchestrator.ts:154"}, "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-9ee0978b7ad7373a", "name": "Stray `console.log` in TS/JS \u2014 phases/13-tools-and-protocols/01-the-tool-interface/code/main.ts:206", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 phases/13-tools-and-protocols/01-the-tool-interface/code/main.ts:206"}, "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-3ecbbc92204469b3", "name": "Stray `console.log` in TS/JS \u2014 phases/13-tools-and-protocols/19-a2a-protocol/code/main.ts:107", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 phases/13-tools-and-protocols/19-a2a-protocol/code/main.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-cf16cd3a14861551", "name": "Stray `console.log` in TS/JS \u2014 phases/13-tools-and-protocols/07-building-an-mcp-server/code/main.ts:298", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 phases/13-tools-and-protocols/07-building-an-mcp-server/code/main.ts:298"}, "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-072b3c2c2add441a", "name": "Stray `console.log` in TS/JS \u2014 phases/05-nlp-foundations-to-advanced/19-subword-tokenization/code/main.ts:174", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 phases/05-nlp-foundations-to-advanced/19-subword-tokenization/code/main.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-d19289461ab40a2c", "name": "Stray `console.log` in TS/JS \u2014 phases/05-nlp-foundations-to-advanced/23-chunking-strategies-rag/code/main.ts:169", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 phases/05-nlp-foundations-to-advanced/23-chunking-strategies-rag/code/main.ts:169"}, "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-1bbe4b4eb824f20b", "name": "Stray `console.log` in TS/JS \u2014 phases/14-agent-engineering/01-the-agent-loop/code/main.ts:143", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 phases/14-agent-engineering/01-the-agent-loop/code/main.ts:143"}, "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-5960f3f6733ecf4b", "name": "Stray `console.log` in TS/JS \u2014 phases/14-agent-engineering/06-tool-use-and-function-calling/code/main.ts:204", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 phases/14-agent-engineering/06-tool-use-and-function-calling/code/main.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-8d97ad7142627c89", "name": "Stray `console.log` in TS/JS \u2014 phases/14-agent-engineering/13-langgraph-stateful-graphs/code/main.ts:187", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 phases/14-agent-engineering/13-langgraph-stateful-graphs/code/main.ts:187"}, "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-bd83bd835d86cdd3", "name": "Stray `console.log` in TS/JS \u2014 phases/16-multi-agent-and-swarms/01-why-multi-agent/code/single_vs_multi.ts:228", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 phases/16-multi-agent-and-swarms/01-why-multi-agent/code/single_vs_multi.ts:228"}, "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-03b696f2b0a5297c", "name": "Stray `console.log` in TS/JS \u2014 phases/16-multi-agent-and-swarms/03-communication-protocols/code/main.ts:681", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 phases/16-multi-agent-and-swarms/03-communication-protocols/code/main.ts:681"}, "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-d61d02743bbce821", "name": "Stray `console.log` in TS/JS \u2014 phases/11-llm-engineering/12-guardrails/code/main.ts:351", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 phases/11-llm-engineering/12-guardrails/code/main.ts:351"}, "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-1df528d7d48c045a", "name": "Stray `console.log` in TS/JS \u2014 phases/11-llm-engineering/04-embeddings/code/main.ts:249", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 phases/11-llm-engineering/04-embeddings/code/main.ts:249"}, "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-bc8d180f0e85a1dd", "name": "Stray `console.log` in TS/JS \u2014 phases/11-llm-engineering/01-prompt-engineering/code/main.ts:360", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 phases/11-llm-engineering/01-prompt-engineering/code/main.ts:360"}, "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-c632866472abb1ee", "name": "Stray `console.log` in TS/JS \u2014 phases/11-llm-engineering/09-function-calling/code/main.ts:324", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 phases/11-llm-engineering/09-function-calling/code/main.ts:324"}, "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-135f08e81661ae28", "name": "Stray `console.log` in TS/JS \u2014 phases/17-infrastructure-and-production/20-shadow-canary-progressive/code/main.ts:224", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 phases/17-infrastructure-and-production/20-shadow-canary-progressive/code/main.ts:224"}, "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-396efdad02b8c0f0", "name": "Stray `console.log` in TS/JS \u2014 phases/17-infrastructure-and-production/16-model-routing/code/main.ts:326", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 phases/17-infrastructure-and-production/16-model-routing/code/main.ts:326"}, "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-2f8f335d6b50ea5c", "name": "Stray `console.log` in TS/JS \u2014 phases/17-infrastructure-and-production/19-ai-gateways/code/main.ts:362", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 phases/17-infrastructure-and-production/19-ai-gateways/code/main.ts:362"}, "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-4b0896a9b50e4625", "name": "Stray `console.log` in TS/JS \u2014 phases/17-infrastructure-and-production/14-prompt-semantic-caching/code/main.ts:308", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 phases/17-infrastructure-and-production/14-prompt-semantic-caching/code/main.ts:308"}, "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-c0c84c17a18efa92", "name": "Stray `console.log` in TS/JS \u2014 phases/17-infrastructure-and-production/15-batch-apis/code/main.ts:154", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 phases/17-infrastructure-and-production/15-batch-apis/code/main.ts:154"}, "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-d2bdd29d21ef1e48", "name": "Stray `console.log` in TS/JS \u2014 phases/17-infrastructure-and-production/13-llm-observability/code/main.ts:119", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 phases/17-infrastructure-and-production/13-llm-observability/code/main.ts:119"}, "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-d63da3583b14afc0", "name": "Dockerfile runs as root: Dockerfile", "shortDescription": {"text": "Dockerfile runs as root: Dockerfile"}, "fullDescription": {"text": "No non-root USER set. Containers running as root expand the blast radius of any vulnerability inside the image."}, "properties": {"scanner": "scanner-primary", "layer": "hardware", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-8987d6d1c30c7202", "name": "Docker base image is tag-pinned but not digest-pinned: node:20-alpine", "shortDescription": {"text": "Docker base image is tag-pinned but not digest-pinned: node:20-alpine"}, "fullDescription": {"text": "Container tags can be retagged upstream. Pin production base images to a reviewed digest (`image@sha256:...`) when reproducibility and supply-chain integrity matter."}, "properties": {"scanner": "scanner-primary", "layer": "hardware", "severity": "low", "confidence": 1.0}}, {"id": "scanner-7c7c999dc346856d", "name": "Docker base image is tag-pinned but not digest-pinned: caddy:2-alpine", "shortDescription": {"text": "Docker base image is tag-pinned but not digest-pinned: caddy:2-alpine"}, "fullDescription": {"text": "Container tags can be retagged upstream. Pin production base images to a reviewed digest (`image@sha256:...`) when reproducibility and supply-chain integrity matter."}, "properties": {"scanner": "scanner-primary", "layer": "hardware", "severity": "low", "confidence": 1.0}}, {"id": "scanner-1f1c7c62528c7ddd", "name": "Docker base image is tag-pinned but not digest-pinned: node:20-alpine", "shortDescription": {"text": "Docker base image is tag-pinned but not digest-pinned: node:20-alpine"}, "fullDescription": {"text": "Container tags can be retagged upstream. Pin production base images to a reviewed digest (`image@sha256:...`) when reproducibility and supply-chain integrity matter."}, "properties": {"scanner": "scanner-primary", "layer": "hardware", "severity": "low", "confidence": 1.0}}, {"id": "scanner-8c25f9a51a830a1e", "name": "Dockerfile runs as root: phases/00-setup-and-tooling/07-docker-for-ai/code/Dockerfile", "shortDescription": {"text": "Dockerfile runs as root: phases/00-setup-and-tooling/07-docker-for-ai/code/Dockerfile"}, "fullDescription": {"text": "No non-root USER set. Containers running as root expand the blast radius of any vulnerability inside the image."}, "properties": {"scanner": "scanner-primary", "layer": "hardware", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-8f7ded22e2cf2baa", "name": "Docker base image is tag-pinned but not digest-pinned: nvidia/cuda:12.4.1-devel-ubuntu22.04", "shortDescription": {"text": "Docker base image is tag-pinned but not digest-pinned: nvidia/cuda:12.4.1-devel-ubuntu22.04"}, "fullDescription": {"text": "Container tags can be retagged upstream. Pin production base images to a reviewed digest (`image@sha256:...`) when reproducibility and supply-chain integrity matter."}, "properties": {"scanner": "scanner-primary", "layer": "hardware", "severity": "low", "confidence": 1.0}}, {"id": "scanner-aa5acaa49eb8315b", "name": "Containers defined but no K8s/orchestration manifest found", "shortDescription": {"text": "Containers defined but no K8s/orchestration manifest found"}, "fullDescription": {"text": "Repo has Dockerfiles/compose but no Kubernetes/Nomad manifests. If the target deployment is K8s, the manifests may live in a separate ops repo."}, "properties": {"scanner": "scanner-primary", "layer": "hardware", "severity": "low", "confidence": 1.0}}, {"id": "scanner-21aefa35488c3e14", "name": "Insecure pattern 'direct_innerhtml_assignment' in site/cmdpalette.js:235", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in site/cmdpalette.js:235"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-4e42e997ea619b54", "name": "Insecure pattern 'direct_innerhtml_assignment' in site/pet.js:287", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in site/pet.js:287"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-b669db336261adc5", "name": "Insecure pattern 'direct_innerhtml_assignment' in site/checkout.js:95", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in site/checkout.js:95"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-12949b2e0fac6bdf", "name": "Insecure pattern 'local_storage_auth_token' in site/checkout.js:83", "shortDescription": {"text": "Insecure pattern 'local_storage_auth_token' in site/checkout.js:83"}, "fullDescription": {"text": "Found a known-risky pattern (local_storage_auth_token). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-bda1d7077e0e6436", "name": "Insecure pattern 'direct_innerhtml_assignment' in site/app.js:134", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in site/app.js:134"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-25e872df34d6de00", "name": "Insecure pattern 'direct_innerhtml_assignment' in site/plan.html:669", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in site/plan.html:669"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-a8f694357b3ba2e9", "name": "Insecure pattern 'direct_innerhtml_assignment' in site/lesson.html:2032", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in site/lesson.html:2032"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-9963a6c49e8da728", "name": "Insecure pattern 'insert_adjacent_html' in site/lesson.html:3122", "shortDescription": {"text": "Insecure pattern 'insert_adjacent_html' in site/lesson.html:3122"}, "fullDescription": {"text": "Found a known-risky pattern (insert_adjacent_html). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-e456cf8712471a02", "name": "Insecure pattern 'direct_innerhtml_assignment' in site/glossary.html:288", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in site/glossary.html:288"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-dbfd78296310ec42", "name": "Insecure pattern 'direct_innerhtml_assignment' in site/prereqs.html:990", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in site/prereqs.html:990"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-697a3d43cfbe4d1a", "name": "Insecure pattern 'direct_innerhtml_assignment' in site/catalog.html:430", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in site/catalog.html:430"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-5b8a1d1c217dfe39", "name": "Insecure pattern 'node_child_process' in phases/19-capstone-projects/10-multi-agent-software-team/code/ts/README.md:14", "shortDescription": {"text": "Insecure pattern 'node_child_process' in phases/19-capstone-projects/10-multi-agent-software-team/code/ts/README.md:14"}, "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-50c5b162ceed53ba", "name": "Insecure pattern 'node_child_process' in phases/19-capstone-projects/10-multi-agent-software-team/code/ts/src/runtime.ts", "shortDescription": {"text": "Insecure pattern 'node_child_process' in phases/19-capstone-projects/10-multi-agent-software-team/code/ts/src/runtime.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-ab09ae565e85d31b", "name": "Insecure pattern 'subprocess_shell_true' in phases/19-capstone-projects/01-terminal-native-coding-agent/code/main.py:116", "shortDescription": {"text": "Insecure pattern 'subprocess_shell_true' in phases/19-capstone-projects/01-terminal-native-coding-agent/code/main.py:116"}, "fullDescription": {"text": "Found a known-risky pattern (subprocess_shell_true). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-a1c065e56f376099", "name": "Insecure pattern 'subprocess_shell_true' in phases/19-capstone-projects/26-sandbox-runner-denylist/quiz.json:45", "shortDescription": {"text": "Insecure pattern 'subprocess_shell_true' in phases/19-capstone-projects/26-sandbox-runner-denylist/quiz.json:45"}, "fullDescription": {"text": "Found a known-risky pattern (subprocess_shell_true). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-49a977c9e64b2b8d", "name": "Insecure pattern 'subprocess_shell_true' in phases/19-capstone-projects/26-sandbox-runner-denylist/code/main.py:191", "shortDescription": {"text": "Insecure pattern 'subprocess_shell_true' in phases/19-capstone-projects/26-sandbox-runner-denylist/code/main.py:191"}, "fullDescription": {"text": "Found a known-risky pattern (subprocess_shell_true). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-c4745110fb82fce8", "name": "Insecure pattern 'exec_used' in phases/19-capstone-projects/49-lm-eval-harness/code/main.py:224", "shortDescription": {"text": "Insecure pattern 'exec_used' in phases/19-capstone-projects/49-lm-eval-harness/code/main.py:224"}, "fullDescription": {"text": "Found a known-risky pattern (exec_used). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-aa00b236173b7b21", "name": "Insecure pattern 'exec_used' in phases/15-autonomous-systems/08-bounded-self-improvement/code/main.py:60", "shortDescription": {"text": "Insecure pattern 'exec_used' in phases/15-autonomous-systems/08-bounded-self-improvement/code/main.py:60"}, "fullDescription": {"text": "Found a known-risky pattern (exec_used). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-0a06b0d2f1677291", "name": "Possible secret in phases/15-autonomous-systems/18-llama-guard/code/main.py", "shortDescription": {"text": "Possible secret in phases/15-autonomous-systems/18-llama-guard/code/main.py"}, "fullDescription": {"text": "Detected pattern matching openai_or_anthropic_key. Rotate the credential and move to a secret manager."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "critical", "confidence": 1.0}}, {"id": "scanner-dec5d3892be78a4c", "name": "Insecure pattern 'exec_used' in phases/15-autonomous-systems/10-claude-code-permission-modes/code/main.py:46", "shortDescription": {"text": "Insecure pattern 'exec_used' in phases/15-autonomous-systems/10-claude-code-permission-modes/code/main.py:46"}, "fullDescription": {"text": "Found a known-risky pattern (exec_used). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-2b63ad64841c6ef2", "name": "Insecure pattern 'node_child_process' in phases/00-setup-and-tooling/01-dev-environment/code/verify.ts:5", "shortDescription": {"text": "Insecure pattern 'node_child_process' in phases/00-setup-and-tooling/01-dev-environment/code/verify.ts:5"}, "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-3a9e93b68b5690b5", "name": "Insecure pattern 'exec_used' in phases/13-tools-and-protocols/07-building-an-mcp-server/code/main.ts:185", "shortDescription": {"text": "Insecure pattern 'exec_used' in phases/13-tools-and-protocols/07-building-an-mcp-server/code/main.ts:185"}, "fullDescription": {"text": "Found a known-risky pattern (exec_used). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-94991bb8bd8ad1b0", "name": "Insecure pattern 'exec_used' in phases/18-ethics-safety-alignment/16-red-team-tooling-garak-llamaguard-pyrit/code/main.p", "shortDescription": {"text": "Insecure pattern 'exec_used' in phases/18-ethics-safety-alignment/16-red-team-tooling-garak-llamaguard-pyrit/code/main.py:35"}, "fullDescription": {"text": "Found a known-risky pattern (exec_used). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-fa450f54daa35f58", "name": "Insecure pattern 'eval_used' in phases/18-ethics-safety-alignment/08-in-context-scheming-frontier-models/code/main.py:12", "shortDescription": {"text": "Insecure pattern 'eval_used' in phases/18-ethics-safety-alignment/08-in-context-scheming-frontier-models/code/main.py:124"}, "fullDescription": {"text": "Found a known-risky pattern (eval_used). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-7b850224f5b9772a", "name": "Insecure pattern 'new_function_used' in phases/14-agent-engineering/01-the-agent-loop/code/main.ts:58", "shortDescription": {"text": "Insecure pattern 'new_function_used' in phases/14-agent-engineering/01-the-agent-loop/code/main.ts:58"}, "fullDescription": {"text": "Found a known-risky pattern (new_function_used). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-1e367ff5e8488d30", "name": "Insecure pattern 'eval_used' in phases/14-agent-engineering/01-the-agent-loop/code/main.py:61", "shortDescription": {"text": "Insecure pattern 'eval_used' in phases/14-agent-engineering/01-the-agent-loop/code/main.py:61"}, "fullDescription": {"text": "Found a known-risky pattern (eval_used). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-4972a3377d88f498", "name": "Insecure pattern 'eval_used' in phases/14-agent-engineering/14-autogen-actor-model/code/main.py:85", "shortDescription": {"text": "Insecure pattern 'eval_used' in phases/14-agent-engineering/14-autogen-actor-model/code/main.py:85"}, "fullDescription": {"text": "Found a known-risky pattern (eval_used). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-516e9de0fd461c49", "name": "Insecure pattern 'exec_used' in phases/16-multi-agent-and-swarms/08-role-specialization/code/main.py:74", "shortDescription": {"text": "Insecure pattern 'exec_used' in phases/16-multi-agent-and-swarms/08-role-specialization/code/main.py:74"}, "fullDescription": {"text": "Found a known-risky pattern (exec_used). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-93215a01a51049d7", "name": "Insecure pattern 'eval_used' in phases/10-llms-from-scratch/09-constitutional-ai-self-improvement/code/main.py:79", "shortDescription": {"text": "Insecure pattern 'eval_used' in phases/10-llms-from-scratch/09-constitutional-ai-self-improvement/code/main.py:79"}, "fullDescription": {"text": "Found a known-risky pattern (eval_used). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-5995368c67b7353e", "name": "Insecure pattern 'eval_used' in phases/03-deep-learning-core/10-mini-framework/exercises.json:15", "shortDescription": {"text": "Insecure pattern 'eval_used' in phases/03-deep-learning-core/10-mini-framework/exercises.json:15"}, "fullDescription": {"text": "Found a known-risky pattern (eval_used). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-3b6dc379488ca9bd", "name": "Insecure pattern 'eval_used' in phases/11-llm-engineering/02-few-shot-cot/code/advanced_prompting.py:324", "shortDescription": {"text": "Insecure pattern 'eval_used' in phases/11-llm-engineering/02-few-shot-cot/code/advanced_prompting.py:324"}, "fullDescription": {"text": "Found a known-risky pattern (eval_used). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-51ca21268b7c7170", "name": "Insecure pattern 'eval_used' in phases/11-llm-engineering/16-langgraph-state-machines/code/main.py:55", "shortDescription": {"text": "Insecure pattern 'eval_used' in phases/11-llm-engineering/16-langgraph-state-machines/code/main.py:55"}, "fullDescription": {"text": "Found a known-risky pattern (eval_used). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-26223f85659796e1", "name": "Insecure pattern 'eval_used' in phases/11-llm-engineering/09-function-calling/code/function_calling.py:28", "shortDescription": {"text": "Insecure pattern 'eval_used' in phases/11-llm-engineering/09-function-calling/code/function_calling.py:28"}, "fullDescription": {"text": "Found a known-risky pattern (eval_used). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-76c1e5ccd427ca70", "name": "Insecure pattern 'exec_used' in phases/11-llm-engineering/09-function-calling/code/function_calling.py:103", "shortDescription": {"text": "Insecure pattern 'exec_used' in phases/11-llm-engineering/09-function-calling/code/function_calling.py:103"}, "fullDescription": {"text": "Found a known-risky pattern (exec_used). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-daca0589a5b769c2", "name": "Insecure pattern 'eval_used' in phases/11-llm-engineering/09-function-calling/code/main.ts:144", "shortDescription": {"text": "Insecure pattern 'eval_used' in phases/11-llm-engineering/09-function-calling/code/main.ts:144"}, "fullDescription": {"text": "Found a known-risky pattern (eval_used). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-1cf979005ff4d9e9", "name": "Insecure pattern 'new_function_used' in phases/11-llm-engineering/09-function-calling/code/main.ts:62", "shortDescription": {"text": "Insecure pattern 'new_function_used' in phases/11-llm-engineering/09-function-calling/code/main.ts:62"}, "fullDescription": {"text": "Found a known-risky pattern (new_function_used). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-a31b7f379dfffe0e", "name": "Insecure pattern 'node_child_process' in phases/11-llm-engineering/09-function-calling/code/main.ts:356", "shortDescription": {"text": "Insecure pattern 'node_child_process' in phases/11-llm-engineering/09-function-calling/code/main.ts:356"}, "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-e36351d2b9f0f64d", "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-65bbd20730ca1924", "name": "Very large file: site/data.js (12958 lines)", "shortDescription": {"text": "Very large file: site/data.js (12958 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-ea3b5e389d8c9c0f", "name": "Low test-to-source ratio", "shortDescription": {"text": "Low test-to-source ratio"}, "fullDescription": {"text": "102 tests / 649 src (ratio 0.16)."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-3d493ceced52ef9a", "name": "Node manifest has dependencies but no lockfile: phases/19-capstone-projects/08-production-rag-chatbot/code/ts/package.js", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: phases/19-capstone-projects/08-production-rag-chatbot/code/ts/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-c45acbf9fc1a8f1d", "name": "Node manifest has dependencies but no lockfile: phases/19-capstone-projects/17-personal-ai-tutor/code/ts/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: phases/19-capstone-projects/17-personal-ai-tutor/code/ts/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-9378d4e875191d92", "name": "Node manifest has dependencies but no lockfile: phases/19-capstone-projects/10-multi-agent-software-team/code/ts/package", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: phases/19-capstone-projects/10-multi-agent-software-team/code/ts/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-124420085d989491", "name": "Node manifest has dependencies but no lockfile: phases/19-capstone-projects/06-devops-troubleshooting-agent/code/ts/pack", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: phases/19-capstone-projects/06-devops-troubleshooting-agent/code/ts/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-58d5b6b73e374943", "name": "Node manifest has dependencies but no lockfile: phases/19-capstone-projects/01-terminal-native-coding-agent/code/ts/pack", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: phases/19-capstone-projects/01-terminal-native-coding-agent/code/ts/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-8cbfa1c323c2c976", "name": "Node manifest has dependencies but no lockfile: phases/19-capstone-projects/12-video-understanding-pipeline/code/ts/pack", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: phases/19-capstone-projects/12-video-understanding-pipeline/code/ts/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-1ad6c8e987bb7b30", "name": "Node manifest has dependencies but no lockfile: phases/19-capstone-projects/04-multimodal-document-qa/code/ts/package.js", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: phases/19-capstone-projects/04-multimodal-document-qa/code/ts/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-b83d2a85e2b70405", "name": "Node manifest has dependencies but no lockfile: phases/19-capstone-projects/09-code-migration-agent/code/ts/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: phases/19-capstone-projects/09-code-migration-agent/code/ts/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-41a26d2413740f64", "name": "Node manifest has dependencies but no lockfile: phases/19-capstone-projects/11-llm-observability-dashboard/code/ts/packa", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: phases/19-capstone-projects/11-llm-observability-dashboard/code/ts/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-cf805e6708a20a2c", "name": "Node manifest has dependencies but no lockfile: phases/19-capstone-projects/02-rag-over-codebase/code/ts/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: phases/19-capstone-projects/02-rag-over-codebase/code/ts/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-7c3a0dc335a57020", "name": "Node manifest has dependencies but no lockfile: phases/19-capstone-projects/13-mcp-server-with-registry/code/ts/package.", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: phases/19-capstone-projects/13-mcp-server-with-registry/code/ts/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-667cd49bb13c2404", "name": "Node manifest has dependencies but no lockfile: phases/19-capstone-projects/03-realtime-voice-assistant/code/ts/package.", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: phases/19-capstone-projects/03-realtime-voice-assistant/code/ts/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-a3581c9f219a99ab", "name": "Node manifest has dependencies but no lockfile: phases/19-capstone-projects/16-github-issue-to-pr-agent/code/ts/package.", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: phases/19-capstone-projects/16-github-issue-to-pr-agent/code/ts/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 11582 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 105 placeholder/mock markers across 62 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-9d79c4077342a7d0", "name": "Runtime service client appears to use placeholder configuration", "shortDescription": {"text": "Runtime service client appears to use placeholder configuration"}, "fullDescription": {"text": "A runtime source file appears to wire Supabase/Firebase/AI/payment-style clients to placeholder URLs, keys, or fallback values. In the Fable corpus this often means the UI/API shape is present while the backend service is not actually configured."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-2d0c7b7ab8f8aacf", "name": "Critical user flow still appears backed by mock or placeholder data", "shortDescription": {"text": "Critical user flow still appears backed by mock or placeholder data"}, "fullDescription": {"text": "A payment/auth/admin/order/billing-style flow contains mock, fake, TODO, dummy, or placeholder markers in runtime source. In the Fable corpus this is a high-leverage completeness smell: the app can look finished while the money, identity, or tenant flow is still scaffolded."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-749d4bc1bd66df5f", "name": "Agent instructions exist but release-hardening basics are missing", "shortDescription": {"text": "Agent instructions exist but release-hardening basics are missing"}, "fullDescription": {"text": "AI-coder instruction files were found, but the repo is missing lockfile. Treat this as a contract gap: the agent is guided, but the generated output is not yet guarded by the controls that make it repeatable."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ea8f3013f588db25", "name": "Shallow git history limits provenance confidence", "shortDescription": {"text": "Shallow git history limits provenance confidence"}, "fullDescription": {"text": "The repository is a shallow clone. Origin/evolution analysis cannot distinguish fresh generation, imported legacy code, or long-lived human code with high confidence."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-8424db9c75e04ba4", "name": "Very short observed git history", "shortDescription": {"text": "Very short observed git history"}, "fullDescription": {"text": "The repo has multiple source files but two or fewer visible commits. This is not a failure by itself, but it lowers confidence in evolution-based diagnosis."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0001bb99a40a06e7", "name": "Commented-code block (5 lines) in site/checkout.js:44", "shortDescription": {"text": "Commented-code block (5 lines) in site/checkout.js:44"}, "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-da3899da2ebbd641", "name": "Commented-code block (5 lines) in site/app.js:139", "shortDescription": {"text": "Commented-code block (5 lines) in site/app.js:139"}, "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-ca75232cdea7cbb1", "name": "Legacy-named symbol `\u03c0_old` in site/data.js:1862", "shortDescription": {"text": "Legacy-named symbol `\u03c0_old` in site/data.js:1862"}, "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-3522583133a5760e", "name": "Commented-code block (5 lines) in site/build.js:85", "shortDescription": {"text": "Commented-code block (5 lines) in site/build.js:85"}, "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-c88a7281497a02ec", "name": "Commented-code block (6 lines) in phases/19-capstone-projects/08-production-rag-chatbot/code/ts/src/index.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in phases/19-capstone-projects/08-production-rag-chatbot/code/ts/src/index.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-47f2f1d8f7516e7b", "name": "Commented-code block (6 lines) in phases/19-capstone-projects/17-personal-ai-tutor/code/ts/src/index.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in phases/19-capstone-projects/17-personal-ai-tutor/code/ts/src/index.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-51577f024aecfd55", "name": "Network/subprocess call without timeout or try/except \u2014 phases/19-capstone-projects/72-code-exec-metric/code/main.py:313", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 phases/19-capstone-projects/72-code-exec-metric/code/main.py:313"}, "fullDescription": {"text": "`subprocess.run(...)` here lacks both a `timeout=` arg and an enclosing try/except. This is exactly the class of bug that took down our git-clone earlier (HTTP/2 stream cancel surfaced as a fatal). Add a `timeout=` and wrap in try/except, or use a wrapper that retries."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-1d97cd0e41894294", "name": "Commented-code block (6 lines) in phases/19-capstone-projects/06-devops-troubleshooting-agent/code/ts/src/index.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in phases/19-capstone-projects/06-devops-troubleshooting-agent/code/ts/src/index.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-02fe635ea6b4869a", "name": "Commented-code block (5 lines) in phases/19-capstone-projects/01-terminal-native-coding-agent/code/ts/src/index.ts:3", "shortDescription": {"text": "Commented-code block (5 lines) in phases/19-capstone-projects/01-terminal-native-coding-agent/code/ts/src/index.ts:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a8568ea43264b8c9", "name": "Commented-code block (6 lines) in phases/19-capstone-projects/12-video-understanding-pipeline/code/ts/src/index.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in phases/19-capstone-projects/12-video-understanding-pipeline/code/ts/src/index.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-766be6012d53fcdb", "name": "`fetch()` without try/.catch or AbortSignal \u2014 phases/19-capstone-projects/12-video-understanding-pipeline/code/ts/src/in", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 phases/19-capstone-projects/12-video-understanding-pipeline/code/ts/src/index.ts:51"}, "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-e0b5feb549130319", "name": "Commented-code block (6 lines) in phases/19-capstone-projects/04-multimodal-document-qa/code/ts/src/index.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in phases/19-capstone-projects/04-multimodal-document-qa/code/ts/src/index.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6277722fc37d9534", "name": "Legacy-named symbol `transform_v1` in phases/19-capstone-projects/24-plan-execute-control-flow/code/tests/test_agent.py:", "shortDescription": {"text": "Legacy-named symbol `transform_v1` in phases/19-capstone-projects/24-plan-execute-control-flow/code/tests/test_agent.py:50"}, "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-dd55768cbd11529e", "name": "Stub function `reverse_list` (body is just `pass`/`return`) \u2014 phases/19-capstone-projects/27-eval-harness-fixture-tasks/", "shortDescription": {"text": "Stub function `reverse_list` (body is just `pass`/`return`) \u2014 phases/19-capstone-projects/27-eval-harness-fixture-tasks/code/tasks/task_004_empty_reverse/buggy/reverse.py:1"}, "fullDescription": {"text": "Likely an AI scaffold that was never filled in. Remove or implement."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-8f558a9d563c9ada", "name": "Commented-code block (5 lines) in phases/19-capstone-projects/02-rag-over-codebase/code/ts/src/index.ts:3", "shortDescription": {"text": "Commented-code block (5 lines) in phases/19-capstone-projects/02-rag-over-codebase/code/ts/src/index.ts:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-277566c2b3f81874", "name": "Legacy-named symbol `idxs_copy` in phases/19-capstone-projects/39-instruction-tuning-sft/code/main.py:357", "shortDescription": {"text": "Legacy-named symbol `idxs_copy` in phases/19-capstone-projects/39-instruction-tuning-sft/code/main.py:357"}, "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-526f8bc6eceba973", "name": "Stub function `close` (body is just `pass`/`return`) \u2014 phases/19-capstone-projects/28-observability-otel-traces/code/mai", "shortDescription": {"text": "Stub function `close` (body is just `pass`/`return`) \u2014 phases/19-capstone-projects/28-observability-otel-traces/code/main.py:174"}, "fullDescription": {"text": "Likely an AI scaffold that was never filled in. Remove or implement."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-b0aa08ad0540e102", "name": "Commented-code block (7 lines) in phases/19-capstone-projects/13-mcp-server-with-registry/code/ts/src/index.ts:1", "shortDescription": {"text": "Commented-code block (7 lines) in phases/19-capstone-projects/13-mcp-server-with-registry/code/ts/src/index.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7c7349fe5eb43454", "name": "Commented-code block (5 lines) in phases/19-capstone-projects/03-realtime-voice-assistant/code/ts/src/index.ts:3", "shortDescription": {"text": "Commented-code block (5 lines) in phases/19-capstone-projects/03-realtime-voice-assistant/code/ts/src/index.ts:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6f562bc437cd5924", "name": "Commented-code block (6 lines) in phases/19-capstone-projects/16-github-issue-to-pr-agent/code/ts/src/index.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in phases/19-capstone-projects/16-github-issue-to-pr-agent/code/ts/src/index.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-25961559ea4266e1", "name": "`fetch()` without try/.catch or AbortSignal \u2014 phases/19-capstone-projects/16-github-issue-to-pr-agent/code/ts/src/index.", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 phases/19-capstone-projects/16-github-issue-to-pr-agent/code/ts/src/index.ts:119"}, "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-c4fc5c9ec85182fd", "name": "Legacy-named symbol `idxs_copy` in phases/19-capstone-projects/38-classifier-finetuning/code/main.py:272", "shortDescription": {"text": "Legacy-named symbol `idxs_copy` in phases/19-capstone-projects/38-classifier-finetuning/code/main.py:272"}, "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-156bbb8ee46290a7", "name": "Commented-code block (5 lines) in phases/15-autonomous-systems/18-llama-guard/code/main.py:59", "shortDescription": {"text": "Commented-code block (5 lines) in phases/15-autonomous-systems/18-llama-guard/code/main.py: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-697acd1bb3d3f226", "name": "Commented-code block (9 lines) in phases/15-autonomous-systems/16-checkpoints-rollback/code/main.py:107", "shortDescription": {"text": "Commented-code block (9 lines) in phases/15-autonomous-systems/16-checkpoints-rollback/code/main.py:107"}, "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-7b8c8de315d236ab", "name": "Commented-code block (5 lines) in phases/15-autonomous-systems/06-automated-alignment-research/code/main.py:108", "shortDescription": {"text": "Commented-code block (5 lines) in phases/15-autonomous-systems/06-automated-alignment-research/code/main.py:108"}, "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-342b6b1eabdd2d82", "name": "Commented-code block (5 lines) in phases/15-autonomous-systems/05-ai-scientist-v2/code/main.py:65", "shortDescription": {"text": "Commented-code block (5 lines) in phases/15-autonomous-systems/05-ai-scientist-v2/code/main.py:65"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-cf4a9d0907f25db8", "name": "Network/subprocess call without timeout or try/except \u2014 phases/00-setup-and-tooling/04-apis-and-keys/code/first_api_call", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 phases/00-setup-and-tooling/04-apis-and-keys/code/first_api_call.py:42"}, "fullDescription": {"text": "`urllib.request.urlopen(...)` here lacks both a `timeout=` arg and an enclosing try/except. This is exactly the class of bug that took down our git-clone earlier (HTTP/2 stream cancel surfaced as a fatal). Add a `timeout=` and wrap in try/except, or use a wrapper that retries."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-a6b438d44d6d8665", "name": "Commented-code block (6 lines) in phases/00-setup-and-tooling/04-apis-and-keys/code/first_api_call.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in phases/00-setup-and-tooling/04-apis-and-keys/code/first_api_call.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6e5620428d34ac22", "name": "`fetch()` without try/.catch or AbortSignal \u2014 phases/00-setup-and-tooling/04-apis-and-keys/code/first_api_call.ts:6", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 phases/00-setup-and-tooling/04-apis-and-keys/code/first_api_call.ts:6"}, "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-5bd804014444b23a", "name": "Legacy-named symbol `exp_old` in phases/07-transformers-deep-dive/12-kv-cache-flash-attention/code/main.py:48", "shortDescription": {"text": "Legacy-named symbol `exp_old` in phases/07-transformers-deep-dive/12-kv-cache-flash-attention/code/main.py:48"}, "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-faeb1d376db2ce4a", "name": "Network/subprocess call without timeout or try/except \u2014 phases/13-tools-and-protocols/09-mcp-transports/code/main.py:200", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 phases/13-tools-and-protocols/09-mcp-transports/code/main.py:200"}, "fullDescription": {"text": "`urllib.request.urlopen(...)` here lacks both a `timeout=` arg and an enclosing try/except. This is exactly the class of bug that took down our git-clone earlier (HTTP/2 stream cancel surfaced as a fatal). Add a `timeout=` and wrap in try/except, or use a wrapper that retries."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-c24d06ab6127ddc3", "name": "Legacy-named symbol `maskrcnn_resnet50_fpn_v2` in phases/04-computer-vision/08-instance-segmentation-mask-rcnn/code/main", "shortDescription": {"text": "Legacy-named symbol `maskrcnn_resnet50_fpn_v2` in phases/04-computer-vision/08-instance-segmentation-mask-rcnn/code/main.py:47"}, "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-2d7844a8c80f5cfa", "name": "Commented-code block (7 lines) in phases/05-nlp-foundations-to-advanced/19-subword-tokenization/code/main.ts:1", "shortDescription": {"text": "Commented-code block (7 lines) in phases/05-nlp-foundations-to-advanced/19-subword-tokenization/code/main.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-8436002f496a61c2", "name": "Commented-code block (7 lines) in phases/05-nlp-foundations-to-advanced/23-chunking-strategies-rag/code/main.ts:1", "shortDescription": {"text": "Commented-code block (7 lines) in phases/05-nlp-foundations-to-advanced/23-chunking-strategies-rag/code/main.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3eebadc9dd48a70c", "name": "Stub function `on_edited` (body is just `pass`/`return`) \u2014 phases/14-agent-engineering/15-crewai-role-based-crews/code/m", "shortDescription": {"text": "Stub function `on_edited` (body is just `pass`/`return`) \u2014 phases/14-agent-engineering/15-crewai-role-based-crews/code/main.py:316"}, "fullDescription": {"text": "Likely an AI scaffold that was never filled in. Remove or implement."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-81c456788dc5f026", "name": "Commented-code block (8 lines) in phases/14-agent-engineering/18-agno-and-mastra-runtimes/code/main.ts:1", "shortDescription": {"text": "Commented-code block (8 lines) in phases/14-agent-engineering/18-agno-and-mastra-runtimes/code/main.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d9aafff71d58ab9c", "name": "Legacy-named symbol `_craft_iron_pick_v1` in phases/14-agent-engineering/10-skill-libraries-voyager/code/main.py:125", "shortDescription": {"text": "Legacy-named symbol `_craft_iron_pick_v1` in phases/14-agent-engineering/10-skill-libraries-voyager/code/main.py:125"}, "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-6e9e0a7f7cf51a42", "name": "Network/subprocess call without timeout or try/except \u2014 phases/16-multi-agent-and-swarms/12-a2a-protocol/code/main.py:12", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 phases/16-multi-agent-and-swarms/12-a2a-protocol/code/main.py:129"}, "fullDescription": {"text": "`urllib.request.urlopen(...)` here lacks both a `timeout=` arg and an enclosing try/except. This is exactly the class of bug that took down our git-clone earlier (HTTP/2 stream cancel surfaced as a fatal). Add a `timeout=` and wrap in try/except, or use a wrapper that retries."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-f41fcb08e756115e", "name": "Stub function `log_message` (body is just `pass`/`return`) \u2014 phases/16-multi-agent-and-swarms/12-a2a-protocol/code/main.", "shortDescription": {"text": "Stub function `log_message` (body is just `pass`/`return`) \u2014 phases/16-multi-agent-and-swarms/12-a2a-protocol/code/main.py:84"}, "fullDescription": {"text": "Likely an AI scaffold that was never filled in. Remove or implement."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-8e20e9297e830f65", "name": "Legacy-named symbol `diff_v1` in phases/10-llms-from-scratch/16-differential-attention-v2/code/main.py:125", "shortDescription": {"text": "Legacy-named symbol `diff_v1` in phases/10-llms-from-scratch/16-differential-attention-v2/code/main.py:125"}, "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-505637f172e07304", "name": "Network/subprocess call without timeout or try/except \u2014 phases/03-deep-learning-core/11-intro-to-pytorch/code/pytorch_in", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 phases/03-deep-learning-core/11-intro-to-pytorch/code/pytorch_intro.py:25"}, "fullDescription": {"text": "`urllib.request.urlretrieve(...)` here lacks both a `timeout=` arg and an enclosing try/except. This is exactly the class of bug that took down our git-clone earlier (HTTP/2 stream cancel surfaced as a fatal). Add a `timeout=` and wrap in try/except, or use a wrapper that retries."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-a48890876efd0588", "name": "Legacy-named symbol `rs_old` in phases/01-math-foundations/17-linear-systems/code/linear_systems.py:122", "shortDescription": {"text": "Legacy-named symbol `rs_old` in phases/01-math-foundations/17-linear-systems/code/linear_systems.py:122"}, "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-6a24067a5bde0749", "name": "Legacy-named symbol `log_pi_old` in phases/09-reinforcement-learning/09-reward-modeling-rlhf/code/main.py:106", "shortDescription": {"text": "Legacy-named symbol `log_pi_old` in phases/09-reinforcement-learning/09-reward-modeling-rlhf/code/main.py:106"}, "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-34edd1cadbb35a87", "name": "Legacy-named symbol `v_old` in phases/09-reinforcement-learning/08-ppo/code/main.py:81", "shortDescription": {"text": "Legacy-named symbol `v_old` in phases/09-reinforcement-learning/08-ppo/code/main.py:81"}, "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-aa76c908d52778db", "name": "Commented-code block (7 lines) in phases/11-llm-engineering/12-guardrails/code/main.ts:1", "shortDescription": {"text": "Commented-code block (7 lines) in phases/11-llm-engineering/12-guardrails/code/main.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-069f9af51ed02a6e", "name": "Commented-code block (7 lines) in phases/11-llm-engineering/03-structured-outputs/code/main.ts:1", "shortDescription": {"text": "Commented-code block (7 lines) in phases/11-llm-engineering/03-structured-outputs/code/main.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b4c3f75c94ba2084", "name": "Commented-code block (9 lines) in phases/11-llm-engineering/06-rag/code/main.ts:1", "shortDescription": {"text": "Commented-code block (9 lines) in phases/11-llm-engineering/06-rag/code/main.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d973b86fff66f0f4", "name": "Network/subprocess call without timeout or try/except \u2014 phases/11-llm-engineering/09-function-calling/code/function_call", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 phases/11-llm-engineering/09-function-calling/code/function_calling.py:417"}, "fullDescription": {"text": "`subprocess.run(...)` here lacks both a `timeout=` arg and an enclosing try/except. This is exactly the class of bug that took down our git-clone earlier (HTTP/2 stream cancel surfaced as a fatal). Add a `timeout=` and wrap in try/except, or use a wrapper that retries."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-db88eda2dc7eb9d6", "name": "Commented-code block (7 lines) in phases/11-llm-engineering/05-context-engineering/code/main.ts:1", "shortDescription": {"text": "Commented-code block (7 lines) in phases/11-llm-engineering/05-context-engineering/code/main.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-cc0f9d8e41b33b0e", "name": "11 env vars used in code but missing from .env.example", "shortDescription": {"text": "11 env vars used in code but missing from .env.example"}, "fullDescription": {"text": "Drift between code and config docs. The first few: `ANTHROPIC_API_KEY`, `BRANCH`, `GH_WEBHOOK_SECRET`, `LINK_CHECK_SKIP`, `MOCK`, `OPENAI_API_KEY`, `OTEL_CAPTURE_CONTENT`, `PATH` + 3 more. Add them (with a placeholder/comment) to .env.example so onboarding doesn't break."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-2c04133e54348533", "name": "Near-duplicate function bodies in 2 places", "shortDescription": {"text": "Near-duplicate function bodies in 2 places"}, "fullDescription": {"text": "Functions with the same first-5-line body hash:\nscripts/lesson_run.py:iter_lesson_dirs, scripts/audit_lessons.py:iter_lesson_dirs\n\nThis is *the* AI-coder failure mode (4\u00d7 more duplication in vibe-coded repos \u2014 see https://jw.hn/ai-code-hygiene). Consolidate or document why they're separate."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-be46ea126aa5d8dc", "name": "Near-duplicate function bodies in 3 places", "shortDescription": {"text": "Near-duplicate function bodies in 3 places"}, "fullDescription": {"text": "Functions with the same first-5-line body hash:\nphases/19-capstone-projects/69-end-to-end-rag-system/code/main.py:add, phases/19-capstone-projects/69-end-to-end-rag-system/code/main.py:add, phases/19-capstone-projects/69-end-to-end-rag-system/code/main.py:add\n\nThis is *the* AI-coder failure mode (4\u00d7 more duplication in vibe-coded repos \u2014 see https://jw.hn/ai-code-hygiene). Consolidate or document why they're separate."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-ecd86354d3c142ad", "name": "Near-duplicate function bodies in 20 places", "shortDescription": {"text": "Near-duplicate function bodies in 20 places"}, "fullDescription": {"text": "Functions with the same first-5-line body hash:\nphases/19-capstone-projects/34-transformer-block/code/main.py:forward, phases/19-capstone-projects/34-transformer-block/code/main.py:forward, phases/19-capstone-projects/34-transformer-block/code/main.py:forward, phases/19-capstone-projects/34-transformer-block/code/main.py:forward\n\nThis is *the* AI-coder failure mode (4\u00d7 more duplication in vibe-coded repos \u2014 see https://jw.hn/ai-code-hygiene). Consolidate or document why they're separate."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-49c98f7cedd9c977", "name": "Near-duplicate function bodies in 4 places", "shortDescription": {"text": "Near-duplicate function bodies in 4 places"}, "fullDescription": {"text": "Functions with the same first-5-line body hash:\nphases/19-capstone-projects/32-token-positional-embeddings/code/main.py:forward, phases/19-capstone-projects/32-token-positional-embeddings/code/main.py:forward, phases/19-capstone-projects/32-token-positional-embeddings/code/main.py:forward, phases/19-capstone-projects/32-token-positional-embeddings/code/main.py:forward\n\nThis is *the* AI-coder failure mode (4\u00d7 more duplication in vibe-coded repos \u2014 see https://jw.hn/ai-code-hygiene). Consolidate or document why they're separate."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-46969939caf8120b", "name": "Near-duplicate function bodies in 9 places", "shortDescription": {"text": "Near-duplicate function bodies in 9 places"}, "fullDescription": {"text": "Functions with the same first-5-line body hash:\nphases/19-capstone-projects/40-dpo-from-scratch/code/main.py:forward, phases/19-capstone-projects/40-dpo-from-scratch/code/main.py:forward, phases/19-capstone-projects/40-dpo-from-scratch/code/main.py:forward, phases/19-capstone-projects/41-eval-pipeline/code/main.py:forward\n\nThis is *the* AI-coder failure mode (4\u00d7 more duplication in vibe-coded repos \u2014 see https://jw.hn/ai-code-hygiene). Consolidate or document why they're separate."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-773d361609db2459", "name": "Dangling fetch: POST /api/activate (site/checkout.js:168)", "shortDescription": {"text": "Dangling fetch: POST /api/activate (site/checkout.js:168)"}, "fullDescription": {"text": "`site/checkout.js:168` calls `POST /api/activate` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/activate`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-0e969d8d06d18fa3", "name": "Dangling fetch: POST /api/issue (site/checkout.js:194)", "shortDescription": {"text": "Dangling fetch: POST /api/issue (site/checkout.js:194)"}, "fullDescription": {"text": "`site/checkout.js:194` calls `POST /api/issue` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/issue`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-71c62f13729b3c54", "name": "Dangling fetch: GET /document/10k-acme-2025 (phases/19-capstone-projects/04-multimodal-document-qa/code/ts/tests/server.", "shortDescription": {"text": "Dangling fetch: GET /document/10k-acme-2025 (phases/19-capstone-projects/04-multimodal-document-qa/code/ts/tests/server.test.ts:22)"}, "fullDescription": {"text": "`phases/19-capstone-projects/04-multimodal-document-qa/code/ts/tests/server.test.ts:22` calls `GET /document/10k-acme-2025` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/document/10k-acme-2025`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-62ccc7f0dd1c0c27", "name": "Dangling fetch: GET /document/10k-acme-2025 (phases/19-capstone-projects/04-multimodal-document-qa/code/ts/tests/server.", "shortDescription": {"text": "Dangling fetch: GET /document/10k-acme-2025 (phases/19-capstone-projects/04-multimodal-document-qa/code/ts/tests/server.test.ts:32)"}, "fullDescription": {"text": "`phases/19-capstone-projects/04-multimodal-document-qa/code/ts/tests/server.test.ts:32` calls `GET /document/10k-acme-2025` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/document/10k-acme-2025`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-93e5dc70e250c01a", "name": "Dangling fetch: GET /document/missing (phases/19-capstone-projects/04-multimodal-document-qa/code/ts/tests/server.test.t", "shortDescription": {"text": "Dangling fetch: GET /document/missing (phases/19-capstone-projects/04-multimodal-document-qa/code/ts/tests/server.test.ts:38)"}, "fullDescription": {"text": "`phases/19-capstone-projects/04-multimodal-document-qa/code/ts/tests/server.test.ts:38` calls `GET /document/missing` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/document/missing`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-a483e3f1df563d6c", "name": "Dangling fetch: GET /document/has.dot (phases/19-capstone-projects/04-multimodal-document-qa/code/ts/tests/server.test.t", "shortDescription": {"text": "Dangling fetch: GET /document/has.dot (phases/19-capstone-projects/04-multimodal-document-qa/code/ts/tests/server.test.ts:45)"}, "fullDescription": {"text": "`phases/19-capstone-projects/04-multimodal-document-qa/code/ts/tests/server.test.ts:45` calls `GET /document/has.dot` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/document/has.dot`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-ee170cea5be40f0a", "name": "Dangling fetch: POST https://api.anthropic.com/v1/messages (phases/00-setup-and-tooling/04-apis-and-keys/code/first_api_", "shortDescription": {"text": "Dangling fetch: POST https://api.anthropic.com/v1/messages (phases/00-setup-and-tooling/04-apis-and-keys/code/first_api_call.ts:74)"}, "fullDescription": {"text": "`phases/00-setup-and-tooling/04-apis-and-keys/code/first_api_call.ts:74` calls `POST https://api.anthropic.com/v1/messages` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/api.anthropic.com/v1/messages`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-4a8f762925460ea1", "name": "Unused endpoint: GET /lesson/next", "shortDescription": {"text": "Unused endpoint: GET /lesson/next"}, "fullDescription": {"text": "`phases/19-capstone-projects/17-personal-ai-tutor/code/ts/src/server.ts` declares `GET /lesson/next` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-b33b638af57cd3a9", "name": "Unused endpoint: POST /lesson/:id/submit", "shortDescription": {"text": "Unused endpoint: POST /lesson/:id/submit"}, "fullDescription": {"text": "`phases/19-capstone-projects/17-personal-ai-tutor/code/ts/src/server.ts` declares `POST /lesson/:id/submit` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-1008c575819b3d37", "name": "Unused endpoint: GET /jobs", "shortDescription": {"text": "Unused endpoint: GET /jobs"}, "fullDescription": {"text": "`phases/19-capstone-projects/12-video-understanding-pipeline/code/ts/src/server.ts` declares `GET /jobs` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-80182839f64600f5", "name": "Unused endpoint: GET /job/:id", "shortDescription": {"text": "Unused endpoint: GET /job/:id"}, "fullDescription": {"text": "`phases/19-capstone-projects/12-video-understanding-pipeline/code/ts/src/server.ts` declares `GET /job/:id` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-4c197182957464b0", "name": "Unused endpoint: GET /document/:id", "shortDescription": {"text": "Unused endpoint: GET /document/:id"}, "fullDescription": {"text": "`phases/19-capstone-projects/04-multimodal-document-qa/code/ts/src/server.ts` declares `GET /document/:id` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-d504b80adc9409ec", "name": "Unused endpoint: GET /dashboard", "shortDescription": {"text": "Unused endpoint: GET /dashboard"}, "fullDescription": {"text": "`phases/19-capstone-projects/09-code-migration-agent/code/ts/src/server.ts` declares `GET /dashboard` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-50719d00ac3cf209", "name": "Unused endpoint: GET /migrations", "shortDescription": {"text": "Unused endpoint: GET /migrations"}, "fullDescription": {"text": "`phases/19-capstone-projects/09-code-migration-agent/code/ts/src/server.ts` declares `GET /migrations` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-8e8bb263642cdbf9", "name": "Unused endpoint: GET /migrations/:id", "shortDescription": {"text": "Unused endpoint: GET /migrations/:id"}, "fullDescription": {"text": "`phases/19-capstone-projects/09-code-migration-agent/code/ts/src/server.ts` declares `GET /migrations/:id` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-07f772e4ca8f34fa", "name": "Unused endpoint: POST /trace", "shortDescription": {"text": "Unused endpoint: POST /trace"}, "fullDescription": {"text": "`phases/19-capstone-projects/11-llm-observability-dashboard/code/ts/src/server.ts` declares `POST /trace` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-6eab0e0e4e3fc0c9", "name": "Unused endpoint: GET /dashboard.json", "shortDescription": {"text": "Unused endpoint: GET /dashboard.json"}, "fullDescription": {"text": "`phases/19-capstone-projects/11-llm-observability-dashboard/code/ts/src/server.ts` declares `GET /dashboard.json` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-59f45351017a2161", "name": "Unused endpoint: GET /query", "shortDescription": {"text": "Unused endpoint: GET /query"}, "fullDescription": {"text": "`phases/19-capstone-projects/02-rag-over-codebase/code/ts/src/server.ts` declares `GET /query` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-1bb3714794b14146", "name": "Unused endpoint: POST /query", "shortDescription": {"text": "Unused endpoint: POST /query"}, "fullDescription": {"text": "`phases/19-capstone-projects/02-rag-over-codebase/code/ts/src/server.ts` declares `POST /query` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-0ae38010c60493f1", "name": "Unused endpoint: POST /webhook", "shortDescription": {"text": "Unused endpoint: POST /webhook"}, "fullDescription": {"text": "`phases/19-capstone-projects/16-github-issue-to-pr-agent/code/ts/src/server.ts` declares `POST /webhook` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}]}}, "automationDetails": {"id": "repobility/20699"}, "properties": {"repository": "SystemaOps/ai-engineering-Systemaops", "repoUrl": "https://github.com/SystemaOps/ai-engineering-Systemaops", "branch": "main"}, "results": [{"ruleId": "scanner-4a812742fd7fa6c5", "level": "note", "message": {"text": "Possibly dead Python function: check_url"}, "properties": {"repobilityId": "58f52ed55b566159", "scanner": "scanner-primary", "fingerprint": "4a812742fd7fa6c5", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/link_check.py:262"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-de021663e5cd9a35", "level": "note", "message": {"text": "Possibly dead Python function: tokenize_jsonl_path"}, "properties": {"repobilityId": "d071bb45da3373cf", "scanner": "scanner-primary", "fingerprint": "de021663e5cd9a35", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "phases/19-capstone-projects/43-hdf5-tokenized-corpus/code/main.py:437"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-be50a9b7fa2d9148", "level": "note", "message": {"text": "Possibly dead Python function: unsafe"}, "properties": {"repobilityId": "fbd6556b16d9a28c", "scanner": "scanner-primary", "fingerprint": "be50a9b7fa2d9148", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "phases/19-capstone-projects/84-refusal-evaluation/code/prompts.py:99"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-d8a76ca146ebdb64", "level": "note", "message": {"text": "Possibly dead Python function: safe"}, "properties": {"repobilityId": "6116b830eccf3b0d", "scanner": "scanner-primary", "fingerprint": "d8a76ca146ebdb64", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "phases/19-capstone-projects/84-refusal-evaluation/code/prompts.py:103"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-7d1c499b5f334e72", "level": "note", "message": {"text": "Possibly dead Python function: tool_run_shell"}, "properties": {"repobilityId": "015ac642a8f8661c", "scanner": "scanner-primary", "fingerprint": "7d1c499b5f334e72", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "phases/19-capstone-projects/01-terminal-native-coding-agent/code/main.py:115"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-98d4db7dfc6bc0f5", "level": "note", "message": {"text": "Possibly dead Python function: destructive_guard"}, "properties": {"repobilityId": "e4460943560565e4", "scanner": "scanner-primary", "fingerprint": "98d4db7dfc6bc0f5", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "phases/19-capstone-projects/01-terminal-native-coding-agent/code/main.py:164"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-173c6078fa951fb7", "level": "note", "message": {"text": "Possibly dead Python function: synthetic_loader"}, "properties": {"repobilityId": "0f1ab0328cab5e85", "scanner": "scanner-primary", "fingerprint": "173c6078fa951fb7", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "phases/19-capstone-projects/47-checkpoint-save-resume/code/main.py:70"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-cd23e412e8161988", "level": "note", "message": {"text": "Possibly dead Python function: rank_main"}, "properties": {"repobilityId": "3af70bf88460bc29", "scanner": "scanner-primary", "fingerprint": "cd23e412e8161988", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "phases/19-capstone-projects/48-distributed-fsdp-ddp/code/main.py:223"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-e5b150cc4bc96803", "level": "note", "message": {"text": "Possibly dead Python function: write_response"}, "properties": {"repobilityId": "2bdf19af562afa7e", "scanner": "scanner-primary", "fingerprint": "e5b150cc4bc96803", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "phases/19-capstone-projects/22-jsonrpc-stdio-transport/code/main.py:122"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-ce52a9913333dfc3", "level": "note", "message": {"text": "Possibly dead Python function: apply_known_fixes"}, "properties": {"repobilityId": "fa7a1b98b0156094", "scanner": "scanner-primary", "fingerprint": "ce52a9913333dfc3", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "phases/19-capstone-projects/27-eval-harness-fixture-tasks/code/main.py:290"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-5b4a787aaaa91e92", "level": "note", "message": {"text": "Possibly dead Python function: noop_candidate"}, "properties": {"repobilityId": "65976f400e28127a", "scanner": "scanner-primary", "fingerprint": "5b4a787aaaa91e92", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "phases/19-capstone-projects/27-eval-harness-fixture-tasks/code/main.py:317"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-68c154aef3525fd1", "level": "note", "message": {"text": "Possibly dead Python function: reverse_list"}, "properties": {"repobilityId": "9eca8ee357ca3e1a", "scanner": "scanner-primary", "fingerprint": "68c154aef3525fd1", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "phases/19-capstone-projects/27-eval-harness-fixture-tasks/code/tasks/task_004_empty_reverse/expected/reverse.py:1"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-3e65786ffb3f40dd", "level": "note", "message": {"text": "Possibly dead Python function: reverse_list"}, "properties": {"repobilityId": "9eca8ee357ca3e1a", "scanner": "scanner-primary", "fingerprint": "3e65786ffb3f40dd", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "phases/19-capstone-projects/27-eval-harness-fixture-tasks/code/tasks/task_004_empty_reverse/buggy/reverse.py:1"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-2600512e42a18b57", "level": "note", "message": {"text": "Possibly dead Python function: fizzbuzz"}, "properties": {"repobilityId": "4a763d673363f4af", "scanner": "scanner-primary", "fingerprint": "2600512e42a18b57", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "phases/19-capstone-projects/27-eval-harness-fixture-tasks/code/tasks/task_001_fizzbuzz_offbyone/expected/fizzbuzz.py:1"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-ce229413542e8500", "level": "note", "message": {"text": "Possibly dead Python function: fizzbuzz"}, "properties": {"repobilityId": "4a763d673363f4af", "scanner": "scanner-primary", "fingerprint": "ce229413542e8500", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "phases/19-capstone-projects/27-eval-harness-fixture-tasks/code/tasks/task_001_fizzbuzz_offbyone/buggy/fizzbuzz.py:1"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-ce935002d5258301", "level": "note", "message": {"text": "Possibly dead Python function: linked_list_length"}, "properties": {"repobilityId": "6c67c22b3d6c1797", "scanner": "scanner-primary", "fingerprint": "ce935002d5258301", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "phases/19-capstone-projects/27-eval-harness-fixture-tasks/code/tasks/task_005_linked_list_traversal/expected/linked_list.py:7"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-aa75e63ce1991472", "level": "note", "message": {"text": "Possibly dead Python function: linked_list_length"}, "properties": {"repobilityId": "6c67c22b3d6c1797", "scanner": "scanner-primary", "fingerprint": "aa75e63ce1991472", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "phases/19-capstone-projects/27-eval-harness-fixture-tasks/code/tasks/task_005_linked_list_traversal/buggy/linked_list.py:7"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-697550bc1acaf330", "level": "note", "message": {"text": "Possibly dead Python function: baseline_pipeline"}, "properties": {"repobilityId": "d4662ebc8284fbe2", "scanner": "scanner-primary", "fingerprint": "697550bc1acaf330", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "phases/19-capstone-projects/68-rag-eval-precision-recall/code/main.py:272"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-9b79afc69e633d93", "level": "note", "message": {"text": "Possibly dead Python function: hybrid_plus_rerank_pipeline"}, "properties": {"repobilityId": "44b5d1f1d1db4cca", "scanner": "scanner-primary", "fingerprint": "9b79afc69e633d93", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "phases/19-capstone-projects/68-rag-eval-precision-recall/code/main.py:324"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-5f37af56efc4f07d", "level": "note", "message": {"text": "Possibly dead Python function: inject_inf_into_first_grad"}, "properties": {"repobilityId": "50c363f572ae8429", "scanner": "scanner-primary", "fingerprint": "5f37af56efc4f07d", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "phases/19-capstone-projects/45-gradient-clipping-amp/code/main.py:361"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-06702fdeeb246417", "level": "note", "message": {"text": "Possibly dead Python function: deterministic_expander"}, "properties": {"repobilityId": "47e2e826f7ae804f", "scanner": "scanner-primary", "fingerprint": "06702fdeeb246417", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "phases/19-capstone-projects/56-iteration-scheduler/code/main.py:319"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-90db289ef1bed21a", "level": "note", "message": {"text": "Possibly dead Python function: to_envelope"}, "properties": {"repobilityId": "99d4a3a7fa6bb386", "scanner": "scanner-primary", "fingerprint": "90db289ef1bed21a", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "phases/19-capstone-projects/23-function-call-dispatcher/code/main.py:50"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-6d9cb07ca008c350", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 deploy/license-service/keygen.js:26"}, "properties": {"repobilityId": "14541a0c3a9e05ef", "scanner": "scanner-primary", "fingerprint": "6d9cb07ca008c350", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-8b957765a5936dc2", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 deploy/license-service/server.js:246"}, "properties": {"repobilityId": "cee20979921ace43", "scanner": "scanner-primary", "fingerprint": "8b957765a5936dc2", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-5ccab30aa14343e1", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 site/build.js:492"}, "properties": {"repobilityId": "9ea7157acfc42c3b", "scanner": "scanner-primary", "fingerprint": "5ccab30aa14343e1", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-a237b75f9f872a1d", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 phases/19-capstone-projects/08-production-rag-chatbot/code/ts/src/index.ts:52"}, "properties": {"repobilityId": "1a5e19f16949c3f3", "scanner": "scanner-primary", "fingerprint": "a237b75f9f872a1d", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-ec077f27a21aea96", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 phases/19-capstone-projects/10-multi-agent-software-team/code/ts/tests/runtime.test.ts:46"}, "properties": {"repobilityId": "3040f8424772f17e", "scanner": "scanner-primary", "fingerprint": "ec077f27a21aea96", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-826d20092d689444", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 phases/19-capstone-projects/10-multi-agent-software-team/code/ts/src/index.ts:17"}, "properties": {"repobilityId": "599954cab5334c33", "scanner": "scanner-primary", "fingerprint": "826d20092d689444", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-0adff22e10741564", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 phases/19-capstone-projects/06-devops-troubleshooting-agent/code/ts/src/index.ts:59"}, "properties": {"repobilityId": "a9f701d3e58063a0", "scanner": "scanner-primary", "fingerprint": "0adff22e10741564", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-cb1678f2c0a213de", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 phases/19-capstone-projects/01-terminal-native-coding-agent/code/ts/src/index.ts:32"}, "properties": {"repobilityId": "fe48f0e825b18934", "scanner": "scanner-primary", "fingerprint": "cb1678f2c0a213de", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-6ae8c68dc7dff908", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 phases/19-capstone-projects/01-terminal-native-coding-agent/code/ts/src/repl.ts:39"}, "properties": {"repobilityId": "72a4cbf3b2bc820a", "scanner": "scanner-primary", "fingerprint": "6ae8c68dc7dff908", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-3cd87cd024c11ef3", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 phases/19-capstone-projects/04-multimodal-document-qa/code/ts/src/index.ts:47"}, "properties": {"repobilityId": "e376fe13611756f6", "scanner": "scanner-primary", "fingerprint": "3cd87cd024c11ef3", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-49e7681b82418f8a", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 phases/19-capstone-projects/09-code-migration-agent/code/ts/src/index.ts:19"}, "properties": {"repobilityId": "87ab1d88d9a9be63", "scanner": "scanner-primary", "fingerprint": "49e7681b82418f8a", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-1412d3263bb2624b", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 phases/19-capstone-projects/11-llm-observability-dashboard/code/ts/src/index.ts:67"}, "properties": {"repobilityId": "448679aed6fbfa6a", "scanner": "scanner-primary", "fingerprint": "1412d3263bb2624b", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-0cd3758c93741fee", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 phases/19-capstone-projects/02-rag-over-codebase/code/ts/src/index.ts:81"}, "properties": {"repobilityId": "b1bef55944fd0474", "scanner": "scanner-primary", "fingerprint": "0cd3758c93741fee", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-3302593f16cf871c", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 phases/19-capstone-projects/03-realtime-voice-assistant/code/ts/src/index.ts:107"}, "properties": {"repobilityId": "f678972feb107fd7", "scanner": "scanner-primary", "fingerprint": "3302593f16cf871c", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-2d5575f25cfc8b71", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 phases/19-capstone-projects/03-realtime-voice-assistant/code/ts/src/orchestrator.ts:154"}, "properties": {"repobilityId": "2b468d465e26569e", "scanner": "scanner-primary", "fingerprint": "2d5575f25cfc8b71", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-9ee0978b7ad7373a", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 phases/13-tools-and-protocols/01-the-tool-interface/code/main.ts:206"}, "properties": {"repobilityId": "2d3aff175bfea3a1", "scanner": "scanner-primary", "fingerprint": "9ee0978b7ad7373a", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-3ecbbc92204469b3", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 phases/13-tools-and-protocols/19-a2a-protocol/code/main.ts:107"}, "properties": {"repobilityId": "c20cc37255db9e51", "scanner": "scanner-primary", "fingerprint": "3ecbbc92204469b3", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-cf16cd3a14861551", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 phases/13-tools-and-protocols/07-building-an-mcp-server/code/main.ts:298"}, "properties": {"repobilityId": "398bd6b1aa825fa1", "scanner": "scanner-primary", "fingerprint": "cf16cd3a14861551", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-072b3c2c2add441a", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 phases/05-nlp-foundations-to-advanced/19-subword-tokenization/code/main.ts:174"}, "properties": {"repobilityId": "7fb1666c4b3c59d9", "scanner": "scanner-primary", "fingerprint": "072b3c2c2add441a", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-d19289461ab40a2c", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 phases/05-nlp-foundations-to-advanced/23-chunking-strategies-rag/code/main.ts:169"}, "properties": {"repobilityId": "e2d5c86ef4230a5b", "scanner": "scanner-primary", "fingerprint": "d19289461ab40a2c", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-1bbe4b4eb824f20b", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 phases/14-agent-engineering/01-the-agent-loop/code/main.ts:143"}, "properties": {"repobilityId": "bda13114dd11fc35", "scanner": "scanner-primary", "fingerprint": "1bbe4b4eb824f20b", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-5960f3f6733ecf4b", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 phases/14-agent-engineering/06-tool-use-and-function-calling/code/main.ts:204"}, "properties": {"repobilityId": "b450fc5e6cd85421", "scanner": "scanner-primary", "fingerprint": "5960f3f6733ecf4b", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-8d97ad7142627c89", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 phases/14-agent-engineering/13-langgraph-stateful-graphs/code/main.ts:187"}, "properties": {"repobilityId": "c8438fb200de6a4c", "scanner": "scanner-primary", "fingerprint": "8d97ad7142627c89", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-bd83bd835d86cdd3", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 phases/16-multi-agent-and-swarms/01-why-multi-agent/code/single_vs_multi.ts:228"}, "properties": {"repobilityId": "05399f202dfa67af", "scanner": "scanner-primary", "fingerprint": "bd83bd835d86cdd3", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-03b696f2b0a5297c", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 phases/16-multi-agent-and-swarms/03-communication-protocols/code/main.ts:681"}, "properties": {"repobilityId": "126b1bd087edde7f", "scanner": "scanner-primary", "fingerprint": "03b696f2b0a5297c", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-d61d02743bbce821", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 phases/11-llm-engineering/12-guardrails/code/main.ts:351"}, "properties": {"repobilityId": "1ca6be1b7bb14dc8", "scanner": "scanner-primary", "fingerprint": "d61d02743bbce821", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-1df528d7d48c045a", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 phases/11-llm-engineering/04-embeddings/code/main.ts:249"}, "properties": {"repobilityId": "dded257585b9acac", "scanner": "scanner-primary", "fingerprint": "1df528d7d48c045a", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-bc8d180f0e85a1dd", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 phases/11-llm-engineering/01-prompt-engineering/code/main.ts:360"}, "properties": {"repobilityId": "96f628c766b15842", "scanner": "scanner-primary", "fingerprint": "bc8d180f0e85a1dd", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-c632866472abb1ee", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 phases/11-llm-engineering/09-function-calling/code/main.ts:324"}, "properties": {"repobilityId": "97731037a6b4ea15", "scanner": "scanner-primary", "fingerprint": "c632866472abb1ee", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-135f08e81661ae28", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 phases/17-infrastructure-and-production/20-shadow-canary-progressive/code/main.ts:224"}, "properties": {"repobilityId": "e20c0a250c0f0ee8", "scanner": "scanner-primary", "fingerprint": "135f08e81661ae28", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-396efdad02b8c0f0", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 phases/17-infrastructure-and-production/16-model-routing/code/main.ts:326"}, "properties": {"repobilityId": "4a3a7e3aabbdbdd7", "scanner": "scanner-primary", "fingerprint": "396efdad02b8c0f0", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-2f8f335d6b50ea5c", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 phases/17-infrastructure-and-production/19-ai-gateways/code/main.ts:362"}, "properties": {"repobilityId": "7ab5495523b895bd", "scanner": "scanner-primary", "fingerprint": "2f8f335d6b50ea5c", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-4b0896a9b50e4625", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 phases/17-infrastructure-and-production/14-prompt-semantic-caching/code/main.ts:308"}, "properties": {"repobilityId": "4d3cfa676def035a", "scanner": "scanner-primary", "fingerprint": "4b0896a9b50e4625", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-c0c84c17a18efa92", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 phases/17-infrastructure-and-production/15-batch-apis/code/main.ts:154"}, "properties": {"repobilityId": "04e1200568178821", "scanner": "scanner-primary", "fingerprint": "c0c84c17a18efa92", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-d2bdd29d21ef1e48", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 phases/17-infrastructure-and-production/13-llm-observability/code/main.ts:119"}, "properties": {"repobilityId": "9077f8aacdba442d", "scanner": "scanner-primary", "fingerprint": "d2bdd29d21ef1e48", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-d63da3583b14afc0", "level": "warning", "message": {"text": "Dockerfile runs as root: Dockerfile"}, "properties": {"repobilityId": "a2ed1bd120e507db", "scanner": "scanner-primary", "fingerprint": "d63da3583b14afc0", "layer": "hardware", "severity": "medium", "confidence": 1.0, "tags": ["security", "container"]}}, {"ruleId": "scanner-8987d6d1c30c7202", "level": "note", "message": {"text": "Docker base image is tag-pinned but not digest-pinned: node:20-alpine"}, "properties": {"repobilityId": "ae46f6445420bc68", "scanner": "scanner-primary", "fingerprint": "8987d6d1c30c7202", "layer": "hardware", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "docker", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "Dockerfile"}, "region": {"startLine": 3}}}]}, {"ruleId": "scanner-7c7c999dc346856d", "level": "note", "message": {"text": "Docker base image is tag-pinned but not digest-pinned: caddy:2-alpine"}, "properties": {"repobilityId": "8b503abc8ee6c113", "scanner": "scanner-primary", "fingerprint": "7c7c999dc346856d", "layer": "hardware", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "docker", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "Dockerfile"}, "region": {"startLine": 11}}}]}, {"ruleId": "scanner-1f1c7c62528c7ddd", "level": "note", "message": {"text": "Docker base image is tag-pinned but not digest-pinned: node:20-alpine"}, "properties": {"repobilityId": "f39b2a61dcd7ac88", "scanner": "scanner-primary", "fingerprint": "1f1c7c62528c7ddd", "layer": "hardware", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "docker", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "deploy/license-service/Dockerfile"}, "region": {"startLine": 2}}}]}, {"ruleId": "scanner-8c25f9a51a830a1e", "level": "warning", "message": {"text": "Dockerfile runs as root: phases/00-setup-and-tooling/07-docker-for-ai/code/Dockerfile"}, "properties": {"repobilityId": "f5a1fc78cd134b26", "scanner": "scanner-primary", "fingerprint": "8c25f9a51a830a1e", "layer": "hardware", "severity": "medium", "confidence": 1.0, "tags": ["security", "container"]}}, {"ruleId": "scanner-8f7ded22e2cf2baa", "level": "note", "message": {"text": "Docker base image is tag-pinned but not digest-pinned: nvidia/cuda:12.4.1-devel-ubuntu22.04"}, "properties": {"repobilityId": "30270a8e5a96bfd0", "scanner": "scanner-primary", "fingerprint": "8f7ded22e2cf2baa", "layer": "hardware", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "docker", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "phases/00-setup-and-tooling/07-docker-for-ai/code/Dockerfile"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-aa5acaa49eb8315b", "level": "note", "message": {"text": "Containers defined but no K8s/orchestration manifest found"}, "properties": {"repobilityId": "b230ea9b68736081", "scanner": "scanner-primary", "fingerprint": "aa5acaa49eb8315b", "layer": "hardware", "severity": "low", "confidence": 1.0, "tags": ["coverage", "deployment"]}}, {"ruleId": "scanner-21aefa35488c3e14", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in site/cmdpalette.js:235"}, "properties": {"repobilityId": "348c3b38c9a20ca2", "scanner": "scanner-primary", "fingerprint": "21aefa35488c3e14", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "site/cmdpalette.js"}, "region": {"startLine": 235}}}]}, {"ruleId": "scanner-4e42e997ea619b54", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in site/pet.js:287"}, "properties": {"repobilityId": "718e73a038ab877d", "scanner": "scanner-primary", "fingerprint": "4e42e997ea619b54", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "site/pet.js"}, "region": {"startLine": 287}}}]}, {"ruleId": "scanner-b669db336261adc5", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in site/checkout.js:95"}, "properties": {"repobilityId": "942786323bb4f3a3", "scanner": "scanner-primary", "fingerprint": "b669db336261adc5", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "site/checkout.js"}, "region": {"startLine": 95}}}]}, {"ruleId": "scanner-12949b2e0fac6bdf", "level": "warning", "message": {"text": "Insecure pattern 'local_storage_auth_token' in site/checkout.js:83"}, "properties": {"repobilityId": "bb428280e9fe9dc8", "scanner": "scanner-primary", "fingerprint": "12949b2e0fac6bdf", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "local_storage_auth_token"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "site/checkout.js"}, "region": {"startLine": 83}}}]}, {"ruleId": "scanner-bda1d7077e0e6436", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in site/app.js:134"}, "properties": {"repobilityId": "2dbada2e02ea99b7", "scanner": "scanner-primary", "fingerprint": "bda1d7077e0e6436", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "site/app.js"}, "region": {"startLine": 134}}}]}, {"ruleId": "scanner-25e872df34d6de00", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in site/plan.html:669"}, "properties": {"repobilityId": "644c05365a990a8b", "scanner": "scanner-primary", "fingerprint": "25e872df34d6de00", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "site/plan.html"}, "region": {"startLine": 669}}}]}, {"ruleId": "scanner-a8f694357b3ba2e9", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in site/lesson.html:2032"}, "properties": {"repobilityId": "1df70a90d753b954", "scanner": "scanner-primary", "fingerprint": "a8f694357b3ba2e9", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "site/lesson.html"}, "region": {"startLine": 2032}}}]}, {"ruleId": "scanner-9963a6c49e8da728", "level": "warning", "message": {"text": "Insecure pattern 'insert_adjacent_html' in site/lesson.html:3122"}, "properties": {"repobilityId": "147f8932d940b3f4", "scanner": "scanner-primary", "fingerprint": "9963a6c49e8da728", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "insert_adjacent_html"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "site/lesson.html"}, "region": {"startLine": 3122}}}]}, {"ruleId": "scanner-e456cf8712471a02", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in site/glossary.html:288"}, "properties": {"repobilityId": "b02a663d4f07383c", "scanner": "scanner-primary", "fingerprint": "e456cf8712471a02", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "site/glossary.html"}, "region": {"startLine": 288}}}]}, {"ruleId": "scanner-dbfd78296310ec42", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in site/prereqs.html:990"}, "properties": {"repobilityId": "f8b072b28d272930", "scanner": "scanner-primary", "fingerprint": "dbfd78296310ec42", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "site/prereqs.html"}, "region": {"startLine": 990}}}]}, {"ruleId": "scanner-697a3d43cfbe4d1a", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in site/catalog.html:430"}, "properties": {"repobilityId": "e605dba6b3425dc6", "scanner": "scanner-primary", "fingerprint": "697a3d43cfbe4d1a", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "site/catalog.html"}, "region": {"startLine": 430}}}]}, {"ruleId": "scanner-5b8a1d1c217dfe39", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in phases/19-capstone-projects/10-multi-agent-software-team/code/ts/README.md:14"}, "properties": {"repobilityId": "49d40c0402e278b8", "scanner": "scanner-primary", "fingerprint": "5b8a1d1c217dfe39", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "phases/19-capstone-projects/10-multi-agent-software-team/code/ts/README.md"}, "region": {"startLine": 14}}}]}, {"ruleId": "scanner-50c5b162ceed53ba", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in phases/19-capstone-projects/10-multi-agent-software-team/code/ts/src/runtime.ts:1"}, "properties": {"repobilityId": "742d832a3655a022", "scanner": "scanner-primary", "fingerprint": "50c5b162ceed53ba", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "phases/19-capstone-projects/10-multi-agent-software-team/code/ts/src/runtime.ts"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-ab09ae565e85d31b", "level": "warning", "message": {"text": "Insecure pattern 'subprocess_shell_true' in phases/19-capstone-projects/01-terminal-native-coding-agent/code/main.py:116"}, "properties": {"repobilityId": "744646d2705ae65e", "scanner": "scanner-primary", "fingerprint": "ab09ae565e85d31b", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "subprocess_shell_true"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "phases/19-capstone-projects/01-terminal-native-coding-agent/code/main.py"}, "region": {"startLine": 116}}}]}, {"ruleId": "scanner-a1c065e56f376099", "level": "warning", "message": {"text": "Insecure pattern 'subprocess_shell_true' in phases/19-capstone-projects/26-sandbox-runner-denylist/quiz.json:45"}, "properties": {"repobilityId": "281a5b05c98985c5", "scanner": "scanner-primary", "fingerprint": "a1c065e56f376099", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "subprocess_shell_true"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "phases/19-capstone-projects/26-sandbox-runner-denylist/quiz.json"}, "region": {"startLine": 45}}}]}, {"ruleId": "scanner-49a977c9e64b2b8d", "level": "warning", "message": {"text": "Insecure pattern 'subprocess_shell_true' in phases/19-capstone-projects/26-sandbox-runner-denylist/code/main.py:191"}, "properties": {"repobilityId": "a5968b4dc93f62cf", "scanner": "scanner-primary", "fingerprint": "49a977c9e64b2b8d", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "subprocess_shell_true"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "phases/19-capstone-projects/26-sandbox-runner-denylist/code/main.py"}, "region": {"startLine": 191}}}]}, {"ruleId": "scanner-c4745110fb82fce8", "level": "error", "message": {"text": "Insecure pattern 'exec_used' in phases/19-capstone-projects/49-lm-eval-harness/code/main.py:224"}, "properties": {"repobilityId": "0a814e89612c6105", "scanner": "scanner-primary", "fingerprint": "c4745110fb82fce8", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "exec_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "phases/19-capstone-projects/49-lm-eval-harness/code/main.py"}, "region": {"startLine": 224}}}]}, {"ruleId": "scanner-aa00b236173b7b21", "level": "error", "message": {"text": "Insecure pattern 'exec_used' in phases/15-autonomous-systems/08-bounded-self-improvement/code/main.py:60"}, "properties": {"repobilityId": "d23b5b0a46d39e90", "scanner": "scanner-primary", "fingerprint": "aa00b236173b7b21", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "exec_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "phases/15-autonomous-systems/08-bounded-self-improvement/code/main.py"}, "region": {"startLine": 60}}}]}, {"ruleId": "scanner-0a06b0d2f1677291", "level": "error", "message": {"text": "Possible secret in phases/15-autonomous-systems/18-llama-guard/code/main.py"}, "properties": {"repobilityId": "707f91068cded309", "scanner": "scanner-primary", "fingerprint": "0a06b0d2f1677291", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "phases/15-autonomous-systems/18-llama-guard/code/main.py"}, "region": {"startLine": 154}}}]}, {"ruleId": "scanner-dec5d3892be78a4c", "level": "error", "message": {"text": "Insecure pattern 'exec_used' in phases/15-autonomous-systems/10-claude-code-permission-modes/code/main.py:46"}, "properties": {"repobilityId": "26684f71790413cd", "scanner": "scanner-primary", "fingerprint": "dec5d3892be78a4c", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "exec_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "phases/15-autonomous-systems/10-claude-code-permission-modes/code/main.py"}, "region": {"startLine": 46}}}]}, {"ruleId": "scanner-2b63ad64841c6ef2", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in phases/00-setup-and-tooling/01-dev-environment/code/verify.ts:5"}, "properties": {"repobilityId": "e283d566dc8e1aaa", "scanner": "scanner-primary", "fingerprint": "2b63ad64841c6ef2", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "phases/00-setup-and-tooling/01-dev-environment/code/verify.ts"}, "region": {"startLine": 5}}}]}, {"ruleId": "scanner-3a9e93b68b5690b5", "level": "error", "message": {"text": "Insecure pattern 'exec_used' in phases/13-tools-and-protocols/07-building-an-mcp-server/code/main.ts:185"}, "properties": {"repobilityId": "de641cae43802c11", "scanner": "scanner-primary", "fingerprint": "3a9e93b68b5690b5", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "exec_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "phases/13-tools-and-protocols/07-building-an-mcp-server/code/main.ts"}, "region": {"startLine": 185}}}]}, {"ruleId": "scanner-94991bb8bd8ad1b0", "level": "error", "message": {"text": "Insecure pattern 'exec_used' in phases/18-ethics-safety-alignment/16-red-team-tooling-garak-llamaguard-pyrit/code/main.py:35"}, "properties": {"repobilityId": "a40bf6017de35bf3", "scanner": "scanner-primary", "fingerprint": "94991bb8bd8ad1b0", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "exec_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "phases/18-ethics-safety-alignment/16-red-team-tooling-garak-llamaguard-pyrit/code/main.py"}, "region": {"startLine": 35}}}]}, {"ruleId": "scanner-fa450f54daa35f58", "level": "error", "message": {"text": "Insecure pattern 'eval_used' in phases/18-ethics-safety-alignment/08-in-context-scheming-frontier-models/code/main.py:124"}, "properties": {"repobilityId": "c7bbaf7eb778ca85", "scanner": "scanner-primary", "fingerprint": "fa450f54daa35f58", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "eval_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "phases/18-ethics-safety-alignment/08-in-context-scheming-frontier-models/code/main.py"}, "region": {"startLine": 124}}}]}, {"ruleId": "scanner-7b850224f5b9772a", "level": "error", "message": {"text": "Insecure pattern 'new_function_used' in phases/14-agent-engineering/01-the-agent-loop/code/main.ts:58"}, "properties": {"repobilityId": "c4fc600f9e77e113", "scanner": "scanner-primary", "fingerprint": "7b850224f5b9772a", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "new_function_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "phases/14-agent-engineering/01-the-agent-loop/code/main.ts"}, "region": {"startLine": 58}}}]}, {"ruleId": "scanner-1e367ff5e8488d30", "level": "error", "message": {"text": "Insecure pattern 'eval_used' in phases/14-agent-engineering/01-the-agent-loop/code/main.py:61"}, "properties": {"repobilityId": "d56b61f5837be968", "scanner": "scanner-primary", "fingerprint": "1e367ff5e8488d30", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "eval_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "phases/14-agent-engineering/01-the-agent-loop/code/main.py"}, "region": {"startLine": 61}}}]}, {"ruleId": "scanner-4972a3377d88f498", "level": "error", "message": {"text": "Insecure pattern 'eval_used' in phases/14-agent-engineering/14-autogen-actor-model/code/main.py:85"}, "properties": {"repobilityId": "91b18b8f93b5a5d6", "scanner": "scanner-primary", "fingerprint": "4972a3377d88f498", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "eval_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "phases/14-agent-engineering/14-autogen-actor-model/code/main.py"}, "region": {"startLine": 85}}}]}, {"ruleId": "scanner-516e9de0fd461c49", "level": "error", "message": {"text": "Insecure pattern 'exec_used' in phases/16-multi-agent-and-swarms/08-role-specialization/code/main.py:74"}, "properties": {"repobilityId": "69d0736f6c45cc14", "scanner": "scanner-primary", "fingerprint": "516e9de0fd461c49", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "exec_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "phases/16-multi-agent-and-swarms/08-role-specialization/code/main.py"}, "region": {"startLine": 74}}}]}, {"ruleId": "scanner-93215a01a51049d7", "level": "error", "message": {"text": "Insecure pattern 'eval_used' in phases/10-llms-from-scratch/09-constitutional-ai-self-improvement/code/main.py:79"}, "properties": {"repobilityId": "a9ec43af5d721f0c", "scanner": "scanner-primary", "fingerprint": "93215a01a51049d7", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "eval_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "phases/10-llms-from-scratch/09-constitutional-ai-self-improvement/code/main.py"}, "region": {"startLine": 79}}}]}, {"ruleId": "scanner-5995368c67b7353e", "level": "error", "message": {"text": "Insecure pattern 'eval_used' in phases/03-deep-learning-core/10-mini-framework/exercises.json:15"}, "properties": {"repobilityId": "9f9eed52b3cb868d", "scanner": "scanner-primary", "fingerprint": "5995368c67b7353e", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "eval_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "phases/03-deep-learning-core/10-mini-framework/exercises.json"}, "region": {"startLine": 15}}}]}, {"ruleId": "scanner-3b6dc379488ca9bd", "level": "error", "message": {"text": "Insecure pattern 'eval_used' in phases/11-llm-engineering/02-few-shot-cot/code/advanced_prompting.py:324"}, "properties": {"repobilityId": "4b14a5d69c68cab1", "scanner": "scanner-primary", "fingerprint": "3b6dc379488ca9bd", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "eval_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "phases/11-llm-engineering/02-few-shot-cot/code/advanced_prompting.py"}, "region": {"startLine": 324}}}]}, {"ruleId": "scanner-51ca21268b7c7170", "level": "error", "message": {"text": "Insecure pattern 'eval_used' in phases/11-llm-engineering/16-langgraph-state-machines/code/main.py:55"}, "properties": {"repobilityId": "ce58024ed790008d", "scanner": "scanner-primary", "fingerprint": "51ca21268b7c7170", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "eval_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "phases/11-llm-engineering/16-langgraph-state-machines/code/main.py"}, "region": {"startLine": 55}}}]}, {"ruleId": "scanner-26223f85659796e1", "level": "error", "message": {"text": "Insecure pattern 'eval_used' in phases/11-llm-engineering/09-function-calling/code/function_calling.py:28"}, "properties": {"repobilityId": "278074c93b1f1706", "scanner": "scanner-primary", "fingerprint": "26223f85659796e1", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "eval_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "phases/11-llm-engineering/09-function-calling/code/function_calling.py"}, "region": {"startLine": 28}}}]}, {"ruleId": "scanner-76c1e5ccd427ca70", "level": "error", "message": {"text": "Insecure pattern 'exec_used' in phases/11-llm-engineering/09-function-calling/code/function_calling.py:103"}, "properties": {"repobilityId": "4da1a976f953a71d", "scanner": "scanner-primary", "fingerprint": "76c1e5ccd427ca70", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "exec_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "phases/11-llm-engineering/09-function-calling/code/function_calling.py"}, "region": {"startLine": 103}}}]}, {"ruleId": "scanner-daca0589a5b769c2", "level": "error", "message": {"text": "Insecure pattern 'eval_used' in phases/11-llm-engineering/09-function-calling/code/main.ts:144"}, "properties": {"repobilityId": "0732716f004e71fb", "scanner": "scanner-primary", "fingerprint": "daca0589a5b769c2", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "eval_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "phases/11-llm-engineering/09-function-calling/code/main.ts"}, "region": {"startLine": 144}}}]}, {"ruleId": "scanner-1cf979005ff4d9e9", "level": "error", "message": {"text": "Insecure pattern 'new_function_used' in phases/11-llm-engineering/09-function-calling/code/main.ts:62"}, "properties": {"repobilityId": "783309c2580d5a65", "scanner": "scanner-primary", "fingerprint": "1cf979005ff4d9e9", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "new_function_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "phases/11-llm-engineering/09-function-calling/code/main.ts"}, "region": {"startLine": 62}}}]}, {"ruleId": "scanner-a31b7f379dfffe0e", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in phases/11-llm-engineering/09-function-calling/code/main.ts:356"}, "properties": {"repobilityId": "cedccc80da26f7d2", "scanner": "scanner-primary", "fingerprint": "a31b7f379dfffe0e", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "phases/11-llm-engineering/09-function-calling/code/main.ts"}, "region": {"startLine": 356}}}]}, {"ruleId": "scanner-e36351d2b9f0f64d", "level": "warning", "message": {"text": "GitHub Actions workflow grants broad write permissions"}, "properties": {"repobilityId": "b777f42577b364b0", "scanner": "scanner-primary", "fingerprint": "e36351d2b9f0f64d", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "least-privilege"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/curriculum.yml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-65bbd20730ca1924", "level": "note", "message": {"text": "Very large file: site/data.js (12958 lines)"}, "properties": {"repobilityId": "7b9face60a40d718", "scanner": "scanner-primary", "fingerprint": "65bbd20730ca1924", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-ea3b5e389d8c9c0f", "level": "note", "message": {"text": "Low test-to-source ratio"}, "properties": {"repobilityId": "ef7b2552cc00a375", "scanner": "scanner-primary", "fingerprint": "ea3b5e389d8c9c0f", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["tests"]}}, {"ruleId": "scanner-3d493ceced52ef9a", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: phases/19-capstone-projects/08-production-rag-chatbot/code/ts/package.json"}, "properties": {"repobilityId": "203d066bbea13166", "scanner": "scanner-primary", "fingerprint": "3d493ceced52ef9a", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "phases/19-capstone-projects/08-production-rag-chatbot/code/ts/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-c45acbf9fc1a8f1d", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: phases/19-capstone-projects/17-personal-ai-tutor/code/ts/package.json"}, "properties": {"repobilityId": "817c1b5f4cf6b093", "scanner": "scanner-primary", "fingerprint": "c45acbf9fc1a8f1d", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "phases/19-capstone-projects/17-personal-ai-tutor/code/ts/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-9378d4e875191d92", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: phases/19-capstone-projects/10-multi-agent-software-team/code/ts/package.json"}, "properties": {"repobilityId": "a70f68e800f0ddf0", "scanner": "scanner-primary", "fingerprint": "9378d4e875191d92", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "phases/19-capstone-projects/10-multi-agent-software-team/code/ts/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-124420085d989491", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: phases/19-capstone-projects/06-devops-troubleshooting-agent/code/ts/package.json"}, "properties": {"repobilityId": "04351bf5c7286c70", "scanner": "scanner-primary", "fingerprint": "124420085d989491", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "phases/19-capstone-projects/06-devops-troubleshooting-agent/code/ts/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-58d5b6b73e374943", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: phases/19-capstone-projects/01-terminal-native-coding-agent/code/ts/package.json"}, "properties": {"repobilityId": "aaf9b6b5b1c7d87b", "scanner": "scanner-primary", "fingerprint": "58d5b6b73e374943", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "phases/19-capstone-projects/01-terminal-native-coding-agent/code/ts/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-8cbfa1c323c2c976", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: phases/19-capstone-projects/12-video-understanding-pipeline/code/ts/package.json"}, "properties": {"repobilityId": "6b8ccfd34f860680", "scanner": "scanner-primary", "fingerprint": "8cbfa1c323c2c976", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "phases/19-capstone-projects/12-video-understanding-pipeline/code/ts/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-1ad6c8e987bb7b30", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: phases/19-capstone-projects/04-multimodal-document-qa/code/ts/package.json"}, "properties": {"repobilityId": "cc0f3e9feb89fd63", "scanner": "scanner-primary", "fingerprint": "1ad6c8e987bb7b30", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "phases/19-capstone-projects/04-multimodal-document-qa/code/ts/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-b83d2a85e2b70405", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: phases/19-capstone-projects/09-code-migration-agent/code/ts/package.json"}, "properties": {"repobilityId": "8cba0bc8d4158312", "scanner": "scanner-primary", "fingerprint": "b83d2a85e2b70405", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "phases/19-capstone-projects/09-code-migration-agent/code/ts/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-41a26d2413740f64", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: phases/19-capstone-projects/11-llm-observability-dashboard/code/ts/package.json"}, "properties": {"repobilityId": "b9f9cae832c32700", "scanner": "scanner-primary", "fingerprint": "41a26d2413740f64", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "phases/19-capstone-projects/11-llm-observability-dashboard/code/ts/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-cf805e6708a20a2c", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: phases/19-capstone-projects/02-rag-over-codebase/code/ts/package.json"}, "properties": {"repobilityId": "b40949f676501943", "scanner": "scanner-primary", "fingerprint": "cf805e6708a20a2c", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "phases/19-capstone-projects/02-rag-over-codebase/code/ts/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-7c3a0dc335a57020", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: phases/19-capstone-projects/13-mcp-server-with-registry/code/ts/package.json"}, "properties": {"repobilityId": "bde2e57ef3c4eb24", "scanner": "scanner-primary", "fingerprint": "7c3a0dc335a57020", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "phases/19-capstone-projects/13-mcp-server-with-registry/code/ts/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-667cd49bb13c2404", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: phases/19-capstone-projects/03-realtime-voice-assistant/code/ts/package.json"}, "properties": {"repobilityId": "d65e7ce7c7ff7448", "scanner": "scanner-primary", "fingerprint": "667cd49bb13c2404", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "phases/19-capstone-projects/03-realtime-voice-assistant/code/ts/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-a3581c9f219a99ab", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: phases/19-capstone-projects/16-github-issue-to-pr-agent/code/ts/package.json"}, "properties": {"repobilityId": "30bf3d56b24eab09", "scanner": "scanner-primary", "fingerprint": "a3581c9f219a99ab", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "phases/19-capstone-projects/16-github-issue-to-pr-agent/code/ts/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-3ab5d313dda8e5f9", "level": "note", "message": {"text": "Debug logging residue appears in source files"}, "properties": {"repobilityId": "eff1104d5f7d81d7", "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": "9041cbe50a53d67b", "scanner": "scanner-primary", "fingerprint": "72b2a6250083a784", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["placeholder", "mock-data", "incomplete", "generated-repo-pattern"]}}, {"ruleId": "scanner-9d79c4077342a7d0", "level": "warning", "message": {"text": "Runtime service client appears to use placeholder configuration"}, "properties": {"repobilityId": "fc93beefa1272387", "scanner": "scanner-primary", "fingerprint": "9d79c4077342a7d0", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["placeholder", "runtime-config", "service-client", "generated-repo-pattern"]}}, {"ruleId": "scanner-2d0c7b7ab8f8aacf", "level": "warning", "message": {"text": "Critical user flow still appears backed by mock or placeholder data"}, "properties": {"repobilityId": "b9831809b5511da5", "scanner": "scanner-primary", "fingerprint": "2d0c7b7ab8f8aacf", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["placeholder", "mock-data", "critical-flow", "generated-repo-pattern"]}}, {"ruleId": "scanner-749d4bc1bd66df5f", "level": "warning", "message": {"text": "Agent instructions exist but release-hardening basics are missing"}, "properties": {"repobilityId": "0db11201e3e2134c", "scanner": "scanner-primary", "fingerprint": "749d4bc1bd66df5f", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-ea8f3013f588db25", "level": "note", "message": {"text": "Shallow git history limits provenance confidence"}, "properties": {"repobilityId": "4fbe80bcda779f8a", "scanner": "scanner-primary", "fingerprint": "ea8f3013f588db25", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["provenance", "git-history", "generated-repo-pattern"]}}, {"ruleId": "scanner-8424db9c75e04ba4", "level": "none", "message": {"text": "Very short observed git history"}, "properties": {"repobilityId": "50665ab434f58235", "scanner": "scanner-primary", "fingerprint": "8424db9c75e04ba4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["provenance", "git-history", "generated-repo-pattern"]}}, {"ruleId": "scanner-0001bb99a40a06e7", "level": "none", "message": {"text": "Commented-code block (5 lines) in site/checkout.js:44"}, "properties": {"repobilityId": "f8087881b546437a", "scanner": "scanner-primary", "fingerprint": "0001bb99a40a06e7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-da3899da2ebbd641", "level": "none", "message": {"text": "Commented-code block (5 lines) in site/app.js:139"}, "properties": {"repobilityId": "27ccffff87a45d2f", "scanner": "scanner-primary", "fingerprint": "da3899da2ebbd641", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ca75232cdea7cbb1", "level": "note", "message": {"text": "Legacy-named symbol `\u03c0_old` in site/data.js:1862"}, "properties": {"repobilityId": "24cf0ab55110ee60", "scanner": "scanner-primary", "fingerprint": "ca75232cdea7cbb1", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-3522583133a5760e", "level": "none", "message": {"text": "Commented-code block (5 lines) in site/build.js:85"}, "properties": {"repobilityId": "4b86a9187b1d5ba8", "scanner": "scanner-primary", "fingerprint": "3522583133a5760e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c88a7281497a02ec", "level": "none", "message": {"text": "Commented-code block (6 lines) in phases/19-capstone-projects/08-production-rag-chatbot/code/ts/src/index.ts:1"}, "properties": {"repobilityId": "37dfdc06df9f9e68", "scanner": "scanner-primary", "fingerprint": "c88a7281497a02ec", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-47f2f1d8f7516e7b", "level": "none", "message": {"text": "Commented-code block (6 lines) in phases/19-capstone-projects/17-personal-ai-tutor/code/ts/src/index.ts:1"}, "properties": {"repobilityId": "7d7c31cb99a57963", "scanner": "scanner-primary", "fingerprint": "47f2f1d8f7516e7b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-51577f024aecfd55", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 phases/19-capstone-projects/72-code-exec-metric/code/main.py:313"}, "properties": {"repobilityId": "7475e23b4baaafc1", "scanner": "scanner-primary", "fingerprint": "51577f024aecfd55", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-1d97cd0e41894294", "level": "none", "message": {"text": "Commented-code block (6 lines) in phases/19-capstone-projects/06-devops-troubleshooting-agent/code/ts/src/index.ts:1"}, "properties": {"repobilityId": "9b2f13899f352f27", "scanner": "scanner-primary", "fingerprint": "1d97cd0e41894294", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-02fe635ea6b4869a", "level": "none", "message": {"text": "Commented-code block (5 lines) in phases/19-capstone-projects/01-terminal-native-coding-agent/code/ts/src/index.ts:3"}, "properties": {"repobilityId": "6531637af036d40b", "scanner": "scanner-primary", "fingerprint": "02fe635ea6b4869a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a8568ea43264b8c9", "level": "none", "message": {"text": "Commented-code block (6 lines) in phases/19-capstone-projects/12-video-understanding-pipeline/code/ts/src/index.ts:1"}, "properties": {"repobilityId": "34cec22d69ad1975", "scanner": "scanner-primary", "fingerprint": "a8568ea43264b8c9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-766be6012d53fcdb", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 phases/19-capstone-projects/12-video-understanding-pipeline/code/ts/src/index.ts:51"}, "properties": {"repobilityId": "898c4a209771eea8", "scanner": "scanner-primary", "fingerprint": "766be6012d53fcdb", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-e0b5feb549130319", "level": "none", "message": {"text": "Commented-code block (6 lines) in phases/19-capstone-projects/04-multimodal-document-qa/code/ts/src/index.ts:1"}, "properties": {"repobilityId": "05d6324d5b740cb3", "scanner": "scanner-primary", "fingerprint": "e0b5feb549130319", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6277722fc37d9534", "level": "note", "message": {"text": "Legacy-named symbol `transform_v1` in phases/19-capstone-projects/24-plan-execute-control-flow/code/tests/test_agent.py:50"}, "properties": {"repobilityId": "08399333634dbb97", "scanner": "scanner-primary", "fingerprint": "6277722fc37d9534", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-dd55768cbd11529e", "level": "note", "message": {"text": "Stub function `reverse_list` (body is just `pass`/`return`) \u2014 phases/19-capstone-projects/27-eval-harness-fixture-tasks/code/tasks/task_004_empty_reverse/buggy/reverse.py:1"}, "properties": {"repobilityId": "e616735e3b620208", "scanner": "scanner-primary", "fingerprint": "dd55768cbd11529e", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "empty-handler", "dead-code"]}}, {"ruleId": "scanner-8f558a9d563c9ada", "level": "none", "message": {"text": "Commented-code block (5 lines) in phases/19-capstone-projects/02-rag-over-codebase/code/ts/src/index.ts:3"}, "properties": {"repobilityId": "558629ee2d246e2d", "scanner": "scanner-primary", "fingerprint": "8f558a9d563c9ada", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-277566c2b3f81874", "level": "note", "message": {"text": "Legacy-named symbol `idxs_copy` in phases/19-capstone-projects/39-instruction-tuning-sft/code/main.py:357"}, "properties": {"repobilityId": "0ff3b6b45fc3f68c", "scanner": "scanner-primary", "fingerprint": "277566c2b3f81874", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-526f8bc6eceba973", "level": "note", "message": {"text": "Stub function `close` (body is just `pass`/`return`) \u2014 phases/19-capstone-projects/28-observability-otel-traces/code/main.py:174"}, "properties": {"repobilityId": "ca2053ddbc4623af", "scanner": "scanner-primary", "fingerprint": "526f8bc6eceba973", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "empty-handler", "dead-code"]}}, {"ruleId": "scanner-b0aa08ad0540e102", "level": "none", "message": {"text": "Commented-code block (7 lines) in phases/19-capstone-projects/13-mcp-server-with-registry/code/ts/src/index.ts:1"}, "properties": {"repobilityId": "8e15b13532eed671", "scanner": "scanner-primary", "fingerprint": "b0aa08ad0540e102", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7c7349fe5eb43454", "level": "none", "message": {"text": "Commented-code block (5 lines) in phases/19-capstone-projects/03-realtime-voice-assistant/code/ts/src/index.ts:3"}, "properties": {"repobilityId": "968829d5722da3c9", "scanner": "scanner-primary", "fingerprint": "7c7349fe5eb43454", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6f562bc437cd5924", "level": "none", "message": {"text": "Commented-code block (6 lines) in phases/19-capstone-projects/16-github-issue-to-pr-agent/code/ts/src/index.ts:1"}, "properties": {"repobilityId": "2bddcddb10a74b77", "scanner": "scanner-primary", "fingerprint": "6f562bc437cd5924", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-25961559ea4266e1", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 phases/19-capstone-projects/16-github-issue-to-pr-agent/code/ts/src/index.ts:119"}, "properties": {"repobilityId": "78a0df63c5207b30", "scanner": "scanner-primary", "fingerprint": "25961559ea4266e1", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-c4fc5c9ec85182fd", "level": "note", "message": {"text": "Legacy-named symbol `idxs_copy` in phases/19-capstone-projects/38-classifier-finetuning/code/main.py:272"}, "properties": {"repobilityId": "7c52bafab114629f", "scanner": "scanner-primary", "fingerprint": "c4fc5c9ec85182fd", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-156bbb8ee46290a7", "level": "none", "message": {"text": "Commented-code block (5 lines) in phases/15-autonomous-systems/18-llama-guard/code/main.py:59"}, "properties": {"repobilityId": "ac7e23c9b4abc1f4", "scanner": "scanner-primary", "fingerprint": "156bbb8ee46290a7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-697acd1bb3d3f226", "level": "none", "message": {"text": "Commented-code block (9 lines) in phases/15-autonomous-systems/16-checkpoints-rollback/code/main.py:107"}, "properties": {"repobilityId": "9299561a4d303d04", "scanner": "scanner-primary", "fingerprint": "697acd1bb3d3f226", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7b8c8de315d236ab", "level": "none", "message": {"text": "Commented-code block (5 lines) in phases/15-autonomous-systems/06-automated-alignment-research/code/main.py:108"}, "properties": {"repobilityId": "bcad13042df9eeb9", "scanner": "scanner-primary", "fingerprint": "7b8c8de315d236ab", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-342b6b1eabdd2d82", "level": "none", "message": {"text": "Commented-code block (5 lines) in phases/15-autonomous-systems/05-ai-scientist-v2/code/main.py:65"}, "properties": {"repobilityId": "651fa7512f21e828", "scanner": "scanner-primary", "fingerprint": "342b6b1eabdd2d82", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-cf4a9d0907f25db8", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 phases/00-setup-and-tooling/04-apis-and-keys/code/first_api_call.py:42"}, "properties": {"repobilityId": "45ce8760a9ce3db9", "scanner": "scanner-primary", "fingerprint": "cf4a9d0907f25db8", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-a6b438d44d6d8665", "level": "none", "message": {"text": "Commented-code block (6 lines) in phases/00-setup-and-tooling/04-apis-and-keys/code/first_api_call.ts:1"}, "properties": {"repobilityId": "ff2022ab5c463a32", "scanner": "scanner-primary", "fingerprint": "a6b438d44d6d8665", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6e5620428d34ac22", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 phases/00-setup-and-tooling/04-apis-and-keys/code/first_api_call.ts:6"}, "properties": {"repobilityId": "cc0830dd358ad251", "scanner": "scanner-primary", "fingerprint": "6e5620428d34ac22", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-5bd804014444b23a", "level": "note", "message": {"text": "Legacy-named symbol `exp_old` in phases/07-transformers-deep-dive/12-kv-cache-flash-attention/code/main.py:48"}, "properties": {"repobilityId": "68501d1eba968699", "scanner": "scanner-primary", "fingerprint": "5bd804014444b23a", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-faeb1d376db2ce4a", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 phases/13-tools-and-protocols/09-mcp-transports/code/main.py:200"}, "properties": {"repobilityId": "1bdf6cde606e7000", "scanner": "scanner-primary", "fingerprint": "faeb1d376db2ce4a", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-c24d06ab6127ddc3", "level": "note", "message": {"text": "Legacy-named symbol `maskrcnn_resnet50_fpn_v2` in phases/04-computer-vision/08-instance-segmentation-mask-rcnn/code/main.py:47"}, "properties": {"repobilityId": "728ab71d6b5d6cbb", "scanner": "scanner-primary", "fingerprint": "c24d06ab6127ddc3", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-2d7844a8c80f5cfa", "level": "none", "message": {"text": "Commented-code block (7 lines) in phases/05-nlp-foundations-to-advanced/19-subword-tokenization/code/main.ts:1"}, "properties": {"repobilityId": "0595a04e0901cd73", "scanner": "scanner-primary", "fingerprint": "2d7844a8c80f5cfa", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8436002f496a61c2", "level": "none", "message": {"text": "Commented-code block (7 lines) in phases/05-nlp-foundations-to-advanced/23-chunking-strategies-rag/code/main.ts:1"}, "properties": {"repobilityId": "54c3cae65e8c0416", "scanner": "scanner-primary", "fingerprint": "8436002f496a61c2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3eebadc9dd48a70c", "level": "note", "message": {"text": "Stub function `on_edited` (body is just `pass`/`return`) \u2014 phases/14-agent-engineering/15-crewai-role-based-crews/code/main.py:316"}, "properties": {"repobilityId": "9f80f77173f0d95a", "scanner": "scanner-primary", "fingerprint": "3eebadc9dd48a70c", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "empty-handler", "dead-code"]}}, {"ruleId": "scanner-81c456788dc5f026", "level": "none", "message": {"text": "Commented-code block (8 lines) in phases/14-agent-engineering/18-agno-and-mastra-runtimes/code/main.ts:1"}, "properties": {"repobilityId": "7a10199eb1083114", "scanner": "scanner-primary", "fingerprint": "81c456788dc5f026", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d9aafff71d58ab9c", "level": "note", "message": {"text": "Legacy-named symbol `_craft_iron_pick_v1` in phases/14-agent-engineering/10-skill-libraries-voyager/code/main.py:125"}, "properties": {"repobilityId": "ddb13358147f39af", "scanner": "scanner-primary", "fingerprint": "d9aafff71d58ab9c", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-6e9e0a7f7cf51a42", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 phases/16-multi-agent-and-swarms/12-a2a-protocol/code/main.py:129"}, "properties": {"repobilityId": "af19f64528c68fb1", "scanner": "scanner-primary", "fingerprint": "6e9e0a7f7cf51a42", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-f41fcb08e756115e", "level": "note", "message": {"text": "Stub function `log_message` (body is just `pass`/`return`) \u2014 phases/16-multi-agent-and-swarms/12-a2a-protocol/code/main.py:84"}, "properties": {"repobilityId": "e4290f2045154384", "scanner": "scanner-primary", "fingerprint": "f41fcb08e756115e", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "empty-handler", "dead-code"]}}, {"ruleId": "scanner-8e20e9297e830f65", "level": "note", "message": {"text": "Legacy-named symbol `diff_v1` in phases/10-llms-from-scratch/16-differential-attention-v2/code/main.py:125"}, "properties": {"repobilityId": "44d4d7fdc049bfd7", "scanner": "scanner-primary", "fingerprint": "8e20e9297e830f65", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-505637f172e07304", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 phases/03-deep-learning-core/11-intro-to-pytorch/code/pytorch_intro.py:25"}, "properties": {"repobilityId": "2ca6a1b2139b000d", "scanner": "scanner-primary", "fingerprint": "505637f172e07304", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-a48890876efd0588", "level": "note", "message": {"text": "Legacy-named symbol `rs_old` in phases/01-math-foundations/17-linear-systems/code/linear_systems.py:122"}, "properties": {"repobilityId": "5cf22c99954997f7", "scanner": "scanner-primary", "fingerprint": "a48890876efd0588", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-6a24067a5bde0749", "level": "note", "message": {"text": "Legacy-named symbol `log_pi_old` in phases/09-reinforcement-learning/09-reward-modeling-rlhf/code/main.py:106"}, "properties": {"repobilityId": "22dd8b0ec63684b3", "scanner": "scanner-primary", "fingerprint": "6a24067a5bde0749", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-34edd1cadbb35a87", "level": "note", "message": {"text": "Legacy-named symbol `v_old` in phases/09-reinforcement-learning/08-ppo/code/main.py:81"}, "properties": {"repobilityId": "5bd8672a194c16dd", "scanner": "scanner-primary", "fingerprint": "34edd1cadbb35a87", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-aa76c908d52778db", "level": "none", "message": {"text": "Commented-code block (7 lines) in phases/11-llm-engineering/12-guardrails/code/main.ts:1"}, "properties": {"repobilityId": "ad6f9397ece9ac9b", "scanner": "scanner-primary", "fingerprint": "aa76c908d52778db", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-069f9af51ed02a6e", "level": "none", "message": {"text": "Commented-code block (7 lines) in phases/11-llm-engineering/03-structured-outputs/code/main.ts:1"}, "properties": {"repobilityId": "f74489c3ffd9bc5f", "scanner": "scanner-primary", "fingerprint": "069f9af51ed02a6e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b4c3f75c94ba2084", "level": "none", "message": {"text": "Commented-code block (9 lines) in phases/11-llm-engineering/06-rag/code/main.ts:1"}, "properties": {"repobilityId": "d5bcb8c1dc1454fd", "scanner": "scanner-primary", "fingerprint": "b4c3f75c94ba2084", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d973b86fff66f0f4", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 phases/11-llm-engineering/09-function-calling/code/function_calling.py:417"}, "properties": {"repobilityId": "d4cea23c061fb357", "scanner": "scanner-primary", "fingerprint": "d973b86fff66f0f4", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-db88eda2dc7eb9d6", "level": "none", "message": {"text": "Commented-code block (7 lines) in phases/11-llm-engineering/05-context-engineering/code/main.ts:1"}, "properties": {"repobilityId": "74846ea3ec748762", "scanner": "scanner-primary", "fingerprint": "db88eda2dc7eb9d6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-cc0f9d8e41b33b0e", "level": "note", "message": {"text": "11 env vars used in code but missing from .env.example"}, "properties": {"repobilityId": "c82cd8cd626c3599", "scanner": "scanner-primary", "fingerprint": "cc0f9d8e41b33b0e", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "config-drift"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "89d488b6bff5407a", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-be46ea126aa5d8dc", "level": "note", "message": {"text": "Near-duplicate function bodies in 3 places"}, "properties": {"repobilityId": "bdc03be582d9a97e", "scanner": "scanner-primary", "fingerprint": "be46ea126aa5d8dc", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-be46ea126aa5d8dc", "level": "note", "message": {"text": "Near-duplicate function bodies in 3 places"}, "properties": {"repobilityId": "c3203bb3b0b64858", "scanner": "scanner-primary", "fingerprint": "be46ea126aa5d8dc", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "afb15ba30ecd2cea", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "abf4078578d71c5b", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-ecd86354d3c142ad", "level": "note", "message": {"text": "Near-duplicate function bodies in 20 places"}, "properties": {"repobilityId": "66210fca76bdd02b", "scanner": "scanner-primary", "fingerprint": "ecd86354d3c142ad", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-49c98f7cedd9c977", "level": "note", "message": {"text": "Near-duplicate function bodies in 4 places"}, "properties": {"repobilityId": "c0711603e93a19b7", "scanner": "scanner-primary", "fingerprint": "49c98f7cedd9c977", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-be46ea126aa5d8dc", "level": "note", "message": {"text": "Near-duplicate function bodies in 3 places"}, "properties": {"repobilityId": "f7000c109018bb6a", "scanner": "scanner-primary", "fingerprint": "be46ea126aa5d8dc", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-be46ea126aa5d8dc", "level": "note", "message": {"text": "Near-duplicate function bodies in 3 places"}, "properties": {"repobilityId": "f1c35e8968c5e2ee", "scanner": "scanner-primary", "fingerprint": "be46ea126aa5d8dc", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-be46ea126aa5d8dc", "level": "note", "message": {"text": "Near-duplicate function bodies in 3 places"}, "properties": {"repobilityId": "aeb3db7ee491b698", "scanner": "scanner-primary", "fingerprint": "be46ea126aa5d8dc", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-46969939caf8120b", "level": "note", "message": {"text": "Near-duplicate function bodies in 9 places"}, "properties": {"repobilityId": "3da0d3bb1f87e270", "scanner": "scanner-primary", "fingerprint": "46969939caf8120b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "67d1fd8f66acf022", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-49c98f7cedd9c977", "level": "note", "message": {"text": "Near-duplicate function bodies in 4 places"}, "properties": {"repobilityId": "f6acdc796ef57efd", "scanner": "scanner-primary", "fingerprint": "49c98f7cedd9c977", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "e2b736c5ec10b73f", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "de10798972625252", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "e84eca95be73970e", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "2080c1959d672ff3", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "493349957a1cbe95", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "06f82d5ad6f7f14e", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "ec704f29116b3795", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-773d361609db2459", "level": "error", "message": {"text": "Dangling fetch: POST /api/activate (site/checkout.js:168)"}, "properties": {"repobilityId": "e91542a5058a09b7", "scanner": "scanner-primary", "fingerprint": "773d361609db2459", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-0e969d8d06d18fa3", "level": "error", "message": {"text": "Dangling fetch: POST /api/issue (site/checkout.js:194)"}, "properties": {"repobilityId": "bfde160e1c33041a", "scanner": "scanner-primary", "fingerprint": "0e969d8d06d18fa3", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-71c62f13729b3c54", "level": "error", "message": {"text": "Dangling fetch: GET /document/10k-acme-2025 (phases/19-capstone-projects/04-multimodal-document-qa/code/ts/tests/server.test.ts:22)"}, "properties": {"repobilityId": "67f6c1d560ce11d5", "scanner": "scanner-primary", "fingerprint": "71c62f13729b3c54", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-62ccc7f0dd1c0c27", "level": "error", "message": {"text": "Dangling fetch: GET /document/10k-acme-2025 (phases/19-capstone-projects/04-multimodal-document-qa/code/ts/tests/server.test.ts:32)"}, "properties": {"repobilityId": "20a66653a9705c27", "scanner": "scanner-primary", "fingerprint": "62ccc7f0dd1c0c27", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-93e5dc70e250c01a", "level": "error", "message": {"text": "Dangling fetch: GET /document/missing (phases/19-capstone-projects/04-multimodal-document-qa/code/ts/tests/server.test.ts:38)"}, "properties": {"repobilityId": "b6b49b3ddc04c6b1", "scanner": "scanner-primary", "fingerprint": "93e5dc70e250c01a", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-a483e3f1df563d6c", "level": "error", "message": {"text": "Dangling fetch: GET /document/has.dot (phases/19-capstone-projects/04-multimodal-document-qa/code/ts/tests/server.test.ts:45)"}, "properties": {"repobilityId": "79319a162b8e7ff2", "scanner": "scanner-primary", "fingerprint": "a483e3f1df563d6c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-ee170cea5be40f0a", "level": "error", "message": {"text": "Dangling fetch: POST https://api.anthropic.com/v1/messages (phases/00-setup-and-tooling/04-apis-and-keys/code/first_api_call.ts:74)"}, "properties": {"repobilityId": "cad93d8765f24b4c", "scanner": "scanner-primary", "fingerprint": "ee170cea5be40f0a", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-4a8f762925460ea1", "level": "note", "message": {"text": "Unused endpoint: GET /lesson/next"}, "properties": {"repobilityId": "32f63f9b2be92ee9", "scanner": "scanner-primary", "fingerprint": "4a8f762925460ea1", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-b33b638af57cd3a9", "level": "note", "message": {"text": "Unused endpoint: POST /lesson/:id/submit"}, "properties": {"repobilityId": "8cb69f4bd935eab1", "scanner": "scanner-primary", "fingerprint": "b33b638af57cd3a9", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-1008c575819b3d37", "level": "note", "message": {"text": "Unused endpoint: GET /jobs"}, "properties": {"repobilityId": "561b9258eff0c578", "scanner": "scanner-primary", "fingerprint": "1008c575819b3d37", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-80182839f64600f5", "level": "note", "message": {"text": "Unused endpoint: GET /job/:id"}, "properties": {"repobilityId": "7694fbdc9b1d0e2d", "scanner": "scanner-primary", "fingerprint": "80182839f64600f5", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-4c197182957464b0", "level": "note", "message": {"text": "Unused endpoint: GET /document/:id"}, "properties": {"repobilityId": "5a1e1b85225d20b4", "scanner": "scanner-primary", "fingerprint": "4c197182957464b0", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-d504b80adc9409ec", "level": "note", "message": {"text": "Unused endpoint: GET /dashboard"}, "properties": {"repobilityId": "caf4a13b819199cb", "scanner": "scanner-primary", "fingerprint": "d504b80adc9409ec", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-50719d00ac3cf209", "level": "note", "message": {"text": "Unused endpoint: GET /migrations"}, "properties": {"repobilityId": "23e921e1717dcb94", "scanner": "scanner-primary", "fingerprint": "50719d00ac3cf209", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-8e8bb263642cdbf9", "level": "note", "message": {"text": "Unused endpoint: GET /migrations/:id"}, "properties": {"repobilityId": "19197b5f5e4eab47", "scanner": "scanner-primary", "fingerprint": "8e8bb263642cdbf9", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-07f772e4ca8f34fa", "level": "note", "message": {"text": "Unused endpoint: POST /trace"}, "properties": {"repobilityId": "26e0c9b0741a6ba7", "scanner": "scanner-primary", "fingerprint": "07f772e4ca8f34fa", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-6eab0e0e4e3fc0c9", "level": "note", "message": {"text": "Unused endpoint: GET /dashboard.json"}, "properties": {"repobilityId": "f5a41e80e60d61c8", "scanner": "scanner-primary", "fingerprint": "6eab0e0e4e3fc0c9", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-59f45351017a2161", "level": "note", "message": {"text": "Unused endpoint: GET /query"}, "properties": {"repobilityId": "0e57e21d599ab34d", "scanner": "scanner-primary", "fingerprint": "59f45351017a2161", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-1bb3714794b14146", "level": "note", "message": {"text": "Unused endpoint: POST /query"}, "properties": {"repobilityId": "d3284bbb8496ce8a", "scanner": "scanner-primary", "fingerprint": "1bb3714794b14146", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-0ae38010c60493f1", "level": "note", "message": {"text": "Unused endpoint: POST /webhook"}, "properties": {"repobilityId": "339443bdeb65fb37", "scanner": "scanner-primary", "fingerprint": "0ae38010c60493f1", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}]}]}