Check V3 · provenance family · automatic · one of the 17 VS Code Marketplace checks
The question this check asks: how many installs does this listing have, against how long it has existed? Two numbers the gallery record carries side by side — the install statistic and publishedDate — read together rather than apart.
Installs are the Marketplace's ranking signal and, to a human scrolling a search result, its trust signal: a five-figure count reads as "other people use this". That makes the count the one number a lure most wants and the one a legitimate new listing cannot have. An organic extension earns its installs over months. A listing under two weeks old that already shows ten thousand has either had an unusually good launch or has had its number manufactured, and the check cannot tell which — it can only say that the two numbers do not belong together yet, and that the ordinary explanation is not the only one.
The scoring table's evidence note names the January 2026 AI extensions, and it is worth being exact about why. Koi Security's MaliciousCorgi pair — whensunset.chatgpt-china at 1,340,869 installs and zhukunpeng.chat-moss at 151,751, as quoted from Koi by The Hacker News and BleepingComputer on 23–26 January 2026 — is the shape inverted. Both worked as advertised and had been popular for months; Koi's investigation began from unusual outbound traffic on corporate workstations in December 2025. Their installs sat on listings far past any 14-day window, and V3 would not have fired on either. What the pair demonstrates is that a large count buys trust; what V3 catches is a listing trying to buy that trust before it has earned the age to go with it.
V3 fires vsx-traction-mismatch when the listing's install count is 10,000 or more (vsx_traction_installs) and the listing was published fewer than 14 days ago (vsx_traction_age_days). It is HIGH severity and costs 20 points — the heaviest weight in the provenance family, because it is the only one of the five that needs two facts to disagree before it says anything. The evidence note:
"V3; installs outrunning a days-old listing — the 1.5M-install AI-extension shape (January 2026)"
The verdict engine is the one behind all 17 Marketplace checks: any CRITICAL finding is a BLOCK, any HIGH or MEDIUM finding is a REVIEW, and a report with nothing above INFO is a PASS. The score is separate — 100 minus every fired penalty, floored at zero, green at 80 and above, amber from 50 to 79, red below 50. V3 never fires alone, by construction: a listing under 14 days is also under 30, so V2's 12 points come with it and the pair lands at 68, amber, REVIEW. From a publisher with no verified domain (V1, 15 points on a new listing) it is 53 — still amber, seven points from red. V3 feeds the Clone dimension with V1, V2, V4, V5, V10 and V11; a dimension takes the worst of its checks and reads PASS only when every one of them ran. Its GitHub analogue is C3, stars against repository age; its Hub analogue is H3.
V3 fired zero times in the 18 September 2026 measurement of the 100 most-installed extensions — every one of them is far past the window, so that is the expected result rather than a finding. The cost lands on a genuine breakout: a vendor announces an extension at a conference, or a well-known tool ships an official editor integration, and the listing crosses 10,000 installs in its first week. That listing is REVIEW on this check for the remainder of its first fortnight, and V3 does not read the publisher's verified domain or the publisher's other extensions to excuse it — a domain-verified publisher with twenty established listings gets the same 20 points on its twenty-first if the numbers disagree. The finding names both numbers, so the reader can see at once whether "10,000 installs on a listing 6 days old" is a launch they were expecting. The window is short by design: fourteen days later the check is silent for good.
Traction earned slowly and then abused. A listing that accumulates installs over months and turns malicious afterwards is the shape V3 is built not to see, and it is the shape of the largest published incidents: MaliciousCorgi above, and on Open VSX the four oorzc extensions Socket described on 31 January 2026, which had accumulated more than 22,000 Open VSX downloads before their malicious releases. Nor does V3 see a manufactured launch that stays under the threshold: the three MUT-9332 listings Datadog Security Labs described on 21 May 2025 had "<50" installs each, and a days-old listing with a few dozen installs is what every honest new extension also looks like. The install counter is the Marketplace's own number; the check reads it as a count and has no way to tell bought from organic — the mismatch with age is the signal, and where there is no mismatch there is no finding.
RepoGates assesses a Marketplace extension on request — through the API, the MCP server (platform="vsx") and the preflight for code --install-extension. It does not see an extension installed from the editor's own UI, or one that auto-updates; the board on marketplace pages is not built yet; Open VSX (where VSCodium, Cursor and Windsurf install from) is a different registry and is not assessed. The extension's code bundle is not read on this tier: a PASS means the provenance and the declared surface are clean, never that the JavaScript was inspected.
Without any tool: the extension's page on marketplace.visualstudio.com shows the install count under the title and the release date in its "More Info" panel; the two are rarely read together. The gallery API returns both in one record — the endpoint VS Code itself uses, a POST with no token:
curl -s -X POST https://marketplace.visualstudio.com/_apis/public/gallery/extensionquery \
-H 'Accept: application/json;api-version=3.0-preview.1' \
-H 'Content-Type: application/json' \
-d '{"filters":[{"criteria":[{"filterType":7,"value":"PUBLISHER.EXTENSION"}]}],"flags":914}' \
| jq '.results[0].extensions[0] | {publishedDate, installs: (.statistics[] | select(.statisticName=="install") | .value)}'
Then look at the publisher's other listings. Five figures of installs on a listing published this week, from a publisher with nothing else and no verified domain (V1), is the launch this check exists to name; the same count on the twentieth extension of an established vendor is the launch it will warn about anyway, and the finding will say so in two numbers.
Would V3 have caught the 1.5 million-install AI extensions? No, and the page says so. The two extensions Koi Security named MaliciousCorgi in January 2026 — 1,340,869 and 151,751 installs, as quoted from Koi by The Hacker News and BleepingComputer — had been popular for months; Koi's investigation began from unusual outbound traffic in December 2025. Their installs sat on listings far older than 14 days, so this check is silent on them. V3 catches the inverse: a launch whose installs outrun any provenance it has had time to earn.
Why 10,000 installs and 14 days? Because that pairing is what no organic listing has and every manufactured one wants. The Marketplace ranks by installs and a human reads them as trust, so a five-figure count is the number a lure needs, and a listing under two weeks old has not had time to earn it. Genuine breakout launches exist — a vendor announcing at a conference can cross 10,000 in a week — and they are REVIEW on this check for the rest of that fortnight. That cost is stated, not hidden.
Does a high install count make an extension trustworthy? No. The install counter is the Marketplace's own number and this check reads it as a number; the signal is the mismatch between count and age, never the count itself. A listing that gathers installs slowly and then turns — the GlassWorm oorzc extensions Socket described on 31 January 2026 had over 22,000 Open VSX downloads before their malicious releases — is exactly where V3 has nothing to say.
V2 Extension age — the denominator: a listing under 14 days is always under 30, so V3 never fires without it · V1 Publisher verification — the third fact that turns a surprising launch into the campaign shape · C3 Star velocity and traction — the GitHub original: stars divided by repository age · H3 Traction mismatch — downloads against age on the Hugging Face Hub, the same check by the same name.
Add RepoGates to Chrome Pricing
Numbers on this page: the 18 September 2026 measurement of the 100 most-installed extensions on the Marketplace; Koi Security's MaliciousCorgi figures as quoted by The Hacker News and BleepingComputer, 23–26 January 2026; Socket, 31 January 2026; Datadog Security Labs, 21 May 2025; thresholds and weights from the product's policy and scoring tables.