SAFE version 0.1.0 · audited 2026-09-09
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 purpose | A 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 behavior | The 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 only | SAFE |
| Verdict, AI | SAFE |
| Final verdict | SAFE (never better than either pass) |
| capability | vs purpose | detail |
|---|---|---|
| filesystem_write | needed | init_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_read | needed | quick_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. |
| shell | needed | SKILL.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. |
| other | needed | scripts/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. |
| severity | finding |
|---|---|
| low | Creates 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) |
| info | Generated 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) |
| low | Packaging 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('*'): |
| info | Safe 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) |
| info | Only 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.
| domain | service rating | where |
|---|---|---|
| clawhub.ai | not in the service index | skill-card.md:7 |
| www.apache.org | not in the service index | LICENSE.txt:4 |
| Binaries invoked | bash, python, python3 |
| Environment variables read | none |
| Hard-coded wallets | none |
| Pipes a download to a shell | 0 |
| eval / exec / subprocess | 0 |
| base64 blobs | 0 |
| File writes | 7 |
| Persistence | 0 |
| file | lines | sha256 |
|---|---|---|
LICENSE.txt | 202 | 58d1e17ffe5109a7… |
SKILL.md | 356 | b2e3d83f60425c2d… |
_meta.json | 6 | e42619674aa33a7b… |
references/output-patterns.md | 82 | d6027800b9d8c265… |
references/workflows.md | 28 | ef4846877d5dab47… |
scripts/init_skill.py | 303 | 0bba250b94caa4cb… |
scripts/package_skill.py | 110 | b31fbcb3e362d5c5… |
scripts/quick_validate.py | 95 | 381ab2d3d1fd5ec3… |
skill-card.md | 41 | 7857b990b8cd65a5… |
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.
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).