An empty architecture baseline looks like a finish line. In Alexander Kell’s account of running ArchKeel through a 121-file refactoring of DATAMIMIC CE, it was not one. Review still found two merge-blocking failures: a public Python API regression, and a shell gate that could stay green after a failing test command. The architecture check passed, and the code was still not ready to merge.
What Kell reports
The figures below come from Kell’s own post. None of them has been independently measured or audited in the material available, so read them as his account of the run.
As an Amazon Associate I earn from qualifying purchases.
| Item | Reported value | Qualification |
|---|---|---|
| Experiment size | 121 files | Author’s account on DATAMIMIC CE; no independent auditor identified |
| Declared violations at the start | 613 | Author’s count against the declared target; no independent measurement source |
| Steps to reach the final state | 11 | Author’s account; no independent measurement source |
| Elapsed time | Roughly 6.5 hours | Author’s account; no independent measurement source |
| Final architecture baseline | Empty | Author states the target had not been widened to achieve this |
The post is a short summary of roughly six minutes’ reading, and it is the only part of the write-up this article can describe with confidence. It carries a September 22 date; the listing does not show a year.
Outdated Drivers Are Slowing You Down
One free scan finds every outdated or missing driver and matches the right update for your exact hardware.Free scan · exact hardware matchPC Slower Than It Used to Be?
A free scan shows the junk files, broken settings and background clutter dragging Windows down - then fixes them in one click.Free scan · Windows 10 & 11What the empty baseline measured
ArchKeel checks code against a declared architecture. In this experiment, Kell says that target was written before any coding agent touched the code: “The target architecture was written before coding agents touched the code.” That detail matters more than the zero. An empty baseline means the code satisfied the boundaries that were written down. It says nothing about boundaries nobody wrote.
#1 Best Overall
Kell’s verdict on the dependency contract is narrow and fair: “The dependency contract worked as specified.” The contract did what it was configured to do. The gap was in what it had been asked to cover, not in whether it executed.
Two failures the baseline did not catch
Kell reports that review, which ran separately from the architecture check, found two failures that would block a merge. He summarises them in the post as: “Review still found two merge-blocking failures: A public Python API regression. And a shell gate that could stay green after a failing test command.”
Rank #2
A public Python API regression
A public API regression is a change in behaviour or shape that callers outside the package can see. An architecture check that verifies import direction and module boundaries can pass cleanly while such a change slips through, because the boundaries are intact and the public surface has still moved. The account does not name the affected API or describe how it changed, so nothing more specific should be assumed about the failure.
Free tools Windows power users keep installed
One-click scans. No signup required.
A shell gate that stayed green after a failing test command
This failure is the more uncomfortable of the two. A gate exists to stop a merge when something is wrong. If it reports success after the test command has failed, the team gets a false pass, and the check meant to protect the branch quietly stops doing so. Kell’s summary does not explain the exact shell bug, so the mechanism here is unknown. What is established is the outcome: the gate could remain green when the test command failed.
Rank #3
Where the re-export facades came from
Earlier in the post, Kell criticised the agents for creating large re-export facades, which are modules that gather and re-expose names from elsewhere in the package. He then corrects himself. The implementation brief had explicitly asked for those facades, so the criticism belonged to the brief. In his words: “The weak target was mine.”
The lesson is about where responsibility sits. An architecture check enforces the target it is given. If the target is loose, or if it asks for structures that a reviewer would not otherwise accept, the check will report success against that loose target and say nothing about whether the result is good code.
Rank #4
Two questions to ask of any agent-assisted refactor
Kell’s post suggests two dimensions for judging a run like this. They are editorial axes drawn from the reported outcomes, not measured comparisons, and the post does not compare tools or configurations.
Recommended Free Tools
| Question | What Kell’s account shows | What it cannot show |
|---|---|---|
| Is the declared architecture satisfied? | The declared violations fell from 613 to an empty baseline, with the target not widened | Whether the target covered component APIs, package layout, or internal complexity |
| Do the merge gates run and fail when they should? | A gate stayed green after a failing test command, and an API regression reached review | Whether the other gates in the pipeline behaved correctly |
What an empty baseline does not tell you
Kell says the dependency contract was not broad enough. An empty architecture baseline is silent on the following points, and a team should check them separately before merging an agent-assisted refactor:
- Whether public APIs keep their behaviour and signatures for external callers.
- Whether the package layout matches what the team intended, rather than only what the contract declared.
- Whether internal complexity went down, stayed flat, or rose while the boundaries stayed clean.
- Whether every gate in the pipeline returns a failing status when its underlying command fails.
- Whether any re-export facades are needed at all, or were requested by a brief that should have asked for something narrower.
What remains unverified
The full article body was not available to check. The detailed procedure, the state of the repository, the software versions, the agent configuration, and any remediation Kell plans are not established here, and nothing in this article should be read as a reproduction of the run. The 121-file size, the 613 starting count, the 11 steps, and the 6.5 hours all rest on the author’s own reporting.
The narrow result is still useful. An architecture baseline can be fully satisfied against a target written in advance and still leave a public API broken and a test gate that lies. Treat an empty baseline as evidence about the boundaries you declared, and keep the merge decision tied to review and to gates you have confirmed actually fail.
ArchKeel, the architecture-boundary tool used in the experiment, is the subject of Kell’s report; this article does not evaluate it against other tools.
Quick wins for a faster PC:
Fix the driver behind crashes, sound loss and screen glitchesFind Drivers →Repair Windows errors before they cause bigger problemsFix Now →Quick Recap
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.




