<?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: Aryan Raj</title>
    <description>The latest articles on DEV Community by Aryan Raj (@aryan1092raj).</description>
    <link>https://dev.to/aryan1092raj</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%2F4115827%2F4aa65af3-b55e-4428-a6e7-cc8d7cf7aa1a.png</url>
      <title>DEV Community: Aryan Raj</title>
      <link>https://dev.to/aryan1092raj</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/aryan1092raj"/>
    <language>en</language>
    <item>
      <title>Loafer: Let a Local Model Read Your Chats While You Sleep</title>
      <dc:creator>Aryan Raj</dc:creator>
      <pubDate>Sat, 24 Oct 2026 06:34:52 +0000</pubDate>
      <link>https://dev.to/aryan1092raj/loafer-let-a-local-model-read-your-chats-while-you-sleep-4gfo</link>
      <guid>https://dev.to/aryan1092raj/loafer-let-a-local-model-read-your-chats-while-you-sleep-4gfo</guid>
      <description>&lt;h2&gt;
  
  
  What I Built
&lt;/h2&gt;

&lt;p&gt;I built &lt;strong&gt;Loafer&lt;/strong&gt;, a local-first CLI that reads chat and email exports while I sleep and turns them into a short morning digest.&lt;/p&gt;

&lt;p&gt;Instead of reopening several apps and scanning hundreds of messages, I point Loafer at a folder and get:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;a two-line summary,&lt;/li&gt;
&lt;li&gt;a checklist of promises and requested actions,&lt;/li&gt;
&lt;li&gt;a per-thread breakdown,&lt;/li&gt;
&lt;li&gt;source file and line references for the checklist items,&lt;/li&gt;
&lt;li&gt;and a &lt;code&gt;nag&lt;/code&gt; command for promises that keep appearing across days.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It also has an &lt;code&gt;ask&lt;/code&gt; command for questions over the local corpus and a &lt;code&gt;grocery&lt;/code&gt; command that turns a fridge photo into a conservative shopping list.&lt;/p&gt;

&lt;p&gt;The person who gets to be lazier is the person who has to remember everything from every group chat. Loafer does the first pass. The human only checks the few lines that matter.&lt;/p&gt;

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

&lt;p&gt;Repository: &lt;a href="https://github.com/Aryan1092raj/Sloth" rel="noopener noreferrer"&gt;https://github.com/Aryan1092raj/Sloth&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The project runs from a terminal with no web account or hosted service:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;python3 &lt;span class="nt"&gt;-m&lt;/span&gt; loafer digest &lt;span class="nt"&gt;--backend&lt;/span&gt; heuristic &lt;span class="nt"&gt;--input&lt;/span&gt; examples &lt;span class="nt"&gt;--out&lt;/span&gt; ~/loafer/digests
python3 &lt;span class="nt"&gt;-m&lt;/span&gt; loafer todo
python3 &lt;span class="nt"&gt;-m&lt;/span&gt; loafer ask &lt;span class="s2"&gt;"what did we promise about the invoice?"&lt;/span&gt;
python3 &lt;span class="nt"&gt;-m&lt;/span&gt; loafer nag
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The fastest demo uses the included &lt;code&gt;examples/&lt;/code&gt; folder and the standard-library fallback, so it works even when no model server is running. For the full demo, I run the same commands with Ollama and an open-weight model.&lt;/p&gt;

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

&lt;p&gt;The complete source is in the repository:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/Aryan1092raj/Sloth" rel="noopener noreferrer"&gt;https://github.com/Aryan1092raj/Sloth&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The project is intentionally small and dependency-free. The main flow lives in:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;loafer/collect.py&lt;/code&gt; for safe local file collection,&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;loafer/digest.py&lt;/code&gt; for chunking, analysis, provenance, and Markdown rendering,&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;loafer/llm.py&lt;/code&gt; for Ollama and llama.cpp backends,&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;loafer/fallback.py&lt;/code&gt; for extractive no-model operation,&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;loafer/watch.py&lt;/code&gt; for incremental overnight processing,&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;loafer/ask.py&lt;/code&gt; for local BM25 retrieval,&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;loafer/todo.py&lt;/code&gt; and &lt;code&gt;loafer/history.py&lt;/code&gt; for the follow-up loop.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The test suite runs with Python's standard library. The current suite has 49 passing tests.&lt;/p&gt;

&lt;h2&gt;
  
  
  How I Built It
&lt;/h2&gt;

&lt;p&gt;Loafer uses open-weight models through local Ollama or an OpenAI-compatible llama.cpp server. The model is a replaceable component, not a hosted dependency.&lt;/p&gt;

&lt;p&gt;The pipeline is:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Scan a folder for text exports while skipping hidden directories, virtual environments, generated files, and the output folder.&lt;/li&gt;
&lt;li&gt;Split long conversations into overlapping chunks so the end of a thread does not disappear silently.&lt;/li&gt;
&lt;li&gt;Ask the local model for structured JSON containing a summary, actions, topics, and a rough content type.&lt;/li&gt;
&lt;li&gt;Fall back to an extractive summarizer and cue-based action detector when no model is installed or a model returns invalid JSON.&lt;/li&gt;
&lt;li&gt;Merge the results into a Markdown digest that can be read, searched, copied into another tool, or checked off.&lt;/li&gt;
&lt;li&gt;Match each extracted action back to the strongest source line when possible, producing references such as &lt;code&gt;team-chat.txt:L9&lt;/code&gt;.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The overnight &lt;code&gt;watch&lt;/code&gt; command remembers file size and modification time, uses inotify on Linux when available, and falls back to polling elsewhere. It only reprocesses new or changed files.&lt;/p&gt;

&lt;p&gt;The project also has a privacy guard: Loafer refuses to send data to a non-local host unless the user explicitly opts in with &lt;code&gt;LOAFER_ALLOW_REMOTE=1&lt;/code&gt;.&lt;/p&gt;

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

&lt;p&gt;The input is private by default: messages with friends, client emails, deadlines, and household photos. A cloud assistant would require sending that material to someone else's server and would usually require an account, an API key, or a paid quota.&lt;/p&gt;

&lt;p&gt;Loafer keeps the model on the user's machine. After the model is installed, the workflow can run offline, costs nothing per digest, and leaves the exports on disk. Users can swap models, serve their own fine-tuned weights, inspect the prompts, or use the pure-Python fallback when they do not want to run a model at all.&lt;/p&gt;

&lt;p&gt;Open innovation also makes the failure mode visible. If the model produces a bad action, the digest points back to the source file and line instead of pretending the summary is authoritative.&lt;/p&gt;

&lt;h2&gt;
  
  
  My Agent Session
&lt;/h2&gt;

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

&lt;p&gt;The main payoff is not that Loafer writes a nicer summary. It removes the need to reread every thread.&lt;/p&gt;

&lt;p&gt;In the repository's documented benchmark, 20 exports took about 11.8 seconds with &lt;code&gt;qwen3:0.6b&lt;/code&gt; on an RTX 4050. The no-model heuristic path took about 0.07 seconds. The user then opens one Markdown file and sees the small set of actions worth checking.&lt;/p&gt;

&lt;p&gt;The new line-level references make that loop faster again: when a task looks questionable, I can jump straight to the sentence that produced it instead of searching the whole export.&lt;/p&gt;

&lt;h2&gt;
  
  
  Prize Categories
&lt;/h2&gt;

&lt;p&gt;I am entering the main &lt;strong&gt;Slow and Steady&lt;/strong&gt; challenge. I am not claiming a partner category unless I add and document that partner's technology in the final demo.&lt;/p&gt;

&lt;h2&gt;
  
  
  Disclosure
&lt;/h2&gt;

&lt;p&gt;I used AI assistance while building and editing this project, then reviewed the code, tests, and claims before preparing this submission.&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>hf26challenge</category>
    </item>
    <item>
      <title>ScopeShield: Stop Working for Free — NDA-Safe Scope-Creep Auditor</title>
      <dc:creator>Aryan Raj</dc:creator>
      <pubDate>Sun, 18 Oct 2026 09:23:28 +0000</pubDate>
      <link>https://dev.to/aryan1092raj/scopeshield-stop-working-for-free-nda-safe-scope-creep-auditor-362m</link>
      <guid>https://dev.to/aryan1092raj/scopeshield-stop-working-for-free-nda-safe-scope-creep-auditor-362m</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;Target DEV title: &lt;strong&gt;ScopeShield: I Stopped Working for Free with Gemma + TabPFN (and Kept Client Data Off Closed APIs)&lt;/strong&gt;&lt;br&gt;
Tags: &lt;code&gt;devchallenge&lt;/code&gt;, &lt;code&gt;hf26challenge&lt;/code&gt;, &lt;code&gt;ai&lt;/code&gt;, &lt;code&gt;opensource&lt;/code&gt;&lt;br&gt;
Challenge: &lt;a href="https://dev.to/challenges/hacktoberfest-week2-2026-10-12"&gt;Hacktoberfest Week 2: Side Hustle&lt;/a&gt; — closes Oct 18, 2026 11:59 PM PDT&lt;/p&gt;
&lt;/blockquote&gt;

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

&lt;p&gt;&lt;strong&gt;ScopeShield — NDA-Safe Freelance &amp;amp; Boutique Agency Scope-Creep Auditor and Change-Order Engine.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Freelancers and 2-10 person agencies lose 15-28% of gross revenue to unbilled scope creep:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Signed 12-15 page SOW says "3 revision rounds, React frontend, no DevOps."&lt;/li&gt;
&lt;li&gt;Client Slacks: SSO, Hindi locale pack, K8s hotfix, "just one more revision."&lt;/li&gt;
&lt;li&gt;You do it to be nice. You never invoice it. You eat $1,800 that week.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Upload SOW PDF/Markdown + weekly CSV (Jira/Linear/GitHub/Toggl) → line-by-line ledger with IN_SCOPE / GREY_AREA / OUT_OF_SCOPE + clause citations + recoverable $ + one-click change order + polite email grounded in live market rates.&lt;/p&gt;

&lt;p&gt;Who pays? Solo freelancer Priya + micro-agency owners defending overages to client finance. $19/mo solo — viable because open weights make marginal token cost $0. One saved 4h ticket at $70/h pays 14x.&lt;/p&gt;

&lt;p&gt;Verified offline (10/10 tests green, no keys): &lt;code&gt;53.0h logged → 26.0h out-of-scope → $1,845 recoverable&lt;/code&gt; across 12 rows, 4 leaks:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;JIRA-105 SSO + audit logs 11h → Section 5.2 Exclusion — $770 (leak 0.909)&lt;/li&gt;
&lt;li&gt;JIRA-106 Hindi locale pack 6h → Section 7.1 Exclusion — $450 (leak 0.915)&lt;/li&gt;
&lt;li&gt;JIRA-107 Prod K8s hotfix 5h → Section 7.1 Exclusion — $425 (leak 0.887)&lt;/li&gt;
&lt;li&gt;JIRA-108 Hero 5th revision 4h → Section 4.2 Revision Policy — $200&lt;/li&gt;
&lt;/ul&gt;

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

&lt;p&gt;1-click judge path, no upload:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;make setup &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; make &lt;span class="nb"&gt;test&lt;/span&gt;   &lt;span class="c"&gt;# 10/10 green&lt;/span&gt;
make api  &lt;span class="c"&gt;# uvicorn :8000 → GET /api/demo/audit&lt;/span&gt;
make web  &lt;span class="c"&gt;# vite :5173 → Run Real Agency Audit&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;GET /api/demo/audit&lt;/code&gt; — full pipeline on bundled SOW (14 clauses) + CSV (12 rows)&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;GET /api/demo/ledger.csv&lt;/code&gt; — finance-ready export&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;GET /api/health&lt;/code&gt; — tiger/tabpfn/gemma/serp status&lt;/li&gt;
&lt;li&gt;UI: Upload → traffic-light ledger → editable change order + Copy Email + Download + telemetry drawer&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Links:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Repo: &lt;a href="https://github.com/Aryan1092raj/ScopeShield" rel="noopener noreferrer"&gt;https://github.com/Aryan1092raj/ScopeShield&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Local demo is the source of truth — no hosted deploy.&lt;/p&gt;

&lt;p&gt;GIF checklist: ledger with 4 red pills → expand JIRA-105 §5.2 quote → email preview → telemetry JSON.&lt;/p&gt;
&lt;h2&gt;
  
  
  Code
&lt;/h2&gt;

&lt;p&gt;Repo: &lt;a href="https://github.com/Aryan1092raj/ScopeShield" rel="noopener noreferrer"&gt;https://github.com/Aryan1092raj/ScopeShield&lt;/a&gt; (main, MIT)&lt;/p&gt;

&lt;p&gt;On DEV embed with: &lt;/p&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/Aryan1092raj" rel="noopener noreferrer"&gt;
        Aryan1092raj
      &lt;/a&gt; / &lt;a href="https://github.com/Aryan1092raj/ScopeShield" rel="noopener noreferrer"&gt;
        ScopeShield
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      
    &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;🛡️ ScopeShield — NDA-Safe Scope-Creep Auditor&lt;/h1&gt;
&lt;/div&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Tagline:&lt;/strong&gt; Stop working for free. Turn SOWs + work-logs into paid change orders
&lt;strong&gt;Domain:&lt;/strong&gt; &lt;code&gt;scopeshield.tech&lt;/code&gt; (Render Static + FastAPI backend)
&lt;strong&gt;Theme fit:&lt;/strong&gt; DEV Side Hustle — open-source AI at its core that someone would pay $19/mo for.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href=""&gt;&lt;img src="https://camo.githubusercontent.com/f603c312ffdfb1f92705be223faec79e90445c274e5ae8686f810d5b42d1bef4/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f737461636b2d52656163742532303139253230253743253230466173744150492532302537432532305469676572446174612d626c7565" alt="Stack"&gt;&lt;/a&gt;
&lt;a href=""&gt;&lt;img src="https://camo.githubusercontent.com/c2680ed82cd508928752de91aa2f201f3d38ddd1f7074645b9048b7891fdb12f/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6f70656e2d2d41492d47656d6d6125323025324225323054696e6b657225323025324225323054616250464e2d677265656e" alt="Open AI"&gt;&lt;/a&gt;
&lt;a href=""&gt;&lt;img src="https://camo.githubusercontent.com/be07a68b57a673af622198c336264f89d82bf4cd5d87bc0cb3f7b6ae47cc43ea/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6c6963656e73652d4d49542d6c6967687467726579" alt="License"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;0. Quickstart (code phase — verified)&lt;/h2&gt;
&lt;/div&gt;
&lt;div class="highlight highlight-source-shell notranslate position-relative overflow-auto js-code-highlight"&gt;
&lt;pre&gt;make setup          &lt;span class="pl-c"&gt;&lt;span class="pl-c"&gt;#&lt;/span&gt; pip + npm install&lt;/span&gt;
make &lt;span class="pl-c1"&gt;test&lt;/span&gt;           &lt;span class="pl-c"&gt;&lt;span class="pl-c"&gt;#&lt;/span&gt; 7/7 green: 4/4 leaks, $1845, $26h OOS&lt;/span&gt;
make bench          &lt;span class="pl-c"&gt;&lt;span class="pl-c"&gt;#&lt;/span&gt; Tinker 250+50 pairs → validity/F1 table&lt;/span&gt;
make api            &lt;span class="pl-c"&gt;&lt;span class="pl-c"&gt;#&lt;/span&gt; uvicorn :8000 → GET /api/demo/audit&lt;/span&gt;
make web            &lt;span class="pl-c"&gt;&lt;span class="pl-c"&gt;#&lt;/span&gt; vite :5173 → Run Real Agency Audit&lt;/span&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;Verified numbers:&lt;/strong&gt; &lt;code&gt;53.0h logged → 26.0h out-of-scope → $1,845 recoverable&lt;/code&gt; (JIRA-105/106/107/108). Frontend &lt;code&gt;npm run build&lt;/code&gt; clean (1.25s, 1569 modules).&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Live repo:&lt;/strong&gt; &lt;a href="https://github.com/Aryan1092raj/ScopeShield" rel="noopener noreferrer"&gt;https://github.com/Aryan1092raj/ScopeShield&lt;/a&gt; — &lt;code&gt;main&lt;/code&gt; tracks &lt;code&gt;origin/main&lt;/code&gt;.&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h3 class="heading-element"&gt;Deploy (Render + .tech)&lt;/h3&gt;

&lt;/div&gt;
&lt;div class="highlight highlight-source-shell notranslate position-relative overflow-auto js-code-highlight"&gt;
&lt;pre&gt;&lt;span class="pl-c"&gt;&lt;span class="pl-c"&gt;#&lt;/span&gt; 1. Tiger Data: run README §7.1 DDL, then:&lt;/span&gt;
psql &lt;span class="pl-smi"&gt;$DATABASE_URL&lt;/span&gt; -f scripts/seed_tiger.sql
&lt;span class="pl-c"&gt;&lt;span class="pl-c"&gt;#&lt;/span&gt; 2. Render: New → Blueprint → point at render.yaml (api + static&lt;/span&gt;&lt;/pre&gt;…
&lt;/div&gt;&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/Aryan1092raj/ScopeShield" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;br&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;scopeshield/
├── backend/main.py audit_service.py sow_parser.py db_tiger.py
│           engine_tabpfn.py engine_serp.py engine_gemma.py schemas.py test_audit.py
├── data/demo_sow_contract.md demo_weekly_git_jira.csv baseline_agency_tickets.csv
├── scripts/generate_tinker_dataset.py benchmark_tinker.py seed_tiger.sql
└── frontend/ React 19 + Vite + Tailwind ledger UI
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Hybrid RRF SQL (Tiger Data, README 7.1, no LangChain):&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight sql"&gt;&lt;code&gt;&lt;span class="k"&gt;SELECT&lt;/span&gt; &lt;span class="k"&gt;c&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;section_number&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="k"&gt;c&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;clause_text&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="k"&gt;c&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;is_exclusion_clause&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="n"&gt;COALESCE&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;s&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;dist&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;)::&lt;/span&gt;&lt;span class="nb"&gt;FLOAT&lt;/span&gt; &lt;span class="k"&gt;AS&lt;/span&gt; &lt;span class="n"&gt;semantic_distance&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;COALESCE&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;rrf_k&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="n"&gt;s&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;rank_ix&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="n"&gt;COALESCE&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;rrf_k&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="n"&gt;k&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;rank_ix&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;))::&lt;/span&gt;&lt;span class="nb"&gt;FLOAT&lt;/span&gt; &lt;span class="k"&gt;AS&lt;/span&gt; &lt;span class="n"&gt;rrf_score&lt;/span&gt;
&lt;span class="k"&gt;FROM&lt;/span&gt; &lt;span class="n"&gt;semantic_search&lt;/span&gt; &lt;span class="n"&gt;s&lt;/span&gt; &lt;span class="k"&gt;FULL&lt;/span&gt; &lt;span class="k"&gt;OUTER&lt;/span&gt; &lt;span class="k"&gt;JOIN&lt;/span&gt; &lt;span class="n"&gt;keyword_search&lt;/span&gt; &lt;span class="n"&gt;k&lt;/span&gt; &lt;span class="k"&gt;USING&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;clause_id&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="k"&gt;JOIN&lt;/span&gt; &lt;span class="n"&gt;sow_clauses&lt;/span&gt; &lt;span class="k"&gt;c&lt;/span&gt; &lt;span class="k"&gt;ON&lt;/span&gt; &lt;span class="k"&gt;c&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;clause_id&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;COALESCE&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;s&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;clause_id&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;k&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;clause_id&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="k"&gt;ORDER&lt;/span&gt; &lt;span class="k"&gt;BY&lt;/span&gt; &lt;span class="n"&gt;rrf_score&lt;/span&gt; &lt;span class="k"&gt;DESC&lt;/span&gt; &lt;span class="k"&gt;LIMIT&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Local fallback match_memory() mirrors the fusion so demo works with zero infra.&lt;/p&gt;

&lt;h2&gt;
  
  
  How I Built It
&lt;/h2&gt;

&lt;p&gt;Every sponsor tech has a non-overlapping job:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Tiger Data (pgvector + tsvector, RRF pure SQL): SOW chunked by Section X.Y, 768-d via nomic-embed-text local via Ollama, top-3 clauses per row.&lt;/li&gt;
&lt;li&gt;TabPFN-3.5 (tabpfn-client): 9-feature vector per row to predict_proba to scope_leakage_probability. LLMs hallucinate math, TabPFN does not. Heuristic fallback when no key.&lt;/li&gt;
&lt;li&gt;Gemma 2 9B-IT (open weights via Ollama/vLLM) + Tinker LoRA: strict-JSON verdict + citation + email/order. 250+50 pairs via generate_tinker_dataset.py, benchmark_tinker.py reports validity/F1/tokens. Adapter gemma-2-9b-tinker-sow-v1. Stub judge for offline CI, Ollama path with repair retry for real Gemma.&lt;/li&gt;
&lt;li&gt;SerpApi: freelance {category} rate 2026 to regex median + 24h cache + fallback table (frontend 55, backend 70, devops 85, design 50, compliance 90, database 75).&lt;/li&gt;
&lt;li&gt;Sentry: ScopeShield_Full_Audit transaction + 4 spans (Tiger/TabPFN/SerpApi/Gemma), trace id in UI drawer. Local-first — no hosted deploy.&lt;/li&gt;
&lt;li&gt;Entire / Copilot: session export for appendix.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Pipeline per row (audit_service.py): index clauses to match_memory/match_tiger to build_feature_row to score_rows to fetch_market_rate to judge_row_stub/judge_row_ollama to totals + change-order markdown + client email.&lt;/p&gt;

&lt;p&gt;Tinker honesty: dataset + harness shipped, stub simulation shows validity +25pp / F1 +0.15 / tokens -35% directionally. Full GPU LoRA next, contract frozen and reproducible.&lt;/p&gt;

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

&lt;ol&gt;
&lt;li&gt;NDA-safe: Gemma local, embeddings in-VPC, Tiger in your Postgres. Raw SOW never leaves your boundary. Embeddings-only + auto-delete kills the you store contracts objection.&lt;/li&gt;
&lt;li&gt;Zero marginal cost = 19/mo viable: local Gemma + cached TabPFN/SerpApi, tokens 0. Telemetry token_savings_vs_gpt4o_pct 35.0.&lt;/li&gt;
&lt;li&gt;Fine-tune beats prompting: Tinker LoRA teaches strict JSON and exclusion enforcement (5.2/7.1 traps), swappable gemma-2-9b to gemma-3-4b via env.&lt;/li&gt;
&lt;li&gt;Separation a closed LLM cannot do: TabPFN owns numbers, Tiger owns retrieval, Gemma owns words. Composable open pieces, not one black box.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;If a closed model reprices or drifts, ScopeShield still audits. That is the moat.&lt;/p&gt;

&lt;h2&gt;
  
  
  My Agent Session
&lt;/h2&gt;

&lt;p&gt;Build trace: Thu Tiger+TabPFN, Fri Gemma+Tinker+SerpApi, Sat demo polish + DEV draft. Entire/Copilot export in appendix.&lt;/p&gt;

&lt;p&gt;Session embed pending — will add the DevRelay session link here once saved.&lt;/p&gt;

&lt;h2&gt;
  
  
  Prize Categories
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Best Use of TabPFN (200): engine_tabpfn.py 9-feature fit-120 predict_proba inside agent&lt;/li&gt;
&lt;li&gt;Best Use of Tinker (200): 250+50 pairs + benchmark validity/F1/tokens&lt;/li&gt;
&lt;li&gt;Best Use of Gemma (200): gemma-2-9b-it Ollama strict-JSON repair retry&lt;/li&gt;
&lt;li&gt;Best Use of Tiger Data (100): pgvector+tsvector RRF SQL&lt;/li&gt;
&lt;li&gt;Best Use of SerpApi (100): live rate grounding 24h cache cited in order&lt;/li&gt;
&lt;li&gt;Best Use of Sentry Agent Tracing (100): full-audit transaction + 4 spans&lt;/li&gt;
&lt;li&gt;Best Use of Entire (100): sessions in appendix&lt;/li&gt;
&lt;li&gt;Best Use of GitHub Copilot (100): agent/CLI build&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;By &lt;a class="mentioned-user" href="https://dev.to/aryan1092raj"&gt;@aryan1092raj&lt;/a&gt; — solo build, MIT open source.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>hf26challenge</category>
      <category>ai</category>
      <category>opensource</category>
    </item>
    <item>
      <title>WalkTalk: Turn Screen Meetings into a Walk 🎧</title>
      <dc:creator>Aryan Raj</dc:creator>
      <pubDate>Sun, 11 Oct 2026 06:21:22 +0000</pubDate>
      <link>https://dev.to/aryan1092raj/-walktalk-turn-screen-meetings-into-a-walk-29jl</link>
      <guid>https://dev.to/aryan1092raj/-walktalk-turn-screen-meetings-into-a-walk-29jl</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;&lt;strong&gt;WalkTalk — Turn Screen Meetings into a Walk 🎧&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;WalkTalk lets you turn meeting agendas into audio and take discussions outdoors. Record the conversation on your phone, then process it on your laptop to generate transcripts, identify speakers, and create meeting minutes linked to audio evidence.&lt;/p&gt;

&lt;p&gt;Built for students and teams who want to spend less time at their screens without losing important meeting details.&lt;/p&gt;

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

&lt;p&gt;&lt;a href="https://github.com/Aryan1092raj/WalkTalk" rel="noopener noreferrer"&gt;GitHub Repository&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;Built with Python using Piper TTS, DeepFilterNet3, faster-whisper, pyannote.audio, and Ollama.&lt;/p&gt;

&lt;h2&gt;
  
  
  How I Built It
&lt;/h2&gt;

&lt;p&gt;WalkTalk combines open-source audio tools with local LLM inference using Qwen2.5 7B Instruct. Its pipeline handles agenda narration, denoising, transcription, speaker diarization, and meeting minutes. Models run sequentially to fit systems with around 6 GB VRAM.&lt;/p&gt;

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

&lt;p&gt;Open-source AI makes this workflow possible without depending on paid cloud AI APIs. After setup, processing runs locally, keeping meeting recordings on the user's machine and allowing offline use.&lt;/p&gt;

&lt;h2&gt;
  
  
  My Agent Session
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://github.com/Aryan1092raj/WalkTalk" rel="noopener noreferrer"&gt;View WalkTalk on GitHub&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Prize Categories
&lt;/h2&gt;

&lt;h2&gt;
  
  
  &lt;em&gt;Best Use of Gemma&lt;/em&gt; — Gemma 3 4B is supported as a fallback model.
&lt;/h2&gt;

&lt;h1&gt;
  
  
  devchallenge #hf26challenge
&lt;/h1&gt;

</description>
      <category>devchallenge</category>
      <category>hf26challenge</category>
    </item>
    <item>
      <title>Exam_tutor</title>
      <dc:creator>Aryan Raj</dc:creator>
      <pubDate>Sun, 04 Oct 2026 15:09:25 +0000</pubDate>
      <link>https://dev.to/aryan1092raj/examtutor-16c5</link>
      <guid>https://dev.to/aryan1092raj/examtutor-16c5</guid>
      <description>&lt;h2&gt;
  
  
  What I Built
&lt;/h2&gt;

&lt;p&gt;A local exam-prep tutor for my friend Nishant. He [his real problem, e.g. "studies from scattered notes and web pages and has no way to test himself"] before [course/exam]. Paste URLs or upload PDFs, then either ask questions (answered only from his notes, with sources shown) or get quizzed and graded on his own answers.&lt;/p&gt;

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

&lt;p&gt;[video link]&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/Aryan1092raj" rel="noopener noreferrer"&gt;
        Aryan1092raj
      &lt;/a&gt; / &lt;a href="https://github.com/Aryan1092raj/Exam_tutor" rel="noopener noreferrer"&gt;
        Exam_tutor
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      
    &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;Exam Tutor&lt;/h1&gt;
&lt;/div&gt;
&lt;p&gt;Local RAG study partner built for my friend Nishant. Paste URLs or upload notes, then ask questions or get quizzed. Everything runs on-device with open-weight models via Ollama. No API key, no internet needed after setup, notes never leave the laptop.&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Setup&lt;/h2&gt;
&lt;/div&gt;
&lt;div class="highlight highlight-source-shell notranslate position-relative overflow-auto js-code-highlight"&gt;
&lt;pre&gt;&lt;span class="pl-c"&gt;&lt;span class="pl-c"&gt;#&lt;/span&gt; 1. install Ollama: https://ollama.com&lt;/span&gt;
ollama pull qwen2.5:3b
ollama pull nomic-embed-text

&lt;span class="pl-c"&gt;&lt;span class="pl-c"&gt;#&lt;/span&gt; 2. run&lt;/span&gt;
pip install -r requirements.txt
streamlit run app.py&lt;/pre&gt;

&lt;/div&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Use&lt;/h2&gt;

&lt;/div&gt;
&lt;ol&gt;
&lt;li&gt;Sidebar: paste URLs (web pages or PDFs) or upload files, click &lt;strong&gt;Ingest&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Ask&lt;/strong&gt; mode: question gets answered only from the ingested notes, with sources shown.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Quiz me&lt;/strong&gt; mode: enter a topic, get an exam-style question, answer it, get graded.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Sample sources to try (data structures):&lt;/p&gt;
&lt;div class="snippet-clipboard-content notranslate position-relative overflow-auto"&gt;&lt;pre class="notranslate"&gt;&lt;code&gt;https://en.wikipedia.org/wiki/Binary_search_tree
https://en.wikipedia.org/wiki/AVL_tree
https://en.wikipedia.org/wiki/Dijkstra%27s_algorithm
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;How it works&lt;/h2&gt;

&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;Chunk text (900 chars, 150 overlap)&lt;/li&gt;
&lt;li&gt;Embed chunks with &lt;code&gt;nomic-embed-text&lt;/code&gt; (Ollama)&lt;/li&gt;
&lt;li&gt;Cosine similarity over numpy matrix, top 4 chunks&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;qwen2.5:3b&lt;/code&gt; answers using only retrieved chunks&lt;/li&gt;
&lt;li&gt;Swap model: edit &lt;code&gt;CHAT_MODEL&lt;/code&gt; in &lt;code&gt;app.py&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Stack&lt;/h2&gt;…&lt;/div&gt;&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/Aryan1092raj/Exam_tutor" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;


&lt;h2&gt;
  
  
  How I Built It
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Chat model:&lt;/strong&gt; Qwen2.5 3B via Ollama, runs on a laptop CPU/GPU.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Embeddings:&lt;/strong&gt; nomic-embed-text via Ollama.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Retrieval:&lt;/strong&gt; notes chunked (900 chars, 150 overlap), embedded, cosine similarity over a numpy matrix, top 4 chunks fed to the model.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Grounding:&lt;/strong&gt; system prompt restricts answers to retrieved notes; if notes don't cover it, it says so.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Quiz mode:&lt;/strong&gt; model writes one exam-style question from retrieved chunks, then grades the student's answer against them.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;UI:&lt;/strong&gt; Streamlit. Ingestion via trafilatura (web) and pypdf (PDFs).&lt;/li&gt;
&lt;li&gt;Whole thing is ~150 lines, one file.&lt;/li&gt;
&lt;/ul&gt;

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

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Offline:&lt;/strong&gt; works with bad hostel wifi. After model pull, zero internet needed.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Private:&lt;/strong&gt; his notes never leave his laptop.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Free:&lt;/strong&gt; no API key, no per-query cost, no rate limit during exam week.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Swappable:&lt;/strong&gt; changing the model is one line (&lt;code&gt;CHAT_MODEL&lt;/code&gt;). [Add your real 3B vs 7B comparison, or delete this sentence.]&lt;/li&gt;
&lt;li&gt;A closed API would need billing, a key, and a connection, which is exactly what a student doesn't want the night before an exam.&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>devchallenge</category>
      <category>weekendchallenge</category>
      <category>hf26challenge</category>
    </item>
  </channel>
</rss>
