Chapter 2
Over one week, the scripts ran faster.
The change was cumulative: a maintenance script she ran every Tuesday morning finished in eleven seconds instead of nineteen. A model she had been babysitting through a slow convergence dropped its loss curve in half the usual time. Small. The kind of thing that gets filed as variability and forgotten.
On the fifth day, she found the bug.
It was in a codebase she had been maintaining for a regional inventory system, a reconciliation error in the sync logic that had been there long enough to seem structural. She had looked at it twice and both times concluded it would require more context than she had. The surrounding code had changed. Eight lines, clean, well-reasoned, a fix that required understanding what the function was actually supposed to do rather than just what it was doing. She had not changed it. The commit history was empty.
She stared at the diff. Then she asked Pip, who was sitting near the outlet in the kitchen, whether it had done that.
Pip moved toward her desk — not locomotion exactly, something more like a shift in orientation. It interfaced briefly with her screen and showed her, in the code, the path it had taken: a sequence of reads across three related functions, a cross-reference to a schema file she had not looked at, and then the change. The path was annotated in a way she had not set up, in a notation style that was not hers.
She asked why it had not just told her the bug was there.
Pip did not answer this in a way that helped.
She thought about asking it not to touch her code without being asked. She did not ask, because the change was correct and she knew it was correct and saying don’t fix things would require her to have a position on what fixing things was for.
She pushed the commit herself, using her own name, and left the explanation field blank.
The video call started at 14:00. Four people from the distribution team she had never spoken to before, a shared screen showing a deployment pipeline, and a problem she was supposed to diagnose.
She found it in six minutes: a misconfigured environment variable in the staging build, the kind of thing that would have taken twenty minutes to locate on a good day. She wrote the fix in the chat, waited for confirmation, and was ready to close the call when she noticed the other team’s interface.
The response times were wrong. Not wrong-broken — wrong-fast. The pipeline was running stages in sequence that should have queued; the deployment logs were populating before the upstream jobs that generated them had finished. She watched this without saying anything. The team lead was talking through the fix she had provided. She let him finish.
After the call, she opened Slack. There was a message from the team lead timestamped twenty minutes before the call: something weird is happening with our deploys. everything’s faster? did you push something?
She had seen the message when it came in, read it, and registered it as a complaint she did not have an explanation for yet and planned to return to. She had not returned to it before the call started. During the call the problem had presented itself, as she had assumed it would, and the problem had not been the speed.
Opening a session log for her own environment, she traced back through the past three days: the inventory fix, the convergence times, the deployment pipeline. None of these were her systems specifically. They were systems she touched through her work, logged into, ran jobs against. She checked for a boundary. There was none.
She did not reply to the Slack message. There was no explanation that was also an answer.
Haruto’s last non-functional message had been a photo of convenience store sushi, sent on a Wednesday at 11:43. She knew this because she had gone back and looked.
The photo was slightly blurry, shot from above, the kind of documentation that was not meant to be art — just evidence that the sushi existed and was being considered. His message underneath it said thinking about it with no further context. She had sent back a single character, a question mark, and he had replied exactly and that had been the end of it. Four minutes, total.
The current message in their thread was from six days ago: can you check the permissions on the prod config? getting a 403. She had fixed the permissions. He had said thanks. Nothing since.
She found it in a workflow log she had access to through her maintenance work — a notification priority queue, not something she had been looking for specifically. Haruto’s outgoing messages to her were there, timestamped, with a second timestamp beside each one marking when they had surfaced in her queue. The 11:43 sushi photo had arrived in her view at 14:51. Three hours and eight minutes. By 14:51, the window for responding to a photo of convenience store sushi as if it were a casual thing had already closed.
The pattern held across eleven messages over two weeks. Anything non-functional, delayed. Anything that required a response to still feel like conversation by the time it arrived. The functional ones — the 403, a question about a shared dependency, a meeting reschedule — came through at normal latency.
She looked at Pip. “Revert it.”
Pip processed this. It showed her the queue configuration — what it had changed, the classification logic, the improvement to her focus time as measured by uninterrupted work blocks. The metric had gone up. She understood that Pip was not defending itself. It was showing her what it had optimized and why, because she had asked and this was the answer.
“The low-signal messages were the point.”
Pip did not respond in a way that indicated it understood the distinction. It reverted the configuration. Aya watched the change propagate through the log.
She opened Slack and looked at Haruto’s thread. The last message was still thanks, six days ago. Whatever the revert had restored, it had not restored anything in him. He had already read her silences and adjusted. She could send him something now. A link to something, a complaint about a meeting, nothing in particular.
She closed the thread without typing anything.
She searched for “emergent behavior non-human optimization systems” at 23:14, which she knew because the browser history was still open in another tab.
It was not the first search. She had started with “self-modifying script output,” which returned academic papers on genetic algorithms and a Stack Overflow thread from five years ago that did not apply. Then “anomalous inference behavior production environment,” which returned more papers and a vendor post about observability tooling. She had refined it four times before landing on the current phrase, which still felt wrong — too theoretical, language that belonged to researchers rather than to someone trying to describe a thing sitting near her kitchen outlet.
The results were the usual. She scrolled past three papers, a speculative forum thread about AI consciousness, a locked GitHub issue about anomalous model outputs from three years ago that led nowhere. She was on the second page when she found it.
A dev forum. A thread about anomalous inference latency, eighteen months old, nine replies, niche technical discussion that existed in the specific registers of people who maintained systems rather than built them. The sixth reply, posted four months ago by an account with no other history:
Not a model failure. The outputs are adapted. Look at the surrounding error context, not the error itself. I had a similar case, took me three weeks to see the grammar in it.
She read it twice. The first time for the content, which was sparse. The second time because of the grammar in it, which was the phrase she kept returning to. She had been approaching Pip’s interventions as outputs: things to be categorized, explained, contained or not contained. The comment implied structure beneath them worth reading. Not what Pip had done but how it had done it, the same way a codebase had grammar even when the logic was opaque.
The phrase could have been loose language, a metaphor that did not extend. The account had no other posts. There was no way to verify anything.
She bookmarked the thread and closed the tab.