← Back to context

Comment by rudiksz

1 day ago

Claude is the Deepak Chopra of computer programming. Reviewing PR's created by it is 90% digesting the meaningless word salads in the comments, and the rest is figuring out that it has nothing to do with the code it is commenting.

Because it is somehow incapable of separating the conversation with its human operator from the code it is generating and commenting on. Incidentally, this is also why prompt-injection works.

No one wants to know about the three other approaches tried when reading the first sentence of a function's documentation. No one cares that the implementation was planned in six phases and "Phase 3" will implement this interface in a concrete type. But the LLM internalizes absolutely everything and you have no idea that it is producing slop because you included some "load-bearing" phrase that sent it on some unwanted tangential vector in its latent space. And you will not be able to debug the problem with closed models because you cannot see it referencing this phrase in its internal traces.

I don't understand why this isn't the highest priority for the big labs to fix. This is anti-productive.

  • And worse yet, you'll find the code peppered with comments relating to 'phase 3' and 'section 11', ephemeral stuff that had meaning in the moment but now enshrined forever. And what happens when the LLM stumbles on this and working off a whole different phase 3 or section 11?

    • I turned that to my benefit. I use that design-doc pattern where you first ask it to make a ticket with a formal section list (why, how, etc) and then I ask it to use comments with permalinks. I put it all in policy files. As a result, comments have clickable links to coherently worded tickets.

      Still, this requires a second pass, typically. In its default-mode it often ignores the policies and does all the usual Claude stuff.

  • > No one wants to know about the three other approaches tried when reading the first sentence of a function's documentation.

    Worse: Possibly the three other approaches that weren't actually tried--but are the kinds that someone could easily have put in a similar comment for some similar code.