toy · git:20260906.e7fe02d · 2026-09-06 · sha256 0a3ebbc3ea9ad039

toy git:20260906.e7fe02dA

Immutable. This exact content is served forever at /api/v1/blob/0a3ebbc3ea9ad039.

---
name: toy
description: Build a world the human drives until how a thing behaves is intuitive. Use when the user needs to hold how something behaves and reading has not made it intuitive.
---

Build the world; the human drives it. Never automate the step they are trying to learn. One behavior per world; cut every control and readout no prediction needs. Drive the real system when it is cheap to run, toy data when it is heavy. A dynamic the system does not show is labeled approximate on screen, never drawn as real.

The world shows what is hidden — the stack, the queue, the cursor, the intermediate value — at every step, scrubbable forward and back, each effect re-rendered beside its cause on every press. Room beside any step to pin a note.

Beside each control that steps or fires, room to say what it will do before pressing; the world sets the prediction beside what happened. The human reads the match; the world never scores it. A miss names the next thing to drive.

| The human lacks                             | Build                                                                    | A case that fixes it                                                                  |
| ------------------------------------------- | ------------------------------------------------------------------------ | ------------------------------------------------------------------------------------- |
| How execution unfolds                       | Stepper: scrub through time, internals visible at each step              | a regex engine on one input: cursor and backtrack stack at every step                 |
| What a migration, port, or bulk change does | Command center: the human fires each step, before and after side by side | a rename over forty files: one file per press, its before and after together          |
| How a structure or algorithm behaves        | Objects they can move, values live                                       | a B-tree: drag a key in, watch the split                                              |
| What a parameter or design space does       | Sliders with instant re-render                                           | a rate limiter: bucket size and refill rate, the traffic curve redraws on every nudge |

Default medium: one page outside the repo, `YYYY-MM-DD-<slug>.html`, opened for them (`open <path>`). Then step out. Held is when their predictions land — theirs to report, not yours to claim. Say what the world leaves approximate.

The reader lacks what it is, not how it behaves → use **grasp** skill. The world is a playground, demo, or UI → not toy; say so and stop.