skills/exec/SKILL.md
Policy-gated command execution for package managers, build/test scripts, one-off CLIs, and transient JavaScript diagnostics with an explicit project cwd/env file. Disabled by default; add "exec" to skills.enabled to expose it.
npx skillsauth add bishwashere/cowcode ExecInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Run local CLI commands as a first-class command-execution capability. This skill is disabled by default on new installs and updates. Enable it intentionally by adding "exec" to skills.enabled.
Use exec for package-manager and runtime commands that are not stable filesystem primitives:
npx create-next-app@latest ...pnpm dlx ...npm run build, npm test, npm startpnpm run build, pnpm test, pnpm startnode ..., git ..., or another explicitly allowed CLIexec_node_script, including
scripts that import dependencies installed with Pasture (for example
mongodb) while operating in another project's working directoryDo not use exec for simple file operations that have structured tools:
ls, find, pwd, cat, less, du, JSON, SQL, and dashboard URL resolution.mkdir, touch, cp, mv, rm, chmod, constrained local rsync, and dedicated create_next_app when that narrower path is enough.Exec runs one executable with an argv array; it is not a free-form shell string. Put the executable in command and every argument in argv. Do not include pipes, redirections, &&, ;, command substitutions, or shell scripts unless the operator has deliberately configured a shell executable in skills.exec.
exec_node_script is the same policy-gated Node capability with a safer
one-off-script lifecycle. It writes the supplied source to a private temporary
module under the Pasture install, runs it with the requested project cwd, and
deletes it afterward. This location lets the script import dependencies that
Pasture already owns; it does not install packages into the target project.
When envFile is provided, the executor loads that exact file relative to
cwd without returning its values. Never print credentials from the script.
Bare package imports resolve from Pasture's dependencies. Relative module
imports resolve from the transient source location, so read project files via
process.cwd() or use an absolute path derived from it.
Default runtime policy when the skill is enabled:
mode: "allowlist"npm, pnpm, npx, node, git/opt/homebrew/bin, /usr/local/bin/usr/local/binOptional config:
{
"skills": {
"enabled": ["exec"],
"exec": {
"mode": "allowlist",
"allowlist": ["npm", "pnpm", "npx", "node", "git", "cargo"],
"pathPrepend": ["/opt/homebrew/bin", "/usr/local/bin"],
"timeoutMs": 300000
}
}
}
Set mode: "full" only when the operator wants any direct executable path/name to run without the allowlist guard. Even in full mode, exec still runs without a shell unless command itself is a shell and the arguments invoke one.
If an exec command may create, delete, or modify files, verify the result with go-read before claiming success. Examples:
npx create-next-app@latest my-app ..., run go-read ls -la my-app or inspect my-app/package.json.npm install, inspect package.json, lockfiles, or run the requested verification script.run
description: Run one policy-gated executable with argv. Use for package managers, project generators, build/test scripts, dev servers, and one-off CLIs when exec is enabled. Prefer go-read/go-write for stable filesystem primitives. If the command may mutate files, verify afterward with go-read before final answering.
parameters:
command: string
argv: array
cwd: string (optional)
timeoutMs: number (optional)
env: object (optional)
node_script
description: Run a transient JavaScript ES module with Pasture's dependency context and a target project cwd. Use for one-off diagnostics or data queries. The temporary source is deleted after execution. Provide envFile only when the project environment is needed, and never print secrets.
parameters:
source: string
cwd: string (optional)
envFile: string (optional)
argv: array (optional)
timeoutMs: number (optional)
env: object (optional)
testing
Preserve concise, important results across long or multi-step runs. Checkpoint verified findings after meaningful steps and read them back before synthesis or whenever context may have been compacted.
data-ai
Plain HTTP fetch (GET/POST/etc.) for JSON or text endpoints, including localhost / LAN / Pasture's own dashboard. Use this instead of browse for non-rendered URLs.
testing
Bridge conversation to dashboard Projects and Missions — list configured projects, register new ones with setup details, health-check, propose tasks, create missions after user approval, log progress, and update task status. Use when the user wants to work on, track, or manage a project.
documentation
GitHub integration. Read repos, list/read issues and PRs, create branches, post comments, create PRs. Requires GitHub token in ~/.pasture/secrets.json or GITHUB_TOKEN env var.