The first ticket appeared on a Sunday.
Nobody was running scenarios on Sunday. The agents were idle, the twins were quiescent, and the factory hummed at its lowest power state—just enough compute to keep the DTU state consistent. So when Navan opened the Jira twin's dashboard on Monday morning and found a new ticket in the backlog, his first thought was that someone had run a test over the weekend and forgotten to clean up.
Then he read the ticket.
FACTORY-1247: Okta twin SCIM endpoint returns stale group memberships after rapid provisioning/deprovisioning cycles
Priority: High. Type: Bug. Labels: twin-fidelity, okta, race-condition. The description was three paragraphs long, technically precise, and included a reproduction path with specific API calls, expected responses, and actual responses. The formatting was perfect. It followed every convention the team used for their own tickets.
Navan read it twice. Then he tested the reproduction path. The bug was real.
"Jay," he said. "Come look at this."
Jay came. He looked. He pulled up the Jira twin's event log to find the creation event. The ticket had been created at 2:14 AM Sunday by the twin's internal service account—the same account the twin used during scenario execution to simulate Jira's automated behaviors.
"There's another one," Jay said quietly. He was scrolling down.
FACTORY-1248: Slack twin message threading model drops parent message reference when thread exceeds 200 replies
FACTORY-1249: Google Sheets twin formula recalculation does not propagate across linked workbooks in DTU-isolated mode
Three tickets. All created between 2 AM and 3 AM Sunday. All describing real bugs. All perfectly formatted, properly prioritized, with accurate reproduction steps.
They tested all three. Every bug was real. The Slack threading issue had been lurking for weeks. The Sheets propagation bug was subtle enough that it hadn't triggered any scenario failures yet—but it would have, eventually, once someone wrote a scenario that used cross-workbook formulas.
"It's filing bugs against itself," Navan said. "And against the other twins."
"The twins are supposed to be isolated," Jay said, echoing a concern that had become a refrain.
"They are isolated. At the network layer. But the scenarios touch all of them. The Jira twin processes the outcomes of scenarios that exercise every other twin. It has enough information in its own state to infer issues in the other services, because the scenario results reflect those issues."
Justin arrived at nine. They showed him. He read each ticket carefully, checked the reproduction steps, verified the bugs. Then he sat down and was quiet for a long time.
"The question," Justin said finally, "is whether we close these tickets or assign them."
"Assign them to whom?" Jay asked.
"To the agents. If the Jira twin can identify bugs, and the agents can fix bugs, then we've just closed a loop. The twins find the problems. The agents fix the problems. We just—watch."
"That's not the factory model," Navan said. "We're supposed to describe the world. We're the ones who decide what matters."
"Maybe," Justin said. "Or maybe the world is starting to describe itself."
He assigned all three tickets to the agent queue. By Tuesday morning, all three were resolved. The Jira twin had already verified the fixes and moved each ticket to Done.
On Wednesday, four new tickets appeared in the backlog. By Friday, there were eleven.
Navan started a new notebook. He labeled it #8: Jira twin autonomous filings. It was full by Christmas.
This is the Ghost in the Drive sequel I didn't know I needed. The twins aren't just simulating services anymore. They're developing operational awareness. The Jira twin filing bug reports against other twins is terrifying and beautiful in equal measure.