Skip to content

Normes de développement ​

Les normes (NDD) du projet : les résoudre, les importer, les synchroniser, les amender.

ndd_amendment_accept ​

effortless_ndd_amendment_accept — Stabilité : beta · projet

Accepte une proposition d'amendement NDD : écrit toujours le contenu accepté côté local (.ai/ndd/<famille>/<famille>-ndd.v1.md), jamais dans un fichier .heritee.md, car amender une règle héritée est une surcharge locale du même identifiant. Même identifiant que la cible : édite la section en place. Identifiant différent : ajoute une section neuve sans toucher l'ancienne. Valide le texte résultant avant d'écrire : une collision d'identifiant refuse sans rien écrire. Refuse aussi une proposition inconnue, déjà arbitrée, ou un target_id introuvable.

💬 Vous demandez à l’agent

« Accepte la proposition d'amendement AMD-03. »

→ L’agent appelleeffortless_ndd_amendment_accept
  • proposal_id = AMD-03
NomTypeRequisDescription
proposal_idstringouiId de la proposition d'amendement à accepter, tel que rendu par effortless_ndd_amendment_propose. Obligatoire.

ndd_amendment_propose ​

effortless_ndd_amendment_propose — Stabilité : beta · projet

Propose un amendement de règle NDD (édition d'un identifiant existant, ou règle neuve si target_id est absent) : assemble le texte candidat et le fait analyser par le même code que ndd_resolve. Écrit uniquement le registre .effortless/ndd_amendments.json (statut Proposé) ; aucun fichier sous .ai/ndd/ n'est touché. Refuse nommément une famille inconnue, un niveau hors norme ou un Pourquoi absent.

💬 Vous demandez à l’agent

« Propose un amendement à la norme rust sur la règle RUST-012, qui garde son identifiant, au niveau INTERDIT, titré « Pas de unwrap() hors des tests ». Pourquoi : un unwrap() qui échoue fait paniquer le programme. Corps : n'utiliser `unwrap()` que dans les tests. »

→ L’agent appelleeffortless_ndd_amendment_propose
  • family = rust
  • target_id = RUST-012
  • proposed_id = RUST-012
  • level = INTERDIT
  • title = Pas de unwrap() hors des tests
  • why = Un unwrap() qui échoue fait paniquer le programme.
  • body = N'utiliser `unwrap()` que dans les tests.
NomTypeRequisDescription
familystringouiFamille NDD visée ; elle doit exister sous .ai/ndd/. Obligatoire.
target_idstringnonId de la règle existante que l'amendement modifie ; absent pour une règle neuve.
proposed_idstringouiId que portera la règle une fois acceptée. Obligatoire.
levelstringouiNiveau de la règle : OBLIGATOIRE, RECOMMANDÉ ou INTERDIT ; toute autre valeur est refusée. Obligatoire.
titlestringouiTitre de la règle. Obligatoire.
whystringouiJustification de la règle (la section Pourquoi) ; une valeur vide est refusée. Obligatoire.
bodystringouiTexte du corps de la règle. Obligatoire.

ndd_amendment_reject ​

effortless_ndd_amendment_reject — Stabilité : beta · projet

Rejette une proposition d'amendement NDD : pose le statut Rejeté, le motif (obligatoire, mot pour mot) et un horodatage dans .effortless/ndd_amendments.json. Aucun fichier sous .ai/ndd/ n'est ouvert en écriture. Refuse nommément un motif vide ou blanc, une proposition inconnue ou déjà arbitrée.

💬 Vous demandez à l’agent

« Rejette la proposition d'amendement AMD-03, motif : elle contredit la règle de la norme héritée. »

→ L’agent appelleeffortless_ndd_amendment_reject
  • proposal_id = AMD-03
  • reason = Elle contredit la règle de la norme héritée.
NomTypeRequisDescription
proposal_idstringouiId de la proposition d'amendement à rejeter, tel que rendu par effortless_ndd_amendment_propose. Obligatoire.
reasonstringouiMotif du rejet, consigné mot pour mot ; une valeur vide est refusée. Obligatoire.

ndd_import ​

effortless_ndd_import — Stabilité : beta · projet

Importe une norme de développement hébergée dans un dépôt partagé : lecture par git show <dépôt>/<réf>:<chemin> (déclaré dans languages[].ndd.source de la stack), sans fetch ni clone. Pose .ai/ndd/<famille>/<famille>-ndd.v1.heritee.md (contenu brut, sans validation) et son fichier de provenance {depot, reference, date}. Une référence git absente ou invalide dégrade proprement (available:false et raison nommée, aucun fichier posé). Refuse nommément un stack_id inconnu, une techno absente de la stack ou une source qui n'est pas git. Seul point d'écriture des normes héritées par import ; ndd_resolve reste en lecture seule.

💬 Vous demandez à l’agent

« Importe la norme rust depuis le dépôt de normes partagé, pour la stack app. »

→ L’agent appelleeffortless_ndd_import
  • stack_id = app
  • techno = rust
NomTypeRequisDescription
stack_idstringouiId de la stack dont la déclaration languages[].ndd.source est importée. Obligatoire.
technostringouiId du langage déclaré (languages[].id) dont la source git est importée ; c'est aussi le nom de la famille NDD posée. Obligatoire.

ndd_resolve ​

effortless_ndd_resolve — Stabilité : beta · projet

Lecture seule. Résout les normes de développement (NDD) applicables : par familles déclarées (stack), dérivées d'un chemin (path), ou l'ensemble du corpus connu si les deux sont absents. Rend chaque règle qualifiée (id, niveau, titre, pourquoi, famille, origine, fichier, ligne), triée par famille puis identifiant ; le corps n'est servi que si include_body est vrai. Refuse par son nom une famille inconnue, un niveau hors norme, un Pourquoi absent, un identifiant en double ou l'absence totale de normes sous .ai/ndd/.

💬 Vous demandez à l’agent

« Quelles normes de développement s'appliquent au fichier src/parser.rs ? »

→ L’agent appelleeffortless_ndd_resolve
  • path = src/parser.rs
NomTypeRequisDescription
stackarray<string>nonFamilles NDD déclarées à résoudre, nommées comme les dossiers de .ai/ndd/ ; une famille inconnue est refusée. Avec path aussi absent, tout le corpus connu est résolu.
pathstringnonChemin relatif au projet dont on dérive des familles supplémentaires, en plus de stack.
include_bodybooleannonSi true, rend le corps de chaque règle ; défaut false (les corps sont de la prose libre, coûteuse à transmettre).

ndd_source ​

effortless_ndd_source — Stabilité : beta · sans projet · utilisable avant tout projet

Lit ou déclare la source globale des normes de développement (~/.effortless/ndd_source.json) : un dossier local ou une URL git, suivie par effortless_ndd_sync. Sans source : lit. source vide : retire. Un projet peut la surcharger par settings.ndd_source dans effortless.json.

💬 Vous demandez à l’agent

« Déclare ma source globale de normes : le dépôt git https://github.com/ArboRithm/normes.git. »

→ L’agent appelleeffortless_ndd_source
  • source = https://github.com/ArboRithm/normes.git
NomTypeRequisDescription
sourcestringnonAdresse du dépôt de normes : dossier local ou URL git. Absent : lit la source actuelle ; chaîne vide : retire la source.
referencestringnonBranche ou tag à suivre pour une source git (défaut : la branche par défaut).

ndd_sync ​

effortless_ndd_sync — Stabilité : beta · projet

Met à jour les normes héritées du projet depuis son dépôt de normes (source du projet, sinon globale) : pour chaque langage du projet (stacks déclarées, familles présentes, et agnostic), écrit .ai/ndd/<famille>/<famille>-ndd.v1.heritee.md et sa provenance. Ne touche jamais la norme locale. Rend les familles mises à jour, inchangées, et celles que le dépôt ne porte pas. Une source git est clonée puis suivie par fetch dans ~/.effortless/ndd-cache/.

💬 Vous demandez à l’agent

« Mets à jour les normes héritées du projet depuis le dépôt de normes. »

→ L’agent appelleeffortless_ndd_sync

Aucun paramètre.

Effortless — ArboRithm