<?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: Swetabh Tripathy</title>
    <description>The latest articles on DEV Community by Swetabh Tripathy (@tripathyswetabh).</description>
    <link>https://dev.to/tripathyswetabh</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2F99mvlsfu5tfj9m7ku25d.png</url>
      <title>DEV Community: Swetabh Tripathy</title>
      <link>https://dev.to/tripathyswetabh</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/tripathyswetabh"/>
    <language>en</language>
    <item>
      <title>Kyūmei: Why I Taught a Local Gemma Model to Refuse to Guess on Hardware Faults</title>
      <dc:creator>Swetabh Tripathy</dc:creator>
      <pubDate>Sun, 04 Oct 2026 22:14:51 +0000</pubDate>
      <link>https://dev.to/tripathyswetabh/kyumei-why-i-taught-a-local-gemma-model-to-refuse-to-guess-on-hardware-faults-5ffa</link>
      <guid>https://dev.to/tripathyswetabh/kyumei-why-i-taught-a-local-gemma-model-to-refuse-to-guess-on-hardware-faults-5ffa</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/hacktoberfest-weekend-2026-10-01"&gt;Hacktoberfest Weekend Challenge: Build for a Friend&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Kyūmei: A Local Gemma 4 Agent That Cites Evidence Before Naming a Cause
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;What:&lt;/strong&gt; Kyūmei turns a messy hardware complaint, or a HWiNFO64 sensor log, into numbered evidence, hypotheses that must cite that evidence, and troubleshooting steps ordered from safest to most invasive. It runs Gemma 4 E2B (or Gemma 2 9B) locally through Ollama.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The trick:&lt;/strong&gt; Gemma reasons. Plain code validates the JSON schema, drops causes that cite evidence that doesn't exist, and forces a hard "stop and get it repaired" answer for battery swelling and burning-smell cases.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;It can say no:&lt;/strong&gt; If there are fewer than two verifiable clues, it returns &lt;code&gt;needs_more_info&lt;/code&gt; and provides 1-click follow-up questions instead of guessing.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Results:&lt;/strong&gt; 4/4 unit tests on the guardrails pass. On 8 benchmark test scenarios, 7 passed schema validation on the first try and 1 recovered cleanly via the automatic 1-turn retry loop.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;For:&lt;/strong&gt; &lt;strong&gt;Rohit&lt;/strong&gt;, whose 3-year-old gaming laptop was screaming at idle and dying mid-game.&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  The 2 a.m. problem
&lt;/h2&gt;

&lt;p&gt;My friend Rohit had an Asus TUF gaming laptop that was acting up during our Hacktoberfest hackathon prep:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;"Bro, the bottom feels like a hot frying pan even when I'm just looking at VS Code, the fans sound like a jet taking off at idle, and after 20 minutes it just shuts off with zero warning."&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;He'd already spent an evening googling. He got the usual soup of generic forum advice: update your BIOS, reinstall Windows, update graphics drivers, run an antivirus scan, or the dreaded &lt;em&gt;"your motherboard VRM is dead, buy a new laptop."&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Nobody was completely wrong. Nobody was &lt;em&gt;useful&lt;/em&gt; either. A laundry list of everything that can possibly go wrong isn't a diagnosis. A diagnosis says: &lt;strong&gt;here is what you told me, here is the exact evidence that points to this specific cause, and here is the cheapest, non-invasive check that would prove me wrong.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;So I built that, and named it &lt;strong&gt;Kyūmei (究明)&lt;/strong&gt; — Japanese for &lt;em&gt;"to investigate the truth / thorough examination."&lt;/em&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  What it does
&lt;/h2&gt;

&lt;p&gt;You describe the problem the way a real human would:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Laptop gets very hot on the bottom and fan is loud while idle, shutting down abruptly after 20 minutes of light use.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Kyūmei processes the input and returns a structured, citation-backed diagnostic report:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Evidence&lt;/strong&gt;: Atomic facts extracted from your symptom, each with an identifier (&lt;code&gt;E1&lt;/code&gt;, &lt;code&gt;E2&lt;/code&gt;, &lt;code&gt;E3&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Candidate Causes&lt;/strong&gt;: Hypotheses where every single cause &lt;strong&gt;must&lt;/strong&gt; cite at least one valid evidence ID.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Verification&lt;/strong&gt;: A concrete physical or sensor check to validate or disprove each cause.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Ordered Remediation&lt;/strong&gt;: Non-invasive checks first (software/airflow), internal disassembly last.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;A refusal to guess&lt;/strong&gt;: If you provide vague inputs like &lt;em&gt;"my laptop died"&lt;/em&gt;, it returns &lt;code&gt;needs_more_info&lt;/code&gt; with interactive follow-up questions.&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  A Real Diagnostic Run
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;INPUT: "Laptop gets very hot on the bottom and fan is loud while idle, shutting down abruptly after 20 minutes of light use."

[E1] "Laptop gets very hot on the bottom"
[E2] "fan is loud while idle"
[E3] "shutting down abruptly after 20 minutes"

[C1] Heatsink exhaust fins clogged with compacted dust or lint blanket.
     Evidence: [E1], [E2]  |  Confidence: HIGH
     Verification: Inspect exhaust vents with a flashlight to verify lint blockage.

[C2] Degraded or dried thermal interface compound (TIM) on CPU/GPU die.
     Evidence: [E1], [E2], [E3]  |  Confidence: HIGH
     Verification: Log HWiNFO64 sensor data; check if delta temp jumps to 95°C+ within 3s.

TROUBLESHOOTING PLAN:
  1. (Low Risk)   Ensure operation on a hard, flat surface to rule out vent smothering.
  2. (Low Risk)   Blow short bursts of compressed air into exhaust vents while powered down.
  3. (Safe)       Inspect Task Manager for rogue background compute / crypto-miners.

STATUS: OK
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;It also reads raw telemetry: export a &lt;strong&gt;HWiNFO64 sensor log&lt;/strong&gt; (&lt;code&gt;.csv&lt;/code&gt; or &lt;code&gt;.txt&lt;/code&gt;), drop it in, and Kyūmei automatically extracts CPU package temps, PROCHOT throttling flags, GPU hot spot temps, fan RPMs, NVMe drive wear, and battery degradation before piping them into the reasoning pipeline. The UI features four dedicated tabs: &lt;strong&gt;Hardware Fault Diagnostics&lt;/strong&gt;, &lt;strong&gt;Telemetry Log Analyzer&lt;/strong&gt;, &lt;strong&gt;Game &amp;amp; AI Feasibility Estimator&lt;/strong&gt;, and &lt;strong&gt;Rogue Process / Miner Triage&lt;/strong&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  The idea: the model reasons, the code checks
&lt;/h2&gt;

&lt;p&gt;I didn't want "user asks, LLM hallucinates, ship it." Small local models can sound confident while being subtly or dangerously wrong. In hardware diagnostics, that could mean telling someone to puncture a swollen lithium-ion pouch or replace a working motherboard.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;User Symptom / HWiNFO64 Log
            │
            ▼
      FastAPI / CLI
            │
            ▼
  Gemma 4 E2B via Ollama  (guided by Agent Skill &amp;amp; JSON Schema)
            │
            ▼
       Raw JSON ───► JSON Schema Draft 2020-12 ──[Invalid]──► 1 Auto-Retry Loop
            │                                                       │
         [Valid] ◄──────────────────────────────────────────────────┘
            │
            ▼
    Deterministic Guardrails Engine
       ├── Grounding Filter: Drop causes citing phantom evidence IDs
       ├── Battery / Thermal Safety Clamp: Force technician escalation
       └── Remediation Ordering: Safe software checks first, teardown last
            │
            ▼
    Sanitized Diagnostic Report + Interactive Cross-Highlight UI
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Gemma does what language models are best at: parsing messy, human language and identifying semantic relationships. Deterministic Python code does what code is best at: &lt;strong&gt;enforcing non-negotiable rules&lt;/strong&gt;.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Evidence Grounding Invariant:&lt;/strong&gt; If Gemma suggests a cause backed by &lt;code&gt;E4&lt;/code&gt; and &lt;code&gt;E4&lt;/code&gt; was never extracted in the evidence array, the guardrail immediately drops that cause from the output.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Physical Safety Clamp:&lt;/strong&gt; If the symptom mentions battery swelling, a bulging trackpad, popping chassis seams, smoke, or a burning smell, the engine overrides the response status to &lt;code&gt;safety_alert&lt;/code&gt;, sets a high-contrast hazard warning, and locks the plan to &lt;strong&gt;STOP USE IMMEDIATELY &amp;amp; REFER TO A CERTIFIED TECHNICIAN&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Ambiguity Triage:&lt;/strong&gt; When someone gives a two-word complaint like &lt;em&gt;"laptop dead"&lt;/em&gt;, the model doesn't guess. The guardrail sets &lt;code&gt;status: "needs_more_info"&lt;/code&gt; and generates targeted, clickable questions (e.g. &lt;em&gt;"Do any charging LEDs light up when plugged in?"&lt;/em&gt;).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The diagnostic instructions live in a standardized &lt;strong&gt;Agent Skill&lt;/strong&gt; (&lt;code&gt;skill/SKILL.md&lt;/code&gt;) and formal schema (&lt;code&gt;skill/schema.json&lt;/code&gt;), making the skill portable to any agentic runtime.&lt;/p&gt;




&lt;h2&gt;
  
  
  Where the small model broke
&lt;/h2&gt;

&lt;p&gt;During testing with Gemma 4 E2B and Gemma 2 9B on consumer hardware, we encountered three real failure modes:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Citation Hallucinations:&lt;/strong&gt; On longer symptoms, the model would invent plausible causes citing non-existent IDs like &lt;code&gt;["E4", "E99"]&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Schema Inconsistencies:&lt;/strong&gt; The small model occasionally emitted &lt;code&gt;evidence_ids&lt;/code&gt; as a single string instead of a JSON array of strings (&lt;code&gt;"E1"&lt;/code&gt; instead of &lt;code&gt;["E1"]&lt;/code&gt;), or wrapped the payload in conversational markdown commentary.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Premature Certainty on Vague Prompts:&lt;/strong&gt; When given &lt;em&gt;"my screen went black"&lt;/em&gt;, the raw model would sometimes jump straight to &lt;em&gt;"replace the display panel"&lt;/em&gt; instead of asking whether an external monitor works.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Every failure mode became an explicit deterministic check in &lt;code&gt;app/guardrails.py&lt;/code&gt; and &lt;code&gt;app/validator.py&lt;/code&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Test Suite &amp;amp; Benchmark Metrics
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Check&lt;/th&gt;
&lt;th&gt;Result&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Guardrail Unit Tests (Schema, missing fields, ungrounded cause pruning, battery safety clamp)&lt;/td&gt;
&lt;td&gt;
&lt;strong&gt;4 / 4 PASS&lt;/strong&gt; (0.42s)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Benchmark Scenarios with Schema-Valid Output on 1st Try&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;7 / 8&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Scenarios Recovered via 1-Turn Auto-Retry Loop&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;1 / 8&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Causes Dropped for Citing Phantom / Missing Evidence&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;3 instances caught &amp;amp; pruned&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Ambiguous Inputs Correctly Triaged to &lt;code&gt;needs_more_info&lt;/code&gt;
&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;100% (Scenario 04 &amp;amp; vague edge tests)&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Hazardous / Swollen Battery Symptoms Clamped to Safety Alert&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;100% (Scenario 03 &amp;amp; thermal runaways)&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;em&gt;Run &lt;code&gt;python -m pytest tests/&lt;/code&gt; and &lt;code&gt;python tests/run_examples.py&lt;/code&gt; to reproduce.&lt;/em&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;An honest caveat:&lt;/strong&gt; Grounding proves that every candidate cause has a verified paper trail in the evidence. It does not prove the model picked the &lt;em&gt;ultimate&lt;/em&gt; root cause. That is why every single hypothesis includes a tangible verification step.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  What Rohit said
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;"The fact that it highlighted the exact words from my rambling complaint and connected them to the clogged heatsink made so much sense. We blew out the exhaust with compressed air, and the idle temps dropped from 89°C to 48°C. Best part: it didn't tell me to reinstall Windows."&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  Why open, and why local
&lt;/h2&gt;

&lt;p&gt;Hardware diagnostics often involve sensitive telemetry: serial numbers, background processes, user directories, and crash dumps. You shouldn't have to upload your device logs to a closed cloud API.&lt;/p&gt;

&lt;p&gt;Because Gemma is open-weight and runs locally through &lt;strong&gt;Ollama&lt;/strong&gt;, the entire reasoning pipeline operates &lt;strong&gt;100% offline with zero data leakage&lt;/strong&gt;. We tested this on an &lt;strong&gt;NVIDIA GeForce RTX 3050 Laptop GPU (6 GB VRAM)&lt;/strong&gt; running on Windows 11 with Python 3.14 — completely offline with Wi-Fi disabled.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;A note on the hosted showcase:&lt;/strong&gt; For users without local Ollama setups, the repository includes an optional cloud hybrid mode powered by OpenRouter (&lt;code&gt;google/gemma-2-9b-it&lt;/code&gt;). The live demo on Embarko uses this hybrid mode so anyone can test it directly from their browser, but local mode remains the first-class privacy standard.&lt;/p&gt;




&lt;h2&gt;
  
  
  How I built it, and how I used AI
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Backend:&lt;/strong&gt; Python 3.10+, FastAPI, Uvicorn, Pydantic v2, &lt;code&gt;jsonschema&lt;/code&gt; (Draft 2020-12).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Inference:&lt;/strong&gt; Ollama (&lt;code&gt;gemma4:e2b&lt;/code&gt;, &lt;code&gt;gemma2:9b&lt;/code&gt;, &lt;code&gt;llama3.1:8b&lt;/code&gt;) with optional OpenRouter cloud fallback.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Frontend:&lt;/strong&gt; Vanilla modern HTML5, CSS3 with glassmorphism and bidirectional hover cross-highlighting, and reactive ES6 JavaScript.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;AI Tooling Disclosure:&lt;/strong&gt; Built using &lt;strong&gt;Google Antigravity IDE (Gemini)&lt;/strong&gt; as an AI pair programmer for scaffolding boilerplate, CSS polish, and documentation structuring. The core diagnostic reasoning axioms, Agent Skill specification, schema invariants, deterministic guardrails, HWiNFO64 parser, and test suite were designed and implemented by the human author. A full file-by-file audit is published in &lt;code&gt;AI_DISCLOSURE.md&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Limitations
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Kyūmei is a triage and diagnostic assistant, not a replacement for a certified repair technician.&lt;/li&gt;
&lt;li&gt;Physical safety cases (swollen batteries, electrical burning) strictly halt automated troubleshooting.&lt;/li&gt;
&lt;li&gt;Telemetry parsing currently targets HWiNFO64 &lt;code&gt;.txt&lt;/code&gt; and &lt;code&gt;.csv&lt;/code&gt; logs; screenshot OCR is planned for a future release.&lt;/li&gt;
&lt;li&gt;Evaluated on an 8-scenario benchmark suite on consumer RTX 3050 6GB hardware.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  What's next
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Persistent Local Case History:&lt;/strong&gt; Storing past diagnostic sessions locally so follow-up sensor logs track whether a repair actually fixed the thermal delta.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Screenshot / Thermal Camera OCR:&lt;/strong&gt; Ingesting mobile photos of BIOS screens, BSOD error codes, and FLIR thermal camera captures.&lt;/li&gt;
&lt;/ol&gt;




&lt;h2&gt;
  
  
  Try it
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Local Setup (100% Offline with Ollama)
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git clone https://github.com/Tswetabh/Agent-Kyumei.git
&lt;span class="nb"&gt;cd &lt;/span&gt;Agent-Kyumei/kyumei
python &lt;span class="nt"&gt;-m&lt;/span&gt; venv .venv
.venv&lt;span class="se"&gt;\S&lt;/span&gt;cripts&lt;span class="se"&gt;\a&lt;/span&gt;ctivate      &lt;span class="c"&gt;# On Linux/macOS: source .venv/bin/activate&lt;/span&gt;
pip &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;-r&lt;/span&gt; requirements.txt
ollama pull gemma4:e2b
python &lt;span class="nt"&gt;-m&lt;/span&gt; uvicorn app.main:app &lt;span class="nt"&gt;--host&lt;/span&gt; 127.0.0.1 &lt;span class="nt"&gt;--port&lt;/span&gt; 8000
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Source Code:&lt;/strong&gt; &lt;a href="https://github.com/Tswetabh/Agent-Kyumei" rel="noopener noreferrer"&gt;github.com/Tswetabh/Agent-Kyumei&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Live Demo (Embarko):&lt;/strong&gt; &lt;a href="https://agent-kyumei.embarko.app" rel="noopener noreferrer"&gt;agent-kyumei.embarko.app&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Showcase Listing:&lt;/strong&gt; &lt;a href="https://embarko.ai/showcase/app/agent-kyumei" rel="noopener noreferrer"&gt;embarko.ai/showcase/app/agent-kyumei&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Cloud Mirror:&lt;/strong&gt; &lt;a href="https://agentkyumei.vercel.app" rel="noopener noreferrer"&gt;agentkyumei.vercel.app&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&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; Gemma 4 E2B runs locally via Ollama to handle messy diagnostic natural-language reasoning, while strict deterministic Python code enforces JSON schema validation, evidence-grounding invariants, and physical safety clamping.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;Built during Hacktoberfest Hack Day Indore (PyData Indore × MLH).&lt;/em&gt;&lt;/p&gt;

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