Post-Milestone-1 tracking issue — directions, not yet scheduled. Milestone 1 (#56) makes
seqforge modality-general and gives us the fingerprint-package + benchmark substrate. This issue
collects the next arc, which leans much harder on the LLM: reading papers and metadata deeply to
recover the experiment, recording what the authors originally did, spotting dataset-specific
special handling — and measuring all of it with a metadata-resolution accuracy benchmark.
These stay inside seqforge's discipline. "Lean harder on the LLM" means propose more, always
span-verified, with code deciding — never make the model an authority. We can only widen LLM
scope safely once we can measure metadata accuracy (thread 4), so the benchmark gates the rest.
Why this comes after M1
M1 answers "what IS this library, across any technology?" — from bytes. This arc answers a different,
harder question: "what was the experiment, what did the authors do, and what's special about
this dataset?" — mostly from prose and records. It depends on M1's fingerprint packages, its benchmark
harness, and its modality-general architecture already being in place.
The worm compile audit (#42) is the evidence this arc is needed: seqforge got the chemistry right
almost everywhere, but the experiment layer was thin — covariates buried in GSM titles went uncaptured
(#50), design factors were under-labeled, and dataset-specific breakage (swapped reads, a missing
barcode read, nuclei-vs-cells) was real. That layer is where the LLM earns its keep.
Thread 1 · Deeper sample-metadata & experiment-design resolution (LLM-heavy)
Today resolve_metadata maps archive records → per-sample attributes (NCBI's 960 harmonized BioSample
names), each Evidenced with a basis, disagreements left null-over-wrong. That is correct but shallow
relative to what a paper actually contains.
Goal: recover the experiment design, not just flat attributes — sample groupings, conditions /
treatments, genotypes, timepoints, replicate and batch structure, the full factor × level matrix. Much of
this lives in GSM free-text titles and in the paper's prose and supplementary tables, not in structured
fields.
Discipline unchanged: every claim is a span-verified Assertion that greps back and entails its
value; code arbitrates; the model simply reads more. Connects to #50 (deterministic GSM-title covariate
parser) and the under-labeling gap noted in #42 (F5).
Thread 2 · Record the paper's original pipeline (provenance of "what the authors did")
A new class of extracted fact: what pipeline the authors originally ran — aligner + version, genome
build + annotation release, key parameters, and custom steps (3′-UTR extensions, custom references,
non-standard filtering). Why it matters:
Hard line: the authors' original pipeline is evidence — a recorded fact about what they did — not an
instruction to our compiler. It stays distinct from processing.yaml (our recipe). It informs; it never
commands. Same two-artifact separation seqforge already enforces, extended to a third category:
what-they-did vs what-the-data-is vs what-we-choose-to-do.
Thread 3 · Spot dataset-specific special handling
Detect when a dataset needs non-default treatment — swapped R1/R2, a missing technical read, nuclei vs
cells, chimeric / multi-species libraries, custom references, unusual sample structure. These are exactly
the classes the worm audit surfaced (#42: equal-length role mis-seat, the 18 samples missing a barcode
read; #51 wrong-PDF / provenance; #55 low-confidence winners).
How it stays honest: the model flags candidates (proposer); bytes / code confirm; the result
surfaces as a Conflict / ValidationWarning / Question — never a silent default. This is the
"agents propose, code decides, refusal is an exit code" line applied to dataset gotchas.
Thread 4 · A metadata-resolution accuracy benchmark
M1's benchmark grades the compiler's decisions (chemistry, roles) plus a few sample attributes. This
thread adds a benchmark aimed squarely at metadata-resolution accuracy: given the records + prose,
how accurately do we recover the experiment design — per attribute, per sample, and the groupings /
conditions in threads 1–2?
- Built on the same fingerprint-package substrate + pre-registered
expected.yaml as M1, but the
graded surface is the experiment / metadata fields (experiment.samples.*.<attr>, groupings,
conditions, and the recorded original-pipeline facts).
- Scored for accuracy and false-accept — a verified-but-wrong metadata claim is the cardinal sin,
same as elsewhere.
- This is the gate. "Fully utilize the LLM" is only safe to the extent we can measure metadata
accuracy; this benchmark is the precondition for trusting (and widening) deeper resolution.
- Later, a true held-out metadata test set — mirroring M1's held-out plan — for an unbiased accuracy
number.
Guardrails (carried over, restated because this arc is LLM-heavy)
- Two-job line holds. Bytes → score, prose → assertion, code decides. Deeper reading is more
proposing, never more authority.
- Every claim span-verified + entailed; equal-authority disagreements go null-over-wrong; a
verified-but-wrong claim is a hard failure.
- The authors' original pipeline is evidence, not an instruction — recorded, never acted on directly.
- Nothing silent. Special-handling needs are surfaced as conflicts / warnings / questions.
Relationship to Milestone 1 (#56)
Depends on M1's fingerprint packages, benchmark harness, and modality-general architecture. M1 is what
the data is, across technologies; this is what the experiment was, and what the authors did — measured
for accuracy. Related: #50, #52, #42, #51, #55.
Why this comes after M1
M1 answers "what IS this library, across any technology?" — from bytes. This arc answers a different,
harder question: "what was the experiment, what did the authors do, and what's special about
this dataset?" — mostly from prose and records. It depends on M1's fingerprint packages, its benchmark
harness, and its modality-general architecture already being in place.
The worm compile audit (#42) is the evidence this arc is needed: seqforge got the chemistry right
almost everywhere, but the experiment layer was thin — covariates buried in GSM titles went uncaptured
(#50), design factors were under-labeled, and dataset-specific breakage (swapped reads, a missing
barcode read, nuclei-vs-cells) was real. That layer is where the LLM earns its keep.
Thread 1 · Deeper sample-metadata & experiment-design resolution (LLM-heavy)
Today
resolve_metadatamaps archive records → per-sample attributes (NCBI's 960 harmonized BioSamplenames), each
Evidencedwith a basis, disagreements left null-over-wrong. That is correct but shallowrelative to what a paper actually contains.
Goal: recover the experiment design, not just flat attributes — sample groupings, conditions /
treatments, genotypes, timepoints, replicate and batch structure, the full factor × level matrix. Much of
this lives in GSM free-text titles and in the paper's prose and supplementary tables, not in structured
fields.
Discipline unchanged: every claim is a span-verified
Assertionthat greps back and entails itsvalue; code arbitrates; the model simply reads more. Connects to #50 (deterministic GSM-title covariate
parser) and the under-labeling gap noted in #42 (F5).
Thread 2 · Record the paper's original pipeline (provenance of "what the authors did")
A new class of extracted fact: what pipeline the authors originally ran — aligner + version, genome
build + annotation release, key parameters, and custom steps (3′-UTR extensions, custom references,
non-standard filtering). Why it matters:
published one (cf. the WS298-vs-paper cross-cutting note in Compile audit (13 worm datasets): equal-length reads silently mis-seat the barcode role — 2 datasets broken — + 4 smaller gaps #42 and the 3′-UTR work in 3'UTR extension for WS298: regenerate from pooled single-cell data + benchmark necessity (research/design) #52).
processing.yaml.Hard line: the authors' original pipeline is evidence — a recorded fact about what they did — not an
instruction to our compiler. It stays distinct from
processing.yaml(our recipe). It informs; it nevercommands. Same two-artifact separation seqforge already enforces, extended to a third category:
what-they-did vs what-the-data-is vs what-we-choose-to-do.
Thread 3 · Spot dataset-specific special handling
Detect when a dataset needs non-default treatment — swapped R1/R2, a missing technical read, nuclei vs
cells, chimeric / multi-species libraries, custom references, unusual sample structure. These are exactly
the classes the worm audit surfaced (#42: equal-length role mis-seat, the 18 samples missing a barcode
read; #51 wrong-PDF / provenance; #55 low-confidence winners).
How it stays honest: the model flags candidates (proposer); bytes / code confirm; the result
surfaces as a
Conflict/ValidationWarning/Question— never a silent default. This is the"agents propose, code decides, refusal is an exit code" line applied to dataset gotchas.
Thread 4 · A metadata-resolution accuracy benchmark
M1's benchmark grades the compiler's decisions (chemistry, roles) plus a few sample attributes. This
thread adds a benchmark aimed squarely at metadata-resolution accuracy: given the records + prose,
how accurately do we recover the experiment design — per attribute, per sample, and the groupings /
conditions in threads 1–2?
expected.yamlas M1, but thegraded surface is the experiment / metadata fields (
experiment.samples.*.<attr>, groupings,conditions, and the recorded original-pipeline facts).
same as elsewhere.
accuracy; this benchmark is the precondition for trusting (and widening) deeper resolution.
number.
Guardrails (carried over, restated because this arc is LLM-heavy)
proposing, never more authority.
verified-but-wrong claim is a hard failure.
Relationship to Milestone 1 (#56)
Depends on M1's fingerprint packages, benchmark harness, and modality-general architecture. M1 is what
the data is, across technologies; this is what the experiment was, and what the authors did — measured
for accuracy. Related: #50, #52, #42, #51, #55.