app
Adom TTS: Text to Speech
Public Made by Adomby adom
Adom's shared voice service. Reads your AI's answers back to you while you drive, and renders perfectly-timed voiceover tracks for your demo videos, so you never record your own voice.
← Commit history
v1.9.15 — layout laws: no outer scrollbars ever, pretty scrollbars, gentle LED, header shows thread+desc (mp3 name in tooltip)
2 files changed
+17−18
dev-skills/adom-tts-dev/SKILL.md+17−5@@ -120,11 +120,23 @@ threads) and gets confused about WHO said WHAT. Two mechanisms, keep both: - Intermittent long-say failures with healthy `/health` → duration-correlated proxy timeout: keep synth chunks small (≤360 chars, sequential) — don't raise timeouts.-- UI changes: ralph-test headless (`--window-size=500,820` — headless Chrome- clamps min width to 500, so probe `innerWidth`/`scrollWidth` in-page instead- of trusting narrow screenshots). Media queries go LAST in the stylesheet.- Exercise real event paths (`el.dispatchEvent(new Event('playing'))`) — the- play/pause icon was broken for 9 versions because nothing fired the event.+- UI changes: ALWAYS ralph-test — render the page headless, LOOK at it, and+ run an overflow probe (walk every element's boundingRect vs viewport; report+ anything past the edge). Headless Chrome clamps min window width to 500, so+ for narrower widths embed the page in an iframe of the target width. Media+ queries go LAST in the stylesheet. Exercise real event paths+ (`el.dispatchEvent(new Event('playing'))`) — the play/pause icon was broken+ for 9 versions because nothing fired the event.+- LAYOUT LAWS (user-mandated, non-negotiable):+ 1. The outermost html NEVER shows a horizontal scrollbar. Fluid layout does+ the work (`min-width:0` on flex children, ellipsize long text); the root+ also carries `overflow-x: clip` as a guarantee.+ 2. Scrollbars are always styled — slim (7px), rounded, transparent track,+ subtle teal thumb. Never ship a default chunky scrollbar.+ 3. Motion is GENTLE: no per-poll pulses/jumps (the LED breathes on a ~3s+ ease; it does not blink per heartbeat).+ 4. The header shows the human WHO (thread) + WHAT (desc) — never a raw mp3+ filename except in a tooltip. - Don't churn the player while the user is listening. Diagnose from logs; the system self-heals. Manual mid-playback intervention has itself caused user-audible chaos.
page.json−13@@ -12,7 +12,6 @@ "audio", "demo", "accessibility",- "cli", "open-source", "mit" ],@@ -65,17 +64,5 @@ ], "install": { "binary_name": "adom-tts"- },- "description": "Adom's shared text-to-speech CLI + Playground. Reads your AI answers back to you while driving, and renders perfectly-timed voiceover tracks for demo videos.",- "dependencies": {},- "scripts": {- "install": "./install.sh",- "uninstall": "./uninstall.sh"- },- "needs_sudo": false,- "org": "adom",- "author": {- "name": "John Lauer",- "email": "[email protected]" } }