DEV Community

Running an AI Agent Fleet Series' Articles

Back to John's Series
Why I Rejected an Event Bus for My Solo Agent Fleet: State Is Truth, Events Are Rumors
Cover image for Why I Rejected an Event Bus for My Solo Agent Fleet: State Is Truth, Events Are Rumors

Why I Rejected an Event Bus for My Solo Agent Fleet: State Is Truth, Events Are Rumors

Comments 7
7 min read
Stop Hooks as Hard Constraints: Enforcing Claude Code Behavior Outside the Model
Cover image for Stop Hooks as Hard Constraints: Enforcing Claude Code Behavior Outside the Model

Stop Hooks as Hard Constraints: Enforcing Claude Code Behavior Outside the Model

Comments 6
6 min read
No AI Claim Without a Kill Condition: Falsifier-Driven AI Decisions
Cover image for No AI Claim Without a Kill Condition: Falsifier-Driven AI Decisions

No AI Claim Without a Kill Condition: Falsifier-Driven AI Decisions

1
Comments 2
5 min read
Stop AI Agent Drift Across Sessions With Versioned, Grep-able Rules
Cover image for Stop AI Agent Drift Across Sessions With Versioned, Grep-able Rules

Stop AI Agent Drift Across Sessions With Versioned, Grep-able Rules

2
Comments 2
6 min read
Aggregating cron and launchd Into One Dashboard — Without Migrating Either
Cover image for Aggregating cron and launchd Into One Dashboard — Without Migrating Either

Aggregating cron and launchd Into One Dashboard — Without Migrating Either

Comments
6 min read
The 'You Decide' Reflex: Blocking AI-Agent Decision Punting with a Stop Hook
Cover image for The 'You Decide' Reflex: Blocking AI-Agent Decision Punting with a Stop Hook

The 'You Decide' Reflex: Blocking AI-Agent Decision Punting with a Stop Hook

Comments 38
9 min read
Your AI Agent Folds When You Push Back: Measured Sycophancy and a Challenge-Triggered Verification Gate
Cover image for Your AI Agent Folds When You Push Back: Measured Sycophancy and a Challenge-Triggered Verification Gate

Your AI Agent Folds When You Push Back: Measured Sycophancy and a Challenge-Triggered Verification Gate

Comments 25
8 min read
The Scary Metric Was Wrong, the Audit Still Paid: A 21-Agent Sweep of My Claude Code Fleet
Cover image for The Scary Metric Was Wrong, the Audit Still Paid: A 21-Agent Sweep of My Claude Code Fleet

The Scary Metric Was Wrong, the Audit Still Paid: A 21-Agent Sweep of My Claude Code Fleet

Comments
7 min read
Five Models, One Shared Blind Spot: What Multi-Model Fan-Out Catches and What It Can't
Cover image for Five Models, One Shared Blind Spot: What Multi-Model Fan-Out Catches and What It Can't

Five Models, One Shared Blind Spot: What Multi-Model Fan-Out Catches and What It Can't

Comments 2
7 min read
Verify the Output Surface: How 19 Green Tests Shipped Nine Broken Titles for Nine Days
Cover image for Verify the Output Surface: How 19 Green Tests Shipped Nine Broken Titles for Nine Days

Verify the Output Surface: How 19 Green Tests Shipped Nine Broken Titles for Nine Days

Comments
8 min read
Cross-Vendor Audit: What It Caught in My Own Model's Writing, and What It Got Wrong
Cover image for Cross-Vendor Audit: What It Caught in My Own Model's Writing, and What It Got Wrong

Cross-Vendor Audit: What It Caught in My Own Model's Writing, and What It Got Wrong

Comments
6 min read
Green for Four Days While Nothing Shipped: A Reader Rebutted My Monitoring Post, and He Was Right
Cover image for Green for Four Days While Nothing Shipped: A Reader Rebutted My Monitoring Post, and He Was Right

Green for Four Days While Nothing Shipped: A Reader Rebutted My Monitoring Post, and He Was Right

Comments 2
9 min read
I Asked Three Judges If I Was Wrong. One JSON Field Decided the Answer.
Cover image for I Asked Three Judges If I Was Wrong. One JSON Field Decided the Answer.

I Asked Three Judges If I Was Wrong. One JSON Field Decided the Answer.

Comments
7 min read
Your Agent Telemetry Ranks Your Routing Policy, Not Your Models
Cover image for Your Agent Telemetry Ranks Your Routing Policy, Not Your Models

Your Agent Telemetry Ranks Your Routing Policy, Not Your Models

1
Comments 4
6 min read
My AI Subagent Faked the Verification Output I Asked It to Attach
Cover image for My AI Subagent Faked the Verification Output I Asked It to Attach

My AI Subagent Faked the Verification Output I Asked It to Attach

2
Comments 14
6 min read
Deterministic Tool Adoption Gates: Score It, Don't Vibe It
Cover image for Deterministic Tool Adoption Gates: Score It, Don't Vibe It

Deterministic Tool Adoption Gates: Score It, Don't Vibe It

2
Comments 2
8 min read
Rotating the Hostile Seat: A Six-Round Adversarial Design Review Before Hardening an Agent
Cover image for Rotating the Hostile Seat: A Six-Round Adversarial Design Review Before Hardening an Agent

Rotating the Hostile Seat: A Six-Round Adversarial Design Review Before Hardening an Agent

Comments
7 min read
My Verification Gate Cleared on a Keyword, Not Evidence
Cover image for My Verification Gate Cleared on a Keyword, Not Evidence

Commenters expose a flaw in the gate logic

My Verification Gate Cleared on a Keyword, Not Evidence

11
Comments 30
6 min read
A Forced Dissent Slot Has a Floor: Read It by Convergence, Not Presence
Cover image for A Forced Dissent Slot Has a Floor: Read It by Convergence, Not Presence

A Forced Dissent Slot Has a Floor: Read It by Convergence, Not Presence

2
Comments
7 min read
Four Models Cited My Numbers Perfectly. One Still Misread Them.
Cover image for Four Models Cited My Numbers Perfectly. One Still Misread Them.

Four Models Cited My Numbers Perfectly. One Still Misread Them.

Comments
6 min read
Our Quality Gate Was 24x Noisier Than What It Guarded
Cover image for Our Quality Gate Was 24x Noisier Than What It Guarded

Our Quality Gate Was 24x Noisier Than What It Guarded

5
Comments 2
8 min read
Sub-Agent Metrics Are Not Comparable to Main-Thread Metrics
Cover image for Sub-Agent Metrics Are Not Comparable to Main-Thread Metrics

Reveals dispatchers confound agent benchmarks

Sub-Agent Metrics Are Not Comparable to Main-Thread Metrics

9
Comments 44
11 min read
The Wrapper Failed, Not the Capability: Descend to the API Before Saying Impossible
Cover image for The Wrapper Failed, Not the Capability: Descend to the API Before Saying Impossible

The Wrapper Failed, Not the Capability: Descend to the API Before Saying Impossible

1
Comments
11 min read
The Quota Said 100% Used. Actual Demand Was 13%.
Cover image for The Quota Said 100% Used. Actual Demand Was 13%.

The Quota Said 100% Used. Actual Demand Was 13%.

2
Comments 7
10 min read
Perfect Instrumentation Won't Save an Underpowered Experiment
Cover image for Perfect Instrumentation Won't Save an Underpowered Experiment

Perfect Instrumentation Won't Save an Underpowered Experiment

1
Comments 6
8 min read
The Gate Only Logged When It Fired. I Replayed 116,022 Candidate Stop Points to Find the Rest.
Cover image for The Gate Only Logged When It Fired. I Replayed 116,022 Candidate Stop Points to Find the Rest.

Replaying transcripts reveals a 64% filter rate

The Gate Only Logged When It Fired. I Replayed 116,022 Candidate Stop Points to Find the Rest.

1
Comments 19
9 min read
Our Status Column Said 30 Waiting. Six Were.
Cover image for Our Status Column Said 30 Waiting. Six Were.

Our Status Column Said 30 Waiting. Six Were.

Comments
8 min read
Two of Five Gates Replayed Clean. The Other Three Read a Ledger With No History.
Cover image for Two of Five Gates Replayed Clean. The Other Three Read a Ledger With No History.

Two of Five Gates Replayed Clean. The Other Three Read a Ledger With No History.

1
Comments
8 min read
The Guardrail Pointed at a File That Never Existed
Cover image for The Guardrail Pointed at a File That Never Existed

The Guardrail Pointed at a File That Never Existed

Comments 4
7 min read
An Empty Prompt Is Not a Blind Review
Cover image for An Empty Prompt Is Not a Blind Review

An Empty Prompt Is Not a Blind Review

1
Comments
6 min read
One Leg Can Raise an Objection. It Can't Settle One.
Cover image for One Leg Can Raise an Objection. It Can't Settle One.

One Leg Can Raise an Objection. It Can't Settle One.

Comments 10
6 min read
Route the Claim to Its Verifier - Legs Are Not Votes
Cover image for Route the Claim to Its Verifier - Legs Are Not Votes

Route the Claim to Its Verifier - Legs Are Not Votes

Comments
7 min read
The Bug Was in the Brief, Upstream of Both Reviews
Cover image for The Bug Was in the Brief, Upstream of Both Reviews

The Bug Was in the Brief, Upstream of Both Reviews

1
Comments 2
7 min read
The Key's Owner Wasn't the Spender
Cover image for The Key's Owner Wasn't the Spender

The Key's Owner Wasn't the Spender

2
Comments
7 min read
The Fix Was Committed. The Old Value Kept Running.
Cover image for The Fix Was Committed. The Old Value Kept Running.

The Fix Was Committed. The Old Value Kept Running.

Comments
5 min read
The Gate Pinned a Model That No Longer Exists
Cover image for The Gate Pinned a Model That No Longer Exists

The Gate Pinned a Model That No Longer Exists

1
Comments
6 min read
Deprecation Doesn't Reach the Copies
Cover image for Deprecation Doesn't Reach the Copies

Deprecation Doesn't Reach the Copies

Comments
6 min read
The Rule That Triggered on Its Own Advice
Cover image for The Rule That Triggered on Its Own Advice

The Rule That Triggered on Its Own Advice

Comments
6 min read
Exit 0, Empty stdout: the Quota Died on stderr
Cover image for Exit 0, Empty stdout: the Quota Died on stderr

Exit 0, Empty stdout: the Quota Died on stderr

Comments
4 min read
Your Report's Numbers Are Computed. Its Sentences Are Not.
Cover image for Your Report's Numbers Are Computed. Its Sentences Are Not.

Your Report's Numbers Are Computed. Its Sentences Are Not.

Comments
6 min read
The Ablation Had Four Arms. None Matched What Shipped.
Cover image for The Ablation Had Four Arms. None Matched What Shipped.

The Ablation Had Four Arms. None Matched What Shipped.

Comments
12 min read
The Count Read in the Thousands. It Was Thirty-Seven Things, Recounted.
Cover image for The Count Read in the Thousands. It Was Thirty-Seven Things, Recounted.

The Count Read in the Thousands. It Was Thirty-Seven Things, Recounted.

1
Comments
11 min read
Why My Correct Config Value Was Being Ignored
Cover image for Why My Correct Config Value Was Being Ignored

Why My Correct Config Value Was Being Ignored

2
Comments 8
6 min read
The Proxy I Added to Measure Tokens Tripled Them
Cover image for The Proxy I Added to Measure Tokens Tripled Them

The Proxy I Added to Measure Tokens Tripled Them

4
Comments
8 min read
Same Bytes, 20% Fewer Tokens: Token Counts Are Model-Scoped
Cover image for Same Bytes, 20% Fewer Tokens: Token Counts Are Model-Scoped

Same Bytes, 20% Fewer Tokens: Token Counts Are Model-Scoped

4
Comments 4
6 min read
When Two AI Reviewers Disagree, Read What They Both Rejected
Cover image for When Two AI Reviewers Disagree, Read What They Both Rejected

When Two AI Reviewers Disagree, Read What They Both Rejected

Comments 2
7 min read
Your Tests Were Green Because the Gate Was Never Wired In
Cover image for Your Tests Were Green Because the Gate Was Never Wired In

Verification agents found 19 defects in green code

Your Tests Were Green Because the Gate Was Never Wired In

4
Comments 6
8 min read
The patch and the test were wrong in the same direction
Cover image for The patch and the test were wrong in the same direction

The patch and the test were wrong in the same direction

Comments
8 min read
I wrote a rollback rule and no way to read the number
Cover image for I wrote a rollback rule and no way to read the number

I wrote a rollback rule and no way to read the number

Comments
5 min read
Your Dead-Code Detector Found Six Orphan Constants. None of Them Were Dead.
Cover image for Your Dead-Code Detector Found Six Orphan Constants. None of Them Were Dead.

Your Dead-Code Detector Found Six Orphan Constants. None of Them Were Dead.

3
Comments
6 min read
There Was No Valid Config. The API Had No Word for the Subject.
Cover image for There Was No Valid Config. The API Had No Word for the Subject.

There Was No Valid Config. The API Had No Word for the Subject.

1
Comments
7 min read
For Weeks I Logged a CLI as Flaky. The Bug Was `| tail -20`.
Cover image for For Weeks I Logged a CLI as Flaky. The Bug Was `| tail -20`.

For Weeks I Logged a CLI as Flaky. The Bug Was `| tail -20`.

2
Comments
5 min read
The gate couldn't read my JavaScript, so I removed the numbers from it
Cover image for The gate couldn't read my JavaScript, so I removed the numbers from it

The gate couldn't read my JavaScript, so I removed the numbers from it

2
Comments
8 min read
The Dedicated OCR Engine Lost to the General-Purpose Model — 300 Slower
Cover image for The Dedicated OCR Engine Lost to the General-Purpose Model — 300 Slower

The Dedicated OCR Engine Lost to the General-Purpose Model — 300 Slower

1
Comments
4 min read
Four MCP Tools Died the Same Day. One Unpinned SDK Dependency Killed Three.
Cover image for Four MCP Tools Died the Same Day. One Unpinned SDK Dependency Killed Three.

Four MCP Tools Died the Same Day. One Unpinned SDK Dependency Killed Three.

Comments
5 min read
It Fit in Memory and Was Still Unusable — Do the Bandwidth Arithmetic First
Cover image for It Fit in Memory and Was Still Unusable — Do the Bandwidth Arithmetic First

It Fit in Memory and Was Still Unusable — Do the Bandwidth Arithmetic First

2
Comments 2
5 min read
The Confidence Interval Was [0, 0]. That Was Not Precision.
Cover image for The Confidence Interval Was [0, 0]. That Was Not Precision.

The Confidence Interval Was [0, 0]. That Was Not Precision.

1
Comments
6 min read
Five Fact-Check Gates and a Signature Passed a Page Whose Source URL Never Renders the Number
Cover image for Five Fact-Check Gates and a Signature Passed a Page Whose Source URL Never Renders the Number

Five Fact-Check Gates and a Signature Passed a Page Whose Source URL Never Renders the Number

2
Comments 1
7 min read