{"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-59719badf866121b", "name": "Possibly dead Python function: visit", "shortDescription": {"text": "Possibly dead Python function: visit"}, "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-826d0e0556126820", "name": "detect child process \u2014 sdk/node/index.js:422", "shortDescription": {"text": "detect child process \u2014 sdk/node/index.js:422"}, "fullDescription": {"text": "Detected calls to child_process from a function argument `binary`. This could lead to a command injection if the input is user controllable. Try to avoid calls to child_process, and if it is needed ensure user input is correctly sanitized or sandboxed.\n\nRule: javascript.lang.security.detect-child-process.detect-child-process\nSeverity: ERROR\nOWASP: A01:2017 - Injection, A03:2021 - Injection, A05:2025 - Injection\nCWE: CWE-78: Improper Neutralization of Special Elements used in an OS Command ('OS Command Injection')\nCategory: security\nContext: production"}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 0.55}}, {"id": "scanner-27e547ff01413a83", "name": "Agent instruction contains unpinned remote install: SKILL.md", "shortDescription": {"text": "Agent instruction contains unpinned remote install: 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-f383b3a2e7d55631", "name": "Agent instruction contains unpinned remote install: skills/officecli-academic-paper/SKILL.md", "shortDescription": {"text": "Agent instruction contains unpinned remote install: skills/officecli-academic-paper/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-8fd766ffd060de20", "name": "Agent authority lacks a verifier contract: skills/officecli-financial-model/SKILL.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: skills/officecli-financial-model/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-bfe922fbf4081a14", "name": "Agent instruction contains unpinned remote install: skills/officecli-financial-model/SKILL.md", "shortDescription": {"text": "Agent instruction contains unpinned remote install: skills/officecli-financial-model/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-fbd01c07f9a202f2", "name": "Agent authority lacks a verifier contract: skills/officecli-data-dashboard/SKILL.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: skills/officecli-data-dashboard/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-5f0f7554d7afb075", "name": "Agent instruction contains unpinned remote install: skills/officecli-data-dashboard/SKILL.md", "shortDescription": {"text": "Agent instruction contains unpinned remote install: skills/officecli-data-dashboard/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-be022b24d1aeba0f", "name": "Agent authority lacks a verifier contract: skills/officecli-pptx/SKILL.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: skills/officecli-pptx/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-8bb18fcc8777d508", "name": "Agent instruction contains unpinned remote install: skills/officecli-pptx/SKILL.md", "shortDescription": {"text": "Agent instruction contains unpinned remote install: skills/officecli-pptx/SKILL.md"}, "fullDescription": {"text": "Remote install commands in agent instructions are a supply-chain risk, especially when an agent can execute shell commands."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-2cac489a1bb62ed1", "name": "Agent instruction contains unpinned remote install: skills/morph-ppt-3d/SKILL.md", "shortDescription": {"text": "Agent instruction contains unpinned remote install: skills/morph-ppt-3d/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-550f44ca7dc7e600", "name": "Agent instruction contains unpinned remote install: skills/officecli-xlsx/SKILL.md", "shortDescription": {"text": "Agent instruction contains unpinned remote install: skills/officecli-xlsx/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-608bbb70c11fd1bf", "name": "Agent authority lacks a verifier contract: skills/officecli-word-form/SKILL.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: skills/officecli-word-form/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-d1c122f65c4bde1f", "name": "Agent instruction contains unpinned remote install: skills/officecli-word-form/SKILL.md", "shortDescription": {"text": "Agent instruction contains unpinned remote install: skills/officecli-word-form/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-f132d9c9479c9ad6", "name": "Agent instruction contains unpinned remote install: skills/officecli-pitch-deck/SKILL.md", "shortDescription": {"text": "Agent instruction contains unpinned remote install: skills/officecli-pitch-deck/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-cc08f928369de92f", "name": "Agent authority lacks a verifier contract: skills/morph-ppt/SKILL.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: skills/morph-ppt/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-84ad3738f958bf7c", "name": "Agent instruction contains unpinned remote install: skills/morph-ppt/SKILL.md", "shortDescription": {"text": "Agent instruction contains unpinned remote install: skills/morph-ppt/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-3c1b0aee15aec8ff", "name": "Agent instruction contains unpinned remote install: skills/officecli-docx/SKILL.md", "shortDescription": {"text": "Agent instruction contains unpinned remote install: skills/officecli-docx/SKILL.md"}, "fullDescription": {"text": "Remote install commands in agent instructions are a supply-chain risk, especially when an agent can execute shell commands."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-2356133c3e41669b", "name": "Privileged port 92 in use", "shortDescription": {"text": "Privileged port 92 in use"}, "fullDescription": {"text": "Port 92 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-058c0ff2a6522e54", "name": "Privileged port 88 in use", "shortDescription": {"text": "Privileged port 88 in use"}, "fullDescription": {"text": "Port 88 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-f06aad14ec361b30", "name": "Privileged port 85 in use", "shortDescription": {"text": "Privileged port 85 in use"}, "fullDescription": {"text": "Port 85 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-58f31475e5b40c5d", "name": "Privileged port 90 in use", "shortDescription": {"text": "Privileged port 90 in use"}, "fullDescription": {"text": "Port 90 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-159a2bea396b7090", "name": "Privileged port 78 in use", "shortDescription": {"text": "Privileged port 78 in use"}, "fullDescription": {"text": "Port 78 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-df574181a1d5a95b", "name": "Privileged port 82 in use", "shortDescription": {"text": "Privileged port 82 in use"}, "fullDescription": {"text": "Port 82 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-a0f0cc7dc59ed92b", "name": "Privileged port 96 in use", "shortDescription": {"text": "Privileged port 96 in use"}, "fullDescription": {"text": "Port 96 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-eb5812be8bf1de16", "name": "Privileged port 75 in use", "shortDescription": {"text": "Privileged port 75 in use"}, "fullDescription": {"text": "Port 75 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-15580aa4318bc909", "name": "Privileged port 72 in use", "shortDescription": {"text": "Privileged port 72 in use"}, "fullDescription": {"text": "Port 72 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-c008a60d82516daf", "name": "Privileged port 91 in use", "shortDescription": {"text": "Privileged port 91 in use"}, "fullDescription": {"text": "Port 91 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-adec35fe065b7b65", "name": "Privileged port 65 in use", "shortDescription": {"text": "Privileged port 65 in use"}, "fullDescription": {"text": "Port 65 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-c4ca5a0e4ad78ad9", "name": "Privileged port 70 in use", "shortDescription": {"text": "Privileged port 70 in use"}, "fullDescription": {"text": "Port 70 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-5bad8fa1fafdd416", "name": "Privileged port 95 in use", "shortDescription": {"text": "Privileged port 95 in use"}, "fullDescription": {"text": "Port 95 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-fb1cb251f0c8787c", "name": "Privileged port 93 in use", "shortDescription": {"text": "Privileged port 93 in use"}, "fullDescription": {"text": "Port 93 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-3ff313c856245546", "name": "Privileged port 86 in use", "shortDescription": {"text": "Privileged port 86 in use"}, "fullDescription": {"text": "Port 86 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-3fd03a668811bff8", "name": "Privileged port 120 in use", "shortDescription": {"text": "Privileged port 120 in use"}, "fullDescription": {"text": "Port 120 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-769495dec94b193a", "name": "Privileged port 150 in use", "shortDescription": {"text": "Privileged port 150 in use"}, "fullDescription": {"text": "Port 150 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-3a8d883f638e32ee", "name": "Privileged port 10 in use", "shortDescription": {"text": "Privileged port 10 in use"}, "fullDescription": {"text": "Port 10 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-cf8a57cfb2853f37", "name": "Privileged port 11 in use", "shortDescription": {"text": "Privileged port 11 in use"}, "fullDescription": {"text": "Port 11 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-723f9e195bc54753", "name": "Privileged port 15 in use", "shortDescription": {"text": "Privileged port 15 in use"}, "fullDescription": {"text": "Port 15 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-0a036f2fd145cac4", "name": "Privileged port 20 in use", "shortDescription": {"text": "Privileged port 20 in use"}, "fullDescription": {"text": "Port 20 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-bac223c4d9d1d2f5", "name": "Privileged port 21 in use", "shortDescription": {"text": "Privileged port 21 in use"}, "fullDescription": {"text": "Port 21 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-fb61df9292c266df", "name": "Privileged port 30 in use", "shortDescription": {"text": "Privileged port 30 in use"}, "fullDescription": {"text": "Port 30 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-c6ec8551ff0dbe80", "name": "Privileged port 31 in use", "shortDescription": {"text": "Privileged port 31 in use"}, "fullDescription": {"text": "Port 31 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-5129f6deabbd550b", "name": "Privileged port 32 in use", "shortDescription": {"text": "Privileged port 32 in use"}, "fullDescription": {"text": "Port 32 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-5badd616e03540f0", "name": "Privileged port 33 in use", "shortDescription": {"text": "Privileged port 33 in use"}, "fullDescription": {"text": "Port 33 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-9c03ebb12af2acc0", "name": "Privileged port 34 in use", "shortDescription": {"text": "Privileged port 34 in use"}, "fullDescription": {"text": "Port 34 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-f2653053ad93b6d6", "name": "Privileged port 35 in use", "shortDescription": {"text": "Privileged port 35 in use"}, "fullDescription": {"text": "Port 35 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-b431fb2f652752a3", "name": "Privileged port 40 in use", "shortDescription": {"text": "Privileged port 40 in use"}, "fullDescription": {"text": "Port 40 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-ae75b9b3b4244311", "name": "Privileged port 44 in use", "shortDescription": {"text": "Privileged port 44 in use"}, "fullDescription": {"text": "Port 44 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-d6c9325de027f528", "name": "Privileged port 45 in use", "shortDescription": {"text": "Privileged port 45 in use"}, "fullDescription": {"text": "Port 45 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-a0b1f8db782ba048", "name": "Privileged port 50 in use", "shortDescription": {"text": "Privileged port 50 in use"}, "fullDescription": {"text": "Port 50 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-adce013fb0459ff9", "name": "Privileged port 51 in use", "shortDescription": {"text": "Privileged port 51 in use"}, "fullDescription": {"text": "Port 51 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-e0dce95c7930ffda", "name": "Privileged port 52 in use", "shortDescription": {"text": "Privileged port 52 in use"}, "fullDescription": {"text": "Port 52 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-cbc16f7c63984cd6", "name": "Privileged port 54 in use", "shortDescription": {"text": "Privileged port 54 in use"}, "fullDescription": {"text": "Port 54 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-483d9ca9fbabf7cb", "name": "Privileged port 55 in use", "shortDescription": {"text": "Privileged port 55 in use"}, "fullDescription": {"text": "Port 55 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-3f928d07ad4b9097", "name": "Privileged port 60 in use", "shortDescription": {"text": "Privileged port 60 in use"}, "fullDescription": {"text": "Port 60 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-5269271c2c3144d4", "name": "Privileged port 800 in use", "shortDescription": {"text": "Privileged port 800 in use"}, "fullDescription": {"text": "Port 800 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-cc2c59e2762dc94a", "name": "Privileged port 12 in use", "shortDescription": {"text": "Privileged port 12 in use"}, "fullDescription": {"text": "Port 12 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-d2c6cbf6d62b445b", "name": "Privileged port 600 in use", "shortDescription": {"text": "Privileged port 600 in use"}, "fullDescription": {"text": "Port 600 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-5f8c1c5c599f5eca", "name": "Privileged port 700 in use", "shortDescription": {"text": "Privileged port 700 in use"}, "fullDescription": {"text": "Port 700 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-1487af7e0e1f80cc", "name": "Privileged port 85 in use", "shortDescription": {"text": "Privileged port 85 in use"}, "fullDescription": {"text": "Port 85 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-219972d9ba725b81", "name": "Privileged port 98 in use", "shortDescription": {"text": "Privileged port 98 in use"}, "fullDescription": {"text": "Port 98 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-98d8fee0f5a77a9e", "name": "Privileged port 70 in use", "shortDescription": {"text": "Privileged port 70 in use"}, "fullDescription": {"text": "Port 70 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-6859fdef7aef0b6e", "name": "Privileged port 14 in use", "shortDescription": {"text": "Privileged port 14 in use"}, "fullDescription": {"text": "Port 14 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-f0400b00cb944096", "name": "Privileged port 17 in use", "shortDescription": {"text": "Privileged port 17 in use"}, "fullDescription": {"text": "Port 17 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-21d4b78ca75a3106", "name": "Privileged port 183 in use", "shortDescription": {"text": "Privileged port 183 in use"}, "fullDescription": {"text": "Port 183 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-f44ce9f1c19a10d2", "name": "Privileged port 966 in use", "shortDescription": {"text": "Privileged port 966 in use"}, "fullDescription": {"text": "Port 966 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-ffedff9ab4e48d87", "name": "Privileged port 165 in use", "shortDescription": {"text": "Privileged port 165 in use"}, "fullDescription": {"text": "Port 165 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-aa6465126abc0f0f", "name": "Privileged port 185 in use", "shortDescription": {"text": "Privileged port 185 in use"}, "fullDescription": {"text": "Port 185 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-0e52624226a4df2f", "name": "Privileged port 148 in use", "shortDescription": {"text": "Privileged port 148 in use"}, "fullDescription": {"text": "Port 148 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-9e1466cf64b2b7d8", "name": "Insecure pattern 'node_child_process' in npm/officecli.js:14", "shortDescription": {"text": "Insecure pattern 'node_child_process' in npm/officecli.js:14"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 0.8}}, {"id": "scanner-bb879b123250d35e", "name": "Insecure pattern 'node_child_process' in npm/lib/install-binary.js:15", "shortDescription": {"text": "Insecure pattern 'node_child_process' in npm/lib/install-binary.js:15"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 0.9}}, {"id": "scanner-2e998845a6e34ca6", "name": "Insecure pattern 'direct_innerhtml_assignment' in src/officecli/Resources/watch-sse-core.js:73", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/officecli/Resources/watch-sse-core.js:73"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 0.65}}, {"id": "scanner-dcdb3aab5bb72778", "name": "Insecure pattern 'direct_outerhtml_assignment' in src/officecli/Resources/watch-sse-core.js:189", "shortDescription": {"text": "Insecure pattern 'direct_outerhtml_assignment' in src/officecli/Resources/watch-sse-core.js:189"}, "fullDescription": {"text": "Found a known-risky pattern (direct_outerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 0.65}}, {"id": "scanner-d0459b1d323345f2", "name": "Insecure pattern 'domparser_html_parse' in src/officecli/Resources/watch-sse-core.js:42", "shortDescription": {"text": "Insecure pattern 'domparser_html_parse' in src/officecli/Resources/watch-sse-core.js:42"}, "fullDescription": {"text": "Found a known-risky pattern (domparser_html_parse). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 0.65}}, {"id": "scanner-5b36c5aa58a70033", "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-fe6fbdf47ca70d54", "name": "GitHub Actions workflow grants broad write permissions", "shortDescription": {"text": "GitHub Actions workflow grants broad write permissions"}, "fullDescription": {"text": "CI tokens with write permissions increase blast radius when an action, dependency, or PR workflow is compromised. Prefer job-level least-privilege permissions."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-6947895bf6224393", "name": "GitHub Actions workflow grants broad write permissions", "shortDescription": {"text": "GitHub Actions workflow grants broad write permissions"}, "fullDescription": {"text": "CI tokens with write permissions increase blast radius when an action, dependency, or PR workflow is compromised. Prefer job-level least-privilege permissions."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-6ce3b24f43cf649e", "name": "GitHub Actions workflow grants broad write permissions", "shortDescription": {"text": "GitHub Actions workflow grants broad write permissions"}, "fullDescription": {"text": "CI tokens with write permissions increase blast radius when an action, dependency, or PR workflow is compromised. Prefer job-level least-privilege permissions."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-6ba9bfab5f283202", "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-dotnet@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": "medium", "confidence": 1.0}}, {"id": "scanner-b769174c9fcf8ea8", "name": "GitHub Actions workflow grants broad write permissions", "shortDescription": {"text": "GitHub Actions workflow grants broad write permissions"}, "fullDescription": {"text": "CI tokens with write permissions increase blast radius when an action, dependency, or PR workflow is compromised. Prefer job-level least-privilege permissions."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-90280a9dddeda9de", "name": "package.json defines install-time lifecycle scripts", "shortDescription": {"text": "package.json defines install-time lifecycle scripts"}, "fullDescription": {"text": "preinstall/install/postinstall/prepare scripts execute during dependency installation. Review them carefully for network calls, obfuscation, shell execution, or credential access."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "low", "confidence": 1.0}}, {"id": "scanner-6893a6c8b0861585", "name": "Very low test-to-source ratio", "shortDescription": {"text": "Very low test-to-source ratio"}, "fullDescription": {"text": "0 test file(s) for 98 source file(s) (ratio 0.00). Consider adding integration or unit tests for critical paths."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-9551ae590643a6a7", "name": "Node manifest has dependencies but no lockfile: sdk/node/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: sdk/node/package.json"}, "fullDescription": {"text": "`package.json` declares dependencies, but no same-directory npm/pnpm/yarn/bun lockfile was found. Generated projects without lockfiles are less reproducible and harder to secure-scan precisely."}, "properties": {"scanner": "scanner-primary", "layer": "dependencies", "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 631 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 680 placeholder/mock markers across 117 source files. This often means the repo looks complete while core flows still use generated scaffolding or fake data."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-9d79c4077342a7d0", "name": "Runtime service client appears to use placeholder configuration", "shortDescription": {"text": "Runtime service client appears to use placeholder configuration"}, "fullDescription": {"text": "A runtime source file appears to wire Supabase/Firebase/AI/payment-style clients to placeholder URLs, keys, or fallback values. In the Fable corpus this often means the UI/API shape is present while the backend service is not actually configured."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-2d0c7b7ab8f8aacf", "name": "Critical user flow still appears backed by mock or placeholder data", "shortDescription": {"text": "Critical user flow still appears backed by mock or placeholder data"}, "fullDescription": {"text": "A payment/auth/admin/order/billing-style flow contains mock, fake, TODO, dummy, or placeholder markers in runtime source. In the Fable corpus this is a high-leverage completeness smell: the app can look finished while the money, identity, or tenant flow is still scaffolded."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-11825279136b53a3", "name": "CI is configured but no tests are detected", "shortDescription": {"text": "CI is configured but no tests are detected"}, "fullDescription": {"text": "A CI pipeline exists, but the scan found no test files to gate. Opus labeled this generated-code pattern as config theater: release machinery exists, but it has little behavioral signal."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-b9088664ace7f748", "name": "Composite production-readiness gap", "shortDescription": {"text": "Composite production-readiness gap"}, "fullDescription": {"text": "Multiple low-cost hardening controls are missing together: tests, lockfile. Opus verification showed these co-occurring gaps are a better readiness signal than reading each flag in isolation."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-f76daf5bc3e2a1e4", "name": "Network/subprocess call without timeout or try/except \u2014 examples/word/content-controls.py:186", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 examples/word/content-controls.py:186"}, "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": 0.85}}, {"id": "scanner-da3d68aea35507b0", "name": "Network/subprocess call without timeout or try/except \u2014 examples/word/document-formatting.py:186", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 examples/word/document-formatting.py:186"}, "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": 0.85}}, {"id": "scanner-612741bd6a9f7e33", "name": "Network/subprocess call without timeout or try/except \u2014 examples/word/fields.py:218", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 examples/word/fields.py:218"}, "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": 0.85}}, {"id": "scanner-ba20086993b2b386", "name": "Network/subprocess call without timeout or try/except \u2014 examples/word/sections.py:270", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 examples/word/sections.py:270"}, "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": 0.85}}, {"id": "scanner-8bc26c2529d634e3", "name": "Network/subprocess call without timeout or try/except \u2014 examples/ppt/charts/charts-doughnut.py:184", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 examples/ppt/charts/charts-doughnut.py:184"}, "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": 0.85}}, {"id": "scanner-3c4b865a950cd01f", "name": "Network/subprocess call without timeout or try/except \u2014 examples/excel/conditional-formatting.py:221", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 examples/excel/conditional-formatting.py:221"}, "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": 0.85}}, {"id": "scanner-1cef2b87abd044e3", "name": "Network/subprocess call without timeout or try/except \u2014 examples/excel/sparklines.py:137", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 examples/excel/sparklines.py:137"}, "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": 0.85}}, {"id": "scanner-fba70a82b0875adb", "name": "Network/subprocess call without timeout or try/except \u2014 examples/excel/data-validation.py:217", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 examples/excel/data-validation.py:217"}, "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": 0.85}}, {"id": "scanner-a5fe97e937576ec2", "name": "Network/subprocess call without timeout or try/except \u2014 skills/morph-ppt/reference/morph-helpers.py:41", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 skills/morph-ppt/reference/morph-helpers.py:41"}, "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": 0.85}}, {"id": "scanner-19f91444b70f622c", "name": "Fire-and-forget `fetch()` has no rejection handler \u2014 src/officecli/Resources/watch-sse-core.js:41", "shortDescription": {"text": "Fire-and-forget `fetch()` has no rejection handler \u2014 src/officecli/Resources/watch-sse-core.js:41"}, "fullDescription": {"text": "This fetch result is neither awaited, returned, assigned, nor followed by `.catch(...)`. A network failure can therefore become an unhandled promise rejection. Await/return the promise or attach an explicit rejection handler."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 0.9}}, {"id": "scanner-9ea24cd410dd93cf", "name": "Network/subprocess call without timeout or try/except \u2014 sdk/python/officecli.py:590", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 sdk/python/officecli.py:590"}, "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": 0.85}}]}}, "automationDetails": {"id": "repobility/30772"}, "properties": {"repository": "iOfficeAI/OfficeCLI", "repoUrl": "https://github.com/iOfficeAI/OfficeCLI", "branch": "main"}, "results": [{"ruleId": "scanner-59719badf866121b", "level": "note", "message": {"text": "Possibly dead Python function: visit"}, "properties": {"repobilityId": "317f58061af0c67b", "scanner": "scanner-primary", "fingerprint": "59719badf866121b", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "skills/morph-ppt/reference/morph-helpers.py:171"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-826d0e0556126820", "level": "warning", "message": {"text": "detect child process \u2014 sdk/node/index.js:422"}, "properties": {"repobilityId": "12e58902c7eebffa", "scanner": "scanner-primary", "fingerprint": "826d0e0556126820", "layer": "security", "severity": "medium", "confidence": 0.55, "tags": ["semgrep", "security", "javascript"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "sdk/node/index.js"}, "region": {"startLine": 422}}}]}, {"ruleId": "scanner-27e547ff01413a83", "level": "warning", "message": {"text": "Agent instruction contains unpinned remote install: SKILL.md"}, "properties": {"repobilityId": "5dc3de3f1cc99eca", "scanner": "scanner-primary", "fingerprint": "27e547ff01413a83", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "supply-chain", "skill_file"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "SKILL.md"}, "region": {"startLine": 16}}}]}, {"ruleId": "scanner-f383b3a2e7d55631", "level": "warning", "message": {"text": "Agent instruction contains unpinned remote install: skills/officecli-academic-paper/SKILL.md"}, "properties": {"repobilityId": "b6a0d5310387b2e5", "scanner": "scanner-primary", "fingerprint": "f383b3a2e7d55631", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "supply-chain", "skill_file"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "skills/officecli-academic-paper/SKILL.md"}, "region": {"startLine": 16}}}]}, {"ruleId": "scanner-8fd766ffd060de20", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: skills/officecli-financial-model/SKILL.md"}, "properties": {"repobilityId": "7652c72874c5c9cc", "scanner": "scanner-primary", "fingerprint": "8fd766ffd060de20", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "skill_file"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "skills/officecli-financial-model/SKILL.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-bfe922fbf4081a14", "level": "warning", "message": {"text": "Agent instruction contains unpinned remote install: skills/officecli-financial-model/SKILL.md"}, "properties": {"repobilityId": "87943d831142fe59", "scanner": "scanner-primary", "fingerprint": "bfe922fbf4081a14", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "supply-chain", "skill_file"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "skills/officecli-financial-model/SKILL.md"}, "region": {"startLine": 16}}}]}, {"ruleId": "scanner-fbd01c07f9a202f2", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: skills/officecli-data-dashboard/SKILL.md"}, "properties": {"repobilityId": "3772fdd022069200", "scanner": "scanner-primary", "fingerprint": "fbd01c07f9a202f2", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "skill_file"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "skills/officecli-data-dashboard/SKILL.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-5f0f7554d7afb075", "level": "warning", "message": {"text": "Agent instruction contains unpinned remote install: skills/officecli-data-dashboard/SKILL.md"}, "properties": {"repobilityId": "08b85a1f02bc770e", "scanner": "scanner-primary", "fingerprint": "5f0f7554d7afb075", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "supply-chain", "skill_file"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "skills/officecli-data-dashboard/SKILL.md"}, "region": {"startLine": 14}}}]}, {"ruleId": "scanner-be022b24d1aeba0f", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: skills/officecli-pptx/SKILL.md"}, "properties": {"repobilityId": "50d0f114bd982705", "scanner": "scanner-primary", "fingerprint": "be022b24d1aeba0f", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "skill_file"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "skills/officecli-pptx/SKILL.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-8bb18fcc8777d508", "level": "warning", "message": {"text": "Agent instruction contains unpinned remote install: skills/officecli-pptx/SKILL.md"}, "properties": {"repobilityId": "510d323fb780927a", "scanner": "scanner-primary", "fingerprint": "8bb18fcc8777d508", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "supply-chain", "skill_file"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "skills/officecli-pptx/SKILL.md"}, "region": {"startLine": 12}}}]}, {"ruleId": "scanner-2cac489a1bb62ed1", "level": "warning", "message": {"text": "Agent instruction contains unpinned remote install: skills/morph-ppt-3d/SKILL.md"}, "properties": {"repobilityId": "e6ee5b2e64347671", "scanner": "scanner-primary", "fingerprint": "2cac489a1bb62ed1", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "supply-chain", "skill_file"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "skills/morph-ppt-3d/SKILL.md"}, "region": {"startLine": 17}}}]}, {"ruleId": "scanner-550f44ca7dc7e600", "level": "warning", "message": {"text": "Agent instruction contains unpinned remote install: skills/officecli-xlsx/SKILL.md"}, "properties": {"repobilityId": "dbba5447f530e517", "scanner": "scanner-primary", "fingerprint": "550f44ca7dc7e600", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "supply-chain", "skill_file"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "skills/officecli-xlsx/SKILL.md"}, "region": {"startLine": 12}}}]}, {"ruleId": "scanner-608bbb70c11fd1bf", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: skills/officecli-word-form/SKILL.md"}, "properties": {"repobilityId": "9a05f84aaed03d19", "scanner": "scanner-primary", "fingerprint": "608bbb70c11fd1bf", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "skill_file"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "skills/officecli-word-form/SKILL.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-d1c122f65c4bde1f", "level": "warning", "message": {"text": "Agent instruction contains unpinned remote install: skills/officecli-word-form/SKILL.md"}, "properties": {"repobilityId": "a31d2551c06e039c", "scanner": "scanner-primary", "fingerprint": "d1c122f65c4bde1f", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "supply-chain", "skill_file"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "skills/officecli-word-form/SKILL.md"}, "region": {"startLine": 18}}}]}, {"ruleId": "scanner-f132d9c9479c9ad6", "level": "warning", "message": {"text": "Agent instruction contains unpinned remote install: skills/officecli-pitch-deck/SKILL.md"}, "properties": {"repobilityId": "d1af1b4d9671869b", "scanner": "scanner-primary", "fingerprint": "f132d9c9479c9ad6", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "supply-chain", "skill_file"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "skills/officecli-pitch-deck/SKILL.md"}, "region": {"startLine": 16}}}]}, {"ruleId": "scanner-cc08f928369de92f", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: skills/morph-ppt/SKILL.md"}, "properties": {"repobilityId": "7b015c5b29b6e65e", "scanner": "scanner-primary", "fingerprint": "cc08f928369de92f", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "skill_file"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "skills/morph-ppt/SKILL.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-84ad3738f958bf7c", "level": "warning", "message": {"text": "Agent instruction contains unpinned remote install: skills/morph-ppt/SKILL.md"}, "properties": {"repobilityId": "fd190a0a5bda5531", "scanner": "scanner-primary", "fingerprint": "84ad3738f958bf7c", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "supply-chain", "skill_file"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "skills/morph-ppt/SKILL.md"}, "region": {"startLine": 16}}}]}, {"ruleId": "scanner-3c1b0aee15aec8ff", "level": "warning", "message": {"text": "Agent instruction contains unpinned remote install: skills/officecli-docx/SKILL.md"}, "properties": {"repobilityId": "5da90693a19b3b74", "scanner": "scanner-primary", "fingerprint": "3c1b0aee15aec8ff", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "supply-chain", "skill_file"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "skills/officecli-docx/SKILL.md"}, "region": {"startLine": 12}}}]}, {"ruleId": "scanner-2356133c3e41669b", "level": "warning", "message": {"text": "Privileged port 92 in use"}, "properties": {"repobilityId": "e0cef6c90c8189a4", "scanner": "scanner-primary", "fingerprint": "2356133c3e41669b", "layer": "network", "severity": "medium", "confidence": 1.0, "tags": ["security", "ports"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "examples/word/tables.sh"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-058c0ff2a6522e54", "level": "warning", "message": {"text": "Privileged port 88 in use"}, "properties": {"repobilityId": "9d45e69facb9ea27", "scanner": "scanner-primary", "fingerprint": "058c0ff2a6522e54", "layer": "network", "severity": "medium", "confidence": 1.0, "tags": ["security", "ports"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "examples/word/tables.sh"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-f06aad14ec361b30", "level": "warning", "message": {"text": "Privileged port 85 in use"}, "properties": {"repobilityId": "6e23398b0a81d421", "scanner": "scanner-primary", "fingerprint": "f06aad14ec361b30", "layer": "network", "severity": "medium", "confidence": 1.0, "tags": ["security", "ports"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "examples/word/tables.sh"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-58f31475e5b40c5d", "level": "warning", "message": {"text": "Privileged port 90 in use"}, "properties": {"repobilityId": "3c0b21a827c3d75d", "scanner": "scanner-primary", "fingerprint": "58f31475e5b40c5d", "layer": "network", "severity": "medium", "confidence": 1.0, "tags": ["security", "ports"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "examples/word/tables.sh"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-159a2bea396b7090", "level": "warning", "message": {"text": "Privileged port 78 in use"}, "properties": {"repobilityId": "868e846725814578", "scanner": "scanner-primary", "fingerprint": "159a2bea396b7090", "layer": "network", "severity": "medium", "confidence": 1.0, "tags": ["security", "ports"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "examples/word/tables.sh"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-df574181a1d5a95b", "level": "warning", "message": {"text": "Privileged port 82 in use"}, "properties": {"repobilityId": "053f8e47394cae38", "scanner": "scanner-primary", "fingerprint": "df574181a1d5a95b", "layer": "network", "severity": "medium", "confidence": 1.0, "tags": ["security", "ports"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "examples/word/tables.sh"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-a0f0cc7dc59ed92b", "level": "warning", "message": {"text": "Privileged port 96 in use"}, "properties": {"repobilityId": "ee171b5295ffdda9", "scanner": "scanner-primary", "fingerprint": "a0f0cc7dc59ed92b", "layer": "network", "severity": "medium", "confidence": 1.0, "tags": ["security", "ports"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "examples/word/tables.sh"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-eb5812be8bf1de16", "level": "warning", "message": {"text": "Privileged port 75 in use"}, "properties": {"repobilityId": "d378eb1c9eebd8b0", "scanner": "scanner-primary", "fingerprint": "eb5812be8bf1de16", "layer": "network", "severity": "medium", "confidence": 1.0, "tags": ["security", "ports"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "examples/word/tables.sh"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-15580aa4318bc909", "level": "warning", "message": {"text": "Privileged port 72 in use"}, "properties": {"repobilityId": "b403bef2163fedb7", "scanner": "scanner-primary", "fingerprint": "15580aa4318bc909", "layer": "network", "severity": "medium", "confidence": 1.0, "tags": ["security", "ports"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "examples/word/tables.sh"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-c008a60d82516daf", "level": "warning", "message": {"text": "Privileged port 91 in use"}, "properties": {"repobilityId": "b7ec732454da1e68", "scanner": "scanner-primary", "fingerprint": "c008a60d82516daf", "layer": "network", "severity": "medium", "confidence": 1.0, "tags": ["security", "ports"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "examples/word/tables.sh"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-adec35fe065b7b65", "level": "warning", "message": {"text": "Privileged port 65 in use"}, "properties": {"repobilityId": "91f4542de5d09e32", "scanner": "scanner-primary", "fingerprint": "adec35fe065b7b65", "layer": "network", "severity": "medium", "confidence": 1.0, "tags": ["security", "ports"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "examples/word/tables.sh"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-c4ca5a0e4ad78ad9", "level": "warning", "message": {"text": "Privileged port 70 in use"}, "properties": {"repobilityId": "353d31c086b0a24a", "scanner": "scanner-primary", "fingerprint": "c4ca5a0e4ad78ad9", "layer": "network", "severity": "medium", "confidence": 1.0, "tags": ["security", "ports"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "examples/word/tables.sh"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-5bad8fa1fafdd416", "level": "warning", "message": {"text": "Privileged port 95 in use"}, "properties": {"repobilityId": "860dd1b02ecc695b", "scanner": "scanner-primary", "fingerprint": "5bad8fa1fafdd416", "layer": "network", "severity": "medium", "confidence": 1.0, "tags": ["security", "ports"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "examples/word/tables.sh"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-fb1cb251f0c8787c", "level": "warning", "message": {"text": "Privileged port 93 in use"}, "properties": {"repobilityId": "a2801129f16a1ead", "scanner": "scanner-primary", "fingerprint": "fb1cb251f0c8787c", "layer": "network", "severity": "medium", "confidence": 1.0, "tags": ["security", "ports"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "examples/word/tables.sh"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-3ff313c856245546", "level": "warning", "message": {"text": "Privileged port 86 in use"}, "properties": {"repobilityId": "3505bf8ab5ea0a84", "scanner": "scanner-primary", "fingerprint": "3ff313c856245546", "layer": "network", "severity": "medium", "confidence": 1.0, "tags": ["security", "ports"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "examples/word/tables.sh"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-3fd03a668811bff8", "level": "warning", "message": {"text": "Privileged port 120 in use"}, "properties": {"repobilityId": "1b5bc14c8e1d1785", "scanner": "scanner-primary", "fingerprint": "3fd03a668811bff8", "layer": "network", "severity": "medium", "confidence": 1.0, "tags": ["security", "ports"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "examples/word/charts.sh"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-769495dec94b193a", "level": "warning", "message": {"text": "Privileged port 150 in use"}, "properties": {"repobilityId": "06dfcea24ef263cd", "scanner": "scanner-primary", "fingerprint": "769495dec94b193a", "layer": "network", "severity": "medium", "confidence": 1.0, "tags": ["security", "ports"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "examples/word/charts.sh"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-3a8d883f638e32ee", "level": "warning", "message": {"text": "Privileged port 10 in use"}, "properties": {"repobilityId": "735372d6b5594915", "scanner": "scanner-primary", "fingerprint": "3a8d883f638e32ee", "layer": "network", "severity": "medium", "confidence": 1.0, "tags": ["security", "ports"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "examples/word/revisions.sh"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-cf8a57cfb2853f37", "level": "warning", "message": {"text": "Privileged port 11 in use"}, "properties": {"repobilityId": "5b3038c67fabb4c8", "scanner": "scanner-primary", "fingerprint": "cf8a57cfb2853f37", "layer": "network", "severity": "medium", "confidence": 1.0, "tags": ["security", "ports"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "examples/word/revisions.sh"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-723f9e195bc54753", "level": "warning", "message": {"text": "Privileged port 15 in use"}, "properties": {"repobilityId": "3340f9a170f285cd", "scanner": "scanner-primary", "fingerprint": "723f9e195bc54753", "layer": "network", "severity": "medium", "confidence": 1.0, "tags": ["security", "ports"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "examples/word/revisions.sh"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-0a036f2fd145cac4", "level": "warning", "message": {"text": "Privileged port 20 in use"}, "properties": {"repobilityId": "a59f3e53d617e0f8", "scanner": "scanner-primary", "fingerprint": "0a036f2fd145cac4", "layer": "network", "severity": "medium", "confidence": 1.0, "tags": ["security", "ports"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "examples/word/revisions.sh"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-bac223c4d9d1d2f5", "level": "warning", "message": {"text": "Privileged port 21 in use"}, "properties": {"repobilityId": "d920b7cd1b1a16dc", "scanner": "scanner-primary", "fingerprint": "bac223c4d9d1d2f5", "layer": "network", "severity": "medium", "confidence": 1.0, "tags": ["security", "ports"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "examples/word/revisions.sh"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-fb61df9292c266df", "level": "warning", "message": {"text": "Privileged port 30 in use"}, "properties": {"repobilityId": "54f172e7d16fc662", "scanner": "scanner-primary", "fingerprint": "fb61df9292c266df", "layer": "network", "severity": "medium", "confidence": 1.0, "tags": ["security", "ports"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "examples/word/revisions.sh"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-c6ec8551ff0dbe80", "level": "warning", "message": {"text": "Privileged port 31 in use"}, "properties": {"repobilityId": "8a1049d03b927a2d", "scanner": "scanner-primary", "fingerprint": "c6ec8551ff0dbe80", "layer": "network", "severity": "medium", "confidence": 1.0, "tags": ["security", "ports"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "examples/word/revisions.sh"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-5129f6deabbd550b", "level": "warning", "message": {"text": "Privileged port 32 in use"}, "properties": {"repobilityId": "20c0fabc691cdde4", "scanner": "scanner-primary", "fingerprint": "5129f6deabbd550b", "layer": "network", "severity": "medium", "confidence": 1.0, "tags": ["security", "ports"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "examples/word/revisions.sh"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-5badd616e03540f0", "level": "warning", "message": {"text": "Privileged port 33 in use"}, "properties": {"repobilityId": "f08e29b4b53f7301", "scanner": "scanner-primary", "fingerprint": "5badd616e03540f0", "layer": "network", "severity": "medium", "confidence": 1.0, "tags": ["security", "ports"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "examples/word/revisions.sh"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-9c03ebb12af2acc0", "level": "warning", "message": {"text": "Privileged port 34 in use"}, "properties": {"repobilityId": "2febb579b1c7080d", "scanner": "scanner-primary", "fingerprint": "9c03ebb12af2acc0", "layer": "network", "severity": "medium", "confidence": 1.0, "tags": ["security", "ports"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "examples/word/revisions.sh"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-f2653053ad93b6d6", "level": "warning", "message": {"text": "Privileged port 35 in use"}, "properties": {"repobilityId": "e997ec9811d79c6d", "scanner": "scanner-primary", "fingerprint": "f2653053ad93b6d6", "layer": "network", "severity": "medium", "confidence": 1.0, "tags": ["security", "ports"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "examples/word/revisions.sh"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-b431fb2f652752a3", "level": "warning", "message": {"text": "Privileged port 40 in use"}, "properties": {"repobilityId": "28c59d470d4929c6", "scanner": "scanner-primary", "fingerprint": "b431fb2f652752a3", "layer": "network", "severity": "medium", "confidence": 1.0, "tags": ["security", "ports"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "examples/word/revisions.sh"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-ae75b9b3b4244311", "level": "warning", "message": {"text": "Privileged port 44 in use"}, "properties": {"repobilityId": "1f021a2e926773a0", "scanner": "scanner-primary", "fingerprint": "ae75b9b3b4244311", "layer": "network", "severity": "medium", "confidence": 1.0, "tags": ["security", "ports"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "examples/word/revisions.sh"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-d6c9325de027f528", "level": "warning", "message": {"text": "Privileged port 45 in use"}, "properties": {"repobilityId": "73cf64d92574d41c", "scanner": "scanner-primary", "fingerprint": "d6c9325de027f528", "layer": "network", "severity": "medium", "confidence": 1.0, "tags": ["security", "ports"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "examples/word/revisions.sh"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-a0b1f8db782ba048", "level": "warning", "message": {"text": "Privileged port 50 in use"}, "properties": {"repobilityId": "da61f654c07ea7a9", "scanner": "scanner-primary", "fingerprint": "a0b1f8db782ba048", "layer": "network", "severity": "medium", "confidence": 1.0, "tags": ["security", "ports"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "examples/word/revisions.sh"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-adce013fb0459ff9", "level": "warning", "message": {"text": "Privileged port 51 in use"}, "properties": {"repobilityId": "22e13070198289ad", "scanner": "scanner-primary", "fingerprint": "adce013fb0459ff9", "layer": "network", "severity": "medium", "confidence": 1.0, "tags": ["security", "ports"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "examples/word/revisions.sh"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-e0dce95c7930ffda", "level": "warning", "message": {"text": "Privileged port 52 in use"}, "properties": {"repobilityId": "2b6877fa37212075", "scanner": "scanner-primary", "fingerprint": "e0dce95c7930ffda", "layer": "network", "severity": "medium", "confidence": 1.0, "tags": ["security", "ports"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "examples/word/revisions.sh"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-cbc16f7c63984cd6", "level": "warning", "message": {"text": "Privileged port 54 in use"}, "properties": {"repobilityId": "cfa860c24fdc3eef", "scanner": "scanner-primary", "fingerprint": "cbc16f7c63984cd6", "layer": "network", "severity": "medium", "confidence": 1.0, "tags": ["security", "ports"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "examples/word/revisions.sh"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-483d9ca9fbabf7cb", "level": "warning", "message": {"text": "Privileged port 55 in use"}, "properties": {"repobilityId": "51a768b3e1831ac0", "scanner": "scanner-primary", "fingerprint": "483d9ca9fbabf7cb", "layer": "network", "severity": "medium", "confidence": 1.0, "tags": ["security", "ports"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "examples/word/revisions.sh"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-3f928d07ad4b9097", "level": "warning", "message": {"text": "Privileged port 60 in use"}, "properties": {"repobilityId": "f4424efab727024f", "scanner": "scanner-primary", "fingerprint": "3f928d07ad4b9097", "layer": "network", "severity": "medium", "confidence": 1.0, "tags": ["security", "ports"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "examples/ppt/animations.sh"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-5269271c2c3144d4", "level": "warning", "message": {"text": "Privileged port 800 in use"}, "properties": {"repobilityId": "44d4dae1c94a9aca", "scanner": "scanner-primary", "fingerprint": "5269271c2c3144d4", "layer": "network", "severity": "medium", "confidence": 1.0, "tags": ["security", "ports"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "examples/ppt/animations.sh"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-cc2c59e2762dc94a", "level": "warning", "message": {"text": "Privileged port 12 in use"}, "properties": {"repobilityId": "65e7eefa33f2def4", "scanner": "scanner-primary", "fingerprint": "cc2c59e2762dc94a", "layer": "network", "severity": "medium", "confidence": 1.0, "tags": ["security", "ports"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "examples/ppt/animations.sh"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-d2c6cbf6d62b445b", "level": "warning", "message": {"text": "Privileged port 600 in use"}, "properties": {"repobilityId": "bf14615725bcff0a", "scanner": "scanner-primary", "fingerprint": "d2c6cbf6d62b445b", "layer": "network", "severity": "medium", "confidence": 1.0, "tags": ["security", "ports"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "examples/ppt/animations.sh"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-5f8c1c5c599f5eca", "level": "warning", "message": {"text": "Privileged port 700 in use"}, "properties": {"repobilityId": "3cfa060ad2b8fefc", "scanner": "scanner-primary", "fingerprint": "5f8c1c5c599f5eca", "layer": "network", "severity": "medium", "confidence": 1.0, "tags": ["security", "ports"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "examples/ppt/animations.sh"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-1487af7e0e1f80cc", "level": "warning", "message": {"text": "Privileged port 85 in use"}, "properties": {"repobilityId": "6e23398b0a81d421", "scanner": "scanner-primary", "fingerprint": "1487af7e0e1f80cc", "layer": "network", "severity": "medium", "confidence": 1.0, "tags": ["security", "ports"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "examples/ppt/animations.sh"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-219972d9ba725b81", "level": "warning", "message": {"text": "Privileged port 98 in use"}, "properties": {"repobilityId": "6c2637adabd7c962", "scanner": "scanner-primary", "fingerprint": "219972d9ba725b81", "layer": "network", "severity": "medium", "confidence": 1.0, "tags": ["security", "ports"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "examples/ppt/animations.sh"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-98d8fee0f5a77a9e", "level": "warning", "message": {"text": "Privileged port 70 in use"}, "properties": {"repobilityId": "353d31c086b0a24a", "scanner": "scanner-primary", "fingerprint": "98d8fee0f5a77a9e", "layer": "network", "severity": "medium", "confidence": 1.0, "tags": ["security", "ports"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "examples/ppt/charts/charts-line.sh"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-6859fdef7aef0b6e", "level": "warning", "message": {"text": "Privileged port 14 in use"}, "properties": {"repobilityId": "2dbd4b719a1412ff", "scanner": "scanner-primary", "fingerprint": "6859fdef7aef0b6e", "layer": "network", "severity": "medium", "confidence": 1.0, "tags": ["security", "ports"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "examples/ppt/templates/styles/future--2050-vision/build.sh"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-f0400b00cb944096", "level": "warning", "message": {"text": "Privileged port 17 in use"}, "properties": {"repobilityId": "0bf38fb8f89ec589", "scanner": "scanner-primary", "fingerprint": "f0400b00cb944096", "layer": "network", "severity": "medium", "confidence": 1.0, "tags": ["security", "ports"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "examples/excel/data-validation.sh"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-21d4b78ca75a3106", "level": "warning", "message": {"text": "Privileged port 183 in use"}, "properties": {"repobilityId": "d8683d43db80c0ad", "scanner": "scanner-primary", "fingerprint": "21d4b78ca75a3106", "layer": "network", "severity": "medium", "confidence": 1.0, "tags": ["security", "ports"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "examples/excel/charts/charts-pie.sh"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-f44ce9f1c19a10d2", "level": "warning", "message": {"text": "Privileged port 966 in use"}, "properties": {"repobilityId": "9b29a85789ddb84a", "scanner": "scanner-primary", "fingerprint": "f44ce9f1c19a10d2", "layer": "network", "severity": "medium", "confidence": 1.0, "tags": ["security", "ports"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "examples/excel/charts/charts-pie.sh"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-ffedff9ab4e48d87", "level": "warning", "message": {"text": "Privileged port 165 in use"}, "properties": {"repobilityId": "27f21c1dcd9de69d", "scanner": "scanner-primary", "fingerprint": "ffedff9ab4e48d87", "layer": "network", "severity": "medium", "confidence": 1.0, "tags": ["security", "ports"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "examples/excel/charts/charts-bar.sh"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-aa6465126abc0f0f", "level": "warning", "message": {"text": "Privileged port 185 in use"}, "properties": {"repobilityId": "8c3a58e7ce062f8a", "scanner": "scanner-primary", "fingerprint": "aa6465126abc0f0f", "layer": "network", "severity": "medium", "confidence": 1.0, "tags": ["security", "ports"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "examples/excel/charts/charts-bar.sh"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-0e52624226a4df2f", "level": "warning", "message": {"text": "Privileged port 148 in use"}, "properties": {"repobilityId": "18b7c15f2645be6b", "scanner": "scanner-primary", "fingerprint": "0e52624226a4df2f", "layer": "network", "severity": "medium", "confidence": 1.0, "tags": ["security", "ports"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "examples/excel/charts/charts-bar.sh"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-9e1466cf64b2b7d8", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in npm/officecli.js:14"}, "properties": {"repobilityId": "e5c62268c18d9555", "scanner": "scanner-primary", "fingerprint": "9e1466cf64b2b7d8", "layer": "security", "severity": "medium", "confidence": 0.8, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "npm/officecli.js"}, "region": {"startLine": 14}}}]}, {"ruleId": "scanner-bb879b123250d35e", "level": "error", "message": {"text": "Insecure pattern 'node_child_process' in npm/lib/install-binary.js:15"}, "properties": {"repobilityId": "3b1d34913ad6b34e", "scanner": "scanner-primary", "fingerprint": "bb879b123250d35e", "layer": "security", "severity": "high", "confidence": 0.9, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "npm/lib/install-binary.js"}, "region": {"startLine": 15}}}]}, {"ruleId": "scanner-2e998845a6e34ca6", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/officecli/Resources/watch-sse-core.js:73"}, "properties": {"repobilityId": "74f69c11c42c4ac9", "scanner": "scanner-primary", "fingerprint": "2e998845a6e34ca6", "layer": "security", "severity": "medium", "confidence": 0.65, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/officecli/Resources/watch-sse-core.js"}, "region": {"startLine": 73}}}]}, {"ruleId": "scanner-dcdb3aab5bb72778", "level": "warning", "message": {"text": "Insecure pattern 'direct_outerhtml_assignment' in src/officecli/Resources/watch-sse-core.js:189"}, "properties": {"repobilityId": "e7ee227a97135def", "scanner": "scanner-primary", "fingerprint": "dcdb3aab5bb72778", "layer": "security", "severity": "medium", "confidence": 0.65, "tags": ["owasp", "direct_outerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/officecli/Resources/watch-sse-core.js"}, "region": {"startLine": 189}}}]}, {"ruleId": "scanner-d0459b1d323345f2", "level": "warning", "message": {"text": "Insecure pattern 'domparser_html_parse' in src/officecli/Resources/watch-sse-core.js:42"}, "properties": {"repobilityId": "9e59f5bed5b8c30c", "scanner": "scanner-primary", "fingerprint": "d0459b1d323345f2", "layer": "security", "severity": "medium", "confidence": 0.65, "tags": ["owasp", "domparser_html_parse"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/officecli/Resources/watch-sse-core.js"}, "region": {"startLine": 42}}}]}, {"ruleId": "scanner-5b36c5aa58a70033", "level": "warning", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "a1ba7bd005187ffc", "scanner": "scanner-primary", "fingerprint": "5b36c5aa58a70033", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/publish-pypi.yml"}, "region": {"startLine": 61}}}]}, {"ruleId": "scanner-fe6fbdf47ca70d54", "level": "warning", "message": {"text": "GitHub Actions workflow grants broad write permissions"}, "properties": {"repobilityId": "93b3a49ddc4e30fa", "scanner": "scanner-primary", "fingerprint": "fe6fbdf47ca70d54", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "least-privilege"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/publish-pypi.yml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-6947895bf6224393", "level": "warning", "message": {"text": "GitHub Actions workflow grants broad write permissions"}, "properties": {"repobilityId": "0e1eb5957d825842", "scanner": "scanner-primary", "fingerprint": "6947895bf6224393", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "least-privilege"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/publish-npm.yml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-6ce3b24f43cf649e", "level": "warning", "message": {"text": "GitHub Actions workflow grants broad write permissions"}, "properties": {"repobilityId": "011d0afdcc8813d1", "scanner": "scanner-primary", "fingerprint": "6ce3b24f43cf649e", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "least-privilege"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/publish-sdk.yml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-6ba9bfab5f283202", "level": "warning", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "e55cb766e9cd239d", "scanner": "scanner-primary", "fingerprint": "6ba9bfab5f283202", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/build.yml"}, "region": {"startLine": 51}}}]}, {"ruleId": "scanner-b769174c9fcf8ea8", "level": "warning", "message": {"text": "GitHub Actions workflow grants broad write permissions"}, "properties": {"repobilityId": "e34b6cb9b56931d2", "scanner": "scanner-primary", "fingerprint": "b769174c9fcf8ea8", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "least-privilege"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/build.yml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-90280a9dddeda9de", "level": "note", "message": {"text": "package.json defines install-time lifecycle scripts"}, "properties": {"repobilityId": "c051567fd416655e", "scanner": "scanner-primary", "fingerprint": "90280a9dddeda9de", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "npm", "install-scripts"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "npm/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-6893a6c8b0861585", "level": "warning", "message": {"text": "Very low test-to-source ratio"}, "properties": {"repobilityId": "54a7de3f06314bf0", "scanner": "scanner-primary", "fingerprint": "6893a6c8b0861585", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["tests", "coverage"]}}, {"ruleId": "scanner-9551ae590643a6a7", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: sdk/node/package.json"}, "properties": {"repobilityId": "cf81ccc56f5cffe5", "scanner": "scanner-primary", "fingerprint": "9551ae590643a6a7", "layer": "dependencies", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "sdk/node/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-3ab5d313dda8e5f9", "level": "note", "message": {"text": "Debug logging residue appears in source files"}, "properties": {"repobilityId": "489aa7a9fad9634a", "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": "b2d65be6ce4c0ccf", "scanner": "scanner-primary", "fingerprint": "72b2a6250083a784", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["placeholder", "mock-data", "incomplete", "generated-repo-pattern"]}}, {"ruleId": "scanner-9d79c4077342a7d0", "level": "warning", "message": {"text": "Runtime service client appears to use placeholder configuration"}, "properties": {"repobilityId": "7e98786d8cd4d8b5", "scanner": "scanner-primary", "fingerprint": "9d79c4077342a7d0", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["placeholder", "runtime-config", "service-client", "generated-repo-pattern"]}}, {"ruleId": "scanner-2d0c7b7ab8f8aacf", "level": "warning", "message": {"text": "Critical user flow still appears backed by mock or placeholder data"}, "properties": {"repobilityId": "e723e26d8f35eee6", "scanner": "scanner-primary", "fingerprint": "2d0c7b7ab8f8aacf", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["placeholder", "mock-data", "critical-flow", "generated-repo-pattern"]}}, {"ruleId": "scanner-11825279136b53a3", "level": "warning", "message": {"text": "CI is configured but no tests are detected"}, "properties": {"repobilityId": "c108346351c4de0d", "scanner": "scanner-primary", "fingerprint": "11825279136b53a3", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["tests", "ci", "config-theater", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-b9088664ace7f748", "level": "note", "message": {"text": "Composite production-readiness gap"}, "properties": {"repobilityId": "fb9dfdcb357b2846", "scanner": "scanner-primary", "fingerprint": "b9088664ace7f748", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["production-readiness", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-f76daf5bc3e2a1e4", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 examples/word/content-controls.py:186"}, "properties": {"repobilityId": "ca6086ca2db5b893", "scanner": "scanner-primary", "fingerprint": "f76daf5bc3e2a1e4", "layer": "quality", "severity": "medium", "confidence": 0.85, "tags": ["integrity", "fragile-runtime", "robustness"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "examples/word/content-controls.py"}, "region": {"startLine": 186}}}]}, {"ruleId": "scanner-da3d68aea35507b0", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 examples/word/document-formatting.py:186"}, "properties": {"repobilityId": "b7e1e7eb57eff6e3", "scanner": "scanner-primary", "fingerprint": "da3d68aea35507b0", "layer": "quality", "severity": "medium", "confidence": 0.85, "tags": ["integrity", "fragile-runtime", "robustness"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "examples/word/document-formatting.py"}, "region": {"startLine": 186}}}]}, {"ruleId": "scanner-612741bd6a9f7e33", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 examples/word/fields.py:218"}, "properties": {"repobilityId": "ebea404e22ef4ebc", "scanner": "scanner-primary", "fingerprint": "612741bd6a9f7e33", "layer": "quality", "severity": "medium", "confidence": 0.85, "tags": ["integrity", "fragile-runtime", "robustness"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "examples/word/fields.py"}, "region": {"startLine": 218}}}]}, {"ruleId": "scanner-ba20086993b2b386", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 examples/word/sections.py:270"}, "properties": {"repobilityId": "43a971bd3e104c38", "scanner": "scanner-primary", "fingerprint": "ba20086993b2b386", "layer": "quality", "severity": "medium", "confidence": 0.85, "tags": ["integrity", "fragile-runtime", "robustness"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "examples/word/sections.py"}, "region": {"startLine": 270}}}]}, {"ruleId": "scanner-8bc26c2529d634e3", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 examples/ppt/charts/charts-doughnut.py:184"}, "properties": {"repobilityId": "7cb073e5fe54b29b", "scanner": "scanner-primary", "fingerprint": "8bc26c2529d634e3", "layer": "quality", "severity": "medium", "confidence": 0.85, "tags": ["integrity", "fragile-runtime", "robustness"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "examples/ppt/charts/charts-doughnut.py"}, "region": {"startLine": 184}}}]}, {"ruleId": "scanner-3c4b865a950cd01f", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 examples/excel/conditional-formatting.py:221"}, "properties": {"repobilityId": "1d7e3cd7448f87d1", "scanner": "scanner-primary", "fingerprint": "3c4b865a950cd01f", "layer": "quality", "severity": "medium", "confidence": 0.85, "tags": ["integrity", "fragile-runtime", "robustness"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "examples/excel/conditional-formatting.py"}, "region": {"startLine": 221}}}]}, {"ruleId": "scanner-1cef2b87abd044e3", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 examples/excel/sparklines.py:137"}, "properties": {"repobilityId": "c9a432c0788be968", "scanner": "scanner-primary", "fingerprint": "1cef2b87abd044e3", "layer": "quality", "severity": "medium", "confidence": 0.85, "tags": ["integrity", "fragile-runtime", "robustness"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "examples/excel/sparklines.py"}, "region": {"startLine": 137}}}]}, {"ruleId": "scanner-fba70a82b0875adb", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 examples/excel/data-validation.py:217"}, "properties": {"repobilityId": "47d1e11d39248ac2", "scanner": "scanner-primary", "fingerprint": "fba70a82b0875adb", "layer": "quality", "severity": "medium", "confidence": 0.85, "tags": ["integrity", "fragile-runtime", "robustness"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "examples/excel/data-validation.py"}, "region": {"startLine": 217}}}]}, {"ruleId": "scanner-a5fe97e937576ec2", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 skills/morph-ppt/reference/morph-helpers.py:41"}, "properties": {"repobilityId": "bfe5d71f47551004", "scanner": "scanner-primary", "fingerprint": "a5fe97e937576ec2", "layer": "quality", "severity": "medium", "confidence": 0.85, "tags": ["integrity", "fragile-runtime", "robustness"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "skills/morph-ppt/reference/morph-helpers.py"}, "region": {"startLine": 41}}}]}, {"ruleId": "scanner-19f91444b70f622c", "level": "warning", "message": {"text": "Fire-and-forget `fetch()` has no rejection handler \u2014 src/officecli/Resources/watch-sse-core.js:41"}, "properties": {"repobilityId": "5187780395686cfa", "scanner": "scanner-primary", "fingerprint": "19f91444b70f622c", "layer": "quality", "severity": "medium", "confidence": 0.9, "tags": ["integrity", "fragile-runtime", "robustness", "unhandled-promise"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/officecli/Resources/watch-sse-core.js"}, "region": {"startLine": 41}}}]}, {"ruleId": "scanner-9ea24cd410dd93cf", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 sdk/python/officecli.py:590"}, "properties": {"repobilityId": "1e8fe0f5de9a2db4", "scanner": "scanner-primary", "fingerprint": "9ea24cd410dd93cf", "layer": "quality", "severity": "medium", "confidence": 0.85, "tags": ["integrity", "fragile-runtime", "robustness"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "sdk/python/officecli.py"}, "region": {"startLine": 590}}}]}]}]}