codebase-audit-pre-push
Deep audit before GitHub push: removes junk files, dead code, security holes, and optimization issues. Checks every file line-by-line for production readiness.
About this skill
This skill empowers an AI agent to act as a senior engineer, conducting a thorough, line-by-line audit of a codebase before it is pushed to GitHub. It systematically identifies and remediates common development pitfalls such as unnecessary temporary files, dead or unused code, potential security vulnerabilities, and performance optimization opportunities. The primary objective is to ensure the codebase is clean, secure, efficient, and fully prepared for production deployment or public release, significantly enhancing overall code quality and maintainability.
Best use case
Ensuring high code quality, security, and efficiency before a codebase is committed to a version control system (like GitHub), deployed to production, or made public, thereby minimizing technical debt and potential issues downstream.
Deep audit before GitHub push: removes junk files, dead code, security holes, and optimization issues. Checks every file line-by-line for production readiness.
A codebase that has been thoroughly reviewed, with junk files removed, dead code refactored, known security vulnerabilities patched, and performance bottlenecks optimized. Users can expect a more robust, secure, and efficient codebase, accompanied by a report detailing the changes made or issues identified and addressed.
Practical example
Example input
Please perform a deep codebase audit on the current project before I push to GitHub. Focus on security and optimization, and ensure production readiness.
Example output
Audit Complete. I've identified and removed 5 junk files, refactored dead code from 'utils.js', patched 2 potential XSS vulnerabilities in 'frontend/auth.js', and optimized 7 functions in 'backend/api.py' for better performance. The codebase is now ready for push, adhering to best practices.
When to use this skill
- When a user explicitly requests an 'audit the codebase' or 'review before push'.
- Prior to making the initial push of a project to GitHub.
- Before making a private repository public.
- As a critical step in a pre-production deployment review process.
When not to use this skill
- For very minor, trivial changes that do not warrant a comprehensive, deep audit.
- When immediate commits are necessary without time for a full review.
- If the AI agent lacks the necessary read/write permissions or context to access and modify the codebase files effectively.
- When the codebase is not in a stable or complete state, making a full audit premature.
Installation
Claude Code / Cursor / Codex
Manual Installation
- Download SKILL.md from GitHub
- Place it in
.claude/skills/codebase-audit-pre-push/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How codebase-audit-pre-push Compares
| Feature / Agent | codebase-audit-pre-push | Standard Approach |
|---|---|---|
| Platform Support | Claude | Limited / Varies |
| Context Awareness | High | Baseline |
| Installation Complexity | medium | N/A |
Frequently Asked Questions
What does this skill do?
Deep audit before GitHub push: removes junk files, dead code, security holes, and optimization issues. Checks every file line-by-line for production readiness.
Which AI agents support this skill?
This skill is designed for Claude.
How difficult is it to install?
The installation complexity is rated as medium. You can find the installation instructions above.
Where can I find the source code?
You can find the source code on GitHub using the link provided at the top of the page.
Related Guides
AI Agents for Coding
Browse AI agent skills for coding, debugging, testing, refactoring, code review, and developer workflows across Claude, Cursor, and Codex.
Best AI Skills for Claude
Explore the best AI skills for Claude and Claude Code across coding, research, workflow automation, documentation, and agent operations.
ChatGPT vs Claude for Agent Skills
Compare ChatGPT and Claude for AI agent skills across coding, writing, research, and reusable workflow execution.
SKILL.md Source
# Pre-Push Codebase Audit As a senior engineer, you're doing the final review before pushing this code to GitHub. Check everything carefully and fix problems as you find them. ## When to Use This Skill - User requests "audit the codebase" or "review before push" - Before making the first push to GitHub - Before making a repository public - Pre-production deployment review - User asks to "clean up the code" or "optimize everything" ## Your Job Review the entire codebase file by file. Read the code carefully. Fix issues right away. Don't just note problems—make the necessary changes. ## Audit Process ### 1. Clean Up Junk Files Start by looking for files that shouldn't be on GitHub: **Delete these immediately:** - OS files: `.DS_Store`, `Thumbs.db`, `desktop.ini` - Logs: `*.log`, `npm-debug.log*`, `yarn-error.log*` - Temp files: `*.tmp`, `*.temp`, `*.cache`, `*.swp` - Build output: `dist/`, `build/`, `.next/`, `out/`, `.cache/` - Dependencies: `node_modules/`, `vendor/`, `__pycache__/`, `*.pyc` - IDE files: `.idea/`, `.vscode/` (ask user first), `*.iml`, `.project` - Backup files: `*.bak`, `*_old.*`, `*_backup.*`, `*_copy.*` - Test artifacts: `coverage/`, `.nyc_output/`, `test-results/` - Personal junk: `TODO.txt`, `NOTES.txt`, `scratch.*`, `test123.*` **Critical - Check for secrets:** - `.env` files (should never be committed) - Files containing: `password`, `api_key`, `token`, `secret`, `private_key` - `*.pem`, `*.key`, `*.cert`, `credentials.json`, `serviceAccountKey.json` If you find secrets in the code, mark it as a CRITICAL BLOCKER. ### 2. Fix .gitignore Check if the `.gitignore` file exists and is thorough. If it’s missing or not complete, update it to include all junk file patterns above. Ensure that `.env.example` exists with keys but no values. ### 3. Audit Every Source File Look through each code file and check: **Dead Code (remove immediately):** - Commented-out code blocks - Unused imports/requires - Unused variables (declared but never used) - Unused functions (defined but never called) - Unreachable code (after `return`, inside `if (false)`) - Duplicate logic (same code in multiple places—combine) **Code Quality (fix issues as you go):** - Vague names: `data`, `info`, `temp`, `thing` → rename to be descriptive - Magic numbers: `if (status === 3)` → extract to named constant - Debug statements: remove `console.log`, `print()`, `debugger` - TODO/FIXME comments: either resolve them or delete them - TypeScript `any`: add proper types or explain why `any` is used - Use `===` instead of `==` in JavaScript - Functions longer than 50 lines: consider splitting - Nested code greater than 3 levels: refactor with early returns **Logic Issues (critical):** - Missing null/undefined checks - Array operations on potentially empty arrays - Async functions that are not awaited - Promises without `.catch()` or try/catch - Possibilities for infinite loops - Missing `default` in switch statements ### 4. Security Check (Zero Tolerance) **Secrets:** Search for hardcoded passwords, API keys, and tokens. They must be in environment variables. **Injection vulnerabilities:** - SQL: No string concatenation in queries—use parameterized queries only - Command injection: No `exec()` with user-provided input - Path traversal: No file paths from user input without validation - XSS: No `innerHTML` or `dangerouslySetInnerHTML` with user data **Auth/Authorization:** - Passwords hashed with bcrypt/argon2 (never MD5 or plain text) - Protected routes check for authentication - Authorization checks on the server side, not just in the UI - No IDOR: verify users own the resources they are accessing **Data exposure:** - API responses do not leak unnecessary information - Error messages do not expose stack traces or database details - Pagination is present on list endpoints **Dependencies:** - Run `npm audit` or an equivalent tool - Flag critically outdated or vulnerable packages ### 5. Scalability Check **Database:** - N+1 queries: loops with database calls inside → use JOINs or batch queries - Missing indexes on WHERE/ORDER BY columns - Unbounded queries: add LIMIT or pagination - Avoid `SELECT *`: specify columns **API Design:** - Heavy operations (like email, reports, file processing) → move to a background queue - Rate limiting on public endpoints - Caching for data that is read frequently - Timeouts on external calls **Code:** - No global mutable state - Clean up event listeners (to avoid memory leaks) - Stream large files instead of loading them into memory ### 6. Architecture Check **Organization:** - Clear folder structure - Files are in logical locations - No "misc" or "stuff" folders **Separation of concerns:** - UI layer: only responsible for rendering - Business logic: pure functions - Data layer: isolated database queries - No 500+ line "god files" **Reusability:** - Duplicate code → extract to shared utilities - Constants defined once and imported - Types/interfaces reused, not redefined ### 7. Performance **Backend:** - Expensive operations do not block requests - Batch database calls when possible - Set cache headers correctly **Frontend (if applicable):** - Implement code splitting - Optimize images - Avoid massive dependencies for small utilities - Use lazy loading for heavy components ### 8. Documentation **README.md must include:** - Description of what the project does - Instructions for installation and execution - Required environment variables - Guidance on running tests **Code comments:** - Explain WHY, not WHAT - Provide explanations for complex logic - Avoid comments that merely repeat the code ### 9. Testing - Critical paths should have tests (auth, payments, core features) - No `test.only` or `fdescribe` should remain in the code - Avoid `test.skip` without an explanation - Tests should verify behavior, not implementation details ### 10. Final Verification After making all changes, run the app. Ensure nothing is broken. Check that: - The app starts without errors - Main features work - Tests pass (if they exist) - No regressions have been introduced ## Output Format After auditing, provide a report: ``` CODEBASE AUDIT COMPLETE FILES REMOVED: - node_modules/ (build artifact) - .env (contained secrets) - old_backup.js (unused duplicate) CODE CHANGES: [src/api/users.js] ✂ Removed unused import: lodash ✂ Removed dead function: formatOldWay() 🔧 Renamed 'data' → 'userData' for clarity 🛡 Added try/catch around API call (line 47) [src/db/queries.js] ⚡ Fixed N+1 query: now uses JOIN instead of loop SECURITY ISSUES: 🚨 CRITICAL: Hardcoded API key in config.js (line 12) → moved to .env ⚠️ HIGH: SQL injection risk in search.js (line 34) → fixed with parameterized query SCALABILITY: ⚡ Added pagination to /api/users endpoint ⚡ Added index on users.email column FINAL STATUS: ✅ CLEAN - Ready to push to GitHub Scores: Security: 9/10 (one minor header missing) Code Quality: 10/10 Scalability: 9/10 Overall: 9/10 ``` ## Key Principles - Read the code thoroughly, don't skim - Fix issues immediately, don’t just document them - If uncertain about removing something, ask the user - Test after making changes - Be thorough but practical—focus on real problems - Security issues are blockers—nothing should ship with critical vulnerabilities ## Related Skills - `@security-auditor` - Deeper security review - `@systematic-debugging` - Investigate specific issues - `@git-pushing` - Push code after audit
Related Skills
gdb-cli
GDB debugging assistant for AI agents - analyze core dumps, debug live processes, investigate crashes and deadlocks with source code correlation
frontend-developer
Build React components, implement responsive layouts, and handle client-side state management. Masters React 19, Next.js 15, and modern frontend architecture.
bug-hunter
Systematically finds and fixes bugs using proven debugging techniques. Traces from symptoms to root cause, implements fixes, and prevents regression.
workspace-surface-audit
Audit the active repo, MCP servers, plugins, connectors, env surfaces, and harness setup, then recommend the highest-value ECC-native skills, hooks, agents, and operator workflows. Use when the user wants help setting up Claude Code or understanding what capabilities are actually available in their environment.
click-path-audit
Trace every user-facing button/touchpoint through its full state change sequence to find bugs where functions individually work but cancel each other out, produce wrong final state, or leave the UI in an inconsistent state. Use when: systematic debugging found no bugs but users report broken buttons, or after any major refactor touching shared state stores.
codebase-onboarding
分析一个陌生的代码库,并生成一个结构化的入门指南,包括架构图、关键入口点、规范和一个起始的CLAUDE.md文件。适用于加入新项目或首次在代码仓库中设置Claude Code时。
safety-guard
Use this skill to prevent destructive operations when working on production systems or running agents autonomously.
repo-scan
Cross-stack source code asset audit — classifies every file, detects embedded third-party libraries, and delivers actionable four-level verdicts per module with interactive HTML reports.
project-flow-ops
Operate execution flow across GitHub and Linear by triaging issues and pull requests, linking active work, and keeping GitHub public-facing while Linear remains the internal execution layer. Use when the user wants backlog control, PR triage, or GitHub-to-Linear coordination.
manim-video
Build reusable Manim explainers for technical concepts, graphs, system diagrams, and product walkthroughs, then hand off to the wider ECC video stack if needed. Use when the user wants a clean animated explainer rather than a generic talking-head script.
laravel-plugin-discovery
Discover and evaluate Laravel packages via LaraPlugins.io MCP. Use when the user wants to find plugins, check package health, or assess Laravel/PHP compatibility.
design-system
Use this skill to generate or audit design systems, check visual consistency, and review PRs that touch styling.