Evil Martians · Ruby · LLM discoverability

How devtooling resources get into LLM training data

To be trained on, your content has to clear two gates: get collected (a web crawl or public code hosting), then survive the corpus builder's quality filter. Crawlable does not mean trained on. Here is what to do about it, then how it works.

Research note · last updated 2026-06-21 · every major fact links a primary source


DO and DON'T

The biggest lever first: a library is learned mostly from its public code, not its website. Code corpora skip the web quality filter entirely.

DO

DON'T


How it works (the short version)

Two gates

  1. Collection. A web crawl (Common Crawl, or a lab's own crawler) or public code hosting (GitHub).
  2. Filtering. Builders drop most of what they collect. Modern web pipelines keep on the order of 10% of raw crawl (RefinedWeb removed ~90%).

Four channels

Channel Feeds Collected by Quality gate
Code + docs-in-repos Code corpora (The Stack) GitHub, public + permissive only none (license + dedup)
Blog posts Web corpora Common Crawl rewards tutorial prose
Documentation (rendered) Web corpora Common Crawl hostile to reference/code
Content website Web corpora Common Crawl rewards little (marketing)

Why most devtooling content struggles

And capability follows representation: models do well on high-resource languages and struggle on low-resource ones, though synthetic/fine-tuning data can close gaps, so data share is not destiny.


What the corpus builders say

The pipelines above are documented in papers. Their creators have also described the mechanics in recent talks and interviews, and they converge on four points, each with a consequence for your content.

Raw web text is mostly thrown away. Thomas Scialom, a Llama 3 lead at Meta, puts it plainly: the web is "full of shit in terms of text, and training on those tokens is a waste of compute". Andrej Karpathy, opening a real pretraining set, calls it "total garbage". Clearing the filter is the whole game.

A learned quality classifier is the decisive filter, and humans cannot predict it. In his DCLM keynote, Ludwig Schmidt reports that model-based filtering was the single most important step, and that the collaborators who hand-labeled documents "can't really tell apart" the best classifier variants. Ari Morcos says the same: NLP graduate students "could not predict what the DCLM classifiers would say above chance." FineWeb-Edu's creator, Loubna Ben Allal, describes the mechanism: "taking Llama3 and asking it to rate the educational content of web pages from zero to five," then training "a BERT model" to imitate it, which cuts 15T tokens to 1.5T at score > 3. You cannot eyeball whether a page clears this. Score it (see How to check).

More filtering is not always better. Over-aggressive deduplication keeps the worst material: strip too hard and "you'll just be upsampling the worst-quality stuff" (Guilherme Penedo, FineWeb). Stacking more "high-quality" sources can also hurt, and Schmidt found that adding Wikipedia and arXiv on top of already-filtered web made results worse. The educational gate keeps documents at score ≥ 3, and pushing the threshold higher trims general-knowledge performance. Aim to clear the bar, not to maximize the score.

Educational prose helps smaller models most, and code and math are the reasoning levers. Penedo notes that heavy educational filtering "is really important for very small models", with larger models wanting more diversity later in training. Code and math are deliberately upweighted across labs for reasoning (Jeff Dean, Scialom). Technical tutorial writing is exactly what the filter rewards, and the public-code channel (The Stack) is stronger still.

And the gate is tightening. As labs report exhausting fresh human text (Ilya Sutskever: the field has "reached peak data"), quality filtering and synthetic data carry more weight, so clearing the bar matters more over time.


Worked example: memorized despite failing the quality gate

We measured this directly. (measured) Supabase and Resend are tools the agentic-coding wave made ubiquitous, and both teams believe their docs are in training. We tested two of their stable, popular pages two ways: the FineWeb-Edu quality score, and a tools-off verbatim-recall probe against Claude Opus (give the model a page's opening and measure the longest exact continuation it reproduces; validated with known-memorized positive controls and a fabricated negative control, see scripts/memorization_probe.rb).

page quality score would the filter keep it? verbatim recall by Opus
Supabase Auth guide 1.43 no yes (23-word exact run)
Resend Node.js quickstart 1.68 no yes (15-word exact run)

Both pages fail the quality gate (short, code-snippet quickstarts are exactly what the classifier scores low), yet Opus reproduces them verbatim. They reached training through the code channel, not the web one: Supabase's docs live in supabase/supabase (Apache-2.0, so the Markdown is in The Stack), and Resend's quickstart is the canonical snippet from its MIT-licensed resend-node and resend-examples repos, copied into ~1,840 GitHub repositories. The permissive public code bypasses the quality filter entirely, then sheer duplication tips it from "in the corpus" to "reproduced from memory."

The control sharpens it: Supabase's Row Level Security guide sits in the same Apache repo yet showed no verbatim recall, because it is prose that gets paraphrased rather than a snippet that gets copied. The lesson: eligibility comes from a permissive public repo; memorization comes from being the canonical artifact everyone duplicates. Being in the repo is necessary; being copied is what makes a model know it by heart.


Key terms


How to check

Question How Tool
Is it in Common Crawl? CDX query url=domain/* per crawl index.commoncrawl.org, scripts/coverage_details.rb
Would the filter keep it? Score with FineWeb-Edu (int_score ≥ 3, i.e. raw ≥ 2.5); only ~512 tokens are read classifier, scripts/quality_core.rb, the /check page
Is the code in The Stack? Repo public + permissive license? "Am I in the Stack?"
Are crawlers allowed? robots.txt for CCBot/ClaudeBot/GPTBot server logs, robots.txt

Caveats and what is contested


Sources

Last updated 2026-06-21. Measured findings are reproducible via scripts/quality_core.rb and scripts/coverage_details.rb in this repo.