Live data from Hacker News

ASCII-Driven Development

medium.com

51–60 of 97 posts

Re: ASCII-Driven Development

#51
Somewhat related I suppose, for reasons I am often in a situation where I can use matplotlib and make a plot then save it and then SCP it locally to view it. I got tired of that and started making command line plots so I can see the stuff I want right there, it's not insanely detailed but for my needs it's been fine. This def got me thinking about it lol

Re: ASCII-Driven Development

#52
post #6

Author here. High-level: - Problem: AI UI generators are high-fidelity by default → teams bikeshed aesthetics before structure is right. - Idea: use ASCII as an intentionally low-fidelity “layout spec” to lock hierarchy/flow first. Why ASCII: - forces abstraction (no colors/fonts/shadows) - very fast to iterate (seconds) - pasteable anywhere (Slack/Notion/GitHub) - editable by anyone Workflow: - describe UI → generat…

The problem with ASCII-driven development for me is that emoji ruin the alignment. It’d be nice if they could be forced into monospaced. Emoji aren’t ASCII so maybe that’s the problem too.

Seems like there's more going on with it than that, it's also affecting the lines that don't have emoji. It kind of looks like it assumes every vertical bar takes up two characters so a space before the bar is missing. Except not always.

Example 2 has five boxes in a row each with a number 1 to 5 in them, and each box is missing a single space before the second vertical bar... I think the problem might be centering, where it needs to distribute 3 spaces on either side of the text, divides by 2 to get 1.5, then truncates both sides to 1, instead of doing 1 on one side and 2 on the other. Doesn't quite fit with how many are missing in [PRODUCT IMAGE] right above that, though.

(Also I'm just eyeballing it from mobile so I may be wrong about exact counts of characters)

Re: ASCII-Driven Development

#53
post #49

Earlier quoted context omitted.

Can you explain tmux's contribution here? I'm confused why this process wouldn't work just the same if CC directly executed the program rather than involving tmux. Are you just using tmux to trick the program under test into running its TUI instead of operating in a dumb-stdout mode?

It allows Claude to take screenshots and generate keyboard inputs. It's like TUI Playwright.

Maybe I'm not understanding it (totally possible!) but could Claude just do that by reading standard out and writing to standard in?

Re: ASCII-Driven Development

#54
post #50

Earlier quoted context omitted.

The problem with ASCII-driven development for me is that emoji ruin the alignment. It’d be nice if they could be forced into monospaced. Emoji aren’t ASCII so maybe that’s the problem too.

Unicode emojis aren’t ascii . Long before Unicode points were assigned we were using emojis in text communication in email and sms. you can always be quite expressive with ones like :) :D :-( or even ¯\_(ツ)_/¯ - although not strictly ASCII.

Those are called emoticons, not emoji. "Emoji" came about specifically to distinguish the single-character ones (unicode or proprietary) from what we did before.

Re: ASCII-Driven Development

#55
This type of issue comes up in the video game development world. Perhaps in part due to modern engines being off-the-shelf ready to render high quality assets and assets being so available, either internally or from an asset store. It helped push developers into putting high quality assets into games from the start, skipping the "grey box" steps.

I've had it on a number of projects now where high quality assets were pushed into early builds causing execs eyes to light up as they feel like they're seeing a near final product, blind to the issues and under developed systems below. This can start projects off on bad footing because expectations can quickly become skewed and focus can go to the wrong places.

At one studio there was a running joke about trees swaying because someone had decorated an outdoor level with simulated trees. During an early test the execs got so distracted by how much they swayed and if it was too much or too little that they completely ignored the gameplay and content that was supposed to be under review. This issue repeated itself a number of times to the point where meetings would begin with someone declaring "We are not here to review the trees, ignore the trees!"

I've brought this issue up more recently with the advent of AI, which with things like Sora, the act of creating video clips can be stitched together can look like subjectively exciting movie trailers. This now has people declaring that AI movies are around the corner. To me this looks like the similar level of excitement as seeing the trees sway. An AI trailer looks much closer to a shipping product than it should be because the underlying challenges are far from solved; nothing is said about the script, pacing, character development, story etc...

Re: ASCII-Driven Development

#56
post #49

Earlier quoted context omitted.

It allows Claude to take screenshots and generate keyboard inputs. It's like TUI Playwright.

Maybe I'm not understanding it (totally possible!) but could Claude just do that by reading standard out and writing to standard in?

I had a really hard time getting anything like that to work (you can't just read stdout and write stdin, because you're driving a terminal in raw mode), but it took like 3 sentences worth of Claude prompt to get Claude to use tmux to do this reliably.

Re: ASCII-Driven Development

#58
post #49

Earlier quoted context omitted.

It allows Claude to take screenshots and generate keyboard inputs. It's like TUI Playwright.

Maybe I'm not understanding it (totally possible!) but could Claude just do that by reading standard out and writing to standard in?

Also many CLIs act differently when invoked connected to a terminal (TUI/interactive) vs not. So you’d run into issues there where Claude could only test the non-interactive things.

Re: ASCII-Driven Development

#60
post #56

Earlier quoted context omitted.

Maybe I'm not understanding it (totally possible!) but could Claude just do that by reading standard out and writing to standard in?

I had a really hard time getting anything like that to work (you can't just read stdout and write stdin, because you're driving a terminal in raw mode), but it took like 3 sentences worth of Claude prompt to get Claude to use tmux to do this reliably.

I would love to see your prompt if you ever post it anywhere.
Post reply on HN