Topics / #code-quality

Code-quality projects on GitHub

Tooling and practices for keeping codebases clean and correct.

As of , the most-starred Code-quality projects on GitHub are ponytail (165.2K stars), javascript (148.1K stars) and nodebestpractices (105.7K stars). GitHub.Locker tracks 100 Code-quality repositories with 2M stars combined. The fastest-growing on October 16 was ponytail, with +758 stars in a day.

100Projects
2MStars in total
+1.6KStars in a day

Hot right now

Most stars gained in a day · Oct 16

The all-time top

100 projects · by stars

  1. #1 · DietrichGebert/ponytail

    ponytail

    Ponytail is a skill for AI coding agents that channels the laziest senior dev in the room: the agent writes only what the task needs, on the belief that the best code is the code you never wrote.

    165.2K
  2. #2 · airbnb/javascript

    javascript

    A JavaScript style guide from Airbnb covering conventions for types, variables, functions, classes, modules, naming, whitespace, and more, described as 'a mostly reasonable approach to JavaScript'.

    148.1K
  3. #3 · goldbergyoni/nodebestpractices

    nodebestpractices

    A curated, community-maintained list that summarizes the top Node.js best practices, style guides, and architectural tips, organized into chapters covering architecture, error handling, code style, testing, production readiness, security, performance, and Docker.

    105.7K
  1. 4

    clean-code-javascript

    94.7Kryanmcdermott/clean-code-javascript · JavaScript

    This is a guide that adapts the software engineering principles from Robert C. Martin's book 'Clean Code' specifically for JavaScript, with practical bad/good code examples.

  2. 5

    strix

    69.1Kusestrix/strix · Python

    Strix is an open-source tool that uses autonomous AI agents to pentest your application like real hackers: it runs your code dynamically, finds vulnerabilities, and proves them with working exploits instead of just flagging suspicious patterns.

  3. 6

    dive

    54.6Kwagoodman/dive · Go

    dive is a CLI tool that breaks a Docker or OCI image into its layers, shows what each layer contains, and points out where the image wastes space so you can shrink it.

  4. 7

    prettier

    52.4Kprettier/prettier · JavaScript

    Prettier is an opinionated code formatter: point it at a project and it keeps the whole codebase in one consistent code style.

  5. 8

    ruff

    50.1Kastral-sh/ruff · Rust

    Ruff is an extremely fast Python linter and code formatter written in Rust, built to replace tools like Flake8, Black, isort, pydocstyle, pyupgrade, and autoflake with a single command-line tool.

  6. 9

    open-code-review

    47.5Kalibaba/open-code-review · Go

    An AI-powered code review CLI born inside Alibaba: it reads Git diffs, sends changed files to a configurable LLM agent, and returns structured review comments with line-level precision.

  7. 10

    shellcheck

    40.2Kkoalaman/shellcheck · Haskell

    ShellCheck is a free static analysis tool for shell scripts: it reads your bash/sh code and reports warnings and suggestions for problems in it.

  8. 11

    googletest

    39.6Kgoogle/googletest · C++

    Google's testing and mocking framework for C++, built on the xUnit architecture. It merges the formerly separate GoogleTest and GoogleMock projects, which Google now maintains and releases together.

  9. 12

    husky

    35.4Ktypicode/husky · JavaScript

    Husky is a tool that makes it easy to set up and manage Git hooks, so scripts run automatically on Git events like commits or pushes.

  10. 13

    p3c

    30.9Kalibaba/p3c · Kotlin

    Alibaba Java Coding Guidelines (P3C): Java coding rules distilled from the accumulated best practices of Alibaba Group's technical teams, shipped as PMD static-analysis rules and IDE plugins.

  11. 14

    standard

    29.4Kstandard/standard · JavaScript

    JavaScript Standard Style — a zero-configuration style guide, linter and automatic code fixer for JavaScript. It enforces one consistent style and catches programmer errors early, with nothing to set up.

  12. 15

    project-guidelines

    29.4Kelsewhencode/project-guidelines · JavaScript

    A public set of best practices for JavaScript projects, written and gathered by the elsewhen team - numbered rules for Git, documentation, environments, dependencies, testing, code style, APIs and more.

  13. 16

    eslint

    27.6Keslint/eslint · JavaScript

    ESLint is a linter for JavaScript: a tool that identifies and reports on patterns found in ECMAScript/JavaScript code, so problems get caught before they ship.

  14. 17

    testify

    26.2Kstretchr/testify · Go

    Testify is a toolkit of Go packages that add assertions, mocking and test suites on top of the standard library, so tests are easier to write and failures are easy to read.

  15. 18

    biome

    26Kbiomejs/biome · Rust

    Biome is a toolchain for web projects: one fast tool that both formats and lints JavaScript, TypeScript, JSX, JSON, CSS and GraphQL, run from the CLI or your editor via LSP.

  16. 19

    idiomatic.js

    25.7Krwaldron/idiomatic.js

    A style guide document laying out principles for writing consistent, idiomatic JavaScript code, covering whitespace, syntax, naming, type checking, and comments.

  17. 20

    javascript-testing-best-practices

    24.6Kgoldbergyoni/javascript-testing-best-practices · JavaScript

    A free, in-depth guide with 50+ best practices for testing JavaScript and Node.js applications, compiled and curated from dozens of blog posts, books and tools.

  18. 21

    FizzBuzzEnterpriseEdition

    23.9KEnterpriseQualityCoding/FizzBuzzEnterpriseEdition · Java

    FizzBuzz Enterprise Edition is a satirical Java project: the trivial FizzBuzz exercise deliberately rebuilt as if it were serious, architecture-heavy enterprise software.

  19. 22

    angular-styleguide

    23.6Kjohnpapa/angular-styleguide · Vim Snippet

    An opinionated style guide for Angular: documented conventions for syntax, structure, and building Angular applications, written by John Papa for development teams.

  20. 23

    tools

    23.4Krome/tools · Rust

    Rome is a unified toolchain for JavaScript, TypeScript, and the web: one program that formats, lints, and bundles code, built to replace separate tools like Babel, ESLint, webpack, Prettier, and Jest.

  21. 24

    eng-practices

    23.3Kgoogle/eng-practices

    Google's Engineering Practices documentation — a public collection of guides distilling the engineering practices Google applies across all languages and projects, currently focused on its Code Review Guidelines.

  22. 25

    oxc

    23.1Koxc-project/oxc · Rust

    Oxc — the Oxidation Compiler — is a collection of high-performance tools for JavaScript and TypeScript written in Rust: a parser, linter, formatter, transformer, minifier, and module resolver.

  23. 26

    flow

    22.3Kfacebook/flow · Rust

    Flow is a static typechecker for JavaScript: it adds static typing to your code to catch errors early and improve quality. The project goes back to 2014 and is written in Rust.

  24. 27

    mypy

    20.7Kpython/mypy · Python

    Mypy is a static type checker for Python: you add type hints (PEP 484) to your code and it warns you when you use those types incorrectly, catching bugs without even running the program.

  25. 28

    phpunit

    20.1Ksebastianbergmann/phpunit · PHP

    PHPUnit is a programmer-oriented testing framework for PHP, built on the xUnit architecture - the classic pattern for unit testing frameworks.

  26. 29

    SwiftLint

    19.8Krealm/SwiftLint · Swift

    SwiftLint is an open-source linter that enforces Swift style and conventions — rules generally accepted by the Swift community, loosely based on the now-archived GitHub Swift Style Guide.

  27. 30

    golangci-lint

    19.4Kgolangci/golangci-lint · Go

    A fast linters runner for Go: one tool that runs over a hundred Go linters on your codebase in a single pass.

  28. 31

    commitlint

    18.8Kconventional-changelog/commitlint · TypeScript

    commitlint checks whether your commit messages meet the conventional commit format, linting them against a configurable rule set.

  29. 32

    keploy

    18.6Kkeploy/keploy · Go

    Keploy is an open-source tool that auto-generates API and integration tests from real traffic: it records your API calls, database queries and streaming events, then replays them as tests.

  30. 33

    diff-so-fancy

    18.1Kso-fancy/diff-so-fancy · Perl

    A command-line tool that turns git's machine-readable diff output into human-readable text, so you can review changes and spot defects faster.

  31. 34

    guide

    17.7Kuber-go/guide · Makefile

    It's the Uber Go Style Guide — an open document describing the patterns and conventions Uber uses when writing Go code.

  32. 35

    PHP-Parser

    17.5Knikic/PHP-Parser · PHP

    A parser written in PHP that turns PHP code into an abstract syntax tree (AST). Its purpose is to simplify static code analysis and manipulation of PHP code.

  33. 36

    semgrep

    17.1Ksemgrep/semgrep · C

    Semgrep is a fast, open-source static analysis tool that scans source code to find bugs, security issues, and enforce coding standards using rules that look like ordinary code rather than abstract syntax trees or regex.

  34. 37

    ruby-style-guide

    16.5Krubocop/ruby-style-guide

    A community-driven Ruby coding style guide: it recommends best practices so real-world Ruby programmers can write code that other people can maintain. It deliberately favors established real-world usage over unproven ideals.

  35. 38

    typescript-eslint

    16.4Ktypescript-eslint/typescript-eslint · TypeScript

    typescript-eslint is the monorepo that provides the tooling enabling ESLint to understand and lint TypeScript code, including the parser and plugin rules.

  36. 39

    ast-grep

    16.3Kast-grep/ast-grep · Rust

    ast-grep (sg) is a CLI tool for structural search, linting and rewriting of source code — like grep, but matching the abstract syntax tree instead of raw text.

  37. 40

    Modern-CPP-Programming

    16.2Kfederico-busato/Modern-CPP-Programming · HTML

    A free, open-access Modern C++ Programming course by Federico Busato covering standards from C++03 to C++26 — from language basics to advanced features, tools and optimization.

  38. 41

    infer

    15.7Kfacebook/infer · OCaml

    Infer is a static analysis tool that finds bugs in Java, C, C++, and Objective-C code by analyzing it without running it. It lives under Facebook's GitHub and is written in OCaml.

  39. 42

    pyright

    15.7Kmicrosoft/pyright · Python

    Pyright is a full-featured, standards-based static type checker for Python, built by Microsoft for speed on large codebases.

  40. 43

    mockito

    15.5Kmockito/mockito · Java

    Mockito is a mocking framework for unit tests written in Java, and the most popular one: it creates mock objects so you can test a class in isolation from its dependencies.

  41. 44

    react-doctor

    15Kmillionco/react-doctor · TypeScript

    React Doctor is a code-review tool that scans React code for the kind of mistakes AI coding agents tend to introduce, so bad patterns get caught before they ship.

  42. 45

    tokei

    15KXAMPPRocky/tokei · Rust

    Tokei is a CLI tool that counts code statistics (files, lines, blanks, comments, code) grouped by programming language across your codebase.

  43. 46

    laravel-ide-helper

    15Kbarryvdh/laravel-ide-helper · PHP

    A Laravel package that generates helper files so your IDE gives accurate autocompletion. Everything is generated from the files in your project, so the results stay up to date.

  44. 47

    static-analysis

    14.8Kanalysis-tools-dev/static-analysis · Rust

    A curated list of static analysis (SAST) tools, linters and formatters for all programming languages, config files and build tools, focused on tools that improve code quality.

  45. 48

    pytest

    14.6Kpytest-dev/pytest · Python

    pytest is a Python testing framework that makes it easy to write small tests, yet scales to support complex functional testing for applications and libraries.

  46. 49

    naming-cheatsheet

    14.2Kkettanaito/naming-cheatsheet

    A language-agnostic cheatsheet with guidelines for naming variables and functions in code, centered on the A/HC/LC (Action/High Context/Low Context) naming pattern.

  47. 50

    phpstan

    14.1Kphpstan/phpstan · PHP

    PHPStan is a static analysis tool for PHP that finds bugs in your code without actually running it, catching whole classes of errors before you even write tests.

  48. 51

    ale

    14Kdense-analysis/ale · Vim Script

    ALE (Asynchronous Lint Engine) is a Vim/Neovim plugin that lints your code asynchronously as you type and can fix files, acting as a Language Server Protocol client for things like completion, go-to-definition, and hover info.

  49. 52

    yapf

    14Kgoogle/yapf · Python

    YAPF is a Python code formatter based on clang-format: instead of just enforcing style rules, it calculates the best way to reformat your code to conform to a configured style, aiming to produce code as good as a programmer following the style guide would write.

  50. 53

    rust-clippy

    13.6Krust-lang/rust-clippy · Rust

    Clippy is a collection of over 800 lints that catches common mistakes in Rust code and nudges it toward idiomatic style. It runs alongside the compiler as a cargo subcommand.

  51. 54

    PHP-CS-Fixer

    13.6KPHP-CS-Fixer/PHP-CS-Fixer · PHP

    PHP CS Fixer is a tool that automatically fixes your PHP code to follow coding standards — unlike a plain linter, it does not just detect problems, it fixes them for you.

  52. 55

    scalene

    13.5Kplasma-umass/scalene · Python

    Scalene is a high-performance CPU, GPU, and memory profiler for Python. It is also the first profiler to add AI-powered optimization proposals, via providers like OpenAI, Azure, Bedrock, or local Ollama models.

  53. 56

    lombok

    13.5Kprojectlombok/lombok · Java

    Project Lombok is a Java library that plugs into your editor and build tools to eliminate boilerplate: annotations generate getters, equals methods, builders, logging variables, and more.

  54. 57

    pr-agent

    13.4KThe-PR-Agent/pr-agent · Python

    An open-source, AI-powered code review agent for pull requests — the original open-source PR reviewer, now community-owned after being donated by Qodo.

  55. 58

    swift-style-guide

    13.1Kkodecocodes/swift-style-guide

    This is the official Swift style guide used by Kodeco (formerly raywenderlich.com) to keep the Swift code in its books, tutorials, and starter kits consistent across many different authors.

  56. 59

    rubocop

    12.9Krubocop/rubocop · Ruby

    RuboCop is a static code analyzer (linter) and code formatter for Ruby that enforces the community Ruby Style Guide out of the box, and it is also configurable to enforce your own style.

  57. 60

    oss-fuzz

    12.7Kgoogle/oss-fuzz · Shell

    OSS-Fuzz is Google's free continuous fuzzing service for open source software: it runs guided fuzzing nonstop to surface security vulnerabilities and stability bugs before attackers do.

  58. 61

    hadolint

    12.5Khadolint/hadolint · Haskell

    Hadolint is a smarter Dockerfile linter written in Haskell that helps you build best-practice Docker images. It flags mistakes and bad patterns in your Dockerfile before you build the image.

  59. 62

    knip

    12.5Kwebpro-nl/knip · TypeScript

    Knip is a free and open-source tool that finds unused files, dependencies and exports in your JavaScript and TypeScript projects, so you can cut them before you ship.

  60. 63

    laravel-best-practices

    12.3Kalexeymezenin/laravel-best-practices

    A widely used community guide (12k+ stars) that collects best practices for writing Laravel applications. Each practice comes with a Bad and a Good code example, and the guide has been translated into 25 languages.

  61. 64

    stylelint

    11.5Kstylelint/stylelint · JavaScript

    Stylelint is a CSS linter that catches errors and enforces coding conventions in your stylesheets, with over 100 built-in rules for modern CSS.

  62. 65

    inflector

    11.3Kdoctrine/inflector · PHP

    Doctrine Inflector is a small PHP library that performs string manipulations with regard to uppercase/lowercase and singular/plural forms of words.

  63. 66

    syntastic

    11.2Kvim-syntastic/syntastic · Vim script

    Syntastic is a syntax checking plugin for Vim: it runs your files through external syntax checkers and displays the errors inside Vim, on demand or automatically whenever you save.

  64. 67

    awesome-guidelines

    11.2KKristories/awesome-guidelines · JavaScript

    A curated list of programming style guides, best practices, and coding conventions — one page collecting links to official and community guidelines for dozens of languages, platforms, and tools.

  65. 68

    sonarqube

    11.1KSonarSource/sonarqube · Java

    SonarQube is a continuous inspection platform that statically analyzes your code to find bugs, vulnerabilities, security hotspots, and maintainability issues, explaining exactly what to fix and why.

  66. 69

    PHP_CodeSniffer

    10.8Ksquizlabs/PHP_CodeSniffer · PHP

    PHP_CodeSniffer is a pair of PHP scripts: 'phpcs', which tokenizes PHP, JavaScript, and CSS files to detect violations of a defined coding standard, and 'phpcbf', which automatically fixes many of those violations.

  67. 70

    mockery

    10.7Kmockery/mockery · PHP

    A PHP mock object framework for unit testing: it builds test doubles (mocks) through a succinct, human-readable DSL, so your tests can call fakes instead of real objects.

  68. 71

    super-linter

    10.6Ksuper-linter/super-linter · Shell

    A ready-to-run bundle of linters and code analyzers that validates your source code, enforces best practices and consistent formatting across dozens of languages, and reports issues as console output and GitHub Actions status checks.

  69. 72

    mason.nvim

    10.5Kmason-org/mason.nvim · Lua

    It's a portable package manager for Neovim: a plugin that installs and manages your editor's external tooling — LSP servers, DAP servers, linters, and formatters — from a single interface, wherever Neovim runs.

  70. 73

    rector

    10.4Krectorphp/rector · PHP

    Rector is a PHP tool that instantly upgrades and refactors PHP codebases: it automates upgrades from PHP 5.3 up to 8.5 plus framework migrations, and can keep code quality high continuously via CI.

  71. 74

    conc

    10.4Ksourcegraph/conc · Go

    conc is a Go library — a 'toolbelt' for structured concurrency that makes common concurrent patterns in Go easier and safer than raw goroutines and sync primitives.

  72. 75

    unmaintainable-code

    10.2KDroogans/unmaintainable-code

    This is a satirical guide listing tongue-in-cheek techniques for deliberately writing code that is hard to read and maintain, repackaged from Roedy Green's original 'How To Write Unmaintainable Code' essay so it's easier to read and share on GitHub.

  73. 76

    improve

    9.2Kshadcn/improve

    It's an agent skill that audits any codebase and writes implementation plans for other, cheaper models to execute - the expensive model does the thinking, cheap models do the typing.

  74. 77

    repowise

    7.8Krepowise-dev/repowise · Python

    Repowise indexes a codebase once (code, dependency graph, git history, tests, docs, and architectural decisions) and then gives AI agents and developers cited answers, change-impact analysis, and concrete code-health fixes instead of making an agent rediscover the code every time.

  75. 78

    closure-compiler

    7.7Kgoogle/closure-compiler · JavaScript

    A tool for making JavaScript download and run faster — a true compiler for JavaScript: it compiles JavaScript to better JavaScript, parsing your code, removing dead code and rewriting and minimizing what is left.

  76. 79

    DeepAudit

    7.2Klintsinghua/DeepAudit · Python

    DeepAudit is a multi-agent AI platform for code security auditing. It mimics how a security expert thinks, using cooperating agents (Orchestrator, Recon, Analysis, Verification) to find vulnerabilities and then verify them with automated sandbox PoC exploitation.

  77. 80

    anti-slop

    6.3Kmiqdadbadjuber/anti-slop · JavaScript

    antislop is a rulebook for your AI coding agent so it stops producing generic 'AI slop' - cliched UI, copy, and code. It is a filter, not a style guide: it bans the slop but prescribes no colors, fonts, or layouts.

  78. 81

    anti-slop

    5.6Kdmmulroy/anti-slop · TypeScript

    A set of opinionated Oxlint rules that reject low-evidence and low-signal patterns in TypeScript and JavaScript codebases.

  79. 82

    fallow

    5.1Kfallow-rs/fallow · Rust

    Fallow is a Rust-based codebase intelligence tool for TypeScript/JavaScript that builds one dependency graph of a repository and reports unused code, circular dependencies, duplication, complexity hotspots, architecture boundary violations, and design-system styling drift.

  80. 83

    kani

    3.5Kmodel-checking/kani · Rust

    Kani is a bit-precise model checker for Rust programs: instead of sampling inputs like a test suite, it proves that your code is free of certain bugs and undefined behavior.

  81. 84

    lint

    3.2Kshadcn-ui/lint · TypeScript

    An agent-first linter for Tailwind design systems: you define what is allowed, and when an agent breaks a rule the error explains what is wrong and suggests a fix using your components, variants, and theme.

  82. 85

    vibe-coding-toolkit

    1.3Ksoumatheusgomes/vibe-coding-toolkit · JavaScript

    A curated, battle-tested AI-coding workflow for Claude Code (and partly Codex): ready-to-copy plugins, subagent orchestration patterns, quality-gate configs, and prompt templates extracted from a real production fintech codebase.

  83. 86

    SlopMonster

    1.1KItsssssJack/SlopMonster · Python

    SlopMonster is a linter that scores written copy out of 5 for telltale AI-writing patterns and can fail a CI build on a bad score; it also has a cleanse step that uses a rival AI model to rewrite the flagged lines.

  84. 87

    gdp-ts

    812rauchg/gdp-ts · TypeScript

    gdp-ts is a tiny TypeScript library plus a linter and an AI coding-agent skill that implements the 'Ghosts of Departed Proofs' pattern, letting you catch authorization and entitlement bugs (like checking if a user can read or pay for a resource) at compile time instead of at runtime.

  85. 88

    openqodex

    729openqodex/openqodex · TypeScript

    OpenQodex is an open source AI code review tool for Claude Code and Codex that runs before you push: it scans only the lines you changed, then has a separate reviewer process check every scanner finding.

  86. 89

    simplify-codebase

    508tt-a1i/simplify-codebase · HTML

    An Agent Skill that helps coding agents prove and safely remove accidental complexity from an existing codebase without changing its real behavior.

  87. 90

    cccc

    472moznion/cccc · Rust

    cccc is a fast CLI tool (and Rust library) that measures Cognitive Complexity (SonarSource) and Cyclomatic Complexity (McCabe) for source code across many languages.

  88. 91

    uml-viewer

    441unclebob/uml-viewer · Clojure

    A live UML class-diagram viewer for your codebase: it draws a project's structure from an EDN intermediate representation, is coupled to an AI agent companion, and lets you drill from components all the way down to source code.

  89. 92

    cyclomatic-complexity-skill

    405saurabhkumar8112/cyclomatic-complexity-skill

    A Claude Skill that teaches Claude to measure a function's cyclomatic complexity and refactor the worst offenders instead of leaving tangled branch-heavy code behind.

  90. 93

    perch

    353lakeday-org/perch · JavaScript

    Perch is a command-line semantic code linter that scans a codebase for real issues using Decision Models, rather than plain syntax rules, and ranks what it finds worst-first.

  91. 94

    nopus

    298Vistyy/nopus · TypeScript

    nopus is a deterministic prose checker that catches coding-agent responses drifting into abstract, jargon-heavy LLM language, flags them once they cross a chosen complexity threshold, and sends them back for one clearer rewrite.

  92. 95

    procoder

    211azrtydxb/procoder · Go

    A discipline layer for AI coding agents: one Go binary that gives the agent a commit gate it cannot talk its way past, quality controllers that refuse to call unfinished work done, and a self-learning loop for escaped bugs.

  93. 96

    reclaim-code-entropy

    205Yevanchen/reclaim-code-entropy

    This is an Agent Skill that guides an AI coding agent through safely simplifying a codebase by hunting down dead code, duplicate logic, and unnecessary abstractions using proof instead of guesswork.

  94. 97

    audit-repo

    1571838904818/audit-repo · Python

    A Codex Skill for read-only, evidence-backed health audits of code repositories: it inventories tests, CI, dependencies, docs, security signals and technical debt, then turns verified findings into a prioritized action list. Standalone Python scripts for reproducible snapshots ship alongside it.

  95. 98

    jev-code-reviewer

    144egma-ai/jev-code-reviewer · JavaScript

    Jev is a local code review tool for pull requests opened by coding agents: it classifies each diff hunk into P0, P1 or P2 attention priority and explains the change in natural language instead of raw code.

  96. 99

    codex-guard

    136Akimiya-z/codex-guard · JavaScript

    Codex Guard is a quality gate that automatically runs on pull requests it detects as agent-written (Codex, Claude, Copilot) and blocks leftover TODO markers, leaked secrets, sloppy commit messages, and red CI before they reach main.

  97. 100

    jevlint

    126codegirl-007/jevlint · Go

    Jevlint is a CLI linter that checks code against plain-language rules: it uses Tree-sitter to extract code units (functions, types, comments, fields, statements), then asks a configured AI decision backend called Jev whether each one passes.

Often tagged together