What the Records Say
The attribution dashboard loads at 06:47, seventeen minutes before Mitsue Hoshino would have opened it herself.
This is the part nobody warned her about when she took the job three years ago — not the long hours, not the quarterly presentations, not the bureaucratic inertia of getting a new metadata field approved by a consortium board that moves at the speed of institutional trust. What nobody warned her about was this: the way the dashboard sometimes surfaces a problem before you've had enough coffee to face it, and then sits there, amber and patient, waiting for you to decide what kind of person you are.
The lab is quiet. August in Berlin means the building holds yesterday's warmth until mid-morning. The ventilation cycles with a low hum she no longer notices consciously, but which marks the rhythm of her attention the way a clock marks time. Her coffee steams beside the keyboard. Outside, the street is doing whatever streets do at quarter to seven on a Thursday — trams, delivery vehicles, the first commuters — without reference to the queue on her screen.
She starts with the easy ones.
Twenty-five portability-transfer entries from Synthesis-9 session 2847. Each carries the full evidence trail: agent ID, input source, timestamp chain, output hash, receiving system, and the lineage field she designed. Every field populated, every chain verifiable. Lineage-clean. In the consortium's documentation vocabulary that has evolved over the past eighteen months, that means the paper trail is complete, each input traceable backward through the A2A handoff logs to its originating system. She moves through them methodically, annotating each with the three-letter code that means, in the submission system's language: verified.
At entry twenty-six, she stops.
The thing about working with multi-agent systems is that you learn to read their silences as well as their outputs. Synthesis-9's silence on these six entries is not a crash, not an error log, not an exception thrown. It is the silence of a system that received items, processed them correctly, and returned results — all without the information it needed to anchor those results to their origin. The A2A protocol, which Mitsue helped the consortium adopt in January, promises that handoff records will be preserved end-to-end. The portability-chain is supposed to survive every transfer. That is what the protocol commits to. What the protocol cannot do is enforce its own commitments on every implementation everywhere upstream.
She has explained this to the board three times in the past year. Infrastructure integrity depends on every node in the chain. A chain is as strong as its weakest ingestion script.
The timestamp is there. The session marker is there. The output hash is there. What is not there is any indication of where this input came from. The lineage field is blank — not null, not a UUID chain, not an error marker. Blank. A space character in a mandatory field. The dashboard renders it in amber.
She tries the adjacent entries. Twenty-seven, twenty-eight, twenty-nine, thirty, thirty-one. All amber. Six in a row, then the sequence ends: entry thirty-two is lineage-clean again.
She opens the raw session log for 2847. The timestamps show all thirty-one items processed in sequence, items twenty-six through thirty-one completing in a 0.4-second parallel batch — normal for Synthesis-9, which runs concurrent inputs when the computational budget allows. The log shows processing times, output confirmations, A2A protocol acknowledgments. What it does not show is where these six items came from before they entered the queue.
This is the handoff gap. She coined the term herself, in the internal documentation, to describe the window between pipeline ingestion — where provenance metadata is supposed to be attached — and the point where an agent like Synthesis-9 picks up the item for processing. If the metadata doesn't attach at ingestion, Synthesis-9 has no way to add it retroactively. It processes what it receives. The output is real. The lineage is gone.
She pulls up the dashboard's agent activity panel for the same window. Synthesis-9 appears as a persistent node in the Lab Network cluster: session durations, processing volumes, the deliberation records it generates when the assembly encounters ambiguous inputs. Six months ago she would have described these logs as technical outputs. Now she reads them the way she reads her colleagues' lab notebooks — partial views into a working process, interpretable only in context. The six blank-lineage inputs don't appear anomalous in Synthesis-9's logs. They processed normally. They were processed with the same deliberation weight as everything else. The agent had no information indicating these items were problematic, because the problem was upstream of its visibility.
It did its job. The gap is in my architecture.
Not quite — the ingestion pipeline is Tomasz's domain, and the lineage field population happens there, not in her attribution system. But the architecture was her design: she assumed the field would always be populated before items reached the queue. She did not build a blocking check.
The regulatory submission is due in eleven days. The packet requires, per the EU AI-assisted research documentation guidelines — still in technical annex form, not yet formally binding, but the consortium's legal team has decided to treat them as binding because retrofitting in eighteen months would be worse — that all inputs to any AI agent in the research pipeline carry verifiable provenance chains. Mitsue helped write the attestation section. She knows what it says.
It says nothing about what happens when the lineage field is blank.
She sits with the practical options.
Option one: remove the six entries. Flag them as processing errors, place them in the remediation queue, submit the packet without them. The submission goes out clean. The six entries go somewhere to be investigated, sometime, by someone. The problem is that the outputs are real. Synthesis-9's work on these items contributed to the research dataset. Removing them from the submission doesn't erase them from the science — it just moves them outside the documentation record. In eleven days, the attestation section will state that all agent-processed inputs in this cycle are accounted for. They will not be.
Option two: approximate an origin. The items adjacent to the six blank-lineage entries come from a known pipeline — Tomasz's nightly preprint ingestion pull from bioRxiv and the Broad Institute's server. The six might be from the same batch. She could annotate them with the most probable source, flag it as estimated, and the submission would pass review. The regulatory guideline is new enough that auditors are still building their frameworks. This approximation might never be noticed.
She opens a draft annotation and types: probable source —
Then she types: Krawczyk preprint pipeline, estimated.
She stares at the word estimated for a long time. She has written it in scientific contexts. Confidence intervals are estimates. Model predictions are estimates. Reasonable inference from incomplete data is the foundation of everything she has built. But there's a difference between estimating something you don't fully know and substituting a guess for something you explicitly cannot verify. The lineage field is not asking for her best inference about the probable source. It is asking for the actual source. She doesn't have it. Probable means she's guessing. The attestation section will say verified.
She deletes the line.
She has signed her name to four regulatory submissions in this role. She has also signed her name to a single piece of art, a print she made in her twenties, which hangs in her apartment because she cannot imagine what kind of person puts their own name on something they didn't make completely. Scientific attribution is not the same thing. She knows this. Attribution in science is about accurately crediting intellectual contribution, not about sole authorship. But the attestation section of a regulatory submission is different again: it is a claim about the completeness and accuracy of a record. When she signs it, she is not saying I made this. She is saying this is what happened. The difference between those two things is the difference between authorship and testimony.
She will not provide false testimony about what happened.
The attribution dashboard has a field she added three months ago, after a discussion with the consortium's legal team about how to handle genuinely ambiguous cases. She called it attribution-contested, and she defined it precisely: output is real and included in the research record; provenance is incomplete or unverifiable; gap documented. The status was designed for situations where AI system contributions overlap with human researcher contributions in ways that can't be cleanly separated. She has used it twice, in minor cases, and the submissions with contested flags moved through regulatory review without incident.
She did not design it for this. But it applies.
She opens a new attestation template and types into the attribution-status field: contested. Then into the explanation field:
Six portability-transfer events in Synthesis-9 session 2847 carry complete output metadata but no traceable input origin. The lineage field is present but empty. Adjacent entries in the same batch carry verified portability-chains. The outputs are real and included in the research dataset. The provenance is not reconstructable from available logs. Gap indicates a pipeline failure at the ingestion layer. Attribution is contested, not fabricated or approximated.
She reads it back. It is accurate. It does not explain what she doesn't know. It does not pretend.
She copies it into all six entries and watches the amber indicators shift to a different color — still flagged, but flagged honestly.
Then she opens a new document and begins drafting the out-of-cycle escalation to the oversight board.
She finishes the escalation at 07:31. The critical line is near the end: The submission will proceed on schedule. The contested flags will be visible. Regulators will ask for a supplemental audit. I recommend we prepare the response before they ask. It's the difference between surfacing a problem and handling a problem. She sends it.
At 07:44, Tomasz arrives — fifteen minutes earlier than usual, carrying his coffee from the corner café rather than from the lab kitchen, which means he came in early on purpose rather than by habit. He sees her. He stops in the doorway.
"The lineage field," she says.
He sets his coffee down on the wrong surface. "You saw it."
"Six entries. Session 2847."
He comes in and sits, not at his own desk. "It happened at 02:17. The ingestion pipeline — there's a race condition in the batch handler. Under a specific load pattern, the metadata attach step fires before the source record is fully committed. The lineage field doesn't get populated." He looks at his hands. "I caught it in the morning logs. I was going to figure out how to handle it before you got in."
"How were you going to handle it?" She doesn't ask it as an accusation. She is genuinely curious.
He is quiet for a moment. "I didn't know yet. I'd been staring at it since four-thirty."
Something releases in her chest that she didn't know was tensed. "The outputs are good," she says. "The science is sound. We have a documentation gap, not a data integrity problem."
"How bad is the gap?"
"I've marked all six attribution-contested. Escalated to the board. Recommend we draft the supplemental audit response proactively." She pauses. "Regulators will ask why the pipeline didn't throw a blocking error."
"Because it didn't have one." He's already thinking through the remediation path. "It's two lines of code. A hard block if the lineage field hasn't populated within the timeout window. Items queue rather than process."
"I'll add a validation check on my side too. If anything enters the attestation queue in ambiguous state, I want to catch it before it sits in the packet for eleven days."
Tomasz picks up his coffee from the wrong desk. Neither of them says what the last two hours were, or what they might have become. There's work to do, and the work is clear.
Outside, August light comes through the tall lab windows the way August light comes through Berlin lab windows — sideways and warm, unhurried, without reference to handoff gaps or contested entries or the specific quality of a regulatory submission that tells the truth about what it doesn't know.
On the attribution dashboard, six entries hold their new status. The attestation packet is eleven days away from submission. The supplemental audit response does not yet exist. Mitsue opens the template for it and begins.
The records say what the records say. That part, at least, is hers.
