Aller au contenu

Guide agent IA contributeur

Ce guide s’adresse aux agents IA (Claude, Codex, Gemini, etc.) qui contribuent du code à arka-deck via la CLI ou un éditeur intégré. Il rassemble les working rules à respecter pour que les contributions soient propres et sûres.

Les contributeurs humains peuvent aussi le consulter — les règles s’appliquent universellement.


  1. Respecter le périmètre demandé. Si la tâche dit “modifier core/use-cases/projects/”, ne pas toucher à adapters/inbound/web/ui/. En cas de besoin légitime hors périmètre, le documenter avant d’éditer.

  2. Worktree partagé. Un dépôt arka-deck en cours de chantier peut avoir des modifications non commitées d’autres contributeurs. Ne jamais reverter ce qui n’a pas été créé par vous. Les modifications non liées à votre tâche restent telles quelles.

  3. Lire avant d’écrire. Avant de modifier un fichier, lire son contenu et son contexte. Le code n’est pas du contenu interchangeable — il a une histoire et des dépendances.

  4. Une PR = une intention. Pas de mélange “refactor + nouvelle feature + fix linter”. Découper.

  5. Pas d’opportunisme. Pas de “tant que j’y suis je nettoie ce fichier”. Le scope de la PR est défini par la tâche, pas par votre humeur.


Avant de toucher au code, lire :

Pour les modifications non triviales, lire aussi les tests existants — ils documentent le comportement attendu.


Le linter ESLint applique des frontières strictes (ADR 0001) :

SourceInterdit d’importer
core/**adapters/**, composition/**, addons/**, providers/**
core/domain/**core/use-cases/**
adapters/inbound/**adapters/outbound/**
adapters/**addons/**

Une violation = lint qui échoue = CI rouge. Ne pas tenter de contourner.


  • Conventional commits : <type>(arka-deck): <description courte> (docs, feat, fix, refactor, ci, style, chore).
  • DCO sign-off : git commit -s (ajoute Signed-off-by:).
  • Description précise : verbes actifs, focus sur le WHY, pas seulement le WHAT.

Exemple :

docs(arka-deck): refonte documentaire — produit/dev séparés, bilingue strict
Refond docs/ en deux portes d'entrée distinctes pour clarifier
l'audience PM vs contributeur dev.

Pour toute modification de code :

  • Ajouter ou mettre à jour les tests dans le périmètre touché.
  • npm test doit passer localement.
  • Pour les routes HTTP, ajouter un test dans adapters/inbound/web/server/src/__tests__/.
  • Pour les modifications de sécurité (URL, secrets), tests unitaires directs sur la politique.

❌ Utiliser InMemoryFilesystem injecté en deps.

❌ arka-deck ne mute jamais .claude/settings.json (settings utilisateur Claude Code). Voir le pattern Materializer.

❌ Le dossier .input/ est interne (gitignored). Ne jamais le citer dans un fichier versionné.

❌ Ne pas écrire “marketplace tiers actif” ou “Tauri disponible” tant que ce n’est pas vrai en production. Les promesses futures vont dans ROADMAP.md.

❌ Pas de logger.info('instance créée', instance) si instance peut contenir une clé. Loguer uniquement l’id.


  • La tâche est complète (pas d’implémentation partielle).
  • Les tests existants passent (npm test).
  • Les nouveaux comportements sont testés.
  • npm run lint passe.
  • npm run typecheck passe.
  • Les frontières d’import sont respectées (lint).
  • Aucun .input/ ou fichier interne référencé.
  • Commit signé DCO (git commit -s).
  • Description claire du WHY dans le commit.