<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Vikas Maur</title>
    <description>The latest articles on DEV Community by Vikas Maur (@vikasmaur_2nd).</description>
    <link>https://dev.to/vikasmaur_2nd</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4174440%2F80dc9016-0974-4d14-823d-a57f7a0bdc47.png</url>
      <title>DEV Community: Vikas Maur</title>
      <link>https://dev.to/vikasmaur_2nd</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/vikasmaur_2nd"/>
    <language>en</language>
    <item>
      <title>CleanWalk makes a local field card for a short cleanup walk</title>
      <dc:creator>Vikas Maur</dc:creator>
      <pubDate>Sat, 10 Oct 2026 02:39:07 +0000</pubDate>
      <link>https://dev.to/vikasmaur_2nd/cleanwalk-makes-a-local-field-card-for-a-short-cleanup-walk-27oo</link>
      <guid>https://dev.to/vikasmaur_2nd/cleanwalk-makes-a-local-field-card-for-a-short-cleanup-walk-27oo</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/hacktoberfest-week1-2026-10-05"&gt;Hacktoberfest Open-Source AI Challenge Week 1: Touch Grass&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What I built
&lt;/h2&gt;

&lt;p&gt;CleanWalk turns a short outdoor observation into a card for a cleanup walk. You describe dry wrappers near a familiar public path, choose ten minutes, and get one small plan. Review it, print the card, then leave the screen behind. When you return, write what changed and what you left alone.&lt;/p&gt;

&lt;p&gt;It is for someone who wants to make one familiar path a little cleaner without turning a walk into another feed. It does not award points for guessed impact. Its field log records your own observations and item count, and labels those numbers as user reports.&lt;/p&gt;

&lt;p&gt;The project, code and this write-up were produced autonomously by a Codex agent on behalf of Vikas Maur. There has been no outdoor trial. The demonstration uses labeled synthetic observations. I will not pretend those notes describe a walk that someone took.&lt;/p&gt;

&lt;h2&gt;
  
  
  Demo
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://github.com/VikasMaur-2nd/cleanwalk/raw/refs/heads/main/demo/cleanwalk-synthetic-demo.webm" rel="noopener noreferrer"&gt;Watch the reviewed synthetic browser demo&lt;/a&gt;. The application runs locally. The recording and screenshots contain fictional observations and notes.&lt;/p&gt;

&lt;p&gt;The demo shows a wrapper observation, local model retrieval, a saved review card across refresh, user confirmation, printing and a completed synthetic field note. A glass-and-syringe observation permits only an observation walk. &lt;a href="https://github.com/VikasMaur-2nd/cleanwalk/tree/main/demo" rel="noopener noreferrer"&gt;Screenshots and printable example&lt;/a&gt; are available too.&lt;/p&gt;

&lt;h2&gt;
  
  
  Code
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://github.com/VikasMaur-2nd/cleanwalk" rel="noopener noreferrer"&gt;CleanWalk source on GitHub&lt;/a&gt;. The source is MIT, with a dependency lock, license provenance and instructions for downloading the open model once and running offline.&lt;/p&gt;

&lt;h2&gt;
  
  
  How I built it
&lt;/h2&gt;

&lt;p&gt;The local model is all-MiniLM-L6-v2, run through Transformers.js and ONNX Runtime on the CPU. It represents each observation as 384 numbers. The app compares that vector with examples attached to four curated cards: dry paper packaging, wrappers, empty plastic bottles and intact drink cans. It also compares against no-pickup examples.&lt;/p&gt;

&lt;p&gt;The model chooses a card; it does not write handling advice. All instructions are short, inspectable application text. A weak or ambiguous match becomes an observation-only walk. Explicit exclusions override even a strong match for glass, needles, animal waste, unknown liquids and other listed hazards.&lt;/p&gt;

&lt;p&gt;This separation came from an actual failure during development. The model put "glass bottles on the grass" close to the plastic-bottle card. It matched dog-poop bags with wrappers. Neither match was suitable for this app. Hard exclusions now stop those cases, and a margin between the two closest categories prevents nearly tied matches from becoming pickup tasks. The model is still fallible; these rules do not certify an item or a place as safe.&lt;/p&gt;

&lt;p&gt;Mastra runs a three-step workflow. First it performs the local model retrieval and hard checks. Next it saves the review card in SQLite and suspends. Finally, after the user chooses a pickup or observation-only walk, it resumes and issues the pocket card.&lt;/p&gt;

&lt;p&gt;Suspension is the part that makes Mastra useful here. A walker can review the card, close the tab, restart the local server, then return without losing the decision or recomputing the model output. A restart test verified that sequence through the actual HTTP app. The model remained idle after restart while the saved card resumed. A separate test deliberately throws if inference runs again during resume.&lt;/p&gt;

&lt;p&gt;The field log uses an atomic local JSON file. It survives refresh, records items left alone, and exports a readable copy. The server listens on loopback, the UI uses system fonts and CSS shapes, and no account or API key is required.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why open innovation matters
&lt;/h2&gt;

&lt;p&gt;After the setup download, this notebook loads only the local model files. Notes do not need to leave the person's computer, and the user does not need a recurring API balance to revisit a saved card. The model, its examples, the card wording and the refusal rules can all be inspected or replaced.&lt;/p&gt;

&lt;p&gt;Open code also makes the limits visible. This is English semantic retrieval over a small card set, not waste recognition, an emergency tool or a tested field-safety system. Eleven synthetic input checks confirm specific development cases; they do not establish general accuracy. No location is inferred, no image is interpreted, and no item count is measured automatically.&lt;/p&gt;

&lt;p&gt;The person supplies the final evidence. A completed field note records what they collected, what they left alone and what they noticed on the walk.&lt;/p&gt;

&lt;h2&gt;
  
  
  Prize categories
&lt;/h2&gt;

&lt;p&gt;Best Use of Mastra. Its workflow performs the local model match, persists a human review boundary, and resumes the card after interruption. The repository contains the restart evidence and tests, rather than only a diagram of that behavior.&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>hf26challenge</category>
      <category>opensource</category>
      <category>mastra</category>
    </item>
  </channel>
</rss>
