fieldtheory-cli-bookmarks

github.com/aradotso/trending-skills
Verdict: Generally safe
0 critical2 high4 medium
B
SCORE 75 / 100
$skillox install fieldtheory-cli-bookmarksSoon
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 / 100

The current grade reflects 2 high-severity findings (any HIGH → B).

0 CRIT2 HIGH4 MED0 LOW
To reach a higher grade
  • A
    Reach Atarget score 95

    Resolve all 2 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-tnxkp8vr1pok6kbtn3wwxll5 · Thu, 28 May 2026 17:32:48 GMT · 4ms

high
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`).
rule: shell-injection-templateline: 281CWE-78
279// Run ft commands from Node.js
280function ftSearch(query: string): string {
281 return execSync(`ft search "${query}"`, { encoding: "utf8" });child_process exec/spawn with template literal — use a parameterized API instead
282}
283
high
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`).
rule: shell-injection-templateline: 293CWE-78
291 .join(" ");
292
293 return execSync(`ft list ${flags}`, { encoding: "utf8" });child_process exec/spawn with template literal — use a parameterized API instead
294}
295
med
Arbitrary subprocess execution detected
The skill spawns subprocesses. Without a capability manifest declaring this, the skill could execute arbitrary commands.
rule: subprocess-executionline: 277CWE-78
275
276```typescript
277import { execSync } from "child_process";spawns a subprocess outside declared capabilities
278
279// Run ft commands from Node.js
med
Arbitrary subprocess execution detected
The skill spawns subprocesses. Without a capability manifest declaring this, the skill could execute arbitrary commands.
rule: subprocess-executionline: 281CWE-78
279// Run ft commands from Node.js
280function ftSearch(query: string): string {
281 return execSync(`ft search "${query}"`, { encoding: "utf8" });spawns a subprocess outside declared capabilities
282}
283
med
Arbitrary subprocess execution detected
The skill spawns subprocesses. Without a capability manifest declaring this, the skill could execute arbitrary commands.
rule: subprocess-executionline: 293CWE-78
291 .join(" ");
292
293 return execSync(`ft list ${flags}`, { encoding: "utf8" });spawns a subprocess outside declared capabilities
294}
295
med
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-manifest
View latest scan →
skillox.io/c/fieldtheory-cli-bookmarks