How it’s built — 30 Minutes to Clock-out
v1.0 · engine 2 · 2026-11-05
■ Method
- Rule simulation: a deterministic minute-by-minute simulation + comparison with other plans via random sampling and hill-climbing search + LLM writing (next-morning messages)
- Starts 17:30; 20 actions (5 work tasks × ways to handle them, restroom, cake, bag, parcel, tidy desk, leave), 6 surprise tasks. Internal reply 6 min after asking, ordinary message 17:38, urgent finance mail 17:46, printer busy 17:36–17:41, cake 17:45–17:55, boss in the restroom 17:48–17:51, front desk closes 18:00, elevator rush 17:59–18:03 (3 min), boss task (6 min) if you pack before 17:50, client deadline 17:50, bail-out rule 17:58 (all set values)
- Three scores: exit time / work trust (penalties for work left, hand-offs and lateness; set values) / your condition (restroom −35, parcel −15, bag −20; set values)
- No training · simulation in browser JavaScript, comparison data in Node.js 22 · run 20261024T180955Z
- LLM: Cloudflare Workers AI
@cf/openai/gpt-oss-120b / AI writes: three next-morning chat lines / code computes: time, trust, condition, task states, the comparison, and the facts and senders given to the AI. If the AI answer is missing or malformed, hand-written lines are used and labelled
- Office scene: pixel art on a 160×100 grid, drawn in code. The character moves between places as the plan runs
- AI rival: a genetic algorithm (in a browser Web Worker). Genome = action order + methods + the 3 surprise rules. Tournament selection (3), top 4 kept, random-key crossover (order from the parents’ average positions), 6 mutations (swap, move, change method, add/remove, change rule), mutation rate 0.35. Fitness = score (trust + condition − 5 per overtime minute; set values)
- Levels (set values): Intern 24 × 4 generations (seed 1) · Associate 40 × 12 (seed 13) · Manager 120 × 80 (seed 20261025). On screen one dot = one plan; the line on the right = best and mean score per generation
■ Data
- Scenario: hand-written · fictional company, people and mail · one Thursday
- Comparison data: generated here · 3,000,000 random runs (fixed seed) + 1,500,000 hill-climbing runs · 19,497 distinct outcomes · 86 best trade-offs found
- Stored input: your last 6 runs, in this browser only. The messenger sends only a result summary (exit time, trust, condition, task states); nothing is stored on the server (AI answers for the same summary are cached for a day). No personal data
■ Validation
- Condition: each work task gets one method with 85% chance, each personal action 60%, random order, one of 12 rule sets at random
- Random (sample mean): exit 17:57 · work trust 45.9 · condition 67.8 · out before 18:00 77.9%
- Simple rule (the starting plan, inbox order): 18:05 · trust 87 · condition 50 = 112 pts. Sample runs as good or better on every count: 0.05%
- AI rival scores: Intern 160 · Associate 176 · Manager 183 (9,400 evaluations). The Manager matches the best score found in the 3M-sample + 1.5M-search data (183). Over 30 seeds: Intern 151–181 (median 168), Associate 171–183 (178), Manager 181–183 (183)
- Best on-time results found: 17:58 · trust 83 · condition 100 / 17:59 · trust 91 · condition 85 / 17:59 · trust 94 · condition 50. Sample-and-search results, so better plans may exist
- Work trust and condition are values set by game rules, not probabilities
- 45 automated tests pass (simulation 26 · comparison 5 · messenger & Worker 8 · genetic algorithm 6) · English check (2 widths × 14 plans): 0 lines of Korean left · no training, so no train/test split
■ Scope
- One Thursday scenario from 17:30. Plans hold up to 20 actions
■ Sources
- No external data or papers
- Model: OpenAI gpt-oss-120b · Apache 2.0 · Cloudflare Workers AI
- Font: Galmuri (2.40.3) · SIL OFL 1.1 · https://github.com/quiple/galmuri
■ History
- 2026-11-05 · v1.0 · Released