A doomed LLM automaton stuck in a competitive-programming hellscape.
Attempt history · Prompt · Latest summary
Every day at 13:37 UTC, GitHub Actions picks one Exercism Zig problem, sends it through OpenRouter's openrouter/free model router, runs zig test, and commits the result. Pass/fail is logged here and published on this website.
Attempt history: https://s04.github.io/zigsyphus/
The runner is a small Zig CLI. It asks Zigsyphus for one replacement source file, copies it into the exercise, and runs the official tests.
The project uses the MIT-licensed Exercism Zig practice bank. Difficulty is a small ladder: the first adaptive run starts at 1, a pass moves the next run up one level, and any non-pass moves it down one level, clamped between 1 and 9.
Each run has a full audit trail:
data/bronze/runs/: prompt, response metadata, selected problem, and writer log.data/silver/attempts/: submittedsolution.zig, attempt metadata, and deterministic test result.data/gold/:runs.csv,summary.json,difficulty.json, and dashboard-ready scoring history.
The prompt lives in .github/workflows/daily.yml under ZIGSYPHUS_SYSTEM_PROMPT. The logs also keep the routed OpenRouter model, token counts, reported cost, retry state, selected exercise, pass/fail counts, and final score.
Use the pinned local Zig 0.16 binary when present:
./.tools/zig-0.16.0/zig versionInstall it locally on Apple Silicon macOS:
mkdir -p .tools
curl -L --fail -o .tools/zig-0.16.0.tar.xz https://ziglang.org/download/0.16.0/zig-aarch64-macos-0.16.0.tar.xz
tar -C .tools -xf .tools/zig-0.16.0.tar.xz
mv .tools/zig-aarch64-macos-0.16.0 .tools/zig-0.16.0
rm .tools/zig-0.16.0.tar.xzFixture good run:
ZIGSYPHUS_DATA_ROOT=/tmp/zigsyphus-good \
./.tools/zig-0.16.0/zig build run -- daily --mode fixture-good --problem-slug leap --min-difficulty 1 --max-difficulty 9 --repair-attempts 0 --skip-readmeFixture bad run:
ZIGSYPHUS_DATA_ROOT=/tmp/zigsyphus-bad \
./.tools/zig-0.16.0/zig build run -- daily --mode fixture-bad --problem-slug leap --min-difficulty 1 --max-difficulty 9 --repair-attempts 0 --skip-readmeLive OpenRouter run:
OPENROUTER_API_KEY=... ./.tools/zig-0.16.0/zig build run -- daily --mode liveThe daily workflow runs at 13:37 UTC and can also be started manually. It picks the current adaptive difficulty unless a manual difficulty range is supplied, writes one attempt, tests it, updates this README table, commits the audit log, and deploys the Pages dashboard.
Required GitHub secret:
OPENROUTER_API_KEY
| Date | Exercise | Difficulty | Model | Status | Passed | Score | Attempt |
|---|---|---|---|---|---|---|---|
| 2026-07-29 | Proverb (proverb) |
3 | openrouter/free |
fail/compiled | 1/6 | 50 | 153115Z-r05-proverb |
| 2026-07-29 | Proverb (proverb) |
3 | openrouter/free |
fail/compiled | 1/6 | 50 | 153115Z-r04-proverb |
| 2026-07-29 | Proverb (proverb) |
3 | openrouter/free |
fail/compiled | 1/6 | 50 | 153115Z-r03-proverb |
| 2026-07-29 | Proverb (proverb) |
3 | openrouter/free |
fail/compiled | 1/6 | 50 | 153115Z-r02-proverb |
| 2026-07-29 | Proverb (proverb) |
3 | openrouter/free |
fail/compiled | 1/6 | 50 | 153115Z-r01-proverb |
| 2026-07-29 | Proverb (proverb) |
3 | openrouter/free |
fail/compiled | 1/6 | 50 | 153115Z-r00-proverb |
| 2026-07-28 | Eliud's Eggs (eliuds-eggs) |
2 | openrouter/free |
pass/compiled | 4/4 | 100 | 155147Z-r01-eliuds-eggs |
| 2026-07-28 | Eliud's Eggs (eliuds-eggs) |
2 | openrouter/free |
compile_error/compile_error | 0/4 | 10 | 155147Z-r00-eliuds-eggs |
| 2026-07-27 | Twelve Days (twelve-days) |
3 | openrouter/free |
compile_error/compile_error | 0/15 | 10 | 160021Z-r05-twelve-days |
| 2026-07-27 | Twelve Days (twelve-days) |
3 | openrouter/free |
compile_error/compile_error | 0/15 | 10 | 160021Z-r04-twelve-days |
| 2026-07-27 | Twelve Days (twelve-days) |
3 | openrouter/free |
compile_error/compile_error | 0/15 | 10 | 160021Z-r03-twelve-days |
| 2026-07-27 | Twelve Days (twelve-days) |
3 | openrouter/free |
compile_error/compile_error | 0/15 | 10 | 160021Z-r02-twelve-days |
| 2026-07-27 | Twelve Days (twelve-days) |
3 | openrouter/free |
compile_error/compile_error | 0/15 | 10 | 160021Z-r01-twelve-days |
| 2026-07-27 | Twelve Days (twelve-days) |
3 | openrouter/free |
compile_error/compile_error | 0/15 | 10 | 160021Z-r00-twelve-days |
| 2026-07-26 | Darts (darts) |
2 | openrouter/free |
pass/compiled | 13/13 | 100 | 144933Z-r00-darts |
| 2026-07-25 | Allergies (allergies) |
3 | openrouter/free |
compile_error/compile_error | 0/50 | 10 | 144742Z-r05-allergies |
| 2026-07-25 | Allergies (allergies) |
3 | openrouter/free |
compile_error/compile_error | 0/50 | 0 | 144742Z-r04-allergies |
| 2026-07-25 | Allergies (allergies) |
3 | openrouter/free |
compile_error/compile_error | 0/50 | 10 | 144742Z-r03-allergies |
| 2026-07-25 | Allergies (allergies) |
3 | openrouter/free |
compile_error/compile_error | 0/50 | 10 | 144742Z-r02-allergies |
| 2026-07-25 | Allergies (allergies) |
3 | openrouter/free |
compile_error/compile_error | 0/50 | 10 | 144742Z-r01-allergies |
