{"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-2b55fac5e54e245f", "name": "Possibly dead Python function: upload_files", "shortDescription": {"text": "Possibly dead Python function: upload_files"}, "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-3681c7890e79ba90", "name": "Possibly dead Python function: download_files", "shortDescription": {"text": "Possibly dead Python function: download_files"}, "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-823de3d7883946d0", "name": "Possibly dead Python function: setup", "shortDescription": {"text": "Possibly dead Python function: setup"}, "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-2c2b4c7a992b8129", "name": "Possibly dead Python function: awrap_tool_call", "shortDescription": {"text": "Possibly dead Python function: awrap_tool_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-2cdc2068a61db906", "name": "Possibly dead Python function: abefore_model", "shortDescription": {"text": "Possibly dead Python function: abefore_model"}, "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-1409af0b7ae91544", "name": "Possibly dead Python function: aafter_model", "shortDescription": {"text": "Possibly dead Python function: aafter_model"}, "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-b622fcd10538625b", "name": "Possibly dead Python function: aafter_agent", "shortDescription": {"text": "Possibly dead Python function: aafter_agent"}, "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-333a0d6bea7447e3", "name": "Possibly dead Python function: awrap_model_call", "shortDescription": {"text": "Possibly dead Python function: awrap_model_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-6dbdf5b70caba35b", "name": "Possibly dead Python function: abefore_agent", "shortDescription": {"text": "Possibly dead Python function: abefore_agent"}, "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-5f4cf4a224c76dec", "name": "Possibly dead Python function: awrap_tool_call", "shortDescription": {"text": "Possibly dead Python function: awrap_tool_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-114612cbf77be891", "name": "Possibly dead Python function: estimate_tokens", "shortDescription": {"text": "Possibly dead Python function: estimate_tokens"}, "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-1fcc68774555ecc7", "name": "Possibly dead Python function: awrap_model_call", "shortDescription": {"text": "Possibly dead Python function: awrap_model_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-0be261fb16a72bed", "name": "Possibly dead Python function: register_tool", "shortDescription": {"text": "Possibly dead Python function: register_tool"}, "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-ca95671a0d090971", "name": "Possibly dead Python function: register_memory_provider", "shortDescription": {"text": "Possibly dead Python function: register_memory_provider"}, "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-122d4132d6b47883", "name": "Possibly dead Python function: register_context_engine", "shortDescription": {"text": "Possibly dead Python function: register_context_engine"}, "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-ff8c32468292dd72", "name": "Possibly dead Python function: register_slash_command", "shortDescription": {"text": "Possibly dead Python function: register_slash_command"}, "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-614ebab07743e441", "name": "Possibly dead Python function: abefore_agent", "shortDescription": {"text": "Possibly dead Python function: abefore_agent"}, "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-597862608f3421b4", "name": "Possibly dead Python function: aafter_agent", "shortDescription": {"text": "Possibly dead Python function: aafter_agent"}, "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-73a9fca86b39f1e6", "name": "Possibly dead Python function: awrap_model_call", "shortDescription": {"text": "Possibly dead Python function: awrap_model_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-6d9c3a5cca7821ae", "name": "Possibly dead Python function: awrap_tool_call", "shortDescription": {"text": "Possibly dead Python function: awrap_tool_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-69000866d9f9221a", "name": "Possibly dead Python function: merge_runs", "shortDescription": {"text": "Possibly dead Python function: merge_runs"}, "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-8ab92c9b2f14b4ee", "name": "Possibly dead Python function: simplify_redlines", "shortDescription": {"text": "Possibly dead Python function: simplify_redlines"}, "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-729e742fbbe1cf01", "name": "Possibly dead Python function: infer_author", "shortDescription": {"text": "Possibly dead Python function: infer_author"}, "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-834a149850be7ca9", "name": "Possibly dead Python function: gmail_search", "shortDescription": {"text": "Possibly dead Python function: gmail_search"}, "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-aafc703db05ee017", "name": "Possibly dead Python function: gmail_get", "shortDescription": {"text": "Possibly dead Python function: gmail_get"}, "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-aa27357dec71ccd1", "name": "Possibly dead Python function: gmail_send", "shortDescription": {"text": "Possibly dead Python function: gmail_send"}, "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-deadcc78d57e9037", "name": "Possibly dead Python function: gmail_reply", "shortDescription": {"text": "Possibly dead Python function: gmail_reply"}, "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-26bf4f0fd9236049", "name": "Possibly dead Python function: gmail_labels", "shortDescription": {"text": "Possibly dead Python function: gmail_labels"}, "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-cb4f48f07b924258", "name": "Possibly dead Python function: gmail_modify", "shortDescription": {"text": "Possibly dead Python function: gmail_modify"}, "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-64d246581468c9ed", "name": "Privileged port 127 in use", "shortDescription": {"text": "Privileged port 127 in use"}, "fullDescription": {"text": "Port 127 is privileged (<1024). Make sure the service runs with the right caps or front it with a non-privileged port via a load balancer."}, "properties": {"scanner": "scanner-primary", "layer": "network", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-867f65fcafc1d6c5", "name": "Insecure pattern 'eval_used' in src/langstage_hermes/_bundled_skills/software-development/requesting-code-review/SKILL.m", "shortDescription": {"text": "Insecure pattern 'eval_used' in src/langstage_hermes/_bundled_skills/software-development/requesting-code-review/SKILL.md:144"}, "fullDescription": {"text": "Found a known-risky pattern (eval_used). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-af356788a99cada9", "name": "Insecure pattern 'python_os_system' in src/langstage_hermes/_bundled_skills/software-development/requesting-code-review/", "shortDescription": {"text": "Insecure pattern 'python_os_system' in src/langstage_hermes/_bundled_skills/software-development/requesting-code-review/SKILL.md:248"}, "fullDescription": {"text": "Found a known-risky pattern (python_os_system). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-83e78e2758390d11", "name": "Insecure pattern 'exec_used' in src/langstage_hermes/_bundled_skills/software-development/requesting-code-review/SKILL.m", "shortDescription": {"text": "Insecure pattern 'exec_used' in src/langstage_hermes/_bundled_skills/software-development/requesting-code-review/SKILL.md:144"}, "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-7dddf1de3088c9e8", "name": "Insecure pattern 'direct_innerhtml_assignment' in src/langstage_hermes/_bundled_skills/software-development/requesting-c", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/langstage_hermes/_bundled_skills/software-development/requesting-code-review/SKILL.md:256"}, "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-be6041cc25d7527b", "name": "Insecure pattern 'eval_used' in src/langstage_hermes/_bundled_skills/mlops/evaluation/evaluating-llms-harness/SKILL.md:1", "shortDescription": {"text": "Insecure pattern 'eval_used' in src/langstage_hermes/_bundled_skills/mlops/evaluation/evaluating-llms-harness/SKILL.md:192"}, "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-b6484b35ef99cd43", "name": "Insecure pattern 'python_os_system' in src/langstage_hermes/_bundled_skills/mlops/evaluation/evaluating-llms-harness/SKI", "shortDescription": {"text": "Insecure pattern 'python_os_system' in src/langstage_hermes/_bundled_skills/mlops/evaluation/evaluating-llms-harness/SKILL.md:206"}, "fullDescription": {"text": "Found a known-risky pattern (python_os_system). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-46c644c6227e4d4a", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "pypa/gh-action-pypi-publish@release/v1 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": "medium", "confidence": 1.0}}, {"id": "scanner-27924aa79fa4a517", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "actions/setup-python@v5 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-14148a5b04021833", "name": "Very large file: src/langstage_hermes/cli.py (1726 lines)", "shortDescription": {"text": "Very large file: src/langstage_hermes/cli.py (1726 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-3ab5d313dda8e5f9", "name": "Debug logging residue appears in source files", "shortDescription": {"text": "Debug logging residue appears in source files"}, "fullDescription": {"text": "Found 312 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 12 placeholder/mock markers across 5 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-f3766b81d2215d4e", "name": "Agent authority lacks a verifier contract: src/langstage_hermes/_bundled_skills/productivity/powerpoint/SKILL.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: src/langstage_hermes/_bundled_skills/productivity/powerpoint/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-5135049b2182725a", "name": "Agent instruction contains unpinned remote install: src/langstage_hermes/_bundled_skills/productivity/powerpoint/SKILL.m", "shortDescription": {"text": "Agent instruction contains unpinned remote install: src/langstage_hermes/_bundled_skills/productivity/powerpoint/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-675042855b156f53", "name": "Agent instruction/config may expose a secret: src/langstage_hermes/_bundled_skills/productivity/notion/SKILL.md", "shortDescription": {"text": "Agent instruction/config may expose a secret: src/langstage_hermes/_bundled_skills/productivity/notion/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-467a80e5f7fe0ccc", "name": "Agent instruction contains unpinned remote install: src/langstage_hermes/_bundled_skills/productivity/notion/SKILL.md", "shortDescription": {"text": "Agent instruction contains unpinned remote install: src/langstage_hermes/_bundled_skills/productivity/notion/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-d487fa1011b3e2c5", "name": "Agent authority lacks a verifier contract: src/langstage_hermes/_bundled_skills/software-development/requesting-code-rev", "shortDescription": {"text": "Agent authority lacks a verifier contract: src/langstage_hermes/_bundled_skills/software-development/requesting-code-review/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-fadda0269f14bdc8", "name": "Agent authority lacks a verifier contract: src/langstage_hermes/_bundled_skills/software-development/test-driven-develop", "shortDescription": {"text": "Agent authority lacks a verifier contract: src/langstage_hermes/_bundled_skills/software-development/test-driven-development/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-180e66a59ec2f131", "name": "Agent authority lacks a verifier contract: src/langstage_hermes/_bundled_skills/software-development/spike/SKILL.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: src/langstage_hermes/_bundled_skills/software-development/spike/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-46ce4596b6fc7a11", "name": "Agent authority lacks a verifier contract: src/langstage_hermes/_bundled_skills/software-development/python-debugpy/SKIL", "shortDescription": {"text": "Agent authority lacks a verifier contract: src/langstage_hermes/_bundled_skills/software-development/python-debugpy/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-a93c2a26c0283320", "name": "Agent authority lacks a verifier contract: src/langstage_hermes/_bundled_skills/software-development/writing-plans/SKILL", "shortDescription": {"text": "Agent authority lacks a verifier contract: src/langstage_hermes/_bundled_skills/software-development/writing-plans/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-8ade452dea9ecbd5", "name": "Agent authority lacks a verifier contract: src/langstage_hermes/_bundled_skills/software-development/systematic-debuggin", "shortDescription": {"text": "Agent authority lacks a verifier contract: src/langstage_hermes/_bundled_skills/software-development/systematic-debugging/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-57cae27b8dc2548d", "name": "Agent instruction contains unpinned remote install: src/langstage_hermes/_bundled_skills/mlops/huggingface-hub/SKILL.md", "shortDescription": {"text": "Agent instruction contains unpinned remote install: src/langstage_hermes/_bundled_skills/mlops/huggingface-hub/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-7479d682c43ac21d", "name": "Agent instruction/config may expose a secret: src/langstage_hermes/_bundled_skills/mlops/evaluation/evaluating-llms-harn", "shortDescription": {"text": "Agent instruction/config may expose a secret: src/langstage_hermes/_bundled_skills/mlops/evaluation/evaluating-llms-harness/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-125cd519ac97406c", "name": "Agent authority lacks a verifier contract: src/langstage_hermes/_bundled_skills/note-taking/obsidian/SKILL.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: src/langstage_hermes/_bundled_skills/note-taking/obsidian/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-ffa81b2e03737647", "name": "Agent authority lacks a verifier contract: src/langstage_hermes/_bundled_skills/research/blogwatcher/SKILL.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: src/langstage_hermes/_bundled_skills/research/blogwatcher/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-8c281cc4d1b281cf", "name": "Agent authority lacks a verifier contract: src/langstage_hermes/_bundled_skills/research/research-paper-writing/SKILL.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: src/langstage_hermes/_bundled_skills/research/research-paper-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-ef1ff46261a37e8a", "name": "Agent instruction contains unpinned remote install: src/langstage_hermes/_bundled_skills/research/research-paper-writing", "shortDescription": {"text": "Agent instruction contains unpinned remote install: src/langstage_hermes/_bundled_skills/research/research-paper-writing/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-d310c9e4aaeea5dd", "name": "Agent instruction contains unpinned remote install: src/langstage_hermes/_bundled_skills/research/llm-wiki/SKILL.md", "shortDescription": {"text": "Agent instruction contains unpinned remote install: src/langstage_hermes/_bundled_skills/research/llm-wiki/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-92b788830f4a68b0", "name": "Agent authority lacks a verifier contract: src/langstage_hermes/_bundled_skills/research/arxiv/SKILL.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: src/langstage_hermes/_bundled_skills/research/arxiv/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-d89989d9947a52a6", "name": "Agent authority lacks a verifier contract: src/langstage_hermes/_bundled_skills/github/github-repo-management/SKILL.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: src/langstage_hermes/_bundled_skills/github/github-repo-management/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-c3a71ca3c4f6ed01", "name": "Agent authority lacks a verifier contract: src/langstage_hermes/_bundled_skills/github/github-issues/SKILL.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: src/langstage_hermes/_bundled_skills/github/github-issues/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-1133b909c3c98afc", "name": "Agent authority lacks a verifier contract: src/langstage_hermes/_bundled_skills/github/codebase-inspection/SKILL.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: src/langstage_hermes/_bundled_skills/github/codebase-inspection/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-d770147b3c4f1777", "name": "Legacy-named symbol `test_hermes_home_falls_back_to_legacy` in tests/test_config.py:234", "shortDescription": {"text": "Legacy-named symbol `test_hermes_home_falls_back_to_legacy` in tests/test_config.py:234"}, "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-94788419adab3545", "name": "Commented-code block (7 lines) in examples/terminal_bench.py:168", "shortDescription": {"text": "Commented-code block (7 lines) in examples/terminal_bench.py:168"}, "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-04fdf90ac0bfc7a4", "name": "Commented-code block (6 lines) in src/langstage_hermes/cli.py:73", "shortDescription": {"text": "Commented-code block (6 lines) in src/langstage_hermes/cli.py:73"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0dba4f784afa9c5b", "name": "Stub function `write` (body is just `pass`/`return`) \u2014 src/langstage_hermes/cli.py:1368", "shortDescription": {"text": "Stub function `write` (body is just `pass`/`return`) \u2014 src/langstage_hermes/cli.py:1368"}, "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-4582cde8b3e2303f", "name": "Commented-code block (5 lines) in src/langstage_hermes/agent.py:158", "shortDescription": {"text": "Commented-code block (5 lines) in src/langstage_hermes/agent.py:158"}, "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-7aa3386c080fd1eb", "name": "Legacy-named symbol `model_copy` in src/langstage_hermes/compression.py:328", "shortDescription": {"text": "Legacy-named symbol `model_copy` in src/langstage_hermes/compression.py:328"}, "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-ede6bae558f17a3f", "name": "Legacy-named symbol `model_copy` in src/langstage_hermes/caching.py:57", "shortDescription": {"text": "Legacy-named symbol `model_copy` in src/langstage_hermes/caching.py:57"}, "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-ec262b8309ac439f", "name": "Commented-code block (10 lines) in src/langstage_hermes/caching.py:119", "shortDescription": {"text": "Commented-code block (10 lines) in src/langstage_hermes/caching.py:119"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-42b7cb567cecfbd2", "name": "Commented-code block (5 lines) in src/langstage_hermes/memory/threat_patterns.py:149", "shortDescription": {"text": "Commented-code block (5 lines) in src/langstage_hermes/memory/threat_patterns.py:149"}, "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-6b758fb29d5cf1d0", "name": "Commented-code block (6 lines) in src/langstage_hermes/plugins/context.py:35", "shortDescription": {"text": "Commented-code block (6 lines) in src/langstage_hermes/plugins/context.py:35"}, "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-8e9ddf789cd0bb92", "name": "Legacy-named symbol `model_copy` in src/langstage_hermes/plugins/event_bus.py:144", "shortDescription": {"text": "Legacy-named symbol `model_copy` in src/langstage_hermes/plugins/event_bus.py:144"}, "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-c09554348407041e", "name": "Network/subprocess call without timeout or try/except \u2014 src/langstage_hermes/_bundled_skills/productivity/google-workspa", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 src/langstage_hermes/_bundled_skills/productivity/google-workspace/scripts/google_api.py:108"}, "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-2efe1afa500b1237", "name": "Network/subprocess call without timeout or try/except \u2014 src/langstage_hermes/_bundled_skills/productivity/google-workspa", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 src/langstage_hermes/_bundled_skills/productivity/google-workspace/scripts/gws_bridge.py:106"}, "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-95b5ff447a117813", "name": "Legacy-named symbol `model_copy` in src/langstage_hermes/tools/file.py:80", "shortDescription": {"text": "Legacy-named symbol `model_copy` in src/langstage_hermes/tools/file.py:80"}, "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-e765f0af94ee40d3", "name": "Commented-code block (5 lines) in src/langstage_hermes/tools/file.py:65", "shortDescription": {"text": "Commented-code block (5 lines) in src/langstage_hermes/tools/file.py:65"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-8b7f495818358648", "name": "Legacy-named symbol `model_copy` in src/langstage_hermes/tools/todo.py:59", "shortDescription": {"text": "Legacy-named symbol `model_copy` in src/langstage_hermes/tools/todo.py:59"}, "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-048459659b0f4ec4", "name": "Network/subprocess call without timeout or try/except \u2014 src/langstage_hermes/tools/environments/local.py:144", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 src/langstage_hermes/tools/environments/local.py:144"}, "fullDescription": {"text": "`subprocess.Popen(...)` 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-54aac9bcdc3df3d1", "name": "Network/subprocess call without timeout or try/except \u2014 src/langstage_hermes/tools/environments/docker.py:276", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 src/langstage_hermes/tools/environments/docker.py:276"}, "fullDescription": {"text": "`subprocess.Popen(...)` 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-4eea1eeb02df9b21", "name": "Commented-code block (5 lines) in src/langstage_hermes/tools/environments/singularity.py:93", "shortDescription": {"text": "Commented-code block (5 lines) in src/langstage_hermes/tools/environments/singularity.py:93"}, "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-93aed406ce4da6d8", "name": "Network/subprocess call without timeout or try/except \u2014 src/langstage_hermes/tools/environments/singularity.py:175", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 src/langstage_hermes/tools/environments/singularity.py:175"}, "fullDescription": {"text": "`subprocess.Popen(...)` 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-b7e8090a5ce99bdf", "name": "Commented-code block (5 lines) in src/langstage_hermes/tools/environments/ssh.py:248", "shortDescription": {"text": "Commented-code block (5 lines) in src/langstage_hermes/tools/environments/ssh.py:248"}, "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-e3579f742a3e3c70", "name": "Commented-code block (6 lines) in src/langstage_hermes/tools/environments/base.py:175", "shortDescription": {"text": "Commented-code block (6 lines) in src/langstage_hermes/tools/environments/base.py:175"}, "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-c5b955324c752650", "name": "Commented-code block (5 lines) in src/langstage_hermes/store/sqlite_fts.py:1037", "shortDescription": {"text": "Commented-code block (5 lines) in src/langstage_hermes/store/sqlite_fts.py:1037"}, "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-917d9a0345742976", "name": "Commented-code block (5 lines) in src/langstage_hermes/skills/tools.py:246", "shortDescription": {"text": "Commented-code block (5 lines) in src/langstage_hermes/skills/tools.py:246"}, "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:\nsrc/langstage_hermes/reflection.py:build_review_subagent, src/langstage_hermes/curator.py:build_curator_subagent\n\nThis is *the* AI-coder failure mode (4\u00d7 more duplication in vibe-coded repos \u2014 see https://jw.hn/ai-code-hygiene). Consolidate or document why they're separate."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-49c98f7cedd9c977", "name": "Near-duplicate function bodies in 4 places", "shortDescription": {"text": "Near-duplicate function bodies in 4 places"}, "fullDescription": {"text": "Functions with the same first-5-line body hash:\nsrc/langstage_hermes/extractors.py:extract, src/langstage_hermes/extractors.py:extract, src/langstage_hermes/extractors.py:extract, src/langstage_hermes/extractors.py:extract\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/25441"}, "properties": {"repository": "dkedar7/langstage-hermes", "repoUrl": "https://github.com/dkedar7/langstage-hermes", "branch": "main"}, "results": [{"ruleId": "scanner-2b55fac5e54e245f", "level": "note", "message": {"text": "Possibly dead Python function: upload_files"}, "properties": {"repobilityId": "92c4b8822ccc8969", "scanner": "scanner-primary", "fingerprint": "2b55fac5e54e245f", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "examples/terminal_bench.py:156"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-3681c7890e79ba90", "level": "note", "message": {"text": "Possibly dead Python function: download_files"}, "properties": {"repobilityId": "de47c347a2a2307c", "scanner": "scanner-primary", "fingerprint": "3681c7890e79ba90", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "examples/terminal_bench.py:222"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-823de3d7883946d0", "level": "note", "message": {"text": "Possibly dead Python function: setup"}, "properties": {"repobilityId": "52737e4a6c586991", "scanner": "scanner-primary", "fingerprint": "823de3d7883946d0", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "examples/terminal_bench.py:296"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-2c2b4c7a992b8129", "level": "note", "message": {"text": "Possibly dead Python function: awrap_tool_call"}, "properties": {"repobilityId": "8f73b9e695ecab59", "scanner": "scanner-primary", "fingerprint": "2c2b4c7a992b8129", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/langstage_hermes/reflection.py:422"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-2cdc2068a61db906", "level": "note", "message": {"text": "Possibly dead Python function: abefore_model"}, "properties": {"repobilityId": "ff8dc4a52ed153d3", "scanner": "scanner-primary", "fingerprint": "2cdc2068a61db906", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/langstage_hermes/reflection.py:438"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-1409af0b7ae91544", "level": "note", "message": {"text": "Possibly dead Python function: aafter_model"}, "properties": {"repobilityId": "56db8011a63da641", "scanner": "scanner-primary", "fingerprint": "1409af0b7ae91544", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/langstage_hermes/reflection.py:441"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-b622fcd10538625b", "level": "note", "message": {"text": "Possibly dead Python function: aafter_agent"}, "properties": {"repobilityId": "0a8e48fc4482b873", "scanner": "scanner-primary", "fingerprint": "b622fcd10538625b", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/langstage_hermes/reflection.py:444"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-333a0d6bea7447e3", "level": "note", "message": {"text": "Possibly dead Python function: awrap_model_call"}, "properties": {"repobilityId": "cc1de1b484b71f7f", "scanner": "scanner-primary", "fingerprint": "333a0d6bea7447e3", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/langstage_hermes/prompts.py:460"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-6dbdf5b70caba35b", "level": "note", "message": {"text": "Possibly dead Python function: abefore_agent"}, "properties": {"repobilityId": "f208bb5a01d93ea3", "scanner": "scanner-primary", "fingerprint": "6dbdf5b70caba35b", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/langstage_hermes/budget.py:115"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-5f4cf4a224c76dec", "level": "note", "message": {"text": "Possibly dead Python function: awrap_tool_call"}, "properties": {"repobilityId": "8f73b9e695ecab59", "scanner": "scanner-primary", "fingerprint": "5f4cf4a224c76dec", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/langstage_hermes/budget.py:147"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-114612cbf77be891", "level": "note", "message": {"text": "Possibly dead Python function: estimate_tokens"}, "properties": {"repobilityId": "2f3c83692bdba83e", "scanner": "scanner-primary", "fingerprint": "114612cbf77be891", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/langstage_hermes/compression.py:214"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-1fcc68774555ecc7", "level": "note", "message": {"text": "Possibly dead Python function: awrap_model_call"}, "properties": {"repobilityId": "cc1de1b484b71f7f", "scanner": "scanner-primary", "fingerprint": "1fcc68774555ecc7", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/langstage_hermes/caching.py:164"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-0be261fb16a72bed", "level": "note", "message": {"text": "Possibly dead Python function: register_tool"}, "properties": {"repobilityId": "a571eb6af7132384", "scanner": "scanner-primary", "fingerprint": "0be261fb16a72bed", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/langstage_hermes/plugins/context.py:162"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-ca95671a0d090971", "level": "note", "message": {"text": "Possibly dead Python function: register_memory_provider"}, "properties": {"repobilityId": "a4bddaeedd3b4e6a", "scanner": "scanner-primary", "fingerprint": "ca95671a0d090971", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/langstage_hermes/plugins/context.py:176"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-122d4132d6b47883", "level": "note", "message": {"text": "Possibly dead Python function: register_context_engine"}, "properties": {"repobilityId": "ef99c876ac04291f", "scanner": "scanner-primary", "fingerprint": "122d4132d6b47883", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/langstage_hermes/plugins/context.py:196"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-ff8c32468292dd72", "level": "note", "message": {"text": "Possibly dead Python function: register_slash_command"}, "properties": {"repobilityId": "bfabab2556a351ae", "scanner": "scanner-primary", "fingerprint": "ff8c32468292dd72", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/langstage_hermes/plugins/context.py:250"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-614ebab07743e441", "level": "note", "message": {"text": "Possibly dead Python function: abefore_agent"}, "properties": {"repobilityId": "f208bb5a01d93ea3", "scanner": "scanner-primary", "fingerprint": "614ebab07743e441", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/langstage_hermes/plugins/event_bus.py:256"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-597862608f3421b4", "level": "note", "message": {"text": "Possibly dead Python function: aafter_agent"}, "properties": {"repobilityId": "0a8e48fc4482b873", "scanner": "scanner-primary", "fingerprint": "597862608f3421b4", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/langstage_hermes/plugins/event_bus.py:266"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-73a9fca86b39f1e6", "level": "note", "message": {"text": "Possibly dead Python function: awrap_model_call"}, "properties": {"repobilityId": "cc1de1b484b71f7f", "scanner": "scanner-primary", "fingerprint": "73a9fca86b39f1e6", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/langstage_hermes/plugins/event_bus.py:304"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-6d9c3a5cca7821ae", "level": "note", "message": {"text": "Possibly dead Python function: awrap_tool_call"}, "properties": {"repobilityId": "8f73b9e695ecab59", "scanner": "scanner-primary", "fingerprint": "6d9c3a5cca7821ae", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/langstage_hermes/plugins/event_bus.py:393"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-69000866d9f9221a", "level": "note", "message": {"text": "Possibly dead Python function: merge_runs"}, "properties": {"repobilityId": "435767544049256d", "scanner": "scanner-primary", "fingerprint": "69000866d9f9221a", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/langstage_hermes/_bundled_skills/productivity/powerpoint/scripts/office/helpers/merge_runs.py:16"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-8ab92c9b2f14b4ee", "level": "note", "message": {"text": "Possibly dead Python function: simplify_redlines"}, "properties": {"repobilityId": "cfedaef01c821ad9", "scanner": "scanner-primary", "fingerprint": "8ab92c9b2f14b4ee", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/langstage_hermes/_bundled_skills/productivity/powerpoint/scripts/office/helpers/simplify_redlines.py:22"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-729e742fbbe1cf01", "level": "note", "message": {"text": "Possibly dead Python function: infer_author"}, "properties": {"repobilityId": "82897dcd4c40919c", "scanner": "scanner-primary", "fingerprint": "729e742fbbe1cf01", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/langstage_hermes/_bundled_skills/productivity/powerpoint/scripts/office/helpers/simplify_redlines.py:172"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-834a149850be7ca9", "level": "note", "message": {"text": "Possibly dead Python function: gmail_search"}, "properties": {"repobilityId": "e7317b8748f9c231", "scanner": "scanner-primary", "fingerprint": "834a149850be7ca9", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/langstage_hermes/_bundled_skills/productivity/google-workspace/scripts/google_api.py:214"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-aafc703db05ee017", "level": "note", "message": {"text": "Possibly dead Python function: gmail_get"}, "properties": {"repobilityId": "0d34b61a08a3a108", "scanner": "scanner-primary", "fingerprint": "aafc703db05ee017", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/langstage_hermes/_bundled_skills/productivity/google-workspace/scripts/google_api.py:278"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-aa27357dec71ccd1", "level": "note", "message": {"text": "Possibly dead Python function: gmail_send"}, "properties": {"repobilityId": "06bace37ed4025f5", "scanner": "scanner-primary", "fingerprint": "aa27357dec71ccd1", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/langstage_hermes/_bundled_skills/productivity/google-workspace/scripts/google_api.py:318"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-deadcc78d57e9037", "level": "note", "message": {"text": "Possibly dead Python function: gmail_reply"}, "properties": {"repobilityId": "e80e63160b4295f0", "scanner": "scanner-primary", "fingerprint": "deadcc78d57e9037", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/langstage_hermes/_bundled_skills/productivity/google-workspace/scripts/google_api.py:361"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-26bf4f0fd9236049", "level": "note", "message": {"text": "Possibly dead Python function: gmail_labels"}, "properties": {"repobilityId": "560c2bdce2d9efff", "scanner": "scanner-primary", "fingerprint": "26bf4f0fd9236049", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/langstage_hermes/_bundled_skills/productivity/google-workspace/scripts/google_api.py:424"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-cb4f48f07b924258", "level": "note", "message": {"text": "Possibly dead Python function: gmail_modify"}, "properties": {"repobilityId": "de91b3c40a68022b", "scanner": "scanner-primary", "fingerprint": "cb4f48f07b924258", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/langstage_hermes/_bundled_skills/productivity/google-workspace/scripts/google_api.py:438"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-64d246581468c9ed", "level": "warning", "message": {"text": "Privileged port 127 in use"}, "properties": {"repobilityId": "afafb77f13b4bf59", "scanner": "scanner-primary", "fingerprint": "64d246581468c9ed", "layer": "network", "severity": "medium", "confidence": 1.0, "tags": ["security", "ports"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/langstage_hermes/_bundled_skills/software-development/python-debugpy/SKILL.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-867f65fcafc1d6c5", "level": "error", "message": {"text": "Insecure pattern 'eval_used' in src/langstage_hermes/_bundled_skills/software-development/requesting-code-review/SKILL.md:144"}, "properties": {"repobilityId": "0918a7516955d184", "scanner": "scanner-primary", "fingerprint": "867f65fcafc1d6c5", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "eval_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/langstage_hermes/_bundled_skills/software-development/requesting-code-review/SKILL.md"}, "region": {"startLine": 144}}}]}, {"ruleId": "scanner-af356788a99cada9", "level": "error", "message": {"text": "Insecure pattern 'python_os_system' in src/langstage_hermes/_bundled_skills/software-development/requesting-code-review/SKILL.md:248"}, "properties": {"repobilityId": "4ea99551aea1ddde", "scanner": "scanner-primary", "fingerprint": "af356788a99cada9", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "python_os_system"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/langstage_hermes/_bundled_skills/software-development/requesting-code-review/SKILL.md"}, "region": {"startLine": 248}}}]}, {"ruleId": "scanner-83e78e2758390d11", "level": "error", "message": {"text": "Insecure pattern 'exec_used' in src/langstage_hermes/_bundled_skills/software-development/requesting-code-review/SKILL.md:144"}, "properties": {"repobilityId": "3b122c823fc554aa", "scanner": "scanner-primary", "fingerprint": "83e78e2758390d11", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "exec_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/langstage_hermes/_bundled_skills/software-development/requesting-code-review/SKILL.md"}, "region": {"startLine": 144}}}]}, {"ruleId": "scanner-7dddf1de3088c9e8", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/langstage_hermes/_bundled_skills/software-development/requesting-code-review/SKILL.md:256"}, "properties": {"repobilityId": "afa619d3e1daba54", "scanner": "scanner-primary", "fingerprint": "7dddf1de3088c9e8", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/langstage_hermes/_bundled_skills/software-development/requesting-code-review/SKILL.md"}, "region": {"startLine": 256}}}]}, {"ruleId": "scanner-be6041cc25d7527b", "level": "error", "message": {"text": "Insecure pattern 'eval_used' in src/langstage_hermes/_bundled_skills/mlops/evaluation/evaluating-llms-harness/SKILL.md:192"}, "properties": {"repobilityId": "f8f4d7fe5db2c00b", "scanner": "scanner-primary", "fingerprint": "be6041cc25d7527b", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "eval_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/langstage_hermes/_bundled_skills/mlops/evaluation/evaluating-llms-harness/SKILL.md"}, "region": {"startLine": 192}}}]}, {"ruleId": "scanner-b6484b35ef99cd43", "level": "error", "message": {"text": "Insecure pattern 'python_os_system' in src/langstage_hermes/_bundled_skills/mlops/evaluation/evaluating-llms-harness/SKILL.md:206"}, "properties": {"repobilityId": "b327610194e0c186", "scanner": "scanner-primary", "fingerprint": "b6484b35ef99cd43", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "python_os_system"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/langstage_hermes/_bundled_skills/mlops/evaluation/evaluating-llms-harness/SKILL.md"}, "region": {"startLine": 206}}}]}, {"ruleId": "scanner-46c644c6227e4d4a", "level": "warning", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "8eb96fb1706184f3", "scanner": "scanner-primary", "fingerprint": "46c644c6227e4d4a", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/release.yml"}, "region": {"startLine": 21}}}]}, {"ruleId": "scanner-27924aa79fa4a517", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "04f57d208548fcef", "scanner": "scanner-primary", "fingerprint": "27924aa79fa4a517", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/ci.yml"}, "region": {"startLine": 22}}}]}, {"ruleId": "scanner-27924aa79fa4a517", "level": "warning", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "46bca0fa0c5a1433", "scanner": "scanner-primary", "fingerprint": "27924aa79fa4a517", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/ci.yml"}, "region": {"startLine": 27}}}]}, {"ruleId": "scanner-14148a5b04021833", "level": "note", "message": {"text": "Very large file: src/langstage_hermes/cli.py (1726 lines)"}, "properties": {"repobilityId": "d63df80d5e159448", "scanner": "scanner-primary", "fingerprint": "14148a5b04021833", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-3ab5d313dda8e5f9", "level": "note", "message": {"text": "Debug logging residue appears in source files"}, "properties": {"repobilityId": "2c073e4076e47c18", "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": "3c9eb22ddcb96af4", "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": "7d36fe612cc90166", "scanner": "scanner-primary", "fingerprint": "2d0c7b7ab8f8aacf", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["placeholder", "mock-data", "critical-flow", "generated-repo-pattern"]}}, {"ruleId": "scanner-f3766b81d2215d4e", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: src/langstage_hermes/_bundled_skills/productivity/powerpoint/SKILL.md"}, "properties": {"repobilityId": "f93bb5b72b328c18", "scanner": "scanner-primary", "fingerprint": "f3766b81d2215d4e", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "skill_file"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/langstage_hermes/_bundled_skills/productivity/powerpoint/SKILL.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-5135049b2182725a", "level": "warning", "message": {"text": "Agent instruction contains unpinned remote install: src/langstage_hermes/_bundled_skills/productivity/powerpoint/SKILL.md"}, "properties": {"repobilityId": "feedd178cc62045a", "scanner": "scanner-primary", "fingerprint": "5135049b2182725a", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "supply-chain", "skill_file"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/langstage_hermes/_bundled_skills/productivity/powerpoint/SKILL.md"}, "region": {"startLine": 235}}}]}, {"ruleId": "scanner-675042855b156f53", "level": "error", "message": {"text": "Agent instruction/config may expose a secret: src/langstage_hermes/_bundled_skills/productivity/notion/SKILL.md"}, "properties": {"repobilityId": "5cd59c21c5f928e8", "scanner": "scanner-primary", "fingerprint": "675042855b156f53", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["agent-instructions", "secrets", "skill_file"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/langstage_hermes/_bundled_skills/productivity/notion/SKILL.md"}, "region": {"startLine": 31}}}]}, {"ruleId": "scanner-467a80e5f7fe0ccc", "level": "warning", "message": {"text": "Agent instruction contains unpinned remote install: src/langstage_hermes/_bundled_skills/productivity/notion/SKILL.md"}, "properties": {"repobilityId": "671a01d8b28207d3", "scanner": "scanner-primary", "fingerprint": "467a80e5f7fe0ccc", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "supply-chain", "skill_file"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/langstage_hermes/_bundled_skills/productivity/notion/SKILL.md"}, "region": {"startLine": 39}}}]}, {"ruleId": "scanner-d487fa1011b3e2c5", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: src/langstage_hermes/_bundled_skills/software-development/requesting-code-review/SKILL.md"}, "properties": {"repobilityId": "dba054412f21595f", "scanner": "scanner-primary", "fingerprint": "d487fa1011b3e2c5", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "skill_file"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/langstage_hermes/_bundled_skills/software-development/requesting-code-review/SKILL.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-fadda0269f14bdc8", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: src/langstage_hermes/_bundled_skills/software-development/test-driven-development/SKILL.md"}, "properties": {"repobilityId": "c91d35aa1e566514", "scanner": "scanner-primary", "fingerprint": "fadda0269f14bdc8", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "skill_file"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/langstage_hermes/_bundled_skills/software-development/test-driven-development/SKILL.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-180e66a59ec2f131", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: src/langstage_hermes/_bundled_skills/software-development/spike/SKILL.md"}, "properties": {"repobilityId": "adefa2ed4f12b6a0", "scanner": "scanner-primary", "fingerprint": "180e66a59ec2f131", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "skill_file"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/langstage_hermes/_bundled_skills/software-development/spike/SKILL.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-46ce4596b6fc7a11", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: src/langstage_hermes/_bundled_skills/software-development/python-debugpy/SKILL.md"}, "properties": {"repobilityId": "49f109a8edbea3de", "scanner": "scanner-primary", "fingerprint": "46ce4596b6fc7a11", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "skill_file"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/langstage_hermes/_bundled_skills/software-development/python-debugpy/SKILL.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-a93c2a26c0283320", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: src/langstage_hermes/_bundled_skills/software-development/writing-plans/SKILL.md"}, "properties": {"repobilityId": "6a0c84c7269659ce", "scanner": "scanner-primary", "fingerprint": "a93c2a26c0283320", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "skill_file"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/langstage_hermes/_bundled_skills/software-development/writing-plans/SKILL.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-8ade452dea9ecbd5", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: src/langstage_hermes/_bundled_skills/software-development/systematic-debugging/SKILL.md"}, "properties": {"repobilityId": "4adafbe261fbc405", "scanner": "scanner-primary", "fingerprint": "8ade452dea9ecbd5", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "skill_file"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/langstage_hermes/_bundled_skills/software-development/systematic-debugging/SKILL.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-57cae27b8dc2548d", "level": "warning", "message": {"text": "Agent instruction contains unpinned remote install: src/langstage_hermes/_bundled_skills/mlops/huggingface-hub/SKILL.md"}, "properties": {"repobilityId": "b1e744a55a323937", "scanner": "scanner-primary", "fingerprint": "57cae27b8dc2548d", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "supply-chain", "skill_file"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/langstage_hermes/_bundled_skills/mlops/huggingface-hub/SKILL.md"}, "region": {"startLine": 18}}}]}, {"ruleId": "scanner-7479d682c43ac21d", "level": "error", "message": {"text": "Agent instruction/config may expose a secret: src/langstage_hermes/_bundled_skills/mlops/evaluation/evaluating-llms-harness/SKILL.md"}, "properties": {"repobilityId": "57b7a5afba433a64", "scanner": "scanner-primary", "fingerprint": "7479d682c43ac21d", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["agent-instructions", "secrets", "skill_file"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/langstage_hermes/_bundled_skills/mlops/evaluation/evaluating-llms-harness/SKILL.md"}, "region": {"startLine": 100}}}]}, {"ruleId": "scanner-125cd519ac97406c", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: src/langstage_hermes/_bundled_skills/note-taking/obsidian/SKILL.md"}, "properties": {"repobilityId": "a0bbfa963a23c623", "scanner": "scanner-primary", "fingerprint": "125cd519ac97406c", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "skill_file"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/langstage_hermes/_bundled_skills/note-taking/obsidian/SKILL.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-ffa81b2e03737647", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: src/langstage_hermes/_bundled_skills/research/blogwatcher/SKILL.md"}, "properties": {"repobilityId": "967cf762531c488a", "scanner": "scanner-primary", "fingerprint": "ffa81b2e03737647", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "skill_file"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/langstage_hermes/_bundled_skills/research/blogwatcher/SKILL.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-8c281cc4d1b281cf", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: src/langstage_hermes/_bundled_skills/research/research-paper-writing/SKILL.md"}, "properties": {"repobilityId": "736eec733040dbc9", "scanner": "scanner-primary", "fingerprint": "8c281cc4d1b281cf", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "skill_file"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/langstage_hermes/_bundled_skills/research/research-paper-writing/SKILL.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-ef1ff46261a37e8a", "level": "warning", "message": {"text": "Agent instruction contains unpinned remote install: src/langstage_hermes/_bundled_skills/research/research-paper-writing/SKILL.md"}, "properties": {"repobilityId": "171e1f3de9d574d7", "scanner": "scanner-primary", "fingerprint": "ef1ff46261a37e8a", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "supply-chain", "skill_file"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/langstage_hermes/_bundled_skills/research/research-paper-writing/SKILL.md"}, "region": {"startLine": 274}}}]}, {"ruleId": "scanner-d310c9e4aaeea5dd", "level": "warning", "message": {"text": "Agent instruction contains unpinned remote install: src/langstage_hermes/_bundled_skills/research/llm-wiki/SKILL.md"}, "properties": {"repobilityId": "c97005dab682f0d5", "scanner": "scanner-primary", "fingerprint": "d310c9e4aaeea5dd", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "supply-chain", "skill_file"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/langstage_hermes/_bundled_skills/research/llm-wiki/SKILL.md"}, "region": {"startLine": 430}}}]}, {"ruleId": "scanner-92b788830f4a68b0", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: src/langstage_hermes/_bundled_skills/research/arxiv/SKILL.md"}, "properties": {"repobilityId": "0bdea43c48f11bb5", "scanner": "scanner-primary", "fingerprint": "92b788830f4a68b0", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "skill_file"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/langstage_hermes/_bundled_skills/research/arxiv/SKILL.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-d89989d9947a52a6", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: src/langstage_hermes/_bundled_skills/github/github-repo-management/SKILL.md"}, "properties": {"repobilityId": "706b0b70abe51993", "scanner": "scanner-primary", "fingerprint": "d89989d9947a52a6", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "skill_file"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/langstage_hermes/_bundled_skills/github/github-repo-management/SKILL.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-c3a71ca3c4f6ed01", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: src/langstage_hermes/_bundled_skills/github/github-issues/SKILL.md"}, "properties": {"repobilityId": "b25aa5f2b621c3f7", "scanner": "scanner-primary", "fingerprint": "c3a71ca3c4f6ed01", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "skill_file"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/langstage_hermes/_bundled_skills/github/github-issues/SKILL.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-1133b909c3c98afc", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: src/langstage_hermes/_bundled_skills/github/codebase-inspection/SKILL.md"}, "properties": {"repobilityId": "49bb1d90405f6b22", "scanner": "scanner-primary", "fingerprint": "1133b909c3c98afc", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "skill_file"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/langstage_hermes/_bundled_skills/github/codebase-inspection/SKILL.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-d770147b3c4f1777", "level": "note", "message": {"text": "Legacy-named symbol `test_hermes_home_falls_back_to_legacy` in tests/test_config.py:234"}, "properties": {"repobilityId": "2b2e6b684b2d99c7", "scanner": "scanner-primary", "fingerprint": "d770147b3c4f1777", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-94788419adab3545", "level": "none", "message": {"text": "Commented-code block (7 lines) in examples/terminal_bench.py:168"}, "properties": {"repobilityId": "3bb5129123692e09", "scanner": "scanner-primary", "fingerprint": "94788419adab3545", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-04fdf90ac0bfc7a4", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/langstage_hermes/cli.py:73"}, "properties": {"repobilityId": "09735fe22a4ba2e4", "scanner": "scanner-primary", "fingerprint": "04fdf90ac0bfc7a4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0dba4f784afa9c5b", "level": "note", "message": {"text": "Stub function `write` (body is just `pass`/`return`) \u2014 src/langstage_hermes/cli.py:1368"}, "properties": {"repobilityId": "1ca8220a844d0143", "scanner": "scanner-primary", "fingerprint": "0dba4f784afa9c5b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "empty-handler", "dead-code"]}}, {"ruleId": "scanner-4582cde8b3e2303f", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/langstage_hermes/agent.py:158"}, "properties": {"repobilityId": "d8d37e6a40ab2ee2", "scanner": "scanner-primary", "fingerprint": "4582cde8b3e2303f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7aa3386c080fd1eb", "level": "note", "message": {"text": "Legacy-named symbol `model_copy` in src/langstage_hermes/compression.py:328"}, "properties": {"repobilityId": "7f91cd395f3789b2", "scanner": "scanner-primary", "fingerprint": "7aa3386c080fd1eb", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-ede6bae558f17a3f", "level": "note", "message": {"text": "Legacy-named symbol `model_copy` in src/langstage_hermes/caching.py:57"}, "properties": {"repobilityId": "f0bc10666d39ac10", "scanner": "scanner-primary", "fingerprint": "ede6bae558f17a3f", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-ec262b8309ac439f", "level": "none", "message": {"text": "Commented-code block (10 lines) in src/langstage_hermes/caching.py:119"}, "properties": {"repobilityId": "07897aafb1c5d444", "scanner": "scanner-primary", "fingerprint": "ec262b8309ac439f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-42b7cb567cecfbd2", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/langstage_hermes/memory/threat_patterns.py:149"}, "properties": {"repobilityId": "5dea5516358a6a8e", "scanner": "scanner-primary", "fingerprint": "42b7cb567cecfbd2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6b758fb29d5cf1d0", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/langstage_hermes/plugins/context.py:35"}, "properties": {"repobilityId": "8056acaa581f9a0e", "scanner": "scanner-primary", "fingerprint": "6b758fb29d5cf1d0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8e9ddf789cd0bb92", "level": "note", "message": {"text": "Legacy-named symbol `model_copy` in src/langstage_hermes/plugins/event_bus.py:144"}, "properties": {"repobilityId": "0ea6019d14e4ed6d", "scanner": "scanner-primary", "fingerprint": "8e9ddf789cd0bb92", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-c09554348407041e", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 src/langstage_hermes/_bundled_skills/productivity/google-workspace/scripts/google_api.py:108"}, "properties": {"repobilityId": "ed84dc81a33225bd", "scanner": "scanner-primary", "fingerprint": "c09554348407041e", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-2efe1afa500b1237", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 src/langstage_hermes/_bundled_skills/productivity/google-workspace/scripts/gws_bridge.py:106"}, "properties": {"repobilityId": "0ac2fb450a0d1299", "scanner": "scanner-primary", "fingerprint": "2efe1afa500b1237", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-95b5ff447a117813", "level": "note", "message": {"text": "Legacy-named symbol `model_copy` in src/langstage_hermes/tools/file.py:80"}, "properties": {"repobilityId": "6fbc57f19d402552", "scanner": "scanner-primary", "fingerprint": "95b5ff447a117813", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-e765f0af94ee40d3", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/langstage_hermes/tools/file.py:65"}, "properties": {"repobilityId": "61ea2bcf9af5b841", "scanner": "scanner-primary", "fingerprint": "e765f0af94ee40d3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8b7f495818358648", "level": "note", "message": {"text": "Legacy-named symbol `model_copy` in src/langstage_hermes/tools/todo.py:59"}, "properties": {"repobilityId": "2c72e0cfd6e86acb", "scanner": "scanner-primary", "fingerprint": "8b7f495818358648", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-048459659b0f4ec4", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 src/langstage_hermes/tools/environments/local.py:144"}, "properties": {"repobilityId": "fc18abc85866f57b", "scanner": "scanner-primary", "fingerprint": "048459659b0f4ec4", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-54aac9bcdc3df3d1", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 src/langstage_hermes/tools/environments/docker.py:276"}, "properties": {"repobilityId": "125f8944958cfc82", "scanner": "scanner-primary", "fingerprint": "54aac9bcdc3df3d1", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-4eea1eeb02df9b21", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/langstage_hermes/tools/environments/singularity.py:93"}, "properties": {"repobilityId": "25c2ea46c2a819bc", "scanner": "scanner-primary", "fingerprint": "4eea1eeb02df9b21", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-93aed406ce4da6d8", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 src/langstage_hermes/tools/environments/singularity.py:175"}, "properties": {"repobilityId": "bc3fd65c21f4df87", "scanner": "scanner-primary", "fingerprint": "93aed406ce4da6d8", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-b7e8090a5ce99bdf", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/langstage_hermes/tools/environments/ssh.py:248"}, "properties": {"repobilityId": "cefd33685dd67e49", "scanner": "scanner-primary", "fingerprint": "b7e8090a5ce99bdf", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e3579f742a3e3c70", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/langstage_hermes/tools/environments/base.py:175"}, "properties": {"repobilityId": "bb8bb1227142b4b1", "scanner": "scanner-primary", "fingerprint": "e3579f742a3e3c70", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c5b955324c752650", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/langstage_hermes/store/sqlite_fts.py:1037"}, "properties": {"repobilityId": "25c08f626884ae39", "scanner": "scanner-primary", "fingerprint": "c5b955324c752650", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-917d9a0345742976", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/langstage_hermes/skills/tools.py:246"}, "properties": {"repobilityId": "e6eb8d9b83cb19c5", "scanner": "scanner-primary", "fingerprint": "917d9a0345742976", "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": "cf706f5f1a606e0b", "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": "4173f90b5ac742b8", "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": "9d35a94ad1b07e45", "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": "af704bdfddd2f8b6", "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": "731fd7552f926def", "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": "e5d4fe263822abf3", "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": "65b7b3b86dff696c", "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": "aaf50a5496fce08c", "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": "0a8242bc4174f3a5", "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": "a587ef00426ac673", "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": "62f73944c4bfe7b2", "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": "34c6fb4e0e15a420", "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": "b990d66855271a31", "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": "c63b3559140eb332", "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": "4914bc964d469452", "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": "71e894d512559b87", "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": "86f7bd29bf410cee", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}]}]}