Paper: 2608.28497 Authors: Ahmed Hereiz, Yingzhe Lyu, Hao Li, Bram Adams, Ahmed E. Hassan Categories: cs.SE, cs.AI
The Gap
AI coding agents are increasingly extended through plugin marketplaces, and these repositories were empirically unexplored. That is a gap with a specific shape, because the artifacts differ from ordinary packages in a way that makes the usual software-engineering intuitions unreliable.
Traditional packages deliver functionality through source code. Agent plugins deliver functionality through a combination of natural-language instruction files, scripts, and configuration files. So the thing that determines behaviour is partly prose. That raises a question the field had not answered: are these maintained artifacts that co-evolve across components, or one-off artifacts that developers write once and do not need to revisit?
The distinction is not academic. If plugins behave like maintained software, then the whole apparatus of software engineering — versioning, dependency tracking, review, testing, release hygiene — is relevant to them. If they are one-off, most of that apparatus is overhead. And if they are a third thing, then the field’s existing tooling is aimed at the wrong object.
WHAT MAKES AGENT PLUGINS DIFFERENT
traditional package: functionality delivered via SOURCE CODE
-> the thing determining behaviour is code
agent plugin: functionality delivered via a
COMBINATION of
natural-language INSTRUCTION FILES
scripts
configuration files
-> the thing determining behaviour is PARTLY PROSE
|
v
[THE UNANSWERED QUESTION]
are plugins MAINTAINED artifacts that co-evolve
across components?
or ONE-OFF artifacts, written once and never revisited?
|
v
WHY IT DECIDES THE TOOLING
if maintained -> versioning, dependency tracking,
review, testing, release hygiene all apply
if one-off -> most of that apparatus is pure overhead
if a THIRD thing -> existing tooling aims at the wrong object
The Increment
One sentence: Before this paper, agent plugin marketplaces had no empirical account; after it, a study of 1,926 repositories, 8,351 plugins and 77,773 commits shows rapid growth, heavy agent authorship, and a maintenance dependency between prose and code that traditional software engineering does not have.
Core Mechanism
The scale is the foundation: 1,926 repositories hosting Claude Code plugin marketplaces, 8,351 plugins, 77,773 commits across 2,018 marketplaces. That is enough to make the structural findings general rather than anecdotal.
The marketplace is expanding rapidly — plugin-touching commit activity growing 8.8× over six months after the October 2025 launch. And the composition is concentrated: plugins targeting software engineering tasks account for 61.3% of all plugins. So the ecosystem is growing fast and is mostly about the thing the researchers study for a living.
Development is predominantly feature-driven. Feature commits occur at 39.6%, more than twice the rate of conventional open source software at 17.2%. That asymmetry is informative about what these artifacts are for: a community mostly adding new capabilities rather than fixing, refactoring or paying down debt. It is consistent with a young, rapidly expanding ecosystem where coverage matters more than consolidation.
Claude co-authors 34.9% of all commits. An agent writing a third of the commits in a plugin ecosystem is a notable fact about how this software is produced, and it bears on the maintenance question: if the author is often an agent, the cost of maintaining prose-plus-code may be lower than the traditional intuition suggests.
Four commit types carry substantially different meanings in plugin repositories than in traditional software: docs, perf, style and refactor. This is a measurement-validity finding, and it matters for anyone planning to study these ecosystems with established tooling — a taxonomy calibrated on ordinary repositories misreads what the categories mean here.
And then the result the paper is built around. Most component types evolve independently — which supports the one-off reading for those components — but within skills directories, natural-language instruction files and implementation scripts co-evolve at above-chance rates, with 78% of co-changes being functionally coupled. This is reported as a new class of maintenance dependency not observed in traditional software engineering.
The finding is precise enough to act on. It is not that plugins are maintained in general; it is that a specific pairing — the prose that instructs and the code that implements — moves together, and moves together for functional reasons. That is the coupling that does not exist when behaviour is determined by code alone, because in that case there is no prose to fall out of sync with.
SCALE AND COMPOSITION
1,926 repos | 2,018 marketplaces | 8,351 plugins | 77,773 commits
plugin-touching commit activity: 8.8x growth in SIX MONTHS
(after the October 2025 launch)
SWE-targeting plugins: 61.3% of all plugins
HOW DEVELOPMENT LOOKS
feature commits 39.6% vs 17.2% in conventional OSS
-> more than 2x, predominantly FEATURE-DRIVEN
Claude co-authors 34.9% of ALL commits
docs / perf / style / refactor carry SUBSTANTIALLY
DIFFERENT MEANINGS here than in traditional software
-> a measurement-validity problem for existing tooling
THE COUPLING
MOST component types evolve INDEPENDENTLY
-> supports the "one-off artifact" reading for those
BUT inside skills directories:
natural-language INSTRUCTION FILES
and IMPLEMENTATION SCRIPTS
co-evolve at ABOVE-CHANCE rates
78% of those co-changes are FUNCTIONALLY COUPLED
-> a NEW class of maintenance dependency, not observed
in traditional software engineering
Think of it as a recipe card stapled to the kitchen equipment. In most kitchens the equipment and the recipes are separate concerns: you can buy a new oven without editing your recipes, and you can rewrite a recipe without touching the oven. That is the “most component types evolve independently” result — and it is why the one-off reading is not simply wrong. But if a recipe says “fold the batter using the stand mixer’s dough hook” and the mixer is replaced with one that has no dough hook, the card and the machine must change together, because the instruction refers to the equipment. That is the skills-directory coupling: the prose and the code are functionally bound, and 78% of their joint changes are for that reason rather than coincidental. The practical consequence is that version-control tooling treating a documentation edit and a code edit as independent events will mis-summarise what happened.
Key Concepts
- Prose plus code as the delivery mechanism: plugin behaviour is determined by instruction files, scripts and configuration together. It is the structural difference from ordinary packages and the reason existing maintenance intuitions cannot be assumed to transfer.
- The one-off versus maintained question as a tooling decision: whether plugins are revisited determines whether versioning, dependency tracking and review are relevant or overhead. The paper’s answer is mixed, and the mix is the finding — most components independent, one component pair coupled.
- Prose-code functional coupling: 78% of joint changes between instruction files and implementation scripts are functionally coupled. It is a maintenance dependency with no analogue in code-only software, because there is no prose to synchronise.
- Commit-taxonomy validity failure: docs, perf, style and refactor mean substantially different things here. Measuring this ecosystem with a taxonomy calibrated on traditional repositories will systematically misclassify activity.
Framework Shift
Before (unexplored, intuitions borrowed from packages):
"agent plugins are like packages, but partly prose"
-> assume either maintained-software hygiene or one-off
-> measure with conventional commit taxonomies
-> no empirical basis for either practice
After (measured, with a mixed answer):
1,926 repos / 8,351 plugins / 77,773 commits analysed
-> rapid growth (8.8x), feature-driven (39.6%), agent-authored (34.9%)
-> MOST components evolve independently
-> prose and implementation script co-evolve, 78% functionally coupled
-> a new maintenance dependency class
-> and conventional commit categories mean something else here
From treating agent plugins as a variant of ordinary packages, to finding a mixed maintenance profile with one genuinely new dependency class, the core shift is that these artifacts are neither fully maintained software nor one-off scripts, and their tooling needs to reflect the specific coupling.
Expert Assessment
Problem choice: Very good, and it takes the empirical route where the field has been speculating. Agent plugin ecosystems are growing fast enough that their maintenance properties will matter, and asking the question before establishing the ecosystem’s conventions is the right order — the answer shapes what conventions should be.
Method maturity: This is a measurement study, and its quality is in the scale and the specificity of its conclusions. Nearly two thousand repositories and over seventy thousand commits is enough for structural claims, and the design does something careful: it does not force a single answer to “maintained or one-off”, but reports that most components evolve independently while one specific pair is structurally coupled. The 78% functional-coupling figure is the contribution, because it quantifies a dependency rather than asserting one exists.
Experimental integrity: The finding that four commit types carry different meanings is a validity check on the study’s own instruments, and reporting it is to the authors’ credit — it warns anyone replicating the work with standard taxonomies that the labels will not mean what they expect. The 34.9% co-authorship figure is reported as a fact about production without being over-interpreted. The honest limitation is that co-evolution measured through commit co-occurrence is evidence of coupling, not proof that the components could not be maintained separately; the 78% functional-coupling rate is what addresses that, and it depends on the classification of “functional”.
Writing quality: The question is posed in a form that admits a non-dogmatic answer — maintained artifacts, or one-off — and the paper’s willingness to answer “mostly the first, one exception” is what makes it useful. The abstract is dense with numbers but each supports a distinct claim. A worked example of one instruction file and its script changing together would make the new dependency class concrete for readers who will not read the statistics.
Verdict: strong accept — a large-scale empirical grounding for a fast-growing ecosystem, with a mixed answer that is more useful than either extreme and one finding that identifies a genuinely new class of maintenance dependency.
Takeaways
- Establish an ecosystem’s maintenance profile before importing conventions. Whether these are maintained artifacts decides whether release hygiene is necessary or overhead.
- Watch for prose-code coupling in your own agent tooling. If instruction files and scripts refer to each other, they must be versioned together, and treating them as independent changes will misrepresent history.
- Do not measure a new artifact type with an old taxonomy. Docs, perf, style and refactor mean something different in plugin repositories, so automated classification will be systematically wrong.
- Read the co-authorship figure as a production fact. With roughly a third of commits agent-authored, the cost of maintaining prose plus code is lower than the traditional intuition would suggest.
论文: 2608.28497 作者: Ahmed Hereiz, Yingzhe Lyu, Hao Li, Bram Adams, Ahmed E. Hassan 分类: cs.SE, cs.AI
缺口
AI 编程智能体正越来越多地通过插件市场来扩展,而这些仓库此前缺乏实证研究。这是一个形态特殊的缺口:这些产物与普通软件包有本质差别,足以让通常的软件工程直觉变得不可靠。
传统软件包通过源代码交付功能。而智能体插件通过自然语言指令文件、脚本与配置文件的组合来交付功能。也就是说,决定其行为的东西,有一部分是散文。于是引出一个此前未被回答的问题:这些插件是跨组件共同演化、被维护的产物,还是写一次就不必再回看的一次性产物?
这个区分不是学术性的。 如果插件表现得像被维护的软件,那么整套软件工程机制——版本管理、依赖跟踪、评审、测试、发布规范——都与它们相关。如果它们是一次性产物,那么这套机制大多是不必要的开销。而如果它们是第三种东西,那么现有的工具瞄准的就是错误的对象。
智能体插件的不同之处
传统软件包:通过「源代码」交付功能
-> 决定行为的是代码
智能体插件:通过以下「组合」交付功能
自然语言「指令文件」
脚本
配置文件
-> 决定行为的东西「有一部分是散文」
|
v
[未被回答的问题]
插件是「跨组件共同演化」的被维护产物?
还是「写一次就再不回看」的一次性产物?
|
v
为什么这决定了工具
若属被维护 -> 版本管理、依赖跟踪、评审、测试、
发布规范都适用
若属一次性 -> 那套机制大多是纯开销
若属「第三种」-> 现有工具瞄准了错误的对象
增量
一句话: 在这篇论文之前,智能体插件市场没有任何实证描述;在这篇论文之后,对 1,926 个仓库、8,351 个插件与 77,773 次提交的研究显示出快速增长、高度智能体署名,以及一种传统软件工程所没有的”散文与代码之间的维护依赖”。
核心机制
规模是基础:1,926 个仓库承载 Claude Code 插件市场,8,351 个插件,跨 2,018 个市场的 77,773 次提交。这足以让结构性发现是普遍的,而不是轶事性的。
市场在快速扩张——自 2025 年 10 月发布后的六个月内,触及插件的提交活动增长了 8.8 倍。而构成高度集中:面向软件工程任务的插件占全部插件的 61.3%。也就是说,这个生态既增长得快,又主要是在做研究者们自己天天研究的那件事。
开发以”功能驱动”为主。 功能类提交占 39.6%,是传统开源软件 17.2% 的两倍多。这种不对称说明了这些产物的用途:一个主要在增加新能力、而不是在修 bug、重构或偿还技术债的社区。这与一个年轻、快速扩张、覆盖面比巩固更重要的生态相符。
Claude 共同署名了全部提交的 34.9%。 在一个插件生态里,由智能体写下三分之一的提交,是关于”这类软件如何被生产”的一个重要事实;而它也与维护性问题相关:如果作者常常是智能体,那么维护”散文 + 代码”的成本,可能低于传统直觉所暗示的水平。
有四类提交在插件仓库中的含义与传统软件有实质不同:docs、perf、style、refactor。 这是一个测量效度层面的发现,对任何打算用现成工具研究这些生态的人都很重要——一套在普通仓库上标定出来的分类法,在这里会误读这些类别的含义。
接着是论文围绕其构建的那个结果。 大多数组件类型是独立演化的——这支持了那些组件的”一次性”读法——但在 skills 目录内部,自然语言指令文件与实现脚本以高于随机水平的比率共同演化,其中 78% 的共变是功能耦合的。 论文把它报告为一类在传统软件工程中未曾观察到的、新的维护依赖。
这个发现精确到足以据以行动。它不是说”插件总体上是受维护的”,而是说:某一对特定的东西——发出指令的散文与实现指令的代码——会一起动,并且是因为功能原因一起动。这正是当行为仅由代码决定时不会存在的耦合,因为那种情况下根本没有散文会与代码失去同步。
规模与构成
1,926 个仓库 | 2,018 个市场 | 8,351 个插件 | 77,773 次提交
触及插件的提交活动:六个月内增长 8.8 倍
(自 2025 年 10 月发布后)
面向 SWE 的插件:占全部插件的 61.3%
开发形态
功能类提交 39.6% vs 传统开源 17.2%
-> 两倍多,以「功能驱动」为主
Claude 共同署名「全部」提交的 34.9%
docs / perf / style / refactor 在这里的含义
与传统软件「实质不同」
-> 对现有工具而言是一个测量效度问题
耦合
「大多数」组件类型独立演化
-> 支持这些组件的"一次性产物"读法
「但是」在 skills 目录内部:
自然语言「指令文件」
与「实现脚本」
以「高于随机」的比率共同演化
其中 78% 的共变是「功能耦合」的
-> 一类「新的」维护依赖,传统软件工程中未见
可以用**“把菜谱卡片和厨房设备钉在一起”来理解这件事: 在大多数厨房里,设备与菜谱是彼此独立的关切:你可以换一台新烤箱而不用改菜谱,也可以重写菜谱而不用碰烤箱。这就是”大多数组件独立演化”那条结果——也正是”一次性”读法并非全错的原因。 但如果菜谱上写的是”用立式搅拌机的和面钩翻拌面糊”,而搅拌机被换成了一台没有和面钩的,那么卡片和机器必须一起改**,因为那条指令指涉了设备。 这就是 skills 目录里的那种耦合:散文与代码在功能上被绑定,而它们 78% 的共同改动都是因为这个原因,而不是巧合。 其实际后果是:把”文档修改”与”代码修改”当作彼此独立事件的版本控制工具,会错误地概括曾经发生过什么。
关键概念
- 以”散文 + 代码”作为交付机制: 插件行为由指令文件、脚本与配置共同决定。这是它与普通软件包的结构性差别,也是”既有维护直觉不能假定可迁移”的原因。
- 把”一次性 vs 被维护”当作一项工具决策: 插件是否会被回看,决定了版本管理、依赖跟踪与评审究竟相关还是纯开销。论文给出的是一个混合答案,而这个混合本身就是发现——大多数组件独立,只有一对组件耦合。
- 散文—代码的功能耦合: 指令文件与实现脚本之间 78% 的共同改动是功能耦合的。这是一种在”只有代码”的软件中没有任何对应物的维护依赖,因为那里根本没有散文需要同步。
- 提交分类法的效度失效: docs、perf、style、refactor 在这里的含义实质不同。用一套在传统仓库上标定的分类法来度量这个生态,会系统性地误分类其活动。
框架转变
之前(未被探索,直觉借用自软件包):
"智能体插件像软件包,只是部分是散文"
-> 要么假定「被维护的软件」那套规范,要么假定「一次性」
-> 用传统的提交分类法来度量
-> 两种做法都没有实证依据
之后(经过测量,答案是一个混合):
分析了 1,926 个仓库 / 8,351 个插件 / 77,773 次提交
-> 快速增长(8.8 倍)、功能驱动(39.6%)、
智能体署名(34.9%)
-> 「大多数」组件独立演化
-> 散文与实现脚本共同演化,78% 为功能耦合
-> 一类新的维护依赖
-> 而传统的提交类别在这里含义不同
从”把智能体插件当作普通软件包的一个变体”,转变为”发现一个混合的维护画像,其中含有一类真正全新的依赖”,核心转变在于:这些产物既不是完整的被维护软件,也不是一次性脚本,它们的工具需要反映那种特定的耦合。
专家评审
选题眼光: 很好,而且它在领域还在猜测的时候选择了实证路线。 智能体插件生态增长得足够快,其维护属性很快就会变得要紧;而在生态的惯例尚未确立之前先问这个问题,顺序是对的——答案会决定惯例应当是什么。
方法成熟度: 这是一项测量研究,质量在于规模与结论的具体性。 近两千个仓库、七万多次提交,足以支撑结构性主张;而设计做了一件细致的事:它没有强行给出”被维护还是一次性”的单一答案,而是报告”大多数组件独立演化、某一特定配对结构性耦合”。 78% 这个功能耦合数字才是贡献所在,因为它量化了一种依赖,而不是断言它存在。
实验诚意: “四类提交含义不同”这一发现,是对研究自身工具的效度检查,把它报出来值得肯定——它提醒任何用标准分类法复制这项工作的人:那些标签不会像他们预期的那样表意。34.9% 的共同署名率被作为关于生产的事实报出,没有被过度解读。 诚实的局限是:通过提交共现测得的”共同演化”是耦合的证据,而不是”这些组件无法分别维护”的证明;78% 的功能耦合率正是在处理这一点,而它依赖于对”功能性”如何分类。
写作功力: 问题被以一种允许非教条式答案的形式提出——被维护的产物,还是一次性的——而论文愿意回答”大体是前者,有一处例外”,正是它有用的原因。摘要数字密集,但每一个都支撑一个不同的主张。 若能给出一例”某个指令文件与其脚本一起改动”的具体案例,会让这一类新依赖对不读统计的读者也变得具体。
判决: 强接收(Strong Accept) — 为一个快速增长生态提供了大规模的实证依据;它的混合答案比任何一种极端都有用,并且其中一项发现识别出一类真正全新的维护依赖。
要点总结
- 在引入惯例之前,先确立一个生态的维护画像。这些究竟是不是被维护的产物,决定了发布规范是必要还是开销。
- 在你自己的智能体工具里留意散文—代码耦合。如果指令文件与脚本彼此指涉,它们就必须被一起版本化;把两者当作独立改动,会歪曲历史。
- 不要用旧分类法度量新产物类型。docs、perf、style、refactor 在插件仓库里含义不同,因此自动分类会系统性出错。
- 把共同署名数据读作一个生产事实。当约三分之一的提交由智能体署名时,维护”散文 + 代码”的成本低于传统直觉所暗示的水平。