Slash O
Isotherm
11.0 °
Contour
5 / 9
Zone
0.00
Probe
x .500  y .500

The field at rest. Values recorded at build.

Surveyed by
Olivier Depiesse

The code is cheap now.
The question is not.

Evidence before intervention.

26 years building websites, seven of them leading engineering for media brands. I measure how a system behaves before coding agents go in, and again after. In between, they work on narrow jobs behind gates they cannot edit.

Book a call LinkedIn profile

Section
y .86
Isotherm
0.9 to 13.4 °

What usually goes wrong

Without a baseline, nobody can tell what the agents broke from what was already broken.

Three things I find when a team starts working with agents, usually in this order. If none of them sound like your team, I am probably not the person to call.

measured as
tests that pass twice in a row
build time
production error rate

1 Agents in, no baseline

The team adopts agents this quarter, and nobody wrote down how the system behaved before. The first incident gets blamed on someone, and nobody can prove it.

measured as
time from ticket to production
time a change waits for review
rework after a release

2 Review becomes the queue

Agents open more changes than anyone can read. Without tests and rules strong enough to trust, review becomes a formality or a bottleneck.

measured as
cost of one finished article
share that passes its checks first time
cost of a rerun

3 Nobody knows what an agent run costs

The bill comes per seat or per token, not per finished task. So nobody can tell whether the agents cost less than the work they replaced.

cost of one finished article
$6.93

Per new article on my own sites, in agent runs at API list prices: research, writing, fact-check, QA and image, not counting my review. 144 articles, to . One of them: the naked-eye Andromeda limit.

Section
y .74
Isotherm
1.1 to 13.7 °

Where I am useful

An agent that can loosen a test can make any change pass.

leaves behind
agent-readiness baseline
architecture tests
mutation score
CI documentation gates

A baseline before the agents

Before agents touch a codebase, I measure it: are the tests deterministic, are the architecture rules tested, do the CI gates catch what agents get wrong. Then the same measurements after.

leaves behind
agent roles and briefs
permission model
protected gates

Agents in the team’s workflow

Which jobs go to agents and which stay with people. A written brief per agent role, its permissions, and gates it cannot edit. I run my own sites this way, every day.

leaves behind
the split between code and model
a queue of doubtful cases

Code for counting, a model for judgment

Counting is work for code: exact, repeatable, nearly free. A model takes the judgments rules cannot make, such as whether two pages answer the same query, and answers with a probability, so the doubtful cases go to a person.

leaves behind
system map
template-level search baseline
addressability report

Media platforms and search

Where my evidence comes from: developer, technical project manager, then seven years leading engineering for two brand verticals at a European media group, with developers in France, Serbia, Brazil and Germany.

The work there: content systems multiplied by acquisitions, search at editorial scale, consent and the audience a sales team can still sell.

unique visitors a month, a celebrity news site in France
11.8M
sessions a day, a recipe site in Brazil
1.5M

Two of the sites I led engineering for. In France, Médiamétrie’s count for . In Brazil, Google Analytics over the 90 days to .

Where I am not

If your situation is one of these, a conversation wastes your time and mine.

  • Letting agents into a system where nothing checks their work. That one is a rule; there is a section on it below.
  • A demo with no baseline behind it.
  • Work that competes with my employer.
Section
y .63
Isotherm
2.2 to 11.9 °

I run my own sites with agents

Nothing publishes because an agent said it was fine.

Five sites I own and run with agents. Anything I recommend, I have tried on them first.

URLs in sitemap
809
last published
2026-11-15

explorecordoba.com (opens in a new tab) Córdoba, in English, for people who are actually going

28 days to
14,948 visits
516,989 search impressions
8,147 search clicks
293 from AI assistants

Visits a day, highest 725

2026-10-15: 465 visits, 5 from AI assistants 2026-10-16: 512 visits, 12 from AI assistants 2026-10-17: 432 visits, 17 from AI assistants 2026-10-18: 532 visits, 4 from AI assistants 2026-10-19: 534 visits, 10 from AI assistants 2026-10-20: 544 visits, 10 from AI assistants 2026-10-21: 502 visits, 10 from AI assistants 2026-10-22: 546 visits, 17 from AI assistants 2026-10-23: 489 visits, 9 from AI assistants 2026-10-24: 584 visits, 10 from AI assistants 2026-10-25: 575 visits, 16 from AI assistants 2026-10-26: 506 visits, 16 from AI assistants 2026-10-27: 687 visits, 20 from AI assistants 2026-10-28: 523 visits, 6 from AI assistants 2026-10-29: 494 visits, 12 from AI assistants 2026-10-30: 434 visits, 12 from AI assistants 2026-10-31: 424 visits, 8 from AI assistants 2026-11-01: 649 visits, 14 from AI assistants 2026-11-02: 725 visits, 9 from AI assistants 2026-11-03: 707 visits, 9 from AI assistants 2026-11-04: 550 visits, 8 from AI assistants 2026-11-05: 516 visits, 5 from AI assistants 2026-11-06: 457 visits, 5 from AI assistants 2026-11-07: 451 visits, 12 from AI assistants 2026-11-08: 516 visits, 8 from AI assistants 2026-11-09: 470 visits, 11 from AI assistants 2026-11-10: 550 visits, 8 from AI assistants 2026-11-11: 574 visits, 10 from AI assistants

From AI assistants a day, highest 20

2026-10-15: 465 visits, 5 from AI assistants 2026-10-16: 512 visits, 12 from AI assistants 2026-10-17: 432 visits, 17 from AI assistants 2026-10-18: 532 visits, 4 from AI assistants 2026-10-19: 534 visits, 10 from AI assistants 2026-10-20: 544 visits, 10 from AI assistants 2026-10-21: 502 visits, 10 from AI assistants 2026-10-22: 546 visits, 17 from AI assistants 2026-10-23: 489 visits, 9 from AI assistants 2026-10-24: 584 visits, 10 from AI assistants 2026-10-25: 575 visits, 16 from AI assistants 2026-10-26: 506 visits, 16 from AI assistants 2026-10-27: 687 visits, 20 from AI assistants 2026-10-28: 523 visits, 6 from AI assistants 2026-10-29: 494 visits, 12 from AI assistants 2026-10-30: 434 visits, 12 from AI assistants 2026-10-31: 424 visits, 8 from AI assistants 2026-11-01: 649 visits, 14 from AI assistants 2026-11-02: 725 visits, 9 from AI assistants 2026-11-03: 707 visits, 9 from AI assistants 2026-11-04: 550 visits, 8 from AI assistants 2026-11-05: 516 visits, 5 from AI assistants 2026-11-06: 457 visits, 5 from AI assistants 2026-11-07: 451 visits, 12 from AI assistants 2026-11-08: 516 visits, 8 from AI assistants 2026-11-09: 470 visits, 11 from AI assistants 2026-11-10: 550 visits, 8 from AI assistants 2026-11-11: 574 visits, 10 from AI assistants

Day by day
DayVisitsFrom AI assistants
4655
51212
43217
5324
53410
54410
50210
54617
4899
58410
57516
50616
68720
5236
49412
43412
4248
64914
7259
7079
5508
5165
4575
45112
5168
47011
5508
57410
URLs in sitemap
653
last published
2026-11-14

exploregranada.org (opens in a new tab) Granada and the Alhambra, the same way

28 days to
8,087 visits
415,778 search impressions
4,209 search clicks
326 from AI assistants
URLs in sitemap
672
last published
2026-11-15

darkskiesatlas.com (opens in a new tab) Where the sky is still dark, and how to get there

28 days to
4,703 visits
143,122 search impressions
1,587 search clicks
194 from AI assistants
URLs in sitemap
360
last published
2026-11-15

cadizexperience.com (opens in a new tab) Cádiz, in English, for people who are actually going

13 days to
183 visits
20 from AI assistants
18 days to
4,337 search impressions
93 search clicks
URLs in sitemap
124
last published
2026-11-15

sottoscocca.com (opens in a new tab) Engineering stories from primary sources, in Italian: aviation, grids, chips

8 days to
107 visits
0 from AI assistants
10 days to
1,073 search impressions
22 search clicks

They are run through one content factory. Each agent has a role and a written brief. A piece of content passes validators before it publishes, every commit and push runs through gates, and a build-determinism check runs before anything deploys.

Content publishes when the gates pass, and the gates have their own tests.

Visits come from Google Analytics, which counts only visitors who accept its cookies, so it undercounts. Search figures come from Search Console. Visits from AI assistants count only those that say where they came from. Google counts its own AI answers inside search and does not separate them.

Section
y .51
Isotherm
4.4 to 14.7 °

Four readings from recent work

Each reading is a measurement, then the change, then the same measurement again.

They come from sites I own, so the properties are named and the numbers can be checked.

Fig. a exploregranada.org
Before
1.38%
After
1.92%

of search impressions turned into clicks

Before The day trips guide converted 1.38% of its search impressions into clicks from to , at position 6.1. Its title named no destination, and the page said six trips where it listed seven.

Change On I rewrote its search title and description to lead with the real count and name the destinations.

After 1.92% from to , at position 6.9. Up 39% against 3% for twelve comparable pages left alone.

Fig. b explorecordoba.com
Before
164
After
109

milliseconds for Google’s crawler to get a response

Before Google’s crawler waited 164 ms on average for each response from to , and made 951 requests a day. A page missing from Cloudflare’s cache had to come from the origin first.

Change On I started warming the cache every hour from the sitemap, all 777 pages, and the shared assets once a day.

After 109 ms from to , also twelve days. Crawling rose to 1,650 requests a day in that window, though Google crawls for its own reasons too.

Fig. c the content factory
Before
64%
After
0%

of fact-check records that said pass without the checks behind it

Before Of the 315 fact-check records on , 201 said “pass” and nothing else. The gate checked only that word, and an agent could write it without the fact-checker ever running.

Change On I made the gate demand the work itself: a verdict for every claim checked, and a count that matches them.

After All 751 records written since carry their verdicts. In the 30 days to , the gate stopped 156 of 656 runs before anything published.

Fig. d sottoscocca.com
Before
4,015
After
2,555

milliseconds to paint the largest element on mobile

Before The article index took 4,015 ms to paint its largest element on , on a throttled mobile profile in the lab.

Change On I reworked its fonts and layout, then added serif fallbacks and preloaded the lead image.

After 2,555 ms on , the middle of three runs. Still 55 ms over the 2,500 ms target.

Section
y .39
Isotherm
4.5 to 15.3 °

Questions I get asked

A team that ships more code and fails more deploys has not become faster.

Asked by people doing the work, answered the way I would answer them in a room. Each one is dated and attributed by role.

asked on
asked by
the CTO of a media group

Should we let coding agents work on our legacy CMS?

Yes, once you know how it behaves today. Record the baseline first: which tests exist and pass, how long a build takes, the error rates in production, what a page costs to render. It is a short piece of work next to what comes after it.

Without it, the first incident after the agents arrive gets blamed on the agents and nobody can prove otherwise. Or it gets blamed on the old code, and nobody can prove that either.

Then give the agents narrow jobs whose result can be checked: tests for code that has none, dependency upgrades behind a passing build. Leave the parts nobody understands for last. An agent will change them with confidence.

asked on
asked by
an SEO analyst

How do I analyse a lot of Apache logs with AI?

Not by sending the logs to a chat model. It reads every line as tokens, so the bill grows with the log, and a month of access logs is millions of lines that a parser reads exactly, for nothing. Filter to the crawlers you care about and confirm they are who they say they are. Then count hits, status codes and response times by URL. None of that needs a model.

The model is useful where the rules run out: deciding which section or page type a URL belongs to when the URL patterns stopped being consistent years ago. Ask that once per distinct URL, not once per line, and use a model built for that kind of judgment, such as TypeSafe’s Jev, which returns a label and a probability instead of writing text. Thousands of questions instead of millions, and answers that code can count.

Then the question that was asked in the first place has an answer you can check: where the crawl budget goes, by section, and how much of it lands on pages nobody should be crawling.

asked on
asked by
the head of SEO at a publisher

How do we find pages that compete with each other in search?

Start from Search Console, not from the content. Cannibalisation shows up as several of your URLs taking impressions for the same query, with the one Google ranks changing from week to week. Group by query, keep the queries where two or more URLs share the impressions, and code has built the list for nothing.

Content similarity comes second. Embeddings find the pairs of pages that say the same thing, including across titles that were bought years apart and never compared. A model judges the borderline pairs: the same intent, or two angles on one subject? Two angles can both stay.

A person decides which page is canonical and what happens to the other: merge, redirect, or rewrite it toward a different query. Then watch the query group, not the page, because the point was that one of them wins.

asked on
asked by
the CEO of a digital publisher

Can AI tell us why our traffic dropped?

Not on its own. A drop has many candidate causes: a deploy, a template change, the consent banner, a migration, an algorithm update, a competitor, the season. A model can line them up against the chart, but only the ones somebody recorded, with a date.

So the first job is the record: what changed, where and when, from deploy logs, the CMS, the tag manager’s history and Search Console. Then split the drop by template, section and query group. A real cause shows up in one slice before it shows up in the total.

The model is useful for reading that timeline next to the slices and saying which changes line up. It proposes, and the slices confirm it or do not.

Section
y .28
Isotherm
3.0 to 14.8 °

How I work

If I can help

An engagement can take one of three shapes: a fixed-scope look at something specific, a standing advisory arrangement, or embedded with your team, building. Which one fits, how long it runs and what it costs are decided per case, after the conversation.

If you are hiring for this work, write as well.

What I do not do: Slash O does not ship what it cannot measure.

I build every day, with agents, on the sites above. What I will not do is let agents into a system where nobody can check what they did. If there is no baseline, I build it first, and the gates come before the agents. If you want the agents without the measurements, I am the wrong person, and I will say so in the first conversation.

Book a call

By day I manage engineering at a multi-site European media group. I advise in a personal capacity: my employer is not party to any engagement, and I do not take work that competes with it.

Working languages

English, French and Spanish. Anything I write for you is in English unless you ask otherwise.

Section
y .16
Isotherm
2.1 to 15.3 °
Córdoba, local time

Contact

Write to me with the team, the system, and what you want agents to do in it. I reply within two working days. If I cannot help, I will say so, and I will try to tell you who can.

[email protected]

Or book a call directly.

Olivier Depiesse Agentic engineering, Córdoba, Spain LinkedIn X GitHub