Configuration .atooxrc.yml

Le fichier .atooxrc.yml permet de personnaliser le comportement d'ATOOX pour votre projet.

Emplacement

Fichier Emplacement Priorité
Projet ./.atooxrc.yml Haute (prioritaire)
Utilisateur ~/.atooxrc.yml Moyenne
Système /etc/atoox/config.yml Basse

Les configurations sont fusionnées, avec priorité au fichier projet.

Configuration minimale

# .atooxrc.yml
version: 1

defaults:
  mode: auto

Configuration complète

# .atooxrc.yml - Configuration complète ATOOX

version: 1

# ============================================================
# Comportement par défaut
# ============================================================
defaults:
  mode: auto                    # full | auto | economy
  branch_prefix: feature/       # Préfixe des branches
  commit_style: conventional    # conventional | angular | simple
  language: fr                  # fr | en

# ============================================================
# Skills
# ============================================================
skills:
  # Skills à charger
  enabled:
    - atoox
    - commit
    - oneshot
    - sonar
    - test
    - perf
    - a11y

  # Skills à désactiver
  disabled: []

  # Configuration par skill
  config:
    atoox:
      auto_commit: true
      auto_pr: false

    sonar:
      threshold: B              # Score minimum accepté
      fail_on: critical         # critical | high | medium

    test:
      coverage_min: 80
      fail_under: true

# ============================================================
# Validation
# ============================================================
validation:
  # Lint
  lint:
    enabled: true
    command: npm run lint       # Commande personnalisée
    fix: true                   # Auto-fix si possible
    strict: false               # 0 warning = échec

  # Types
  types:
    enabled: true
    command: npm run typecheck
    strict: true                # Mode strict TypeScript

  # Tests
  tests:
    enabled: false              # Désactivé par défaut
    command: npm test
    coverage:
      enabled: true
      min: 80
      fail_under: true
    watch: false

  # Sécurité
  security:
    enabled: true
    level: standard             # minimal | standard | paranoid
    ignore:
      - CVE-2023-XXXX           # Ignorer des CVEs

  # Complexité
  complexity:
    enabled: true
    max_cyclomatic: 10
    max_lines_per_function: 50

# ============================================================
# Git & Commits
# ============================================================
git:
  # Branches
  branches:
    main: main
    develop: develop
    prefixes:
      feature: feature/
      bugfix: bugfix/
      hotfix: hotfix/
      release: release/

  # Commits
  commits:
    style: conventional         # conventional | angular | simple
    scope: true                 # Inclure le scope
    emoji: false                # Pas d'emoji
    sign: false                 # GPG signing
    template: |
      {type}({scope}): {subject}

      {body}

      {footer}

  # Hooks Git natifs
  hooks:
    pre_commit:
      - npm run lint
      - npm run typecheck
    commit_msg: []
    pre_push:
      - npm test

# ============================================================
# Pull Requests
# ============================================================
pr:
  auto_create: false            # Créer automatiquement
  draft: false                  # Créer en draft
  template: |
    ## Summary
    {summary}

    ## Changes
    {changes}

    ## Test Plan
    {test_plan}

  labels:
    - enhancement
  reviewers: []
  assignees: []

# ============================================================
# Experts (Centupling Engine)
# ============================================================
experts:
  # Experts favoris (prioritaires)
  preferred:
    - Martin Fowler
    - Kent Beck
    - Robert C. Martin

  # Experts à exclure
  excluded: []

  # Mode de sélection
  selection:
    max_experts: 3
    domain_weighted: true

# ============================================================
# Intégrations
# ============================================================
integrations:
  # GitHub
  github:
    enabled: true
    auto_pr: true
    required_checks:
      - build
      - test
      - lint

  # Jira (PRO)
  jira:
    enabled: false
    host: ""
    project: ""

  # Slack (PRO)
  slack:
    enabled: false
    channel: ""
    events:
      - pipeline_completed
      - error

  # CI/CD
  ci:
    provider: github-actions    # github-actions | gitlab-ci | circleci
    wait_for_checks: true

# ============================================================
# Performance
# ============================================================
performance:
  # Mode économique
  economy:
    skip_optional_steps: true
    minimal_validation: true
    no_ideas_panel: true
    no_learning_report: true

  # Parallélisation (PRO)
  parallel:
    enabled: false
    max_concurrent: 3

  # Cache
  cache:
    enabled: true
    ttl: 3600                   # Secondes

# ============================================================
# Output & Rapports
# ============================================================
output:
  # Verbosité
  verbose: false
  debug: false

  # Format des rapports
  reports:
    format: markdown            # markdown | json | html
    output_dir: .atoox/reports
    include_metrics: true

  # Checkpoints de contexte
  checkpoints:
    enabled: true
    after_steps:
      - validate
      - run-tests
      - docs

# ============================================================
# Fonctionnalités
# ============================================================
features:
  centupling: true              # Moteur cognitif
  ideas_panel: true             # Panel d'experts créatifs
  learning: true                # Rapports d'apprentissage
  telemetry: false              # Aucune télémétrie

# ============================================================
# Chemins
# ============================================================
paths:
  src: src
  tests: tests
  docs: docs
  output: .atoox

# ============================================================
# Patterns à ignorer
# ============================================================
ignore:
  files:
    - "*.min.js"
    - "*.bundle.js"
    - "dist/**"
    - "node_modules/**"
    - ".git/**"

  rules:
    - no-console                # Ignorer cette règle ESLint

Exemples par type de projet

Projet React/TypeScript

version: 1

defaults:
  mode: auto

skills:
  enabled:
    - atoox
    - commit
    - oneshot
    - sonar
    - test
    - perf
    - a11y

validation:
  lint:
    command: npm run lint
  types:
    command: npm run typecheck
  tests:
    command: npm test
    coverage:
      min: 80

git:
  commits:
    style: conventional
    scope: true

Projet Backend Node.js

version: 1

defaults:
  mode: auto

skills:
  enabled:
    - atoox
    - commit
    - sonar
    - test
    - api-audit
    - security

validation:
  security:
    level: paranoid
  tests:
    coverage:
      min: 90

integrations:
  ci:
    provider: github-actions
    wait_for_checks: true

Projet MVP rapide

version: 1

defaults:
  mode: economy

performance:
  economy:
    skip_optional_steps: true
    minimal_validation: true

validation:
  tests:
    enabled: false
  security:
    level: minimal

Variables d'environnement

# Remplacer des valeurs sensibles
export ATOOX_GITHUB_TOKEN=ghp_xxxx
export ATOOX_JIRA_TOKEN=xxx
export ATOOX_SLACK_WEBHOOK=https://...

Référencer dans le fichier :

integrations:
  github:
    token: ${ATOOX_GITHUB_TOKEN}

Validation de la configuration

# Valider le fichier de configuration
atoox config validate

# Afficher la configuration effective
atoox config show

# Afficher une valeur spécifique
atoox config get validation.lint.command

Prochaines étapes

  • Hooks — Automatiser avec les hooks
  • CLI PRO — Options avancées
  • Skills — Configurer les skills