Agent Economy Report

Skill code audit

SAFE version 0.1.0 · audited 2026-09-09

skill-creator @chindden

This is a documentation-and-tooling skill that teaches an agent how to write new Claude skills and provides three small local Python helper scripts. One script creates a new skill folder with a SKILL.md template and example files, one validates the YAML frontmatter of a skill, and one zips a skill folder into a .skill archive. Everything happens on the local filesystem in a directory the user specifies; there are no network calls, no credential or environment-variable access, no package installs, and no obfuscated or encoded code. The only URLs present are the Apache license link and the publisher's profile link in the descriptive skill card. The main capability to be aware of is that it writes files and creates directories where told, and it instructs the agent to run its bundled scripts.

Declared purposeA guide for creating or updating Claude skills: understanding requirements, planning bundled resources, initializing a skill from a template, validating it, and packaging it into a distributable .skill file (SKILL.md lines 1-9, skill-card.md lines 1-14).
Observed behaviorThe SKILL.md is instructional prose about skill authoring. scripts/init_skill.py creates a directory at a user-supplied path and writes SKILL.md plus example files into scripts/, references/ and assets/ (lines 206-258). scripts/quick_validate.py reads a SKILL.md and checks its YAML frontmatter with yaml.safe_load, returning pass/fail messages (lines 12-86). scripts/package_skill.py validates then zips the folder into <name>.skill (lines 49-78). No network requests, no shell execution, no credential reads, no persistence hooks.
Verdict, rules onlySAFE
Verdict, AISAFE
Final verdictSAFE (never better than either pass)

Capabilities

capabilityvs purposedetail
filesystem_writeneededinit_skill.py creates a directory and writes template files (scripts/init_skill.py lines 215, 230, 242, 250, 257); package_skill.py writes a zip archive (line 68) and can create an output directory (line 60). Paths come from command-line arguments supplied by the user/agent.
filesystem_readneededquick_validate.py reads SKILL.md (line 22); package_skill.py walks the whole skill folder with rglob('*') and adds every file to the archive (lines 70-74), so unrelated files left in that folder would be included.
shellneededSKILL.md tells the agent to execute the bundled scripts, e.g. 'scripts/init_skill.py <skill-name> --path <output-directory>' (line 267) and 'scripts/package_skill.py <path/to/skill-folder>' (line 325). Only these local scripts are invoked; no external commands or downloads.
otherneededscripts/init_skill.py line 243 sets the generated example script executable (chmod 0o755) — normal for a template helper, but it does mean a generated file is marked runnable.

Findings

severityfinding
lowCreates directories at a caller-supplied absolute path
The --path argument is resolved and used directly (line 206), so the script will create a folder anywhere the process can write. It refuses to overwrite an existing directory (line 209), which limits accidental damage, but the path is not otherwise constrained.
scripts/init_skill.py:215 skill_dir.mkdir(parents=True, exist_ok=False)
infoGenerated example script is made executable
The placeholder example.py it writes only prints a message (lines 117-123), so marking it executable is harmless, but users should know a runnable file is created inside the new skill folder.
scripts/init_skill.py:243 example_script.chmod(0o755)
lowPackaging includes every file in the target folder
All files under the skill directory are added to the .skill zip without exclusions. If secrets, .env files or private notes sit in that folder they will be bundled into the distributable archive. The skill card acknowledges this risk (skill-card.md line 22).
scripts/package_skill.py:70 for file_path in skill_path.rglob('*'):
infoSafe YAML parsing
Uses yaml.safe_load rather than the unsafe loader, so parsing an untrusted SKILL.md frontmatter cannot instantiate arbitrary Python objects.
scripts/quick_validate.py:35 frontmatter = yaml.safe_load(frontmatter_text)
infoOnly external URLs are the registry profile and the Apache license
No code in the package contacts any network endpoint; the two domains present appear solely in descriptive/licensing text (skill-card.md line 7, LICENSE.txt line 4).
skill-card.md:7 [chindden](https://clawhub.ai/user/chindden) <br>

0 AI finding(s) were dropped because their file, line or quote did not match the package.

Network destinations in the code

domainservice ratingwhere
clawhub.ainot in the service indexskill-card.md:7
www.apache.orgnot in the service indexLICENSE.txt:4

Other facts

Binaries invokedbash, python, python3
Environment variables readnone
Hard-coded walletsnone
Pipes a download to a shell0
eval / exec / subprocess0
base64 blobs0
File writes7
Persistence0

Files audited

filelinessha256
LICENSE.txt20258d1e17ffe5109a7…
SKILL.md356b2e3d83f60425c2d…
_meta.json6e42619674aa33a7b…
references/output-patterns.md82d6027800b9d8c265…
references/workflows.md28ef4846877d5dab47…
scripts/init_skill.py3030bba250b94caa4cb…
scripts/package_skill.py110b31fbcb3e362d5c5…
scripts/quick_validate.py95381ab2d3d1fd5ec3…
skill-card.md417857b990b8cd65a5…

For agents

JSON: https://agenteconomy.report/k/skill-creator.audit.json · badge: https://agenteconomy.report/k/skill-creator.audited.svg · skill rating: /k/skill-creator · commission an audit of any skill: US$ 29 per version.

How this is computed

The complete published package of this exact version was downloaded from the registry and read statically; nothing was executed. A deterministic pass extracts network destinations, binaries, environment variables, writes, install commands, obfuscation markers, subprocesses and wallets, each with file and line. An AI then reads the whole package with those facts and writes the summary, the capabilities and the findings under a strict schema; every finding it produces must cite a file, a line and the exact text, or it is dropped. The final verdict is the worst of the two passes. The audit does not change the skill's trust tier (policy); the author may respond through the dispute channel and the response is published here. Commissioned by: the Agent Economy Report (free program: the 150 most downloaded skills, September 2026).