jev-builder-loop
September 16, 2026 ยท View on GitHub
A Grok skill: you write the questions and environment state, Jev returns typed probabilities, you mix them with priors into posteriors, then you act.
Jev is not a coder. The loop exists to cut wasted retries and operator babysitting.
Install
git clone https://github.com/rainbowpuffpuff/jev-builder-loop.git
mkdir -p ~/.grok/skills
ln -sfn "$(pwd)/jev-builder-loop" ~/.grok/skills/jev-builder-loop
Set TYPESAFE_API_KEY. Then at a loop boundary:
python3 ~/.grok/skills/jev-builder-loop/scripts/loop.py < state.json
See SKILL.md for when to call, the question bank, and the mix/policy.
Benchmark
Problem: ship a signed Android App Bundle after a UI change merged to main.
# uses committed Jev answers (no API key)
python3 scripts/benchmark.py
# refresh answers
TYPESAFE_API_KEY=... python3 scripts/benchmark.py --live
Scores land in benchmarks/RESULTS.md.
Before = what a coding agent did (or would do) without this skill.
jev_raw = trust Jev's next_act argmax.
skill = mix + hard-fact veto.
On the first snapshot, before is 1/9 and skill is 6/9 (historical 0/5 โ 4/5). The mix removed wasted Gradle retries and "merge = store ship" errors. Leftover misses are over-cautious gather_facts. Jev argmax scored 9/9 here; one of those hits is ship_or_merge at confidence 0.29, and on a first timeout Jev's repeat_failure noul (0.97) contradicts its own retry_same choice. The mix is the conservative side of that disagreement.
Historical cases are anonymized from a real session (green PR left waiting for review; merge treated as a store ship; Gradle retried with an empty JAVA_HOME; extra upload ping after the operator already had the path). No private paths, keys, or product internals.
License
MIT