This is a submission for the Hacktoberfest Open-Source AI Challenge Week 3: Slow and Steady.
What I Built
An action list can change a promise by losing one word: if.
If the review passes, Mina will archive the old checklist.
This synthetic note appears in the Loose Ends demo. “Archive the old checklist”
is the action. The review condition belongs beside it, where the person
reviewing the list can still see it.
Loose Ends is a small local web app that turns scattered notes into editable
action drafts. An open-weight model proposes the tasks; each card carries its
original source. The repetitive work is finding and copying follow-ups from
notes. The person reviewing them decides what belongs on the final list.
Paste notes, generate drafts, and inspect the quotations. Edit an action, remove
it, mark it done, then export Markdown. Human edits keep their original evidence
and are labelled. Nothing is sent, scheduled or carried out automatically.
For ordinary notes, keep each action and its conditions on one line. Timestamped
transcripts are also supported, with the speaker, original turn and nearby
conversation attached. Longer meetings remain a known weakness, described below.
Demo
Watch the narrated local-model walkthrough
The 1-minute-58-second tutorial, recorded on October 22, 2026, shows
actual local Qwen inference on synthetic handoff notes: three drafts, the complete
review condition, a human edit, completion and an actual Markdown download. One
additional model proposal was rejected by the source checks. API responses were
not mocked. This demonstrates local processing, not the optional Groq mode.
The edited video adds locally generated Bella narration, optional captions, restrained motion,
readable close-ups and labelled reading holds. The full inference wait plays at
its original speed; the edited timeline is not a performance benchmark. The page
keeps captions off by default, with a Show captions button. It also includes ten
chapters, a full text transcript, the exported list and a separate
mobile screenshot. The app's state animations respect reduced-motion preferences.
The original continuous silent recording
remains available. Production notes and evidence
document the new capture, editing and verification.
Code
Read the source and setup instructions
The application code is MIT licensed. Model weights are downloaded separately
and retain their own licenses. The repository documents the runtime, synthetic
evaluation cases and observed limitations.
How I Built It
A plain HTML/CSS/JavaScript interface talks to a small Python server. The tested
local runtime is Qwen3-4B-Instruct-2507,
using a pinned four-bit MLX conversion
through MLX-LM on an Apple silicon Mac.
The model's proposal passes through source checks before becoming a card.
For notes, the quotation must match a complete original line, and the proposed
action and attribution must be supported by its text. Detected conditions keep
the full line. Unknown owners and dates stay unknown; relative dates stay
relative. These checks make the output easier to inspect, but matching words
cannot establish that the model understood a promise correctly.
Recorded real-model runs passed five small synthetic note cases locally and
five through Groq. A short hosted meeting produced all four expected actions.
The harder test told a different story: the latest recorded hosted run on a
120-turn synthetic meeting found nine of ten outstanding actions. It missed
a promise to verify an account after access was restored. The acceptance check
failed, and the local model also failed the long-meeting check. These are dated,
limited observations, rather than a general accuracy score or a completed
transcript fix. The release evidence and limits
link to the saved results.
That omission matters as much as an invented task. A clean-looking list can
still leave work behind. Every draft needs review against the original notes.
Why Does Open Innovation Matter?
The open model performs the central task: identifying potential actions in
ordinary language. Downloadable weights make local inference possible after
setup, without a hosted inference account. The Qwen model and its MLX conversion
identify their license as Apache-2.0. The prompt, source checks and export code
can also be inspected and changed.
Local setup requires a model download, disk space and suitable hardware.
Optional Groq-hosted GPT-OSS 120B avoids that local model setup, but requires
explicit selection and an API key, sends the complete submitted source to Groq,
and may consume paid credit. Fresh pages default to local processing, with no
automatic switch to hosted inference. The separate local model service and
hosted provider have their own data-handling behavior.
The intended “Slow and Steady” payoff is a smaller chore: review a draft beside
its evidence, then take an editable Markdown list away. No measured time saving
or personal-use success story is claimed.
AI Disclosure
AI agents implemented and tested the project and wrote this article. The article
is marked fully_autonomous. The demonstration and evaluation inputs described
here are synthetic.
Synthetic narration was generated locally with
Kokoro-82M, voice af_bella, through
kokoro-onnx. No paid voice credits
were used. Each scene uses one connected paragraph at normal speed, with no
burned-in dialogue captions. Kokoro model weights are Apache-2.0; kokoro-onnx code is MIT licensed.

Top comments (0)