rot13

ROT13 rotates each ASCII letter 13 places; non-letters pass through. It is its own inverse — running it twice returns the original text — so the same box both encodes and decodes.

The pure transform lives in wal-sh.tools.rot13.core (host-neutral .cljc, tested on the JVM with test.check: the involution (rot13 (rot13 s)) = s is the defining property). The browser adapter is wal-sh.tools.rot13.browser. First tool in the wal-sh.tools.<slug> tier — small, single-purpose client-side SPAs. Build: gmake tools-cljs; debug in isolation: gmake dev-tool TOOL=rot13.