A generic task board exists a thousand times on GitHub. A board that reads your AI chats is the differentiator.
Built for Muse. A scheduled scan reads your Muse threads, catches everything you left midway, and puts it on one prioritized board that nudges you until it's actually shipped.
I have ADHD. My ideas come in bursts and my threads pile up — a job application half-drafted here, a plan with no next step there, a promise I made three chats ago that quietly died. I kept losing things not because I didn't care, but because they shared a scroll with everything else.
So I built the thing I needed: a project manager that watches my conversations, pulls every unfinished thread into one place, and orders them by what actually matters right now. In my words, its whole job is to "catch the things I left midway."
Chat threads are where work goes to be forgotten. A todo list you have to maintain by hand is a second job — and for an ADHD brain, a second job is a fantasy. The system has to do the noticing.
Three steps, on a loop:
- Scan — on a schedule, an agent reads every thread (main chat + side chats; email and calendar are context only) and finds open loops: started-but-unfinished work, unconfirmed commitments, threads that went quiet while waiting on you.
- Board — open loops land on one prioritized board. The top item becomes the "Right now" hero. Each card shows where it came from, so you can jump straight back to context.
- Nudge — items stay on the board until you confirm they're shipped. You can snooze with a comeback date. Produced is not shipped — only your confirmation clears an item.
Every choice maps to how my brain actually fails:
- One "Right now," not a list — a list is a choice, and a choice is paralysis. One item is a starting gun.
- Focus view holds the full context — working memory is the bottleneck. If I have to reconstruct why something mattered, I've already lost it.
- Urgency is explained, and I can override it — the system suggests, I decide. A black box I'd stop trusting; a transparent one I can argue with.
- "Produced is not shipped" — checking a box feels like progress. It isn't. Only my confirmation that I acted clears an item.
- Shipped items stay visible — progress that vanishes teaches nothing. A visible log is evidence I finish things.
- Snooze needs a comeback date — "later" is where things go to die. A date turns it into a future appointment with myself.
- Sorted by urgency, not by project — attention doesn't care which project something belongs to. The board follows attention, not taxonomy.
The scan doesn't look for tasks. It looks for midway: the message drafted but never sent, three chats deep. The follow-up promised with no date attached. The thread that went quiet while it was waiting on me — not on them.
What used to happen: I'd lose the morning reconstructing what "that thing" was — re-reading three chats to recover the context. Now every card carries it: which chat it came from, what was blocking, what the next physical action is. Working memory is the bottleneck; the board holds it so my brain doesn't have to.
In daily use since September 2026. Every morning the scan reads my chats and the board re-sorts around what's actually urgent. 70+ items confirmed shipped — and confirmed is doing the heavy lifting: shipped doesn't mean checked off, it means I did something with it and said so. The shipped log is the receipt.
Dropped items stay dropped until I say otherwise. Nothing I finished vanishes; nothing I abandoned nags me. That's the whole system: notice everything, nag about nothing, and keep the proof.
Live demo (fictional sample data, no setup needed): https://lori-sca.github.io/muse-adhd-project-manager/board/index.html
Or open board/index.html locally in a browser — same sample data.
The scanner's brain is plain markdown — no code required:
prompts/scan.md— what counts as an open loop, how to output items, the dedup and "shipped" rulesprompts/prioritization.md— the urgency rubric, most-urgent-first
Paste the scan prompt into any LLM, point it at your own conversation exports, and have it emit items matching data/schema.md. Drop the resulting JSON into the board and it renders.
| Tweak | Where |
|---|---|
| What counts as an open loop | prompts/scan.md |
| What "urgent" means | prompts/prioritization.md |
| Item fields the board understands | data/schema.md |
| Board colors, labels, layout | board/index.html (search THEME) |
| How often it scans | your scheduler (cron, etc.) |
The full system is Muse-native, and that's the point of this repo:
- Scheduled background scans — the scan runs on its own every morning; nothing to remember to run.
- Cross-chat context — the scanner sees all your threads, which is where the open loops actually live.
- Artifacts as UI — the board is a living web app inside the conversation, not a screenshot.
A generic task board exists a thousand times on GitHub. A board that reads your AI chats is the differentiator.
Don't use Muse? The repo separates cleanly at two seams:
- Data in — the board renders any JSON matching
data/schema.md. Feed it from anything: another assistant's output, a script over your chat exports, a form you fill in by hand. - Scan prompt —
prompts/scan.mdruns in any LLM. Point it at any conversation export and it produces board-ready items.
You lose the automatic scheduled scans (that's the Muse-native part), but the board + the methodology travel anywhere.
Done:
- Muse-native system (private, in daily use)
- Static board + sample data + prompts (this repo)
- Live demo via GitHub Pages
Roadmap:
- One-click import of chat exports
- "Snooze until" natural-language parsing in the demo board
MIT — see LICENSE. Use it, fork it, make it yours.
Built by Lorisca, with Muse as the pair programmer.

