4 ms·
Those verbose comments provide context for why something is there way it is, so it can take those decisions in account when making changes in the future.
by skeledrew 2mo ago
Those verbose comments provide context for why something is there way it is, so it can take those decisions in account when making changes in the future.
- rplnt 2mo ago> why something is there way it is It writes out stories describing what isn't there or what used to be there. It's usually not helpful, just noise. It also likes to write it in very verbose AI-styled prose.
- zormino 2mo ago"don't write a goddamn novel" <- I've said this to claude way too many times, nothing you can do actually seems to make it significantly less verbose
- deleted 2mo ago[deleted]
- orwin 2mo agoAnd the way they are written is rather unhelpful: '//this not cosmetic: this css helps the user understand where he should click'. The 'this is not' pattern is useless at best.
- skeledrew 2mo agoIt's likely not helpful to you, but it is to Claude. Basically a memory entry at the exact point of relevance, with the same caveats. One advantage though is it survives cloning, so another using the project benefits.
- rplnt 2mo agoIt's only helpful to Claude in that it wastes more tokens and costs more.
- skeledrew 2mo agoIt does visibly use a few more tokens in the short term. But it hurts Claude's ability in the long term if removed because it has to either think more every time it encounters that section in the code (more invisible thinking tokens used), or there's an increased risk of making a maladaptive change without context. Heck I've been bitten enough times already by it, though more recently it's cross project concern where Claude rediscovers some root cause that was already found and documented (I have it save a centrally-located writeup for things that took serious work to learn, when I remember, but I still need to make that knowledge pool known to other agents/sessions without having to manually prompt each time) elsewhere. Problem is today's LLMs don't have the long term memory that humans have, and so remembering the reason behind a given change/decision has to be preserved in some way if it's non-obvious. Hence why there is {AGENTS|CLAUDE}.md, the auto-memory system, and 1001 variants of memory implementations in the wild. All are trying to ensure that LLMs can have the context they need at the location and time they need it. And you want to block Claude from using a technique that it natively finds helpful.
- fooster 2mo agoNo it doesn’t. The comments are hugely verbose trash that immediately becomes outdated and brittle and confusing for humans and Claude alike.
- skeledrew 2mo agoIf that were the case, the habit would have been trained out of it by the LLM researchers at Anthropic, etc. As for humans... well Idk about you but I'm not reading every line of generated code. I read the live transcript, and only dive in if something is off that the agent isn't resolving.
- fooster 2mo agoI'm certainly reading the code and comments, and I encourage all of my team members to do so. You are assuming that this excessive and nonsensnical comment choice is deliberate. It cannot be, or should not be because it regularly confused our team, and it regularly confuses claude also. Also many many people keep saying the same thing and you keep repeating adnausium the same tired comments. I get it, you think the comments are great and are valuable. Read the entire thread https://news.ycombinator.com/item?id=49393378 https://news.ycombinator.com/item?id=49393378 The concensus in this thread is that for multiple reasons the excessive comments are in fact actively harmful. The listed reasons are: 1. Document the conversation, not the code — narrate the back-and-forth that produced the change rather than what the code does 2. Reference intermediate states that never shipped ("previously X, now Y") 3. Cite plan documents and session artifacts (`per section 2.1 of addition-implementation-plan.md`) meaningless to a future reader 4. Belong in commit messages or PR comments, not source files 5. Go stale immediately — describe a state the code is no longer in 6. Launder incorrect code as intentional, making bugs harder to spot 7. Build a false Chesterton's fence around mistakes 8. Use defensive prose ("this is not cosmetic", "prevents the critical bug that shipped once") that asserts importance instead of conveying information 9. Describe what the code doesn't do — relevant in the moment, not in the codebase 10. Confuse later agent sessions, sending them to read irrelevant files 11. Consume context tokens on every read 12. Force reviewers to manually delete the litter 13. Resist correction — telling Claude to be concise doesn't durably stick Please consider that your opinion may need to adjusted.
- 0x457 2mo agoIt's often is not helpful to claude either because it just confuses it more most of the time.
- skeledrew 2mo agoConfusion usually surfaces immediately, so it can be steered properly. Being sure of a decision that turns out to be wrong usually means a bug that could bite when you least expect it.
- iammrpayments 2mo agoNo it doesn’t. The comments end up complicating simple tasks, and if you open the repo after a week it takes a while to find out why Claude is reading irrelevant files or replying about irrelevant things
- skeledrew 2mo agoIf that happens you do notice that something is off though, and can steer accordingly. Unless you aren't monitoring the agent, which I suspect is the real issue here; people send a prompt, go do whatever else, return and send the next prompt or use/release the artifact, without reviewing the transcript to see how Claude - or whatever agent - did.
- 0x457 2mo agoI don't notice it because, agent running in full-auto until there is a PR to review or decisions to make. If I wanted to go step-by-step, I'd write code myself with LLM auto-complete. I only leave meta-comments in if its actually helpful (i.e. it goes in a wrong direction without it)
- skeledrew 2mo agoI run Claude Code in auto-mode (or bypass when sandboxed) and still am able to monitor the transcript because - possibly by design - it works slowly enough that I can keep up and usually steer; there's no going "step-by-step". In contrast, whenever I use DeepSeek Flash, it goes so fast that I'm unable to keep up, so I primarily prompt it via Claude and also have a separate review in a fresh session, usually also by a Claude.
- amdsn 2mo agoIf they have in mind what I think of when I think of claude comments then frequently they are only relevant to the back and forth that produced the code and are exaggerated to the point of being misleading. A very common example is to land on something that isn't quite right or doesn't quite work, prompt an adjustment, and then the adjustment will have some grandiose prose about "preventing the critical bug that shipped once." People just need to clean up such litter manually but it would be nice if the models generated less of it.
- bryanlarsen 2mo agoThose massive comments generally refer to intermediate states that never shipped, making them utterly useless, noisy and confusing as a permanent artifact. They're sometimes useful to reviewers, so a commit message or pull request comment is much more appropriate.
- eloisant 2mo agoYes I hate when Claude explain in comments how it is now compared to how it was before, or how it could be if a different decision had been taken. Dude, just talk about the current state of the code!
- skeledrew 2mo ago> useless, noisy and confusing That's your perspective. For Claude that's an extension of its thinking, which makes it work better. Just like the person who takes notes so they have references for later. Take it away and you're negatively impacting outcomes.
- bryanlarsen 2mo agoNo, it's the other way around. If you put a comment "don't do foo" in your code, you're biasing future readers, human or artificial, to think about foo when you explicitly want them not to.
- skeledrew 2mo agoIt isn't about making readers not think about foo. It's about biasing thought about foo in a particular direction. And I've seen it work multiple times: agent mentions it encountered X comments in the code and revised its action as a result (yes, I read live agent transcripts).
- fpoling 2mo agoIf one needs to dig history, then git log -p and similar are way more useful and reflect the real history rather than LLM inference about it. Comments reflecting the goal are more useful as neither history nor code itself covers it.
- skeledrew 2mo agoLooking into git history is an active decision that's usually only done after something undesirable happens, and now there's the need to try and find why. Better to have the context passively loaded as part of working with the relevant section of the code, and likely prevent that something from even happening in the first place. Think Chesterton Fence.
- hamandcheese 2mo agoThe story of how the code got to a certain state belongs primarily in git commit messages, not in comments. Comments should serve to aid in understanding of the code, highlight footguns or hidden dependencies, etc. Claude very often litters code with comments about decisions that were made within a single session/pull request, its just noise.