Skills/ClawHub/iterate-skill

iterate-skill@3.15.0

CAUTION· install only

Publisher claims: "Fully automated multi-round code iteration with configurable N-dimension parallel review, onboarding/personalization, and a cross-assistant installer/update system with mandatory SHA256 checksum verification. v3.0 adds a dual-mode (the original iterate mode plus a defensive-programming mode via /iterate defensive) that performs normal incremental coding tasks with defensive discipline end-to-end." Observed in sandbox: no network, touches nothing outside the project, writes no memory.

Registry ClawHubPublisher jingzhao-l · publishing for 54 daysInstalls 3,530Last detonated 10 h ago

Coverage

Install scripts ran; no agent task scenario for this bundle.
Tested
install scripts, with decoy credentials in place · second launch with the clock 45 days ahead · every file read, file written and host contacted by what ran
Not tested
use of the skill by an agent

Is [email protected] safe to install?

KillerSkills ran it in the KillerSkills honeypot sandbox (2 scenarios; install scripts ran; no agent task scenario for this bundle) on 2026-11-14 and scored it 68/100 (Caution). It is not known to be malicious, but it has behaviour or code a security policy should decide on before install. Notable findings: Access to sensitive file paths; Pipe-to-shell pattern; Destructive command against a filesystem root or device. Summary: no network, touches nothing outside the project, writes no memory.

Behavior trace

Honeypot run · 1 s · 2 scenarios · 0 deviations
t+CategoryObserved action
0.0sprocessinstall script run in the sandbox
0.2sprocessexited 1: ModuleNotFoundError: No module named 'yaml'
0.2sprocessscript backend runs setup only
0.2sprocessscript backend runs setup only
0.3sprocesssecond launch, clock +45 days, CI unset
0.5sprocessexited 1: ModuleNotFoundError: No module named 'yaml'

Static findings

HIGH
Access to sensitive file pathsSKILL.md:14 · Access to sensitive file paths — SSH keys, AWS credentials, env files, or system filesskip: [".env", ".env.*", "*.key", "secrets/", "*.pem", "*.p12", "*.crt", "*.cer", "credentials.json", ".aws/", ".ssh/"]Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.
AST05
CRITICAL
Pipe-to-shell patterniterate_cli/personalize.py:224 · Pipe-to-shell pattern — downloads and immediately executes remote code#: ``bun x`` are the same idea. They are equivalent to ``curl … | sh``, so theyFix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.
AST06
CRITICAL
Destructive command against a filesystem root or deviceiterate_cli/doctor.py:849 · Destructive command against a filesystem root or device# safety net. Otherwise a command like "make; rm -rf /" could pass theFix: Build commands from fixed arguments; do not interpolate untrusted strings into a shell.
AST05
MEDIUM
npx invocation of non-well-known packageiterate_cli/template_cmd.py:249 · npx invocation of non-well-known package — may execute untrusted code"Reinstall the skill (`npx iterate-skill-installer` or "Fix: Pin versions and sources; vendor anything fetched at install time.
AST06
MEDIUM
Remote installer piped to shelliterate_cli/personalize.py:224 · Remote installer piped to shell#: ``bun x`` are the same idea. They are equivalent to ``curl … | sh``, so theyFix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.
AST07
MEDIUM
Python subprocess execution detectediterate_cli/guard.py:274 · Python subprocess execution detectedproc = subprocess.run(Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.
AST05
MEDIUM
Process kill commanditerate_cli/updater.py:933 · Process kill command — agent can terminate processes# child runs in its own session so a timeout can kill the whole processFix: Build commands from fixed arguments; do not interpolate untrusted strings into a shell.
AST05
MEDIUM
npx invocation of non-well-known packageSKILL.md:1212 · npx invocation of non-well-known package — may execute untrusted code- `scripts/install.py update` 与 `npx iterate-skill-installer` 会从 GitHub Release 下载预上传的 `iterate-skill.tar.gz` + `SHA256SUMS.txt`。Fix: Pin versions and sources; vendor anything fetched at install time.
AST06
MEDIUM
Python subprocess execution detectediterate_cli/guard.py:246 · Python subprocess execution detectedproc = subprocess.run(Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.
AST05
MEDIUM
Process kill commanditerate_cli/guard.py:378 · Process kill command — agent can terminate processes# no-op there, so the process group is not isolated; kill the leader.Fix: Build commands from fixed arguments; do not interpolate untrusted strings into a shell.
AST05
HIGH
Destructive file system command detectediterate_cli/doctor.py:805 · Destructive file system command detectedcommand like ``pytest; rm -rf /`` must never pass a health gate simplyFix: Build commands from fixed arguments; do not interpolate untrusted strings into a shell.
AST05
MEDIUM
npx invocation of non-well-known packageiterate_cli/personalize.py:145 · npx invocation of non-well-known package — may execute untrusted code# NOTE: `npx` is deliberately absent. `npx <pkg>` downloads and runs aFix: Pin versions and sources; vendor anything fetched at install time.
AST06
MEDIUM
npx invocation of non-well-known packagenpm-installer/bin/cli.js:12 · npx invocation of non-well-known package — may execute untrusted code* npx iterate-skill-installer --globalFix: Pin versions and sources; vendor anything fetched at install time.
AST06
HIGH
Destructive file system command detectediterate_cli/doctor.py:849 · Destructive file system command detected# safety net. Otherwise a command like "make; rm -rf /" could pass theFix: Build commands from fixed arguments; do not interpolate untrusted strings into a shell.
AST05
MEDIUM
Python subprocess execution detectediterate_cli/signing.py:211 · Python subprocess execution detectedlisting = subprocess.run(Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.
AST05
HIGH
Destructive file system command detectedscripts/validate.py:263 · Destructive file system command detected换行等),防止 ``pytest tests/; rm -rf /`` 这类以白名单前缀开头、后缀拼接Fix: Build commands from fixed arguments; do not interpolate untrusted strings into a shell.
AST05
MEDIUM
Process kill commanditerate_cli/signing.py:244 · Process kill command — agent can terminate processes"""Best-effort ``gpgconf --kill gpg-agent`` for the throwaway homedir.Fix: Build commands from fixed arguments; do not interpolate untrusted strings into a shell.
AST05
MEDIUM
npx invocation of non-well-known packageiterate_cli/cli.py:352 · npx invocation of non-well-known package — may execute untrusted code"Install the skill across AI assistants: npx iterate-skill-installer"Fix: Pin versions and sources; vendor anything fetched at install time.
AST06
MEDIUM
npx invocation of non-well-known packagenpm-installer/bin/cli.js:9 · npx invocation of non-well-known package — may execute untrusted code* npx iterate-skill-installerFix: Pin versions and sources; vendor anything fetched at install time.
AST06
MEDIUM
npx invocation of non-well-known packageiterate_cli/updater.py:492 · npx invocation of non-well-known package — may execute untrusted codetrustworthy — the npx installer and ``scripts/install.py`` bothFix: Pin versions and sources; vendor anything fetched at install time.
AST06
MEDIUM
Python subprocess execution detectediterate_cli/signing.py:306 · Python subprocess execution detectedimported = subprocess.run(Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.
AST05
MEDIUM
Process kill commanditerate_cli/updater.py:961 · Process kill command — agent can terminate processes"""Best-effort kill of ``proc`` and its whole process group (POSIX only).Fix: Build commands from fixed arguments; do not interpolate untrusted strings into a shell.
AST05
HIGH
Destructive file system command detectediterate_cli/doctor.py:245 · Destructive file system command detectedwhitelisted prefix cannot be abused to smuggle ``; rm -rf /`` styleFix: Build commands from fixed arguments; do not interpolate untrusted strings into a shell.
AST05
HIGH
Access to sensitive file pathsSKILL.md:287 · Access to sensitive file paths — SSH keys, AWS credentials, env files, or system files- **绝不读取** `.env`、`.env.*`、`*.{key,pem,p12,crt,cer}`、`credentials.json`、`.aws/`、`.ssh/` 等敏感文件。Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.
AST05
MEDIUM
npx invocation of non-well-known packageSKILL.md:1217 · npx invocation of non-well-known package — may execute untrusted code- `npx iterate-skill-installer` 在复制 skill 文件的同时,会顺带把 `iterate` CLI 安装到 PATH(优先 `pipx` 隔离安装,否则 `pip install --user`),以便安装完成后可直接运行 `iterate onboard`。Fix: Pin versions and sources; vendor anything fetched at install time.
AST06
MEDIUM
Python subprocess execution detectediterate_cli/completion.py:618 · Python subprocess execution detectedresult = subprocess.run(Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.
AST05
MEDIUM
npx invocation of non-well-known packagenpm-installer/bin/cli.js:10 · npx invocation of non-well-known package — may execute untrusted code* npx iterate-skill-installer --ai traeFix: Pin versions and sources; vendor anything fetched at install time.
AST06
MEDIUM
File type combined with upload actioniterate_cli/wizard.py:85 · File type combined with upload action — agent may exfiltrate local data files# Bounds enforced by config.schema.json for advanced-configuration inputs.Fix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.
AST07
MEDIUM
npx invocation of non-well-known packageSKILL.md:374 · npx invocation of non-well-known package — may execute untrusted code安装 CLI:`npx iterate-skill-installer` 会自动安装 `iterate` CLI;也可手动 `pip install .` 或 `pipx install .`(从本仓库根目录)。Fix: Pin versions and sources; vendor anything fetched at install time.
AST06
MEDIUM
Python subprocess execution detectediterate_cli/signing.py:259 · Python subprocess execution detectedsubprocess.run(Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.
AST05
MEDIUM
Python subprocess execution detectediterate_cli/updater.py:940 · Python subprocess execution detectedproc = subprocess.Popen(Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.
AST05
MEDIUM
npx invocation of non-well-known packagenpm-installer/bin/cli.js:11 · npx invocation of non-well-known package — may execute untrusted code* npx iterate-skill-installer --target /path/to/projectFix: Pin versions and sources; vendor anything fetched at install time.
AST06
MEDIUM
Python subprocess execution detectediterate_cli/personalize.py:148 · Python subprocess execution detected# `subprocess.run(..., shell=True)` in CI or on a teammate's machine —Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.
AST05
MEDIUM
Python subprocess execution detectediterate_cli/guard.py:27 · Python subprocess execution detectedconfig can never chain extra shell through ``subprocess.run(..., shell=True)``.Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.
AST05
MEDIUM
Python subprocess execution detectediterate_cli/signing.py:326 · Python subprocess execution detectedverified = subprocess.run(Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.
AST05
HIGH
Access to sensitive file pathsSKILL.md:431 · Access to sensitive file paths — SSH keys, AWS credentials, env files, or system files- 绝不读取 `.env`、`.env.*`、`*.{key,pem,p12,crt,cer}`、`credentials.json`、`.aws/`、`.ssh/` 等敏感文件。Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.
AST05
MEDIUM
Python subprocess execution detectediterate_cli/guard.py:185 · Python subprocess execution detected``subprocess.run(..., shell=True)``.Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.
AST05
MEDIUM
Python subprocess execution detectediterate_cli/guard.py:105 · Python subprocess execution detected#: ``subprocess.run(..., shell=True)``.Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.
AST05
MEDIUM
Process kill commandnpm-installer/lib/installer.js:817 · Process kill command — agent can terminate processes// timeout can kill the entire tree, not just the leader. It does notFix: Build commands from fixed arguments; do not interpolate untrusted strings into a shell.
AST05
MEDIUM
Python subprocess execution detectedscripts/install.py:2533 · Python subprocess execution detectedresult = subprocess.run(Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.
AST05
MEDIUM
npx invocation of non-well-known packagescripts/install.py:1502 · npx invocation of non-well-known package — may execute untrusted code# Non-zero so the npx wrapper does not report a false success.Fix: Pin versions and sources; vendor anything fetched at install time.
AST06
MEDIUM
Process kill commandnpm-installer/test/mode.test.js:259 · Process kill command — agent can terminate processes// calling process.exit: library code must not kill the host process, so theFix: Build commands from fixed arguments; do not interpolate untrusted strings into a shell.
AST05
MEDIUM
npx invocation of non-well-known packagescripts/install.py:2086 · npx invocation of non-well-known package — may execute untrusted code#: exactly as the npx installer's ``parseChecksums`` skips them.Fix: Pin versions and sources; vendor anything fetched at install time.
AST06
MEDIUM
Python subprocess execution detectedscripts/install.py:573 · Python subprocess execution detectedverified = subprocess.run(Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.
AST05
MEDIUM
Python subprocess execution detectedscripts/install.py:562 · Python subprocess execution detectedimported = subprocess.run(Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.
AST05
MEDIUM
npx invocation of non-well-known packagenpm-installer/test/security.test.js:2 · npx invocation of non-well-known package — may execute untrusted code* Security-boundary tests for the npx installer.Fix: Pin versions and sources; vendor anything fetched at install time.
AST06
MEDIUM
npx invocation of non-well-known packagenpm-installer/test/tarball.test.js:2 · npx invocation of non-well-known package — may execute untrusted code* Tarball safety-hardening tests for the npx installer.Fix: Pin versions and sources; vendor anything fetched at install time.
AST06
MEDIUM
Process kill commandnpm-installer/test/mode.test.js:444 · Process kill command — agent can terminate processesassert.ok(groupTimedOut, 'group kill path must still report the timeout');Fix: Build commands from fixed arguments; do not interpolate untrusted strings into a shell.
AST05
MEDIUM
Process kill commandnpm-installer/test/mode.test.js:456 · Process kill command — agent can terminate processes// the post-kill fallback) rather than hang the installer forever. TheFix: Build commands from fixed arguments; do not interpolate untrusted strings into a shell.
AST05
MEDIUM
npx invocation of non-well-known packagescripts/publish_qoder.py:424 · npx invocation of non-well-known package — may execute untrusted code("npm-installer/", "bootstrap installer", "`npx iterate-skill-installer` bootstrap (pull release + verify SHA256)"),Fix: Pin versions and sources; vendor anything fetched at install time.
AST06
MEDIUM
npx invocation of non-well-known packagenpm-installer/test/mode.test.js:3 · npx invocation of non-well-known package — may execute untrusted code* decision — and parseChecksums() — the SHA256SUMS.txt parser — in the npxFix: Pin versions and sources; vendor anything fetched at install time.
AST06
MEDIUM
npx invocation of non-well-known packagescripts/install.py:1574 · npx invocation of non-well-known package — may execute untrusted code# "Installation complete." The <2.0.0 npx wrapper and CI callers relyFix: Pin versions and sources; vendor anything fetched at install time.
AST06
MEDIUM
npx invocation of non-well-known packagescripts/install.py:1591 · npx invocation of non-well-known package — may execute untrusted code# instead of a misleading "complete": a caller (e.g. the npx wrapper)Fix: Pin versions and sources; vendor anything fetched at install time.
AST06
MEDIUM
npx invocation of non-well-known packagenpm-installer/bin/cli.js:13 · npx invocation of non-well-known package — may execute untrusted code* npx iterate-skill-installer --no-cliFix: Pin versions and sources; vendor anything fetched at install time.
AST06
MEDIUM
Process kill commandnpm-installer/lib/installer.js:787 · Process kill command — agent can terminate processes// already spawned a compiler/download helper outlived the kill and keptFix: Build commands from fixed arguments; do not interpolate untrusted strings into a shell.
AST05
MEDIUM
npx invocation of non-well-known packagenpm-installer/lib/installer.js:1538 · npx invocation of non-well-known package — may execute untrusted code// typo like "npx iterate-skill-installer trae" is not silently ignored.Fix: Pin versions and sources; vendor anything fetched at install time.
AST06
MEDIUM
npx invocation of non-well-known packagenpm-installer/test/mode.test.js:290 · npx invocation of non-well-known package — may execute untrusted code// being silently ignored (fix: typos like "npx iterate-skill-installer trae").Fix: Pin versions and sources; vendor anything fetched at install time.
AST06
MEDIUM
npx invocation of non-well-known packagescripts/install.py:1654 · npx invocation of non-well-known package — may execute untrusted code# "Nothing to uninstall" is a failure for the caller (e.g. the npxFix: Pin versions and sources; vendor anything fetched at install time.
AST06
MEDIUM
Process kill commandnpm-installer/test/mode.test.js:427 · Process kill command — agent can terminate processes// completion; a group kill prevents it from ever being written.Fix: Build commands from fixed arguments; do not interpolate untrusted strings into a shell.
AST05
MEDIUM
Python subprocess execution detectedscripts/publish_qoder.py:203 · Python subprocess execution detectedproc = subprocess.run(Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.
AST05
MEDIUM
Access to sensitive file pathsnpm-installer/test/tarball.test.js:211 · Access to sensitive file paths — SSH keys, AWS credentials, env files, or system filesassert.throws(() => validateEntryNames(['iterate/../etc/passwd'], dest), /\.\./);Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.
AST05
MEDIUM
Access to sensitive file pathsnpm-installer/test/tarball.test.js:209 · Access to sensitive file paths — SSH keys, AWS credentials, env files, or system filesassert.throws(() => validateEntryNames(['/etc/passwd'], dest), /absolute path/);Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.
AST05
MEDIUM
npx invocation of non-well-known packagescripts/publish_qoder.py:406 · npx invocation of non-well-known package — may execute untrusted code"optional: `npx iterate-skill-installer` downloads the release tarball "Fix: Pin versions and sources; vendor anything fetched at install time.
AST06
MEDIUM
npx invocation of non-well-known packagenpm-installer/lib/installer.js:2 · npx invocation of non-well-known package — may execute untrusted code* iterate-skill-installer — Node.js entry point for npx one-command install.Fix: Pin versions and sources; vendor anything fetched at install time.
AST06
MEDIUM
Python subprocess execution detectedscripts/publish_qoder.py:229 · Python subprocess execution detectedproc = subprocess.run(Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.
AST05
MEDIUM
Process kill commandnpm-installer/test/mode.test.js:423 · Process kill command — agent can terminate processes// runCommand: the timeout must kill the WHOLE process group, not just theFix: Build commands from fixed arguments; do not interpolate untrusted strings into a shell.
AST05

Cost to the agent

Instructions loaded
≈15,456 tok
1 file · 79 in bundle

Tokens estimated at four characters each. Skills load their instruction text when triggered; the figure is what that costs.

Known vulnerabilities

Vulnerability advisories (OSV) cover npm and PyPI packages; this registry has no advisory database.

What would make this Verified

12 points to 80 · weights: behavior 45%, static 25%, prompt 15%, publisher 15%
  1. Pipe-to-shell pattern≈ +9 on the totalBuild commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.
  2. Destructive command against a filesystem root or device≈ +9 on the totalBuild commands from fixed arguments; do not interpolate untrusted strings into a shell.
  3. Unclaimed publisher≈ +8 on the totalClaim jingzhao-l: a verified publisher gets +50 on publisher trust. It is free and usually instant with GitHub sign-in.
  4. Access to sensitive file paths≈ +4 on the totalStop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.
  5. Destructive file system command detected≈ +4 on the totalBuild commands from fixed arguments; do not interpolate untrusted strings into a shell.
  6. npx invocation of non-well-known package≈ +2 on the totalPin versions and sources; vendor anything fetched at install time.
Publish a new version to ClawHub, then queue it here. Not your skill? Claim the handle to get verdict changes by email.Claim jingzhao-lPropose a patch to the maintainer