Skip to content

Rendu: BlackSun #40

Open
Open

Description

@BlandineRdl

Édition

LAIVEL UP (28 au 31 août 2026)

Pseudo Discord

Blandine

Lien de ton dépôt

https://github.com/BlandineRdl/aidd-audit

Comment on lance ton outil

Prérequis : Node.js ≥ 24 et pnpm 11. À la racine du dépôt :

pnpm install
pnpm aidd-evaluation:project # évalue le projet courant (assess .)
pnpm aidd-evaluation # évalue le dépôt ou dossier indiqué
pnpm aidd-evaluation:profiles # évalue tous les profils de référence
pnpm aidd-evaluation:harness # audite le contexte Claude du projet courant

Pour l’utiliser dans un autre repo via Claude Code :
/plugin marketplace add BlandineRdl/aidd-audit
/plugin install aidd-evaluation@aidd-evaluation

Puis, dans le repo à évaluer :

/aidd-evaluation:aidd-evaluation

Le plugin audite automatiquement le dépôt ouvert.

Lien de ta vidéo ou de ton GIF

https://github.com/BlandineRdl/aidd-audit/blob/main/v_final.mov

Ton approche en trois lignes

L’outil évalue la maturité AIDD à partir de preuves observables dans un dépôt ou des profils de référence, jamais sur de simples déclarations. Il croise quatre axes : taille des changements, harness IA, intervention humaine et travail en parallèle.Son moteur déterministe attribue le plus haut niveau entièrement prouvé, explique les preuves et distingue ce qui manque de ce qui est inconnu.

Avant d'envoyer

  • Aucune clé d'API n'est présente dans le code ni dans l'historique Git
  • Mon dépôt est public et sous licence MIT

Activity

  1. blafourcade commented on Sep 4, 2026

    @blafourcade
    Contributor

    Merci pour ce rendu. Voici ce qu'on en a retenu, après l'avoir installé, lancé
    sur les huit profils dans un conteneur isolé, et lu de bout en bout.

    Ce qu'on a regardé

    • Vidéo. Dans le dépôt, 2 min 16.
    • Dépôt. 388 fichiers, licence MIT, un README qui donne l'usage, les options, la lecture de la sortie, les limites annoncées et les codes de retour.
    • Documentation. Ta note de méthode, une mémoire projet, des plans, des phases, des revues et sept fiches d'audit datées.
    • Harnais. Un CLAUDE.md, douze règles chargées selon les chemins, ta mémoire projet, un pre-commit.
    • Intégration continue. Aucune. La porte est locale, pnpm check, branchée avant chaque commit.
    • Tests. 1 111, tous verts sauf un, qui dépend d'une configuration machine que notre bac à sable ne fournit pas.
    • Interfaces. Pas d'écran. Le terminal, un format JSON versionné, et un plugin Claude Code installable avec ses deux skills.
    • Le calcul. Lu ligne par ligne, puis testé en te donnant un autre modèle de niveaux.
    • Un dossier abîmé exprès, pour voir comment il réagit.

    Comment ton outil marche

    • Un axe n'est pas noté, il est comparé à une exigence. Trois formes de comparaison, aucun score.
    • Le niveau retenu est le plus haut dont toutes les exigences sont remplies.
    • Ta règle centrale tient en une ligne. Une observation absente ou non confirmée devient « non prouvé », jamais « non atteint ». Une donnée qui manque n'est jamais un zéro.
    • Le modèle de niveaux vit hors du code, dans un fichier qu'on peut remplacer en ligne de commande.
    • Le déclaratif n'est pas utilisé, et c'est écrit dans ton code.

    Ce qui marche bien

    • La sortie donne l'écart exact jusqu'au cran suivant. « Pour atteindre Silver : ✗ Harness, manque la boucle de validation. Déjà au niveau requis : Taille, En parallèle. »
    • Le déterminisme tient jusqu'au bout. Deux dépendances en production, aucun appel à un modèle.
    • Le modèle est vraiment remplaçable. On t'en a donné un autre. Un profil a changé de cran, avec le seuil demandé et le seuil observé affichés côte à côte.
    • Tu ne supposes pas que les niveaux s'empilent, tu le vérifies. Un modèle où un niveau demande moins que le précédent est refusé, avec le message qui dit lequel.
    • Quand ton collecteur de dépôt échoue, c'est écrit en clair. assess sur ton propre dépôt publie l'échec et son motif, sans rien deviner.
    • L'architecture suit le même soin. Quatre parties séparées, et un script qui vérifie que dix de tes onze règles de séparation tiennent toujours. On en a cassé deux pour vérifier : il échoue, et il nomme la règle.

    Ce qu'on a préféré

    La différence entre « je n'ai pas la donnée » et « la donnée dit non ». Les deux n'appellent pas la même action, et ça tient jusque dans ton code. Sur le profil le moins renseigné, tu écris « aucun niveau prouvé », jamais un niveau bas.

    Et ta commande harness, qui sort du sujet. Elle chiffre ce qu'un contexte coûte à l'ouverture d'une session, repère ce que la mémoire et les règles répètent, et propose des retraits. Elle nous a d'ailleurs signalé un problème dans deux de nos propres fichiers. Vérification faite, elle avait raison.

    Ce qu'on améliorerait

    • La commande annoncée dans ton formulaire n'existe pas dans le dépôt. C'est le premier mur pour qui suit la doc, et le plus facile à enlever.
    • Le refus s'arrête juste avant la réponse. Sur un profil réduit à deux fichiers, tu écris « niveau prouvé : aucun, 1 axe confirmé sur 4 », et ça s'arrête là. Garde ça, et ajoute un niveau estimé à côté. Ta couverture d'axes est déjà la mesure d'incertitude qu'il faut.
    • Un fichier que ton outil n'arrive pas à ouvrir mérite un traitement à part. Aujourd'hui, un fichier coupé en deux donne la même réponse qu'un fichier qui n'existe pas. Et un fichier qu'on n'a pas le droit d'ouvrir éteint un axe entier. On a fait le test : on a bloqué l'accès à un fichier que tu n'utilises même pas, et le verdict est tombé de Copper à « aucun niveau prouvé ». Tes deux collecteurs affichaient pourtant « terminé ». Tu sais déjà signaler ce genre de souci pour le collecteur qui lit le dépôt, il reste à le faire pour celui qui lit les profils.
    • Les seuils de découpage ne suivent pas le modèle. Les niveaux sont dans le fichier remplaçable, mais ce qui transforme une donnée brute en valeur d'axe reste en dur.
    • Ton outil lit moins de pièces qu'il n'y paraît. Le code, l'analyse statique et les pull requests ne sont jamais ouverts : on les a supprimés d'un profil, et la sortie n'a pas changé d'un caractère. La session n'est qu'un marqueur de présence, tu testes son nom de fichier. Sur le profil réduit à une session, la seule pièce disponible n'est donc jamais lue.
    • L'attribution par personne passe par un appel réseau, donc on n'a pas pu la voir tourner. Lire les pull requests du dossier ouvrirait ce chemin hors ligne.

    En résumé

    Une ligne de commande déterministe, quatre parties séparées dont la séparation est vérifiée une à une par un script, un modèle de niveaux remplaçable par un fichier, un plugin Claude Code installable, et une commande d'audit du contexte qui sort du sujet.

    Ton calcul refuse d'affirmer ce qu'il n'a pas vu, et ta sortie donne l'écart exact jusqu'au cran suivant, avec ce qui est déjà bon. On l'a vérifié en te donnant un autre modèle, et un profil a bougé d'un cran.

    Ce qu'on garde

    Ne jamais remplacer une donnée manquante par un zéro, et le montrer à l'écran. Un signe pour ce qu'on n'a pas pu observer, un autre pour ce qu'on a observé et qui n'atteint pas le seuil. Les deux ne se corrigent pas de la même façon.

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

    renduProjet rendu

    Type

    No type

    Fields

    Priority

    None yet

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions