22 repository-uri
Utilities for calculating cyclomatic complexity and other structural indicators to assess maintainability.
Distinct from Aggregate Complexity Calculations: Distinct from computational complexity: focuses on software maintainability metrics rather than algorithmic performance.
Explore 22 awesome GitHub repositories matching software engineering & architecture · Code Complexity Metrics. Refine with filters or upvote what's useful.
Agent-skills is a collection of structured instructions and behavioral personas designed to standardize how AI coding agents perform engineering tasks. It functions as a workflow orchestrator that maps natural language intent to repeatable technical sequences and verification checklists. The project distinguishes itself through the use of specialized markdown-defined roles, such as security auditors or test engineers, to apply targeted domain expertise. It employs an evidence-based verification model that requires runtime data or passing tests as mandatory exit criteria to ensure AI-generated
Provides capabilities to reduce structural complexity and improve codebase readability while preserving existing behavior.
Ponytail is an LLM code simplification framework and AI agent guardrail system. It provides rules and constraints designed to stop coding agents from producing unnecessary or overly complex logic, ensuring that AI-generated code remains minimal and maintainable. The project features a codebase complexity auditor that scans repositories and code diffs to identify over-engineered patterns and suggest deletions. It also includes a technical debt ledger to track and log deferred shortcuts and cleanup tasks. The framework supports an AI code review workflow and automated code simplification. Thes
Scans source trees for patterns of over-engineering to generate candidate lists for deletions and simplifications.
xi-editor is a high-performance text editor core written in Rust. It employs a client-server architecture that separates the backend editor logic from the user interface, allowing diverse frontends to communicate with the core via a standardized protocol. The project is distinguished by its use of rope-based text buffers for efficient manipulation of large documents and a collaborative engine powered by conflict-free replicated data types to synchronize concurrent edits. It further features an extensible plugin system that integrates external binaries and third-party tools through JSON-based
Locates specific line numbers or calculates total line counts in logarithmic time regardless of document length.
diff-so-fancy makes your diffs human readable instead of machine readable. This helps improve code quality and helps you spot defects faster.
Colorizes the first block of blank lines in a diff to make them visually distinct.
This project is a comprehensive educational resource and programming course covering C++ language semantics and features from C++03 through C++26. It provides structured tutorials and technical guides focused on modern C++ development. The material offers specialized instruction on template metaprogramming, including the use of type traits and compile-time computations. It features detailed guides on concurrency and parallelism for multi-core execution, as well as a reference for software design applying SOLID principles and RAII. Additionally, it covers build performance optimization to redu
Teaches how to calculate and interpret cyclomatic and cognitive complexity metrics to assess code maintainability.
This project is a comprehensive, curated directory of static analysis, linting, and security scanning utilities. It serves as a central resource for developers to discover, compare, and select tools based on specific programming languages, licensing models, and integration requirements. The directory distinguishes itself by providing deep metadata for each listed utility, including community-driven popularity rankings, maintenance status, and deployment methods. By aggregating these tools into a single searchable index, it enables teams to identify solutions for enforcing coding standards, ma
Calculates metrics to quantify maintainability and identify overly complex logic within source code.
RuboCop is a static code analyzer, linter, and formatter for the Ruby language. It identifies style violations, smells, and errors in source code to ensure consistency and maintainability based on community guidelines. The project provides automatic source code formatting to rewrite files according to defined stylistic standards. It also functions as a language server protocol implementation, surfacing violations and suggested fixes directly within code editors. The tool covers code complexity monitoring to track the size of classes and methods and employs non-inclusive language detection to
Monitors the length of blocks, classes, and modules to prevent the creation of overly complex code structures.
Checkstyle is a Java static analysis tool and linter designed to identify and enforce coding standards and best practices. It functions as a code quality auditor and Javadoc validation tool, checking source code against configurable rulesets to ensure structural and stylistic consistency. The project allows for the creation of custom linting rules by extending a core API to inspect the abstract syntax tree. It further enables specialized validation through the use of XPath expressions to query the syntax tree for specific code patterns and violations. Capability areas include the enforcement
Calculates cyclomatic complexity and class coupling metrics to identify logic that requires refactoring.
Scc is a codebase analysis tool written in Go that calculates source lines of code, blank lines, and comments across hundreds of programming and markup languages. It functions as a source code metric engine, software complexity analyzer, and cost estimator. The project differentiates itself by providing a COCOMO cost estimator to predict development effort and financial costs, alongside tools to estimate the cost of regenerating a codebase using large language models. It also includes a Git repository metrics tool that correlates commit history with codebase metrics to identify hotspots, trac
Calculates source lines of code, blank lines, and comments across hundreds of programming and markup languages.
Detekt is a static analysis tool, code quality linter, and complexity analyzer for Kotlin source code. It functions as a code smell detector and static scanner designed to identify potential bugs, design flaws, and violations of coding standards without executing the program. The tool differentiates itself through the use of issue baselining, which allows users to create a snapshot of existing legacy code issues to filter out old violations and focus on preventing new regressions. It further supports extensibility via a plugin-based system that allows for the integration of custom rule sets a
Calculates cyclomatic complexity and structural metrics to identify overly complex Kotlin logic.
Prek is a Git hook manager written in Rust that runs configured hooks as a single binary without requiring Python or other external runtimes. It executes hooks faster than standard tools through parallel processing and bundled Rust implementations, and includes a built-in hook repository that enables fully offline operation without network access or environment setup. The tool supports both TOML and YAML configuration formats with identical semantics, and can run hooks from existing pre-commit configuration files without modification. Prek distinguishes itself through workspace-aware monorepo
Splits matching files across multiple hook invocations when the count exceeds a configured limit.
Pylint is a static code analyzer for Python that scans source code for errors, coding standard violations, code smells, and type-related issues without executing the program. It functions as a plugin-based linter framework, allowing users to extend its analysis capabilities with custom or third-party checks for project-specific rules and framework support. The tool also includes a duplicate code detector that identifies identical or near-identical code blocks across a project to help reduce redundancy. Beyond its core linting functionality, Pylint can generate UML class and package diagrams f
Identifies code smells and patterns that could be improved for better readability, maintainability, or performance.
PhpInsights este un instrument de analiză statică și un analizor de calitate a codului pentru PHP. Evaluează codul sursă pentru a identifica bug-uri, încălcări de stil și datorii tehnice fără a executa aplicația. Instrumentul funcționează ca un utilitar de metrici de complexitate, calculând complexitatea arhitecturală și ciclomatică pentru a localiza logica excesiv de complicată. Măsoară sănătatea generală a software-ului și mentenabilitatea prin compararea codului cu standardele din industrie. Sistemul gestionează datoria tehnică prin validare bazată pe reguli și punctaj bazat pe metrici. Utilizează un motor de analiză statică pentru a parsa codul sursă, livrând rezultatele prin raportare bazată pe consolă și un fișier de configurare specific proiectului.
Calculates cyclomatic and cognitive complexity scores to identify overly intricate logic and assess maintainability.
Credo este un instrument de analiză statică și linter pentru Elixir. Funcționează ca un analizor de calitate a codului care scanează codul sursă pentru a identifica inconsistențe stilistice, greșeli comune și potențiale vulnerabilități de securitate. Instrumentul oferă un framework personalizabil pentru definirea și testarea unor reguli specializate pentru a impune standarde de codare specifice proiectului. Identifică fragmentele de cod complexe și duplicarea pentru a evidenția oportunitățile de refactorizare și simplificare. Capabilitățile sale acoperă revizuiri automate ale codului, impunerea standardelor de codare Elixir și feedback în timp real pentru dezvoltatori prin integrări în editor.
Calculates structural indicators and complexity metrics to flag overly complex code fragments for refactoring.
This project is a comprehensive guide and set of engineering standards for writing readable, maintainable, and scalable JavaScript code. It provides a framework for software architecture, refactoring patterns, and clean coding practices designed to improve codebase health and longevity. The guide emphasizes the application of SOLID principles and architectural strategies such as dependency inversion and the separation of concerns. It focuses on transforming complex conditional logic through polymorphism and refactoring, while promoting a transition from imperative loops to declarative functio
Provides specific refactoring patterns to simplify complex logic and improve the readability of JavaScript codebases.
JaCoCo este un instrument de acoperire a codului Java și un instrument de instrumentare a bytecode-ului care măsoară ce părți din codul sursă sunt executate în timpul testelor. Funcționează ca un agent de runtime pentru a monitoriza execuția aplicației din mers sau ca o bibliotecă pentru instrumentarea offline a bytecode-ului, permițându-i să captureze date de execuție în medii în care agenții de runtime sunt restricționați. Proiectul se distinge prin furnizarea atât a căilor de instrumentare dinamice, cât și statice pentru a urmări execuția. Include un agent de runtime pentru monitorizarea din mers și capacitatea de a modifica fișierele de clasă compilate înainte de execuție. De asemenea, permite preluarea metricilor de execuție din procesele care rulează prin conexiuni de rețea remote, fără a întrerupe aplicația activă. Sistemul calculează metrici cantitative de acoperire pentru instrucțiuni, ramuri, linii, metode și clase, alături de măsurători ale complexității ciclomatice. Oferă capabilități pentru fuzionarea datelor din mai multe rulări de testare, impunerea pragurilor de acoperire în cadrul porților de calitate CI/CD și generarea de rapoarte care mapează bytecode-ul executat înapoi la codul sursă. Integrarea vizuală este disponibilă pentru afișarea acestor rezultate direct în editorii de cod. Instrumentul se integrează cu sistemele de automatizare a build-ului și interfețele de linie de comandă pentru a automatiza colectarea datelor și generarea rapoartelor.
Tracks whether at least one instruction in a method or one method in a class has been executed.
Plato este un instrument de analiză statică JavaScript și vizualizator de complexitate a codului. Acesta calculează metrici de complexitate și rulează verificări de linting pe codul sursă JavaScript pentru a evalua calitatea codebase-ului, prezentând rezultatele printr-un dashboard de analiză statică. Sistemul agregă datele de linting și metricile tehnice în rapoarte cu marcaj temporal. Calculează în mod specific metricile ciclomatice și Halstead pentru a identifica fișierele excesiv de complicate și pentru a evalua mentenabilitatea unui proiect. Instrumentul oferă capabilități pentru vizualizarea codului sursă, raportarea automatizată a calității și evaluarea mentenabilității. Include un pipeline de analiză statică ce suportă agregarea metricilor și filtrarea fișierelor prin expresii regulate.
Computes cyclomatic and Halstead metrics to assess the maintainability and structural complexity of source code.
Acest toolkit oferă o suită de instrumente, template-uri și ghiduri pentru pregătirea documentelor de înregistrare a drepturilor de autor software solicitate de autoritățile chineze. Acesta automatizează crearea dosarelor legale necesare și a documentației tehnice pentru a facilita înregistrarea drepturilor de autor software în cadrul sistemului de reglementare chinez. Sistemul include un calculator de metrici de cod pentru a extrage date cantitative și numărul de linii din fișierele sursă pentru formularele de cerere. De asemenea, dispune de o listă de verificare a conformității legale și utilitare de verificare pentru a se asigura că materialele depuse respectă cerințele oficiale de formatare, paginare și antet. Proiectul acoperă automatizarea documentelor prin template-uri pentru manuale de utilizare și specificații de design, precum și maparea materialelor pentru a identifica cerințele specifice de documentație în funcție de tipurile de solicitanți.
Calculates total lines of code and other quantitative metrics required for software copyright application forms.
This project is a curated library of Python code examples, educational resources, and programming tutorials. It functions as an educational repository designed to teach Python language fundamentals through practical implementation tasks, real-world exercises, and functional code snippets. The collection covers a diverse range of implementation examples, including the development of interactive websites and message boards using web frameworks. It also features scripts for audio speech processing, automated media processing for images, and the extraction of data from web content. Additional ca
Scans source files and reports total, blank, and comment line counts.
Compodoc este un generator de documentație API TypeScript, generator de site-uri statice și vizualizator de arhitectură de proiect. Acesta analizează codul sursă și comentariile JSDoc pentru a crea site-uri de referință tehnică căutabile, cataloage API și pagini HTML independente. Proiectul se distinge prin analizarea instrucțiunilor de import pentru a produce grafuri de dependență și hărți de module care ilustrează relațiile structurale dintr-un codebase. Include suport specializat pentru vizualizarea proiectelor Angular, fluxurilor de lucru NestJS și componentelor web Stencil, și poate încorpora demo-uri live direct în paginile de documentație. Sistemul funcționează, de asemenea, ca un analizor de acoperire a documentației, oferind rapoarte și impunând praguri minime de acoperire în cadrul pipeline-urilor de integrare continuă pentru a eșua build-urile dacă nivelurile de documentație sunt insuficiente. Capabilitățile suplimentare includ integrarea Markdown, exportul de date în formate multiple (JSON sau Markdown) și un server de dezvoltare local cu monitorizarea sistemului de fișiere pentru reconstrucții automate. Utilizatorii pot personaliza output-ul prin fișiere de configurare, stilizare CSS personalizată și filtrarea vizibilității elementelor pentru a exclude simboluri specifice sau tag-uri interne din site-ul final.
Calculates the ratio of documentation comments to source code statements to identify gaps.