AI 知識

AI 寫的程式測試全過,為什麼專案還是不收?別把「15 行」當通行證

你花了半天修好問題,測試也過了,準備把 AI 協助寫的程式送出去,卻發現專案可能根本不收這類貢獻。卡住的未必是技術,而是你把「能運作」和「能被接受」當成同一件事。

先把結論講清楚:別等寫完,才讀貢獻規則。測試、內容來源、投稿責任,要分開確認。

GCC 不是今天才突然下禁令

GCC 是 GNU 編譯器集合。其 AI 政策在 2026 年 7 月 29 日已有正式公告;本文於 2026 年 10 月 18 日重新查核,不是新禁令快訊。GCC 公告

現行政策暫不接受具有法律重要性、包含或衍生自 LLM 生成內容的貢獻。但不是所有 AI 使用都被禁止:非重要且明確標示的貢獻可由維護者接受,測試案例另有例外;不把輸出納入貢獻的分析、除錯等用途,也沒有一概禁止。從其他專案匯入的程式另有範圍規定。這是 GCC 自身的接收政策,不是對全世界程式碼的法律判決。GCC AI 政策

這個差別很實際:問 AI「這段為什麼壞掉」,與直接把它產生的實作送進專案,不該只用一句「有用 AI」混在一起。

「15 行」不是可以鑽的自動准收額度

GNU 維護者指引提到約 15 行,是在解釋著作權上重要的變更與文件要求;它同時提醒,同一人多次小修改可能累積成重要貢獻,規律重複的修改則不能只按行數理解。GNU 指引 6.2

因此,把程式壓成十四行、拆成很多小補丁,都不能靠這個數字直接推論「現在一定能收」。也不能反過來宣稱,超過十五行就違反台灣法律。那不是這份指引正在回答的問題。

實務上遇到邊界不清,先問專案維護者怎麼判定;不要讓 AI 替你宣布符合規則,更不要改寫內容後隱藏它的來源。

測試回答的是功能,不是所有接收條件

GCC 的貢獻說明要求驗證修改目的、做回歸測試,並測試實際打算提交的那份變更。提交時也要交代問題與測試平台、結果。GCC 貢獻說明

這些證據很重要,但「測試通過」不能替另外兩個問題作答:目標專案是否接受這類內容?你是否理解並願意負責這份修改?

Linux 的工具生成內容指引也要求提交者理解整份貢獻,說明工具如何參與、影響哪些部分、如何測試;維護者仍可拒收或要求更多檢查。透明不是免審通行證,也不是另一個專案的規則能直接搬過來用。Linux 指引

投稿前,先填得出這張表

下表是本文整理的工作建議,不是任一專案官方的統一驗收協定。

先問什麼 留什麼證據 常見誤判
我要交給哪個專案? 規則網址、查核日、適用版本 別的專案收,所以這裡也會收
AI 參與到哪裡? 協助分析、產生內容及人工修改的範圍 改過變數名,就算完全自己寫
這份修改真的有效嗎? 對應問題的重現步驟、前後測試與未測項 只看終端顯示綠色,沒確認測的是哪版
我能解釋失敗情境嗎? 邊界條件、替代作法、尚存限制 AI 解釋得很完整,等於自己理解
誰負責送出與回覆? 明確的人類提交者及必要聲明 補個工具標籤,就可以自動送出

對 GCC 而言,政策中的人類提交與揭露要求,也不是把原本不接受的內容變成可接受的捷徑。不要只做表格最後一列,忘了第一列。

一個假想情境:省下的不是寫字時間,而是白做的時間

假設你要修某專案的字串處理錯誤,AI 幫你產生新函式,手邊幾個例子都過了。以下純為假想,不是 GCC 或 Linux 的真實補丁。

如果先送出再說,可能直到審查才發現規則不接受這類生成內容,或測試根本沒涵蓋空字串和不同編碼。此時多寫一段漂亮說明,也沒有補上缺口。

更好的順序,是開工前先看規則;確定方法適用後保留參與範圍,針對原問題測試,再列未測情境。如果規則不清,先停下來問,而不是先要求模型把來源洗掉。

我的立場是:AI 可以讓你更快提出修改,不能替你決定專案該不該接受。真正值得收藏的,不是哪個行數門檻,而是下一次投稿前,能不能把內容、證據與責任講清楚。

你用 AI 改過的程式,最難向別人解釋的是哪一段?

回文章列表