personal-tool-builder
github.com/sickn33/antigravity-awesome-skillsVerdict: Generally safe
0 critical1 high4 medium
B
SCORE 75 / 100
$skillox install personal-tool-builderSoon
Sign in to followFollowing emails you when a re-scan drops the grade. Opt-out is per-creator on /account/billing.
Why grade B?
score · 75 / 100The current grade reflects 1 high-severity finding (any HIGH → B).
0 CRIT1 HIGH4 MED0 LOW
To reach a higher grade
- AReach Atarget score 95
Resolve all 1 HIGH + 2 of 4 MED (cap is 2).
Thresholds are documented at /docs/grading. Source-of-truth is the grade() function in @skillox/scanner.
Latest scan findings
Scan crawl-sp045gxjimug0l6ulo4rg76k · Thu, 28 May 2026 17:30:14 GMT · 3ms
highShell-injection vector: child_process exec/spawn with template literalThe skill constructs a shell command by interpolating into a string passed to an exec-family function (`child_process exec/spawn with template literal`). If the interpolated value comes from agent context or user input, this is direct command injection. Use parameterized APIs (`spawn` with an arg-array, `subprocess.run([...])` without `shell=True`).▾
Shell-injection vector: child_process exec/spawn with template literal
The skill constructs a shell command by interpolating into a string passed to an exec-family function (`child_process exec/spawn with template literal`). If the interpolated value comes from agent context or user input, this is direct command injection. Use parameterized APIs (`spawn` with an arg-array, `subprocess.run([...])` without `shell=True`).
364function checkDep(cmd, installHint) {
365 try {
366 execSync(`which ${cmd}`, { stdio: 'ignore' });← child_process exec/spawn with template literal — use a parameterized API instead
367 } catch {
368 console.error(`Missing: ${cmd}`);
medArbitrary subprocess execution detectedThe skill spawns subprocesses. Without a capability manifest declaring this, the skill could execute arbitrary commands.▾
Arbitrary subprocess execution detected
The skill spawns subprocesses. Without a capability manifest declaring this, the skill could execute arbitrary commands.
238
239// Create tables on first run
240db.exec(`← spawns a subprocess outside declared capabilities
241 CREATE TABLE IF NOT EXISTS items (
242 id INTEGER PRIMARY KEY AUTOINCREMENT,
medArbitrary subprocess execution detectedThe skill spawns subprocesses. Without a capability manifest declaring this, the skill could execute arbitrary commands.▾
Arbitrary subprocess execution detected
The skill spawns subprocesses. Without a capability manifest declaring this, the skill could execute arbitrary commands.
360### Dependency Checking
361```javascript
362import { execSync } from 'child_process';← spawns a subprocess outside declared capabilities
363
364function checkDep(cmd, installHint) {
medArbitrary subprocess execution detectedThe skill spawns subprocesses. Without a capability manifest declaring this, the skill could execute arbitrary commands.▾
Arbitrary subprocess execution detected
The skill spawns subprocesses. Without a capability manifest declaring this, the skill could execute arbitrary commands.
364function checkDep(cmd, installHint) {
365 try {
366 execSync(`which ${cmd}`, { stdio: 'ignore' });← spawns a subprocess outside declared capabilities
367 } catch {
368 console.error(`Missing: ${cmd}`);
medNo capability manifest declaredThe skill ships without a `manifest.yaml` or `capabilities` block in its frontmatter. Without a manifest, the runtime cannot enforce what this skill is permitted to do.rule: no-manifest▾
No capability manifest declared
The skill ships without a `manifest.yaml` or `capabilities` block in its frontmatter. Without a manifest, the runtime cannot enforce what this skill is permitted to do.
rule:
no-manifestskillox.io/c/personal-tool-builder