explainx.ai0k
TrendingAI News TodayPathwaysSkills
Pricing
explainx.ai

Upskill in AI — 16 free pathways, live workshops & bootcamps, and 50+ courses from practitioners. Plus the skills, tools, and MCP servers to practice on.

follow us

follow on google

Add explainx.ai as a preferred source

corporate training

support@explainx.ai

get started

Find your pathTake Free Evaluation

community

Join the community

learn

mind: share how you thinkpathways — start freeworkshopsbootcampscoursescompare Explainxcertificationsmock testsexplainx universitycorporate traininglearn skills & mcp

discover

skillsmcp serversexplainx mcptoolsmdx readeragentsllmsdesignsdictionarypeopleagi trackerfelony benchranks

company

aboutvisionmissionteaminstructorsteach on explainxpartnershipscommunityhackathonscareers

content

daily AI newsstate of AI — live resultsblogreleasespromptsgeneratorsresource libraryfor LLMsexplainx.ai kids

solutions

all solutionsdeveloper upskillingmarketing upskillingproduct manager upskillingleadership upskilling

newsletter · weekly

Get AI news, tools, and insights in your inbox.

supportcontactprivacytermsdata rightshow we create contentsubmission guidelines

© 2026 AISOLO Technologies Pvt Ltd

explainx.ai

On this page

  • TL;DR
  • The policy in plain words
  • Why reviewer time is the real constraint
  • How other projects chose
  • Legal motives differ from review motives
  • Policies age quickly
  • What this means if you maintain or contribute to a project
  • A starter template for your own project
  • Caveats
  • Related reading
← Back to blog

explainx / blog

GHC's AI Contribution Policy: Disclose, Own Every Line, and How It Compares With OpenJDK, Zig and Linux

Open Source, AI Policy, Coding Agents, Haskell, Code Review

Part of AI Tools and Apps

The Haskell compiler now has a five-point policy for LLM-assisted contributions: allowed, disclosed, human-owned. How it differs from OpenJDK, Zig and Linux.

Oct 29, 2026·8 min read·Yash Thakker
add explainx.ai
go deep
GHC's AI Contribution Policy: Disclose, Own Every Line, and How It Compares With OpenJDK, Zig and Linux

Short answer: The Glasgow Haskell Compiler (GHC) now has a written policy for LLM-assisted contributions: they are allowed, but a human author must understand and be able to explain every line, direct LLM generation must be disclosed, and conversation with reviewers should stay human. In an October 28, 2026 write-up, Serokell, whose engineers work on GHC and took part in the discussion, walks through the policy and compares it with other open-source projects, several of which chose to ban AI-generated code outright. Note the source: Serokell discloses its own stake, so read the framing accordingly.

TL;DR

table · 2 cols
QuestionAnswer
Are AI-assisted patches allowed?Yes, with a human who owns every line
Must I disclose?Yes, direct LLM generation
Is writing the final version myself required?No, it is a strong preference (P5)
Can an LLM argue with reviewers for me?No: P1 expects human discussion
Do tickets follow the same rules?More loosely; a useful bug report can come from someone who does not understand the cause
Are AI reviews covered?Yes, same rules; wording also covers future agents
Who disagrees?OpenJDK, Zig, Clojure, QEMU (for now) restrict or ban

The policy in plain words

Serokell describes four policy points and one strong preference. The document follows a draft by Simon Peyton Jones developed in the ghc-devs discussion, not a competing "shared statement" proposed in July, whose authors said it was not meant as a contribution policy.

  • P1, prioritize people and community. LLMs may be used to navigate the codebase, translate text or investigate a problem, but generated text should not stand in for the contributor's own judgment in discussion with reviewers.
  • P2, make merge requests easy to review. Contributors should invest substantially more effort than reviewers need to understand the change: a clear goal, explained design, examples and tests, digestible pieces. A patch that compiles but leaves the reviewer to reconstruct the reasoning fails.
  • P3, human authorship and full responsibility. An identifiable human must be able to explain every line of code and every sentence of documentation. Tickets are treated more loosely, and draft merge requests may contain unfinished or generated work if clearly marked.
  • P4, disclosure. Direct LLM generation is declared.
  • P5, preferably write the final version yourself. Generated code is still allowed; rewriting is a simple way to ensure you thought through every line. It stays a preference, so a contribution is judged under the policy points, not on whether a human typed every character.

The policy deliberately takes no position on whether LLMs are good or bad overall, saying the project has no consensus on costs and benefits.

Why reviewer time is the real constraint

GHC has more than 6,500 open tickets and more work than reviewers. Serokell's point is that cheap patch generation does not help if review gets more expensive: "A patch produced in twenty minutes can still cost a maintainer two hours to understand."

It borrows LLVM's term extractive contribution, from Nadia Eghbal's book Working in Public, where the contributor benefits from submitting while the project spends more effort than the contribution is worth. The problem predates LLMs, since anyone could submit a 2,000-line patch they barely understood, but generating one is now much easier. Serokell also cites an observational Faros finding that teams with heavier AI adoption produced more and larger pull requests while review times rose, while cautioning that a corporate engineering team is not directly comparable to GHC.

Review also needs project memory. A patch can look right in isolation while contradicting a proposal from four years ago or reintroducing an old regression. LLMs mainly reduce how much context someone needs before producing something plausible.

How other projects chose

Serokell's survey is the most useful part for anyone setting a policy. As it reports:

table · 2 cols
ProjectPosition
OpenJDKInterim policy excludes contributed material generated in whole or part by LLMs; private use for comprehension, research, debugging and review is fine
GCCRejects legally significant contributions containing or derived from generated material; AI allowed for investigation and review
LLVMAccepts assisted contributions when a human checks and takes responsibility; AI tools may not solve good first issue tasks
Linux kernelAllows AI-assisted contributions; the human reviews, takes responsibility, certifies the DCO and records the assistance with an Assisted-by tag
OCamlAllows under conditions; asks for disclosure when a significant part was generated
ClojureRejects LLM-generated code
ZigProhibits LLM-authored contributions; frames maintainer time as an investment in people who may stay
AgdaDebated a blanket ban; proposal closed without adoption
QEMUStill rejects AI-generated contributions; a replacement policy is under discussion

OpenJDK's own page, the Interim Policy on Generative AI, cites risks "to reviewer burden, to safety and security" alongside productivity opportunities. Serokell notes OpenJDK itself admits that reliably distinguishing generated from human-written content is generally impossible, so a ban rewards silence: a contributor who discloses can be rejected while one who used the same tool privately may be indistinguishable.

Legal motives differ from review motives

Some strict positions are about provenance, not quality. GCC draws its line at legally significant contributions because the FSF's licensing claims depend on clear origin, and OpenJDK points to contributor-agreement requirements. Serokell says a GHC contributor asked the Haskell Foundation to fund legal advice on whether model providers' content-rights waivers would hold up; the Board declined, arguing the question was not Haskell-specific and not yet tested enough in court. Projects with copyright assignment have stronger reasons to be conservative; GHC uses a different licensing model.

Policies age quickly

The article's strongest argument is that rules based on current model quality can become obsolete fast. Serokell's examples:

  • curl closed its bug bounty at the end of January 2026 after poor, often AI-linked security reports; the share of reports that were confirmed vulnerabilities, historically above 15%, fell below 5%. By April 22 Daniel Stenberg wrote that almost every report involved AI but slop was no longer the main problem, and the rate was back around 15 to 16%.
  • QEMU's maintainers have been drafting a replacement for its ban that also covers instructions for AI agents working inside the repository.
  • Bun reported a large debug compile-time improvement in its Zig fork and said it would not upstream it because Zig bans LLM-authored contributions. Serokell notes a Zig core developer found technical problems, including nondeterministic behavior, so the patch was not obviously acceptable anyway.

Serokell also cautions that speed percentages are hard to interpret for compiler work, and suggests asking whether a task would have been done at all: reproducing an old bug on current GHC or reducing a 500-line reproducer is valuable but rarely attracts volunteers. It describes a case where Sylvain Henry built a proof of concept for GHC's coercion-size problem in July using Claude Fable, combining ideas from earlier attempts by experienced compiler engineers.

Weekly digest3.6k readers

Catch up on AI

Curated AI updates on agents, skills, and MCP — delivered to your inbox. Unsubscribe anytime.

What this means if you maintain or contribute to a project

For maintainers, three ideas transfer directly. Put the burden of proof on the contributor (P2 and P3). Require disclosure so reviewers know how much context to supply. Keep human conversation human, so mentoring still happens. If you worry about drive-by patches displacing newcomers, tighten the policy when you see evidence, as GHC says it can.

For contributors using coding agents, the working rule is simple: if you cannot explain a line, do not submit it. Reduce the diff, write the design note yourself, add tests, and disclose. We have covered the other side of the queue as well, such as QGIS banning AI-assisted contributions, Google freezing its open-source bug bounty over AI slop reports, and Anthropic's free scanner for open-source maintainers. For how well agents do on real maintainer merge decisions, see FrontierCode's maintainer-merge benchmark.

For teams, policy can be enforced in tooling. An open-source governance layer like Bernstein turns rules into checks that run before a pull request exists.

A starter template for your own project

If you are drafting a policy, GHC's structure suggests a minimal checklist you can adapt:

  1. State plainly that assisted contributions are welcome or not, and why.
  2. Require a named human who can explain and maintain every change.
  3. Ask for disclosure of direct generation, and say what happens after disclosure.
  4. Set review-cost expectations: small, tested, well-explained changes.
  5. Keep mentoring conversations between people.
  6. Name the review process for AI-assisted reviews too.
  7. Schedule a revisit, since model quality and project needs will change.

Caveats

This is a vendor-adjacent summary: Serokell engineers participated in the debate and use coding assistants. We read the article, not the GHC wiki text itself, so check the project's own policy page for exact wording. And Serokell reports that GHC has not seen a flood of low-quality LLM submissions, which is why it considers a blanket ban aimed at a problem the project does not yet face at scale. Other projects may have different experiences.

Related reading

  • QGIS bans AI-assisted contributions
  • Google freezes its OSS bug bounty over AI slop
  • Anthropic's free AI scanner for open-source maintainers
  • FrontierCode 1.1: maintainer-merge benchmark
  • Bernstein: policy-as-code for coding agents

Sources: Serokell, AI Contributions to GHC, OpenJDK Interim Policy on Generative AI.

Policy details are as described by Serokell on October 28, 2026 and may have changed; confirm with the GHC project.

Spotted something out of date? Let us know.
Yash Thakker

Written by

Yash Thakker

Yash is an AI expert with over 300K learners. Join his workshops →

View Yash Thakker in People in AI →

Related posts

Oct 28, 2026

Microsoft Aspire Templates Repo: Six Starters and Two Agent Skills

Microsoft created a public aspire-templates repository on October 28, 2026. It holds six Aspire starter templates, CLI host metadata, automated validation, and two agent skills that guide template creation and review. Here is what is in it and how to try it.

Oct 28, 2026

MiniMax mcode-stack: 15 Agent Skills for Subagents, Context and Reviews

mcode-stack is a new MIT-licensed GitHub repo from MiniMax-AI holding the workflows and skills the MiniMax Code team uses to build its coding agent. It is a set of audits and checklists, not a prompt dump: when to split work into subagents, how to audit long shell commands, how to review a diff from a clean context. Here is what is inside and how to install it.

Oct 27, 2026

BeautifulRust: Agent Skills and a Clippy Config That Make AI Write Idiomatic Rust

BeautifulRust, a repo that gained about 1,200 stars in days, packs three Agent Skills and a clippy lint config for Rust. Here is what each part does, how to install it in Claude Code, Codex, Copilot and Gemini CLI, and what its self-reported evals do and do not prove.