For something like fifteen years I tried to make Getting Things Done stick. Evernote, Everdo, OmniFocus, Things, Todoist, Notion — same pattern every time: read the book, build the inbox, schedule the weekly review, three weeks of discipline, then drift. Once the lists stop reflecting reality, you stop trusting them. Once you stop trusting them, you stop using them. The system dies, you blame yourself, and a year later you try the next app.
The method was never the problem. The maintenance was.
Inbox: 79. Focus: 97. Focus is supposed to be 3–5. This is what "I'll review it on Sunday" looks like after a year of Sundays.
Sorting the inbox. Reviewing lists. Re-tagging things by context, energy, location, project. Filling in metadata that the system needs to be useful but that you, sitting on the couch at 9pm, do not want to fill in. The barrier to capture a task in a "proper" GTD app is absurdly high. And that's before the weekly review you're already three weeks behind on.
The accidental hack that held
A few months ago I tried something stupid. I made a flat folder in Obsidian — inbox.md, focus.md, next-actions.md, waiting.md, someday-maybe.md, a daily/ directory — and a CLAUDE.md next to them with the rules: where things live, how they move, what "sync" means, when to push back. Then I pointed Claude Cowork at the folder and just talked.
That's it. No app. No plugin. No fancy schema. Markdown files plus a rulebook.
The conversation looks like this:
"What's on for tomorrow?"
"New task: send the client quote, due Friday."
"Push the dentist thing to next week."
"Sync my daily note."
"It's Friday — time for the weekly review?"
Claude moves the files, keeps the daily notes in sync, flags inconsistencies ("you have task X in Focus but it's not in today's plan — should I add it?"), and reminds me about the review. I haven't opened a task list manually in months. I just talk. The system stays alive without me feeling I have to keep it alive.
The full ruleset is published. It's the method page on getkeppt.com. Drop the CLAUDE.md into a folder, add the markdown files, point any decent agent at it. Works.
The actual product is trust, not voice
The obvious framing for this is "voice + AI + markdown." That framing is wrong, and I only saw it after a few weeks of real use.
What makes this work is not voice. Voice is a delivery mechanism. What makes this work is that the system behaves like a conservative bookkeeper, not a creative assistant. It moves files. It flags drift. It asks before it invents. If it ever silently misfiles a task or creatively interprets what I meant, the trust is gone, and a GTD system you don't trust is dead inventory. I've killed enough of those to know.
So the design rule that fell out of the experience is simple: no creative interpretation, no silent edits, no "helpful" reorganization. Show the diff. Ask when unclear. Keep the user in the loop. The boring answer is the right answer. That single principle ends up shaping the architecture more than any model choice does.
The catch, and why this is becoming an app
Cowork is a developer tool. Without a Claude Code setup and a willingness to write a CLAUDE.md, you can't reproduce any of this. That's a small audience for something that, for me at least, fixed a fifteen-year-old problem.
So I'm turning it into an app — and finding out whether the thing that fixed my own system survives outside my own setup. One chat surface. Voice or text, whichever has less friction in the moment. GTD running in the engine room — inbox triage, daily plan, weekly review, consistency checks — all maintained by the model, not by you. Tasks live as plain markdown that you can always open and read. No dashboards. No tagging UI. No second system to maintain.
The pitch and the static prototype are on getkeppt.com. The mockup on the landing page is exactly that: a mockup. The real app is being built now.
Building this in the open
I'm shipping the build publicly — repo, specs, task log, prompts, what breaks. The roadmap is split into phases that each end on a real validation checkpoint, not a calendar date.
Phase 1 (in progress): a CLI that proves the prompts and the tool loop against a real Obsidian vault. No server. No auth. No payments. Just the engine, hardened against my own files and my own usage. If that works, the rest has a foundation. If it doesn't, no UI on top is going to save it.
Phase 2: Express backend, Angular + Capacitor mobile shell, voice input, hosted storage. The actual product.
Phase 3: everything I'm deliberately not doing yet.
- Repo: github.com/lutzleonhardt/keppt-app
- Beta list: getkeppt.com
The agentic workflow behind the build is public too — the Skill Kit Adjutant — but that's a separate rabbit hole.
Next post
The next thing that breaks in a system like this is not the model. It's the prompt design for consistency. Specifically: how do you write rules that survive long conversations, parallel sessions, and the model's natural urge to be helpful when "helpful" is exactly what you don't want? That's Post #2.
If you've ever bailed on a productivity system not because capture was hard, but because maintenance slowly drifted away from reality — I'm curious what kept you going, or what finally broke it.

Top comments (0)