我误用 Claude 复制了 DarkHours.app
Mea Culpa – Dark Hours
上周我发布了一个名为 Dark Hours 的网站工具,用于展示夜间天空景象。然而,一位开发者指出,我的项目与他开源的 DarkHours.app 高度相似,甚至连他已修复的 Bug 都被复现了。意识到问题后,我决定将域名直接重定向给他,并取消原定的 iOS 应用计划。我深知自己在使用 AI 生成项目时过于草率,未充分核实是否侵犯他人成果。这次经历让我深刻反思:AI 虽能提高效率,但责任始终在人。未来我将不再用 Claude 这类工具直接构建网页应用,仅在调试和提问时适度使用。
我对自己不负责任地使用 AI 来构建这样一个项目表示歉意。
HN 评论区
277- user43928
在之前的 HN 帖子里,我得到的印象是:
这位开发者的占星 App(含塔罗牌功能)被 Apple App Store 拒之门外,因为该平台禁止占星类应用。
随后,他用一个克隆版——如果不是完全一样的开源天文应用“Dark Hours”——替换了原 App 的内容,甚至连名字都照搬了。原版在这里:https://darkhours.app
接着,这位开发者联系了 John Gruber,后者写了一篇文章,声称 Apple 的审核人员将一款优秀的科学天文应用误认为是占星应用。开发者在文章发布前审阅过该文。
然而后来发现,开发者忘了提及他最初确实上传过一款占星应用进行审核。Gruber 觉得自己被耍了,并指出尚不清楚是否曾向 Apple 提交过包含新天文应用的更新版本:https://daringfireball.net/2026/08/retraction_app_store_reje...
现在这位开发者似乎声称,他只是在用 Claude 工作时不小心克隆了那个开源应用。
我可不买账。
- InsideOutSanta
那里肯定出了很严重的问题,而且我不确定这仅仅是 Claude 连 bug 都照搬地复制了一个现有项目。更多背景信息,请参见 Gruber 在 Daring Fireball 上的这篇帖子:
https://daringfireball.net/2026/08/retraction_app_store_reje...
- chuckadams
是啊,那个邪恶的大 AI 让你连名字都照搬地抄袭了整个项目,还就审核过程对所有人撒谎。我一点都不信。
- cube00
如果连误导 John Gruber 这件事都没提,更别提道歉了,那这算什么自我反省(mea culpa)?
- pohl
用来形容这篇帖子散发出的气味的有趣且实用的公关术语是:“有限披露”(limited hangout)。
(这是一种危机公关策略:当掩盖故事失败后,组织或个人承认秘密或丑闻的一部分,同时仍然隐瞒最具破坏性的关键事实。)
- mechanicum
我很想看看另一个仓库,以及导致这两个结果的具体提示词(prompts)。
是 Godier 连名字都照搬地复制了另一个人的仓库,并试图将其冒充为自己的作品吗?这似乎是显而易见的结论,尽管这种行径大胆到了疯狂的地步。
还是说这是 Claude 响应某个提示词而复制的仓库?如果 Claude 复制了一个由 Claude 通过“氛围编码”(vibe-coded)生成的项目,那还能真的说是抄袭吗?
或者,这仅仅是当你提示 Claude 构建一个天文应用并让它自由发挥时,它统计上最可能吐出的结果?
- mark_l_watson
他做对了。Claude 复制现有项目来回答我的某个提示词,或者在 Claude Code 中复制整个项目,这种想法简直是噩梦场景。
我几乎已经放弃使用那些万亿参数量的模型,转而使用较小的开源权重模型,希望它们能过滤掉受版权保护的细节。目前 deepseek-v4-flash-0731 似乎通常能完美满足我的需求。
我看到 Cees de Groot 发帖讨论了 LLM“氛围编码”的项目中包含各种受许可材料的问题,我认为他说得对。
也许这也是为新项目选择 AGPL 协议的一个好理由?我决定在我最新的趣味项目中使用 AGPL:https://github.com/mark-watson/racket-coding-agent(这是我个人用 Racket Scheme 编写的 AI 编程辅助工具)。我所做的一切都是开源或开放内容的书籍,所以我乐意让我所做的一切既供人类使用,也用于 AI 训练;不过:不小心处于未能适当承认他人工作的位置,这确实令人害怕。
- moritzwarhier
> 虽然我直到昨天之前确实从未见过 DarkHours.app,但我草率地依赖 AI 生成项目,却没有下功夫去确认它是否与现有项目高度相似。这是我的错,我为我发布的内容负责。
措辞极具说服力,但在快速浏览了此事的来龙去脉且不知作者身份后,这也很可能只是以下指令的推理结果:
“针对这篇博客 <url> / bsky 线程 <url> 写一份令人信服的道歉和辩护声明。”
“我完全措手不及,这里我是在真诚、无私地努力!”