Failures Become Guardrails
“It’s only failure if you don’t learn from it.” The viral k10s post is making me think of that famous teacher line again, because it is fine to learn from the same failure in two different ways.
I understand why the k10s post is pushing people back toward writing code by hand. I am taking a different lesson from it: when AI exposes a failure mode, I try to turn it into a guardrail I can enforce.
The failures in the post are real. shvbsle spent 7 months building a Go TUI with Claude, then found the architecture had collapsed into familiar shapes: a 1,690-line model object, a 500-line update function, a 110-branch switch, and positional []string data moving through the app.
It is a good read, and I think it is useful even if you land somewhere else on the conclusion:
https://blog.k10s.dev/im-going-back-to-writing-code-by-hand/
Where I differ is that I do not see those failures as uniquely AI problems.
Humans write god objects. Humans write giant dispatchers. Humans pass around positional arrays and hope nobody changes the column order.
AI can make those mistakes faster. That is exactly why I want my quality gates to get more explicit.
That is why the post was helpful to me. I like hearing where people run into issues because it shows me what my own harness still needs to enforce.
So I created a small ESLint plugin and recommended config for three of these failure modes:
- components with too many hooks
- dispatchers with too many branches
- positional data leaking across boundaries
Then I ran it on my own code.
It found real cleanup work I had been tolerating because the code still worked.
That is the point for me. The guardrail turns a vague review instinct into a repeatable check.
It is not just for AI. I would want to catch these patterns either way. The difference is that agentic work forces me to encode more of my architectural experience into code.
For me, markdown helps. Lint blocks. Types block. Tests block.
That is the middle ground I am trying to build toward between “AI writes everything” and “AI is useless.”
AI is not perfect. It is not for every layer. But when it fails, the failure is data. It tells me what I assumed, what I forgot to enforce, and what should never depend on good intentions again.
That is the power of agentic engineering to me: not trusting the agent more, but forcing more of what you know into systems the agent has to obey.