<?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: Caleb Jeon</title>
    <description>The latest articles on DEV Community by Caleb Jeon (@camof1ow).</description>
    <link>https://dev.to/camof1ow</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.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3777035%2F62732985-c6b6-43c2-bd01-f0838bd8593f.jpeg</url>
      <title>DEV Community: Caleb Jeon</title>
      <link>https://dev.to/camof1ow</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/camof1ow"/>
    <language>en</language>
    <item>
      <title>I Built a Pre-commit Security Scanner with Claude Code</title>
      <dc:creator>Caleb Jeon</dc:creator>
      <pubDate>Tue, 17 Feb 2026 07:14:17 +0000</pubDate>
      <link>https://dev.to/camof1ow/i-built-a-pre-commit-security-scanner-with-claude-code-2lk</link>
      <guid>https://dev.to/camof1ow/i-built-a-pre-commit-security-scanner-with-claude-code-2lk</guid>
      <description>&lt;p&gt;Hey DEV community! 👋&lt;/p&gt;

&lt;p&gt;I recently built &lt;strong&gt;vibe-guardian&lt;/strong&gt;, a Claude Code skill that scans your code for security vulnerabilities &lt;strong&gt;before you commit&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Problem
&lt;/h2&gt;

&lt;p&gt;Most security scanners check your code &lt;strong&gt;after&lt;/strong&gt; you've already pushed to GitHub. But here's the issue - even if you fix the vulnerability later, the original vulnerable code stays in your Git history forever. Anyone with repo access can see it.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Solution: Scan Before Commit
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Traditional Flow (Risky):
Code → Commit → Push → [SCAN] → Fix
                      ↑
               Already too late. Vulnerability in Git history.

Vibe-Guardian Flow (Safe):
Code → [SCAN] → Fix → Commit → Push
        ↑
   Catch it here. Git history stays clean.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  What is vibe-guardian?
&lt;/h2&gt;

&lt;p&gt;A Claude Code skill that automatically scans AI-generated code for security vulnerabilities and quality issues. Essential for the Vibe Coding era.&lt;/p&gt;

&lt;h3&gt;
  
  
  🔴 Critical Issues Detected
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;SQL Injection, NoSQL Injection, Command Injection&lt;/li&gt;
&lt;li&gt;XSS (Reflected, Stored, DOM-based)&lt;/li&gt;
&lt;li&gt;Hardcoded Secrets (API Keys, Passwords, JWT Secrets)&lt;/li&gt;
&lt;li&gt;Authentication/Authorization Bypass&lt;/li&gt;
&lt;li&gt;Path Traversal&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  🟡 Warning Level Issues
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Missing Input Validation&lt;/li&gt;
&lt;li&gt;Poor Error Handling (empty catch, exposed errors)&lt;/li&gt;
&lt;li&gt;Sensitive Logging (PII in logs)&lt;/li&gt;
&lt;li&gt;CORS Misconfiguration&lt;/li&gt;
&lt;li&gt;Performance Issues (N+1 queries, memory leaks)&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Installation
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Clone the repository&lt;/span&gt;
git clone https://github.com/Camof1ow/vibe-guardian.git

&lt;span class="c"&gt;# Copy to Claude Code skills folder&lt;/span&gt;
&lt;span class="nb"&gt;cp&lt;/span&gt; &lt;span class="nt"&gt;-r&lt;/span&gt; vibe-guardian ~/.claude/skills/
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Usage
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;/vibe-guardian              &lt;span class="c"&gt;# Scan current file&lt;/span&gt;
/vibe-guardian &lt;span class="nt"&gt;--full&lt;/span&gt;       &lt;span class="c"&gt;# Scan entire project&lt;/span&gt;
/vibe-guardian &lt;span class="nt"&gt;--fix&lt;/span&gt;        &lt;span class="c"&gt;# Get fix suggestions&lt;/span&gt;
/vibe-guardian path/to/file &lt;span class="c"&gt;# Scan specific file&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Sample Report
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;╔═══════════════════════════════════════════════════════════════╗
║              🛡️ Vibe-Guardian Security Report                 ║
╠═══════════════════════════════════════════════════════════════╣
║ Files Scanned: 12     Lines: 1,847     Duration: 2.3s        ║
╠═══════════════════════════════════════════════════════════════╣
║ 🔴 Critical: 3  │  🟡 Warning: 7  │  🟢 Info: 12             ║
╠═══════════════════════════════════════════════════════════════╣
║ 📊 Security Score: 72/100                                     ║
╚═══════════════════════════════════════════════════════════════╝
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



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

&lt;p&gt;I built this entirely using &lt;strong&gt;Claude Code&lt;/strong&gt; - Anthropic's CLI tool for coding. The entire development process was a collaboration with Claude.&lt;/p&gt;

&lt;h2&gt;
  
  
  Features
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;✅ Runs locally (no internet required, your code stays private)&lt;/li&gt;
&lt;li&gt;✅ Supports JavaScript, TypeScript, Python, Java, Go&lt;/li&gt;
&lt;li&gt;✅ 100% Free &amp;amp; Open Source (MIT License)&lt;/li&gt;
&lt;li&gt;✅ Detailed reports with fix suggestions&lt;/li&gt;
&lt;li&gt;✅ Edge case generation&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Links
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;GitHub&lt;/strong&gt;: &lt;a href="https://github.com/Camof1ow/vibe-guardian" rel="noopener noreferrer"&gt;https://github.com/Camof1ow/vibe-guardian&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Gumroad&lt;/strong&gt;: &lt;a href="https://astkster.gumroad.com/l/vibe-guardian" rel="noopener noreferrer"&gt;https://astkster.gumroad.com/l/vibe-guardian&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Buy Me a Coffee&lt;/strong&gt;: &lt;a href="https://buymeacoffee.com/camof1ow" rel="noopener noreferrer"&gt;https://buymeacoffee.com/camof1ow&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Feedback Welcome!
&lt;/h2&gt;

&lt;p&gt;This is my first open source security tool, so I'd love to hear your feedback. Feel free to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;⭐ Star the repo if you find it useful&lt;/li&gt;
&lt;li&gt;🐛 Report any issues&lt;/li&gt;
&lt;li&gt;💡 Suggest new features&lt;/li&gt;
&lt;li&gt;🤝 Contribute!&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Thanks for reading! Let me know what you think in the comments.&lt;/p&gt;

</description>
      <category>showdev</category>
      <category>security</category>
      <category>opensource</category>
      <category>python</category>
    </item>
  </channel>
</rss>
