{"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-5d97f3f8bad5cb8b", "name": "Possibly dead Python function: check_with_list", "shortDescription": {"text": "Possibly dead Python function: check_with_list"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-48cd33770b9bfbe7", "name": "Possibly dead Python function: check_with_set", "shortDescription": {"text": "Possibly dead Python function: check_with_set"}, "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-b736b07bc2c9f676", "name": "Possibly dead Python function: list_append", "shortDescription": {"text": "Possibly dead Python function: list_append"}, "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-8db0c1ddda92f646", "name": "Possibly dead Python function: set_add", "shortDescription": {"text": "Possibly dead Python function: set_add"}, "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-bac1ec086d23ea5a", "name": "Possibly dead Python function: cached_with_clear", "shortDescription": {"text": "Possibly dead Python function: cached_with_clear"}, "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-bf8d53f0ad3414cb", "name": "Possibly dead Python function: check_all_nocache", "shortDescription": {"text": "Possibly dead Python function: check_all_nocache"}, "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-eb2a865b447590a4", "name": "Possibly dead Python function: check_all", "shortDescription": {"text": "Possibly dead Python function: check_all"}, "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-441d0ef377e5dc20", "name": "Possibly dead Python function: search_with_purge", "shortDescription": {"text": "Possibly dead Python function: search_with_purge"}, "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-5c296cc73570657d", "name": "Possibly dead Python function: check_sequential", "shortDescription": {"text": "Possibly dead Python function: check_sequential"}, "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-1f7c620c968cc735", "name": "Possibly dead Python function: check_parallel_map", "shortDescription": {"text": "Possibly dead Python function: check_parallel_map"}, "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-1cbed68676231771", "name": "Possibly dead Python function: check_parallel_as_completed", "shortDescription": {"text": "Possibly dead Python function: check_parallel_as_completed"}, "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-624786f3ba9aacd7", "name": "Possibly dead Python function: handle_initialize", "shortDescription": {"text": "Possibly dead Python function: handle_initialize"}, "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-2f1ec7f7c4d9318d", "name": "Possibly dead Python function: handle_tools_list", "shortDescription": {"text": "Possibly dead Python function: handle_tools_list"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-16636575f9df0720", "name": "Possibly dead Python function: handle_tools_call", "shortDescription": {"text": "Possibly dead Python function: handle_tools_call"}, "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-1b47d374299920a1", "name": "Possibly dead Python function: add_lang_to_fence", "shortDescription": {"text": "Possibly dead Python function: add_lang_to_fence"}, "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-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-7cfd6ad394f49325", "name": "Insecure pattern 'direct_innerhtml_assignment' in layouts/_default/search.html:153", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in layouts/_default/search.html:153"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-6372cebde0220094", "name": "No auth library detected", "shortDescription": {"text": "No auth library detected"}, "fullDescription": {"text": "The scanner did not find any standard auth library (JWT, OAuth, NextAuth, Auth0, etc.). The repo has auth/admin/session surface indicators, so auth may live in custom code, in a separate service, or be missing."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-8f4c232b4aa78fc9", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "actions/checkout@v6 can move without a code change in this repo. Pin third-party actions to a reviewed 40-character commit SHA."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "low", "confidence": 1.0}}, {"id": "scanner-77166cbd46fcd8e4", "name": "GitHub Actions workflow grants broad write permissions", "shortDescription": {"text": "GitHub Actions workflow grants broad write permissions"}, "fullDescription": {"text": "CI tokens with write permissions increase blast radius when an action, dependency, or PR workflow is compromised. Prefer job-level least-privilege permissions."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-f8cdfffd70600cb1", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "actions/checkout@v6 can move without a code change in this repo. Pin third-party actions to a reviewed 40-character commit SHA."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "low", "confidence": 1.0}}, {"id": "scanner-47e8275038ecc397", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "actions/checkout@v6 can move without a code change in this repo. Pin third-party actions to a reviewed 40-character commit SHA."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "low", "confidence": 1.0}}, {"id": "scanner-28c4a04bd807da0c", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "actions/checkout@v6 can move without a code change in this repo. Pin third-party actions to a reviewed 40-character commit SHA."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "low", "confidence": 1.0}}, {"id": "scanner-ad6701f0a8405e22", "name": "GitHub Actions workflow grants broad write permissions", "shortDescription": {"text": "GitHub Actions workflow grants broad write permissions"}, "fullDescription": {"text": "CI tokens with write permissions increase blast radius when an action, dependency, or PR workflow is compromised. Prefer job-level least-privilege permissions."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-de53ac274e5b4ecf", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "actions/checkout@v6 can move without a code change in this repo. Pin third-party actions to a reviewed 40-character commit SHA."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "low", "confidence": 1.0}}, {"id": "scanner-37716d9c0a33ad5c", "name": "GitHub Actions workflow grants broad write permissions", "shortDescription": {"text": "GitHub Actions workflow grants broad write permissions"}, "fullDescription": {"text": "CI tokens with write permissions increase blast radius when an action, dependency, or PR workflow is compromised. Prefer job-level least-privilege permissions."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-6893a6c8b0861585", "name": "Very low test-to-source ratio", "shortDescription": {"text": "Very low test-to-source ratio"}, "fullDescription": {"text": "4 test file(s) for 43 source file(s) (ratio 0.09). Consider adding integration or unit tests for critical paths."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-141b30a41e03817b", "name": "No license file detected", "shortDescription": {"text": "No license file detected"}, "fullDescription": {"text": "No LICENSE/COPYING/NOTICE file was found. Generated repositories often omit licensing, which blocks reuse and automated intake."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-3ab5d313dda8e5f9", "name": "Debug logging residue appears in source files", "shortDescription": {"text": "Debug logging residue appears in source files"}, "fullDescription": {"text": "Found 197 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-749d4bc1bd66df5f", "name": "Agent instructions exist but release-hardening basics are missing", "shortDescription": {"text": "Agent instructions exist but release-hardening basics are missing"}, "fullDescription": {"text": "AI-coder instruction files were found, but the repo is missing license. Treat this as a contract gap: the agent is guided, but the generated output is not yet guarded by the controls that make it repeatable."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ea8f3013f588db25", "name": "Shallow git history limits provenance confidence", "shortDescription": {"text": "Shallow git history limits provenance confidence"}, "fullDescription": {"text": "The repository is a shallow clone. Origin/evolution analysis cannot distinguish fresh generation, imported legacy code, or long-lived human code with high confidence."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-8424db9c75e04ba4", "name": "Very short observed git history", "shortDescription": {"text": "Very short observed git history"}, "fullDescription": {"text": "The repo has multiple source files but two or fewer visible commits. This is not a failure by itself, but it lowers confidence in evolution-based diagnosis."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-bea357a6497a2d5d", "name": "Agent authority lacks a verifier contract: CLAUDE.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: CLAUDE.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-fab5c46595ddbeac", "name": "Agent authority lacks a verifier contract: .claude/skills/saas-tech-selection/references/user-operations-bdd.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/skills/saas-tech-selection/references/user-operations-bdd.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-c72b6c53334ed946", "name": "Agent authority lacks a verifier contract: .claude/skills/saas-tech-selection/references/dimensions/security.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/skills/saas-tech-selection/references/dimensions/security.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-0f62c63a0858834a", "name": "Agent authority lacks a verifier contract: .claude/skills/wrap-decision/references/detailed-techniques.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/skills/wrap-decision/references/detailed-techniques.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-d8dffbf820050fff", "name": "Agent instruction/config may expose a secret: .claude/skills/compositional-writing/SKILL.md", "shortDescription": {"text": "Agent instruction/config may expose a secret: .claude/skills/compositional-writing/SKILL.md"}, "fullDescription": {"text": "Agent-facing files are routinely pasted into LLM/tool contexts. Move literal tokens, keys, and passwords into a secret manager or document them as placeholders only."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-edbaf6c3ee452643", "name": "Agent authority lacks a verifier contract: .claude/skills/compositional-writing/SKILL.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/skills/compositional-writing/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-ad2c39a202c1a773", "name": "Agent instruction/config may expose a secret: .claude/skills/compositional-writing/references/auditing-articles.md", "shortDescription": {"text": "Agent instruction/config may expose a secret: .claude/skills/compositional-writing/references/auditing-articles.md"}, "fullDescription": {"text": "Agent-facing files are routinely pasted into LLM/tool contexts. Move literal tokens, keys, and passwords into a secret manager or document them as placeholders only."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-3d27bebe0a26adde", "name": "Agent authority lacks a verifier contract: .claude/skills/compositional-writing/references/dry-run-guide.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/skills/compositional-writing/references/dry-run-guide.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-56be04f6657a8621", "name": "Agent instruction/config may expose a secret: .claude/skills/compositional-writing/references/principles/false-sense-of-", "shortDescription": {"text": "Agent instruction/config may expose a secret: .claude/skills/compositional-writing/references/principles/false-sense-of-security-as-primary-failure.md"}, "fullDescription": {"text": "Agent-facing files are routinely pasted into LLM/tool contexts. Move literal tokens, keys, and passwords into a secret manager or document them as placeholders only."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-3038cd8738f8a0f5", "name": "Agent authority lacks a verifier contract: .claude/skills/compositional-writing/references/principles/case-citation-thre", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/skills/compositional-writing/references/principles/case-citation-three-part-structure.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-d125e60798f073af", "name": "Agent authority lacks a verifier contract: .claude/skills/frontend-with-playwright/references/principles/single-source-o", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/skills/frontend-with-playwright/references/principles/single-source-of-truth.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-ff12aab1f6c46f13", "name": "Agent authority lacks a verifier contract: .claude/skills/migration-playbook-methodology/SKILL.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/skills/migration-playbook-methodology/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-f80622aa6012f638", "name": "Agent authority lacks a verifier contract: .claude/skills/case-first-module-workflow/references/self-scan-regex.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/skills/case-first-module-workflow/references/self-scan-regex.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-4a889d7381d88c24", "name": "Agent authority lacks a verifier contract: .claude/skills/case-first-module-workflow/references/principles/case-citation", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/skills/case-first-module-workflow/references/principles/case-citation-three-part.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-1b2d19881c58e143", "name": "Agent authority lacks a verifier contract: .claude/skills/requirement-protocol/references/cost-and-checkpoint.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/skills/requirement-protocol/references/cost-and-checkpoint.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-7da54720a3b506e7", "name": "Agent authority lacks a verifier contract: .claude/skills/requirement-protocol/references/principles/single-source-of-tr", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/skills/requirement-protocol/references/principles/single-source-of-truth.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-632cc470d05f4416", "name": "Agent authority lacks a verifier contract: content/skills/compositional-writing/skill.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: content/skills/compositional-writing/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-9c73fc96fb619011", "name": "Agent authority lacks a verifier contract: .codex/briefs/knowledge-cards.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .codex/briefs/knowledge-cards.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-2e731b6ed59cf0cc", "name": "Agent authority lacks a verifier contract: .codex/outlines/db3-db4/mongodb/aggregation-pipeline-optimization.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .codex/outlines/db3-db4/mongodb/aggregation-pipeline-optimization.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-36b34496b936454d", "name": "Agent authority lacks a verifier contract: .codex/outlines/db3-db4/mongodb/change-streams-kafka.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .codex/outlines/db3-db4/mongodb/change-streams-kafka.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-c8632642dbc26cf8", "name": "Agent authority lacks a verifier contract: .codex/outlines/db3-db4/mongodb/schema-design-pattern.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .codex/outlines/db3-db4/mongodb/schema-design-pattern.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-62889dabb3c37fbf", "name": "Agent authority lacks a verifier contract: .codex/outlines/db3-db4/mongodb/replica-set-read-preference.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .codex/outlines/db3-db4/mongodb/replica-set-read-preference.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-c0a29d692941c1f7", "name": "Agent authority lacks a verifier contract: .codex/outlines/db3-db4/cosmosdb/partition-key-design.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .codex/outlines/db3-db4/cosmosdb/partition-key-design.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-f3a9682d3bb65159", "name": "Agent authority lacks a verifier contract: .codex/outlines/db3-db4/cosmosdb/multi-region-write-conflict.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .codex/outlines/db3-db4/cosmosdb/multi-region-write-conflict.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-67bae9f8715a592f", "name": "Agent authority lacks a verifier contract: .codex/outlines/db3-db4/reviews/r1-writing-spec.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .codex/outlines/db3-db4/reviews/r1-writing-spec.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-887aaa639fbfbdcb", "name": "Agent instruction/config may expose a secret: .codex/outlines/db3-db4/dynamodb/global-tables-conflict.md", "shortDescription": {"text": "Agent instruction/config may expose a secret: .codex/outlines/db3-db4/dynamodb/global-tables-conflict.md"}, "fullDescription": {"text": "Agent-facing files are routinely pasted into LLM/tool contexts. Move literal tokens, keys, and passwords into a secret manager or document them as placeholders only."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-e725d2ab884fbd49", "name": "Multiple root agent instruction files without precedence", "shortDescription": {"text": "Multiple root agent instruction files without precedence"}, "fullDescription": {"text": "The repo has multiple top-level AI-coder instruction files. Without precedence rules, different agents may follow different policies."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-14242fc1797e9027", "name": "Commented-code block (5 lines) in tests/search-filter.spec.ts:90", "shortDescription": {"text": "Commented-code block (5 lines) in tests/search-filter.spec.ts:90"}, "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-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:\nstatic/code/practical-optimization/benchmarks/benchmark_cache.py:check_all_nocache, static/code/practical-optimization/benchmarks/benchmark_cache.py:check_all\n\nThis is *the* AI-coder failure mode (4\u00d7 more duplication in vibe-coded repos \u2014 see https://jw.hn/ai-code-hygiene). Consolidate or document why they're separate."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-be46ea126aa5d8dc", "name": "Near-duplicate function bodies in 3 places", "shortDescription": {"text": "Near-duplicate function bodies in 3 places"}, "fullDescription": {"text": "Functions with the same first-5-line body hash:\nstatic/code/practical-optimization/benchmarks/benchmark_cache.py:cached_8, static/code/practical-optimization/benchmarks/benchmark_cache.py:cached_64, static/code/practical-optimization/benchmarks/benchmark_cache.py:cached_unlimited\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/20888"}, "properties": {"repository": "tarrragon/blog", "repoUrl": "https://github.com/tarrragon/blog", "branch": "main"}, "results": [{"ruleId": "scanner-5d97f3f8bad5cb8b", "level": "note", "message": {"text": "Possibly dead Python function: check_with_list"}, "properties": {"repobilityId": "1a9df933d0768305", "scanner": "scanner-primary", "fingerprint": "5d97f3f8bad5cb8b", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "static/code/practical-optimization/benchmarks/benchmark_data_structure.py:62"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-48cd33770b9bfbe7", "level": "note", "message": {"text": "Possibly dead Python function: check_with_set"}, "properties": {"repobilityId": "a99cc6d548b28073", "scanner": "scanner-primary", "fingerprint": "48cd33770b9bfbe7", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "static/code/practical-optimization/benchmarks/benchmark_data_structure.py:71"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-b736b07bc2c9f676", "level": "note", "message": {"text": "Possibly dead Python function: list_append"}, "properties": {"repobilityId": "aa1adf71152b8b39", "scanner": "scanner-primary", "fingerprint": "b736b07bc2c9f676", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "static/code/practical-optimization/benchmarks/benchmark_data_structure.py:123"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-8db0c1ddda92f646", "level": "note", "message": {"text": "Possibly dead Python function: set_add"}, "properties": {"repobilityId": "e2a2f0411fe8d970", "scanner": "scanner-primary", "fingerprint": "8db0c1ddda92f646", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "static/code/practical-optimization/benchmarks/benchmark_data_structure.py:130"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-bac1ec086d23ea5a", "level": "note", "message": {"text": "Possibly dead Python function: cached_with_clear"}, "properties": {"repobilityId": "f0f9b07a213b5e20", "scanner": "scanner-primary", "fingerprint": "bac1ec086d23ea5a", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "static/code/practical-optimization/benchmarks/benchmark_cache.py:85"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-bf8d53f0ad3414cb", "level": "note", "message": {"text": "Possibly dead Python function: check_all_nocache"}, "properties": {"repobilityId": "b2bec57dfce6e56f", "scanner": "scanner-primary", "fingerprint": "bf8d53f0ad3414cb", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "static/code/practical-optimization/benchmarks/benchmark_cache.py:114"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-eb2a865b447590a4", "level": "note", "message": {"text": "Possibly dead Python function: check_all"}, "properties": {"repobilityId": "bc31b31b31444484", "scanner": "scanner-primary", "fingerprint": "eb2a865b447590a4", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "static/code/practical-optimization/benchmarks/benchmark_cache.py:212"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-441d0ef377e5dc20", "level": "note", "message": {"text": "Possibly dead Python function: search_with_purge"}, "properties": {"repobilityId": "b539a15ef7b27d58", "scanner": "scanner-primary", "fingerprint": "441d0ef377e5dc20", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "static/code/practical-optimization/benchmarks/benchmark_regex.py:145"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-5c296cc73570657d", "level": "note", "message": {"text": "Possibly dead Python function: check_sequential"}, "properties": {"repobilityId": "1d1645d3ecd06050", "scanner": "scanner-primary", "fingerprint": "5c296cc73570657d", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "static/code/practical-optimization/benchmarks/benchmark_parallel.py:59"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-1f7c620c968cc735", "level": "note", "message": {"text": "Possibly dead Python function: check_parallel_map"}, "properties": {"repobilityId": "9edd8b62f7e8a83a", "scanner": "scanner-primary", "fingerprint": "1f7c620c968cc735", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "static/code/practical-optimization/benchmarks/benchmark_parallel.py:67"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-1cbed68676231771", "level": "note", "message": {"text": "Possibly dead Python function: check_parallel_as_completed"}, "properties": {"repobilityId": "d330d8a49688f768", "scanner": "scanner-primary", "fingerprint": "1cbed68676231771", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "static/code/practical-optimization/benchmarks/benchmark_parallel.py:74"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-624786f3ba9aacd7", "level": "note", "message": {"text": "Possibly dead Python function: handle_initialize"}, "properties": {"repobilityId": "747b5971de00af00", "scanner": "scanner-primary", "fingerprint": "624786f3ba9aacd7", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/mcp-demo/blog_mcp_server.py:132"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-2f1ec7f7c4d9318d", "level": "note", "message": {"text": "Possibly dead Python function: handle_tools_list"}, "properties": {"repobilityId": "72dc31523ed98130", "scanner": "scanner-primary", "fingerprint": "2f1ec7f7c4d9318d", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/mcp-demo/blog_mcp_server.py:140"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-16636575f9df0720", "level": "note", "message": {"text": "Possibly dead Python function: handle_tools_call"}, "properties": {"repobilityId": "881403c048ece791", "scanner": "scanner-primary", "fingerprint": "16636575f9df0720", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/mcp-demo/blog_mcp_server.py:153"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-1b47d374299920a1", "level": "note", "message": {"text": "Possibly dead Python function: add_lang_to_fence"}, "properties": {"repobilityId": "22dee29a107da49e", "scanner": "scanner-primary", "fingerprint": "1b47d374299920a1", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/hooks/markdown_formatter.py:47"}, "region": {"startLine": 1}}}]}, {"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-7cfd6ad394f49325", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in layouts/_default/search.html:153"}, "properties": {"repobilityId": "81b0c72b9e3c765b", "scanner": "scanner-primary", "fingerprint": "7cfd6ad394f49325", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "layouts/_default/search.html"}, "region": {"startLine": 153}}}]}, {"ruleId": "scanner-6372cebde0220094", "level": "warning", "message": {"text": "No auth library detected"}, "properties": {"repobilityId": "a5b6035a5bbf8054", "scanner": "scanner-primary", "fingerprint": "6372cebde0220094", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["coverage", "auth"]}}, {"ruleId": "scanner-8f4c232b4aa78fc9", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "f2aa8458f6ec87a2", "scanner": "scanner-primary", "fingerprint": "8f4c232b4aa78fc9", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/claude-code-review.yml"}, "region": {"startLine": 30}}}]}, {"ruleId": "scanner-8f4c232b4aa78fc9", "level": "warning", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "7572d8d133564421", "scanner": "scanner-primary", "fingerprint": "8f4c232b4aa78fc9", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/claude-code-review.yml"}, "region": {"startLine": 36}}}]}, {"ruleId": "scanner-77166cbd46fcd8e4", "level": "warning", "message": {"text": "GitHub Actions workflow grants broad write permissions"}, "properties": {"repobilityId": "50f3b563ffac10e9", "scanner": "scanner-primary", "fingerprint": "77166cbd46fcd8e4", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "least-privilege"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/claude-code-review.yml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-f8cdfffd70600cb1", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "2b7ca20f3964fe6b", "scanner": "scanner-primary", "fingerprint": "f8cdfffd70600cb1", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/playwright.yml"}, "region": {"startLine": 16}}}]}, {"ruleId": "scanner-f8cdfffd70600cb1", "level": "warning", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "255c24deb672750c", "scanner": "scanner-primary", "fingerprint": "f8cdfffd70600cb1", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/playwright.yml"}, "region": {"startLine": 21}}}]}, {"ruleId": "scanner-f8cdfffd70600cb1", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "d8615a2ee5c905d0", "scanner": "scanner-primary", "fingerprint": "f8cdfffd70600cb1", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/playwright.yml"}, "region": {"startLine": 27}}}]}, {"ruleId": "scanner-f8cdfffd70600cb1", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "0b96295926bb9236", "scanner": "scanner-primary", "fingerprint": "f8cdfffd70600cb1", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/playwright.yml"}, "region": {"startLine": 37}}}]}, {"ruleId": "scanner-f8cdfffd70600cb1", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "6531e16af1d99538", "scanner": "scanner-primary", "fingerprint": "f8cdfffd70600cb1", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/playwright.yml"}, "region": {"startLine": 60}}}]}, {"ruleId": "scanner-47e8275038ecc397", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "a4f3cb98db0bc211", "scanner": "scanner-primary", "fingerprint": "47e8275038ecc397", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/md-check.yml"}, "region": {"startLine": 14}}}]}, {"ruleId": "scanner-47e8275038ecc397", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "67cca6935d2d217f", "scanner": "scanner-primary", "fingerprint": "47e8275038ecc397", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/md-check.yml"}, "region": {"startLine": 17}}}]}, {"ruleId": "scanner-28c4a04bd807da0c", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "722ab4643920a278", "scanner": "scanner-primary", "fingerprint": "28c4a04bd807da0c", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/deploy.yml"}, "region": {"startLine": 21}}}]}, {"ruleId": "scanner-28c4a04bd807da0c", "level": "warning", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "7fbf8e47ecdf35a3", "scanner": "scanner-primary", "fingerprint": "28c4a04bd807da0c", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/deploy.yml"}, "region": {"startLine": 27}}}]}, {"ruleId": "scanner-28c4a04bd807da0c", "level": "warning", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "05b584678185c4e7", "scanner": "scanner-primary", "fingerprint": "28c4a04bd807da0c", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/deploy.yml"}, "region": {"startLine": 41}}}]}, {"ruleId": "scanner-28c4a04bd807da0c", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "e2bbcbcc5f68615d", "scanner": "scanner-primary", "fingerprint": "28c4a04bd807da0c", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/deploy.yml"}, "region": {"startLine": 69}}}]}, {"ruleId": "scanner-28c4a04bd807da0c", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "4544a649b35fa68b", "scanner": "scanner-primary", "fingerprint": "28c4a04bd807da0c", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/deploy.yml"}, "region": {"startLine": 82}}}]}, {"ruleId": "scanner-ad6701f0a8405e22", "level": "warning", "message": {"text": "GitHub Actions workflow grants broad write permissions"}, "properties": {"repobilityId": "8384c23520d55657", "scanner": "scanner-primary", "fingerprint": "ad6701f0a8405e22", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "least-privilege"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/deploy.yml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-de53ac274e5b4ecf", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "69dd0abad9dba1dc", "scanner": "scanner-primary", "fingerprint": "de53ac274e5b4ecf", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/claude.yml"}, "region": {"startLine": 29}}}]}, {"ruleId": "scanner-de53ac274e5b4ecf", "level": "warning", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "8ead6a2c2bfe167b", "scanner": "scanner-primary", "fingerprint": "de53ac274e5b4ecf", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/claude.yml"}, "region": {"startLine": 35}}}]}, {"ruleId": "scanner-37716d9c0a33ad5c", "level": "warning", "message": {"text": "GitHub Actions workflow grants broad write permissions"}, "properties": {"repobilityId": "abfb5752158cf655", "scanner": "scanner-primary", "fingerprint": "37716d9c0a33ad5c", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "least-privilege"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/claude.yml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-6893a6c8b0861585", "level": "warning", "message": {"text": "Very low test-to-source ratio"}, "properties": {"repobilityId": "54a7de3f06314bf0", "scanner": "scanner-primary", "fingerprint": "6893a6c8b0861585", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["tests", "coverage"]}}, {"ruleId": "scanner-141b30a41e03817b", "level": "note", "message": {"text": "No license file detected"}, "properties": {"repobilityId": "e36e82c1bb0f68af", "scanner": "scanner-primary", "fingerprint": "141b30a41e03817b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["license", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-3ab5d313dda8e5f9", "level": "note", "message": {"text": "Debug logging residue appears in source files"}, "properties": {"repobilityId": "0f2d2a60c2268972", "scanner": "scanner-primary", "fingerprint": "3ab5d313dda8e5f9", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["debug", "cleanup", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-749d4bc1bd66df5f", "level": "warning", "message": {"text": "Agent instructions exist but release-hardening basics are missing"}, "properties": {"repobilityId": "016c34123a8b7e85", "scanner": "scanner-primary", "fingerprint": "749d4bc1bd66df5f", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-ea8f3013f588db25", "level": "note", "message": {"text": "Shallow git history limits provenance confidence"}, "properties": {"repobilityId": "be8cef2fa3432d9d", "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": "68df76c2d6f27281", "scanner": "scanner-primary", "fingerprint": "8424db9c75e04ba4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["provenance", "git-history", "generated-repo-pattern"]}}, {"ruleId": "scanner-bea357a6497a2d5d", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: CLAUDE.md"}, "properties": {"repobilityId": "aae72df3934829ac", "scanner": "scanner-primary", "fingerprint": "bea357a6497a2d5d", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "CLAUDE.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-fab5c46595ddbeac", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/skills/saas-tech-selection/references/user-operations-bdd.md"}, "properties": {"repobilityId": "ee965fc50c96f276", "scanner": "scanner-primary", "fingerprint": "fab5c46595ddbeac", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/saas-tech-selection/references/user-operations-bdd.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-c72b6c53334ed946", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/skills/saas-tech-selection/references/dimensions/security.md"}, "properties": {"repobilityId": "e437040add6ef753", "scanner": "scanner-primary", "fingerprint": "c72b6c53334ed946", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/saas-tech-selection/references/dimensions/security.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-0f62c63a0858834a", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/skills/wrap-decision/references/detailed-techniques.md"}, "properties": {"repobilityId": "402021b5782dd32e", "scanner": "scanner-primary", "fingerprint": "0f62c63a0858834a", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/wrap-decision/references/detailed-techniques.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-d8dffbf820050fff", "level": "error", "message": {"text": "Agent instruction/config may expose a secret: .claude/skills/compositional-writing/SKILL.md"}, "properties": {"repobilityId": "1172a3bba8abd881", "scanner": "scanner-primary", "fingerprint": "d8dffbf820050fff", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["agent-instructions", "secrets", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/compositional-writing/SKILL.md"}, "region": {"startLine": 92}}}]}, {"ruleId": "scanner-edbaf6c3ee452643", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/skills/compositional-writing/SKILL.md"}, "properties": {"repobilityId": "2e262cf695758c25", "scanner": "scanner-primary", "fingerprint": "edbaf6c3ee452643", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/compositional-writing/SKILL.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-ad2c39a202c1a773", "level": "error", "message": {"text": "Agent instruction/config may expose a secret: .claude/skills/compositional-writing/references/auditing-articles.md"}, "properties": {"repobilityId": "f0e8db0496da041f", "scanner": "scanner-primary", "fingerprint": "ad2c39a202c1a773", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["agent-instructions", "secrets", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/compositional-writing/references/auditing-articles.md"}, "region": {"startLine": 29}}}]}, {"ruleId": "scanner-3d27bebe0a26adde", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/skills/compositional-writing/references/dry-run-guide.md"}, "properties": {"repobilityId": "3b6e04d0b5fe90f5", "scanner": "scanner-primary", "fingerprint": "3d27bebe0a26adde", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/compositional-writing/references/dry-run-guide.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-56be04f6657a8621", "level": "error", "message": {"text": "Agent instruction/config may expose a secret: .claude/skills/compositional-writing/references/principles/false-sense-of-security-as-primary-failure.md"}, "properties": {"repobilityId": "c72d2d63fcb5086e", "scanner": "scanner-primary", "fingerprint": "56be04f6657a8621", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["agent-instructions", "secrets", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/compositional-writing/references/principles/false-sense-of-security-as-primary-failure.md"}, "region": {"startLine": 123}}}]}, {"ruleId": "scanner-3038cd8738f8a0f5", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/skills/compositional-writing/references/principles/case-citation-three-part-structure.md"}, "properties": {"repobilityId": "468678f382078ad5", "scanner": "scanner-primary", "fingerprint": "3038cd8738f8a0f5", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/compositional-writing/references/principles/case-citation-three-part-structure.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-d125e60798f073af", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/skills/frontend-with-playwright/references/principles/single-source-of-truth.md"}, "properties": {"repobilityId": "681df20f0b33e88e", "scanner": "scanner-primary", "fingerprint": "d125e60798f073af", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/frontend-with-playwright/references/principles/single-source-of-truth.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-ff12aab1f6c46f13", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/skills/migration-playbook-methodology/SKILL.md"}, "properties": {"repobilityId": "700b0cbecff0b6e3", "scanner": "scanner-primary", "fingerprint": "ff12aab1f6c46f13", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/migration-playbook-methodology/SKILL.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-f80622aa6012f638", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/skills/case-first-module-workflow/references/self-scan-regex.md"}, "properties": {"repobilityId": "3d71f345e08e5ae4", "scanner": "scanner-primary", "fingerprint": "f80622aa6012f638", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/case-first-module-workflow/references/self-scan-regex.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-4a889d7381d88c24", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/skills/case-first-module-workflow/references/principles/case-citation-three-part.md"}, "properties": {"repobilityId": "642394e3b7f7c4c6", "scanner": "scanner-primary", "fingerprint": "4a889d7381d88c24", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/case-first-module-workflow/references/principles/case-citation-three-part.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-1b2d19881c58e143", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/skills/requirement-protocol/references/cost-and-checkpoint.md"}, "properties": {"repobilityId": "952dec6dc44e7914", "scanner": "scanner-primary", "fingerprint": "1b2d19881c58e143", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/requirement-protocol/references/cost-and-checkpoint.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-7da54720a3b506e7", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/skills/requirement-protocol/references/principles/single-source-of-truth.md"}, "properties": {"repobilityId": "120db57c88119849", "scanner": "scanner-primary", "fingerprint": "7da54720a3b506e7", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/requirement-protocol/references/principles/single-source-of-truth.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-632cc470d05f4416", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: content/skills/compositional-writing/skill.md"}, "properties": {"repobilityId": "f646da4dd70d02d7", "scanner": "scanner-primary", "fingerprint": "632cc470d05f4416", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "skill_file"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "content/skills/compositional-writing/skill.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-9c73fc96fb619011", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .codex/briefs/knowledge-cards.md"}, "properties": {"repobilityId": "efd846c0a730446c", "scanner": "scanner-primary", "fingerprint": "9c73fc96fb619011", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "codex_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".codex/briefs/knowledge-cards.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-2e731b6ed59cf0cc", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .codex/outlines/db3-db4/mongodb/aggregation-pipeline-optimization.md"}, "properties": {"repobilityId": "6629984584537685", "scanner": "scanner-primary", "fingerprint": "2e731b6ed59cf0cc", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "codex_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".codex/outlines/db3-db4/mongodb/aggregation-pipeline-optimization.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-36b34496b936454d", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .codex/outlines/db3-db4/mongodb/change-streams-kafka.md"}, "properties": {"repobilityId": "8fbc96192e052875", "scanner": "scanner-primary", "fingerprint": "36b34496b936454d", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "codex_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".codex/outlines/db3-db4/mongodb/change-streams-kafka.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-c8632642dbc26cf8", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .codex/outlines/db3-db4/mongodb/schema-design-pattern.md"}, "properties": {"repobilityId": "5dfab59919e6f5e1", "scanner": "scanner-primary", "fingerprint": "c8632642dbc26cf8", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "codex_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".codex/outlines/db3-db4/mongodb/schema-design-pattern.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-62889dabb3c37fbf", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .codex/outlines/db3-db4/mongodb/replica-set-read-preference.md"}, "properties": {"repobilityId": "b8dc94cc0fbcbddb", "scanner": "scanner-primary", "fingerprint": "62889dabb3c37fbf", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "codex_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".codex/outlines/db3-db4/mongodb/replica-set-read-preference.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-c0a29d692941c1f7", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .codex/outlines/db3-db4/cosmosdb/partition-key-design.md"}, "properties": {"repobilityId": "272c40a3fb2dc07b", "scanner": "scanner-primary", "fingerprint": "c0a29d692941c1f7", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "codex_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".codex/outlines/db3-db4/cosmosdb/partition-key-design.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-f3a9682d3bb65159", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .codex/outlines/db3-db4/cosmosdb/multi-region-write-conflict.md"}, "properties": {"repobilityId": "1989e8876f2fe108", "scanner": "scanner-primary", "fingerprint": "f3a9682d3bb65159", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "codex_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".codex/outlines/db3-db4/cosmosdb/multi-region-write-conflict.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-67bae9f8715a592f", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .codex/outlines/db3-db4/reviews/r1-writing-spec.md"}, "properties": {"repobilityId": "275a62d99928c15b", "scanner": "scanner-primary", "fingerprint": "67bae9f8715a592f", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "codex_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".codex/outlines/db3-db4/reviews/r1-writing-spec.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-887aaa639fbfbdcb", "level": "error", "message": {"text": "Agent instruction/config may expose a secret: .codex/outlines/db3-db4/dynamodb/global-tables-conflict.md"}, "properties": {"repobilityId": "6a58093fa54821ff", "scanner": "scanner-primary", "fingerprint": "887aaa639fbfbdcb", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["agent-instructions", "secrets", "codex_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".codex/outlines/db3-db4/dynamodb/global-tables-conflict.md"}, "region": {"startLine": 39}}}]}, {"ruleId": "scanner-e725d2ab884fbd49", "level": "note", "message": {"text": "Multiple root agent instruction files without precedence"}, "properties": {"repobilityId": "1953db6c89508d22", "scanner": "scanner-primary", "fingerprint": "e725d2ab884fbd49", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["agent-instructions", "governance"]}}, {"ruleId": "scanner-14242fc1797e9027", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/search-filter.spec.ts:90"}, "properties": {"repobilityId": "2c01ea45d0c8ce62", "scanner": "scanner-primary", "fingerprint": "14242fc1797e9027", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "e0f94cda17359d9c", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-be46ea126aa5d8dc", "level": "note", "message": {"text": "Near-duplicate function bodies in 3 places"}, "properties": {"repobilityId": "b0f2378ce5374ed9", "scanner": "scanner-primary", "fingerprint": "be46ea126aa5d8dc", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "fe7058bfd9e032a4", "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": "5b8c07d2d94e7c3c", "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": "871e099d3237c7a3", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}]}]}