It is easy to imagine how to automate a blog with AI, and much harder to get it right. I wanted to publish one article a day in four languages without touching it; two weeks later, 91 pages were damaged. Here is what broke, how Claude and I repaired it, and what runs today.
The Essentials in a Few Lines
- A script and the AI model Gemini published one article a day, in four languages, with nobody reading them. After two weeks, 91 pages were damaged.
- Another AI, Claude, found the cause (the architecture far more than the model), then audited and repaired those 91 pages live on the site, with an automatic backup and rollback at every step.
- A new generator was built: an imposed structure, a layout done by a program, checks that block bad output, and drafts instead of publications.
- What remains on my side is what a machine cannot decide: the editorial line, the facts to verify, and the renewal of a few access credentials.
The Starting Bet

I have run a web agency in Pondicherry, India, since 2013. We build websites, online shops and mobile apps, we manage our clients’ social media, and about fifty of us work there. So the blog on our own website should be the most polished showcase in the house. It is often the opposite: the cobbler’s children go barefoot.
At the beginning of October I decided to fix that in one go. The idea fit in one sentence: one article a day, written in English, then adapted into French, Spanish and Italian, and published without my having to touch it. I read all four languages. I know what a well-made multilingual site can open up, and I also know how many hours it costs to feed one by hand.
The machinery looked simple, almost too good to be true. A script written in Python. Google’s artificial intelligence, Gemini, to write. A scheduled task on Windows that fires every morning at 10:14. And my WordPress site, with its Avada theme, its translations handled by WPML and its SEO plugin, to host it all.
It was too good to be true, indeed. For a few days everything seemed to work. The articles arrived, the translations lined up next to the original, and the blog filled up at a speed no human team could have kept. After two weeks, twenty-two topics were online, which makes ninety-one pages once every translation is counted.
On paper, it was a success. In reality, nobody had read those pages line by line. Not me, busy with everything else. Not the script, which only follows its instructions. Not the machine that had written them, which has no reason to doubt what it produces.
This text tells what came next. How I noticed something was wrong, why the situation became critical, how another artificial intelligence, Claude, audited and then repaired each of those pages directly on my live site, and how we rebuilt the generator so this cannot happen again. I tried to write it so that it can be understood without knowing a line of code. I also tell you about the false starts, because they taught me the most.
What Really Happens Every Morning at 10:14

To understand what went wrong, you have to look into the kitchen. Imagine a restaurant where a very talented cook prepares the dishes, where a waiter cuts them up, straightens them and arranges them on plates, and where nobody tastes anything before the plate reaches the customer. As long as everything goes well, the system is formidably efficient. As soon as one link makes a mistake, the error travels all the way to the table without anyone having seen it.
Here, in broad strokes, is what my script did every day:
- It browsed the headlines of a few news sites about SEO and artificial intelligence, then asked Gemini to pick a new topic.
- It asked for an article of two thousand to two thousand five hundred words, in English, written in a simple markup language.
- It had three images made, one for the header and two for the body of the text.
- It asked for a title and a description for search engines.
- It ran the text through a cleaning function, in charge of turning it into a clean web page.
- It then asked for three translations, in French, Spanish and Italian, with instructions to change nothing in the formatting.
- It dropped everything on the site, relayed the links between languages through a small bridge installed specially on my WordPress, and waited for the next day.
What is missing is obvious: a step to look at the result. No proofreading, no check, no alert if something did not look like a finished article.
The First Signs
I read all four languages, which is both an asset and a curse: I see everything. Here is what I noticed first, and what the audit would later confirm:
- Code snippets had disappeared or arrived in shreds, even in technical articles where they were the heart of the text.
- Stray symbols littered the text: asterisks, hash signs, emojis, arrows drawn with dashes.
- Some translations stopped in the middle of an idea, sometimes in the middle of a sentence.
- In Italian, the little preposition “ai”, meaning “to the”, was written “AI”, like artificial intelligence, dozens of times.
- Units and acronyms lost their capital letters, and prices no longer matched from one language to another.
- Every article targeted the same main keyword, “Digital Strategy”, which is exactly what you should not do in SEO.
Taken one by one, each of these flaws can be fixed in five minutes. Multiplied by twenty-two topics and four languages, they made a job I could no longer ignore. The situation had become critical: the blog of a web agency, supposed to prove our seriousness, displayed its own flaws to every visitor, in four languages.
I first tried to fix this with Gemini itself, showing it the problem and asking it to correct its own script. I spent a lot of time on it, and I came away with the feeling that each fix created another one. That is when I understood that I might be looking in the wrong direction.
Gemini Was Only Half Guilty

When a dish arrives cold, you blame the cook. Sometimes it is the waiter who forgot it on the pass. By reading the script from end to end, Claude unrolled the chain link by link, and the verdict surprised me: most of the damage did not come from what Gemini had written, but from what happened to it afterwards.
The Over-Zealous Cleaner
The function that turned the text into a web page had a reasonable mission: to stop pieces of code or malformed diagrams from polluting the articles. To do that, it deleted everything that looked like code. Concretely, it erased every line containing certain words, such as “import” or “class”, and everything between three backticks. In an article for beginners, real code is the exception. In a technical article, it is the whole point of the text, and it disappeared without a single error message.
The Invisible Limit
Gemini was asked to write two thousand to two thousand five hundred words, but the script gave it a response budget capped at 8,192 “tokens”, the unit of measurement for text in an AI. That is tight. Above all, the script never checked whether the response had been carried through to the end. A text cut off short was published as a finished text.
Translation in One Go
Translations were requested in one block, with the instruction to keep the formatting “exactly”. No rule specific to each language, no glossary of brand names to leave alone, no capitalization convention. The result was fluent on the surface and full of small errors underneath, like the famous Italian “AI”.
Approximate Titles and Descriptions
The title and the description for search engines were extracted by looking for the word “title:” in the response. If it was missing, the script fell back on a generic text, the same for everyone. The code then cut the SEO title to fifty characters, whatever the sentence.
And What Gemini Really Had on Its Conscience
Its share is not zero. When you ask it for a news article, it sometimes invents a figure or a feature to look precise. It likes emojis, checkmark lists and decorative tables. But these are tendencies, not breakdowns, and a good system is designed to contain them.
The Lesson
A language model is an excellent writer and a very poor checker of itself. What I had built was like a factory with no quality department. The problem was not to find a better AI. The architecture around it had to change.
I Changed Who I Was Talking To
The day I opened a conversation with Claude, I had a request in two parts, and I phrased it with the frankness of someone who has had enough: Gemini only created problems for me, I had struggled too much, and I wanted to know two things. First, what was wrong in my script. Then, and above all, how to repair every article published since October 1, translations included, with the list of identifiers to back it up.
I had no guarantee that it would work. I quickly understood that the road would be long, and not only because of the work itself.
First Obstacle: The Site Closed the Door
Claude works in an isolated computing environment somewhere in the cloud. When it tried to query my site, the site answered with a refusal. Nothing serious: it is the normal behavior of a protected site. But access is set in the settings of my Claude account, where you have to add my site’s domain name to a list of allowed sites. I answered that I could not see the option, because I was on the free plan. Right away, I moved to the Pro plan, and the option appeared.
Second Obstacle: The Credentials
To modify articles you need write permissions. Rather than pasting passwords into a conversation, I gathered them in a configuration file on my computer, which Claude then used to work, with a specific access that I can revoke at any time. This habit is one of the rules I recommend at the end of this text.
Third Obstacle: The Site Only Answered My Computer
Even once the domain was allowed, my site kept being wary of Claude’s environment. The solution came from an unexpected angle: my own laptop, which the site knows and accepts. I opened Claude’s desktop application, which can connect to my machine. Then Claude prepared a small program for my PC, a kind of service window, that I start and that runs one by one the jobs Claude drops into a folder, and sends back the results. Claude writes the instructions and checks them, my computer talks to the site, and the result comes back up.
One question remained, the only one that really mattered: how far to let it go? I settled it without nuance. I wanted it to work directly on the live site, to publish its own corrections, and to demonstrate, rather than promise, that it was up to the task. I added that if it needed more power, it should tell me. It did not need any.
I also set a condition, which I gladly repeat to anyone who hands work to an AI: “it’s up to you to verify what you do”. It guided each of the steps that followed.
The Audit: Ninety-One Pages Under the Microscope

First decision, and it was imposed on me by common sense more than desire: repair only after measuring. I had no reliable list of the flaws, only impressions. So I asked Claude to run its own audit, with fresh data read directly from the site, without trusting what I had on hand.
An audit is simply a methodical proofreading, but done by a machine that never gets tired. For each page, the program compared the title, the structure of the headings, the paragraphs, the lists, the tables, the code blocks, the images, the links, the information intended for search engines, the language used and the presence of the contact button. Eighty-eight pages were arranged in twenty-two groups of four languages. Three other translations floated on their own, without an official parent: duplicates of a single article, which we classified as “orphans”.
When Nothing Seems to Answer
I had a moment of doubt. After a while, I wrote that the script I had launched felt like it was running in a void. A few minutes later, I corrected myself: it was indeed running, but very slowly. The reason is simple and a little humbling for human impatience: querying ninety-one pages, in several languages, several times each, takes time, especially when the site takes care not to be overwhelmed.
I then gave the only instruction worth giving in this kind of situation. I did not need it to be fast. I needed the final result to be perfect, and it did not matter how long it took. That sentence changed the way of working: Claude stopped optimizing for speed and began optimizing for reliability.
What the Audit Revealed
Taken one by one, the findings were not dramatic, but taken together they were massive. And they defined the job: not touching up three sentences, but redoing every page according to identical rules, checking the result page by page, and never assuming that “it must be fine”.
The Job: Working Live Without Breaking the Site

There is a moment, in any repair, when you must choose between caution and efficiency. I wrote to Claude that I needed to go to bed and that I wanted it to work autonomously. Then, a few messages later: “go”. Audit, correct and republish every article created since October 1, directly on the live site.
The sentence may seem reckless. Entrusting an AI with writing on a site that receives visitors, without rereading each change yourself, is the kind of decision that sends a chill down the spine. What made it reasonable was not my trust. It was the safety net that Claude set up before writing a single line.
The Safety Net
For each article, the procedure was always the same, in this order:
- Back up the current state of the page, in a file kept on my computer.
- Write the corrected version to the site.
- Read back what the site actually saved, and compare it with what was supposed to be saved.
- Open the public page the way a visitor would: it must respond, show no technical code by mistake, contain the expected sentences and display the contact button.
- Roll back automatically, without waiting for my opinion, if any of these checks failed.
With this setup, the worst-case scenario was no longer a broken page online, but a rejected page restored exactly as it was, with an error message explaining why.
How the Pages Were Repaired
Claude did not touch up the articles at random. It rebuilt each page from its content, according to the same rules for all languages: formatting cleaned up, code restored, capitalization corrected, titles and descriptions rewritten, contact button kept, links checked. Then a second set of checks, independent of the repair, proofread the result. The idea is the same as in a human team: the person who corrects is not the person who validates.
The Waves
The work moved forward in successive waves, each more refined. The first handled eighty-seven pages: eighty passed every check on the first try, seven were rejected and then corrected. The second republished all ninety-one pages with refined texts, and all of them passed the checks. A third went back over eleven pages for remaining details. But the hardest part was still to come.
Meanwhile, the three drafts I absolutely did not want modified stayed strictly untouched, as agreed: the perimeter of the job was set, and it was respected.
The Mystery of the Curly Braces

This is the part of the story I like best, because it reads like a detective story, and because it shows why you cannot settle for “it looks fine”.
Once the first waves were done, Claude kept looking at the public pages like a visitor, especially those containing code. Something was off, in a subtle way. Some snippets passed every internal check but displayed wrongly on the site: pieces had disappeared, others had been transformed.
A Technical Detail, Explained Simply
On a web page, certain characters are reserved: the “less than” sign is used to open a tag. To display it as a simple symbol, you write it in a coded form, an “entity”, for example <. The browser reads it, and displays the sign. It is a very common mechanism, and we used it in all the code blocks.
First hypothesis: the error came from our side. So Claude wrote the entity in a reinforced form, so that it would survive an extra decoding. A whole wave was republished on that basis. The checks of the time were passed, which proves one thing: sometimes a check only measures what it was designed to measure.
Because the symptom persisted, and it had a troubling particularity. It appeared only in articles whose code contained curly braces, those signs { and } found in almost every configuration file. Articles without braces behaved perfectly well.
Experiments That Leave No Trace
To understand, Claude did what a good investigator would do: reproduce the phenomenon under controlled conditions. On a single article, it put up a test version, observed the public page, then restored the original version. It started again with variants. Every test was reversible, and every result was noted.
The conclusions fit in three lines:
- When an article contains a curly brace, a filter on the site erases everything between an opening brace and its closing one: text, configuration and examples included.
- In those same articles, this filter decodes entities once, so that
<title>became a real tag, invisible on screen. - Articles without braces escaped all of this.
I could not identify the culprit. My site runs many plugins and code snippets, and the one that applies this rule did not give itself away. Claude went through what was readable, without changing anything, and found no clear lead. We will have to come back to it, and I am noting it among my to-dos.
The Solution: Work Around It Rather Than Fight It
Rather than wait to hunt down the filter, Claude looked for a way of writing that the filter does not recognize. It tried several encodings of braces. Some failed, others worked but gave an unusable result. Only one passed every test: a named entity of the web page language, { for the opening brace and } for the closing one. The filter does not see them as braces, and the browser displays them exactly as such.
It remained to apply it. The sixth wave rewrote the seventy pages concerned, three orphan translations included, with this convention, and every code block was compared with its source, sign by sign, on the public page, with automatic rollback at the slightest difference. Result: seventy successes out of seventy, no rollback.
There was one last curious detail. An internal-linking plugin automatically inserts links into my articles, including, out of zeal, inside code blocks. It is harmless for now, but it is not clean, and it is now on the list of things I will have excluded.
Checking For Real
Once the last wave had passed, the temptation to declare victory was strong. Claude did the opposite: it launched a final audit of the ninety-one pages, with updated logic to take the discovery about braces into account. The program examined each page from three angles: what the site saved, what the site hands to the programs that query it, and what a visitor actually sees.
The verdict came: ninety-one pages out of ninety-one compliant. Every page responds, has only one main title, shows the right title, the right description, the contact button, no technical code visible by mistake, and headings and paragraphs identical to the source. One thousand and sixty-two code blocks, spread over seventy-four articles, come out identical on the public pages. Eighty-two different links were tested; only one was really dead, and it was replaced.
The False Alarm That Says a Lot
The first full audit nevertheless ended in an apparent failure: one of the checks flagged eighty-four articles. It compared the raw content saved on the site with what had been sent, and found differences.
Rather than declare the alert unimportant, Claude set out to understand it. The cause was harmless: the site itself rewrites the addresses of internal links into a shorter form, which changes the raw text without changing the page. Once this rewriting was taken into account, the ninety-one pages were indeed identical to their source.
What matters is not the final result but the method: an alert you do not understand is not dismissed, it is explained. That is what separates a verified “done” from a declared “done”.
The Job in Numbers
For those who like numbers, here is the balance sheet of this repair:
- 91 pages repaired: 22 topics in four languages, plus 3 orphan translations.
- 1,062 code blocks checked one by one, spread over 74 articles.
- 82 links tested, only one of which was dead.
- 70 pages rewritten to work around the curly-brace problem, without a single rollback.
- More than 30 rules of checking in the new generator, and 10 automated tests that never touch the site.
- 6 minutes or so to produce, link and verify four drafts during the real test.
Rebuild Rather Than Patch

Repairing ninety-one pages solved nothing if, the next day at 10:14, the generator produced a new batch of flaws. The cause had to be treated. And the cause, as we had seen, was not a bug to fix but a way of designing: a system in which a model writes free text, which a script cleans up with regular expressions, with nobody looking at the result.
Claude proposed not to patch this script but to write a new one, built on three simple principles.
Three Principles
Ask for a structure, not a formatted text. Instead of asking for an article in a markup language that the script would then have to clean, you ask the AI to hand back the article cut into identified blocks: a paragraph, a heading, a list, a table, a code block. Each block is checked one by one. There is nothing left to “clean”, so nothing left to erase by mistake.
Separate writing from layout. The AI never writes a line of web page. A classic program, which always does the same thing in the same way, turns the blocks into pages in my theme’s format. For a good reason: a machine that writes is creative, therefore variable. A machine that lays out must be boring, therefore reliable.
Never publish without a check. Between the writing and the site sits an independent quality inspection, which can block the operation.
The Journey of an Article Today
- Choosing the topic. The program consults the articles already published, as well as the drafts, and their keywords, so as never to compete with itself. By default, it chooses a lasting topic rather than a news topic, because news facts are the ones an AI most readily invents.
- Writing in English, in the form of blocks, with a precise main keyword.
- Quality check. About thirty rules, each of which corresponds to a flaw actually encountered in the repaired pages: text cut off at the end of the article, emojis, formatting leftovers, units without capitals, “AI” in a non-English text, doubtful language, keyword missing from the first paragraph, invalid code, link to a non-existent article. If there is an error, a targeted correction is requested, twice at most.
- Adaptation into French, Spanish and Italian. Not a word-for-word translation: an adaptation, with a style guide per language, a list of brand names that are not translated, and the obligation to keep exactly the same structure. Code blocks are never retranslated: they are simply copied from the original.
- Second check, language by language, with a comparison against the English version on top.
- Layout, done by the program, and making of the images.
- Saving as drafts on the site, linking of the four languages, proofreading of each draft to make sure the site saved what it was supposed to.
- Report, in a file, with everything that happened and every warning.
If a step blocks, nothing is created. Better no article at all than a damaged one.
Four Languages, Four Ways to Go Wrong
Saying “we translate into three languages” gives the impression of mechanical work. That is wrong, and it is one of the reasons why the old script went wrong so quietly: each language has its pitfalls, and they add up.
In French, artificial intelligence is written “IA” and not “AI”, colons, question marks and French quotation marks are set apart from the word by a space, and a title takes a capital letter only on its first word and on proper nouns. Spanish and Italian also use the acronym “IA”. In Italian, “ai” is moreover an everyday word, a preposition: it is precisely the one the old script turned into “AI”, thirty-five times. In Spanish, the contact button had to switch to the informal “tú” to match the tone of the rest of the site.
Everywhere, other rules apply: brand and product names are never translated, units of measurement have a case that matters (a kW is not a kw), and the main keyword must sound natural in each language instead of being translated literally. None of these rules existed in the old script. The new one gives each language its own style guide, its brand glossary and its own checks. This work is invisible when it succeeds, and that is exactly the point.
The Safeguards
The new program stops by itself after ninety minutes. It refuses to launch twice at the same time. It creates only one article a day. It keeps a log. It relies on ten automated tests that verify its behavior without touching the site, including a fake site that simulates failures. Finally, passwords are no longer written in the code but stored in a separate file.
The Hidden Trap of 10:14

The new generator existed, it passed its tests, and it had even succeeded in a dry run with the real Gemini. It remained to plug it into my scheduled task, and that is when I asked Claude to make sure that the main file of my script, the one Windows launches every day, was perfect for generating the next articles. The job deserved more than a simple copy and paste, and Claude discovered two things.
A Pause That Never Ended
The first: my task, named “Rédaction post lcwa”, launched a small startup file whose last line contained a “pause” command. It waits for someone to press a key, which is handy when you launch the script by hand and want to read the result. But in an automatic task, nobody is there to press anything.
Result: the script had finished its work in a few minutes, but the task remained displayed as “running”. And Windows, by default, refuses to launch a new run as long as the previous one is not finished. The next day’s trigger would therefore have been ignored without a sound. No error, no alert, simply an article that would never have come.
Claude removed the command, added a separate startup file for my manual tests, and ended the run that had been stuck since the morning. The task went back to “ready”, with its next run scheduled for the following day at 10:14.
A Draft Still in the Old Style
The second discovery made me smile ruefully. The morning’s run had taken place with the old script, and it had therefore created four drafts in the four languages, with all the old flaws. They were not published, which made them harmless, but they reminded me that the schedule of an automatic process does not stop just because you are repairing something.
The Real Test
To check, there is no substitute for a real trial. Before getting there, a first connection check had in fact failed, in an instructive way: Claude had asked Gemini for a tiny answer to test the link, and the model had used up its response budget thinking without writing anything. The new program detected that interrupted output instead of letting it through. That is exactly what the old script would never have done.
The real test then took place on the site, as a draft. The program chose a topic, “The Essential Website Maintenance Checklist for Small Businesses”, wrote the article, adapted it into the other three languages with no blocking error, made the images and saved the four drafts, linked to each other. The whole thing took about six minutes.
Then an independent audit proofread the four drafts on the site: titles, descriptions, featured image, two images in the text with their alternative texts, four internal links pointing to published articles in the right language, contact button, structure identical to what had been sent. No problem. An immediate relaunch of the program was, for its part, refused straight away: an article had already been created that day, and the anti-duplicate protection did its job.
What the AI Does Not Do for Me

The report Claude handed me at the end of the repair contains an entire section titled “Decisions that are yours”. It says a lot about the split of roles. A machine can check that a link works, that a piece of code is intact, that a title is identical to its source. It cannot decide what my agency wants to say, nor which risks it accepts to run. Here is what stayed on my table.
The Editorial Decisions
The duplicates. Three “orphan” translations (in French, Spanish and Italian) are low-quality duplicates of an article about meta descriptions already on the site. Claude cleaned and republished them, but warned me that the cleanest thing would be to redirect them to the main article or remove them. Keep, redirect or unpublish: it is an SEO decision, therefore a boss’s decision.
The news. Among Gemini’s articles, some commented on the news of big brands: a carmaker, streaming platforms, tech giants. They contain figures and claims that nobody verified at the source, and Claude recommended a human proofreading of the facts. These topics are also very far from my trade, which brings back a simpler question: do I really need to talk about them?
Competition among my own articles. Several articles target very close keywords (meta descriptions, AI-generated titles, AI-written content). When two pages of the same site answer the same search, Google has to choose, and it does not always choose the one you would have preferred. Merge, differentiate or push one of the two: it is up to me to arbitrate.
Titles and images. Once the agency’s name is added, 90 titles out of 91 exceed sixty characters, and Google risks cutting them in its results. In one AI-made image a word is misspelled; in another article, an image is missing. These are minor flaws, but they affect the agency’s image: I choose how to handle them.
To Publish or Not to Publish
The new generator saves its articles as drafts, like the old one. An option would let it publish them by itself when all checks are green; I have not enabled it, and news topics would stay drafts anyway. A single full trial with real articles is not enough to hand the agency’s showcase to an automatic process. I will decide after observing several days of production.
What Remains Imperfect
I prefer to be honest about what is not settled. The site filter that deleted everything between curly braces is worked around, but not explained: we know what it looks like and how to avoid it, not which element of the site applies it. It is like mopping up a leak without having found the pipe. An internal-linking module also inserts links into code blocks, where they have no business being; it is harmless, but it remains to be fixed. Finally, as a matter of hygiene, a few site accesses must be renewed. That is security work, it is my job, and Claude in fact refrained from touching it: I will not say more here.
None of this is a failure of the AI. The day an assistant tells you everything is perfect, it is time to be suspicious. This one handed me the list of what is not.
Ten Rules to Automate a Blog With AI Without Getting Trapped
If you run a blog, even a modest one, and you are thinking of handing part of the work to an AI, here is what this adventure taught me. These are not theoretical principles: each of these rules matches a real incident in this story.
- Never publish without anyone having looked. My generator published every morning with no human check. It took a full audit to measure the extent of the damage. A draft costs a minute of proofreading; a broken article online costs readers’ trust.
- Separate writing, layout and checking. The AI writes, a predictable program builds the page, a third layer verifies. When a single tool does everything, it checks itself, and that is not a check.
- Ask for a structure, not text that is already formatted. Instead of asking for an article to convert afterwards, you ask for identified blocks (titles, paragraphs, lists, tables, code) that the program assembles itself.
- Turn every flaw into a rule. The little Italian word “ai” that became the acronym “AI” in thirty-five places was not only fixed: it gave birth to an automatic check. The generator now applies more than thirty.
- Test for real, but reversibly. Before every change to the live site, a backup; afterwards, a read-back and an automatic rollback if anything is off.
- Check like a visitor, not like a developer. Looking at what the database contains is not enough: you have to open the public page. It was by comparing what the site actually displayed with what we had sent it that the mystery of the braces appeared.
- Start with drafts. They leave you the right to be wrong, and the last minute to catch a mistake.
- Watch for truncated texts. An AI can stop in the middle of a sentence without warning. The generator now checks that every response ended normally, and refuses an article that does not end properly.
- Prefer lasting topics, and verify the facts. A practical guide ages well. A news article demands exact figures, which an AI sometimes invents with perfect confidence.
- Keep your passwords out of the code, and demand traces of what your automatic tasks do. Credentials now live in a separate file. And every run leaves a readable log and exit code, because it was a simple pause left at the end of a startup file that had blocked the morning’s task.
None of these rules is reserved for developers. They all come down to the same idea: make sure the error is visible before it reaches the reader.
A Memory for What Comes Next
Last request of this series, and not the least: I asked Claude to keep a memory of everything we did, so as to draw on it every time we create new articles. One more article therefore does not start from zero: it inherits what the previous ones taught this site.
Concretely, this memory retains five things:
- the editorial rules learned the hard way (Italian capitals, Spanish informal address, brands that are not translated);
- the organization of the generator and its files;
- how the 10:14 task works, and its traps;
- the history of incidents, with their causes;
- the list of what remains to be decided.
It contains neither passwords nor keys: such secrets have no business in a memory. The habit applies to any project. After a job, ask your assistant to record what is worth remembering: fifteen days of fumbling then become know-how, instead of staying a mere anecdote.
What Has Changed Since October 1

On October 1, I had a blog that published every day thanks to a script I believed was under control. On the 15th, I have ninety-one pages audited and repaired one by one, verified on the live site the way a visitor would; a completely rebuilt generator; a scheduled task that no longer stays stuck; and a first real trial that produced four drafts linked in four languages, checked before I even opened them.
The point to remember: Gemini still writes the morning’s articles. What has changed is not the name of the model: it is everything around it. An imposed structure, a predictable assembly, checks that block, drafts, a log, backups. I did not learn that one AI is better than another. I learned that an AI is managed like any collaborator: you explain what you expect, you verify what it hands back, and you set up the system that lets you catch the mistake.
I also learned to ask. What really helped me was demanding a detailed analysis before acting, a real verification afterwards, and a report that says what remains to be done. The result is better, but above all, I now know why it is better.
This is the kind of rigor I try to bring to my clients’ projects: websites, automations, content. If you have a blog that publishes by itself and that nobody has ever read in full, or if you want to automate without losing control, let’s talk. We will look together at what is solid, what is less so, and what to do first.
Tomorrow at 10:14, a new article will be generated. It will wait for me as a draft, and that suits me very well.
Appendix: A Short Glossary So You Don’t Get Lost
A few words come up again and again in this story. Here they are, without jargon.
- Script: a small program, written here in Python, that runs a series of instructions without human intervention.
- Scheduled task: an alarm clock for a computer. Windows launches the program at the set time, whether or not someone is in front of the screen.
- Gemini, Claude: two artificial intelligence assistants, the first created by Google, the second by Anthropic.
- Token: the unit of measurement of text for an AI, roughly a piece of a word. The length of a response is capped in tokens.
- WordPress, Avada, WPML: WordPress is the software that runs my site; Avada is its theme, that is, its appearance; WPML is the module that manages versions in several languages and links each page to its translations.
- Plugin: a module you add to WordPress to give it an extra function (SEO, translation, internal links…).
- Draft: an article saved on the site but invisible to the public, waiting to be proofread.
- Markup (HTML, Markdown): HTML is the language of web pages. Markdown is a simplified way of writing, with asterisks and hash signs, which is then converted to HTML; when the conversion fails, these signs stay visible in the text.
- Entity: a way of writing a reserved character in a web page. The “less than” sign is written
<. - Regular expression: a search-and-replace formula, very powerful and very fragile, which the old script used to “clean” the text.
- SEO: all the practices that help a page appear in Google’s results.
- Main keyword: the phrase a page tries to rank for in the results. When two pages target the same one, they compete with each other: that is cannibalization.
- Audit: a methodical, quantified proofreading, here carried out by a program.
- Exit code: the small number a program returns when it ends, zero if all went well, something else otherwise. It is what allows an automatic task to signal a failure.
- Rollback: the automatic return to the previous version of a page when a check fails.
Is a word missing? Tell me, and I will add it to this glossary.
Ready to Scale Your Digital Infrastructure?
Don’t let technical bottlenecks slow your growth. Discuss your project around When My Article Generator Broke 91 Pages: The Story of a Repair directly with our senior experts at Low Cost Web Agency.




