RSS Amplifier

Tiny Little Experiments · Jul 28, 2026

I stopped writing ‘trust but verify.’ Here’s what replaced it.

0
Sign in to vote or save

Harshdeep Gupta · Tiny Little Experiments

Most AI assisted triage I’ve seen ends with “this analysis was done using AI, trust but verify.” If it needs that line, you didn’t do the triage. You signed your name to it and made someone else responsible. There is no accountability or ownership in your analysis.

I get why people write it. You pointed a model at a failure, it gave you back something that reads well, and you’re not confident enough to stand behind it. So you attach a warning label. That doesn’t remove the work though, it moves it. Now somebody else has to verify an analysis you didn’t verify, with less context than you had.

I spent about two weeks building something that posts without that line. Here’s what it took, including the parts that broke.

I’m a systems engineer, 7 years in, on the compute team for an Azure platform at Microsoft. My team runs a weekly oncall rotation. When it’s my week, I own CI test health and keeping our pass rates above threshold.

That’s 5 to 15 failed test runs waiting for me every morning. A few are new. Most are repeats of something already filed. The job is to tell which is which, root cause the new ones from traces and logs, and get them in front of whoever owns that code.

Even with Copilot and Claude helping, it stayed manual. Prompt, read, verify, correct, repeat. 8 to 10 hours a week. So I started batching. Once or twice a week instead of daily. Which meant failures sat for days before anyone looked at them, and I never got to the actual job, which is chasing owners until the fixes land.

The hedging wasn’t the only thing I wanted gone. The output was walls of text nobody wants to parse. All I want out of an investigation is: X happened, because of Y, here are the traces. That’s it. So: something that reads the traces, pulls the logs, downloads diagnostics etc., and drafts a comment a human can actually read. Without me prompting it every time.

First attempt was a skill. I wrote the whole procedure down. Where the traces live, which logs matter, how to check for an existing issue before filing a new one, how to write it up so someone can follow it in one read. Everything I’d normally say, said once, up front.

It didn’t work as well as I had hoped.

Why not just write a better skill? Because the problem isn’t what’s in it. Thirty plus tool calls in, reading code and pulling traces and downloading diagnostics, the model is carrying so much context that the original instructions stop landing. It would nail the root cause and then write it up in exactly the bloated style I’d told it to avoid.

So I became the reminder loop. “Did you check the traces.” “Did you look at that component.” “Use the writing skill I gave you.” I was sitting there re-typing things I had already written down. Several times per failure, across 5 to 15 failures a morning. The most repetitive part of the process was me.

This is where it struck me.

A second agent can ask those questions. Pretty Socratic I would say.

An investigator that drives, and a critic that reads what the investigator says and asks why, over and over, until the analysis is actually grounded in traces and code instead of stories and theories.

Whenever behavior drifted, Copilot wanted to fix it by adding another paragraph to a prompt. I kept saying no. Natural language can’t be made deterministic. Anything that can be deterministic, should be.

Em dashes are the clearest case. I don’t write them, they read as a machine tell, and both agents knew the rule. Both of them approved comments containing em dashes anyway, and those comments shipped.

Two models, both instructed, both agreeing, both wrong. And I was looking at the output quite amazedly.

Now any draft with one in it gets rejected at the harness layer before the critic is ever asked, so it never costs a turn.

The agent used to pick an assignee by blaming whatever code it suspected.

One time it got the assignment wrong, and pinged someone totally unrelated with the codebase. That person responded with what was the ask. It was a bit embarrassing, and totally unacceptable. I do the manual assignment for new issues since.

It runs live now. Posts on its own, no disclaimer on anything. I spend 10 to 25 minutes each morning going through what it did overnight. 9 out of 10 drafts ship as written. For the tenth I reopen the session that ran the investigation and just talk to it. It’s like talking to the engineer who did the work..

The routing is still mine and I’ve stopped trying to hand that part off. Talking to other engineers about their code’s failure was never the part I wanted a machine to do.

No posts

Read the original on harshdeepgupta.substack.com

Comments

Nothing yet. Say the first thing.

    Sign in to join the conversation.