No AI has been used in this project. How can you tell? README is out of date, there is no documentation and it has 1207 TODO comments.
you are viewing a single comment's thread
view the rest of the comments
[–] 48 points 11 hours ago (16 children)

As an open source project maintainer I can always tell whenever a pull request is AI assisted because no human would ever write full tests for all their pull requests.

  • source
  • hideshow 16 child comments
  • [–] 19 points 10 hours ago (6 children)

    Uh oh, I pretty much always do this. Especially for new-to-me projects. The less confident I am about how the whole thing works, the more I write tests for my change. Should I stop pushing them so people don't think I'm Claude?

  • source
  • parent
  • hideshow 6 child comments
  • [–] 7 points 7 hours ago (1 child)

    I mean, the thing with LLMs is that they tend to overdo it. They test completely unnecessary details. Your idea of having tests for all features is probably still way less tests than the typical LLM-generated commit...

  • source
  • parent
  • hideshow 1 child comment
  • [–] 1 point 6 hours ago

    Look if someone thinks you're Claude because you bothered to test your code that's kind of sucky. But then again the fuck do I know, I don't contribute or maintain anything so that's just an off the cuff take.

    At some point we'll have to acknowledge that AI doesn't mean inherently awful and bad IF it's used responsibly and in a helpful manner. I don't think LLMs are intrinsically bad but the way these companies have been marketing them and trying to make them some technological panacea that'll replace all the people and fix everything is utterly deranged and divorced from reality.

    At the end of the day they're large language models, their job is to come up with what the model "thinks" a person would write as an answer to whatever the prompt is. They're not magic and I'm tired of people anthropomorphizing the shit out of LLM / "AI" and acting like AI output is being delivered by the machine with some sort of logic and knowledge and oversight. It is not.

  • source
  • parent
  • [–] 3 points 9 hours ago (5 children)

    Yep, and that's where I wonder if AI written code might, eventually, be more maintainable... at least by AI.

  • source
  • parent
  • hideshow 5 child comments
  • [–] 10 points 9 hours ago* (last edited 9 hours ago) (1 child)

    From what I've seen and heard, AI seems to do well for test-driven development. That doesn't necessarily translate into good code, but it does translate into tested code.

    At the very least it can translate the documentation of an API into the appropriate tests to verify the documentation is correct, and I'm being quite humbled by that.

  • source
  • parent
  • hideshow 1 child comment
  • [–] 1 point 4 hours ago

    The thing I have to constantly adjust for is: it does things at 10x my speed (on average, some things it does slower, but some things it does 100x faster), and about 80% of my accuracy. So, I have to really aggressively apply the bug catching methodologies that a lot of times I would get away without "because I'm that good..." not really, but there are some things I do that I have justifiably high confidence in, others that definitely need testing which I try to do before handing over to the test team. The reason I don't apply those bug catching methodologies to ALL my code is because that slows me down 3-5x, and it seems to slow down the LLMs about 2-3x, so they're only 3-5x faster than me, on average, when they are writing all the tests and multiply reviewing all the docs and code, compared to me "winging it."

    Where I think all this LLM stuff is going to pay off bigger is 10 years in the future, looking back at old code, yeah all that documentation is a bit of overkill, but we tended to underkill the documentation 10 years ago and we're still not doing as much as we probably should when we do things the "just before LLMs came on the scene" ways.

  • source
  • parent
  • [–] 4 points 8 hours ago (2 children)

    One problem I could see with the aggressive testing (which also happens in human-written codebases) is that it becomes hard to tell essential behaviour apart from details. If you nail everything down with a unit/integration test, nothing can be changed anymore.

    I could imagine that this is part of the reason why LLMs love to duplicate code rather than adjusting existing code.

  • source
  • parent
  • hideshow 2 child comments
  • [–] 2 points 6 hours ago (1 child)

    Well... That's why you test the public API and not the internals. And if you need to change the API you should have a good enough reason that changing the tests is okay too.

  • source
  • parent
  • hideshow 1 child comment
  • [–] 1 point 4 hours ago

    Well, since it's "just" LLM time writing the tests, test the internals too, but clearly mark which tests are the public API and which tests are intnernal, so it knows to never ignore / update a public API test without consultation, but it an internal test fails it can make the call: did this test start failing because I unintentionally broke something, or because the test was testing something that no longer matters - I have seen Claude go both ways, fixing its own mistake due to a test catching an unintended consequence of a change, and also just patching the test because the old test was... old.

  • source
  • parent
  • [–] 4 points 10 hours ago (2 children)

    Libtcod? Cool project. Btw do those generated tests tend to be helpful or confusing?

  • source
  • parent
  • hideshow 2 child comments
  • [–] 8 points 9 hours ago* (last edited 8 hours ago) (1 child)

    The important part is that the tests track regressions and they're helpful for that. After that, it's okay if tests are mostly write-only.

    I've noticed that AI commentary tends to describe what the code is doing verbatim which is better for naming tests and functions rather than writing code comments, docstrings, or change notes. I usually have to fix this public-facing documentation to not talk about library internals which no user of the library would ever care about.

    So far I feel that AI assists are good when you have the time and effort to push back on them, but that isn't an option for all projects, it works well for my own projects which have very few contributors in the first place. For the most part I can treat them with the same scrutiny as human written code. When the person submitting the code is obviously not checking their own code then that's a problem.

  • source
  • parent
  • hideshow 1 child comment