NitrousTracker开发者公开AI对项目开发的影响
来源标题:The NitrousTracker AI Disclosure Post
NitrousTracker开发者发布博客,详细说明AI在该项目开发中的实际使用情况。作者逐一审查了构成二进制文件的每一段代码,并披露三位开发者曾一致决定不使用生成式AI编写代码。此举旨在回应社交媒体上该项目被赞为反AI立场的事件,提供完整透明度。
以下正文由 AI 翻译自 Hacker News 最新(原文版权归原站所有),可能存在偏差,重要内容请以原文为准。
去年年底,我决定检查并记录一个项目的依赖树,而这个项目的依赖树恰好完全由我掌控:NitrousTracker,一个仍在维护的 Nintendo DS 自制音乐 tracker 分支。
最初,我这样做是出于了解其许可状况的愿望。然而,鉴于西方社交媒体上最近发生的事件——包括这个 tracker 过去曾因反 AI 立场而受到称赞——我觉得提供完全透明的信息可能具有社会价值,说明 AI 究竟在近几个月如何影响了它的开发过程。我将尝试通过逐一检查每一段对二进制文件有实质性贡献的代码来实现这一点。
我的意图是记录当前状况,因为它影响着我作为程序员的一项爱好工作。请不要就这些事情去打扰任何相关项目——不要群起围攻。此外,这是一篇个人博客文章,不代表任何其他现任或前任 NitrousTracker 开发者的观点。
tracker 的主要源代码。在将其提交给项目三位开发者讨论后,我们一致决定不使用生成式 AI 为项目编写任何代码。这包括我们维护的另外三个子仓库:libdsmi、libntxm 和 tobkit。
因此,截至写作时,NitrousTracker 不使用生成式 AI。
libdsmi 是用于促进 MIDI 设备与 DS 主机之间连接的库。
NitrousTracker 收到过一个与此功能相关的 vibe coding pull request。该变更涉及添加对 HobbyChop mDS 适配器的支持。它被拒绝了,原因是它没有与 libdsmi 集成,而是在 NitrousTracker 中创建了第二条完全独立的 MIDI 处理代码路径。自那以后,没有人站出来以非 vibe coding 的方式实现同样的功能。由于主要开发者通常使用 Slot-2 USB 适配器来实现相同目的,并且缺乏 mDS 进行测试,因此该功能不太可能在短期内以非 vibe coding 的方式交付。
截至写作时,libdsmi 除此之外不使用生成式 AI。
TinyUSB 是一个 MIT 许可的 USB 协议栈实现,我最为熟知的是它被用作 Raspberry Pi Pico 官方 SDK 的一部分。它由 libdsmi 打包,以通过我开发的驱动程序支持 DS Linker Slot-2 USB 适配器的 MIDI 功能。虽然这些设备曾有官方 USB 库,但它基于 Keil 公司的专有代码,很可能以侵权方式使用。
TinyUSB 大量使用了 LLM。Claude、Codex 和 Copilot AI 工具链至少自 2025 年中期起就已公开披露用于代码和代码审查,并且其使用随时间不断增加。为了尝试保持无 AI 状态,该项目被冻结在 2024 年 10 月 30 日的版本上——这要求省略上游添加的一些功能,比如对 MIDI 2.0 标准的支持。
libntxm 是用于处理声音相关文件的播放、加载和保存的库,特别是 .mod、.xm 和 .wav 文件。
截至写作时,libntxm 不使用生成式 AI。
自 NitrousTracker 0.7.0 起,libntxm 纳入了来自 ft2play 的大量代码,ft2play 是 8bitbubsy 编写的 FastTracker II 的 .xm 播放例程的移植版。这一选择是出于互操作性原因——这样,在 NitrousTracker 中播放和编辑的音乐听起来应该与其他 .xm tracker 和播放器中的效果非常接近。
ft2play 不使用生成式 AI。由于该项目实际上已经完成,这种情况不太可能改变。
tobkit 是用于处理在 Nintendo DS 主机上绘制 tracker 用户界面的库。
截至写作时,tobkit 不使用生成式 AI。
BlocksDS 是 Nintendo DS 的软件开发工具包,最初是作为 devkitPro 团队开发的类似组件的敌对分支而诞生的。虽然它由 AntonioND 维护,但我曾是该项目的一名共同维护者。虽然我不再对其行使编辑控制权,但它继续与我所维护的一套开发工具一起发布,因此需要与我协调。
BlocksDS 的贡献指南包含一项反 AI 政策。因此,截至写作时,BlocksDS 不使用生成式 AI。
dswifi 是 BlocksDS 附带的 Wi-Fi 网络驱动程序。
截至写作时,dswifi 不使用生成式 AI。然而,它至少收到了两份据称是使用 AI 生成的问题报告,这些报告已被确认为有效 bug 并得到修复。
lwIP 是作为 dswifi 一部分附带的 TCP/IP 协议栈,取代了早期的自研 sgIP。它目前由 Simon Goldschmidt 维护。
截至写作时,我不知道有任何证据或声明表明 lwIP 使用生成式 AI。
Mbed TLS 是由 TrustedFirmware 开发的嵌入式密码学库。其代码库的一小部分被包含在 dswifi 中,用于处理连接 WPA/WPA2 网络。
对 Mbed TLS 的许多贡献确实使用了 Claude 等生成式 AI 工具。我尚未研究 dswifi 中附带的具体文件是否受到影响。
FatFs 是由 ChaN 开发的 FAT 文件系统驱动程序。
目前不清楚 FatFs 在开发中是否使用 AI;我认为这不太可能。然而,最近一次使用 AI 进行的漏洞扫描声称发现了七个 bug,其中开发者认为三个是需要修复的合法问题;另一个 bug 已经独立修复。
还有其他由 BlocksDS 附带和维护的组件。libnds 是 BlocksDS 附带的 DS 硬件支持库;grit 是图像转换工具;ndstool 是用于从 ELF 可执行文件构建 .nds 文件的程序。
鉴于它们共享同一维护者,截至写作时,这些组件均不使用生成式 AI。
(原文较长,此处译出前 6000 字,完整内容请点「打开原文」。)
正文由 探How 从来源站点 RSS 同步,内容未经改写;遇到排版缺失或需要图片、视频时请以原文为准。