<?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: Aditya Goyal</title>
    <description>The latest articles on DEV Community by Aditya Goyal (@synthreaper).</description>
    <link>https://dev.to/synthreaper</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%2F3969414%2F7006c130-6f29-4754-96ff-f305a4394073.png</url>
      <title>DEV Community: Aditya Goyal</title>
      <link>https://dev.to/synthreaper</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/synthreaper"/>
    <language>en</language>
    <item>
      <title>NecroGit: I built an AI necromancer to resurrect dead open-source repositories</title>
      <dc:creator>Aditya Goyal</dc:creator>
      <pubDate>Wed, 28 Oct 2026 19:46:47 +0000</pubDate>
      <link>https://dev.to/synthreaper/necrogit-i-built-an-ai-necromancer-to-resurrect-dead-open-source-repositories-5aji</link>
      <guid>https://dev.to/synthreaper/necrogit-i-built-an-ai-necromancer-to-resurrect-dead-open-source-repositories-5aji</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/hacktoberfest-week4-2026-10-26"&gt;Hacktoberfest Open-Source AI Challenge Week 4: Ghost in the Machine&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

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

&lt;p&gt;Over &lt;strong&gt;40 million open-source repositories&lt;/strong&gt; on GitHub lie dead in the digital graveyard—abandoned by creators, killed by bitrot, and haunted by deprecated APIs and unpatched CVEs.&lt;/p&gt;

&lt;p&gt;In the spirit of &lt;strong&gt;Día de los Muertos&lt;/strong&gt; and &lt;strong&gt;Halloween&lt;/strong&gt;, &lt;strong&gt;NecroGit&lt;/strong&gt; honors open-source history by summoning the ghosts of dead codebases and resurrecting them into modern, hardened software.&lt;/p&gt;

&lt;p&gt;Point NecroGit at an abandoned repository (e.g., dead Python 2 tools from 2012). It:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Calculates repository "Time of Death" and bitrot risk using &lt;strong&gt;Prior Labs TabPFN-3.5&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Hunts the Internet Archive via &lt;strong&gt;Browserbase (Stagehand v4)&lt;/strong&gt; to unearth vintage documentation.&lt;/li&gt;
&lt;li&gt;Cleanses deprecated ASTs and synthesizes modern tests using &lt;strong&gt;local Gemma 2&lt;/strong&gt; (via Ollama).&lt;/li&gt;
&lt;li&gt;Narrates the codebase's resurrection in the voice of the original author using &lt;strong&gt;ElevenLabs&lt;/strong&gt;.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Who gets to benefit:&lt;/strong&gt; Any developer inheriting legacy technical debt, or anyone who hates watching brilliant open-source software die.&lt;/p&gt;




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

&lt;p&gt;Runs 100% local (privacy-first: vintage internal codebases never leave your machine):&lt;/p&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
bash
git clone https://github.com/SynthReaper/ghw-hacktoberfest26.git
cd ghw-hacktoberfest26/necrogit
pnpm install
pnpm agent:seance   # Runs digital séance across vintage graveyard repos
pnpm web:dev        # Launches Next.js 15 Séance Crypt Dashboard on localhost:3000
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

</description>
      <category>devchallenge</category>
      <category>hf26challenge</category>
    </item>
    <item>
      <title>CouchPotato Expenses: I built an autonomous sloth agent to never look at a utility bill again</title>
      <dc:creator>Aditya Goyal</dc:creator>
      <pubDate>Fri, 23 Oct 2026 10:42:23 +0000</pubDate>
      <link>https://dev.to/synthreaper/couchpotato-expenses-i-built-an-autonomous-sloth-agent-to-never-look-at-a-utility-bill-again-39bp</link>
      <guid>https://dev.to/synthreaper/couchpotato-expenses-i-built-an-autonomous-sloth-agent-to-never-look-at-a-utility-bill-again-39bp</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;Every month, freelancers and small business owners dread the same chore: logging into 10 different utility and cloud portals, waiting for 2FA codes, downloading statements, figuring out IRS tax lines, and missing billing spikes.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;CouchPotato Expenses&lt;/strong&gt; is built for pure, unapologetic laziness. &lt;/p&gt;

&lt;p&gt;Once a week, a background worker wakes up, drives a real browser via &lt;strong&gt;Browserbase (Stagehand v4)&lt;/strong&gt; to log into recurring utility portals, downloads PDFs, extracts financial metadata using &lt;strong&gt;local Gemma 2&lt;/strong&gt; (via Ollama), uses Prior Labs' &lt;strong&gt;TabPFN-3.5&lt;/strong&gt; to classify IRS Schedule C tax write-offs and flag abnormal bill spikes, and quietly files them into your encrypted local vault.&lt;/p&gt;

&lt;p&gt;You do literally nothing. You take a nap.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Who gets to be lazy:&lt;/strong&gt; Anyone who would rather sleep than spend 38 hours a year managing receipts.&lt;/p&gt;




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

&lt;p&gt;Runs 100% local (privacy-first: your financial records and utility account numbers never touch any third-party server):&lt;/p&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
bash
git clone https://github.com/SynthReaper/ghw-hacktoberfest26.git
cd ghw-hacktoberfest26/couchpotato
pnpm install
pnpm agent:hunt   # Runs autonomous browser + Gemma OCR + TabPFN pipeline
pnpm web:dev      # Launches Next.js 15 Sloth Command Center on localhost:3000
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

</description>
      <category>devchallenge</category>
      <category>hf26challenge</category>
      <category>gemma</category>
      <category>tabpfn</category>
    </item>
    <item>
      <title>I tried to fire my LLM API. Open models passed one task and failed the other.</title>
      <dc:creator>Aditya Goyal</dc:creator>
      <pubDate>Wed, 14 Oct 2026 19:48:25 +0000</pubDate>
      <link>https://dev.to/synthreaper/i-tried-to-fire-my-llm-api-open-models-passed-one-task-and-failed-the-other-1jde</link>
      <guid>https://dev.to/synthreaper/i-tried-to-fire-my-llm-api-open-models-passed-one-task-and-failed-the-other-1jde</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/hacktoberfest-week2-2026-10-12"&gt;Hacktoberfest Open-Source AI Challenge Week 2: Side Hustle&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

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

&lt;p&gt;&lt;strong&gt;Open-Switch&lt;/strong&gt; answers one question: &lt;em&gt;can an open model replace your closed LLM API on YOUR data?&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;It runs your workflow through open-weight models, scores them with bootstrap 95% CIs, and gives a verdict: &lt;strong&gt;Safe Switch&lt;/strong&gt; or &lt;strong&gt;No Safe Switch&lt;/strong&gt;. It also tells you if a LoRA fine-tune pays for itself.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Who pays:&lt;/strong&gt; B2B SaaS teams cutting LLM bills, and consultants selling migration audits. Hypothesis: $49/mo self-serve, $199/mo agency.&lt;/p&gt;

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

&lt;p&gt;Runs fully local (no hosted link, by design: your data never leaves your machine):&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git clone https://github.com/SynthReaper/ghw-hacktoberfest26.git
&lt;span class="nb"&gt;cd &lt;/span&gt;ghw-hacktoberfest26/switchable &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; pip &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;-e&lt;/span&gt; &lt;span class="nb"&gt;.&lt;/span&gt;
openswitch run &lt;span class="nt"&gt;--models&lt;/span&gt; gemma-2b-local,gemma-9b-local &lt;span class="nt"&gt;--task&lt;/span&gt; specs/task.yaml
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&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/SynthReaper" rel="noopener noreferrer"&gt;
        SynthReaper
      &lt;/a&gt; / &lt;a href="https://github.com/SynthReaper/ghw-hacktoberfest26" rel="noopener noreferrer"&gt;
        ghw-hacktoberfest26
      &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;MLH x Hacktoberfest Challenge Projects (2026)&lt;/h1&gt;

&lt;/div&gt;

&lt;p&gt;Workspace containing hackathon projects for DEV Hacktoberfest Challenges.&lt;/p&gt;

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

&lt;/div&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/SynthReaper/ghw-hacktoberfest26/./paper-trail/" rel="noopener noreferrer"&gt;&lt;code&gt;paper-trail/&lt;/code&gt;&lt;/a&gt;: &lt;strong&gt;Paper Trail&lt;/strong&gt; — Offline Local Walk Generator &amp;amp; Analog Field Card (DEV Hacktoberfest Open-Source AI Challenge Week 1: &lt;em&gt;Touch Grass&lt;/em&gt;).&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/SynthReaper/ghw-hacktoberfest26/./switchable/" rel="noopener noreferrer"&gt;&lt;code&gt;switchable/&lt;/code&gt;&lt;/a&gt;: &lt;strong&gt;Open-Switch&lt;/strong&gt; — Autonomous evaluation and migration engine to verify whether open-weight models (Gemma 2, Llama 3, Qwen 2.5) can safely replace expensive closed LLMs with honest statistics (10k bootstrap 95% CIs), default-deny provenance guard, calibrated pairwise judging, and LoRA fine-tuning break-even economics (DEV Hacktoberfest Open-Source AI Challenge Week 2: &lt;em&gt;Side Hustle&lt;/em&gt;).&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;br&gt;
&lt;br&gt;
  &lt;/div&gt;
&lt;br&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/SynthReaper/ghw-hacktoberfest26" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;br&gt;
&lt;/div&gt;
&lt;br&gt;


&lt;p&gt;The project lives in the &lt;a href="https://github.com/SynthReaper/ghw-hacktoberfest26/tree/main/switchable" rel="noopener noreferrer"&gt;&lt;code&gt;switchable/&lt;/code&gt;&lt;/a&gt; folder. Key files:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/SynthReaper/ghw-hacktoberfest26/blob/main/switchable/openswitch/datasets/provenance.py" rel="noopener noreferrer"&gt;&lt;code&gt;provenance.py&lt;/code&gt;&lt;/a&gt;: default-deny guard against training on closed-API outputs&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/SynthReaper/ghw-hacktoberfest26/blob/main/switchable/openswitch/judge/evaluator.py" rel="noopener noreferrer"&gt;&lt;code&gt;evaluator.py&lt;/code&gt;&lt;/a&gt;: AB/BA position-bias defense&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/SynthReaper/ghw-hacktoberfest26/blob/main/switchable/openswitch/stats.py" rel="noopener noreferrer"&gt;&lt;code&gt;stats.py&lt;/code&gt;&lt;/a&gt;: 10k-resample bootstrap CIs&lt;/li&gt;
&lt;/ul&gt;

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

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Models:&lt;/strong&gt; Gemma 2 (2B/9B), Llama 3.1/3.2, Qwen 2.5 7B via Ollama&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Judge:&lt;/strong&gt; every pair is scored in AB &lt;em&gt;and&lt;/em&gt; BA order; disagreements are flagged (90% agreement with human labels, κ = 0.85)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Provenance guard:&lt;/strong&gt; blocks fine-tuning on closed-API outputs, then regenerates references with an open teacher&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;109 tests&lt;/strong&gt;, 10k-resample bootstrap CIs on every metric&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Task&lt;/th&gt;
&lt;th&gt;Best open model&lt;/th&gt;
&lt;th&gt;Score [95% CI]&lt;/th&gt;
&lt;th&gt;Verdict&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Support triage&lt;/td&gt;
&lt;td&gt;Qwen 2.5 7B + LoRA&lt;/td&gt;
&lt;td&gt;90.0% [80, 98]&lt;/td&gt;
&lt;td&gt;✅ Safe switch, 85% cheaper&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Banking intent&lt;/td&gt;
&lt;td&gt;Gemma 2 2B&lt;/td&gt;
&lt;td&gt;41.2% [27.5, 54.9]&lt;/td&gt;
&lt;td&gt;❌ Not safe&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;The tool says "no" when the answer is no. That's the point.&lt;/p&gt;

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

&lt;p&gt;Closed APIs rent you a fine-tune. Open models give you a &lt;strong&gt;LoRA adapter you own forever&lt;/strong&gt;. A $1.03 fine-tune broke even at ~10k requests/month, while 3-shot prompting quadrupled per-request cost.&lt;/p&gt;

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

&lt;p&gt;Built with Antigravity under a strict &lt;code&gt;AGENTS.md&lt;/code&gt;: pre-flight gates, TDD, and a no-fabricated-metrics rule.&lt;/p&gt;

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

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Best Use of Gemma:&lt;/strong&gt; 2B runs locally; 9B is the open teacher&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Best Use of Tinker:&lt;/strong&gt; LoRA training in 85s for $1.03&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>devchallenge</category>
      <category>hf26challenge</category>
      <category>opensource</category>
      <category>ai</category>
    </item>
    <item>
      <title>Paper Trail: Leaving the Phone Behind with Local Open AI and a Printed Walking Card</title>
      <dc:creator>Aditya Goyal</dc:creator>
      <pubDate>Sat, 10 Oct 2026 16:39:07 +0000</pubDate>
      <link>https://dev.to/synthreaper/paper-trail-leaving-the-phone-behind-with-local-open-ai-and-a-printed-walking-card-2o1p</link>
      <guid>https://dev.to/synthreaper/paper-trail-leaving-the-phone-behind-with-local-open-ai-and-a-printed-walking-card-2o1p</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;Most outdoor AI apps do the exact opposite of touching grass: they trap your attention behind an augmented camera viewfinder or buzz with continuous notifications.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Paper Trail&lt;/strong&gt; turns the screen into the shortest part of the experience. It is a local-first walk generator that builds a calibrated loop route from OpenStreetMap data, extracts verified real-world points of interest (trees, water, shrines, historic markers, benches), synthesizes multi-sensory observation prompts (&lt;code&gt;look&lt;/code&gt;, &lt;code&gt;listen&lt;/code&gt;, &lt;code&gt;count&lt;/code&gt;, &lt;code&gt;touch&lt;/code&gt;, &lt;code&gt;sketch&lt;/code&gt;) with an open LLM, and compiles an ink-friendly, monochrome PDF pocket card.&lt;/p&gt;

&lt;p&gt;You enter a start point and your available time budget (30, 45, or 60 minutes). You click print, slip the folded card and a pencil into your pocket, and &lt;strong&gt;leave your phone at home&lt;/strong&gt;.&lt;/p&gt;




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

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Repository &amp;amp; Code:&lt;/strong&gt; &lt;a href="https://github.com/SynthReaper/ghw-hacktoberfest26/tree/main/paper-trail" rel="noopener noreferrer"&gt;github.com/SynthReaper/ghw-hacktoberfest26/tree/main/paper-trail&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Local Web UI &amp;amp; Field Cards:&lt;/strong&gt; Check the &lt;code&gt;/examples&lt;/code&gt; folder in the repository for compiled vector PDF cards (&lt;code&gt;cubbon_park_calibrated.pdf&lt;/code&gt;) ready for A4/A5 printing.&lt;/li&gt;
&lt;/ul&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/SynthReaper" rel="noopener noreferrer"&gt;
        SynthReaper
      &lt;/a&gt; / &lt;a href="https://github.com/SynthReaper/ghw-hacktoberfest26" rel="noopener noreferrer"&gt;
        ghw-hacktoberfest26
      &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;MLH x Hacktoberfest Challenge Projects (2026)&lt;/h1&gt;

&lt;/div&gt;
&lt;p&gt;Workspace containing hackathon projects for DEV Hacktoberfest Challenges.&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Projects&lt;/h2&gt;

&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/SynthReaper/ghw-hacktoberfest26/./paper-trail/" rel="noopener noreferrer"&gt;&lt;code&gt;paper-trail/&lt;/code&gt;&lt;/a&gt;: &lt;strong&gt;Paper Trail&lt;/strong&gt; — Offline Local Walk Generator &amp;amp; Analog Field Card (DEV Hacktoberfest Open-Source AI Challenge Week 1: &lt;em&gt;Touch Grass&lt;/em&gt;).&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;



&lt;/div&gt;
&lt;br&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/SynthReaper/ghw-hacktoberfest26" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;br&gt;
&lt;/div&gt;
&lt;br&gt;


&lt;p&gt;The complete codebase lives under &lt;a href="https://github.com/SynthReaper/ghw-hacktoberfest26/tree/main/paper-trail" rel="noopener noreferrer"&gt;&lt;code&gt;/paper-trail&lt;/code&gt;&lt;/a&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;ingest.py&lt;/code&gt;: Overpass spatial ingest, POI extraction, and offline cache loader.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;route.py&lt;/code&gt;: NetworkX walkable graph builder with perimeter-calibrated loop routing.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;facts.py&lt;/code&gt;: Strictly typed, isolated fact records containing verifiable map ground truth.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;clues.py&lt;/code&gt;: Sensory observation generator with a strict programmatic Anti-Hallucination Validator.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;render.py&lt;/code&gt;: ReportLab monochrome vector field card PDF renderer.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;cli.py&lt;/code&gt;: Unified offline/online CLI tool.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;tests/&lt;/code&gt;: Pytest suite verifying routing boundaries and validator edge-case rejections.&lt;/li&gt;
&lt;/ul&gt;




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

&lt;h3&gt;
  
  
  The Core Architectural Invariant: The Model Never Owns Facts
&lt;/h3&gt;

&lt;p&gt;When language models generate exploration clues, they inevitably invent nonexistent landmarks—hallucinating a "banyan tree next to the temple" where none exists. &lt;/p&gt;

&lt;p&gt;Paper Trail eliminates this through a strict architectural rule: &lt;strong&gt;Code selects the facts; the model only phrases them.&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Deterministic Graph Loop:&lt;/strong&gt; &lt;code&gt;route.py&lt;/code&gt; builds a walkable pedestrian graph from OpenStreetMap ways and solves a loop through 4–7 spatially diverse POIs. It dynamically scales the perimeter radius to calibrate total walking distance to within ±15% of the walker's target duration (at 4.5 km/h).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Fact Isolation:&lt;/strong&gt; &lt;code&gt;facts.py&lt;/code&gt; packages each stop into a minimal, whitelisted &lt;code&gt;FactRecord&lt;/code&gt; containing only verified tags, compass bearing, and distance in meters.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The Anti-Hallucination Validator:&lt;/strong&gt; Every clue generated by Gemma (via local Ollama inference) passes through an automated rule engine:

&lt;ul&gt;
&lt;li&gt;Rejects unverified proper nouns not present in the OSM tags or navigation stopwords.&lt;/li&gt;
&lt;li&gt;Rejects unverified biological species (e.g., claiming "oak" or "pine" when the map only tags &lt;code&gt;natural=tree&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;Rejects unverified metrics and numbers.&lt;/li&gt;
&lt;li&gt;If an open model fails validation across 3 retries, Paper Trail deterministically falls back to a fact-grounded template and logs the rejection to &lt;code&gt;runs/&amp;lt;id&amp;gt;_clues.jsonl&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Physical Vector Card:&lt;/strong&gt; &lt;code&gt;render.py&lt;/code&gt; compiles an ink-friendly, high-contrast monochrome PDF featuring a topological route polyline, numbered waypoints, north indicator, sensory prompt badges, and physical pencil boxes for notes and field sketches.&lt;/li&gt;
&lt;/ol&gt;




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

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Zero Location Data on Remote Servers:&lt;/strong&gt; Where, when, and how you walk is sensitive personal telemetry that should never leave your hardware. Because Paper Trail uses open-weight models (Gemma) and local OSM extracts, not a single byte of coordinate data or personal habits is sent to third-party cloud APIs.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;True 100% Offline Capability:&lt;/strong&gt; Using bundled OSM extracts, Paper Trail generates routes, evaluates spatial graphs, and generates observation prompts on a laptop with Wi-Fi completely disabled.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Auditability &amp;amp; Grounding:&lt;/strong&gt; With proprietary APIs, guardrails are opaque black boxes. With open weights and local code, we can inspect every token, measure latency, track hallucination rates, and prove that map truth is strictly enforced.&lt;/li&gt;
&lt;/ol&gt;




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

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Best Use of Gemma:&lt;/strong&gt; Used Gemma as the local open-weight clue generation model, with low-temperature structured JSON prompting and strict validator enforcement.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Best Use of Entire:&lt;/strong&gt; AI agent pairing and architecture session tracked with DevRelay.&lt;/li&gt;
&lt;/ul&gt;




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