<?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: Himanshu Handa</title>
    <description>The latest articles on DEV Community by Himanshu Handa (@himanshu_handa).</description>
    <link>https://dev.to/himanshu_handa</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%2F4194492%2F2c718523-8568-4356-b67d-8d534c2384f2.jpg</url>
      <title>DEV Community: Himanshu Handa</title>
      <link>https://dev.to/himanshu_handa</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/himanshu_handa"/>
    <language>en</language>
    <item>
      <title>Bug Report Quality Checker</title>
      <dc:creator>Himanshu Handa</dc:creator>
      <pubDate>Wed, 28 Oct 2026 18:17:44 +0000</pubDate>
      <link>https://dev.to/himanshu_handa/bug-report-quality-checker-1oeo</link>
      <guid>https://dev.to/himanshu_handa/bug-report-quality-checker-1oeo</guid>
      <description>&lt;p&gt;An Agent Skill and Python script that checks a GitHub bug report for missing information and drafts a polite follow-up comment asking only for what's missing. It can optionally use a local Gemma 4 model (via Ollama) to write the comment, and can post it to GitHub after you confirm.&lt;/p&gt;

&lt;p&gt;Built at the Hacktoberfest Hack Day (Pune x Google Developer Group on Campus, Vishwakarma University).&lt;/p&gt;

&lt;p&gt;The problem&lt;/p&gt;

&lt;p&gt;Maintainers get reports like "it doesn't work" with no steps, version, or logs. Triage turns into back-and-forth, and issues go stale because reporters don't know what to include.&lt;/p&gt;

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

&lt;ol&gt;
&lt;li&gt;Takes a GitHub issue URL or a local text file&lt;/li&gt;
&lt;li&gt;Scores the report against an 8-item checklist&lt;/li&gt;
&lt;li&gt;Lists what is present and what is missing&lt;/li&gt;
&lt;li&gt;Suggests a label: &lt;code&gt;needs-info&lt;/code&gt; or &lt;code&gt;ready-to-triage&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Drafts a comment asking only for the missing items (template, or written by Gemma with &lt;code&gt;--llm&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;Optionally posts that comment with &lt;code&gt;--post&lt;/code&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The checklist&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Item&lt;/th&gt;
&lt;th&gt;Detected by (keywords, case-insensitive)&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Clear title&lt;/td&gt;
&lt;td&gt;First line has more than 3 words and isn't a generic title like "bug" or "help"&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Steps to reproduce&lt;/td&gt;
&lt;td&gt;"steps to reproduce", "repro steps", "how to reproduce", "steps:"&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Expected behavior&lt;/td&gt;
&lt;td&gt;"expected behavior", "expected", "what should happen"&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Actual behavior&lt;/td&gt;
&lt;td&gt;"actual behavior", "current behavior", "what happened", "actual"&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Environment/version&lt;/td&gt;
&lt;td&gt;"environment", "os", "version", Windows / Mac / Linux / Ubuntu&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Logs/stack trace&lt;/td&gt;
&lt;td&gt;"logs", "stack trace", "traceback", "error message", "exception"&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Code block&lt;/td&gt;
&lt;td&gt;a code fence, "minimal reproducible example", CodePen, JSFiddle&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Regression info&lt;/td&gt;
&lt;td&gt;"regression", "worked in", "used to work", "previous version"&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;The checks are plain regular expressions, so the default mode needs no AI model.&lt;/p&gt;

&lt;p&gt;Example&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;$ python scripts/check_issue.py samples/bad_issue.txt

Score: 2/8
Present:  Clear title, Environment/version
Missing:  Steps to reproduce, Expected behavior, Actual behavior, Logs/stack trace, Code block, Regression info
Suggested label: needs-info

--- Drafted Comment ---
Thanks for reporting this! To help us reproduce and fix it, could you share:
 1. The exact steps you took
 2. What you expected to happen
 3. What actually happened
 4. Any error messages, logs, or stack traces
 5. A minimal reproducible example
 6. Whether this worked in a previous version
Once we have these, we can look into it.
-----------------------
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Installation&lt;/p&gt;

&lt;p&gt;Requires Python 3.8+.&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/Himanshu-0FFicial/bug-report-checker-GDG-.git
&lt;span class="nb"&gt;cd &lt;/span&gt;bug-report-checker-GDG-
pip &lt;span class="nb"&gt;install &lt;/span&gt;requests
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Optional extras:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Gemma drafting:&lt;/strong&gt; install &lt;a href="https://ollama.com" rel="noopener noreferrer"&gt;Ollama&lt;/a&gt;, then run &lt;code&gt;ollama pull gemma4:e4b&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Posting comments:&lt;/strong&gt; the &lt;a href="https://cli.github.com" rel="noopener noreferrer"&gt;GitHub CLI&lt;/a&gt; (&lt;code&gt;gh auth login&lt;/code&gt;), or a &lt;code&gt;GITHUB_TOKEN&lt;/code&gt; environment variable&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Usage&lt;/p&gt;

&lt;p&gt;Run these from the repository root.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Check a local text file&lt;/span&gt;
python scripts/check_issue.py samples/bad_issue.txt

&lt;span class="c"&gt;# Check a public GitHub issue&lt;/span&gt;
python scripts/check_issue.py https://github.com/OWNER/REPO/issues/123

&lt;span class="c"&gt;# Let local Gemma write the comment&lt;/span&gt;
python scripts/check_issue.py https://github.com/OWNER/REPO/issues/123 &lt;span class="nt"&gt;--llm&lt;/span&gt;

&lt;span class="c"&gt;# Post the drafted comment to the issue&lt;/span&gt;
python scripts/check_issue.py https://github.com/OWNER/REPO/issues/123 &lt;span class="nt"&gt;--post&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Flag&lt;/th&gt;
&lt;th&gt;What it does&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;--llm&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Draft the comment with Gemma through Ollama instead of the fixed template&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;--post&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Post the drafted comment to the GitHub issue (URL input only)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Gemma mode details&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Calls the local Ollama API at &lt;code&gt;http://localhost:11434&lt;/code&gt; with the model &lt;code&gt;gemma4:e4b&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Only the comment is written by the model. The checklist score always comes from the rules&lt;/li&gt;
&lt;li&gt;If Ollama isn't running or returns an error, the script falls back to the template comment&lt;/li&gt;
&lt;li&gt;The issue text stays on your machine&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Posting details&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;--post&lt;/code&gt; tries the &lt;code&gt;gh&lt;/code&gt; CLI first, then falls back to the GitHub REST API using &lt;code&gt;GITHUB_TOKEN&lt;/code&gt; or &lt;code&gt;GH_TOKEN&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The script posts immediately when &lt;code&gt;--post&lt;/code&gt; is passed.&lt;/strong&gt; It does not ask for confirmation itself. Confirmation happens in the Agent Skill workflow below&lt;/li&gt;
&lt;li&gt;Posting needs write access to the repository's issues&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Using it as an Agent Skill&lt;/p&gt;

&lt;p&gt;&lt;code&gt;SKILL.md&lt;/code&gt; teaches a compatible AI agent a two-phase workflow:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Check and draft (no posting).&lt;/strong&gt; The agent runs the script without &lt;code&gt;--post&lt;/code&gt; (with &lt;code&gt;--llm&lt;/code&gt; if you ask for Gemma), shows the score, present and missing items, label, and drafted comment, then asks: "Would you like me to post this comment to GitHub?"&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Post only on explicit yes.&lt;/strong&gt; If you confirm, the agent runs the script again with &lt;code&gt;--post&lt;/code&gt; and reports the result.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Heads up: with &lt;code&gt;--llm&lt;/code&gt;, phase 2 runs the script again, and the model may word the comment differently from the version you approved. For exact control, use the template mode when posting.&lt;/p&gt;

&lt;p&gt;Project structure&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;.
├── SKILL.md                 # Agent Skill instructions (two-phase workflow)
├── README.md
├── requirements.txt
├── scripts/
│   └── check_issue.py       # fetch, check, draft, optionally post
└── samples/
    └── bad_issue.txt        # example of an incomplete report
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Limitations&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Keyword matching can be wrong in both directions. A short keyword like "os" can match inside ordinary words (so "Environment/version" may be marked present by mistake), and unusual wording can be missed&lt;/li&gt;
&lt;li&gt;A keyword doesn't prove the information is there. "Version:" with no value still counts&lt;/li&gt;
&lt;li&gt;Only issue URLs (&lt;code&gt;.../issues/&amp;lt;number&amp;gt;&lt;/code&gt;) are supported, not pull requests&lt;/li&gt;
&lt;li&gt;Fetching is unauthenticated, so GitHub's rate limit (about 60 requests per hour) applies, and private repositories don't work&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;--llm&lt;/code&gt; has no timeout, so a slow model load can make it appear stuck&lt;/li&gt;
&lt;li&gt;English-language reports only&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Future work&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Word-boundary regexes and content-aware checks&lt;/li&gt;
&lt;li&gt;Gemma double-checking the checklist, not just writing the comment&lt;/li&gt;
&lt;li&gt;A &lt;code&gt;--model&lt;/code&gt; flag and a hosted-API backend&lt;/li&gt;
&lt;li&gt;Confirmation prompt built into &lt;code&gt;--post&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Batch mode for all open issues in a repo&lt;/li&gt;
&lt;li&gt;A GitHub Action that runs when an issue is opened&lt;/li&gt;
&lt;li&gt;More sample issues and automated tests&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;License&lt;/p&gt;

</description>
      <category>hf26challenge</category>
    </item>
    <item>
      <title>Glassmorphism Notes app</title>
      <dc:creator>Himanshu Handa</dc:creator>
      <pubDate>Tue, 27 Oct 2026 17:35:48 +0000</pubDate>
      <link>https://dev.to/himanshu_handa/glassmorphism-notes-app-5goj</link>
      <guid>https://dev.to/himanshu_handa/glassmorphism-notes-app-5goj</guid>
      <description>&lt;p&gt;It is a website based on glassmorphism &lt;a href="https://github.com/Himanshu-0FFicial/Notes-app-Glassmorphism.git" rel="noopener noreferrer"&gt;https://github.com/Himanshu-0FFicial/Notes-app-Glassmorphism.git&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Notes Website</title>
      <dc:creator>Himanshu Handa</dc:creator>
      <pubDate>Tue, 27 Oct 2026 05:59:45 +0000</pubDate>
      <link>https://dev.to/himanshu_handa/notes-website-31op</link>
      <guid>https://dev.to/himanshu_handa/notes-website-31op</guid>
      <description>&lt;p&gt;A Notes making Website made with Glassmorphism style.&lt;br&gt;
&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/Himanshu-0FFicial" rel="noopener noreferrer"&gt;
        Himanshu-0FFicial
      &lt;/a&gt; / &lt;a href="https://github.com/Himanshu-0FFicial/Notes-app-Glassmorphism" rel="noopener noreferrer"&gt;
        Notes-app-Glassmorphism
      &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;Glass Notes&lt;/h1&gt;
&lt;/div&gt;
&lt;p&gt;A small, responsive notes app with a glassmorphism interface. It uses plain HTML, CSS, and JavaScript—no build tools or package installation required.&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Open in VS Code&lt;/h2&gt;
&lt;/div&gt;
&lt;ol&gt;
&lt;li&gt;Extract this folder.&lt;/li&gt;
&lt;li&gt;In VS Code, choose &lt;strong&gt;File → Open Folder&lt;/strong&gt; and select &lt;code&gt;glass-notes-vscode&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;To preview it, open &lt;code&gt;index.html&lt;/code&gt; in a browser. For a more reliable local preview, install the &lt;strong&gt;Live Server&lt;/strong&gt; extension in VS Code, right-click &lt;code&gt;index.html&lt;/code&gt;, then choose &lt;strong&gt;Open with Live Server&lt;/strong&gt;.&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Features&lt;/h2&gt;
&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;Create, edit, pin, and delete notes.&lt;/li&gt;
&lt;li&gt;Organize notes into Ideas, Journal, Reading, Work, and Personal.&lt;/li&gt;
&lt;li&gt;Search note titles, contents, and categories.&lt;/li&gt;
&lt;li&gt;Filter by collection or pinned notes.&lt;/li&gt;
&lt;li&gt;Save notes in this browser with &lt;code&gt;localStorage&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Responsive layout and keyboard shortcuts: &lt;code&gt;Ctrl/Cmd + K&lt;/code&gt; to search and &lt;code&gt;Ctrl/Cmd + N&lt;/code&gt; to create a note.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Notes are stored in the browser where you use the app. They are not automatically uploaded to GitHub or shared between…&lt;/p&gt;&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/Himanshu-0FFicial/Notes-app-Glassmorphism" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;


</description>
    </item>
    <item>
      <title>Github repo searcher</title>
      <dc:creator>Himanshu Handa</dc:creator>
      <pubDate>Sun, 25 Oct 2026 17:00:52 +0000</pubDate>
      <link>https://dev.to/himanshu_handa/github-repo-searcher-2ma</link>
      <guid>https://dev.to/himanshu_handa/github-repo-searcher-2ma</guid>
      <description>&lt;p&gt;Finds the github repo for beginners&lt;br&gt;
&lt;a href="https://github.com/Himanshu-0FFicial/bug-report-checker" rel="noopener noreferrer"&gt;https://github.com/Himanshu-0FFicial/bug-report-checker&lt;/a&gt; &lt;/p&gt;

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