Skip to content

How the dataset is built

Each example is a hunk of code at one patch set, the reviewer comments anchored inside it, and the same hunk at the next patch set: what the developer wrote in answer to the review. The label is never guessed, since the next patch set is the answer. Most of what a review host holds is not such a pair, so most of it is removed, by rules fixed before any outcome was read.

The rules, in order

Collection. Only merged changes, created on or after 2024-10-01, after the base model's release. Each host is read at the pace its robots.txt or written terms set, by one client, and every account is replaced by a salted pseudonym as the data arrives.

Comments. A comment is dropped when it sits on the commit message or on the patch set as a whole (Gerrit's pseudo-files, not code anyone revised), when the change's own author wrote it (it can describe the edit it precedes), when a bot account wrote it (bots enforce written rules, not tacit ones), when its whole text is an acknowledgement such as Done or LGTM, when it has no line anchor, when no later patch set answered it, or when the next patch set changed nothing around its line.

Hunks. A hunk is dropped when there is nothing on one side of the edit, or when it grew or shrank past the size rules, since neither is a refinement a model can be asked to make.

Bots. A comment from an account the host tags as a bot is dropped when the comment is read. OpenStack's months were collected before that tag was kept at ingestion, so there the rule could not run; Wikimedia's build found no inline comment from a tagged account, since its bots post change-level messages. Some bots comment inline under an ordinary account, so a comment is also removed when its text matches a template read from the bot's own source (on Qt, its Sanity Bot, flake8 output and its security-review integration); applied to OpenStack's examples, it found none.

Examples. An example is dropped when its next patch set only rebased the change rather than reworking it, or when its target was written by the reviewer (Gerrit's suggested edit or its Fix applied reply, already in the prompt), or when only acknowledgements or a bot's template text are left once those comments are removed. An example whose next patch set's kind was never recorded is kept without the rebase check and counted.

Duplicates. Exact copies, MinHash near duplicates of the normalized before and after text, and shared boilerplate are removed across the whole organization, so the same pair is never in two windows, and a change found under two numbers keeps one.

Fetch errors. A change whose comments the host would not return, or a comment whose diff it would not return, is dropped and counted rather than stopping the build.

Windows. Examples are split by when the change was created: pilot (2024-10), train (2024-11 to 2025-08) and development (2025-09 to 2025-10). The test window (2025-11 to 2026-10) is defined and hashed now and fetched only after in-principle acceptance, so it is not counted here.

What each rule removed

Counts from each organization's frozen build (datasets/results/dataset-funnel.json), each row in its own unit. A comment removed at refinement may belong to an example then dropped for having nothing else left, so those two steps overlap. A counter a build did not record reads as not counted. Qt's column is its fetch under the 2026-10-15 grant, built skipping the changes whose listing records no comment once its comment-count probe held (research log, 2026-10-17).

Unit OpenStack Wikimedia Qt
Merged changes fetched changes 25,191 114,857 52,892
Changes the build did not read
their listing records no comment changes 0 0 27,858
past a grant's monthly read cap changes 0 0 0
Changes lost before any comment was read
their comments could not be fetched changes 8 0 0
Comments dropped
on the commit message or the patch set as a whole comments 42,811 46,445 57,789
written by the change's author comments 18,362 23,990 31,422
from an account the host tags as a bot comments not counted 0 39,068
an acknowledgement (Done, LGTM, thanks, ok and the like) comments 2,047 3,357 2,352
anchored to no line comments 86 250 167
on the last patch set, with no revision after it comments 2,695 1,856 525
its diff could not be fetched comments 13 0 0
outside any hunk the next patch set changed comments 9,086 13,244 18,438
Hunks dropped as ill-posed
nothing before or after the edit hunks 1,850 2,429 2,822
grown or shrunk past the size rules hunks 332 352 344
Examples dropped at refinement
next patch set only a rebase, not a rework examples 0 0 0
target written by the reviewer (suggested edit, applied fix) examples 465 1,473 172
Comments removed at refinement
a bot's template, matched to the bot's own source comments 0 1 392
an acknowledgement comments 127 0 0
Examples left with no comment
only acknowledgements were left examples 13 0 0
only a bot's templates were left examples 0 0 264
Examples removed as duplicates
exact copies examples 249 117 311
near duplicates (MinHash) examples 179 69 211
shared boilerplate examples 0 0 0
one change in two places examples 0 0 0
Examples kept, pilot window examples 532 582 1,147
Examples kept, train window examples 4,006 4,184 7,493
Examples kept, dev window examples 515 747 809
Examples kept without the rebase check examples 0 0 0
Examples kept in all examples 5,053 5,513 9,449

What the rules cannot see

A sample of the kept examples was labeled by hand and by two model raters for whether the rewrite answers its comment. On OpenStack about four in five do; the rest stay in the corpus and are scored in every arm, so they dilute a contrast rather than favor one adapter (label-audit-v2-openstack.json, research log 2026-10-15). Edits a rebase brought into the next patch set also stay; the test window records Gerrit's rebase attribution so both hypotheses can be read again without them.