SPECMINE: A Large-Scale Corpus of Spec-Driven Development Artifacts
本文介绍了 SPECMINE,这是一个大规模语料库,它汇集了来自公共 GitHub 仓库的近 57 万个规范文件和超过 5,000 个相关的拉取请求,旨在为规范驱动开发(Spec-Driven Development)构件及其被 AI 智能体转化为代码的过程提供首次全面的研究。
原始论文采用 CC BY 4.0 许可(http://creativecommons.org/licenses/by/4.0/)。 这是对下方论文的AI生成解释。它不是由作者撰写或认可的。如需技术准确性,请参阅原始论文。 阅读完整免责声明
在软件创作的世界里,长期以来一直存在着一种关于程序构想与程序本身之间的根本张力。传统上,开发者会在脑海中构思一个愿景,或者在餐巾纸上随手涂鸦,然后花费数月时间将那个愿景转化为代码。代码是主要的产物,是需要被编写、审查和维护的东西。然而,最近出现了一种新的实践,其顺序被颠倒了过来。在编写一行代码之前,开发者通常会借助人工智能工具的帮助,起草一份详细且结构化的构建需求描述。这份用自然语言编写的描述充当了蓝图的角色。随后,一个AI智能体(agent)会阅读这份蓝图并生成实际的软件。这种转变意味着,项目中最重要的文档不再是代码,而是规范说明书(specification)本身。理解这些规范是如何编写的、如何变化的,以及它们最终如何变成可运行的软件,现在成为了任何研究技术制造方式的人士必须面对的关键问题。
直到现在,还没有人能为这一新景观绘制出一张清晰的地图。虽然已经出现了数十种辅助开发者编写这些蓝图的工具,但它们所生成的实际文档却从未经过大规模的研究。卡内基梅隆大学的研究员 Shyam Agarwal 和 Bogdan Vasilescu 通过创建 SPECMINE 改变了这一现状,这是一个包含这些规范文档及其生成的代码的海量集合。他们从 GitHub 的公共项目中收集了近五十万个规范文件,捕捉了这一实践在 2025 年和 2026 年诞生时的快照。这个集合不仅包括规范的文本内容,还包含了这些项目所属的完整历史、编写者,以及当规范更新时所做的特定代码更改。这是软件界首次能够详细观察在 AI 时代,一份书面描述是如何转化为一个功能完备的程序的。
研究人员通过两种主要方式构建了这个集合,以确保能够捕捉到全貌。首先,他们寻找名为 “spec.md” 或 “specs.md” 的文件,这是大多数新工具使用的标准命名方式。仅此一项搜索就从超过 73,000 个不同的仓库中找回了超过 470,000 个文件。随后,他们进行了第二次独立的搜索,针对名为 AWS Kiro 的特定工具,该工具使用不同的命名约定,将需求、设计和任务分为独立的文件。这又增加了 98,000 个文件。通过结合这些搜索,他们创建了一个涵盖目前使用中的绝大多数工具的广泛普查集。该集合中的每个文件都标记了其所属项目的信息,例如项目的关注人数(watchers)、使用的编程语言以及生成该规范的具体工具。
为了理解这些书面计划究竟是如何引导代码生成的,研究人员更进一步。他们专注于一小组经过精心挑选的热门项目,并追踪了每一个涉及规范文件的代码更改请求。他们发现了近 6,000 个这样的请求,即“拉取请求”(pull requests),在这些请求中,开发者或 AI 智能体同时更新了蓝图和代码。这使他们能够看到构想与实现之间的直接联系。在许多情况下,规范和代码在同一次更新中共同发生变化,这证实了蓝图正被用于实时驱动工作。然而,研究人员也指出,这并不是唯一的发生方式;有时是先写好计划,代码随后而来;或者代码先写好,计划随后才被添加。数据表明,虽然同步变化很常见,但这种关系是复杂的,并且因项目而异。
除了仅仅统计文件数量外,团队还分析了这些文档的结构,以了解它们的实际形态。他们发现,这些规范说明书并非随机的笔记,而是通常遵循特定的模式,例如使用清晰的标题、列表或结构化格式,使人类和机器都能轻松阅读。研究人员还建立了一个系统来追踪文档内的引用关系。如果一份规范提到了某个特定文件或需要完成的任务,系统会检查该文件是否确实存在于项目中,或者该任务是否已被完成。这揭示了一些项目中的显著差距:有数千份规范提到了从未在代码中出现的项目或任务。这表明,尽管编写规范说明书的做法正在兴起,但确保这些规范被完全实现的纪律性仍处于演进阶段。
该集合还提供了一个观察编写者身份的窗口。由于数据包含了每一次变更的历史,研究人员可以观察一份规范是由人类编写、由 AI 生成,还是由两者混合而成。他们可以追踪这些文档被更新的频率,以及它们在被废弃前保持活跃状态的时间。这种细粒度的信息使得以前无法回答的问题变得可以回答,例如:一份编写良好的规范是否会导致最终代码产生更少的错误,或者是否某些类型的项目更有可能采用这种新的工作方式。数据表明,这种实践正在迅速传播,绝大多数此类文件出现在短短两年内,标志着软件开发进入了一个崭新的时代。
研究人员将整个数据集向公众开放,并以一种允许任何人探索构想与代码之间联系的方式进行组织。他们提供了规范的原始文本、项目的历史记录以及两者之间的链接,且没有隐藏贡献者或项目的身份,因为一切都源自公共资源。这种透明度意味着其他科学家可以验证研究结果、提出新问题,并研究这种实践如何随时间演变。这项工作并不声称这种新方法是完美的,也不声称它已经解决了所有软件开发的问题。相反,它提供了第一块坚实的证据基础,为一片此前未知的领域绘制了一张大规模的地图。它表明,尽管编写规范的工具已经就绪,且工作的规模正在增长,但人类与机器如何协作将这些文字转化为软件,仍是一个正在摸索的过程中,且每个项目都在经历自己的探索。
您所在领域的论文太多了?
获取与您研究关键词匹配的最新论文每日摘要——附技术摘要,使用您的语言。