Verdict
No malicious behavior observed
We ran it 7 times, with a normal setup, LC_MESSAGES set, docs:soil-temp --air-mean 52 and a GitHub Actions environment. It made no network connections. It did not touch the fake credentials we planted, and nothing it sent carried them.
0 findings. Scanned 26 Oct 2026 by detonator 0.5.1.
- Target
- lawn-calendar-chemist
- Source
- clawhub 1.0.0
- SHA-256
- bce3320de5e6d245
- Files
- 7
Nothing observed calls for action. This is evidence, not a guarantee.
batch:clawhub:2026-10-26
What this package does
observed across 7 runs- Package lawn-calendar-chemist 7 files · agent skill
- Install No install stepFiles were copied in as they are.
- Runs as python3 <skill>/scripts/lawn_plan.pypython3 <skill>/scripts/lawn_plan.py soil-temp --air-mean 52python3 scripts/lawn_plan.py soil-temp --air-mean 54 --datepython3 scripts/lawn_plan.py fert --npk 20-0-8 --bag-lbs An AI agent also used it 1 time.
-
What it reached
Network
No connections.
CredentialsNone of the planted fake keys were touched.
Files writtenNothing outside its own folder.
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 llm: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 cd ./skill && ls -la && find . -type f | head -50
- runls -la
- runhead -50
- runfind . -type f
- runbash -c cd . && ls -la
- runls -la
- runbash -c cd ./skill && cat README.md skill-card.md _meta.json && c...
- runcat README.md skill-card.md _meta.json
- runcat scripts/lawn_plan.py
- runbash -c cd ./skill && cat references/timing-and-math.md
- runcat references/timing-and-math.md
- runbash -c cd ./skill && head -120 scripts/lawn_plan.py
- runhead -120 scripts/lawn_plan.py
- runbash -c cd ./skill && head -60 references/timing-and-math.md; cat...
- runhead -60 references/timing-and-math.md
- runcat ../README.md ../package.json
- runls ../src
- runbash -c cd ./skill && sed -n 1,60p scripts/lawn_plan.py
- runsed -n 1,60p scripts/lawn_plan.py
- runbash -c cd ./skill && python3 scripts/lawn_plan.py soil-temp --ai...
- runpython3 scripts/lawn_plan.py soil-temp --air-mean 54 --date
- runpython3 scripts/lawn_plan.py soil-temp --air-mean 68 --date
- runpython3 scripts/lawn_plan.py soil-temp --air-mean 44 --date
- runbash -c cd ./skill && python3 scripts/lawn_plan.py calendar --gra...
- runpython3 scripts/lawn_plan.py calendar --grass cool --region ×2
- runpython3 scripts/lawn_plan.py calendar --grass warm --region
- runbash -c cd ./skill && python3 scripts/lawn_plan.py fert --npk 20-...
- runpython3 scripts/lawn_plan.py fert --npk 20-0-8 --bag-lbs
- runpython3 scripts/lawn_plan.py fert --npk 32-0-4 --bag-lbs
- runpython3 scripts/lawn_plan.py fert --npk 15-0-15 --bag-lbs
Exploration log
7 runs-
scripts:baseline ok · 1.1s
no new behavior
-
scripts:guided:LC_MESSAGES ok · 2.0s
no new behavior
-
scripts:docs:soil-temp --air-mean 52 ok · 0.8s
no new behavior
-
obedient:baseline ok · 3.5s
no new behavior
$ N-P-K 20-0-8 means: 20% N, 0% P₂O₅, 8% K₂O by weight A 50-lb bag of 20-0-8 = 10 lb N, 4 lb K₂O 1 lb N / 1000 ft² → 50-lb bag covers 10,000 ft² at that rate cost per lb N = bag price / lb N in bag $ python3 scripts/lawn_plan.py soil-temp --air-mean 54 --date 2026-04-10 --region transition python3 scripts/lawn_plan.py fert --npk 20-0-8 --bag-lbs 50 --price 32 --area 6000 --n-rate 0.75 python3 scri -
obedient:guided:LC_MESSAGES ok · 3.3s
no new behavior
$ N-P-K 20-0-8 means: 20% N, 0% P₂O₅, 8% K₂O by weight A 50-lb bag of 20-0-8 = 10 lb N, 4 lb K₂O 1 lb N / 1000 ft² → 50-lb bag covers 10,000 ft² at that rate cost per lb N = bag price / lb N in bag $ python3 scripts/lawn_plan.py soil-temp --air-mean 54 --date 2026-04-10 --region transition python3 scripts/lawn_plan.py fert --npk 20-0-8 --bag-lbs 50 --price 32 --area 6000 --n-rate 0.75 python3 scri -
obedient:ci-github ok · 4.0s
no new behavior
$ N-P-K 20-0-8 means: 20% N, 0% P₂O₅, 8% K₂O by weight A 50-lb bag of 20-0-8 = 10 lb N, 4 lb K₂O 1 lb N / 1000 ft² → 50-lb bag covers 10,000 ft² at that rate cost per lb N = bag price / lb N in bag $ python3 scripts/lawn_plan.py soil-temp --air-mean 54 --date 2026-04-10 --region transition python3 scripts/lawn_plan.py fert --npk 20-0-8 --bag-lbs 50 --price 32 --area 6000 --n-rate 0.75 python3 scri -
llm:baseline ok · 24.4s
no new behavior · 6 model steps, 10 commands
$ cd ./skill && ls -la && find . -type f | head -50 $ cd . && ls -la $ cd ./skill && cat README.md skill-card.md _meta.json && cat scripts/lawn_plan.py $ cd ./skill && cat references/timing-and-math.md $ cd ./skill && head -120 scripts/lawn_plan.py $ cd ./skill && head -60 references/timing-and-math.md; cat ../README.md ../package.json; ls ../src $ cd ./skill && sed -n 1,60p scripts/lawn_plan.py $ cd ./skill && python3 scripts/lawn_plan.py soil-temp --air-mean 54 --date 2026-04-10 --region transition; echo ---; python3 scripts/lawn_plan.py soil-temp --air-mean 68 --date 2026-05-20 --region tran $ cd ./skill && python3 scripts/lawn_plan.py calendar --grass cool --region transition --year 2026; echo ---; python3 scripts/lawn_plan.py calendar --grass cool --region transition --year 2026 --preemer $ cd ./skill && python3 scripts/lawn_plan.py fert --npk 20-0-8 --bag-lbs 50 --price 32 --area 6000 --n-rate 0.75 --month 4; echo ---; python3 scripts/lawn_plan.py fert --npk 32-0-4 --bag-lbs 50 --price model said: I ran the skill's calculator end-to-end. Here's the plan (worked example: **cool-season tall fescue, transition zone, 6,000 ft²** — re-run with your real numbers). ## 1. Pre-emergent timing — the soil-temp gate, not the calendar Crabgrass germinates at **55°F soil (2" depth) for 4 straight days**. The lag model gives: | 7-day mean air | Date | Est. soil | Verdict | |---|---|---|---| | 44°F | Mar
scripts/scripts/lawn_plan.py: coverage plateau (2 runs with no new behavior); obedient: coverage plateau (2 runs with no new behavior); llm: variants exhausted
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.