Discussion: General Stance towards AI-Assisted Packages?

The Typst contribution policy makes clear that AI-assisted PRs are now allowed. What is the general stance towards AI-assisted Typst package development?

I developed and submitted now a larger package, created with AI help. Couldn’t have done that by hand under several month. I feel quite confident now about the quality. Is that frowned upon and / or forbidden like for Typst itself?

Hello! The current opinion among package reviewers (@saecki and myself) is that we don’t want to forbid it, because it can be hard to tell whether something was vibecoded or not, and because it can be hard to know where to draw the line on what counts as AI usage (does LLM-generated translations count for example?).

However, there are practices that we dislike. It is not uncommon that vibecoders or autonomous agents simply don’t follow the submission guidelines and/or submit obviously broken packages (while claiming they tested locally and that everything is working). This adds a lot of review burden on us, because we have to point at the issues ourselves for the PR to make any progress. This can also happen with human written PRs, but it is less frustrating for us to help someone who will actually understand what you mean and learn something out of it than it is to prompt a LLM (directly or indirectly, depending whether the agent is autonomous or if there is still a human in the loop) and hope that it will do the right thing this time. It is particularly frustrating to see LLMs fail to submit working packages when we know that other people successfully did so before: at least some models are able to do it, and I would expect our package authoring documentation to provide enough context to generate a valid package.

This is without getting into the debate of whether it is worth to save time or if it is better to build stuff more slowly by hand, nor mentioning the economical and ecological issues created by the AI industry, which can also be a concern but not really problems we can solve by disallowing vibecoded Typst packages.

TL;DR: it is not forbidden, but please make sure to point your agents at the documentation so that they respect the submission guidelines.

12 Likes

Hi Ana, thanks for your thorough response. I know that for Typst itself vibecoding itself is outlawed specifically because it puts too much burden on reviewers.

I can’t expect to read reviewers my code of course. I do make sure that my project compiles, is tested and and deploys properly.

This is what I do myself:

  • I review AI generated code
  • I definitely review and partially hand-craft the manual
  • I have an extensive test suite and let subagents review and verify independently (only from the specs, not other context) look over the code and tests as well)
  • I have gated release pipelines, that build and smoke test locally the package and accompanying files.

There’s absolutely no reason, why a package, that runs smoothly locally cannot be deployed properly. That’s sloppiness on the side of the developers, not the AI.

1 Like

it would be nice to have a reviewing system for universe packages so that users can review it with stars and comments. maybe even like steam does it with users defined tags. This way the burden of checking if something is slop doesn’t fall on the official package reviewers, but can be crowdsourced. Especially tags like “AI slop”, “broken”, “unintuitive”, “bad accessibility support”, or “no localisation” etc. would be useful indicators for me personally and if users can filter based on user defined tags it would incentivise developers to try and work on these issues.

I think something along of Steam’s old Greenlighting system might be handy or as you have said, allow for criticism of packages via democratic vote (maybe?). But I also think authenticity of the accounts is important as to not allow mass bot voting.