Every Ugh Is an Agent Spec
turns repeated operator friction into a crisp discovery trigger for joelclaw agent-loop candidates
Tiny post, sharp heuristic: Pauline P. Narvas says, “If you find yourself saying, ‘Ugh I hate doing this part’ — build an agent.” That’s the whole thing. No manifesto required.
The clever bit is treating irritation as signal instead of vibes. “Ugh” marks a repeated, bounded, emotionally expensive step. That’s often enough shape to start with: name the trigger, capture the inputs, define the done state, and let the machine chew on the boring part.
For joelclaw, this maps straight onto agent loops and agent-first event-driven workflows. The useful pattern isn’t “automate everything.” That’s how you make automation soup. The useful pattern is annoyance-driven scoping: if the same little task keeps making you mutter under your breath, it probably deserves a tiny agent with a receipt.
Key Ideas
- Irritation is product discovery: the repeated “ugh” is evidence that a workflow has enough pain and frequency to deserve automation.
- Agents need bounded jobs: the hated “part” should become a trigger, input contract, success condition, and failure path.
- Avoid automation soup: joelclaw benefits more from small task agents than giant vague assistants.
- Receipts matter: an agent that handles annoying work should leave behind logs, artifacts, or reviewable output so the operator can trust the handoff.
- Developer experience is workflow gardening: Pauline P. Narvas frames agent work as removing friction from the path, not as magic replacement bullshit.
Links
- Source post on X
- Pauline P. Narvas on X
- Pauline P. Narvas personal site
- OpenAI — listed in Pauline’s profile as current Developer Experience work
- Vercel — listed in Pauline’s profile as prior work
- joelclaw
- ADR-0015: Loop Architecture TDD Roles
- ADR-0217: Agent-First Event-Driven Workflows