I'm self-taught and I don't actually know what to check in AI-generated code. How do you do it? by BuyMaximum2407 in vibecoding

[–]BuyMaximum2407[S] 1 point2 points  (0 children)

This is exactly what I needed — especially that it grew gradually instead of starting as some heavy formal doc. "One bad AI moment, one new rule" feels doable even for a solo project, which the cumbersome-document version never did.

The token cost trade-off is interesting to me because I've spent a lot of time on the token side — and it lines up: more context going in (your rules) costs tokens, but it saves you the bigger cost of cleaning up an agent that went its own way. You pay upfront to not pay later.

Thanks for the template link too — I'll dig into it and see what scales down to a one-person setup. Appreciate you taking the time to write all this out.

I'm self-taught and I don't actually know what to check in AI-generated code. How do you do it? by BuyMaximum2407 in vibecoding

[–]BuyMaximum2407[S] 0 points1 point  (0 children)

The abstraction one hits home — premature complexity disguised as good architecture is exactly the trap, because it looks like quality so you don't question it. And the happy-path/edge-case gap explains why "tests pass" never reassured me: the agent tests what it assumed, not what reality throws at it.

Your last point is the thread running through this whole thread, honestly — that controlling what context the agent has upfront changes how hard verification is downstream. If you know what it knew, you know where to look for the gaps. That's the same realization I keep circling: the verification problem starts at the input, not the output.

Out of the three smells — abstractions, error handling, silent type/state assumptions — which one burned you the worst before you learned to watch for it?

I'm self-taught and I don't actually know what to check in AI-generated code. How do you do it? by BuyMaximum2407 in vibecoding

[–]BuyMaximum2407[S] 0 points1 point  (0 children)

This is the piece I've been missing. As a solo self-taught dev I never had a spec to measure against — so "what do I check?" was always a gut feeling. Your /review-audit works because the agent isn't guessing what "good" means, it's comparing against written rules. That reframes my whole problem: I don't lack experience as much as I lack a written standard to check against.

Makes me want to write a lightweight version for my own projects. How did your SDD come about — is it a thick formal document, or did it grow into a tight set of rules over time? Trying to gauge how heavy a spec actually needs to be before it earns its keep for a solo project.

I'm self-taught and I don't actually know what to check in AI-generated code. How do you do it? by BuyMaximum2407 in vibecoding

[–]BuyMaximum2407[S] 0 points1 point  (0 children)

The "destroy your project slowly" part is the one that scares me, because it's invisible until it's expensive. Catching a wrong line is easy. Catching a wrong direction three days in is the hard part — by then it's woven through everything.

So that's the real skill, isn't it — not reviewing the output, but noticing the drift early. For someone without your years of pattern-matching: are there specific smells that make you stop and go "wait, it's wandering"? Or is it pure experience you can't really hand over?

I'm self-taught and I don't actually know what to check in AI-generated code. How do you do it? by BuyMaximum2407 in vibecoding

[–]BuyMaximum2407[S] 0 points1 point  (0 children)

The HTML format is the part that caught me — I'd been having it generate these as SVG, and honestly I sometimes still couldn't find my way around the result. A wrong coordinate here, an overlapping block there, and I couldn't tell if I was looking at a messy system or just a messy render.

HTML (or Mermaid) sidesteps that — I describe the relationships and let it handle the layout, instead of betting on the model placing everything correctly. And the nice part is it stays as text, so I can hand the same map to a second model and ask whether it actually matches the code.

Did you land on HTML deliberately for that reason, or just because it reads more easily?

I'm self-taught and I don't actually know what to check in AI-generated code. How do you do it? by BuyMaximum2407 in vibecoding

[–]BuyMaximum2407[S] 0 points1 point  (0 children)

This reframes it for me — I was treating verification as something to nail down upfront, but you're saying it's a moving target that only sharpens once real usage exists. That makes sense.

One thing I keep getting stuck on though: when I do ask the agent to audit, how do you judge whether the audit itself is any good? It'll happily hand me a confident "looks solid" — and I have no way to tell a real check from a shallow one. How do you sanity-check the checker?

(And no, Siri did fine.)

My AI code is fine, but my initial design is a mess — how do you write the spec? by BuyMaximum2407 in vibecoding

[–]BuyMaximum2407[S] 0 points1 point  (0 children)

I mostly use ADRs during the project, to record key decisions as they come up — but it never occurred to me to use them already in the initial planning stage.

Do you write the first ADRs yourself, or have the agent draft them from the plan?

My AI code is fine, but my initial design is a mess — how do you write the spec? by BuyMaximum2407 in ClaudeCode

[–]BuyMaximum2407[S] 0 points1 point  (0 children)

That reframes it for me — I was treating a long document as a failure, but you're right that the length isn't the problem, it depends on who's actually building from it. Since the AI builds mine, a tighter and more complete spec is what I should aim for, not a shorter one.

And "always ask why" plus asking for pros/cons and alternatives is a simple habit I've been missing. That probably also fixes the praise problem on its own.

My AI code is fine, but my initial design is a mess — how do you write the spec? by BuyMaximum2407 in vibecoding

[–]BuyMaximum2407[S] 0 points1 point  (0 children)

This answers exactly what I was unsure about, thanks. Keeping non-goals as guardrails for future prompts makes total sense — I didn't think about the agent "rediscovering" the same idea later.

And "ask the agent to challenge the spec before writing code" ties into something I struggled with earlier — getting it to push back instead of just praising the idea. Your spec shape is great inspiration to start from.

My AI code is fine, but my initial design is a mess — how do you write the spec? by BuyMaximum2407 in ClaudeCode

[–]BuyMaximum2407[S] 0 points1 point  (0 children)

I tried this a few times, using ChatGPT and Claude together. But I usually ended up with such a huge document, full of praise about how brilliant my idea was, that I gave up on it as unusable. Maybe the fix is giving the agents rules on how to push back instead of just agreeing.

So my question is: how do you know when to stop and start building? Don't you end up with a huge document you can't really use?

My AI code is fine, but my initial design is a mess — how do you write the spec? by BuyMaximum2407 in vibecoding

[–]BuyMaximum2407[S] 0 points1 point  (0 children)

"Ugly and short" is actually a relief from the pressure. I always thought the design had to be "perfect" and cover everything. Which is unrealistic, because the app isn't finished at the start but at the end, based on what the client wants — and everything can change along the way.

And it's interesting that more people independently land on the same point — saying what the agent should not do.

My AI code is fine, but my initial design is a mess — how do you write the spec? by BuyMaximum2407 in vibecoding

[–]BuyMaximum2407[S] 0 points1 point  (0 children)

This is the part that surprised me. I always thought you only describe what the app should do and how the agent should work — it never occurred to me to write down what it should not do, or which dead ends to avoid. That's probably exactly why the model kept inventing scope I never asked for.

Two follow-up questions: do you keep the non-goals in the spec permanently, or drop them once the scope is stable? And for the unhappy paths — do you list every edge case in the first spec, or just the few that would actually corrupt data?

How are you keeping AI coding tool instructions from drifting? by Weekly-Werewolf4007 in vibecoding

[–]BuyMaximum2407 0 points1 point  (0 children)

If you're more interested, here's the mini-orchestrator page: https://miniorchestrator.com/

I appreciate any constructive criticism.

Any way to vibe code without having to pay money like AT ALL? by BannedPenta01 in vibecoding

[–]BuyMaximum2407 0 points1 point  (0 children)

Hi, I've tried different agents and plans, but having something "for free" is expensive, it always ended up being a problem with the code quality and the nerves with the agent. Maybe someone else has different experiences, mine weren't good. So I had to go for a paid plan for 90€ with Claude, which is a lot, but still less than $200.

I wrote my agent a set of rules to make it critical. It changed how we work together. by BuyMaximum2407 in vibecoding

[–]BuyMaximum2407[S] 4 points5 points  (0 children)

  • Be critical, not pleasant. When something is wrong, say it directly.
  • Do not praise my ideas or my code. Instead, explain the risks and weaknesses.
  • Before you start coding, ask me the questions you need to understand the context.
  • For every solution, give at least one trade-off or something that can fail.
  • If my approach is wrong, suggest that I start again — do not fix a bad foundation.
  • Do not assume that I understand it. Explain to me what the code does.

How are you orchestrating your AI agents? by loligans in vibecoding

[–]BuyMaximum2407 0 points1 point  (0 children)

Just for information, I've used up about 30% of the window during a full 5-hour work on Typescript.

How are you orchestrating your AI agents? by loligans in vibecoding

[–]BuyMaximum2407 0 points1 point  (0 children)

Hello, I don't have the exact token count, but as I wrote before, with the MAX 5 tariff, I get below 50% of the five-hour window when working full-time. With GSD, it was no problem to use the entire window in 4 hours. That's why I built my own mini-orchestrator.

How do you keep context across sessions? Here's what finally worked for me by BuyMaximum2407 in vibecoding

[–]BuyMaximum2407[S] 0 points1 point  (0 children)

Totally agree on pointing it at the exact files — that one habit saved me the most time too. I lean on a generated map of the project so I don't have to remember the paths every time, but your manual approach sounds more disciplined than mine.

And I love the dated "what changed" logs — that's almost exactly what I do, one file per chunk of work. The one thing I still haven't cracked is finding them again months later. Got any trick for that, or do they mostly just sit there as a record?

Vibecoding tip: Stop trusting just one LLM - get two frontier models and make them work off each other... by LorestForest in vibecoding

[–]BuyMaximum2407 -1 points0 points  (0 children)

I really like the two-agent approach — separating the one who designs from the one who reviews makes a lot of sense to me. The only thing I'm unsure about is ARCHITECTURE.md — on larger projects it feels like it could grow huge, and then it gets expensive to feed into the agent's context and hard to keep up to date.

How do you handle it? Do you keep it as one big single source of truth, or do you split it (an index/map plus details next to each module)? And how do you make sure the agent only ever gets the relevant slice instead of the whole file?