autoskill
11 findings (5 critical, 1 high, 3 medium, 2 low), mainly data exfiltration, unauthorized tool use. Most recent scan 2026-10-21.
Second scanner: NVIDIA SkillSpector
Independent static run, no language model, over the same files as the Cisco scan above. How the two scanners compare across the whole corpus: Two scanners, one corpus.
What this skill does
Analyzes user-requested Screenpipe history windows to detect repeated research workflows, match existing scientific skills, and stage new skill drafts or composition recipes for review. Requires a reachable Screenpipe HTTP API, normally on localhost:3030. Detection and embedding inference run locally; the selected LLM receives redacted app/title cluster summaries and matched skill descriptions. Use only when the user explicitly asks to analyze their recent work and propose skills.
- Package
- 16 files, 59 KB
- SKILL.md
- 1990 words, 12+ sections
- Code
- Python (10)
- Allowed tools
ReadWriteEditBash- License
- MIT license
- Compatibility
- Requires Python 3.10+ with httpx, PyYAML, and sentence-transformers; Screenpipe and a local LM Studio server or an opt-in cloud LLM. Initial model installation needs network access.
SKILL.md covers: autoskill · Overview · When to Use This Skill · Privacy Posture · Prerequisites · 1. Screenpipe daemon · System deps (macOS): cmake + full Xcode.app (not just Command Line Tools). · brew install cmake · # if xcodebuild plug-ins error: sudo xcodebuild -runFirstLaunch · 2. Screenpipe API token · 3. Python environment · 4. Local LLM (default path) — LM Studio
Findings
CRITICAL Cross-file env var exfiltration: 3 files Data Exfiltrationbehavioral
Environment variable access with network calls in scripts/backends.py, scripts/doctor.py, scripts/run.py
CRITICAL Cross-file exfiltration chain: 3 files Data Exfiltrationbehavioral
Multi-file exfiltration chain detected: scripts/backends.py, scripts/doctor.py, scripts/run.py collect data → scripts/run.py → scripts/backends.py, scripts/doctor.py, scripts/run.py transmit to network
CRITICAL Environment variable access with network calls detected Data Exfiltrationbehavioral
Script accesses environment variables and makes network calls in /home/runner/work/skill-scanner-test/skill-scanner-test/skills/K-Dense-AI-scientific-agent-skills/skills/autoskill/scripts/backends.py
/home/runner/work/skill-scanner-test/skill-scanner-test/skills/K-Dense-AI-scientific-agent-skills/skills/autoskill/scripts/backends.py
CRITICAL Environment variable access with network calls detected Data Exfiltrationbehavioral
Script accesses environment variables and makes network calls in /home/runner/work/skill-scanner-test/skill-scanner-test/skills/K-Dense-AI-scientific-agent-skills/skills/autoskill/scripts/doctor.py
/home/runner/work/skill-scanner-test/skill-scanner-test/skills/K-Dense-AI-scientific-agent-skills/skills/autoskill/scripts/doctor.py
CRITICAL Environment variable access with network calls detected Data Exfiltrationbehavioral
Script accesses environment variables and makes network calls in /home/runner/work/skill-scanner-test/skill-scanner-test/skills/K-Dense-AI-scientific-agent-skills/skills/autoskill/scripts/run.py
/home/runner/work/skill-scanner-test/skill-scanner-test/skills/K-Dense-AI-scientific-agent-skills/skills/autoskill/scripts/run.py
HIGH Sensitive source reaches a network sink Data Exfiltrationcorrelation
Correlated sensitive_environment → network behavior across scripts/doctor.py.
scripts/doctor.py:22
MEDIUM Code makes network requests Unauthorized Tool Usestatic
Skill code makes network requests. While not controlled by allowed-tools, network access should be documented and justified in the skill description.
SKILL.md
MEDIUM Outbound network request primitives that can transmit data externally Data Exfiltrationstatic
Pattern detected: httpx.get(
scripts/doctor.py:22
r = httpx.get(f"{url.rstrip('/')}/health", headers=headers, timeout=5.0)MEDIUM Outbound network request primitives that can transmit data externally Data Exfiltrationstatic
Pattern detected: httpx.get(
scripts/doctor.py:38
r = httpx.get(f"{endpoint.rstrip('/')}/models", headers=headers, timeout=5.0)LOW Code uses glob/file patterns but Glob tool not in allowed-tools Unauthorized Tool Usestatic
Skill restricts tools to ['Read', 'Write', 'Edit', 'Bash'] but code uses glob patterns
SKILL.md
LOW Code uses search/grep patterns but Grep tool not in allowed-tools Unauthorized Tool Usestatic
Skill restricts tools to ['Read', 'Write', 'Edit', 'Bash'] but code uses regex search patterns
SKILL.md
What is in the package
| File | Kind | Size |
|---|---|---|
.gitignore | other | 34 B |
SKILL.md | doc | 17 KB |
config.yaml | config | 2.1 KB |
references/api-contracts.md | doc | 7.4 KB |
references/https-proxy.md | doc | 2.2 KB |
references/screenpipe-config.yaml | config | 1.4 KB |
scripts/autoskill.py | script | 1.1 KB |
scripts/backends.py | script | 5.1 KB |
scripts/cluster.py | script | 1.7 KB |
scripts/doctor.py | script | 4.5 KB |
scripts/fetch_window.py | script | 2.8 KB |
scripts/match_skills.py | script | 1.2 KB |
scripts/promote.py | script | 1.5 KB |
scripts/redact.py | script | 1.6 KB |
scripts/run.py | script | 7.4 KB |
scripts/synthesize.py | script | 2.7 KB |
External hosts referenced
github.com lmstudio.ai api.anthropic.com caddyserver.com arxiv.org platform.claude.com docs.screenpipe.com doi.org export.arxiv.org huggingface.co learn.microsoft.com sbert.net www.python-httpx.org your-resource.services.ai.azure.com
Hostnames that appear in the skill's files. Referencing a host is not a finding; compare against the findings above and the skill's stated purpose.
Environment variables referenced
LM_API_TOKEN ANTHROPIC_API_KEY FOUNDRY_API_KEY SCREENPIPE_TOKEN
Package contents recorded 2026-10-22 at commit 593377bb0487. The scan above ran against the version current at scan time; the two can differ if the skill has since been updated.
What we checked
- Static analyzer. Pattern rules over SKILL.md and bundled files: known-bad commands, exfiltration URLs, secrets, obfuscation.
- Bytecode analyzer.
- Pipeline analyzer.
- Correlation analyzer.
- Behavioral analyzer. Checks what the skill asks the agent to do against what its description claims it does.
- Trigger analyzer. Looks for instructions that fire on conditions the user did not ask for.
What we did not check
- Runtime behaviour. The skill was not executed; findings come from reading its files.
- Anything fetched at install or run time, including remote scripts, package dependencies, and URLs the skill tells the agent to open.
- Content the analyzers cannot read: images, binaries, and some non-English text.
- Known scanner bypass classes. See the methodology and limitations page.
Sources
- Repository: https://github.com/K-Dense-AI/scientific-agent-skills
- Raw scan result: skills-autoskill-scan.json
- Badge for your README:
 - Request a re-scan