<?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: Sandesh gadal</title>
    <description>The latest articles on DEV Community by Sandesh gadal (@gadalsandesh123).</description>
    <link>https://dev.to/gadalsandesh123</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%2F4150832%2F2b2c53dd-4f79-4bef-bdde-d6637e0adab7.png</url>
      <title>DEV Community: Sandesh gadal</title>
      <link>https://dev.to/gadalsandesh123</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/gadalsandesh123"/>
    <language>en</language>
    <item>
      <title>alchi: I let a 1B model write my standups, and taught it not to lie</title>
      <dc:creator>Sandesh gadal</dc:creator>
      <pubDate>Mon, 26 Oct 2026 00:44:13 +0000</pubDate>
      <link>https://dev.to/gadalsandesh123/alchi-i-let-a-1b-model-write-my-standups-and-taught-it-not-to-lie-35fm</link>
      <guid>https://dev.to/gadalsandesh123/alchi-i-let-a-1b-model-write-my-standups-and-taught-it-not-to-lie-35fm</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/hacktoberfest-week3-2026-10-19"&gt;Hacktoberfest Open-Source AI Challenge Week 3: Slow and Steady&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

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

&lt;p&gt;&lt;strong&gt;alchi&lt;/strong&gt; (अल्छी) means "lazy" in Nepali. It writes my standup and my weekly timesheet so I don't have to.&lt;/p&gt;

&lt;p&gt;I work on a lot of small projects at once: my portfolio, a video bot, a few websites. Some are git repos, some are just folders I keep editing. When someone asks "what did you do this week?", I honestly have to go and look.&lt;/p&gt;

&lt;p&gt;So now I type one command:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;$ alchi

**Standup, Mon 26 Oct** (since Fri 23 Oct)

**Done**
- **N-portfolio**: SEO and performance pass completed; Prerender the page at build time
- **backend-shorts**: Post twice a day to Instagram Reels via Cloudflare R2
- **ccsithub**: Explored the shop's content and layout

**Next**
- **backend-shorts**: Test the video format

**Blockers**
- None
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;Or &lt;code&gt;alchi week&lt;/code&gt; for a timesheet:&lt;br&gt;
&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;| Project          | Hours (est.) | What got done                                            |
| ---------------- | ------------ | -------------------------------------------------------- |
| backend-shorts   | 3h           | Added a bot to post videos daily; Scheduled Instagram Reels |
| N-portfolio      | 2h           | SEO and performance pass; Prerender the page at build time |
| Dashain-Daskhina | 0.25h        | Finished the page content; Added the bill HTML            |
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;&lt;code&gt;Dashain-Daskhina&lt;/code&gt; and &lt;code&gt;ccsithub&lt;/code&gt; aren't git repos, but alchi still picks them up.&lt;/p&gt;
&lt;h2&gt;
  
  
  Code
&lt;/h2&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://assets.dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/Sandesh-Gadal" rel="noopener noreferrer"&gt;
        Sandesh-Gadal
      &lt;/a&gt; / &lt;a href="https://github.com/Sandesh-Gadal/alchi" rel="noopener noreferrer"&gt;
        alchi
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      Writes your standup and timesheet from git commits and file edits, on a local Gemma 3 1B. Nothing leaves your machine.
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;alchi 🦥&lt;/h1&gt;
&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;alchi&lt;/strong&gt; (अल्छी, Nepali for "lazy") writes your daily standup and weekly timesheet for you.&lt;/p&gt;

&lt;p&gt;It reads what you actually did, meaning git commits and recently edited files across all your project folders. A small open-weight model running on your own laptop (&lt;a href="https://ollama.com/library/gemma3" rel="nofollow noopener noreferrer"&gt;Gemma 3 1B&lt;/a&gt; via &lt;a href="https://ollama.com" rel="nofollow noopener noreferrer"&gt;Ollama&lt;/a&gt;) summarizes each project, and you get notes you can paste straight into Slack, Teams or Discord.&lt;/p&gt;

&lt;div class="snippet-clipboard-content notranslate position-relative overflow-auto"&gt;&lt;pre class="notranslate"&gt;&lt;code&gt;$ alchi -r ~/Development/Personal
**Standup, Mon 26 Oct** (since Fri 23 Oct)

**Done**
- **N-portfolio**: SEO and performance pass completed; Prerender the page at build time
- **backend-shorts**: Post twice a day to Instagram Reels via Cloudflare R2
- **ccsithub**: Worked on Explore, Shop, Visit the store

**Next**
- **alchi**: Test the time saved counter

**Blockers**
- None

alchi has saved you about 0h 10m over 1 run. Go lie down.
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Private.&lt;/strong&gt; Your commit history, file names and code never leave your machine. The…&lt;/li&gt;
&lt;/ul&gt;&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/Sandesh-Gadal/alchi" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;



&lt;p&gt;It's one Python file with no dependencies. You only need &lt;a href="https://ollama.com" rel="noopener noreferrer"&gt;Ollama&lt;/a&gt; and &lt;code&gt;ollama pull gemma3:1b&lt;/code&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  How It Works
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Collect.&lt;/strong&gt; For every project folder, alchi grabs my commits from the time window (only mine, matched by git email) and the files I saved. For folders without git, it reads the edited files and pulls out page titles, headings and function names.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Summarize.&lt;/strong&gt; Each project is sent separately to &lt;strong&gt;Gemma 3 1B&lt;/strong&gt; running locally through Ollama. The model replies in a fixed JSON shape: what got done, and what's next.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Check.&lt;/strong&gt; Every line the model writes is compared with the real activity. If most of its key words aren't there, the line is thrown away.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Count hours.&lt;/strong&gt; Commits and saves less than 45 minutes apart are counted as one work session. That's plain Python, no AI.&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Small models make things up
&lt;/h3&gt;

&lt;p&gt;This was the main problem. On my first run, Gemma said I "added a small image of a tree to the footer". There is no tree.&lt;/p&gt;

&lt;p&gt;A 1B model is fast and light, but when it doesn't have enough facts, it fills the gap. I fixed that in three ways:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Give it real facts.&lt;/strong&gt; Headings and function names from the files, not just &lt;code&gt;index.html&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Show one example.&lt;/strong&gt; One sample project with a perfect answer worked better than a long list of rules.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Check the output.&lt;/strong&gt; This small function decides whether a line stays:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;grounded&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;item&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;source&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="n"&gt;words&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;w&lt;/span&gt; &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;w&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;re&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;findall&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;r&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;[a-z]{5,}&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;item&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;lower&lt;/span&gt;&lt;span class="p"&gt;())&lt;/span&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;w&lt;/span&gt; &lt;span class="ow"&gt;not&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;STOPWORDS&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="ow"&gt;not&lt;/span&gt; &lt;span class="n"&gt;words&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="bp"&gt;True&lt;/span&gt;
    &lt;span class="n"&gt;hits&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;sum&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt; &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;w&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;words&lt;/span&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;w&lt;/span&gt;&lt;span class="p"&gt;[:&lt;/span&gt;&lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;source&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;lower&lt;/span&gt;&lt;span class="p"&gt;())&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;hits&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="nf"&gt;len&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;words&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;=&lt;/span&gt; &lt;span class="mf"&gt;0.6&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;alchi also prints what it threw away, so I can see it working:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;dropped, not in your activity: "Review the computer's inventory"
dropped, not in your activity: "Develop the shop's homepage"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Neither of those happened. It's not perfect, but it stopped the made-up lines from reaching my standup.&lt;/p&gt;

&lt;h3&gt;
  
  
  It doesn't slow down my Mac
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Gemma 3 1B uses about &lt;strong&gt;870 MB&lt;/strong&gt; of RAM and unloads itself one minute after the run.&lt;/li&gt;
&lt;li&gt;A full week across 5 projects took &lt;strong&gt;under 5 seconds&lt;/strong&gt; on my M5 MacBook.&lt;/li&gt;
&lt;li&gt;If Ollama isn't running, alchi still works and uses the plain commit messages.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Why Does Open Innovation Matter?
&lt;/h2&gt;

&lt;p&gt;A standup tool reads everything I work on, including client projects that aren't public yet. I don't want to send that to a cloud API every morning.&lt;/p&gt;

&lt;p&gt;With an open model, everything stays on my laptop. The only network call goes to &lt;code&gt;localhost&lt;/code&gt;. No API key, no cost, and it still works when the internet goes down, which happens here in Nepal more often than I'd like.&lt;/p&gt;

&lt;p&gt;Open weights also let me use the smallest model that does the job and fix its weak spots myself. If you want a bigger model, set &lt;code&gt;ALCHI_MODEL=llama3.2:3b&lt;/code&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Lazy Payoff
&lt;/h2&gt;

&lt;p&gt;Writing a standup used to take me around 10 minutes. alchi does it in about 2 seconds. That's roughly &lt;strong&gt;40 hours a year&lt;/strong&gt; I get back, and &lt;code&gt;alchi saved&lt;/code&gt; keeps count so I don't even have to do that maths.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;This post and the code were written with an AI coding agent, which I directed and reviewed. The model alchi runs on is Google's Gemma 3 1B, served by Ollama.&lt;/em&gt;&lt;/p&gt;

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