Skip to content

Latest commit

 

History

History
42 lines (30 loc) · 3.87 KB

File metadata and controls

42 lines (30 loc) · 3.87 KB

Harbour Masters AI Policy

This policy applies to all individuals who contribute, maintain, or review code under the Harbour Masters Organization.

Why have an AI Policy?

On one hand, AI tools have made it easier than ever for anyone to produce substantial changes to a codebase, regardless of their prior software experience. On the other hand, our community has grown to expect high quality, polished, and bug-free software.

In order to maintain that quality and ensure maintainers can continue to effectively review contributions, we have implemented the following policy in regards to use of AI tools for contributing to HM projects.

The Policy

Harbour Masters is not an Anti AI organization, however, we are Anti Slop.

"AI" is a very broad term, and can describe everything from an editor’s tab completion finishing a loop for you, to consulting ChatGPT for advice, to giving Claude a single prompt and having it build an entire game without ever looking at a single line of code.

In today's world it is unrealistic to pretend that you can outright prevent all humans that interact with your project from using AI in some shape or fashion in their workflow. Our goal is instead to provide meaningful guidelines to all Code Contributions, not only to help foster a new generation of potential developers but also to avoid assumptions about whether something is "vibe coded" or hand crafted.

We are all humans, volunteering our free time to provide a definitive experience for our Ports and our community. If you see something and have questions or concerns please let us know, it only strengthens us.

Expectations

All contributions and interactions throughout the review process should keep the following ideals in mind:

We value the human, not your AI subscription

Imagine we receive five contributions implementing the same feature, all generated with AI. The fact that you prompted an AI to produce yours doesn’t distinguish it from the others. What matters is your understanding of the problem, the quality of the solution, and your ability to stand behind and maintain what you submitted.

Anyone can write a prompt. What did you bring to the table?

Understanding

  • You are responsible for what you submit. Do not submit a contribution if you have no intention of fixing bugs, iterating on feedback, or answering questions related to your contribution.
  • Using AI to generate code or text you don't understand is not a shortcut; it shifts work onto reviewers and maintainers without adding value.
  • Using AI to build understanding is encouraged.

Transparency

  • "Is this AI?" is not a fruitful question standing alone.
  • Clearly disclose whether AI was used and to what extent, so reviewers can calibrate their expectations and everyone stays on the same page.

Quality

  • Pull Request descriptions should be hand written. If you don't have enough energy to write out a description and instead paste a massive AI generated block, we will not have the energy to read it. You can paste AI generated blocks of text in <details> collapsibles with a disclosure that it was written by AI.
  • All code should follow the patterns established within the codebase, consistency is key.
  • Contributions should be small and limited in scope, we will very likely immediately close anything that is over a thousand LoC change.
  • We expect all contributions to be thoroughly tested. This should be common sense but you'd be surprised.
  • Today's AI models have a tendency to over abstract and over explain:
    • If a block of code is not used in 3 or more places, it probably doesn't need to be split out into a separate function.
    • Comments should be used sparingly and only to briefly explain "why" the code is doing something or side effects, not "what" it's doing. The variable and function names should be clear enough to explain to the reviewer what is going on.