重點摘要
AI 寫了一個「複製品」,問題是:它知道自己在複製嗎?
Godier 用 Claude 生成的天文 app 與現有開源項目幾乎一模一樣,連已修復的 bug 都被複製——社群對此是否屬偶發事件存在真正分歧。
Gruber 因未核實被迫發出 24 年首次正式撤稿,Godier 公開道歉——事件從爆發到落幕不到 48 小時,展示社群監督在 AI 時代的效率。
AI 讓開發門檻歸零,盡職調查的責任反而更重——「Claude 替我做的」不是法律或道德意義上的有效免責,平台靜態審核也面臨結構性挑戰。
前情提要
Dark Hours 事件始末——從 AI 生成到 App Store 下架
2026 年 1 月,獨立開發者 Terry Godier 向 Apple App Store 提交佔星應用 Asterly,內含每日塔羅牌功能。App Review 依 Guideline 4.3(b) 拒絕——該條款因算命詐騙 app 氾濫而明令限制新的占星類應用上架。4 月,App Review Board 維持原判。
心灰意冷的 Godier 委由 Claude 生成天文學網頁工具 Dark Hours(darkhours.io) ,功能是追蹤夜空中可觀測的天體。與佔星術截然不同,這個方向不受 Guideline 4.3(b) 限制,看似合理出路。
2026 年 8 月 7 日,科技博主 John Gruber(Daring Fireball) 在 Godier 提供草稿審閱後發文炮轟 Apple 審查失誤。然而 Godier 在草稿中刻意隱瞞了最初佔星 app 被拒的事實——這正是整件事演變成道德風波的起點。
文章發酵不到一天,開源項目 DarkHours.app 的原始開發者 Miguel Beher 在 Bluesky 聯繫 Godier,指出兩個項目驚人地相似:不只功能一致,連 Beher 後來才修復的特定 bug,都原封不動出現在 AI 生成版本中。
事發不到一小時,Godier 將域名重定向至 Beher 的原始項目,宣布放棄 iOS 版本計畫。2026 年 8 月 9 日,Gruber 發出執筆 24 年首次正式撤稿。
Godier 則在部落格發表道歉文《Mea Culpa – Dark Hours》,承認過於依賴 AI 生成整個項目而未盡驗證之責。整個連鎖反應不到 48 小時完成,凸顯了社群監督機制在 AI 時代的效率。
社群激辯:AI 輔助開發的道德灰色地帶
事件在 Hacker News 引發激烈辯論。核心問題只有一個:Claude 真的有辦法在未明確指示的情況下,精確複製另一個開源項目——包括連 bug 一起複製嗎?
支持「不可能是意外」的一方認為,bug 級別的精確複現已超越巧合的合理界限。HN 用戶 carbyau 直言,若 AI 從訓練語料中抽取描述並符合現有開源 app,人類才是最終應該驗證輸出物的那一方。
HN 用戶 arcfour 也從實際使用經驗佐證:他多次讓 Claude 查看第三方 repo 作為參考素材,從未有一次在未明確指示下複製出如此接近原版的輸出——AI 通常還會自動加上來源標注。
另一派則持開放態度。HN 用戶 bartread 指出,若開發者完全未深入了解自己建造的東西,確實可能在不自知的情況下完成複製——這揭示了 AI vibe coding 時代更廣泛的問題:「理解自己的代碼」這個基本前提已不再成立。
HN 匿名評論者點出核心命題:「我們對自己的代理人所做的事負有個人責任,『Claude 搞的』不是有效的藉口。」這道裂縫不只是針對 Godier 的審判,更是對 AI 輔助開發時代整體問責框架的拷問。
Apple 審核機制面對 AI 時代的結構性挑戰
此案最具諷刺意味的結論是:Apple 的審核系統在這個故事裡,其實做對了。被拒的是含塔羅牌功能的佔星 app Asterly,而非天文學工具 Dark Hours——兩者性質截然不同,審核結論完全符合 Guideline 4.3(b) 的邏輯。
名詞解釋
Guideline 4.3(b) :Apple App Store 審核準則條款,明令限制新的算命、占星、塔羅類應用上架,以防範詐騙 app 氾濫。
然而 AI 大幅降低仿製成本後,審核員將如何辨別「AI 生成的複製品」與「合法獨立開發」?若 Godier 真的在提交前未發現此問題,Apple 的靜態審核程序未必能攔截——功能相似性的判斷難以自動化,且兩個 app 並未被同時送審。
X 用戶 @shiri_shh 描述了一個 App Store 開發者都能感受到的現實:人們把 App Store 當成 Medium 部落格,一個接一個地吐出 app,全部零用戶、零收入。當 AI 讓開發成本歸零,審核量的爆炸性增長將迫使 Apple 重新思考靜態審核的可持續性。
獨立開發者的生存困境與平台責任
HN 引述的 Godier 心路歷程,道出了許多獨立開發者的共同情緒:第一次被拒時憤怒如火;第二次被拒,陰謀論悄然滋生;直到理性歸位,才開始思考是否走錯了路。這種情緒弧線揭示了 App Store 黑盒審核對開發者的心理衝擊。
Godier 的道歉文承認了問題核心:在 web 端,他直接讓 AI 完整生成整個項目,未自行驗證是否與現有作品高度重疊。MIT 授權的版權聲明要求、開源項目的使用規範,這些不是 AI 會替你守護的邊界,而是開發者必須主動確認的義務。
HN 用戶 fasola 指出,Godier 的懺悔書涵蓋了 app 複製部分,卻沒有正面處理向 Gruber 說謊的問題——而後者才是更嚴重的失當。平台不是唯一的守門人,開發者也不能把盡職調查的責任轉嫁給 AI 工具。
多元觀點
正方立場
「AI 替我做的」是需要被認真對待的減責因素,而非無效藉口。AI 工具的訓練資料涵蓋大量開源代碼,在用戶未明確指示的情況下,仍可能生成與特定項目高度相似的輸出。
這是一種新型態的技術風險,現行的法律和道德框架尚未完整回應。Godier 並未將 Beher 的 repo 明確餵給 AI,若 AI 自主選擇了相似的實作路徑,責任歸屬需要更細緻的判斷,不能一刀切地等同於人工複製。
MIT 授權本身允許衍生使用,問題在於 copyright notice 的保留,而非功能複製本身是否違法——這個技術性問題值得更冷靜的法律討論,而非道德審判。
反方立場
「Claude 搞的」不是有效的免責藉口。開發者對自己發布的所有代碼負完全責任,無論來源是手工撰寫、複製貼上,還是 AI 生成。
bug 級別的精確複現——包括 Beher 後來才修復的特定 bug——已超越合理巧合的範圍。這種精確性強烈暗示 prompt 中包含了原始項目的描述或連結,而非隨機相似。
更嚴重的問題是 Godier 向 Gruber 提供草稿時,刻意隱瞞了最初佔星 app 被拒的事實。這不是 AI 工具的問題,而是人的主動選擇——這使整起事件的道德評價超出了「技術意外」的框架,讓所有以「AI 自動複製」為由的辯護都顯得蒼白。
中立/務實觀點
真正的問題不是「AI 做了什麼」,而是「開發者有沒有驗證」。盡職調查義務在 AI 時代並未消失,只是改變了形式。
過去,開發者被期待理解自己撰寫的每一行代碼。在 AI vibe coding 時代,這個期待轉變為:必須能夠驗證 AI 生成物的功能性、安全性,以及是否侵犯他人作品——即使不逐行閱讀代碼。
這道新義務的標準尚未被法律或平台明確定義。Godier 案的貢獻在於它讓這個問題第一次以具體事件的形式,擺在所有使用 AI 輔助開發的獨立開發者面前——這是一個集體必須回答的問題。
實務影響
對開發者的影響
使用 AI 完整生成一個項目後,不能直接視為自己的原創作品提交。最低限度的驗證義務包括:確認功能設計無高度相似的現有作品、確認開源授權的 copyright notice 已保留,以及確認 app 的名稱和品牌設計未與現有項目重疊。
這些步驟在 AI 生成前幾乎不需要思考,但當 AI 可以在幾分鐘內生成一個完整項目時,它們反而變成不可跳過的前置步驟。
對團隊/組織的影響
AI 輔助開發的品質門禁需要被制度化。若 code review 時不需要說明 AI 生成代碼的來源,就等同於放棄了最後一道來源驗證的機會。
組織層面應建立「AI 生成代碼透明度」要求:在 commit message 或 PR 描述中標注 AI 生成的比例和使用工具,並在 review 流程中加入相似性確認環節。
短期行動建議
- 在個人開發工作流程中,AI 生成完整項目後至少執行一次 GitHub Code Search,確認無高度相似現有作品
- 保留 AI prompt 歷史記錄,作為來源透明度的備份
- 向他人展示或發布 AI 生成的項目前,確認已完整理解其核心功能邏輯
社會面向
產業結構變化
AI 工具正在重構獨立開發者的工作模式,同時也在重構平台的審核挑戰。當任何人都能在幾小時內生成一個功能完整的 app,App Store 的審核量將以難以預測的速度增長,而現有的靜態審核程序難以應對 AI 生成複製品的識別需求。
這不只是 Apple 的問題。任何依賴人工審核的平台——npm、PyPI、GitHub Marketplace——都面臨相同的結構性挑戰。
倫理邊界
此案的核心倫理問題是代理問責 (agency accountability) :當 AI 成為開發過程的主要執行者,人類的道德責任是否因此稀釋?
名詞解釋
代理問責 (agency accountability) :在人類委託 AI 執行任務的關係中,最終責任歸屬的判斷框架——即無論代理工具如何自動化,委託方仍是責任主體。
社群的主流答案是:不。無論工具多麼自動化,發布決定仍是人類的選擇,因此責任也仍是人類的。但「AI 是否在未被告知的情況下複製」這個事實問題,留下了真正的認識論空缺——我們尚無可靠方法判斷一個 AI 輸出是否源自特定訓練資料。
長期趨勢預測
- App Store 等平台可能引入 AI 生成內容的強制透明度要求,要求開發者申報使用的 AI 工具及生成比例
- 開源社群將發展出更精密的代碼相似性偵測工具,針對 AI 生成代碼進行特定的指紋分析
- 「AI 盡職調查」將成為獨立開發者法律責任討論中的新術語,類似於現有的「合理謹慎」標準
唱反調
Claude 的訓練資料涵蓋大量開源代碼,在用戶未明確指示的情況下,仍可能生成與特定項目高度相似的輸出——bug 級別的複現或許是訓練資料污染的結果,而非開發者故意行為,現行法律框架尚未回應這種新型態責任歸屬問題。
Apple Guideline 4.3(b) 設計初衷是防範詐騙,但其寬泛的定義讓合法的占星教育類或文化研究類 app 也難以上架,過度限制可能反而推動開發者走向更難審核的灰色地帶。
社群風向
沒有辦法讓 Claude/AI 在未被明確告知的情況下,精確複製另一個人的 app,包括相同的名稱與品牌設計。若你給了一段符合某個現有開源 app 的描述,Claude 當然會從訓練語料中抽取——這不正是它平常做的事嗎?最終負責驗證輸出物的,還是人類自己。
我認為完全有可能在不知情的情況下用 Claude 複製了一個 app,前提是你沒有盡職調查——沒有花力氣深入了解自己究竟建造了什麼。這是一個更普遍問題的極端案例:程式碼來源追蹤。
我曾多次讓 Claude 和 Codex 查看第三方 repo 作為參考素材,從來沒有一次它們在我未明確指示前就複製了它。有時它們會不停透過大量 API 呼叫讀取 repo,但輸出結果也遠遠不如原版接近,而且通常還會自動加上來源標注。
這份懺悔書涵蓋了(意外的?)app 複製部分,但沒有涵蓋向 Gruber 說謊的部分,而後者似乎更嚴重。
Apple App Store 正被 AI 垃圾淹沒!人們把 App Store 當成 Medium 部落格,一個接一個地吐出 app,全部零用戶、零收入。
炒作指數
行動建議
使用 AI 生成完整項目後,執行一次 GitHub Code Search 確認無高度相似的現有開源項目,並確認 MIT 等授權的 copyright notice 已保留。
在團隊 AI 輔助開發流程中加入「來源盡職調查」環節:PR 描述中標注 AI 生成比例與使用工具,code review 時確認 AI 輸出的相似性。
關注 Apple App Store 是否引入 AI 生成 app 的透明度要求,以及開源社群是否發展出針對 AI 生成代碼的版權侵害自動偵測機制。