en un clic
grind-err
Systematically reduce stzlib
Installer avec Codex ou Claude Copiez ce prompt, collez-le dans Codex, Claude ou un autre assistant, puis laissez-le vérifier la page du skill et l'installer pour vous.
Menu
Systematically reduce stzlib
Installer avec Codex ou Claude Copiez ce prompt, collez-le dans Codex, Claude ou un autre assistant, puis laissez-le vérifier la page du skill et l'installer pour vous.
Basé sur la classification professionnelle SOC
| name | grind-err |
| description | Systematically reduce stzlib |
A repeatable loop for reducing #ERR-tagged test failures in
libraries/stzlib/base/test/<topic>/. The point of the skill is
discipline -- the same checks every time so a stray duplicate def
or arity collision doesn't masquerade as a regression.
TOPIC=string # or char, dataset, etc.
DIR=libraries/stzlib/base/test/$TOPIC
# live count of files carrying #ERR headers
grep -l '^#ERR' $DIR/*.ring | wc -l
# error-type distribution (the leverage map)
grep -h '^#ERR' $DIR/*.ring | sort | uniq -c | sort -rn | head -10
Order of preference:
:With/:By/:Of/:StartingAt
unwraps) — usually 5–10 tests share the same fix shape.:First/:Last/:LastChar) —
_ResolveSymPos in stzString already exists; extend its callers.Skip:
test_checker.ring, test_core.ring)
that load the engine themselves — pre-existing, not part of the grind.# for the chosen error type, find call sites
for f in $(grep -l "^#ERR Error (R??)" $DIR/*.ring | head -10); do
n=$(ring "$f" 2>&1 | grep "in file $(basename $f)" | grep -oE "line [0-9]+" | head -1 | awk '{print $2}')
echo "$f L$n: $(sed -n "${n}p" "$f")"
done
Note: run from inside $DIR so relative ../../stzBase.ring resolves.
Edit the offending method(s) in libraries/stzlib/base/string/stzString.ring
(or stzList, stzStringFunc, etc.).
Before saving the final edit, mentally check:
grep -rn "\.MethodName(" libraries/stzlib/base/_aRes_ + (x + y - 1) not _aRes_ + x + y - 1echo 'load "libraries/stzlib/base/string/stzString.ring"' > /tmp/loadcheck.ring
ring /tmp/loadcheck.ring 2>&1 | grep -iE "stzString|error " | head -3
If C22 fires, find the dup with:
grep -niE "^\s*def\s+<methodname>\s*\(" libraries/stzlib/base/string/stzString.ring
cd libraries/stzlib/base/test/$TOPIC
for t in <list of cluster tests>; do
echo "$t : $(ring "$t" 2>&1 | grep -E 'STOPPED|Error|panic' | head -1 | head -c 90)"
done
STOPPED! = pass. Anything else = still failing.
git add libraries/stzlib/base/string/stzString.ring # be specific, not -A
git commit -m "string: <one-line cluster description>
<body with what was fixed and any caveats>
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>"
git push origin main
git push codeberg main # ok to fail; codeberg auth expires
python _annotate_test_errors.py $TOPIC
# ~25 minutes; run with run_in_background:true and continue working
When the background task completes, check the totals tail and the live count. If ERR went UP, something I introduced is wrong — search for case-insensitive duplicate defs first.
One cluster per commit. Don't batch multiple unrelated clusters into a single commit — if one regresses, the others are stuck with it. Small commits = trivial revert.
After each iteration, give the user a one-line update:
Cluster X (Y tests) — fixed Z. ERR floor: A → B. Annotate running in background.
Don't propose options for the next cluster — pick the highest-leverage one and start. The user can interrupt.
substr byte-ops.for X in list iterator form.ring_len() out of for loops.