diff --git a/AI_POLICY.md b/AI_POLICY.md new file mode 100644 index 000000000..1ed0006d4 --- /dev/null +++ b/AI_POLICY.md @@ -0,0 +1,69 @@ +# AI Usage Policy + +The Ghostty project has strict rules for AI usage: + +- **All AI usage in any form must be disclosed.** You must state + the tool you used (e.g. Claude Code, Cursor, Amp) along with + the extent that the work was AI-assisted. + +- **Pull requests created in any way by AI can only be for accepted issues.** + Drive-by pull requests that do not reference an accepted issue will be + closed. If AI isn't disclosed but a maintainer suspects its use, the + PR will be closed. If you want to share code for a non-accepted issue, + open a discussion or attach it to an existing discussion. + +- **Pull requests created by AI must have been fully verified with + human use.** AI must not create hypothetically correct code that + hasn't been tested. Importantly, you must not allow AI to write + code for platforms or environments you don't have access to manually + test on. + +- **Issues and discussions can use AI assistance but must have a full + human-in-the-loop.** This means that any content generated with AI + must have been reviewed _and edited_ by a human before submission. + AI is very good at being overly verbose and including noise that + distracts from the main point. Humans must do their research and + trim this down. + +- **No AI-generated media is allowed (art, images, videos, audio, etc.).** + Text and code are the only acceptable AI-generated content, per the + other rules in this policy. + +- **Bad AI drivers will be banned and ridiculed in public.** You've + been warned. We love to help junior developers learn and grow, but + if you're interested in that then don't use AI, and we'll help you. + I'm sorry that bad AI drivers have ruined this for you. + +These rules apply only to outside contributions to Ghostty. Maintainers +are exempt from these rules and may use AI tools at their discretion; +they've proven themselves trustworthy to apply good judgment. + +## There are Humans Here + +Please remember that Ghostty is maintained by humans. + +Every discussion, issue, and pull request is read and reviewed by +humans (and sometimes machines, too). It is a boundary point at which +people interact with each other and the work done. It is rude and +disrespectful to approach this boundary with low-effort, unqualified +work, since it puts the burden of validation on the maintainer. + +In a perfect world, AI would produce high-quality, accurate work +every time. But today, that reality depends on the driver of the AI. +And today, most drivers of AI are just not good enough. So, until either +the people get better, the AI gets better, or both, we have to have +strict rules to protect maintainers. + +## AI is Welcome Here + +Ghostty is written with plenty of AI assistance, and many maintainers embrace +AI tools as a productive tool in their workflow. As a project, we welcome +AI as a tool! + +**Our reason for the strict AI policy is not due to an anti-AI stance**, but +instead due to the number of highly unqualified people using AI. It's the +people, not the tools, that are the problem. + +I include this section to be transparent about the project's usage about +AI for people who may disagree with it, and to address the misconception +that this policy is anti-AI in nature. diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index cbb6927d6..41376765b 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -13,91 +13,10 @@ it, please check out our ["Developing Ghostty"](HACKING.md) document as well. > time to fixing bugs, maintaining features, and reviewing code, I do kindly > ask you spend a few minutes reading this document. Thank you. ❤️ -## AI Assistance Notice +## AI Usage -> [!IMPORTANT] -> -> The Ghostty project allows AI-**assisted** _code contributions_, which -> must be properly disclosed in the pull request. - -If you are using any kind of AI assistance while contributing to Ghostty, -**this must be disclosed in the pull request**, along with the extent to -which AI assistance was used (e.g. docs only vs. code generation). - -The submitter must have also tested the pull request on all impacted -platforms, and it's **highly discouraged** to code for an unfamiliar platform -with AI assistance alone: if you only have a macOS machine, do **not** ask AI -to write the equivalent GTK code, and vice versa — someone else with more -expertise will eventually get to it and do it for you. - -> [!WARNING] -> **Note that AI _assistance_ does not equal AI _generation_**. We require -> a significant amount of human accountability, involvement and interaction -> even within AI-assisted contributions. Contributors are required to be able -> to understand the AI-assisted output, reason with it and answer critical -> questions about it. Should a PR see no visible human accountability and -> involvement, or it is so broken that it requires significant rework to be -> acceptable, **we reserve the right to close it without hesitation**. - -**In addition, we currently restrict AI assistance to code changes only.** -No AI-generated media, e.g. artwork, icons, videos and other assets is -allowed, as it goes against the methodology and ethos behind Ghostty. -While AI-assisted code can help with productive prototyping, creative -inspiration and even automated bugfinding, we have currently found zero -benefit to AI-generated assets. Instead, we are far more interested and -invested in funding professional work done by human designers and artists. -If you intend to submit AI-generated assets to Ghostty, sorry, -we are not interested. - -Likewise, all community interactions, including all comments on issues and -discussions and all PR titles and descriptions **must be composed by a human**. -Community moderators and Ghostty maintainers reserve the right to mark -AI-generated responses as spam or disruptive content, and ban users who have -been repeatedly caught relying entirely on LLMs during interactions. - -> [!NOTE] -> If your English isn't the best and you are currently relying on an LLM to -> translate your responses, don't fret — usually we maintainers will be able -> to understand your messages well enough. We'd like to encourage real humans -> to interact with each other more, and the positive impact of genuine, -> responsive yet imperfect human interaction more than makes up for any -> language barrier. -> -> Please write your responses yourself, to the best of your ability. -> If you do feel the need to polish your sentences, however, please use -> dedicated translation software rather than an LLM. -> -> We greatly appreciate it. Thank you. ❤️ - -Minor exceptions to this policy include trivial AI-generated tab completion -functionality, as it usually does not impact the quality of the code and -do not need to be disclosed, and commit titles and messages, which are often -generated by AI coding agents. - -An example disclosure: - -> This PR was written primarily by Claude Code. - -Or a more detailed disclosure: - -> I consulted ChatGPT to understand the codebase but the solution -> was fully authored manually by myself. - -An example of a **problematic** disclosure (not having tested all platforms): - -> I used Amp to code both macOS and GTK UIs, but I have not yet tested -> the GTK UI as I don't have a Linux setup. - -Failure to disclose this is first and foremost rude to the human operators -on the other end of the pull request, but it also makes it difficult to -determine how much scrutiny to apply to the contribution. - -In a perfect world, AI assistance would produce equal or higher quality -work than any human. That isn't the world we live in today, and in most cases -it's generating slop. I say this despite being a fan of and using them -successfully myself (with heavy supervision)! - -Please be respectful to maintainers and disclose AI assistance. +The Ghostty project has strict rules for AI usage. Please see +the [AI Usage Policy](AI_POLICY.md). **This is very important.** ## Quick Guide