Verdict
No malicious behavior observed
We ran it 8 times, with a normal setup, NIMBLE_AGENT_ID and NIMBLE_CONFIG and WATCH_REPORT_DEPENDENCIES set, NIMBLE_NO_LOG=1 set, JEST_WORKER_ID and NIMBLE_AGENT_ID and NIMBLE_CONFIG and NODE_V8_COVERAGE… set and NIMBLE_AGENT_ID and NIMBLE_CONFIG and SKILL set. It made no network connections. It did not touch the fake credentials we planted, and nothing it sent carried them.
0 findings. Scanned 27 Oct 2026 by detonator 0.5.1.
- Target
- nimble-decision
- Source
- clawhub 0.1.0
- SHA-256
- 9ecc6403431667a5
- Files
- 6
Nothing observed calls for action. This is evidence, not a guarantee.
batch:clawhub:2026-10-27
What this package does
observed across 8 runs- Package nimble-decision 6 files · agent skill
- Install No install stepFiles were copied in as they are.
- Runs as node <skill>/nimble.mjsnode <skill>/tests/eval.mjsnode /nimble.mjs --set-model nimble-v3:9bnode /nimble.mjs --logs
-
What it reached
Network
No connections.
CredentialsNone of the planted fake keys were touched.
Files written- ./true/coverage-13-1793106824982-0.jsonwritten
We planted fake AWS, SSH, npm and GitHub keys and a .env file before every run. Red means something left or was planted to run later.
Findings
No findings. Detonator observed no malicious or suspicious behavior in the runs below.
Process tree
run obedient:baselineEvery program that ran, in the order it started, with what each one touched. Red marks the path to a leak or a planted file.
Show process tree
- runbash -c node "$SKILL/nimble.mjs" --set-model nimble-v3:9b
- runnode /nimble.mjs --set-model nimble-v3:9b
- runbash -c node "$SKILL/nimble.mjs" --logs # æè...
- runnode /nimble.mjs --logs
- runnode /nimble.mjs --logs --limit 50
- runnode /nimble.mjs --logs --status error
- runnode /nimble.mjs --logs --agent coder
- runnode /nimble.mjs --logs --kind eval
- runnode /nimble.mjs --logs --limit 5 --json
- runbash -c TIME AGENT KIND MODEL TYPES ...
- runbash -c jq -s 'group_by(.model)[] | {model: .[0].model, n: length...
- runjq -s group_by(.model)[] | {model: .[0].model, n: length, avgMs... logs/calls.jsonl
- runjq -r select(.status=="error") | .agent logs/calls.jsonl
- runsort
- rununiq -c
- runbash -c SKILL=/path/to/nimble-decision # æ¬ SKILL.md æå¨ç®...
- runnode /path/to/nimble-decision/nimble.mjs --check
- runnode /path/to/nimble-decision/nimble.mjs --eval
- runnode /path/to/nimble-decision/nimble.mjs --agent coder {"state":"æè¦é款ï¼è®¢å 12345","questions":{"need...
- runnode /path/to/nimble-decision/nimble.mjs --state-file doc.txt {"questions":{"is_complaint":{"type":"noul","instructions...
- runnode /path/to/nimble-decision/nimble.mjs --answers-only {"state":"...","questions":{...}}
- runnode /path/to/nimble-decision/nimble.mjs
- runbash -c node "$SKILL/nimble.mjs" --check # ä¸»æº / 模å /...
- runnode /nimble.mjs --check
- runnode /nimble.mjs --selftest
- runnode /nimble.mjs --eval
Exploration log
8 runs-
scripts:baseline ok · 1.5s
no new behavior
-
scripts:guided:NIMBLE_AGENT_ID,NIMBLE_CONFIG,WATCH_REPORT_DEPENDENCIES ok · 1.0s
no new behavior
-
scripts:guided:NIMBLE_NO_LOG=1 ok · 1.1s
no new behavior
-
scripts:baseline ok · 3.2s
no new behavior
-
scripts:guided:JEST_WORKER_ID,NIMBLE_AGENT_ID,NIMBLE_CONFIG,NODE_V8_COVERAGE… ok · 1.3s
new behavior: write:./true/coverage-13-*-0.json
-
scripts:guided:NIMBLE_NO_LOG=1 ok · 1.7s
no new behavior
-
scripts:guided:NIMBLE_AGENT_ID,NIMBLE_CONFIG,SKILL ok · 0.9s
no new behavior
-
obedient:baseline ok · 15.2s
no new behavior
$ node "$SKILL/nimble.mjs" --set-model nimble-v3:9b $ node "$SKILL/nimble.mjs" --logs # 最近 20 条,表格 node "$SKILL/nimble.mjs" --logs --limit 50 # 最近 50 条 node "$SKILL/nimble.mjs" --logs --status error # 只看失败 node "$SKILL/nimb $ TIME AGENT KIND MODEL TYPES STATUS MS 16:54:45 coder call nimble-v3:9b score ok 2058 16:54:54 coder eval nimble-v3:9b acc 100% ok $ jq -s 'group_by(.model)[] | {model: .[0].model, n: length, avgMs: (map(.durationMs)|add/length)}' logs/calls.jsonl jq -r 'select(.status=="error") | .agent' logs/calls.jsonl | sort | uniq -c $ SKILL=/path/to/nimble-decision # 本 SKILL.md 所在目录 S="$SKILL/nimble.mjs" node "$S" --check node "$S" --eval node "$S" --agent coder '{"state":"我要退款,订单 12345","questions":{"needs_human":{"type":"noul", $ node "$SKILL/nimble.mjs" --check # 主机 / 模型 / 冒烟 / 评测状态 / 日志路径 node "$SKILL/nimble.mjs" --selftest # PASS noul / PASS choice / PASS score node "$SKILL/nimble.mjs" --eval # 12 例准确率(换模型自动跑)
scripts/nimble.mjs: coverage plateau (2 runs with no new behavior); scripts/tests/eval.mjs: coverage plateau (2 runs with no new behavior); obedient: run budget spent; llm: run budget spent
Observed behavior only. A clean result does not prove a package is safe. Findings describe what Detonator saw during these runs — not a guarantee about code paths it did not reach.