<?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: KyPython</title>
    <description>The latest articles on DEV Community by KyPython (@kypython).</description>
    <link>https://dev.to/kypython</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%2F3680687%2F4c0aee2f-033b-44bc-934d-b9e0f3b95b05.png</url>
      <title>DEV Community: KyPython</title>
      <link>https://dev.to/kypython</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/kypython"/>
    <language>en</language>
    <item>
      <title>Claim Checker: A Slower, Safer First Pass on Claims With Gemma</title>
      <dc:creator>KyPython</dc:creator>
      <pubDate>Sat, 24 Oct 2026 19:59:52 +0000</pubDate>
      <link>https://dev.to/kypython/claim-checker-a-slower-safer-first-pass-on-claims-with-gemma-31f7</link>
      <guid>https://dev.to/kypython/claim-checker-a-slower-safer-first-pass-on-claims-with-gemma-31f7</guid>
      <description>&lt;p&gt;&lt;em&gt;An unpublished candidate 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;blockquote&gt;
&lt;p&gt;&lt;strong&gt;PREPARED FOR DEV — NOT YET PUBLISHED.&lt;/strong&gt; The genuine Gemma model demo has been enhanced and uploaded to a verified publicly viewable Google Drive file. The code is merged into &lt;code&gt;main&lt;/code&gt;. DEV sign-in and competition-entry confirmation remain outstanding; account-specific Google usage cost is unverified.&lt;/p&gt;
&lt;/blockquote&gt;

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

&lt;p&gt;A small claim on a page can trigger a big research detour: more tabs, more searching, and a temptation to decide before inspecting the source. I wanted a smaller &lt;em&gt;first step&lt;/em&gt; instead of pretending an AI model alone could do the entire fact-check.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Claim Checker&lt;/strong&gt; is a Python standard-library CLI that asks Google's &lt;strong&gt;open-weight Gemma 4&lt;/strong&gt; model for a structured, &lt;em&gt;provisional&lt;/em&gt; claim-triage card. It reports one of four labels—&lt;code&gt;TRUE&lt;/code&gt;, &lt;code&gt;FALSE&lt;/code&gt;, &lt;code&gt;MISLEADING&lt;/code&gt;, or &lt;code&gt;UNVERIFIABLE&lt;/code&gt;—alongside a rationale, the evidence identifiers cited, and what would settle an unresolved claim.&lt;/p&gt;

&lt;p&gt;The key idea is to &lt;strong&gt;reward useful uncertainty&lt;/strong&gt;. The application does not equate a model's memory with independently reviewed evidence. If no source was supplied and reviewed, confident verdicts cannot pass the application validator. The safe outcome is &lt;code&gt;UNVERIFIABLE&lt;/code&gt;. The benefit is the first structured question to investigate; it is &lt;strong&gt;not&lt;/strong&gt; a replacement for independent fact-checking or a live source search.&lt;/p&gt;

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

&lt;p&gt;&lt;strong&gt;&lt;a href="https://drive.google.com/file/d/1t9qHuGz_YDCVyvgI7sUuAdQLFE8PxwmU/view?usp=drivesdk" rel="noopener noreferrer"&gt;Watch the actual Claim Checker Gemma 4 demonstration (2:44)&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This is an actual, lightly edited Mac screen recording. The video shows the Google-hosted Gemma response and offline test summaries. Audio and image clarity were improved without generating new claims, changing the model verdict, dubbing speech, or replacing tests. The original is preserved. The Google Drive file has been independently checked through connected metadata as &lt;strong&gt;anyone-with-link / reader&lt;/strong&gt;; public playback in a signed-out browser was not separately tested.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Verified real sample on October 23, 2026:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;python3 claimcheck.py &lt;span class="nt"&gt;--provider&lt;/span&gt; google &lt;span class="nt"&gt;--model&lt;/span&gt; gemma-4-26b-a4b-it &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--claim&lt;/span&gt; &lt;span class="s2"&gt;"Earth is the third planet from the Sun."&lt;/span&gt; &lt;span class="nt"&gt;--json&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The actual validated JSON card reported &lt;code&gt;model: "gemma-4-26b-a4b-it"&lt;/code&gt;, &lt;code&gt;provider: "google"&lt;/code&gt;, &lt;code&gt;verdict: "UNVERIFIABLE"&lt;/code&gt;, &lt;code&gt;evidence_ids: []&lt;/code&gt;, and explained that no evidence had been supplied to support or contradict the claim. That does &lt;strong&gt;not&lt;/strong&gt; mean the astronomy claim is uncertain in reality: it means the application correctly refuses to certify facts without a reviewed source.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Demo video URL:&lt;/strong&gt; &lt;a href="https://drive.google.com/file/d/1t9qHuGz_YDCVyvgI7sUuAdQLFE8PxwmU/view?usp=drivesdk" rel="noopener noreferrer"&gt;public-viewer Google Drive video&lt;/a&gt; (2:44, 1080p).&lt;/p&gt;

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

&lt;p&gt;&lt;a href="https://github.com/KyPython/claim-checker-local" rel="noopener noreferrer"&gt;KyPython/claim-checker-local&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Python 3.11+; standard library only. Running the CLI uses a remote provider key held privately in the user's environment. PR #2 was squash-merged to public &lt;code&gt;main&lt;/code&gt; as commit &lt;code&gt;0551cd1adab5709d4e4253c8e5adc4b468da4110&lt;/code&gt; on October 23, 2026. The original tested code receipt remains tied to &lt;code&gt;6e0c2d5&lt;/code&gt;.&lt;/p&gt;

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

&lt;p&gt;The app uses &lt;strong&gt;Gemma 4 26B A4B IT&lt;/strong&gt;, served over HTTPS by &lt;strong&gt;Google's Gemini API&lt;/strong&gt;. It does &lt;strong&gt;not&lt;/strong&gt; run the model offline. A separate manually chosen route can use pinned free Gemma endpoints through OpenRouter; no automatic failover, paid variant, local GPU or cloud deployment is required. Each claim makes at most one request. The response is checked for expected model identity, completion status, JSON shape, allowed verdict, evidence IDs and grounding limits. Failed or incomplete provider calls produce a nonzero request error—not a fake success.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Actual Mac verification, October 23:&lt;/strong&gt; &lt;code&gt;git rev-parse --short HEAD&lt;/code&gt; displayed &lt;code&gt;6e0c2d5&lt;/code&gt;; Python compilation completed without error, deterministic mock evaluation reported &lt;strong&gt;23/23&lt;/strong&gt;, and unit tests reported &lt;strong&gt;34/34&lt;/strong&gt;. The &lt;strong&gt;real Google Gemma inference&lt;/strong&gt; returned a validated &lt;code&gt;UNVERIFIABLE&lt;/code&gt; card with no supplied evidence. &lt;a href="https://github.com/KyPython/claim-checker-local/blob/main/docs/LIVE_GEMMA_RECEIPT_2026-10-23.md" rel="noopener noreferrer"&gt;Receipt and exact outcome&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;These tests cover &lt;strong&gt;software contracts and safety behavior&lt;/strong&gt;, not measured factual accuracy. Our six candidate source excerpts are &lt;strong&gt;not marked human-reviewed&lt;/strong&gt;, and we have &lt;strong&gt;not&lt;/strong&gt; completed the proposed eight-case live factual golden evaluation. A &lt;code&gt;verified_by_human&lt;/code&gt; value in a local file is only an assertion, not proof of source authenticity or entailment.&lt;/p&gt;

&lt;p&gt;There were real provider obstacles: OpenRouter's free route returned HTTP 429, then the native Google route returned an HTTP 400 and a response the first parser couldn't use. The Google adapter was corrected to accept multiple &lt;em&gt;final&lt;/em&gt; text parts while ignoring thinking parts and rejecting incomplete generations. The subsequent independently run Mac tests and a valid live Gemma card are the evidence that this narrower implementation worked.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Provider cost:&lt;/strong&gt; TODO — verify the actual observed request in the relevant Google AI Studio project. Google's price listing is not an individual billing receipt. No claim of $0 actual spend is made yet.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Attribution:&lt;/strong&gt; The initial Python implementation was authored by &lt;strong&gt;Claude Opus 4.6 (Thinking) via Antigravity&lt;/strong&gt;, and ChatGPT authored/updated specification, safeguards and subsequent revisions. The user established and reviewed the project concept and executed the cited Mac verification commands. These are distinct from unaided software-writing evidence. The verdict-card format and first-class &lt;code&gt;UNVERIFIABLE&lt;/code&gt; decision were adapted from an earlier &lt;strong&gt;private&lt;/strong&gt; Claim Checker concept begun October 17, 2026. This Week 3 project is a new, separate implementation begun during the October 19–25 challenge window.&lt;/p&gt;

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

&lt;p&gt;A portable interface to an &lt;strong&gt;open-weight model&lt;/strong&gt; lets the project use actual Gemma behavior without binding its claim-validation rules to a proprietary assistant. Hosted inference was an engineering tradeoff for a modest laptop: less local resource cost, but a real dependency on network access, free-tier capacity, provider privacy terms, and correct API response handling.&lt;/p&gt;

&lt;p&gt;That is why the uncertain outcome is designed as a first-class result rather than hidden. An AI assessment can help triage &lt;em&gt;what to check&lt;/em&gt; while leaving the final claim of truth to reviewed sources.&lt;/p&gt;

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

&lt;p&gt;The intended time saving is &lt;strong&gt;starting with a structured claim-triage card&lt;/strong&gt;, including a suggestion for what primary evidence is needed. I have &lt;strong&gt;not measured&lt;/strong&gt; minutes saved or a validated accuracy lift, so there is no invented benchmark here. A future study could compare how long it takes to identify the right follow-up source with and without this tool.&lt;/p&gt;

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

&lt;p&gt;&lt;strong&gt;Best Use of Gemma&lt;/strong&gt;: The challenge explicitly permits Gemma served through Google Cloud or another provider. A genuine &lt;code&gt;gemma-4-26b-a4b-it&lt;/code&gt; runtime response was observed on October 23. Entry/category eligibility still depends on a valid submitted article and the organizer's decisions.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Final publication gate:&lt;/strong&gt; Sign into DEV, verify Week 3 still accepts entries, review the exact draft under your account, publish once with &lt;code&gt;devchallenge&lt;/code&gt; and &lt;code&gt;hf26challenge&lt;/code&gt;, and record the resulting public DEV URL. Provider cost remains unverified; do not assert $0 account cost.&lt;/p&gt;

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