code-auditor
Skill17 starsChanged 7 months agoMITView on GitHub
Code quality auditor for VibeCoding-a-Website. Detects JavaScript errors, console warnings, API failures, HTML validation issues, CSS problems, and dependency vulnerabilities. Trigger on "JavaScript errors", "console errors", "code review", "fix my code", "optimize JavaScript", "site has bugs", "API not working", "form isn't submitting", "scripts not loading", "code quality", "technical debt", "refactor", "dependencies", "npm audit", "build errors", or "Vite config".
- Reads credentials
7 other projects use a version of this.
Adopted by
Most recently taken up by
- flopperj/dotfiles-coretheir own version, first seen Nov 4, 2026
- OpenxIntelligence/Coding-Agent-Skillstheir own version, first seen Nov 1, 2026
- I-Onlabs/claude-code-skillstheir own version, first seen Oct 25, 2026
- nek1987/auto-agent-harnesstheir own version, first seen Oct 11, 2026
- ak-ship/fullstack-agent-skillstheir own version, first seen Oct 8, 2026
- neeraj181-dot/ClaudeSkillstheir own version, first seen Aug 25, 2026
Other versions7 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 7
- I-Onlabs/claude-code-skills★ 4same name
- nek1987/auto-agent-harness★ 4same name
- OpenxIntelligence/Coding-Agent-Skills★ 4same name
- rm2thaddeus/Aitor_Skills★ 4same name
- flopperj/dotfiles-core★ 3same name
- ak-ship/fullstack-agent-skills★ 0same name
- neeraj181-dot/ClaudeSkills★ 0same name
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository20 other files it gives its agents.
- aios-presentation-standardSkill
- audit-existing-siteSkill
- brand-to-imagesSkill
- brand-voiceSkill
- content-auditorSkill
- copy-editorSkill
- deploy-to-vercelSkill
- form-wiringSkill
- Getting Started with VibeCodingSkill
- link-checkerSkill
- performance-optimizerSkill
- qa-testerSkill
- security-auditorSkill
- seo-aeo-auditorSkill
- site-customizerSkill
- site-generatorSkill
- site-interviewerSkill
- site-updaterSkill
- ux-reviewerSkill
- webmasterSkill
The file
Show its rules and text
We split this skill into the rules it gives an agent
17 rules. 0 are common, 17 are distinctive, and 0 are very specific to this project.
0
Common
Most of the 7 edited versions we read keep these.
17
Distinctive
This author's own choices. Worth a look.
0
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 34
Why it matters: If your contact form can't submit to Resend, or your analytics don't load, visitors won't know — they'll just see a broken …
- Distinctive: line 61
Why it matters: If your site breaks in Safari or older Chrome versions, you've lost those users.
- Distinctive: line 172
No JavaScript errors in the embed code
- Distinctive: line 173
No CORS blocking the embed
- Distinctive: line 181
Not blocked by browser privacy settings or ad blockers
- Distinctive: line 183
No script errors from the analytics library
- Distinctive: line 185
What we check: Do you actually know how many visitors you have and what they do?
- Distinctive: line 225
Why it matters: Every dependency adds to your bundle size and increases attack surface.
- Distinctive: line 244
API key expired?: Do users see a helpful "something went wrong" message, or a JavaScript error dump?
- Distinctive: line 267
Why it matters: If your form relies 100% on JavaScript, it's broken for JavaScript-disabled users.
- Distinctive: line 338
Why it matters: Search engines and screen readers see what's in the HTML.
- Distinctive: line 366
No circular dependencies (file A imports B imports A)
- Distinctive: line 384
When the code-auditor runs, you'll receive a structured report with:
- Distinctive: line 431
Test your site in a browser environment
- Distinctive: line 432
Run automated checks against your code
- Distinctive: line 433
Test API integrations with real calls
- Distinctive: line 434
Check dependencies for vulnerabilities
“Common” is measured: kept by at least 6 in 10 of the 7 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Code Auditor
The code-auditor skill ensures that the JavaScript, HTML, and CSS running your website is correct, robust, and follows best practices. While the performance-optimizer focuses on speed and file size, the code-auditor focuses on correctness: Does your code run without errors? Do your API integrations actually work? Is there proper error handling in place? Are your dependencies secure?
This skill is your "web programmer" — the person who makes sure everything runs without breaking.
JavaScript Audit
Console Error Detection
Scans your browser console for JavaScript errors with zero-error tolerance in production. Checks:
- Uncaught errors and exceptions
- Unhandled promise rejections (async operations that fail silently)
- TypeError, ReferenceError, SyntaxError messages
- Deprecation warnings that could break in future browser updates
- Security warnings (mixed content, unsafe operations)
Why it matters: Users see broken functionality and get frustrated. Search engines penalize sites with errors.
API Call Failures
Tests all fetch() and XMLHttpRequest calls:
- Failed requests (4xx, 5xx responses)
- Network timeout issues
- Malformed request headers or bodies
- CORS errors when calling external APIs
- Missing or invalid API keys blocking requests
Why it matters: If your contact form can't submit to Resend, or your analytics don't load, visitors won't know — they'll just see a broken site.
Memory Leaks & Event Listeners
Identifies JavaScript that keeps eating memory:
- Event listeners never removed (onclick handlers that stack up)
- Old data stored in variables but never cleaned up
- DOM nodes kept in memory after being removed from the page
- Timer intervals/timeouts that never clear
Why it matters: Your site gets slower and slower the longer users stay on it. On mobile, it can crash.
Dead Code & Unused Variables
Finds code that's not being used:
- Functions defined but never called
- Variables assigned but never read
- Imports that don't get used
- Conditional branches that will never execute
Why it matters: Dead code adds to file size and confuses future maintenance. It's clutter.
ES6+ Compatibility
Checks that your JavaScript works in your target browsers:
- Arrow functions, destructuring, spread operator — all modern syntax
- Compatibility with older browsers (if that's your audience)
- Polyfill requirements for unsupported features
- Async/await vs Promise support
Why it matters: If your site breaks in Safari or older Chrome versions, you've lost those users.
Strict Mode & Variable Scoping
Validates proper JavaScript rigor:
'use strict'enforcement- Global variable pollution
- Properly scoped
letandconst(notvar) - Undeclared variables (implicit globals)
Why it matters: Sloppy variable scoping causes hard-to-debug bugs and conflicts.
HTML Validation
W3C HTML5 Standards
Runs your HTML through validation against official standards:
- Proper DOCTYPE declaration
- Required meta tags (charset, viewport)
- Valid nesting of elements
- Deprecated HTML attributes (old code patterns)
- Duplicate IDs on the page
Why it matters: Invalid HTML can break in unexpected ways across browsers. Search engines prefer clean HTML.
Semantic Structure
Checks for proper use of meaningful HTML elements:
<header>,<nav>,<main>,<section>,<article>,<aside>,<footer>- Proper heading hierarchy (h1 → h2 → h3, not skipping levels)
<form>and<fieldset>for form structure<table>for actual tabular data (not layout)
Why it matters: Semantic HTML helps screen readers, search engines, and makes your code readable.
Meta Tag Completeness
Ensures all important metadata is present:
- Viewport meta tag (mobile responsiveness)
- Character encoding declaration
- Open Graph tags for social sharing
- Canonical URL to prevent duplicate content issues
Why it matters: Missing meta tags mean broken mobile experience and poor social sharing.
CSS Audit
Invalid & Unused Selectors
Identifies CSS that doesn't work:
- Selectors with typos that never match any element
- Vendor prefixes that are outdated or missing where needed
- CSS that overrides itself (conflicting rules)
- Unused class/ID selectors (dead CSS)
Why it matters: Broken CSS rules add file size without any benefit.
Browser Compatibility
Checks for CSS features not supported in your target browsers:
- Missing vendor prefixes (
-webkit-,-moz-, etc.) - CSS Grid, Flexbox support in older browsers
- Custom properties (CSS variables) with no fallbacks
- Gradient, transform, and animation syntax compatibility
Why it matters: Your site looks perfect in Chrome but broken in Safari = lost users.
Specificity & !important Abuse
Analyzes CSS specificity issues:
- Excessive use of
!important(forces CSS wars) - Over-nested selectors (creates high specificity)
- Specificity conflicts preventing overrides
- Inline styles that fight with stylesheets
Why it matters: High specificity CSS is rigid and hard to change. It slows down redesigns.
Animation Performance
Checks which CSS properties are being animated:
- Layout-triggering animations (
width,height,margin,padding) - Paint-heavy animations (
box-shadow,filter) - Performant animations using
transformandopacity - GPU acceleration with
will-change(when appropriate)
Why it matters: Bad animations cause jank (stuttering) and drain battery on mobile.
Media Query Organization
Reviews responsive design implementation:
- Consistent breakpoints (not scattered random widths)
- Mobile-first vs desktop-first strategy
- Missing breakpoints for awkward screen sizes
- Redundant media queries
Why it matters: Well-organized breakpoints make the code maintainable.
API Integration Testing
Resend Email Delivery
Tests email sending functionality:
- API endpoint exists and responds
- API key is valid and has permission to send
- Email validation (proper sender, recipient format)
- Error responses (what happens when email is invalid?)
- Rate limits and quota issues
What we check: Does clicking "Send" actually deliver the email, or silently fail?
Beehiiv Embed
Validates newsletter signup integration:
- Embed script loads without errors
- Form displays and is responsive
- Submissions go to Beehiiv (not stuck in your form)
- No JavaScript errors in the embed code
- No CORS blocking the embed
What we check: Can visitors actually sign up, or is the form silently broken?
Analytics (Google Analytics / Fathom)
Ensures tracking is working:
- Tracking code fires on page load
- Events are tracked (button clicks, form submissions)
- Not blocked by browser privacy settings or ad blockers
- Data appears in your analytics dashboard
- No script errors from the analytics library
What we check: Do you actually know how many visitors you have and what they do?
Vercel Serverless Functions
Audits backend function health:
- Function responds within timeout (30 seconds default)
- Cold start time (first request is slower)
- Error handling (what happens on failure?)
- Environment variables are set correctly
- Database connections work (no timeouts)
- Proper HTTP status codes returned
What we check: Can your backend handle requests, or do they time out?
Dependency Audit
Security Vulnerabilities
Runs npm audit to find known security issues:
- Outdated packages with published vulnerabilities
- Dependency chains that expose you to risk
- Major vs minor security issues (prioritize major)
Why it matters: Hackers actively exploit known vulnerabilities. Keeping dependencies updated is critical.
Outdated Packages
Identifies packages that have newer versions:
- Major version bumps (breaking changes)
- Minor version bumps (new features, backward compatible)
- Patch versions (bug fixes, usually safe to update)
- Package maintenance status (abandoned projects)
Why it matters: New versions often have performance fixes and bug fixes.
Unused Dependencies
Finds packages you're not actually using:
- Imported but never used
- Installed as transitive dependency (installed because something else needs it)
- Replaced by built-in browser APIs
Why it matters: Every dependency adds to your bundle size and increases attack surface.
Bundle Impact
Measures how much each dependency adds to your file size:
- Uncompressed vs compressed size
- Tree-shaking effectiveness (can dead code be removed?)
- Duplicate packages in node_modules
Why it matters: Large dependencies slow down page load.
Error Handling Review
Graceful Degradation
Tests what happens when things fail:
Network down? Does your site still show cached content or at least a helpful message?
API key expired? Do users see a helpful "something went wrong" message, or a JavaScript error dump?
JavaScript disabled? Can visitors still read your content and submit forms?
Third-party service down? Does your site still work if Beehiiv or analytics is slow/broken?
Why it matters: Real users encounter failures. Sites that handle failure gracefully seem more professional.
Try/Catch Around Async
Checks that async operations are wrapped in error handling:
- Fetch calls have
.catch()handlers - Async/await uses try/catch blocks
- Promise chains don't have unhandled rejections
- Error messages are user-friendly (not stack traces)
Why it matters: Without error handling, a failed API call crashes your page silently.
Form Fallbacks
Verifies forms work even if JavaScript fails:
- Form has
actionattribute (submits to server as fallback) - Form has proper
method(GET or POST) - Progressive enhancement (basic functionality works, JS adds polish)
Why it matters: If your form relies 100% on JavaScript, it's broken for JavaScript-disabled users.
Build Pipeline Review
Vite Configuration
Audits your build setup:
- Entry points are correct (usually
index.html) - Output directory is set (usually
dist/) - Environment variables are configured
- Plugin order is correct (plugins can interact)
- Build optimization settings (minification, source maps)
Why it matters: Wrong build config means your site ships broken or bloated.
Tree-Shaking Effectiveness
Checks if unused code is actually removed from the bundle:
- Exports are
export defaultor named exports (tree-shakeable) - Dependencies use ES6 modules (not CommonJS)
- Side effects are marked correctly in package.json
- Dead code elimination is working
Why it matters: Without tree-shaking, your bundle includes code you don't use.
Chunk Splitting Strategy
Reviews how code is split across files:
- Vendor dependencies in separate chunks (cached longer)
- Route-based code splitting (load code only when needed)
- Chunk sizes are reasonable (not one giant file)
- Shared code between routes is deduplicated
Why it matters: Good chunking means faster page loads and better caching.
Source Maps
Checks debugging configuration:
- Source maps are enabled during development
- Source maps are disabled in production (they expose your source code)
- Error reporting still works (using error tracking service)
Why it matters: Production source maps are a security risk.
Environment Variables
Validates configuration management:
- Variables are loaded from
.envfiles - Secrets are never committed to git
- Production vs development configs are different
- Variables are used correctly in code (not string literals)
Why it matters: Hardcoded API keys or passwords in code get stolen.
Progressive Enhancement Check
Content Without JavaScript
Tests core functionality with JS disabled:
- Page displays readable content (not blank)
- Text and images load (not hidden behind JS)
- Critical links and navigation work
- Forms can be submitted
Why it matters: Users with old browsers, slow connections, or JS errors still get value.
HTML-First Architecture
Checks if content is in HTML (not JavaScript-rendered):
- Content is in semantic HTML tags (not empty divs)
- Navigation links are in
<a>tags (not divs with click handlers) - Form fields exist in HTML (not generated by JavaScript)
- Text content isn't hidden in JavaScript strings
Why it matters: Search engines and screen readers see what's in the HTML. If content is only in JavaScript, they miss it.
Code Quality Metrics
Linting Results
Runs ESLint (or equivalent) to catch code style issues:
- Unused variables
- Missing semicolons (if your style requires them)
- Inconsistent naming conventions (camelCase vs snake_case)
- Problematic patterns (var vs let/const)
Why it matters: Consistent code is easier to read and less error-prone.
Code Complexity
Measures how complex your functions are:
- Functions doing too many things (should be smaller)
- Nested conditionals creating hard-to-follow logic
- Long parameter lists
- Functions with too many return paths
Why it matters: Simple code is less buggy and easier to maintain.
File Organization
Reviews directory structure and file sizes:
- Related code grouped together (not scattered)
- Files aren't too large (single responsibility)
- No circular dependencies (file A imports B imports A)
- Clear naming conventions (components/, utils/, pages/, etc.)
Why it matters: Good organization makes features easier to find and modify.
Naming Conventions
Checks that names are consistent and clear:
- Variables/functions use camelCase (or your chosen convention)
- Classes use PascalCase
- Constants use UPPER_SNAKE_CASE
- Names are descriptive (not
x,temp,data)
Why it matters: Clear names make code self-documenting.
Audit Report Format
When the code-auditor runs, you'll receive a structured report with:
Error Summary
Severity Breakdown:
- Critical (blocks functionality): 3 issues
- High (breaks features): 2 issues
- Medium (poor UX): 5 issues
- Low (code quality): 8 issuesOrganized by Category
- JavaScript Errors (file:line reference)
- HTML Issues (validation failures)
- CSS Problems (browser compatibility)
- API Integration (Resend, Beehiiv, Analytics status)
- Dependencies (vulnerabilities, outdated packages)
- Build Pipeline (Vite configuration issues)
For Each Issue
- What's wrong (plain English explanation)
- Why it matters (impact on users/performance)
- Where it is (file path and line number)
- How to fix it (specific steps)
- Priority (Critical > High > Medium > Low)
Prioritization
Issues are ordered by impact:
- Critical: Site doesn't work (API failures, JavaScript crashes)
- High: Features are broken (form submission fails, analytics don't load)
- Medium: Poor user experience (slow animations, confusing errors)
- Low: Code quality and maintenance (unused code, naming conventions)
How to Use This Skill
Trigger the code-auditor skill when you notice:
- Error messages in the browser console
- Forms or buttons that don't work
- Third-party integrations (email, newsletters, analytics) that seem broken
- You want a general code quality review
- You're getting a JavaScript error that's hard to track down
- You need to know if your dependencies have security issues
- You're refactoring and want to ensure nothing breaks
The skill will:
- Test your site in a browser environment
- Run automated checks against your code
- Test API integrations with real calls
- Check dependencies for vulnerabilities
- Produce a prioritized report of what needs fixing
Result: A clear list of what's broken, why it matters, and exactly how to fix it.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

