Auto Marketing Engine — what changed, 20–21 August

Written for Dawn · the short version of two days' work

Two days of work on the engine, most of it triggered by what Tim said on the 19th. This is the summary rather than the raw log — the working transcript carried infrastructure detail and personal notes that have no business on a web page.

The part that needs you

FerroSpring still holds 2 of its 13 onboarding answers. maxelmagnets holds all 13. The bug that was eating them is genuinely fixed — the difference is simply that nobody has re-entered anything on FerroSpring since.

The ask is one clean run-through of onboarding with Tim, watching it save as it goes in. If it fails again we want to know before Tuesday, not during it. That is test 1 in the maxelmagnets test plan.

One thing to watch for. There are four newer questions — your top three ideas, your last handful of good leads, how much time you can give it, and whether you can supply original material. Until yesterday those could never be saved at all (see below). So if they fail, that is a new fault in freshly-changed code, not Tim's old problem coming back. Worth saying out loud in the room, because it will be heard as “it broke again” otherwise.

What Tim asked for, and what was built

Finished phases now get out of the way. A phase you have completed collapses to a quiet ticked row instead of competing for attention with the one you are on. It stays clickable — being able to go back was his condition. Completion is read from the saved record, never from the browser.
Onboarding stopped advertising its own output. The heading used to promise “a personalised 30/60/90 plan — and briefs every role in your department”, and the button read Generate work plan. That is precisely the “work output mixed into the setup” Tim objected to, printed at the top of the first screen. It now says plainly that nothing is produced there.
Phase 4 is a confirmation screen. The readiness score, the strongest/weakest ranking and the “next 10X” recommendation are gone. It shows what you entered and ends on the booked meeting.

The bug behind the four new questions

Worth understanding, because it explains why they have never once been used.

The screen that submits onboarding builds its payload by hand, field by field — and those four were simply missing from the list. They were collected, written to the browser, and dropped on the floor at submit. The server side was correct the whole time.

So it was never a case of nobody filling them in. The answers could not reach the server at all. Fixed, and the parser has been exercised directly with all four: it now returns 17 stored fields. Still unproven through the actual interface — that is your test 1.

It is the same shape as the fault that cost Tim six onboardings: a hand-maintained list that somebody has to remember to update.

A number we had wrong

We had been saying the engine has published 302 things unaided. The real figure is 255.

The other 47 were pages built by one of our own site generators and then recorded in the ledger so it matched what was live — real pages, but not the engine acting on its own. It surfaced while checking one of them on maxelmagnets: that site is not even on the list of sites the engine may publish to, so it could not have shipped the page attributed to it.

The review page now excludes them and says that it excludes them. Better found now than in front of everyone on Tuesday.

Where maxelmagnets actually stands

DisciplinePassWarnFail
Technical1100
SEO621
AI Search755
Content332
Social311
Reach010
total30129

Technical is a clean sweep — that is the half the engine can see and fix by itself. The failures cluster in AI Search and Content, which is exactly where a person has to supply something the engine cannot invent.

New: infographics built from a site's own numbers

The engine can now draw its own findings — a scorecard, a before/after, and a “weakest discipline” card — sized for LinkedIn and X.

The rule they are built on is the interesting part. Every figure has to come from the site's saved record. If a template has no real number to fill, it refuses to render and says why, rather than printing a zero or a blank. Two of the four refused on maxelmagnets: one because nothing has measurably moved yet, the other because there is not enough traffic to say anything honest about the funnel.

Looking at the pictures rather than the exit codes caught three real faults, including a card that announced “1 of 1” because a discipline with a single check wins any contest scored on ratio.

A rollback that could not roll back

Found while testing the above. Publishing a brand-new file worked; undoing it returned “backup missing” and left the file live. The cause was older and wider than infographics — it applied to any new page too, and most published pages are new.

Fixed: the inverse of creating a file is removing it, whatever kind of file it is. Verified end to end — publish, file appears, roll back, file gone.

Two meetings, not one

These had been running together in conversation:

Both dates were always right. Neither is a mistake.

The open question worth raising

The engine holds 505 social items: 502 waiting, none ever sent.

But they are not finished posts — they are briefs. A typical one gives the format, the angle, why that angle is honest, a hook, and then a line like “name real customers or real numbers instead of adjectives”, which is an instruction to a person, not copy. So there is nothing to approve and send; somebody has to write from it.

That is worth knowing before Tuesday, because it means we did not fail to ship 502 posts. We built 502 briefs and never wrote from one. The useful next step is small: take one site and about five briefs, have someone write the actual posts, and time it. If the brief saves real effort then the brief is the product. If not, we should stop generating more of them every night.

Also worth knowing