Skip to content

Complexité cyclomatique par méthode #48

Open

Description

@alexwrite

Context

Graphify ne mesure aucune complexité (0 occurrence de « complexity » ou « cyclomatic » dans le code, aucune PR amont ouverte). Or l'arbre de syntaxe de chaque méthode est déjà construit pendant l'extraction.

User story

En tant qu'agent qui cherche la dette technique d'un projet, je veux la complexité cyclomatique de chaque méthode dans le graphe, afin de repérer les méthodes difficiles à tester et risquées à modifier.

Acceptance criteria

  • Attribut complexity sur chaque nœud de méthode et de fonction : 1 + points de décision (if, elseif, boucles, case, catch, &&, ||, ternaire, ??, bras de match)
  • PHP d'abord, autres langages par la même table de types de nœuds par langage
  • Valeurs validées sur un échantillon contre un outil de référence (PHPMD ou phpmetrics)
  • Commande ou option qui liste les N méthodes les plus complexes
  • Montée de _AST_CACHE_SCHEMA, tests de régression

Hors scope

  • Complexité cognitive (à évaluer ensuite)

Activity

  1. added
    enhancementNew feature or request
    p2Défaut visible par l'utilisateur
    on Oct 11, 2026
  2. github-actions commented on Oct 11, 2026

    @github-actions

    Thanks for opening this issue, @alexwrite. A maintainer will take a look soon.

    If you would like to discuss it in real time, come say hi on our Discord server. For longer-form questions and ideas there is also GitHub Discussions.

    To help us triage, please make sure the report includes what you expected, what actually happened, and the steps (and a small sample) to reproduce it.

  3. alexwrite commented on Oct 11, 2026

    @alexwrite
    OwnerAuthor

    Extension notée le 2026-10-11 : viser aussi les langages verbeux (Rust, C ; grammaires déjà installées). Au-delà de McCabe : complexité cognitive (G. Ann Campbell, 2018), et réutiliser les mesures existantes plutôt que les recoder (Clippy cognitive_complexity pour Rust, lizard / pmccabe pour C) comme référence de validation.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requestp2Défaut visible par l'utilisateur

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions