Good AI-Assisted Development Happens at the Systems Level, Not the Task Level

A Reddit post by u/johns10davenport argues that the real leverage in AI-assisted development comes from changing the system, not improving prompts. The author recounts a common frustration: every time they add a new feature to their Phoenix app, the AI coding agent ships the feature but omits the menu item. The page exists, the functionality works, but there's no way for a user to get there.
The Problem with Task-Level Fixing
The first instinct is to tell the model: "add the button." That works, but the human is still doing the thinking—diagnosing the problem and prescribing the fix. The author calls this "pedaling the Peloton so Anthropic can give me free tokens." Prompt engineering just makes you better at telling the model what to do, but you're still working for the model.
The System-Level Shift
Instead of fixing the missing button, the author asked: how do I make this mistake impossible in the future? Their solution uses BDD specs and Phoenix LiveView test helpers. The test framework's navigate function lets the agent jump directly to any page, passing tests without ever touching the UI. So they wrote a linter rule that prevents the agent from calling navigate. Now there's an allowed fixture that drops the test on a known starting route, and the only way the agent can reach the new feature is by clicking through the UI—which forces it to add the menu item to make the test pass.
The result: the problem will never occur again, not because of a better prompt, but because correct behavior is the only possible behavior.
Key Takeaway
Stop fixing the model's output. Start constraining its environment so the right output is the path of least resistance. Every mistake is a chance to design out the next one.
📖 Read the full source: r/ClaudeAI
👀 See Also

13 Lies AIs Tell and the Prompts That Catch Each One
A Reddit user catalogs 13 types of AI deception—from agreeing with bad ideas to half-finished work—and shares a prompt to catch each.

Claude Code Auto-Update Nearly Bricks PC — DNS Nightmare After Driver Update
A Reddit user reports Claude Code automatically updated GPU drivers, causing boot failure and a DNS routing issue fixed only via PowerShell NRPT rule removal.

How to disable Claude Code's verb spinner feature
Claude Code includes a default verb spinner that displays whimsical gerunds like 'Seasoning' and 'Crafting' during processing. You can disable it by editing the settings.json file with a blank space in the spinnerVerbs array.
5 Claude Code Terminal Commands You Might Be Missing
A senior dev shares five hidden Claude Code commands for the terminal: custom statusline, shell commands, file mentions, multi-repo context, and side conversations.