{"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-787201ff4ced54d4", "name": "Possibly dead Python function: create_reaction_morph", "shortDescription": {"text": "Possibly dead Python function: create_reaction_morph"}, "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-7e6ab12518738bf5", "name": "Possibly dead Python function: create_nope_flip", "shortDescription": {"text": "Possibly dead Python function: create_nope_flip"}, "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-c00def7f3ac7ad2e", "name": "Possibly dead Python function: apply_simple_mirror", "shortDescription": {"text": "Possibly dead Python function: apply_simple_mirror"}, "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-2915e441c52ef80b", "name": "Possibly dead Python function: create_path_from_points", "shortDescription": {"text": "Possibly dead Python function: create_path_from_points"}, "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-93b809ea77c217bf", "name": "Possibly dead Python function: apply_trail_effect", "shortDescription": {"text": "Possibly dead Python function: apply_trail_effect"}, "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-61cea679d0aa6dd0", "name": "Possibly dead Python function: create_fade_to_color", "shortDescription": {"text": "Possibly dead Python function: create_fade_to_color"}, "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-08c50a3e2f3c362a", "name": "Possibly dead Python function: create_breathing_animation", "shortDescription": {"text": "Possibly dead Python function: create_breathing_animation"}, "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-3785fea64652fce6", "name": "Possibly dead Python function: draw_text_with_shadow", "shortDescription": {"text": "Possibly dead Python function: draw_text_with_shadow"}, "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-27a09d7b9dec60b9", "name": "Possibly dead Python function: draw_text_with_glow", "shortDescription": {"text": "Possibly dead Python function: draw_text_with_glow"}, "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-11262c318bff3896", "name": "Possibly dead Python function: draw_text_in_box", "shortDescription": {"text": "Possibly dead Python function: draw_text_in_box"}, "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-1b2e5eb7e903016b", "name": "Possibly dead Python function: scale_font_for_frame", "shortDescription": {"text": "Possibly dead Python function: scale_font_for_frame"}, "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-ab0bca7d29e5855c", "name": "Possibly dead Python function: ease_in_quad", "shortDescription": {"text": "Possibly dead Python function: ease_in_quad"}, "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-05caecb7c50e5fd3", "name": "Possibly dead Python function: ease_in_out_quad", "shortDescription": {"text": "Possibly dead Python function: ease_in_out_quad"}, "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-2d0d3a116ae246e5", "name": "Possibly dead Python function: ease_in_cubic", "shortDescription": {"text": "Possibly dead Python function: ease_in_cubic"}, "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-dc5f94ea06ef3a10", "name": "Possibly dead Python function: ease_out_cubic", "shortDescription": {"text": "Possibly dead Python function: ease_out_cubic"}, "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-e987a483ba859264", "name": "Possibly dead Python function: ease_in_out_cubic", "shortDescription": {"text": "Possibly dead Python function: ease_in_out_cubic"}, "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-510368ba27d80c4b", "name": "Possibly dead Python function: ease_in_out_bounce", "shortDescription": {"text": "Possibly dead Python function: ease_in_out_bounce"}, "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-ce1cbd739cabcda6", "name": "Possibly dead Python function: ease_in_elastic", "shortDescription": {"text": "Possibly dead Python function: ease_in_elastic"}, "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-e98408993d69497e", "name": "Possibly dead Python function: ease_out_elastic", "shortDescription": {"text": "Possibly dead Python function: ease_out_elastic"}, "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-c2c95dd5cef12cce", "name": "Possibly dead Python function: ease_in_out_elastic", "shortDescription": {"text": "Possibly dead Python function: ease_in_out_elastic"}, "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-9cd8f6554520591f", "name": "Possibly dead Python function: ease_back_in", "shortDescription": {"text": "Possibly dead Python function: ease_back_in"}, "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-074dd16ac34b30f8", "name": "Possibly dead Python function: ease_back_out", "shortDescription": {"text": "Possibly dead Python function: ease_back_out"}, "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-73b40af589ed6894", "name": "Possibly dead Python function: ease_back_in_out", "shortDescription": {"text": "Possibly dead Python function: ease_back_in_out"}, "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-73c42ffbc6b2cacd", "name": "Possibly dead Python function: apply_squash_stretch", "shortDescription": {"text": "Possibly dead Python function: apply_squash_stretch"}, "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-b84c726d87738e67", "name": "Possibly dead Python function: emit_confetti", "shortDescription": {"text": "Possibly dead Python function: emit_confetti"}, "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-98fbf72e7def6dbd", "name": "Possibly dead Python function: emit_sparkles", "shortDescription": {"text": "Possibly dead Python function: emit_sparkles"}, "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-6efe556bd041c430", "name": "Possibly dead Python function: add_motion_blur", "shortDescription": {"text": "Possibly dead Python function: add_motion_blur"}, "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-a718597732f5a382", "name": "Stray `console.log` in TS/JS \u2014 skills/archive/pptx/scripts/html2pptx.js:921", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 skills/archive/pptx/scripts/html2pptx.js:921"}, "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-9710c8d059e53154", "name": "No frontend routes/components detected", "shortDescription": {"text": "No frontend routes/components detected"}, "fullDescription": {"text": "No React/Vue/Next routes were found. This is fine for backend-only repos."}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c1eab8a540f4b7be", "name": "Insecure pattern 'eval_used' in agents/security/AGENTS.md:53", "shortDescription": {"text": "Insecure pattern 'eval_used' in agents/security/AGENTS.md:53"}, "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-9cefab1892c3fba7", "name": "Insecure pattern 'exec_used' in agents/security/AGENTS.md:53", "shortDescription": {"text": "Insecure pattern 'exec_used' in agents/security/AGENTS.md:53"}, "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-05f9b3ff21b540fa", "name": "Insecure pattern 'subprocess_shell_true' in agents/security/AGENTS.md:53", "shortDescription": {"text": "Insecure pattern 'subprocess_shell_true' in agents/security/AGENTS.md:53"}, "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-b2f133c428fd1484", "name": "Insecure pattern 'dangerous_innerhtml' in agents/security/AGENTS.md:53", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in agents/security/AGENTS.md:53"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ed50cd0bb1d8bdae", "name": "Insecure pattern 'weak_hash' in agents/security/AGENTS.md:163", "shortDescription": {"text": "Insecure pattern 'weak_hash' in agents/security/AGENTS.md:163"}, "fullDescription": {"text": "Found a known-risky pattern (weak_hash). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ed07828e0eb253a5", "name": "Insecure pattern 'subprocess_shell_true' in skills/archive/webapp-testing/scripts/with_server.py:71", "shortDescription": {"text": "Insecure pattern 'subprocess_shell_true' in skills/archive/webapp-testing/scripts/with_server.py:71"}, "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-bb66ca5d22e543ea", "name": "Possible secret in skills/archive/langsmith-fetch/SKILL.md", "shortDescription": {"text": "Possible secret in skills/archive/langsmith-fetch/SKILL.md"}, "fullDescription": {"text": "Detected pattern matching generic_api_key. Rotate the credential and move to a secret manager."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "critical", "confidence": 1.0}}, {"id": "scanner-2b6e35a2e7f245d4", "name": "Very large file: skills/archive/docx/scripts/document.py (1276 lines)", "shortDescription": {"text": "Very large file: skills/archive/docx/scripts/document.py (1276 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": "17 tests / 80 src (ratio 0.21)."}, "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 478 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 34 placeholder/mock markers across 8 source files. This often means the repo looks complete while core flows still use generated scaffolding or fake data."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-2d0c7b7ab8f8aacf", "name": "Critical user flow still appears backed by mock or placeholder data", "shortDescription": {"text": "Critical user flow still appears backed by mock or placeholder data"}, "fullDescription": {"text": "A payment/auth/admin/order/billing-style flow contains mock, fake, TODO, dummy, or placeholder markers in runtime source. In the Fable corpus this is a high-leverage completeness smell: the app can look finished while the money, identity, or tenant flow is still scaffolded."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-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-122f91b7f2906dc4", "name": "Agent authority lacks a verifier contract: .claude/settings.json", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/settings.json"}, "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-21a2cf7b57a96de0", "name": "Agent authority lacks a verifier contract: .codex/prompts/opsx-sync.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .codex/prompts/opsx-sync.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-ad9858f90cf9be34", "name": "Agent authority lacks a verifier contract: .codex/prompts/opsx-archive.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .codex/prompts/opsx-archive.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-0a4088e7fb288ca2", "name": "Agent authority lacks a verifier contract: .codex/prompts/opsx-apply.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .codex/prompts/opsx-apply.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-c1b84905a1d216b0", "name": "Agent authority lacks a verifier contract: skills/archive/invoice-organizer/SKILL.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: skills/archive/invoice-organizer/SKILL.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-8bb21e5d3f17e69c", "name": "Agent authority lacks a verifier contract: skills/archive/connect/SKILL.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: skills/archive/connect/SKILL.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-933eb0ff0cf840e1", "name": "Agent authority lacks a verifier contract: skills/archive/lead-research-assistant/SKILL.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: skills/archive/lead-research-assistant/SKILL.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-5ef6cc1993f0700e", "name": "Agent authority lacks a verifier contract: skills/archive/slack-gif-creator/SKILL.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: skills/archive/slack-gif-creator/SKILL.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-6fb06182a7dd688a", "name": "Agent authority lacks a verifier contract: skills/archive/skill-installer/SKILL.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: skills/archive/skill-installer/SKILL.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-7a3988c06cef2fe0", "name": "Agent authority lacks a verifier contract: skills/archive/video-downloader/SKILL.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: skills/archive/video-downloader/SKILL.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-dd9f674fc8d999b0", "name": "Agent instruction contains unpinned remote install: skills/archive/docx/SKILL.md", "shortDescription": {"text": "Agent instruction contains unpinned remote install: skills/archive/docx/SKILL.md"}, "fullDescription": {"text": "Remote install commands in agent instructions are a supply-chain risk, especially when an agent can execute shell commands."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-2b1ab78c0253bdf7", "name": "Agent instruction contains unpinned remote install: skills/archive/pptx/SKILL.md", "shortDescription": {"text": "Agent instruction contains unpinned remote install: skills/archive/pptx/SKILL.md"}, "fullDescription": {"text": "Remote install commands in agent instructions are a supply-chain risk, especially when an agent can execute shell commands."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-3d2fe6f63764c7ac", "name": "Agent authority lacks a verifier contract: skills/archive/meeting-insights-analyzer/SKILL.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: skills/archive/meeting-insights-analyzer/SKILL.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-2df31f99191ffc88", "name": "Agent authority lacks a verifier contract: skills/archive/changelog-generator/SKILL.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: skills/archive/changelog-generator/SKILL.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-7a0b2cc1b323f091", "name": "Agent authority lacks a verifier contract: skills/brainstorming/SKILL.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: skills/brainstorming/SKILL.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-3d44a11dee83bafc", "name": "Agent authority lacks a verifier contract: skills/personal/beads-orchestration/SKILL.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: skills/personal/beads-orchestration/SKILL.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-7f98616156257ce4", "name": "Agent authority lacks a verifier contract: skills/personal/beads-orchestration/subskills/beads-cleanup/SKILL.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: skills/personal/beads-orchestration/subskills/beads-cleanup/SKILL.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-97c4ebd2158c0ab1", "name": "Agent authority lacks a verifier contract: skills/personal/th-tooling/subskills/transcript-retention/SKILL.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: skills/personal/th-tooling/subskills/transcript-retention/SKILL.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-a1c57c98e9d4a48e", "name": "Agent authority lacks a verifier contract: skills/personal/th-tooling/subskills/config-surface-audit/SKILL.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: skills/personal/th-tooling/subskills/config-surface-audit/SKILL.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-4f0bb230eb63c4ae", "name": "Agent authority lacks a verifier contract: skills/personal/th-engineering/subskills/skill-standards/tests/fixtures/broke", "shortDescription": {"text": "Agent authority lacks a verifier contract: skills/personal/th-engineering/subskills/skill-standards/tests/fixtures/broken-skill/SKILL.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-4121b32771247ca5", "name": "Agent authority lacks a verifier contract: skills/personal/th-engineering/subskills/skill-standards/tests/fixtures/broke", "shortDescription": {"text": "Agent authority lacks a verifier contract: skills/personal/th-engineering/subskills/skill-standards/tests/fixtures/broken-superskill/SKILL.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-efec286bfded799c", "name": "Agent authority lacks a verifier contract: skills/bws-cli-skill/SKILL.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: skills/bws-cli-skill/SKILL.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-8afcc3c9bb161df0", "name": "Network/subprocess call without timeout or try/except \u2014 skills/archive/skill-installer/scripts/github_utils.py:16", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 skills/archive/skill-installer/scripts/github_utils.py:16"}, "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-52265c2b6d90a50f", "name": "Network/subprocess call without timeout or try/except \u2014 skills/archive/skill-installer/scripts/install-skill-from-github", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 skills/archive/skill-installer/scripts/install-skill-from-github.py:100"}, "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-5ef9bcf90242943d", "name": "Network/subprocess call without timeout or try/except \u2014 skills/archive/video-downloader/scripts/download_video.py:24", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 skills/archive/video-downloader/scripts/download_video.py:24"}, "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-71af38d7f3bb3c07", "name": "Network/subprocess call without timeout or try/except \u2014 skills/archive/docx/ooxml/scripts/validation/redlining.py:153", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 skills/archive/docx/ooxml/scripts/validation/redlining.py:153"}, "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-d5bdf0d0ae173d40", "name": "Legacy-named symbol `xml_copy` in skills/archive/docx/ooxml/scripts/validation/base.py:769", "shortDescription": {"text": "Legacy-named symbol `xml_copy` in skills/archive/docx/ooxml/scripts/validation/base.py:769"}, "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-9c2872438e98d127", "name": "Commented-code block (6 lines) in skills/archive/pptx/scripts/thumbnail.py:32", "shortDescription": {"text": "Commented-code block (6 lines) in skills/archive/pptx/scripts/thumbnail.py:32"}, "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-4473be484fd3f32c", "name": "Network/subprocess call without timeout or try/except \u2014 skills/archive/pptx/scripts/thumbnail.py:219", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 skills/archive/pptx/scripts/thumbnail.py:219"}, "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-56b1d5c677f27f6d", "name": "Network/subprocess call without timeout or try/except \u2014 skills/archive/pptx/ooxml/scripts/validation/redlining.py:153", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 skills/archive/pptx/ooxml/scripts/validation/redlining.py:153"}, "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-ffe38a5b92cf7e18", "name": "Legacy-named symbol `xml_copy` in skills/archive/pptx/ooxml/scripts/validation/base.py:769", "shortDescription": {"text": "Legacy-named symbol `xml_copy` in skills/archive/pptx/ooxml/scripts/validation/base.py:769"}, "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-743e53cd44b3a727", "name": "Network/subprocess call without timeout or try/except \u2014 skills/archive/xlsx/recalc.py:92", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 skills/archive/xlsx/recalc.py:92"}, "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-12f9a5144e6bd614", "name": "Commented-code block (5 lines) in skills/archive/pdf/scripts/extract_form_field_info.py:56", "shortDescription": {"text": "Commented-code block (5 lines) in skills/archive/pdf/scripts/extract_form_field_info.py:56"}, "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-3602746b100a7f3f", "name": "Network/subprocess call without timeout or try/except \u2014 skills/personal/beads-orchestration/subskills/beads-pr-reviewer-", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 skills/personal/beads-orchestration/subskills/beads-pr-reviewer-worker/scripts/create_inline_review_comment.py:13"}, "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-3042c794debb7d3b", "name": "Network/subprocess call without timeout or try/except \u2014 skills/personal/beads-orchestration/subskills/beads-pr-reviewer-", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 skills/personal/beads-orchestration/subskills/beads-pr-reviewer-worker/scripts/list_review_threads.py:84"}, "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-b7c2d78241f94e94", "name": "Network/subprocess call without timeout or try/except \u2014 skills/personal/beads-orchestration/subskills/beads-pr-reviewer-", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 skills/personal/beads-orchestration/subskills/beads-pr-reviewer-worker/scripts/prepare_pr_branch.py:13"}, "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-b4eaedfb3e12e459", "name": "Network/subprocess call without timeout or try/except \u2014 skills/personal/beads-orchestration/subskills/beads-pr-reviewer-", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 skills/personal/beads-orchestration/subskills/beads-pr-reviewer-worker/scripts/resolve_review_thread.py:33"}, "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-ac67b327acfe4d8b", "name": "Network/subprocess call without timeout or try/except \u2014 skills/personal/beads-orchestration/subskills/beads-pr-reviewer-", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 skills/personal/beads-orchestration/subskills/beads-pr-reviewer-worker/scripts/evaluate_merge_readiness.py:39"}, "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-2d3da8c639a911d4", "name": "Network/subprocess call without timeout or try/except \u2014 skills/personal/beads-orchestration/subskills/beads-pr-reviewer-", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 skills/personal/beads-orchestration/subskills/beads-pr-reviewer-worker/scripts/reply_to_review_thread.py:37"}, "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-6bc58a365b480ee1", "name": "Network/subprocess call without timeout or try/except \u2014 skills/personal/beads-orchestration/subskills/beads-pr-reviewer-", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 skills/personal/beads-orchestration/subskills/beads-pr-reviewer-worker/scripts/resolve_review_context.py:21"}, "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-3f863939376714cb", "name": "Network/subprocess call without timeout or try/except \u2014 skills/personal/th-engineering/subskills/excalidraw-diagram/scri", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 skills/personal/th-engineering/subskills/excalidraw-diagram/scripts/render_excalidraw.py:291"}, "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-49a37798a323aff6", "name": "Stub function `log_message` (body is just `pass`/`return`) \u2014 skills/personal/th-engineering/subskills/excalidraw-diagram", "shortDescription": {"text": "Stub function `log_message` (body is just `pass`/`return`) \u2014 skills/personal/th-engineering/subskills/excalidraw-diagram/scripts/render_excalidraw.py:306"}, "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-90d7dc70f403a31a", "name": "Commented-code block (8 lines) in skills/algorithmic-art/templates/generator_template.js:15", "shortDescription": {"text": "Commented-code block (8 lines) in skills/algorithmic-art/templates/generator_template.js:15"}, "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:\nskills/archive/slack-gif-creator/core/typography.py:draw_text_with_outline, skills/archive/slack-gif-creator/core/typography.py:draw_text_with_shadow, skills/archive/slack-gif-creator/core/typography.py:draw_text_with_glow, skills/archive/slack-gif-creator/core/typography.py:draw_text_in_box\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:\nskills/archive/slack-gif-creator/core/visual_effects.py:update, skills/archive/slack-gif-creator/core/visual_effects.py:update\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/21818"}, "properties": {"repository": "Tzeusy/ai-bootstrap", "repoUrl": "https://github.com/Tzeusy/ai-bootstrap", "branch": "main"}, "results": [{"ruleId": "scanner-787201ff4ced54d4", "level": "note", "message": {"text": "Possibly dead Python function: create_reaction_morph"}, "properties": {"repobilityId": "81d9c0bef227427d", "scanner": "scanner-primary", "fingerprint": "787201ff4ced54d4", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "skills/archive/slack-gif-creator/templates/morph.py:200"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-7e6ab12518738bf5", "level": "note", "message": {"text": "Possibly dead Python function: create_nope_flip"}, "properties": {"repobilityId": "8f8956c61bbf346d", "scanner": "scanner-primary", "fingerprint": "7e6ab12518738bf5", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "skills/archive/slack-gif-creator/templates/flip.py:227"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-c00def7f3ac7ad2e", "level": "note", "message": {"text": "Possibly dead Python function: apply_simple_mirror"}, "properties": {"repobilityId": "1b67ac63144e7c19", "scanner": "scanner-primary", "fingerprint": "c00def7f3ac7ad2e", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "skills/archive/slack-gif-creator/templates/kaleidoscope.py:86"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-2915e441c52ef80b", "level": "note", "message": {"text": "Possibly dead Python function: create_path_from_points"}, "properties": {"repobilityId": "93b989b7cbc34939", "scanner": "scanner-primary", "fingerprint": "2915e441c52ef80b", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "skills/archive/slack-gif-creator/templates/move.py:160"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-93b809ea77c217bf", "level": "note", "message": {"text": "Possibly dead Python function: apply_trail_effect"}, "properties": {"repobilityId": "3d6b18201d1d6736", "scanner": "scanner-primary", "fingerprint": "93b809ea77c217bf", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "skills/archive/slack-gif-creator/templates/move.py:199"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-61cea679d0aa6dd0", "level": "note", "message": {"text": "Possibly dead Python function: create_fade_to_color"}, "properties": {"repobilityId": "29ab46bb41a7ca14", "scanner": "scanner-primary", "fingerprint": "61cea679d0aa6dd0", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "skills/archive/slack-gif-creator/templates/fade.py:251"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-08c50a3e2f3c362a", "level": "note", "message": {"text": "Possibly dead Python function: create_breathing_animation"}, "properties": {"repobilityId": "0093210793e4b91e", "scanner": "scanner-primary", "fingerprint": "08c50a3e2f3c362a", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "skills/archive/slack-gif-creator/templates/pulse.py:188"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-3785fea64652fce6", "level": "note", "message": {"text": "Possibly dead Python function: draw_text_with_shadow"}, "properties": {"repobilityId": "871d25a567babc55", "scanner": "scanner-primary", "fingerprint": "3785fea64652fce6", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "skills/archive/slack-gif-creator/core/typography.py:114"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-27a09d7b9dec60b9", "level": "note", "message": {"text": "Possibly dead Python function: draw_text_with_glow"}, "properties": {"repobilityId": "22cd5d380d2a1cb3", "scanner": "scanner-primary", "fingerprint": "27a09d7b9dec60b9", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "skills/archive/slack-gif-creator/core/typography.py:164"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-11262c318bff3896", "level": "note", "message": {"text": "Possibly dead Python function: draw_text_in_box"}, "properties": {"repobilityId": "5d7afcc7104db0b0", "scanner": "scanner-primary", "fingerprint": "11262c318bff3896", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "skills/archive/slack-gif-creator/core/typography.py:218"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-1b2e5eb7e903016b", "level": "note", "message": {"text": "Possibly dead Python function: scale_font_for_frame"}, "properties": {"repobilityId": "8639ec737aceed82", "scanner": "scanner-primary", "fingerprint": "1b2e5eb7e903016b", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "skills/archive/slack-gif-creator/core/typography.py:339"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-ab0bca7d29e5855c", "level": "note", "message": {"text": "Possibly dead Python function: ease_in_quad"}, "properties": {"repobilityId": "9c54008225f34fad", "scanner": "scanner-primary", "fingerprint": "ab0bca7d29e5855c", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "skills/archive/slack-gif-creator/core/easing.py:17"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-05caecb7c50e5fd3", "level": "note", "message": {"text": "Possibly dead Python function: ease_in_out_quad"}, "properties": {"repobilityId": "142c853223e69301", "scanner": "scanner-primary", "fingerprint": "05caecb7c50e5fd3", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "skills/archive/slack-gif-creator/core/easing.py:27"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-2d0d3a116ae246e5", "level": "note", "message": {"text": "Possibly dead Python function: ease_in_cubic"}, "properties": {"repobilityId": "04c4b3dd3a4c80b5", "scanner": "scanner-primary", "fingerprint": "2d0d3a116ae246e5", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "skills/archive/slack-gif-creator/core/easing.py:34"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-dc5f94ea06ef3a10", "level": "note", "message": {"text": "Possibly dead Python function: ease_out_cubic"}, "properties": {"repobilityId": "1527d30f50a4943b", "scanner": "scanner-primary", "fingerprint": "dc5f94ea06ef3a10", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "skills/archive/slack-gif-creator/core/easing.py:39"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-e987a483ba859264", "level": "note", "message": {"text": "Possibly dead Python function: ease_in_out_cubic"}, "properties": {"repobilityId": "4e32e71f9a5016ac", "scanner": "scanner-primary", "fingerprint": "e987a483ba859264", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "skills/archive/slack-gif-creator/core/easing.py:44"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-510368ba27d80c4b", "level": "note", "message": {"text": "Possibly dead Python function: ease_in_out_bounce"}, "properties": {"repobilityId": "0185838c943af0e6", "scanner": "scanner-primary", "fingerprint": "510368ba27d80c4b", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "skills/archive/slack-gif-creator/core/easing.py:71"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-ce1cbd739cabcda6", "level": "note", "message": {"text": "Possibly dead Python function: ease_in_elastic"}, "properties": {"repobilityId": "4a3d8bcbd5ff465b", "scanner": "scanner-primary", "fingerprint": "ce1cbd739cabcda6", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "skills/archive/slack-gif-creator/core/easing.py:78"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-e98408993d69497e", "level": "note", "message": {"text": "Possibly dead Python function: ease_out_elastic"}, "properties": {"repobilityId": "fa5c6451007cfca8", "scanner": "scanner-primary", "fingerprint": "e98408993d69497e", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "skills/archive/slack-gif-creator/core/easing.py:85"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-c2c95dd5cef12cce", "level": "note", "message": {"text": "Possibly dead Python function: ease_in_out_elastic"}, "properties": {"repobilityId": "00839dd091318e93", "scanner": "scanner-primary", "fingerprint": "c2c95dd5cef12cce", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "skills/archive/slack-gif-creator/core/easing.py:92"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-9cd8f6554520591f", "level": "note", "message": {"text": "Possibly dead Python function: ease_back_in"}, "properties": {"repobilityId": "56b2b016f0ad05d0", "scanner": "scanner-primary", "fingerprint": "9cd8f6554520591f", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "skills/archive/slack-gif-creator/core/easing.py:140"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-074dd16ac34b30f8", "level": "note", "message": {"text": "Possibly dead Python function: ease_back_out"}, "properties": {"repobilityId": "32646da19ba276ce", "scanner": "scanner-primary", "fingerprint": "074dd16ac34b30f8", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "skills/archive/slack-gif-creator/core/easing.py:147"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-73b40af589ed6894", "level": "note", "message": {"text": "Possibly dead Python function: ease_back_in_out"}, "properties": {"repobilityId": "2b283166adb35df2", "scanner": "scanner-primary", "fingerprint": "73b40af589ed6894", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "skills/archive/slack-gif-creator/core/easing.py:154"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-73c42ffbc6b2cacd", "level": "note", "message": {"text": "Possibly dead Python function: apply_squash_stretch"}, "properties": {"repobilityId": "69472943e1b79017", "scanner": "scanner-primary", "fingerprint": "73c42ffbc6b2cacd", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "skills/archive/slack-gif-creator/core/easing.py:163"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-b84c726d87738e67", "level": "note", "message": {"text": "Possibly dead Python function: emit_confetti"}, "properties": {"repobilityId": "33332b6a306994c8", "scanner": "scanner-primary", "fingerprint": "b84c726d87738e67", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "skills/archive/slack-gif-creator/core/visual_effects.py:143"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-98fbf72e7def6dbd", "level": "note", "message": {"text": "Possibly dead Python function: emit_sparkles"}, "properties": {"repobilityId": "f608438dccc79c85", "scanner": "scanner-primary", "fingerprint": "98fbf72e7def6dbd", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "skills/archive/slack-gif-creator/core/visual_effects.py:171"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-6efe556bd041c430", "level": "note", "message": {"text": "Possibly dead Python function: add_motion_blur"}, "properties": {"repobilityId": "027405a70cf962b2", "scanner": "scanner-primary", "fingerprint": "6efe556bd041c430", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "skills/archive/slack-gif-creator/core/visual_effects.py:213"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-a718597732f5a382", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 skills/archive/pptx/scripts/html2pptx.js:921"}, "properties": {"repobilityId": "b3e8f77c417ee79c", "scanner": "scanner-primary", "fingerprint": "a718597732f5a382", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-9710c8d059e53154", "level": "none", "message": {"text": "No frontend routes/components detected"}, "properties": {"repobilityId": "44ca61485762e494", "scanner": "scanner-primary", "fingerprint": "9710c8d059e53154", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["coverage"]}}, {"ruleId": "scanner-c1eab8a540f4b7be", "level": "error", "message": {"text": "Insecure pattern 'eval_used' in agents/security/AGENTS.md:53"}, "properties": {"repobilityId": "1a4e68707099824c", "scanner": "scanner-primary", "fingerprint": "c1eab8a540f4b7be", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "eval_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "agents/security/AGENTS.md"}, "region": {"startLine": 53}}}]}, {"ruleId": "scanner-9cefab1892c3fba7", "level": "error", "message": {"text": "Insecure pattern 'exec_used' in agents/security/AGENTS.md:53"}, "properties": {"repobilityId": "9bbbd762d148c44b", "scanner": "scanner-primary", "fingerprint": "9cefab1892c3fba7", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "exec_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "agents/security/AGENTS.md"}, "region": {"startLine": 53}}}]}, {"ruleId": "scanner-05f9b3ff21b540fa", "level": "warning", "message": {"text": "Insecure pattern 'subprocess_shell_true' in agents/security/AGENTS.md:53"}, "properties": {"repobilityId": "c69b76611a80c8fd", "scanner": "scanner-primary", "fingerprint": "05f9b3ff21b540fa", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "subprocess_shell_true"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "agents/security/AGENTS.md"}, "region": {"startLine": 53}}}]}, {"ruleId": "scanner-b2f133c428fd1484", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in agents/security/AGENTS.md:53"}, "properties": {"repobilityId": "1d55694af61aa3cd", "scanner": "scanner-primary", "fingerprint": "b2f133c428fd1484", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "agents/security/AGENTS.md"}, "region": {"startLine": 53}}}]}, {"ruleId": "scanner-ed50cd0bb1d8bdae", "level": "warning", "message": {"text": "Insecure pattern 'weak_hash' in agents/security/AGENTS.md:163"}, "properties": {"repobilityId": "7827490ad1a92dde", "scanner": "scanner-primary", "fingerprint": "ed50cd0bb1d8bdae", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "weak_hash"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "agents/security/AGENTS.md"}, "region": {"startLine": 163}}}]}, {"ruleId": "scanner-ed07828e0eb253a5", "level": "warning", "message": {"text": "Insecure pattern 'subprocess_shell_true' in skills/archive/webapp-testing/scripts/with_server.py:71"}, "properties": {"repobilityId": "c0962a60ab6eb8c6", "scanner": "scanner-primary", "fingerprint": "ed07828e0eb253a5", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "subprocess_shell_true"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "skills/archive/webapp-testing/scripts/with_server.py"}, "region": {"startLine": 71}}}]}, {"ruleId": "scanner-bb66ca5d22e543ea", "level": "error", "message": {"text": "Possible secret in skills/archive/langsmith-fetch/SKILL.md"}, "properties": {"repobilityId": "f8d7056f4351a49a", "scanner": "scanner-primary", "fingerprint": "bb66ca5d22e543ea", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "skills/archive/langsmith-fetch/SKILL.md"}, "region": {"startLine": 29}}}]}, {"ruleId": "scanner-2b6e35a2e7f245d4", "level": "note", "message": {"text": "Very large file: skills/archive/docx/scripts/document.py (1276 lines)"}, "properties": {"repobilityId": "f794a5f6d217d5ee", "scanner": "scanner-primary", "fingerprint": "2b6e35a2e7f245d4", "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-3ab5d313dda8e5f9", "level": "note", "message": {"text": "Debug logging residue appears in source files"}, "properties": {"repobilityId": "8e528ee131570c45", "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": "9fac64e581808403", "scanner": "scanner-primary", "fingerprint": "72b2a6250083a784", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["placeholder", "mock-data", "incomplete", "generated-repo-pattern"]}}, {"ruleId": "scanner-2d0c7b7ab8f8aacf", "level": "warning", "message": {"text": "Critical user flow still appears backed by mock or placeholder data"}, "properties": {"repobilityId": "cb5adc085b2e8527", "scanner": "scanner-primary", "fingerprint": "2d0c7b7ab8f8aacf", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["placeholder", "mock-data", "critical-flow", "generated-repo-pattern"]}}, {"ruleId": "scanner-ea8f3013f588db25", "level": "note", "message": {"text": "Shallow git history limits provenance confidence"}, "properties": {"repobilityId": "e431fb3073182024", "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": "04defeecd9bb20f5", "scanner": "scanner-primary", "fingerprint": "8424db9c75e04ba4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["provenance", "git-history", "generated-repo-pattern"]}}, {"ruleId": "scanner-122f91b7f2906dc4", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/settings.json"}, "properties": {"repobilityId": "a2967269048b6a9d", "scanner": "scanner-primary", "fingerprint": "122f91b7f2906dc4", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/settings.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-21a2cf7b57a96de0", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .codex/prompts/opsx-sync.md"}, "properties": {"repobilityId": "a35078fa205ab670", "scanner": "scanner-primary", "fingerprint": "21a2cf7b57a96de0", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "codex_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".codex/prompts/opsx-sync.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-ad9858f90cf9be34", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .codex/prompts/opsx-archive.md"}, "properties": {"repobilityId": "ec2d55df39ab0f4e", "scanner": "scanner-primary", "fingerprint": "ad9858f90cf9be34", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "codex_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".codex/prompts/opsx-archive.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-0a4088e7fb288ca2", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .codex/prompts/opsx-apply.md"}, "properties": {"repobilityId": "f03ee49e9556f9bb", "scanner": "scanner-primary", "fingerprint": "0a4088e7fb288ca2", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "codex_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".codex/prompts/opsx-apply.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-c1b84905a1d216b0", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: skills/archive/invoice-organizer/SKILL.md"}, "properties": {"repobilityId": "047b304bd99928b1", "scanner": "scanner-primary", "fingerprint": "c1b84905a1d216b0", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "skill_file"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "skills/archive/invoice-organizer/SKILL.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-8bb21e5d3f17e69c", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: skills/archive/connect/SKILL.md"}, "properties": {"repobilityId": "d07cf8c0960865dc", "scanner": "scanner-primary", "fingerprint": "8bb21e5d3f17e69c", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "skill_file"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "skills/archive/connect/SKILL.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-933eb0ff0cf840e1", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: skills/archive/lead-research-assistant/SKILL.md"}, "properties": {"repobilityId": "7f847145f33d3ba5", "scanner": "scanner-primary", "fingerprint": "933eb0ff0cf840e1", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "skill_file"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "skills/archive/lead-research-assistant/SKILL.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-5ef6cc1993f0700e", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: skills/archive/slack-gif-creator/SKILL.md"}, "properties": {"repobilityId": "2228761edd28b81c", "scanner": "scanner-primary", "fingerprint": "5ef6cc1993f0700e", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "skill_file"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "skills/archive/slack-gif-creator/SKILL.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-6fb06182a7dd688a", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: skills/archive/skill-installer/SKILL.md"}, "properties": {"repobilityId": "8740c07cb4555111", "scanner": "scanner-primary", "fingerprint": "6fb06182a7dd688a", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "skill_file"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "skills/archive/skill-installer/SKILL.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-7a3988c06cef2fe0", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: skills/archive/video-downloader/SKILL.md"}, "properties": {"repobilityId": "ab95686297e441ac", "scanner": "scanner-primary", "fingerprint": "7a3988c06cef2fe0", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "skill_file"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "skills/archive/video-downloader/SKILL.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-dd9f674fc8d999b0", "level": "warning", "message": {"text": "Agent instruction contains unpinned remote install: skills/archive/docx/SKILL.md"}, "properties": {"repobilityId": "fd8258f711d30c1c", "scanner": "scanner-primary", "fingerprint": "dd9f674fc8d999b0", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "supply-chain", "skill_file"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "skills/archive/docx/SKILL.md"}, "region": {"startLine": 194}}}]}, {"ruleId": "scanner-2b1ab78c0253bdf7", "level": "warning", "message": {"text": "Agent instruction contains unpinned remote install: skills/archive/pptx/SKILL.md"}, "properties": {"repobilityId": "7789cdb54b1122dd", "scanner": "scanner-primary", "fingerprint": "2b1ab78c0253bdf7", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "supply-chain", "skill_file"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "skills/archive/pptx/SKILL.md"}, "region": {"startLine": 478}}}]}, {"ruleId": "scanner-3d2fe6f63764c7ac", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: skills/archive/meeting-insights-analyzer/SKILL.md"}, "properties": {"repobilityId": "653a220d0acc3e97", "scanner": "scanner-primary", "fingerprint": "3d2fe6f63764c7ac", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "skill_file"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "skills/archive/meeting-insights-analyzer/SKILL.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-2df31f99191ffc88", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: skills/archive/changelog-generator/SKILL.md"}, "properties": {"repobilityId": "7f966b29ea389604", "scanner": "scanner-primary", "fingerprint": "2df31f99191ffc88", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "skill_file"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "skills/archive/changelog-generator/SKILL.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-7a0b2cc1b323f091", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: skills/brainstorming/SKILL.md"}, "properties": {"repobilityId": "212b08a0d14b7951", "scanner": "scanner-primary", "fingerprint": "7a0b2cc1b323f091", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "skill_file"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "skills/brainstorming/SKILL.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-3d44a11dee83bafc", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: skills/personal/beads-orchestration/SKILL.md"}, "properties": {"repobilityId": "17e04dbb83a33d9e", "scanner": "scanner-primary", "fingerprint": "3d44a11dee83bafc", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "skill_file"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "skills/personal/beads-orchestration/SKILL.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-7f98616156257ce4", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: skills/personal/beads-orchestration/subskills/beads-cleanup/SKILL.md"}, "properties": {"repobilityId": "b741a7fafa8f641b", "scanner": "scanner-primary", "fingerprint": "7f98616156257ce4", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "skill_file"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "skills/personal/beads-orchestration/subskills/beads-cleanup/SKILL.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-97c4ebd2158c0ab1", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: skills/personal/th-tooling/subskills/transcript-retention/SKILL.md"}, "properties": {"repobilityId": "5b8cadd43270f4d2", "scanner": "scanner-primary", "fingerprint": "97c4ebd2158c0ab1", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "skill_file"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "skills/personal/th-tooling/subskills/transcript-retention/SKILL.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-a1c57c98e9d4a48e", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: skills/personal/th-tooling/subskills/config-surface-audit/SKILL.md"}, "properties": {"repobilityId": "639b3fb78628cf72", "scanner": "scanner-primary", "fingerprint": "a1c57c98e9d4a48e", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "skill_file"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "skills/personal/th-tooling/subskills/config-surface-audit/SKILL.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-4f0bb230eb63c4ae", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: skills/personal/th-engineering/subskills/skill-standards/tests/fixtures/broken-skill/SKILL.md"}, "properties": {"repobilityId": "13082d5728280996", "scanner": "scanner-primary", "fingerprint": "4f0bb230eb63c4ae", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "skill_file"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "skills/personal/th-engineering/subskills/skill-standards/tests/fixtures/broken-skill/SKILL.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-4121b32771247ca5", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: skills/personal/th-engineering/subskills/skill-standards/tests/fixtures/broken-superskill/SKILL.md"}, "properties": {"repobilityId": "0758ed13cb87e200", "scanner": "scanner-primary", "fingerprint": "4121b32771247ca5", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "skill_file"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "skills/personal/th-engineering/subskills/skill-standards/tests/fixtures/broken-superskill/SKILL.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-efec286bfded799c", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: skills/bws-cli-skill/SKILL.md"}, "properties": {"repobilityId": "50e833c827764678", "scanner": "scanner-primary", "fingerprint": "efec286bfded799c", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "skill_file"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "skills/bws-cli-skill/SKILL.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-8afcc3c9bb161df0", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 skills/archive/skill-installer/scripts/github_utils.py:16"}, "properties": {"repobilityId": "8ff255b3149fc921", "scanner": "scanner-primary", "fingerprint": "8afcc3c9bb161df0", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-52265c2b6d90a50f", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 skills/archive/skill-installer/scripts/install-skill-from-github.py:100"}, "properties": {"repobilityId": "c7b0c2a2c1900a47", "scanner": "scanner-primary", "fingerprint": "52265c2b6d90a50f", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-5ef9bcf90242943d", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 skills/archive/video-downloader/scripts/download_video.py:24"}, "properties": {"repobilityId": "77dc93710a7408bf", "scanner": "scanner-primary", "fingerprint": "5ef9bcf90242943d", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-71af38d7f3bb3c07", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 skills/archive/docx/ooxml/scripts/validation/redlining.py:153"}, "properties": {"repobilityId": "21a8e2e8ad42ccfc", "scanner": "scanner-primary", "fingerprint": "71af38d7f3bb3c07", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-d5bdf0d0ae173d40", "level": "note", "message": {"text": "Legacy-named symbol `xml_copy` in skills/archive/docx/ooxml/scripts/validation/base.py:769"}, "properties": {"repobilityId": "c09abc9af7f6dc36", "scanner": "scanner-primary", "fingerprint": "d5bdf0d0ae173d40", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-9c2872438e98d127", "level": "none", "message": {"text": "Commented-code block (6 lines) in skills/archive/pptx/scripts/thumbnail.py:32"}, "properties": {"repobilityId": "fbf88d3df92564c6", "scanner": "scanner-primary", "fingerprint": "9c2872438e98d127", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4473be484fd3f32c", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 skills/archive/pptx/scripts/thumbnail.py:219"}, "properties": {"repobilityId": "73ebe66873cb1e5a", "scanner": "scanner-primary", "fingerprint": "4473be484fd3f32c", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-56b1d5c677f27f6d", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 skills/archive/pptx/ooxml/scripts/validation/redlining.py:153"}, "properties": {"repobilityId": "cb69aaa439c916c2", "scanner": "scanner-primary", "fingerprint": "56b1d5c677f27f6d", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-ffe38a5b92cf7e18", "level": "note", "message": {"text": "Legacy-named symbol `xml_copy` in skills/archive/pptx/ooxml/scripts/validation/base.py:769"}, "properties": {"repobilityId": "e2a88d17b6348d7e", "scanner": "scanner-primary", "fingerprint": "ffe38a5b92cf7e18", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-743e53cd44b3a727", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 skills/archive/xlsx/recalc.py:92"}, "properties": {"repobilityId": "00a78c077f856167", "scanner": "scanner-primary", "fingerprint": "743e53cd44b3a727", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-12f9a5144e6bd614", "level": "none", "message": {"text": "Commented-code block (5 lines) in skills/archive/pdf/scripts/extract_form_field_info.py:56"}, "properties": {"repobilityId": "318d8cdcd99f24d4", "scanner": "scanner-primary", "fingerprint": "12f9a5144e6bd614", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3602746b100a7f3f", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 skills/personal/beads-orchestration/subskills/beads-pr-reviewer-worker/scripts/create_inline_review_comment.py:13"}, "properties": {"repobilityId": "05de0366293a527c", "scanner": "scanner-primary", "fingerprint": "3602746b100a7f3f", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-3042c794debb7d3b", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 skills/personal/beads-orchestration/subskills/beads-pr-reviewer-worker/scripts/list_review_threads.py:84"}, "properties": {"repobilityId": "dac343fd92b8c955", "scanner": "scanner-primary", "fingerprint": "3042c794debb7d3b", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-b7c2d78241f94e94", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 skills/personal/beads-orchestration/subskills/beads-pr-reviewer-worker/scripts/prepare_pr_branch.py:13"}, "properties": {"repobilityId": "b022b3bffe7de1d1", "scanner": "scanner-primary", "fingerprint": "b7c2d78241f94e94", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-b4eaedfb3e12e459", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 skills/personal/beads-orchestration/subskills/beads-pr-reviewer-worker/scripts/resolve_review_thread.py:33"}, "properties": {"repobilityId": "08ede719f095279d", "scanner": "scanner-primary", "fingerprint": "b4eaedfb3e12e459", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-ac67b327acfe4d8b", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 skills/personal/beads-orchestration/subskills/beads-pr-reviewer-worker/scripts/evaluate_merge_readiness.py:39"}, "properties": {"repobilityId": "d91269614c3dea2e", "scanner": "scanner-primary", "fingerprint": "ac67b327acfe4d8b", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-2d3da8c639a911d4", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 skills/personal/beads-orchestration/subskills/beads-pr-reviewer-worker/scripts/reply_to_review_thread.py:37"}, "properties": {"repobilityId": "a94c62baedbdc4d3", "scanner": "scanner-primary", "fingerprint": "2d3da8c639a911d4", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-6bc58a365b480ee1", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 skills/personal/beads-orchestration/subskills/beads-pr-reviewer-worker/scripts/resolve_review_context.py:21"}, "properties": {"repobilityId": "a1879e84d0a340eb", "scanner": "scanner-primary", "fingerprint": "6bc58a365b480ee1", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-3f863939376714cb", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 skills/personal/th-engineering/subskills/excalidraw-diagram/scripts/render_excalidraw.py:291"}, "properties": {"repobilityId": "ab274d432391aab4", "scanner": "scanner-primary", "fingerprint": "3f863939376714cb", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-49a37798a323aff6", "level": "note", "message": {"text": "Stub function `log_message` (body is just `pass`/`return`) \u2014 skills/personal/th-engineering/subskills/excalidraw-diagram/scripts/render_excalidraw.py:306"}, "properties": {"repobilityId": "5d8753ecc898491d", "scanner": "scanner-primary", "fingerprint": "49a37798a323aff6", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "empty-handler", "dead-code"]}}, {"ruleId": "scanner-90d7dc70f403a31a", "level": "none", "message": {"text": "Commented-code block (8 lines) in skills/algorithmic-art/templates/generator_template.js:15"}, "properties": {"repobilityId": "d0c2bab12f191f90", "scanner": "scanner-primary", "fingerprint": "90d7dc70f403a31a", "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": "4c770b6f6cc089c2", "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": "fab30534dc94f947", "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": "9d55e826f53e991c", "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": "d8c0cea8400158bd", "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": "d6c1557576348974", "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": "779fe2112eb20001", "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": "eeb4eb1fbdfb0083", "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": "f9e864071f5e4a40", "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": "aa9161b84326219d", "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": "2ec59044f07dbd18", "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": "f33854fe323f4e78", "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": "1cc7ef54739d461c", "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": "0b5f25f8e70b55b5", "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": "16946b5552c14519", "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": "df2d2926d1881441", "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": "b96cc45938c43b6d", "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": "b1b5a5cdcb655af6", "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": "d7d1d2d9ed3b5f6d", "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": "578841cd88f8817b", "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": "07fd6966e2bc2ac5", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}]}]}