@MatijaSosic@mattpocockuk I know what you mean. I usually follow up with an implementation plan which includes the architectural decisions, where state lives and how data flows.
That gives me an idea of the code itself and improves understanding.
I like Cursor's design mode for this, but for it to be fast, the model has to be fast as well. I'd love to be able to batch tweaks though in one go - since I usually want to tweak multiple things at the same time
Still find prompting UI tweaks to be way too slow compared to direct manipulation like in a design tool.
What's your work flow for fine-tuning UI details in code without being the victim of the brutal agent feedback loop?
@serious_mehta Cursor projects - a main orchestrator agent maintains notes about a bigger project so every new agent has the same context. Or a variation of the same concept
@Armandotrue Aah yes, that's the right way to do it. I've been moving most of my rules to eslint as well. It's a great way to give the agents self verification - they can refactor before you even know it
@Armandotrue yeah, mine is more a judgement call. Personally I don't feel like splitting it up for the sake of it. Do you find agents following your rule as you want it?
@Armandotrue I did that initially when I was starting agentic coding, but I realized I couldn't keep adding stuff to agents md. Then I saw others also doing the same, so settled on this.
codebases have always contained slop. we have always been okay with this because code rarely needs to be perfect, outside of mission critical "hard" (eg embedded) software.
swe is a unique form of engineering because you're often building something that constantly evolves and is almost organic - user tastes change, your mental models evolve, and features come and go.
admittedly, i and many others who've been coding for a long time were initially (like back in 2024) skeptical that agents would write production code. "but what about all the slop that would enter our beautiful codebase?".
well, even before, we had human slop, and there was a lot of it! if we're being truthful, most people call "code i didn't write" slop. the reality is that 99% of people (i include myself in that number) don't even know what Good Code looks like, let alone be capable of writing it. i would propose that Good Code is:
• correct
• bug free
• fast and cost efficient to run
it has always been exceedingly difficult and expensive to write truly Good Code, because for the longest time (maybe @bendlang will change that), code was not something you could cheaply and formally guarantee to have all 3 of these properties. this is why writing hard software is much more difficult and expensive, because depending on the use case, you may only get one chance and so you have to be right from the start.
but the vast majority of software we use does not need to be Good Code to provide value to users. in fact, it is very likely that most software we use is not formally verifiable! we accepted some bugs in exchange for velocity and progress, so we rely on tests and o11y instead and have adopted a more incremental approach. this is a good thing!
agents help us move faster, and if you're open to the idea, are capable of helping us write better code. it won't be Good Code (that is still expensive), but it is likely to be much better on average at scale.
the new craft of swe is to figure out how to do this. it's your job now! if your productivity with and without agents is not significantly different, you're doing something wrong. but it's not too late to embrace it and use it as an opportunity to learn a whole new skill tree
Instructions are a last resort.
Want to enforce a coding standard? Configure or create linting rules.
Want to avoid the LLM copying an existing anti-pattern? Refactor the bad pattern and make it a build error if it happens again.
Want to explain a confusing or insistent design? Fix the design and be consistent (it’s easier than ever with AI!)
Want to run a process after each file edit or when the model stops? Use a hook.
Want to describe a process like opening a PR or doing a code review? Create a skill.
Instructions are rarely the best option.
They’re “soft”.
They bloat context.
They’re often ignored.
And they often paper over problems.
Fix the root causes. Use deterministic tools.
Each time I see the agent make a mistake I ask, “how can I make this mistake impossible?”
Instructions are just a suggestion. The techniques above create *certainty*.
That’s why instructions are a last resort.
I have the same sentiment. While models might not be there yet, but they will eventually from the trajectory.
We're finding ourselves moving up the abstraction ladder bit by bit every day and it can be disorienting.
I try to focus on the new possibilities that offsets this doom
I've been reflecting on this. I'm generally a very optimistic person, but lately I've been feeling a strange sense of sadness that coding has been "solved".
I can, and have, made many caveats to "solved"... but I also know that in five years none of them will matter. It will be solved.
Building things is still fun, but a different kind of fun. It doesn't activate the same parts of my brain as trad coding did.
I think it's okay to mourn the thing we loved doing being different now. Software was the first job to go through the five AI stages of grief, which means we're also some of the first to internalize that this will happen to many other jobs.
It was the best of times, it was the worst of times.
I don't use the "official" plan mode myself, but I do come up with an implementation plan based on grilling session and coding standards.
That has been enough for me
we’re thinking of killing plan mode and using the shift+tab hotkey to adjust effort levels
I don’t think the models need plan mode anymore, but if you’re a plan mode diehard would love to get your feedback on why
@juristr According to @poteto , it's the "Dune" architecture they designed for it - which allows them to ship fast - basically giving hard constraints and verification to the agents and then letting them run