{"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-9606f61937399bb5", "name": "Possibly dead Python function: temperature_sample", "shortDescription": {"text": "Possibly dead Python function: temperature_sample"}, "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-2ebaee49428f0ad1", "name": "Possibly dead Python function: top_k_sample", "shortDescription": {"text": "Possibly dead Python function: top_k_sample"}, "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-d1714a4ff95a0eb8", "name": "Possibly dead Python function: top_p_sample", "shortDescription": {"text": "Possibly dead Python function: top_p_sample"}, "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-f0b8c295c55c6252", "name": "Possibly dead Python function: tool_calculator", "shortDescription": {"text": "Possibly dead Python function: tool_calculator"}, "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-ebfc0f042fde4b88", "name": "Possibly dead Python function: loss_W", "shortDescription": {"text": "Possibly dead Python function: loss_W"}, "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-36873662b6a199bd", "name": "Possibly dead Python function: loss_X", "shortDescription": {"text": "Possibly dead Python function: loss_X"}, "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-5fbc10f3624b8893", "name": "Possibly dead Python function: loss_b", "shortDescription": {"text": "Possibly dead Python function: loss_b"}, "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-24ca2aa70ae7ba72", "name": "Possibly dead Python function: loss_W1_2", "shortDescription": {"text": "Possibly dead Python function: loss_W1_2"}, "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-8e9fc7122e57327f", "name": "Possibly dead Python function: loss_z", "shortDescription": {"text": "Possibly dead Python function: loss_z"}, "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-cf8777c7fbd5e3e4", "name": "Possibly dead Python function: loss_z_batch", "shortDescription": {"text": "Possibly dead Python function: loss_z_batch"}, "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-b7c5f240bab558ab", "name": "Possibly dead Python function: loss_fn", "shortDescription": {"text": "Possibly dead Python function: loss_fn"}, "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-1490a565ec0ed4ea", "name": "Possibly dead Python function: loss_W1", "shortDescription": {"text": "Possibly dead Python function: loss_W1"}, "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-0510a54f1acf6022", "name": "Possibly dead Python function: loss_z", "shortDescription": {"text": "Possibly dead Python function: loss_z"}, "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-c3f56e946daf4f13", "name": "Insecure pattern 'eval_used' in phase5-agent-architecture/01_minimal_agent_loop.py:38", "shortDescription": {"text": "Insecure pattern 'eval_used' in phase5-agent-architecture/01_minimal_agent_loop.py:38"}, "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-f3ba9e3d799e866c", "name": "Insecure pattern 'eval_used' in phase5-agent-architecture/02_tool_calling.py:50", "shortDescription": {"text": "Insecure pattern 'eval_used' in phase5-agent-architecture/02_tool_calling.py:50"}, "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-448b85619eb088b9", "name": "Insecure pattern 'eval_used' in phase5-agent-architecture/03_agent_runtime.py:42", "shortDescription": {"text": "Insecure pattern 'eval_used' in phase5-agent-architecture/03_agent_runtime.py:42"}, "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-6372cebde0220094", "name": "No auth library detected", "shortDescription": {"text": "No auth library detected"}, "fullDescription": {"text": "The scanner did not find any standard auth library (JWT, OAuth, NextAuth, Auth0, etc.). The repo has auth/admin/session surface indicators, so auth may live in custom code, in a separate service, or be missing."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-6893a6c8b0861585", "name": "Very low test-to-source ratio", "shortDescription": {"text": "Very low test-to-source ratio"}, "fullDescription": {"text": "0 test file(s) for 46 source file(s) (ratio 0.00). Consider adding integration or unit tests for critical paths."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-fe61efcee13c97ec", "name": "37 TODO/FIXME markers", "shortDescription": {"text": "37 TODO/FIXME markers"}, "fullDescription": {"text": "High count of TODO/FIXME/HACK markers \u2014 track them as issues so they're not forgotten."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-141b30a41e03817b", "name": "No license file detected", "shortDescription": {"text": "No license file detected"}, "fullDescription": {"text": "No LICENSE/COPYING/NOTICE file was found. Generated repositories often omit licensing, which blocks reuse and automated intake."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-3ab5d313dda8e5f9", "name": "Debug logging residue appears in source files", "shortDescription": {"text": "Debug logging residue appears in source files"}, "fullDescription": {"text": "Found 1382 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-b9088664ace7f748", "name": "Composite production-readiness gap", "shortDescription": {"text": "Composite production-readiness gap"}, "fullDescription": {"text": "Multiple low-cost hardening controls are missing together: license, ci, tests. Opus verification showed these co-occurring gaps are a better readiness signal than reading each flag in isolation."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-749d4bc1bd66df5f", "name": "Agent instructions exist but release-hardening basics are missing", "shortDescription": {"text": "Agent instructions exist but release-hardening basics are missing"}, "fullDescription": {"text": "AI-coder instruction files were found, but the repo is missing license, ci, tests. 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-2679282aa1c484b5", "name": "Agent authority lacks a verifier contract: AGENTS.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: AGENTS.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-3787d41816990824", "name": "Commented-code block (5 lines) in phase2-transformer/05_gpt_from_scratch.py:191", "shortDescription": {"text": "Commented-code block (5 lines) in phase2-transformer/05_gpt_from_scratch.py:191"}, "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-4c7a5752f8eb2335", "name": "Commented-code block (6 lines) in phase2-transformer/05_gpt_from_scratch_self_write.py:172", "shortDescription": {"text": "Commented-code block (6 lines) in phase2-transformer/05_gpt_from_scratch_self_write.py:172"}, "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-c464c703ab82b2e6", "name": "Commented-code block (6 lines) in phase2-transformer/04_transformer_block.py:205", "shortDescription": {"text": "Commented-code block (6 lines) in phase2-transformer/04_transformer_block.py:205"}, "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-d3d1f1ddb8ff7adf", "name": "Commented-code block (5 lines) in phase2-transformer/03_multi_head_attention.py:38", "shortDescription": {"text": "Commented-code block (5 lines) in phase2-transformer/03_multi_head_attention.py:38"}, "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-dd5f443af3d46ae7", "name": "Commented-code block (9 lines) in phase2-transformer/02_self_attention_self_write.py:212", "shortDescription": {"text": "Commented-code block (9 lines) in phase2-transformer/02_self_attention_self_write.py:212"}, "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-526ba351564315db", "name": "Commented-code block (5 lines) in phase2-transformer/04_transformer_block_self_write.py:261", "shortDescription": {"text": "Commented-code block (5 lines) in phase2-transformer/04_transformer_block_self_write.py:261"}, "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-79c0694374fa2ebc", "name": "Commented-code block (6 lines) in phase2-transformer/01_word_embeddings_self_write.py:134", "shortDescription": {"text": "Commented-code block (6 lines) in phase2-transformer/01_word_embeddings_self_write.py:134"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b14035605af2c8bb", "name": "Legacy-named symbol `\u03c0_old` in phase3-training/04_rlhf.py:256", "shortDescription": {"text": "Legacy-named symbol `\u03c0_old` in phase3-training/04_rlhf.py:256"}, "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-20014ee882627bd7", "name": "Commented-code block (10 lines) in phase0-math/01_vectors_and_axes.py:117", "shortDescription": {"text": "Commented-code block (10 lines) in phase0-math/01_vectors_and_axes.py:117"}, "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-967f7725aaa044b7", "name": "Commented-code block (6 lines) in phase0-math/02_matmul_and_shapes.py:42", "shortDescription": {"text": "Commented-code block (6 lines) in phase0-math/02_matmul_and_shapes.py:42"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-04a76bec3461a540", "name": "Commented-code block (5 lines) in phase0-math/03_reshape_transpose_split_self_write.py:173", "shortDescription": {"text": "Commented-code block (5 lines) in phase0-math/03_reshape_transpose_split_self_write.py:173"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f689428ef8bf3371", "name": "Commented-code block (8 lines) in phase0-math/04_matrix_calculus.py:122", "shortDescription": {"text": "Commented-code block (8 lines) in phase0-math/04_matrix_calculus.py:122"}, "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-07413c36a5364654", "name": "Commented-code block (5 lines) in phase0-math/01_vectors_and_axes_self_write.py:69", "shortDescription": {"text": "Commented-code block (5 lines) in phase0-math/01_vectors_and_axes_self_write.py:69"}, "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-3edd9e006e6fa1e1", "name": "Commented-code block (5 lines) in phase1-foundations/01_numpy_basics_self_write.py:235", "shortDescription": {"text": "Commented-code block (5 lines) in phase1-foundations/01_numpy_basics_self_write.py:235"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d4abd50fb789576b", "name": "Commented-code block (7 lines) in phase1-foundations/02_gradient_descent_self_write.py:205", "shortDescription": {"text": "Commented-code block (7 lines) in phase1-foundations/02_gradient_descent_self_write.py:205"}, "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-62e0696449915f42", "name": "Commented-code block (10 lines) in phase1-foundations/03_neural_network_self_write.py:420", "shortDescription": {"text": "Commented-code block (10 lines) in phase1-foundations/03_neural_network_self_write.py:420"}, "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-802db42f9d54f3ca", "name": "Commented-code block (5 lines) in phase1-foundations/01_numpy_basics.py:43", "shortDescription": {"text": "Commented-code block (5 lines) in phase1-foundations/01_numpy_basics.py:43"}, "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-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:\nphase2-transformer/05_gpt_from_scratch.py:forward, phase2-transformer/05_gpt_from_scratch.py:forward, phase2-transformer/05_gpt_from_scratch.py:forward, phase2-transformer/05_gpt_from_scratch.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-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:\nphase2-transformer/reset_exercises_04.py:replace_block, phase2-transformer/reset_exercises_03.py:replace_block, phase2-transformer/reset_exercises_02.py:replace_block\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-fe1d9311d6aee734", "name": "Near-duplicate function bodies in 12 places", "shortDescription": {"text": "Near-duplicate function bodies in 12 places"}, "fullDescription": {"text": "Functions with the same first-5-line body hash:\nphase2-transformer/reset_exercises_04.py:main, phase2-transformer/reset_exercises_05.py:main, phase2-transformer/reset_exercises_03.py:main, phase2-transformer/reset_exercises_02.py:main\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-0027e313ade46c8f", "name": "Near-duplicate function bodies in 7 places", "shortDescription": {"text": "Near-duplicate function bodies in 7 places"}, "fullDescription": {"text": "Functions with the same first-5-line body hash:\nphase2-transformer/03_multi_head_attention_self_write.py:require_not_none, phase2-transformer/02_self_attention_self_write.py:require_not_none, phase2-transformer/04_transformer_block_self_write.py:require_not_none, phase0-math/03_reshape_transpose_split_self_write.py:require_not_none\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-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:\nphase2-transformer/03_multi_head_attention_self_write.py:require_true, phase2-transformer/04_transformer_block_self_write.py:require_true\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:\nphase2-transformer/reset_exercises_03.py:replace_once, phase2-transformer/reset_exercises_02.py:replace_once, phase2-transformer/reset_exercises_01.py:replace_once, phase0-math/reset_exercises_04.py:replace_once\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}}]}}, "automationDetails": {"id": "repobility/24654"}, "properties": {"repository": "boblee0717/llm-learning", "repoUrl": "https://github.com/boblee0717/llm-learning", "branch": "main"}, "results": [{"ruleId": "scanner-9606f61937399bb5", "level": "note", "message": {"text": "Possibly dead Python function: temperature_sample"}, "properties": {"repobilityId": "32ca96c3782b66fe", "scanner": "scanner-primary", "fingerprint": "9606f61937399bb5", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "phase3-training/05_inference_optimization.py:296"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-2ebaee49428f0ad1", "level": "note", "message": {"text": "Possibly dead Python function: top_k_sample"}, "properties": {"repobilityId": "d91607251ec0fbd7", "scanner": "scanner-primary", "fingerprint": "2ebaee49428f0ad1", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "phase3-training/05_inference_optimization.py:301"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-d1714a4ff95a0eb8", "level": "note", "message": {"text": "Possibly dead Python function: top_p_sample"}, "properties": {"repobilityId": "7675429ca0b12d27", "scanner": "scanner-primary", "fingerprint": "d1714a4ff95a0eb8", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "phase3-training/05_inference_optimization.py:308"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-f0b8c295c55c6252", "level": "note", "message": {"text": "Possibly dead Python function: tool_calculator"}, "properties": {"repobilityId": "a41cb9e819e1f52d", "scanner": "scanner-primary", "fingerprint": "f0b8c295c55c6252", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "phase5-agent-architecture/01_minimal_agent_loop.py:32"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-ebfc0f042fde4b88", "level": "note", "message": {"text": "Possibly dead Python function: loss_W"}, "properties": {"repobilityId": "26c811d4a87695d0", "scanner": "scanner-primary", "fingerprint": "ebfc0f042fde4b88", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "phase0-math/04_matrix_calculus_self_write.py:98"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-36873662b6a199bd", "level": "note", "message": {"text": "Possibly dead Python function: loss_X"}, "properties": {"repobilityId": "4653792985da8d14", "scanner": "scanner-primary", "fingerprint": "36873662b6a199bd", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "phase0-math/04_matrix_calculus_self_write.py:99"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-5fbc10f3624b8893", "level": "note", "message": {"text": "Possibly dead Python function: loss_b"}, "properties": {"repobilityId": "b5024c13c958d970", "scanner": "scanner-primary", "fingerprint": "5fbc10f3624b8893", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "phase0-math/04_matrix_calculus_self_write.py:100"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-24ca2aa70ae7ba72", "level": "note", "message": {"text": "Possibly dead Python function: loss_W1_2"}, "properties": {"repobilityId": "64c41b186752daf9", "scanner": "scanner-primary", "fingerprint": "24ca2aa70ae7ba72", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "phase0-math/04_matrix_calculus_self_write.py:143"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-8e9fc7122e57327f", "level": "note", "message": {"text": "Possibly dead Python function: loss_z"}, "properties": {"repobilityId": "20baf37a0f7cdf61", "scanner": "scanner-primary", "fingerprint": "8e9fc7122e57327f", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "phase0-math/04_matrix_calculus_self_write.py:204"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-cf8777c7fbd5e3e4", "level": "note", "message": {"text": "Possibly dead Python function: loss_z_batch"}, "properties": {"repobilityId": "3044ac93f978d1bd", "scanner": "scanner-primary", "fingerprint": "cf8777c7fbd5e3e4", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "phase0-math/04_matrix_calculus_self_write.py:245"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-b7c5f240bab558ab", "level": "note", "message": {"text": "Possibly dead Python function: loss_fn"}, "properties": {"repobilityId": "6e2b105b0c705a4b", "scanner": "scanner-primary", "fingerprint": "b7c5f240bab558ab", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "phase0-math/04_matrix_calculus.py:84"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-1490a565ec0ed4ea", "level": "note", "message": {"text": "Possibly dead Python function: loss_W1"}, "properties": {"repobilityId": "025de4bcbd14fd7b", "scanner": "scanner-primary", "fingerprint": "1490a565ec0ed4ea", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "phase0-math/04_matrix_calculus.py:155"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-0510a54f1acf6022", "level": "note", "message": {"text": "Possibly dead Python function: loss_z"}, "properties": {"repobilityId": "20baf37a0f7cdf61", "scanner": "scanner-primary", "fingerprint": "0510a54f1acf6022", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "phase0-math/04_matrix_calculus.py:215"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-c3f56e946daf4f13", "level": "error", "message": {"text": "Insecure pattern 'eval_used' in phase5-agent-architecture/01_minimal_agent_loop.py:38"}, "properties": {"repobilityId": "746af3a0283ed2ff", "scanner": "scanner-primary", "fingerprint": "c3f56e946daf4f13", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "eval_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "phase5-agent-architecture/01_minimal_agent_loop.py"}, "region": {"startLine": 38}}}]}, {"ruleId": "scanner-f3ba9e3d799e866c", "level": "error", "message": {"text": "Insecure pattern 'eval_used' in phase5-agent-architecture/02_tool_calling.py:50"}, "properties": {"repobilityId": "b837acf034b3d2fc", "scanner": "scanner-primary", "fingerprint": "f3ba9e3d799e866c", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "eval_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "phase5-agent-architecture/02_tool_calling.py"}, "region": {"startLine": 50}}}]}, {"ruleId": "scanner-448b85619eb088b9", "level": "error", "message": {"text": "Insecure pattern 'eval_used' in phase5-agent-architecture/03_agent_runtime.py:42"}, "properties": {"repobilityId": "6126fe8e8dae18cf", "scanner": "scanner-primary", "fingerprint": "448b85619eb088b9", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "eval_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "phase5-agent-architecture/03_agent_runtime.py"}, "region": {"startLine": 42}}}]}, {"ruleId": "scanner-6372cebde0220094", "level": "warning", "message": {"text": "No auth library detected"}, "properties": {"repobilityId": "a5b6035a5bbf8054", "scanner": "scanner-primary", "fingerprint": "6372cebde0220094", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["coverage", "auth"]}}, {"ruleId": "scanner-6893a6c8b0861585", "level": "warning", "message": {"text": "Very low test-to-source ratio"}, "properties": {"repobilityId": "54a7de3f06314bf0", "scanner": "scanner-primary", "fingerprint": "6893a6c8b0861585", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["tests", "coverage"]}}, {"ruleId": "scanner-fe61efcee13c97ec", "level": "note", "message": {"text": "37 TODO/FIXME markers"}, "properties": {"repobilityId": "4b38c118003e07d2", "scanner": "scanner-primary", "fingerprint": "fe61efcee13c97ec", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["maintenance"]}}, {"ruleId": "scanner-141b30a41e03817b", "level": "note", "message": {"text": "No license file detected"}, "properties": {"repobilityId": "b99a3b2dac8dba7e", "scanner": "scanner-primary", "fingerprint": "141b30a41e03817b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["license", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-3ab5d313dda8e5f9", "level": "note", "message": {"text": "Debug logging residue appears in source files"}, "properties": {"repobilityId": "50023977fc4abfda", "scanner": "scanner-primary", "fingerprint": "3ab5d313dda8e5f9", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["debug", "cleanup", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-b9088664ace7f748", "level": "warning", "message": {"text": "Composite production-readiness gap"}, "properties": {"repobilityId": "dc70f5c634663471", "scanner": "scanner-primary", "fingerprint": "b9088664ace7f748", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["production-readiness", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-749d4bc1bd66df5f", "level": "warning", "message": {"text": "Agent instructions exist but release-hardening basics are missing"}, "properties": {"repobilityId": "30e5eb08f4622298", "scanner": "scanner-primary", "fingerprint": "749d4bc1bd66df5f", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-2679282aa1c484b5", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: AGENTS.md"}, "properties": {"repobilityId": "27d579812e6be614", "scanner": "scanner-primary", "fingerprint": "2679282aa1c484b5", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "agents_md"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "AGENTS.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-3787d41816990824", "level": "none", "message": {"text": "Commented-code block (5 lines) in phase2-transformer/05_gpt_from_scratch.py:191"}, "properties": {"repobilityId": "1c5296971de7ec0d", "scanner": "scanner-primary", "fingerprint": "3787d41816990824", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4c7a5752f8eb2335", "level": "none", "message": {"text": "Commented-code block (6 lines) in phase2-transformer/05_gpt_from_scratch_self_write.py:172"}, "properties": {"repobilityId": "aefe5371cb86e469", "scanner": "scanner-primary", "fingerprint": "4c7a5752f8eb2335", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c464c703ab82b2e6", "level": "none", "message": {"text": "Commented-code block (6 lines) in phase2-transformer/04_transformer_block.py:205"}, "properties": {"repobilityId": "f3fceea50dd4f8bd", "scanner": "scanner-primary", "fingerprint": "c464c703ab82b2e6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d3d1f1ddb8ff7adf", "level": "none", "message": {"text": "Commented-code block (5 lines) in phase2-transformer/03_multi_head_attention.py:38"}, "properties": {"repobilityId": "971e53696959f7eb", "scanner": "scanner-primary", "fingerprint": "d3d1f1ddb8ff7adf", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-dd5f443af3d46ae7", "level": "none", "message": {"text": "Commented-code block (9 lines) in phase2-transformer/02_self_attention_self_write.py:212"}, "properties": {"repobilityId": "178b40d55ddeb2b2", "scanner": "scanner-primary", "fingerprint": "dd5f443af3d46ae7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-526ba351564315db", "level": "none", "message": {"text": "Commented-code block (5 lines) in phase2-transformer/04_transformer_block_self_write.py:261"}, "properties": {"repobilityId": "031088a15368a9ce", "scanner": "scanner-primary", "fingerprint": "526ba351564315db", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-79c0694374fa2ebc", "level": "none", "message": {"text": "Commented-code block (6 lines) in phase2-transformer/01_word_embeddings_self_write.py:134"}, "properties": {"repobilityId": "98a6b306e6bd6ebd", "scanner": "scanner-primary", "fingerprint": "79c0694374fa2ebc", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b14035605af2c8bb", "level": "note", "message": {"text": "Legacy-named symbol `\u03c0_old` in phase3-training/04_rlhf.py:256"}, "properties": {"repobilityId": "6f9cc4a5254d9ed3", "scanner": "scanner-primary", "fingerprint": "b14035605af2c8bb", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-20014ee882627bd7", "level": "none", "message": {"text": "Commented-code block (10 lines) in phase0-math/01_vectors_and_axes.py:117"}, "properties": {"repobilityId": "968d9a341f552b08", "scanner": "scanner-primary", "fingerprint": "20014ee882627bd7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-967f7725aaa044b7", "level": "none", "message": {"text": "Commented-code block (6 lines) in phase0-math/02_matmul_and_shapes.py:42"}, "properties": {"repobilityId": "3f0f1173e899aef3", "scanner": "scanner-primary", "fingerprint": "967f7725aaa044b7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-04a76bec3461a540", "level": "none", "message": {"text": "Commented-code block (5 lines) in phase0-math/03_reshape_transpose_split_self_write.py:173"}, "properties": {"repobilityId": "4f76fcb6938358f8", "scanner": "scanner-primary", "fingerprint": "04a76bec3461a540", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f689428ef8bf3371", "level": "none", "message": {"text": "Commented-code block (8 lines) in phase0-math/04_matrix_calculus.py:122"}, "properties": {"repobilityId": "7556794728227e63", "scanner": "scanner-primary", "fingerprint": "f689428ef8bf3371", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-07413c36a5364654", "level": "none", "message": {"text": "Commented-code block (5 lines) in phase0-math/01_vectors_and_axes_self_write.py:69"}, "properties": {"repobilityId": "2ab231e630e80a02", "scanner": "scanner-primary", "fingerprint": "07413c36a5364654", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3edd9e006e6fa1e1", "level": "none", "message": {"text": "Commented-code block (5 lines) in phase1-foundations/01_numpy_basics_self_write.py:235"}, "properties": {"repobilityId": "68286bc0415a44cb", "scanner": "scanner-primary", "fingerprint": "3edd9e006e6fa1e1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d4abd50fb789576b", "level": "none", "message": {"text": "Commented-code block (7 lines) in phase1-foundations/02_gradient_descent_self_write.py:205"}, "properties": {"repobilityId": "055d15eb9238ec6d", "scanner": "scanner-primary", "fingerprint": "d4abd50fb789576b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-62e0696449915f42", "level": "none", "message": {"text": "Commented-code block (10 lines) in phase1-foundations/03_neural_network_self_write.py:420"}, "properties": {"repobilityId": "ff739b0b6060a4a6", "scanner": "scanner-primary", "fingerprint": "62e0696449915f42", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-802db42f9d54f3ca", "level": "none", "message": {"text": "Commented-code block (5 lines) in phase1-foundations/01_numpy_basics.py:43"}, "properties": {"repobilityId": "bc08c3a9965d95ad", "scanner": "scanner-primary", "fingerprint": "802db42f9d54f3ca", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-49c98f7cedd9c977", "level": "note", "message": {"text": "Near-duplicate function bodies in 4 places"}, "properties": {"repobilityId": "256a013589508c8e", "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": "a9d3b1459545efca", "scanner": "scanner-primary", "fingerprint": "be46ea126aa5d8dc", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-fe1d9311d6aee734", "level": "note", "message": {"text": "Near-duplicate function bodies in 12 places"}, "properties": {"repobilityId": "a94afc78938d1224", "scanner": "scanner-primary", "fingerprint": "fe1d9311d6aee734", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-fe1d9311d6aee734", "level": "note", "message": {"text": "Near-duplicate function bodies in 12 places"}, "properties": {"repobilityId": "0808c2b44d701f43", "scanner": "scanner-primary", "fingerprint": "fe1d9311d6aee734", "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": "17df8127672a0e41", "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": "e219b6cfd4c2550b", "scanner": "scanner-primary", "fingerprint": "be46ea126aa5d8dc", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-0027e313ade46c8f", "level": "note", "message": {"text": "Near-duplicate function bodies in 7 places"}, "properties": {"repobilityId": "6f7a84c33843c646", "scanner": "scanner-primary", "fingerprint": "0027e313ade46c8f", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-0027e313ade46c8f", "level": "note", "message": {"text": "Near-duplicate function bodies in 7 places"}, "properties": {"repobilityId": "904a0898646ed87a", "scanner": "scanner-primary", "fingerprint": "0027e313ade46c8f", "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": "2c2aab6fd04ce88c", "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": "dd0a25dfa3917791", "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": "167d8ca39c18751b", "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": "f58d56ea2e8235d1", "scanner": "scanner-primary", "fingerprint": "46969939caf8120b", "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": "cfe4d3f82b19c6b5", "scanner": "scanner-primary", "fingerprint": "be46ea126aa5d8dc", "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": "37ff6cf0d0eee30e", "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": "1be3b5e22f54a868", "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": "7dbd75a5c830ab65", "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": "625402d2f80f2846", "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": "b44e151cbec6fa71", "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": "3fb18c443d99c735", "scanner": "scanner-primary", "fingerprint": "49c98f7cedd9c977", "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": "8db6cf7213d28694", "scanner": "scanner-primary", "fingerprint": "49c98f7cedd9c977", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}]}]}