% 03_corpus.tex -- section 3, budget 1.4 pages including Fig. 2 (rule impact; funnel and rule tables in Appendix C). Innovation line 1.
% Numbers: analysis/data/data_pipeline.md, analysis/data/rule_impact.md, NARRATIVE_REPORT.md D1-D4. Polished 2026-09-02.
\section{Corpus: generation and curation}
\label{sec:corpus}
\subsection{Generation and verification}
The teacher is \Teacher driven by \Harness \citep{anthropic2026opus48,anthropic2026claudecode}.
A vendor captured 32,830 of its runs on 16,328 issue-resolution instances from 296 open-source repositories at fixed commits, each with a hidden test patch.
A run passes only if, with its candidate patch applied (test files stripped) and the gold test patch on top, every required fail-to-pass and pass-to-pass test passes.
The captures fall into 12,257 high-precision passes, 9,843 by-product passes and 10,483 by-product failures; 247 errored before verification.
\subsection{Curation funnel and rules}
Figure~\ref{fig:rules}a draws the \vTwelve funnel; Table~\ref{tab:funnel} (Appendix~\ref{app:extras}) tabulates it with the loss masks.
A vendor flag for access to the upstream fix removes 221 of the 12,257 high-precision passes.
Ten drop rules (the P0 tier) then remove 3,435 of the remaining 12,036 (28.5\,\%): a raw-thinking coverage floor of 0.98, vendor sourcing marks, six content-leak rules, sandbox escapes and multi-user turns (thresholds in Table~\ref{tab:p0rules}).
A demote tier flags but keeps rows, a same-task cap of two removes 39 more, and a task-level split leaves 8,137 training and 425 validation rows, of which 8,120 and 424 fit the 196,608-token training length.
Nine message-level loss masks touch 5,528 of the 8,137 rows and remove none, the two largest covering harness-rejected tool calls and calls from an ignored working directory; masked segments stay in context (2.77\,\% of learnable characters; Table~\ref{tab:funnel}).
\subsection{The \vThirteenCorpus variant}
\vThirteenCorpus starts from all 12,257 high-precision rows (the 221 vendor-flagged rows face its leak rules rather than up-front removal), relaxes the thinking floor to 0.90, narrows the vendor-mark rule, adds the by-product population (7,503 passes and 6,578 failures) \citep[cf.][]{wang2024learning}, drops the per-task cap and trains for one epoch on the 23,146 of its 23,238 training rows that fit the training length (Table~\ref{tab:funnel}).
On 3,104 of the failures (47.2\,\%) the final message asserts completion in the strong form and receives no loss.
The same regex fires on 46.4\,\% of the teacher's \emph{successful} endings and on 44.6\,\% of its failed ones, so the mask edits phrasing rather than detecting failure \citep{advani2026from}.
Filters, composition, cap and dose change together, so \vTwelve versus \vThirteenCorpus is a composite comparison (\S\ref{sec:costs}).
\subsection{What the rules remove}
\begin{figure*}[t]
\centering
\IfFileExists{../figures/fig2.pdf}{\includegraphics[width=\textwidth]{../figures/fig2.pdf}}{\fbox{\parbox[c][5cm][c]{0.97\textwidth}{\centering Placeholder for Fig.~2 (\code{figures/fig2.pdf}).}}}
\caption{The \vTwelve curation funnel and what each rule removes. \textbf{(a)}~Rows surviving each stage, from 32,830 captured runs to 8,120 training rows at the 196,608-token cap, with the composite \vThirteenCorpus corpus (9,880 high-precision rows plus 7,503 by-product passes and 6,578 failures) for comparison. \textbf{(b)}~Jensen--Shannon distance between the trajectories a rule family removes and the 8,601 it keeps, on tool mix (circles) and Bash head-words (diamonds), against the size-matched random-removal floor (open grey markers): the thinking-coverage floor removes most rows yet has the smallest tool-mix distance of any family, while the sourcing and leak rules remove a small, distinct slice. \textbf{(c)}~Median steps, thinking share and protocol-error recovery of the removed rows against the kept set (dashed).}
\label{fig:rules}
\end{figure*}
Figure~\ref{fig:rules} compares what each active rule family removes with the 8,601 rows it keeps (numbers in Table~\ref{tab:rules}).
The thinking-coverage floor accounts for 2,450 of the 3,435 drops (71\,\%) and shifts the tool mix least of any family (\JS 0.005 to the kept set, above the 0.0001 size-matched random floor), but it removes the longest and most think-heavy trajectories (median 68 steps against 44, thinking share 0.897 against 0.838).
The sourcing rules remove 1--14\,\% each, and their rows are Bash-heavier and recover from protocol errors far less often (0.24 for the leak family against 0.60): a small, behaviorally distinct slice.
Language and repository shares barely move along the funnel.
The trained corpus therefore carries a thinking share of 0.881, the teacher's harness-error recoveries and truncation habits, and one habit no rule targets, editing a file without reading it (0.110 of edits).
完整资料 / TEX_03_CORPUS
03_corpus · 完整稿件源码
paper/distill-fingerprint/tex/sections/03_corpus.tex
公开内容 SHA-256 733c9d6ed65ad7fe70ce41b0439ca7870a1b14cade7447c0e1168aa19f8f7bfe