{"slug": "slothplan-the-to-do-list-that-does-less", "title": "SlothPlan: the to-do list that does less", "summary": "A developer built SlothPlan, a command-line to-do triage tool that sorts a messy task list into DO TODAY (capped at three items), DEFER, and DELETE buckets, each with a one-line reason. The tool runs entirely locally, using deterministic rule-based logic or an optional open-weight model with no account, API key, or network access. In the recorded run, the deterministic mode surfaced three time-sensitive obligations, while the 0.5B model incorrectly deferred an electricity bill with the reason \"no deadline, start next month.", "body_md": "*This is a submission for the [Hacktoberfest Open-Source AI Challenge Week 3: Slow and Steady](https://dev.to/challenges/hacktoberfest-week3-2026-10-19)*\n\nMy to-do list has 47 items. Yours probably does too. And here's the dirty\n\nsecret of productivity culture: the list isn't the work. *Triaging* the\n\nlist is the work — the staring, the re-ordering, the guilt-math of \"is\n\nlearning Spanish more important than calling the dentist?\" I have spent\n\nentire Sunday mornings reorganizing tasks instead of doing them, which is\n\njust procrastination wearing a planner's clothes.\n\nEvery to-do app on the planet answers this with more features: priorities,\n\ntags, Eisenhower matrices, AI scheduling assistants that need your calendar,\n\nyour email, your soul, and a $12/month subscription. They make the triage\n\n*heavier*. Nobody built the app that does the triage for you and then —\n\nthis is the important part — tells you to do less.\n\nSo for \"Slow and Steady\" I built exactly that: a tool that rewards\n\nlaziness by doing the one piece of work you were avoiding (deciding what\n\nmatters), capping your day at three things, and granting you written\n\npermission to delete the rest.\n\n**SlothPlan** — a command-line tool where you dump a messy to-do list and\n\nget back three buckets: **DO TODAY** (max 3, non-negotiable), **DEFER**\n\n(officially not today's problem), and **DELETE** (permission granted, let\n\nit go). Each item gets a one-line reason. The judgment comes from a local\n\nopen-weight model; the guarantees come from deterministic code.\n\n```\npython3 -m slothplan triage -f my-messy-todos.txt\n```\n\nThe twist, same as my Week 2 entry: the model, the inference engine, and\n\nall the code run on your own machine. No account. No API key. No\n\nsubscription. Your to-do list — which is, let's be honest, a map of your\n\nanxieties — never touches a network.\n\nI fed it a 12-item Tuesday dump. Here is what the recorded run produced\n\n(full transcript in the repo's `demo-output.txt` — nothing cherry-picked):\n\n```\n=== SLOTHPLAN triage ===\nmethod: rule-based fallback (--no-llm was passed; no model was run)\n\nDO TODAY (max 3) — your only decisions today:\n  1. Pay electricity bill, due Friday or they cut the power\n     -> looks time-sensitive — it names a deadline, payment, or an urgent event\n  2. Reply to Priya about the wedding RSVP — deadline is tomorrow\n     -> looks time-sensitive — it names a deadline, payment, or an urgent event\n  3. Submit the Hacktoberfest Week 3 entry README tonight\n     -> looks time-sensitive — it names a deadline, payment, or an urgent event\n\nDEFER — officially not today's problem:\n  4. Call dentist to reschedule the appointment\n     -> looks time-sensitive — it names a deadline, payment, or an urgent event [moved from today: the 3-item cap keeps your day lazy]\n  12. Call mom back — she called twice today\n     -> looks time-sensitive — it names a deadline, payment, or an urgent event [moved from today: the 3-item cap keeps your day lazy]\n\nDELETE — permission granted, let it go:\n  10. Delete that crypto spam email from \"DOUBLE YOUR COINS\"\n     -> matches a junk pattern — nothing of value is lost\n  11. Reorganize my Netflix watchlist\n     -> matches a junk pattern — nothing of value is lost\n```\n\nThat's the deterministic mode (`--no-llm`), and it's the mode I'd actually\n\nuse daily: three real obligations surfaced, the dentist and mom politely\n\nbounced by the cap with an explanation, and the crypto spam and the\n\nNetflix-watchlist reorganization sentenced to death. Twelve decisions I\n\ndidn't have to make.\n\nNow the confession, because the transcript has two runs and I'm not hiding\n\nthe first one: when I let the 0.5B model judge all 12 items itself, it\n\ntook \"rewards laziness\" as a personal mission. It **deferred the electricity bill with the reason \"no deadline, start next month\"** — for\n\nDeliberately boring architecture, because boring ships:\n\n`#` comments\nand bullet/checkbox markers are stripped. My sample file's header comment\ngot triaged as a task in the first build — fixed, and there's a test for\nit now.`slothplan/llm.py`): one verdict per task from\n`slothplan/triage.py`): every verdict is parsed and\nvalidated. Max 3 in \"today\" — overflow is moved to defer This tool **cannot exist** on a closed API, for two reasons — one\n\npractical, one philosophical.\n\nPractically: SlothPlan's entire design is a bet that a *small* model is\n\nenough. A 0.5B model is honest about what it is — opinionated, sometimes\n\nwrong, occasionally deleting your electricity bill — and the whole\n\narchitecture (deterministic guardrails, labeled fallbacks, a `--no-llm`\n\nmode) is built around that honesty. You can only build that way if you can\n\nrun the model locally, iterate on prompts for free at 3 a.m., and ship\n\nsomething whose marginal cost per triage is exactly zero. A closed API\n\ncharges per token, which means every design decision bends toward fewer,\n\nbigger calls — the opposite of this architecture. And a to-do list is\n\npersonal enough that \"send it to someone's cloud\" was never on the table.\n\nPhilosophically: the open-weights ecosystem is what lets a student with a\n\n$0 budget and a borrowed VM build something in a day that would have been\n\na research project five years ago. Qwen2.5's weights are public under\n\nApache 2.0. llama.cpp is MIT. My code is MIT. Anyone can audit every layer,\n\nswap in a bigger GGUF with one flag, or fork the whole thing. That\n\ncomposability — weights, engine, and app all inspectable and replaceable —\n\nis open innovation working exactly as advertised. The moat isn't the model;\n\nit's the trust that comes from everything being auditable.\n\nI'd rather tell you than have you discover them:\n\n`--model`; a bigger model would judge better.`(no reason given)`) — the model often\nemits just the bucket word despite being shown examples.`.txt` input, CLI only.\nBonus-points honesty: I have **no first user yet** — this was built for\n\nthe challenge this week, starting Monday morning. The demo above is real\n\noutput from the actual tool, and the limitations section is real too.\n\nRepo: [https://github.com/swarnnim/slothplan](https://github.com/swarnnim/slothplan)\n\n```\n./scripts/download-llamacpp.sh\n./scripts/download-model.sh\npython3 -m slothplan triage -f sample_todos/messy.txt\n```\n\nIf you also have a 47-item list you're avoiding: what's the one task on\n\nit you'd secretly love an app to delete for you? That's the roadmap —\n\na bigger delete bucket.", "url": "https://wpnews.pro/news/slothplan-the-to-do-list-that-does-less", "canonical_source": "https://dev.to/swarnnim/slothplan-the-to-do-list-that-does-less-18ep", "published_at": "2026-10-25 08:32:23+00:00", "updated_at": "2026-10-25 08:42:38.683688+00:00", "lang": "en", "topics": ["ai-tools", "large-language-models", "ai-agents", "developer-tools"], "entities": ["SlothPlan", "Hacktoberfest"], "also_reported_by": [], "alternates": {"html": "https://wpnews.pro/news/slothplan-the-to-do-list-that-does-less", "markdown": "https://wpnews.pro/news/slothplan-the-to-do-list-that-does-less.md", "text": "https://wpnews.pro/news/slothplan-the-to-do-list-that-does-less.txt", "jsonld": "https://wpnews.pro/news/slothplan-the-to-do-list-that-does-less.jsonld"}}