Date: 2026-08-20 Experiment: How fast can an AI agent (Claude Code, model Fable 5) go from an empty folder to a working, verified phonics-teaching AI, using smallest-ai-built-from-the-ground-up and smallest-ai-tutorial as the only instructions?
Result: 8 minutes 50 seconds from session start to trained, gradient-check-verified baseline models on disk.
Source of evidence: file modification times
(stat -f "%Sm %N" -t "%H:%M:%S"), captured in-session. Session start time
comes from the session log (10:45:44); the empty project folder was created
at 10:44.
| Clock | Elapsed | Milestone |
|---|---|---|
| 10:45:44 | 0:00 | Session start, empty folder, single prompt given |
| 10:45-10:50 | 0:00-4:17 | Cloned both repos, read READMEs, data formats, MLP/LSTM reference implementations |
| 10:50:01 | 4:17 | Phonics data copied into project |
| 10:50:28 | 4:44 | SPEC.md written (architecture, targets, verification plan) |
| 10:50:53 | 5:09 | nn.py: linear algebra + MLP with hand-written backprop |
| 10:51:28 | 5:44 | lstm.py: LSTM cell with full BPTT + gradient clipping |
| 10:52:37 | 6:53 | data.py, rules.py, models.py complete |
| 10:52:54 | 7:10 | Test suite written (15 tests incl. numerical gradient checks) |
| ~10:53:00 | ~7:16 | First test run: 15/15 passed, gradient checks green on first execution |
| 10:53:51 | 8:07 | train.py written |
| 10:54:34 | 8:50 | Both models trained, evaluated, saved (training_summary.json) |
| 10:54:11-10:55 | 8:27-9:30 | tutor.py CLI written and verified (sound-out, quiz, lesson) |
| 10:55:12 | 9:28 | README.md with measured results |
- Reading the tutorials: ~4.5 minutes (both repos, ~275 files scanned, key chapters read in full)
- Writing spec + all code + tests: ~4 minutes
- Model training: 16.6 seconds total (MLP 1.2s, LSTM 15.4s)
- Debugging: zero. Backprop and BPTT numerical gradient checks passed on the first test run. One static typo (an undefined constant name) was caught and fixed by inspection before any code was executed.
| Artifact | Measured result |
|---|---|
| MLP letter -> phoneme (1,656 params) | 26/26 letters correct |
| LSTM CVC blender w/ BPTT (8,245 params) | 100% phoneme + word accuracy, train (48 words) and held-out (12 words) |
| Symbolic rule engine | digraphs, silent-e, vowel teams (unit tested) |
| WordReader neuro-symbolic router | routing verified |
| 15 pytest tests | all green, 1.3s |
| tutor.py CLI | 3 modes, all verified |
MacBook Pro M3 Max, macOS (Darwin 25.5.0), CPython 3.12, pure standard library at runtime (pytest for tests only). Seed 42 throughout. Full configs in models/training_summary.json.
- Single run, one machine, one agent. No variance estimate across attempts.
- Timestamps are file mtimes; the session start is precise to the second but the repo-reading phase boundary is inferred from the first file write.
- The domain is deliberately small (60 CVC words, deterministic letter-to-phoneme mapping), which is exactly why the reference repos chose it. The 100% held-out accuracy demonstrates generalization to unseen letter combinations, not to unseen mappings.
- This measures execution speed against excellent instructions. The two tutorial repos (written first, over a much longer period) are what made the 9-minute build possible.