AI/LLM generated code policy

TL;DR:

    AIs/LLMs are useful tools when used surgically to assist a human. As long
    as they are used to assist, not replace human development their use is
    acceptable. Generated code requires strict human review, and must be
    clearly noted as being AI/LLM generated. AI/LLM generated code must also be
    in small chunks that are easy for a human to digest.

    No 'vibe' coded contributions where no human understands what was produced
    or how it works will be accepted.

Can developers use AI/LLM tools to contribute to Test2-Harness?

    Developers who contribute to Test2-Harness are allowed to use whatever
    tools they decide are necessary for their work. The project will not
    micromanage a contributor's workflow. This includes AI/LLM tools.

AI/LLM code MUST be human vetted

    Any code that goes into Test2::Harness should be vetted by a human.
    Maintainers who merge pull requests MUST verify the accuracy and utility of
    any PR.

    If the AI/LLM generated code needs additional edits or corrections
    before/during merge, those MUST be a separate commit indicating what human
    actions were needed to correct the generated code.

AI/LLM code MUST be in digestible chunks

    This applies to any code, but LLMs have a greater capacity for generating
    large PRs that are too big for a human to digest and verify.

    Overly large PRs must be broken up into smaller commits, and when possible
    smaller PRs. If humans cannot reasonably verify a PR it should not be
    accepted.

No 'vibe' coding

    A human must understand what is being done from start to finish. AI may
    assist, and be used as a tool. But it cannot do all the work, and it cannot
    replace your own understanding of the code you are contributing.

Significant AI/LLM code MUST be noted as such.

    Code from an LLM/AI should be noted as such, either in the commit, the
    description of the author (having BOT in the username), etc.

    If the code seems like it is AI, but indicates it was written by a human,
    you will be asked to correct this.

    Note that this does not apply to code-review or "trivial" use of AI/LLM.
    You do not need to note that AI was used for code review. You do not need
    to note when AI is used to correct minor syntax issue or to translate/write
    small code snippets.

    A good rule to go by: If it is something small enough that you can
    reasonably ask a peer to help with on short notice, or find quickly with a
    google search, it probably does not need to be noted as AI.

    The main goal of this rule is that we want to note code that is written
    primarily by or with an LLM as opposed to written by a human with a little
    AI help/input. We are not concerned with the middle ground, just cases
    where there is significant AI/LLM content.

    The reason for noting it is so that we know if there is a human who
    understands it that can be asked questions about the code later. Such a
    human does exist when AI is an assistant, it does not exit when AI is the
    primary author.

    This is entirly due to maintaner preference, it is not intended for an
    exhaustive audit or to single-out contributors who use or reject AI
    assistance. Using this rule as an excuse to troll or attack a contributor
    will not be tolerated. If you think someone missed the mark on noting AI
    contributions, kindly ask them to clarify and potentially update their PR.
