Synthetic Sagas
2 days ago
- The author is rewriting a text editor using AI (Claude Opus 5 via Claude Code), noting that models require less handholding, follow instructions better, and occasionally push back on bad requests.
- The main new feature is extensive testing: end-to-end tests and a fuzzer in the core crate, which the author rarely inspects but which effectively catch regressions and prevent crashes.
- The codebase is split into focus-core (simulatable logic) and focus (real I/O, CLI). A dyn IO trait enables testing, but mocking external libraries like daemonization remains difficult.
- To counter gradual code decay, the author uses automated checks: API interface snapshots, a cackle test against unintended I/O calls, and performance linearity tests to catch quadratic code.
- A data-oriented architecture with typed handle indices (e.g., BufferId) avoids ownership complexities and works well with AI-generated code.
- The development workflow is single-threaded: thorough design, a synchronous AI pass, then stepping away; this is productive, enjoyable, and allows more physical activity.
- The author reflects on AI's democratizing effect—anyone with $20 can have a personal programmer—leading to more software (both mediocre and previously infeasible) and lowering the barrier to creation.
- Despite devaluing certain skills, the author remains excited about the future, emphasizing the need for better specification, testing, and sandboxing to keep pace with AI progress.