Antara 27 September dan 2 Oktober saya mengirim perbaikan, laporan bug, dan komentar ke dua belas proyek open source. Banyak dari pekerjaan itu ditangani oleh agen coding: Claude Code mereproduksi bug, menulis patch dan tes, serta membuat draf sebagian besar teksnya. Saya yang memilih setiap issue dan membaca setiap teks, dan tidak ada yang terkirim dari akun saya sebelum saya menyetujuinya.
Selama itu, proyek-proyek tersebut terus memberi tahu saya bagaimana mereka ingin pekerjaan seperti itu dilakukan. spec-kit meminta agar agen, model, pengaturannya, dan sejauh mana bantuannya disebutkan di setiap komentar yang dibuat AI. Template pull request MLX diawali dengan baris yang sudah dicentang: "Saya mengerti bahwa menggunakan AI untuk menulis deskripsi PR dilarang keras". Jadi pada 2 Oktober saya membaca aturan kontribusi di 30 repositori: repositori yang sudah saya kirimi kontribusi, dan 21 lainnya yang belum.
Versi singkatnya: 19 dari 30 repositori itu punya aturan tentang AI, dan 14 dari 19 aturan itu muncul pada 2026. Kebanyakan aturan membebankan tanggung jawab atas perubahan kepada orang yang mengirimkannya. Lima belas meminta Anda menyatakan bahwa Anda memakai AI, dan sepuluh ingin deskripsi, komentar, atau pesan commit ditulis oleh manusia, bukan oleh model. Trailer commit yang ditambahkan agen coding secara bawaan diwajibkan oleh sebagian proyek ini dan dilarang oleh yang lain.
Yang saya baca
Sampelnya tidak acak. Sembilan dari 30 itu adalah proyek yang saya kirimi kontribusi pada minggu tersebut: MLX, spec-kit, huggingface_hub, codebase-memory-mcp, Deskflow, agent-framework, awslabs/mcp, kaggle-cli, dan avoid-ai-writing. 21 lainnya adalah proyek di bidang tooling AI, alat untuk developer, dan infrastruktur, di antaranya Docling, garak, TypeScript, Rust, Node.js, dan Kubernetes. Tiga proyek sisanya yang saya kirimi kontribusi, yaitu copilot-cli, PartCrafter, dan ltx-2-mlx, tidak termasuk dalam 30 itu, dan saya tidak menemukan aturan AI di satu pun dari ketiganya.
Di setiap repositori saya membaca CONTRIBUTING, template pull request dan issue, AGENTS.md dan CLAUDE.md, kode etik, serta panduan dan halaman wiki yang ditautkan oleh file-file tersebut, di branch default pada 2 Oktober 2026. Setiap kutipan di bawah ditautkan ke barisnya pada commit yang saya baca, jadi tautan itu menunjukkan isi file pada hari itu, bahkan setelah file-nya berubah. Kutipan-kutipan itu saya terjemahkan ke bahasa Indonesia, dan setiap tautan membuka baris aslinya dalam bahasa Inggris. Untuk mengetahui sejak kapan sebuah aturan ada, saya mencari commit pertama yang memuatnya di riwayat file tersebut.
Siapa yang punya aturan
19 dari 30 repositori punya aturan tentang AI dalam kontribusi: MLX, spec-kit, TypeScript, huggingface_hub, transformers, trl, peft, LangChain, Strands Agents, MLflow, garak, codebase-memory-mcp, Deskflow, workers-sdk, pydantic-ai, Rust, CPython, Node.js, dan Kubernetes.
Di sembilan repositori saya tidak menemukan aturan seperti itu: accelerate, awslabs/mcp, kaggle-cli, Docling, BeeAI, ADK for Python, NeMo Agent Toolkit, VS Code, dan React. Dua lagi tidak saya hitung. agent-framework hanya memperingatkan bahwa AI telah menambah jumlah kontribusi sehingga review memakan waktu lebih lama, dan avoid-ai-writing memeriksa gaya tulisan, bukan cara tulisan itu dibuat.
Satu aturan biasanya meminta beberapa hal sekaligus:

Batang kedua adalah tafsiran saya: 12 dari 19 menyatakan, dengan satu atau lain cara, bahwa orang yang mengirim bertanggung jawab atas perubahannya dan harus memahaminya. huggingface_hub menyampaikannya dalam dua kalimat: "Memakai AI untuk membantu menulis kode itu boleh. Mengirim sampah buatan AI yang tidak bisa Anda jelaskan, tidak." CPython mengharapkan penulis "mampu menjelaskan perubahan yang mereka usulkan dengan kata-kata mereka sendiri", dan Strands Agents berkata kepada kontributor: "Andalah penulis pull request Anda, bukan agen Anda."
Kapan aturan itu muncul
CPython yang pertama, dengan satu halaman pendek di panduan developer-nya pada Oktober 2024. Empat menyusul pada 2025: spec-kit, LangChain, Kubernetes, dan MLflow. 14 lainnya muncul pada 2026, tujuh di antaranya sejak Juni. codebase-memory-mcp menambahkan aturannya sebelas hari sebelum saya membacanya.

File-file itu masih terus berubah. Di 16 dari 19 repositori, file yang memuat aturan itu diedit pada September atau pada dua hari pertama Oktober, meskipun tidak semua suntingan itu menyentuh teks tentang AI.
Nyatakan terus terang
Pengungkapan adalah aturan yang paling umum, dan proyek-proyek itu berbeda soal seberapa banyak yang mereka minta. Bagi Kubernetes satu kalimat sudah cukup: panduannya menyebut bahwa mencantumkan "PR ini sebagian ditulis dengan bantuan AI generatif" di deskripsi "sudah memadai." TypeScript menutup PR yang tidak menyertakannya: "Jika PR Anda tampak ditulis oleh AI dan Anda tidak menyertakan pengungkapan ini, PR Anda akan ditutup tanpa review." spec-kit meminta agen, model, pengaturan, dan sejauh mana bantuannya disebutkan di pull request, sekali lagi di setiap komentar yang dibuat AI, dan sebagai trailer Assisted-by: di setiap commit yang ditulis agen.
Dua proyek menyebut taruhannya dalam satu baris. codebase-memory-mcp: "Pengungkapan tidak pernah merugikan sebuah kontribusi. Ketahuan belakangan, itu yang merugikan." Deskflow: "Ketidakjujuran soal penggunaan AI dalam kontribusi akan berujung pada pemblokiran dari proyek."
CPython meminta lebih sedikit daripada yang lain: "Pengungkapan penggunaan tool AI di deskripsi PR dihargai, meski tidak diwajibkan."
Teksnya ditulis manusia
Sepuluh proyek membolehkan model membantu mengerjakan kode, tetapi ingin teksnya ditulis oleh manusia. Rust yang paling ketat: "Deskripsi PR yang dibuat LLM dilarang. Komentar GitHub yang dibuat LLM dilarang." Hal yang sama berlaku untuk commit: "Pesan commit harus ditulis oleh Anda, bukan oleh LLM Anda."
Kubernetes dan Node.js menarik batasnya di review. Kubernetes: "Saat menanggapi komentar review, Anda harus melakukannya tanpa mengandalkan tool AI." Node.js: tanggapan atas masukan "tidak boleh diotomatisasi dengan tool AI."
Proyek lain menanamkannya di template mereka. MLX punya baris yang dikutip di atas, dan baris serupa untuk issue. Strands Agents memberi template pull request-nya bagian "Human Overview" yang "TIDAK BOLEH diisi oleh agen AI". Template LangChain memperingatkan: "Jika Anda menempelkan deskripsi panjang yang jelas-jelas dibuat AI di sini, PR Anda bisa DIABAIKAN atau DITUTUP!"

Jangan massal, dan tanya dulu
Tujuh proyek melarang kiriman massal atau otomatis. TypeScript menggambarkan alur kerja yang ditolaknya: "alur kerja ketika seorang operator mengarahkan agen otonom ke GitHub, menyuruhnya membuat patch untuk banyak issue yang tidak saling berkaitan, lalu meneruskan hasilnya kepada kami sebagai pull request." Panduan LangChain memberi satu tolok ukur yang berlaku untuk kontribusi apa pun: "Jika usaha yang dibutuhkan untuk membuat pull request lebih kecil daripada usaha yang dibutuhkan maintainer untuk meninjaunya, kontribusi itu sebaiknya tidak dikirim."
Enam proyek meminta persetujuan sebelum pull request dibuka. Di peft, persetujuan itu berupa komentar maintainer yang berisi @peft-triage approved. Di Rust, perubahan yang dibuat LLM harus disepakati sebelumnya, artinya "seorang reviewer telah menyampaikan terlebih dahulu bahwa ia bersedia meninjau PR yang dibuat LLM."
Tiga proyek menolak pendatang baru yang memakai agen. transformers meminta "agar orang yang baru pertama kali berkontribusi tidak memakai agen kode untuk membuat issue atau PR", dan trl "tidak akan meninjau PR yang sepenuhnya dibuat AI dari orang yang baru pertama kali berkontribusi." Node.js meminta kontributor baru untuk "menghindari penggunaan agen AI untuk berinteraksi dengan proyek", dan melarang perbaikan oleh AI untuk issue berlabel "good first issue", yang "dimaksudkan untuk membantu kontributor manusia yang baru, bukan AI, mempelajari basis kode".
Rust juga membatasi porsi pekerjaan semacam ini: "Jika lebih dari separuh PR yang di-merge dalam rentang 6 minggu dibuat oleh LLM, kami tidak mengizinkan merge PR baru yang dibuat LLM sampai porsinya kembali di bawah 50%, dengan masa jeda minimal 10 hari."
Trailer yang tidak mereka sepakati
Agen coding sering menandatangani hasil kerjanya. Claude Code, misalnya, menambahkan trailer Co-Authored-By: Claude … ke setiap commit dan baris "Generated with Claude Code" ke pull request, kecuali diminta untuk tidak melakukannya. Sembilan proyek punya aturan tentang trailer seperti ini, dan aturan-aturan itu saling bertolak belakang:

Sumbernya: MLflow, garak, spec-kit, Node.js, Kubernetes, Rust, pydantic-ai, Deskflow, dan codebase-memory-mcp.
Kubernetes: "Mencantumkan tool AI sebagai co-author, ikut menandatangani commit dengan tool AI, atau memakai trailer commit assisted-by, co-developed, atau yang serupa tidak diizinkan." pydantic-ai menyatakannya di file yang dimuat Claude Code saat sesi dimulai: "Jangan pernah menambahkan diri Anda (Claude) sebagai co-author pada commit." Panduan Rust memasukkan kedua baris bawaan itu ke dalam contoh pengungkapan yang buruk: 🤖 Generated with Claude Code dan Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>.
Jadi trailer bawaan itu persis yang diminta MLflow, tetapi melanggar aturan di Kubernetes, Rust, dan pydantic-ai. Tidak ada pengaturan yang benar di semua tempat. Agen harus membaca aturan sebuah repositori sebelum commit pertamanya di sana, begitu pula orang yang menjalankannya.
Aturan yang ditulis untuk agen
Sebagian aturan ini ditujukan langsung kepada agen, di AGENTS.md atau CLAUDE.md, yaitu file yang dibaca agen coding saat mulai bekerja di sebuah repositori. Yang disampaikan kepada agen:
- pydantic-ai: "Anda adalah garis pertahanan pertama terhadap kontribusi berkualitas rendah dan hal-hal yang membuat maintainer pusing".
- MLX: jangan "menulis deskripsi PR dan pesan commit untuk pengguna", menjawab komentar atas nama pengguna, melakukan push, atau membuka pull request.
- Rust: berhenti, "menyebutkan kategori yang dilarang, dan meminta pengguna untuk menulisnya sendiri."
- transformers: memperingatkan orang yang belum menjadi kontributor, "termasuk risiko diblokir."
- spec-kit: bertanya kepada operator sebelum ada pull request keempat yang terbuka di repositori itu, "termasuk saat beroperasi secara otonom".
- Strands Agents, kepada agen yang berjalan terjadwal: "bekerja dengan laju yang bisa diikuti dan ditanggapi manusia."
Aturan-aturan ini hanya berfungsi kalau agen membaca file itu dan mematuhinya.
Yang terjadi pada kiriman saya
- Kaggle/kaggle-cli: PR #1206, streaming file
kernels outputlewat downloader bersama. Di-merge pada hari yang sama. - conorbronsdon/avoid-ai-writing: PR #352, #361, dan #362, dua perbaikan detektor dan satu tes. Ketiganya di-merge, masing-masing dalam sehari.
- huggingface/huggingface_hub: issue #5065,
--env-filekehilangan variabel pertamanya ketika file diawali BOM UTF-8. Seorang maintainer membuka perbaikannya, #5066, 52 menit kemudian, dan perbaikan itu di-merge dalam dua jam sejak laporan dibuat. - microsoft/agent-framework: PR #8963, data URI dengan parameter. Ditutup setelah tiga jam sebagai duplikat: PR lain yang lebih lama dan masih terbuka, #8918, sudah berisi perbaikan yang sama.
- ml-explore/mlx: PR #4610, RMSNorm dan LayerNorm untuk Metal dengan bobot yang stride-nya negatif. Ditutup setelah dua setengah jam: "Terima kasih atas PR-nya, tetapi ini bukan perbaikan yang ideal."
- DeusData/codebase-memory-mcp: issue #2454 dan PR #2456, petunjuk yang menyesatkan pada hasil pencarian yang kosong. Diberi label bug prioritas tinggi, menunggu review.
- dgrauet/ltx-2-mlx: PR #167,
lastdan indeks frame negatif untuk anchor gambar. Maintainer meminta satu perbaikan sebelum merge, dan saya mengirimkannya pada 3 Oktober. - github/spec-kit, microsoft/agent-framework, dan awslabs/mcp: usulan cakupan di #4213 serta rencana perbaikan di #8909 dan #4705. Menunggu maintainer.
- deskflow/deskflow: akar masalah #10068, crash di macOS. Sudah diberi label dan ditugaskan, belum ada balasan.
- github/copilot-cli: issue #5038, tool grep mengabaikan
ntanpa tanda hubung. Sudah diberi label, belum ada balasan. - wgsxm/PartCrafter: PR #46, agar bisa berjalan di Apple Silicon. Belum ada balasan.
Lima dari dua belas proyek itu punya aturan AI: MLX, spec-kit, huggingface_hub, codebase-memory-mcp, dan Deskflow. Di huggingface_hub saya hanya membuka issue, sedangkan aturannya mengatur pull request. Di MLX saya menulis sendiri deskripsi pull request dan pesan commit, seperti yang diwajibkan aturannya, dan deskripsinya menyebutkan apa yang dikerjakan agen. Komentar saya di spec-kit memuat pengungkapan lengkap yang diminta spec-kit, dan di codebase-memory-mcp satu baris pengungkapan yang diminta proyek itu ada di issue, di pull request, dan di setiap komentar. Dua balasan saya di codebase-memory-mcp terkirim pada 28 September tanpa baris itu, seminggu setelah proyek tersebut menambahkan aturannya; saya menambahkannya pada 1 Oktober. Deskflow meminta pengungkapan di pull request. Komentar saya di sana, yang drafnya dibuat agen, terkirim tanpa pengungkapan; saya menambahkan barisnya pada 3 Oktober.
Kedua komentar penutupan itu sama sekali tidak menyebut AI. agent-framework menutup PR saya karena ada PR yang lebih lama dan masih terbuka dengan perbaikan yang sama, yang sebenarnya akan saya temukan seandainya saya mencari dulu sebelum menulis PR saya. Maintainer MLX menilai pendekatannya.
Yang saya ubah
- Sebelum menulis perbaikan, saya mencari nomor issue-nya di pull request yang masih terbuka dan di timeline issue itu. Duplikat tadi terjadi karena langkah ini saya lewati.
- Di proyek besar, saya menulis rencana sebagai komentar dan tidak membuka pull request sampai ada maintainer yang menjawab. agent-framework, awslabs/mcp, dan spec-kit sekarang ada di tahap itu.
- Satu pull request terbuka per proyek dalam satu waktu.
- Teksnya mengikuti aturan masing-masing proyek. Kalau sebuah proyek melarang deskripsi yang ditulis AI, seperti MLX, saya menulisnya sendiri. spec-kit dan codebase-memory-mcp mendapat pengungkapan dalam bentuk yang mereka minta, dan proyek yang tidak punya aturan tidak mendapat baris pengungkapan.
- Tanpa trailer, kecuali proyeknya meminta. Commit saya hanya memuat nama saya.
- Saya tidak mengirim pekerjaan seperti ini ke proyek yang aturannya tidak akan terpenuhi. Rust, Kubernetes, dan Node.js melarang komentar atau balasan atas review yang ditulis AI; transformers, trl, dan Node.js meminta pendatang baru untuk tidak memakai agen; dan TypeScript menolak pekerjaan berbasis antrean.
Batasan
Ini pengalaman satu akun selama enam hari. 30 repositori itu pilihan saya dan condong ke tooling AI, bidang yang lebih mungkin punya aturan seperti ini. Jenis-jenis aturannya adalah label buatan saya, dan satu aturan sering masuk ke beberapa jenis. Semuanya dibaca pada 2 Oktober 2026, dan di 16 dari 19 repositori file aturannya berubah dalam sebulan sebelumnya, jadi sebagian isi catatan ini akan segera usang. Tautan yang dipatok menunjukkan isi setiap file pada hari itu.
Seluruh 106 kutipan, hitungannya, dan skrip yang mencocokkan setiap kutipan dengan file-nya ada di nefayran/oss-ai-rules.
Draf catatan ini ditulis dengan Claude Code (Claude Opus 5.5), yang juga mengumpulkan file-file aturan itu dan mencocokkan setiap kutipan dengan file-file tersebut.