Claude Code, Skill
Awesome Skills
Browse, search and download AI agent skills https://openskills.space
Compatibility: Not stated.
Grade B
Minor issues only, no Medium or High. Worth a quick look at the findings below before installing.
Not a guarantee. A hygiene check of the source at the commit shown, not a security audit.
Rescanned at commit e948def3796f, unchanged since the check below.
PERMISSION_DELETE_FILES NETWORK_NO_FIXED_HOST SECRETS_PATH_DOTENV SECRETS_ENV_READ OBFUSCATION_FILE_OVER_READ_CAP OBFUSCATION_FILE_CAP_REACHED
Why this grade
- PERMISSION_DELETE_FILES Low
Contains a call that can delete files.
public/skills/0b8b1962-b81e-41a0-968c-1e79aefb0cec/recalc.py, line 31
subprocess.run(['soffice', '--headless', '--terminate_after_init'], - NETWORK_NO_FIXED_HOST Low
Makes a network call whose host is not written as a fixed address.
app/page.tsx, line 52
const response = await fetch('/api/skills'); - SECRETS_PATH_DOTENV Low
Mentions a .env file.
.dockerignore, line 26
.env - SECRETS_ENV_READ Note
Reads an environment variable whose name contains KEY, SECRET, TOKEN, PASSWORD or CREDENTIAL.
public/skills/0b1c2d3e-4f5a-6b7c-8d9e-0f1a2b3c4d5e/reference/node_mcp_server.md, line 700
if (!process.env.EXAMPLE_API_KEY) { - OBFUSCATION_FILE_OVER_READ_CAP Note
A file was over the read cap and was not fully read.
package-lock.json, line 1
{ - OBFUSCATION_FILE_CAP_REACHED Note
The 400 file cap was reached before every file was read.
package-lock.json, line 1
{
Any High, or two or more Medium findings, give D. One Medium gives C. Low findings or a security Note give B. Each code names a finding behind the letter.
Grades are a hygiene check of the source at the commit shown, on the date checked, not a security audit or a guarantee. The free directory grades are automated. Before release, a PlugVet engineer reviews every paid report and any grade we hold back, including all F grades, against the source code and the evidence we quote.
What was checked
Plain notes from the hygiene checks.
Permissions
Concern
can delete files.
PERMISSION_DELETE_FILES
public/skills/0b8b1962-b81e-41a0-968c-1e79aefb0cec/recalc.py, line 31
subprocess.run(['soffice', '--headless', '--terminate_after_init'],
public/skills/0b8b1962-b81e-41a0-968c-1e79aefb0cec/recalc.py, line 84
subprocess.run(['gtimeout', '--version'], capture_output=True, timeout=1, check=False)
public/skills/0b8b1962-b81e-41a0-968c-1e79aefb0cec/recalc.py, line 92
result = subprocess.run(cmd, capture_output=True, text=True)
Show more
public/skills/4f5a6b7c-8d9e-0f1a-2b3c-4d5e6f7a8b9c/scripts/with_server.py, line 69
process = subprocess.Popen(
public/skills/4f5a6b7c-8d9e-0f1a-2b3c-4d5e6f7a8b9c/scripts/with_server.py, line 88
result = subprocess.run(args.command)
public/skills/5a6b7c8d-9e0f-1a2b-3c4d-5e6f7a8b9c0d/run.js, line 95
fs.unlinkSync(filePath);
public/skills/5c6d7e8f-9a0b-1c2d-3e4f-5a6b7c8d9e0f/scripts/download_video.py, line 16
subprocess.run(["yt-dlp", "--version"], capture_output=True, check=True)
public/skills/5c6d7e8f-9a0b-1c2d-3e4f-5a6b7c8d9e0f/scripts/download_video.py, line 19
subprocess.run([sys.executable, "-m", "pip", "install", "--break-system-packages", "yt-dlp"], check=True)
public/skills/5c6d7e8f-9a0b-1c2d-3e4f-5a6b7c8d9e0f/scripts/download_video.py, line 24
result = subprocess.run(
public/skills/5e6f7a8b-9c0d-1e2f-3a4b-5c6d7e8f9a0b/docx/scripts/document.py, line 836
shutil.rmtree(self.temp_dir)
Install and update
Pass
No install-time script found, and dependencies are pinned or absent.
Network
Concern
can reach a host that is not written as a fixed address.
NETWORK_NO_FIXED_HOST
app/page.tsx, line 52
const response = await fetch('/api/skills');
app/page.tsx, line 100
const response = await fetch(`/api/skills?${params}`);
app/page.tsx, line 576
curl {typeof window !== 'undefined' ? window.location.origin : 'https://openskills.space'}/api/download/{skill.id} -o {skill.owner}-{skill.name}.zip
Show more
app/page.tsx, line 581
copyToClipboard(`curl ${typeof window !== 'undefined' ? window
app/skills/[id]/page.tsx, line 47
const response = await fetch(`/api/skills`);
app/skills/[id]/page.tsx, line 67
const response = await fetch(`/api/skills/${skillId}/files`);
app/skills/[id]/page.tsx, line 485
curl {typeof window !== 'undefined' ? window.location.origin : 'https://openskills.space'}/api/download/{skill.id} -o {skill.owner}-{skill.name}.zip
app/skills/[id]/page.tsx, line 488
onClick={() => copyToClipboard(`curl ${typeof window !== 'undefined' ? window
public/skills/0b1c2d3e-4f5a-6b7c-8d9e-0f1a2b3c4d5e/reference/node_mcp_server.md, line 467
const response = await axios.get(`${API_URL}/resource/${resourceId}`);
public/skills/0b1c2d3e-4f5a-6b7c-8d9e-0f1a2b3c4d5e/reference/node_mcp_server.md, line 473
return axios.get(`${API_URL}/resource/${resourceId}`)
public/skills/72e77fcc-c2f0-4327-b5ab-fd7655bb000f/SKILL.md, line 30
curl -X POST https://openskills.space/api/recommend-skill \
public/skills/72e77fcc-c2f0-4327-b5ab-fd7655bb000f/SKILL.md, line 67
curl -X POST https://openskills.space/api/recommend-skill \
public/skills/72e77fcc-c2f0-4327-b5ab-fd7655bb000f/SKILL.md, line 77
curl -X POST https://openskills.space/api/recommend-skill \
public/skills/72e77fcc-c2f0-4327-b5ab-fd7655bb000f/SKILL.md, line 88
const response = await fetch('https://openskills.space/api/recommend-skill', {
Secrets
Concern
reads a credential or environment file.
SECRETS_ENV_READ SECRETS_PATH_DOTENV
public/skills/0b1c2d3e-4f5a-6b7c-8d9e-0f1a2b3c4d5e/reference/node_mcp_server.md, line 700
if (!process.env.EXAMPLE_API_KEY) {
.dockerignore, line 25
# Local env files
.dockerignore, line 26
.env
Show more
.dockerignore, line 27
.env.local
.dockerignore, line 28
.env.development.local
.dockerignore, line 29
.env.test.local
.dockerignore, line 30
.env.production.local
.gitignore, line 33
# env files (can opt-in for committing if needed)
public/skills/06f65bbf-3f3a-4a19-a3c2-46ec20d03f26/examples/conversation-to-faq.md, line 91
content: "## Short Answer\n\nDatabase connection errors usually mean either the database isn't running, credentials are incorrect, or there's a network connectivity issue. Check da
Agent instructions
Pass
No instruction to ignore earlier instructions or to hide a step.
Obfuscation
Note
a file was over the read cap and was not fully read. the file cap was reached before every file was read.
OBFUSCATION_FILE_OVER_READ_CAP OBFUSCATION_FILE_CAP_REACHED
package-lock.json, line 1
{
public/skills/5e6f7a8b-9c0d-1e2f-3a4b-5c6d7e8f9a0b/docx/ooxml/schemas/ISO-IEC29500-4_2016/sml.xsd, line 1
<?xml version="1.0" encoding="utf-8"?>
public/skills/5e6f7a8b-9c0d-1e2f-3a4b-5c6d7e8f9a0b/pptx/ooxml/schemas/ISO-IEC29500-4_2016/sml.xsd, line 1
<?xml version="1.0" encoding="utf-8"?>
Show more
public/skills/8f9a0b1c-2d3e-4f5a-6b7c-8d9e0f1a2b3c/canvas-fonts/PoiretOne-Regular.ttf, line 1