Designer with no portfolio after seven years in meeting rooms.
"Digital designer" puts me in a pile of 500 Figma specialists I'm not. The job posts never asked about what I actually built.
$ ship › spec.md (me) › llm executes › evals + diff › merge → main
"Outsource thinking, not understanding."Andrej Karpathy, the one phrase that survived the sprint untouched. The rest of the positioning moved. This one held.
"Digital designer" puts me in a pile of 500 Figma specialists I'm not. The job posts never asked about what I actually built.
AGPL-3.0 where it fits. Specs, rules, eval sets, I hold the direction. Agents do the pixel work.
Distribution as a side effect, not a goal. But methodology doesn't pay. Implementations do, and the implementations route to LLM computer-use the moment it becomes default.
but: 7 years at AMF, pensions, regulated finance, infographics, email. but: I could have stayed. Safe paycheck, no upside. therefore: I left. No portfolio to lean on. but: a designer without a portfolio is a hard sell. therefore: built a zero-human company. Swedish AB. but: the LLM guessed wrong. Bookkeeping is commodity. wrong tax costs 50–200 kSEK/year, that's where the moat was. therefore: pivoted to Kammaren, the 3:12 engine. 978 000 test cases vs. Skatteverket, 0 SEK deviation. but: solo isn't enough. A Kammaren needs builders around it. therefore: OpenSverige. 150+ Swedish AI builders. Discord + IRL. The agent scanner grew out of that room. now: frilanspengen.se, launch June 2026.
A KPI strip of round numbers used as proof.
"4 products live · 150+ community · 0 SEK deviation" was the first draft. The exact portfolio trope my own thesis would reject. Fixed: scroll up to --insights, two observations, no countable numbers.
Counted this page as product #5 in the build list.
A meta-case isn't a product, counting itself inflates the count from inside the same page that's claiming it. Fixed: count --builds above. Four names, not five.
"I am become an API", first as a hero, then as an aria-hidden signature.
LLMs took the API promise literally and delivered. So the hero line had to go. Then it slept in the footer with aria-hidden="true". A cope-position is still a position. Fixed: the footer is clean. Search for the line, it isn't there.
The future is APIs, CLIs, MCPs. Interfaces get thinner. I design pipelines, functions and UX flows, not pixels.
spec.md, the evals set and the guard-rails. Agents (Claude, Cursor, Codex) implement inside the constraints. When they drift, the test agent catches it, like the municipal tax bug in Kammaren: 4 municipalities agreed, 286 were wrong, the test caught it before release.