A Swedish publishing business run by one operator and a set of AI agents. Every agent reads the same doctrine file. Each material decision gets a numbered entry in a decision log. Work is partitioned into parallel lanes by file ownership so agents do not collide. Agents plan first and halt before they write. Nothing is promoted without verification, and design sign-off happens only on a clean production build.
TODO(Hannes): two sentences on the reformatting incident that created the no-formatter rule.
oddslogik.se, a Swedish comparison publication for the licensed gambling market.
84 pages shipped between 3 June and 22 September 2026
365 decision-log entries
Up to four parallel agent sessions, partitioned by file ownership
This site is run the same way. Five entries from its decision log:
DL-001 (2026-09-21) Stack: plain HTML, CSS and one JS file, with the migration trigger "when notes exceed five".
DL-007 (2026-09-21) Contrast ruling: the spec value for light ink-3 rejected at 3.36:1, #66707A at 4.57:1 instead.
DL-012 (2026-09-22) Centered column: eight of ten reference sites center the column and left-align the text. Reverses ruling 3.
DL-013 (2026-09-22) No count-up: the animation read as a stat banner in the audit. Values render immediately.
DL-015 (2026-09-22) The record is the record: the heatmap runs from the first logged day and shows the September gap.
An adversarial audit of an agent-built CRM
A prospecting CRM built with agents for a services company, then audited in four sessions by a separate model instance acting as red team. About forty defects were found. Roughly a dozen of them were errors in the building agent's own rulings that had been accepted as correct, which is the class of error that is invisible in its own output. The audit summary covers the method, the defect taxonomy and what changed afterward. No client details.
Four audit passes by a separate model instance. Defects are sorted into a taxonomy before anything is fixed.
Sessions
4
Defects found
about 40
Errors in the builder's own rulings
about 12
Rows in the database
4 230
Taxonomy, bucket one
the builder's own rulings, accepted as correct
Taxonomy, bucket two
everything else
TODO(Hannes): URL of the sanitized audit summary PDF.
TimeBox Stats
The heatmap above is TimeBox Stats: watch, phone bridge, Supabase, this page.
Decisions close with three lines: decision, rationale, next action.
Every material choice gets a numbered log entry before the work starts.
Plan first, halt, then write; layout changes are shown before they ship.
Nothing is promoted without verification: a green build is not a deploy.
Parallel work is partitioned by ownership so nothing collides.
Redo it, do it right is a normal sentence, in both directions.
Notes
Short pieces, one every week or two.
TODO(Hannes): first note title and text.
Now
What this quarter actually contains.
This term: second-year courses in Engineering Mathematics at KTH. oddslogik.se is live and in its first months of organic traffic. I am looking for 20 hours a week inside a small AI-native team, starting with a scoped build. Six training sessions a week, thirteen years and counting.
Updated September 2026
The offer
I want 20 focused hours a week inside a small AI-native team. The way I propose to start: one 8-12 week scoped build of an internal system you already know you need, at a day rate, with an option to continue at 50 percent if it works.
Sales 2014-2017. First company at 21. A quantitative promotions operation across Sweden and Norway. International business development at a digital loan broker 2021-2023. KTH Engineering Mathematics since 2025. Stockholm.