1. Architecture du plugin

Alesta AI suit une architecture modulaire orientée services. Chaque module (SEO, traduction, social, etc.) est une classe autonome qui implémente une interface commune Alesta_Module_Interface et s'enregistre dans un registre central au boot. Aucun couplage fort entre modules : vous pouvez désactiver SEO sans casser Traduction.

Le plugin repose sur trois couches :

  • Core : bootstrap, registre de modules, gestionnaire d'options, client HTTP Claude, logger.
  • Modules : un dossier par module, isolé, désactivable. Chaque module déclare ses propres hooks, settings, et endpoints REST.
  • Admin UI : interface React (compilée via Webpack) côté wp-admin, qui consomme l'API REST interne du plugin.

2. Structure du repo

Le code source est hébergé sur GitHub (privé pendant la v1, ouverture progressive prévue pour la v2). Arborescence simplifiée :

"

alesta-ai/
├── alesta-ai.php // Bootstrap WordPress
├── includes/
│   ├── core/ // Registre, options, logger
│   ├── api/ // Client Claude + cache
│   └── rest/ // Endpoints REST internes
├── modules/
│   ├── seo-meta/
│   ├── translation/
│   ├── social-cards/
│   └── ... // 31 modules au total
├── admin/
│   ├── src/ // React + TSX
│   └── build/ // Bundle compilé
├── tests/
│   ├── phpunit/
│   └── e2e/ // Playwright
├── languages/ // fr_FR.po, en_US.po, etc.
└── composer.json

3. Hooks PHP (actions & filtres)

Le plugin expose plus de 80 hooks documentés. Les principaux :

Actions (do_action) :

  • alesta_ai_boot — déclenché au chargement du plugin, avant l'enregistrement des modules.
  • alesta_ai_module_registered — chaque fois qu'un module s'enregistre. Args : $module_id, $instance.
  • alesta_ai_before_claude_call — avant chaque appel à l'API Claude. Args : $endpoint, $payload.
  • alesta_ai_after_claude_call — après la réponse. Args : $endpoint, $payload, $response, $duration_ms.
  • alesta_ai_meta_generated — après génération d'un titre/meta. Args : $post_id, $meta_data.

Filtres (apply_filters) :

  • alesta_ai_prompt — modifier le prompt envoyé à Claude avant l'appel. Très utilisé pour personnaliser le ton.
  • alesta_ai_claude_model — forcer un modèle spécifique par requête (claude-sonnet-4, haiku, etc.).
  • alesta_ai_module_enabled — activer/désactiver un module dynamiquement.
  • alesta_ai_user_can_generate — contrôler qui peut déclencher une génération (par défaut : rôle Editor+).
  • alesta_ai_cache_ttl — durée du cache par module (en secondes).

4. Créer son propre module

Un module Alesta est une classe PHP qui implémente Alesta_Module_Interface et s'enregistre via le hook alesta_ai_boot. Squelette minimal :

"

<?php
class My_Custom_Module implements Alesta_Module_Interface {
  public function get_id() { return 'my-module'; }
  public function get_name() { return 'Mon module'; }
  public function get_description() { return 'Fait X et Y.'; }
  public function get_required_plan() { return 'solo'; }
  public function init() {
    add_action('save_post', [$this, 'on_save']);
  }
  public function on_save($post_id) { /* logique métier */ }
}
add_action('alesta_ai_boot', function($registry) {
  $registry->register(new My_Custom_Module());
});

Pour appeler Claude depuis votre module, utilisez le service global : alesta_ai()->claude()->complete($prompt, $options). Le client gère auth, retry, rate limiting, et logs automatiquement.

5. Tests unitaires & CI

Le projet utilise PHPUnit 10 pour les tests unitaires PHP et Playwright pour l'E2E sur wp-admin. Coverage global : ~78%.

  • composer test — lance PHPUnit sur le dossier tests/phpunit/.
  • npm run test:e2e — lance Playwright sur un WordPress de test (Docker).
  • composer cs — vérifie le code style (PSR-12 + WP Coding Standards).

CI : GitHub Actions tourne sur chaque PR avec PHP 8.1, 8.2, 8.3 et WordPress 6.4 à 6.7. Aucun merge possible sans tests verts.

6. Contribution open source

Le cœur d'Alesta sera progressivement ouvert sous licence GPL-3.0 (cohérent avec WordPress). En attendant l'ouverture officielle (Q4 2026), vous pouvez déjà :

  • Reporter un bug sur github.com/alesta-ai/alesta-ai/issues (issues publiques).
  • Proposer une feature via le formulaire de contact en cochant "Suggestion".
  • Publier votre module custom sur GitHub avec le tag alesta-ai-module — nous relayons les meilleurs dans la documentation.
  • Rejoindre le canal Discord développeurs (lien envoyé au support).

7. Roadmap technique

  • v1.4 — juillet 2026 : refactor du registre de modules, support multi-tenant pour les agences.
  • v1.5 — octobre 2026 : SDK officiels Node.js et PHP, CLI dédiée alesta.
  • v2.0 — Q1 2027 : ouverture open source du core, marketplace de modules tiers.
  • v2.1+ : support Gutenberg blocks IA, intégration WP-CLI étendue, hooks GraphQL.

8. Ressources & communauté

Une question pointue ? Le support Pro inclut un accès direct à l'équipe dev sous 24h ouvrées.

Besoin d'aide ? Notre équipe vous répond.

Une question, un cas d'usage spécifique, un problème technique ? Le support Alesta AI répond sous 24h en jours ouvrés.