Yesterday we blogged about updates to our policy and guidance for the use of #AI in submitted patches. https://blog.freecad.org/2026/03/16/rules-regarding-ai-generated-patches/
Rules regarding AI-generated patches

Big and small free/open-source projects have been facing an avalanche of AI-generated patches lately. Some patches are more or less OK, others have convoluted, badly designed code. The net effect i…

FreeCAD News

@freecad It should be wise to teach people to use the tools correctly and try to setup manuals on how to do this. Like prompts to clean-up code and add remarks.
In example you could use AI to make the code more readable without changing the code. You can help non-English speakers to add remarks in English etc.

Help users to contribute so you get more and better contributions instead of making it more bureaucratic and difficult.

@MisterMaker @freecad Expecting contributors to understand the changes they are proposing is common sense, not bureaucracy
@prokoudine @freecad More rules=more bureaucracy. I also don't think you can stop this especially if you run an already oversized project as FreeCAD. If you'd split off the addons from main you can probably have a better grip on the code quality. As it's easier to manage.
@MisterMaker @freecad The expectation that contributors understand their code has always been there
@prokoudine @freecad So when I did coding for FreeCAD I got the same remark, but honestly it is a stupid rule, why?
Because there are a lot of devs that put code in FreeCAD then leave and never return, and nobody understands the code that the dev made. Like Realthunder.
So there is a bunch of code that nobody can change because nobody understands it.
It would work if you have like a full-time developer who learns your code before merging.

@MisterMaker @freecad

The remarks you got are that your vibe-coded patches introduce unreadable code that is hard to maintain. You never really addressed that in the several PRs I looked at, and you never resolved conflicts in some of those PRs.

Reviewing badly written vibe-coded patches takes extra time for a relatively small number of maintainers. FC is at an all-time high 470 open PRs and 91 regressions at the moment. Vibe coding is not a solution, it's part of the problem.

[1/2]

@MisterMaker @freecad

Also, let me quote your comment from PR#23793 real quick.

"The @FreeCAD/fpa also doesn't have money to pay devs to do these kind of things.

So they don't want to use the cheap AI stuff and they don't want to pay for it."

This is self-contradictory. Either FC/FPA doesn't have the money or they have it and don't want to spend it. You can pick only one.

Not to mention that reviewing badly written AI code isn't cheap. It's someone else's time.

[2/2]

@prokoudine @freecad It can be both, since code work will have different costs.
Paying someone to rewrite a lot of code, then they don't have the money.
Paying someone to fix small bugs or small features, yes they have the money but they decide to spend it on other stuff.
I should probably join in some FPA meetings and tell all this, but that doesn't sound like fun to me.
@MisterMaker @freecad Are you aware that the FPA has been running a bug bounty program for months?

@freecad

That being said, the use of AI is not recommended under any circumstances or in any manner.

The passive voice here is confusing to me. Reading it in the context of the bullet point it is in, I can imagine any of these three readings:

  • The project will not make a recommendation regarding the use of AI tools.
  • The project is explicitly recommending against the use of AI tools.
  • The submitter of a patch which used AI tools must not recommend the use of AI tools to others in reference to their work.
  • Which one of these meanings, or what other meaning, was intended?

    @mcdanlj @freecad yyyyeah, disappointed this wasn't a hard 'kick rocks'

    @morgan @mcdanlj @freecad I'm guessing it’s a workaround against the smart-asses that will be like: „You can‘t prove that this was written by an LLM.“ That will sometimes be hard or maybe impossible.

    But it‘s easy to demonstrate that someone doesn’t understand a piece of code. Simply by asking a few questions about it.

    @mcdanlj @freecad It's 2) of course, how could it possibly be 1) or 3)?

    @prokoudine @freecad It's passive voice. I've let you know that because the passive voice makes the actor unclear, all three readings seem plausible to me. If you want to be clear, avoid passive voice.

    If I were responsible for the statement, I would rewrite it to be clearer, and I would avoid passive voice in doing so. But I'm not, so instead I'm just articulating clearly that it is not clear.

    You are welcome to do whatever you want with this.

    @mcdanlj @freecad Well, the entire CONTRIBUTING.md is written in passive voice, so that's just following the general style. I'm not a big fan of passive voice either, I just find it curious that passive voice can result in this kind of confusion
    @freecad th only acceptable guidance fo “ai” in open source projects is “don’t”. this is going to be a logistical nightmare down the road when yall ship some bug that deletes the user’s homedir or something, and another one when the copyright sword of Damocles falls