← Kembali ke Lab

Apa yang diminta 30 proyek open source dari kontribusi yang dibantu AI

coding-agentsopen-sourceai-policy

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:

Apa yang diminta 19 aturan itu, dihitung per repositori: menyatakan bahwa Anda memakai AI, 15; orang yang mengirim bertanggung jawab dan harus memahami perubahannya, 12; deskripsi, komentar, atau pesan commit ditulis oleh manusia, 10; aturan tentang trailer commit, 9; tidak ada pull request massal atau otomatis, 7; issue atau persetujuan maintainer sebelum pull request, 6

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.

Kapan masing-masing dari 19 repositori yang punya aturan tentang kontribusi AI pertama kali menambahkannya, per setengah tahun: CPython pada Juli sampai Desember 2024; tidak ada pada Januari sampai Juni 2025; spec-kit, LangChain, Kubernetes, dan MLflow pada Juli sampai Desember 2025; Deskflow, transformers, trl, TypeScript, pydantic-ai, garak, huggingface_hub, peft, dan Strands Agents pada Januari sampai Juni 2026; workers-sdk, Rust, Node.js, MLX, dan codebase-memory-mcp pada Juli sampai September 2026

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!"

Baris-baris dari tiga template pull request, dalam terjemahan. ml-explore/mlx, .github/pull_request_template.md, baris 1 dan 2: "☑️ Saya mengerti bahwa menggunakan AI untuk menulis deskripsi PR dilarang keras" dan "Pengungkapan penggunaan AI:". strands-agents/harness-sdk, .github/PULL_REQUEST_TEMPLATE.md, baris 1 sampai 3: "## Human Overview", lalu sebuah komentar: "Jika agen AI membuat draf PR ini, manusia harus memberi ringkasan singkat di sini dengan kata-katanya sendiri. Agen AI TIDAK BOLEH mengisi bagian ini. Lihat team/AI_USAGE_POLICY.md. (50 kata)". langchain-ai/langchain, .github/PULL_REQUEST_TEMPLATE.md, baris 11: "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:

Apa kata 9 dari 30 repositori tentang trailer co-author AI. Wajib: MLflow, Co-Authored-By: Claude untuk perubahan dari Claude Code; garak, Co-authored-by yang menyebut tool AI-nya; spec-kit, Assisted-by dengan agen dan modelnya, sambil mempertahankan trailer yang ditambahkan tool; Node.js, Assisted-by dengan nama agennya. Dilarang: Kubernetes, co-author AI, assisted-by, dan trailer serupa; Rust, trailer Co-Authored-By; pydantic-ai, Claude sebagai co-author; Deskflow, tag co-author untuk LLM; Node.js, Co-authored-by atau Signed-off-by milik agen itu sendiri. Diizinkan: codebase-memory-mcp

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:

Aturan-aturan ini hanya berfungsi kalau agen membaca file itu dan mematuhinya.

Yang terjadi pada kiriman saya

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

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.