$ cat how.txt
I decide what gets built. The agent writes most of the code.
A spec-driven loop keeps us both honest: discuss → plan → execute → verify → ship.
Nothing ships until it ran on my own installs first.
Vibe Coding vs. Agentic Coding
The homepage says vibe coder. That's where I started, and the name stuck. Here's the honest fine print — because the two get thrown together a lot, and they're not the same thing.
vibe coding
You describe what you want, the AI spits out code, you paste the error back in. Repeat until it sort of works.
- prompt → hope → copy error → repeat
- nobody really knows what's in the codebase
- no plan, no tests, no memory between sessions
- great for a weekend toy, bad for anything someone depends on
agentic coding ← this is me
The AI works as an agent inside the project: it reads the codebase, runs commands and tests, writes commits. I'm not the typist anymore — I set direction, make decisions and check the work.
- agent works directly in repo & terminal
- decisions and plans written down before any code
- every step verified — by tests and by me
- the human owns the what and the why
The Loop
My setup: Claude Code as the agent, and GSD on top — originally “Get Shit Done”, today GSD Core. GSD forces structure: every phase of a project goes through the same loop, decisions and plans live as files in the repo, and the heavy lifting runs in fresh sub-agents so the AI doesn't slowly get dumber as its memory fills up.
-
00
Ideame
Every project starts with a real problem — mine, or someone's I know. No AI involved. A truck cab, 6am, coffee, and a “wouldn't it be nice if…”.
-
01
Discuss
/gsd-discuss-phaseme + agentBefore a single line of code: what exactly are we building, what's out of scope, which decisions are mine to make. The agent asks the annoying questions, I answer them. Result: a written context file the whole phase builds on.
-
02
Plan
/gsd-plan-phaseagentme: approveThe agent researches and breaks the phase into small plans, each one sized to fit a fresh context. I read them and push back where they're wrong. No plan, no code.
-
03
Execute
/gsd-execute-phaseagentNow the agent codes — in parallel waves, clean context per plan, one atomic git commit per task. This is the part people picture when they hear “AI coding”. It's maybe a third of the actual work.
-
04
Verify
/gsd-verify-workmeI walk through what was built, click through it, try to break it. Whatever fails becomes a fix plan. Nothing is “done” just because the agent says so.
-
05
Ship
/gsd-shipme + agentPull request, review, merge, release through Jenni. Then it runs on my own installs first — for weeks, not days. Then the next phase. Ships when done.
What It Looks Like
A condensed replay of how one feature comes together — the weather log in Schneespur. Real workflow, shortened and simplified output. green is me, grey is the agent.
> /gsd-discuss-phase 7
● Phase 7 — weather at the time of service
? Providers disagree. Which one is authoritative?
michael › BrightSky in Germany, Open-Meteo as fallback. Store the raw values too.
? One snapshot per run, or one per stop?
michael › Per stop. That's exactly what gets disputed later.
✓ CONTEXT.md written — 6 decisions locked, 2 deferred
> /gsd-plan-phase 7
● researching providers · reading codebase …
✓ 3 plans · each fits a fresh context · plan check passed
michael › Plan 2 caches forever. Weather goes stale — cap it at 10 minutes.
✓ plan 07-02 revised
> /gsd-execute-phase 7
● wave 1 · 07-01 provider interface + BrightSky / Open-Meteo clients
● wave 1 · 07-02 per-stop snapshot job + cache
● wave 2 · 07-03 weather block in the PDF proof-of-service
✓ 11 atomic commits · all tests passing
> /gsd-verify-work 7
michael › PDF says 3.0 °C, the app says 2.9. Rounding?
● diagnosing … PDF rounds, app truncates → fix plan 07-04
✓ fixed · re-verified by michael
> /gsd-ship 7
✓ PR opened. Next stop: my own installs. Ships when done.
Who Does What
me
- the idea, and the why behind it
- every decision about scope and behaviour
- reading plans — and saying no
- testing on real installs, in real conditions
- deciding what ships, and when
the agent
- knowing the whole codebase at once
- research and first drafts of every plan
- writing most of the code and the tests
- commits, refactors, the boring bits
- catching things I'd have missed
Where it goes wrong
The AI is sometimes confidently wrong. It overbuilds. It forgets what we decided yesterday. That's not a reason to avoid it — it's the reason for the loop: decisions on disk, fresh context for every task, a human who verifies, and a long testing phase on my own installs.
I'm not a trained programmer. So I don't trust code because it looks right. I trust it because it ran.
- Two serious findings in my own app. I had a second AI agent attack Schneespur — seven findings, two of them bad. All fixed, all published. The pentest story →
- A month of wasted API calls. A broken n8n workflow quietly re-asked OpenAI every few minutes; the dashboard showed it, I didn't look. Monitoring has been non-negotiable since. My biggest fail →
Got an Idea?
Here's the thing: you don't have to learn any of this. If you've got an idea for a tool — something that bugs you at work, in your trade, your club, your town — and you don't feel like wrestling with an AI yourself: let's talk.
This isn't a services page. There's no package and no hourly rate here. I do this because it's fun, and a good idea is the best fuel there is.
$ my favourite version
We build it as open source. Your problem gets solved — and everybody else with the same problem gets the solution too.
That's exactly how Schneespur happened: one colleague's problem, today anyone can install it for free.
What happens after you write
- You describe the problem. Three sentences, no spec needed. I reply within a few days — evenings, remember.
- I tell you honestly what I think. Can this be built with AI, roughly how big is it, and can it be open source? If the answer is "not with me", I'll say so and point you somewhere better.
- We build something you can touch. A prototype, running on a real URL, usually within a few weeks. Then we decide together whether to go on.
Other ways this can go
- You want a sanity check: can this be built with AI — and roughly how?
- You're a company and want to see what agentic coding could look like for your team.
- It's something that can't be open. Fine — tell me anyway, no promises either way.
Good fit / not a fit
- internal tools that replace an Excel-and-email process
- self-hosted web apps (Laravel, PHP), WordPress plugins
- automation & workflows
- prototypes to find out if an idea holds up
- “the next Uber, by Friday”
- anything that needs 24/7 on-call — I'm on the Autobahn
- closed-source SaaS whose whole point is locking people in
$ mail michael
Three sentences are enough:
1. What's the problem? 2. Who has it? 3. What exists already?
// replies come evenings & weekends — daytime I'm moving 40 tonnes.