Guide Maifady — tutoriel pratique

Aucune connaissance préalable nécessaire. Comprendre, installer, utiliser, devenir bon en 30 minutes. Tutoiement, exemples concrets, scénarios réalistes.

Partie 1 — Comprendre en 5 minutes

🤔 C'est quoi Maifady ?

Imagine que tu as 30 collègues experts dans ton ordinateur. Pas des juniors. Des seniors, chacun spécialiste d'un truc précis :

Tu les appelles quand tu veux, ils font leur taf, tu gagnes des heures.

🎯 Qu'est-ce qu'un "agent" ?

Un agent, c'est juste un fichier texte qui dit à Claude :

💬
"Tu es un expert sécurité. Quand on t'appelle, voilà comment tu bosses : étape 1, étape 2. Voilà comment tu rends ton rapport."

Quand tu invoques l'agent, Claude endosse ce rôle. Il a sa méthodologie, son format, son focus.

📋 Pré-requis

Partie 2 — Installation en 90 secondes

Étape 1 — Télécharge

Récupère maifady-plugin.zip (44 KB).

Étape 2 — Décompresse + déplace

Déplace le dossier maifady-plugin/ dans :

Windows :

C:\Users\<ton-nom>\.claude\plugins\maifady\

macOS / Linux :

~/.claude/plugins/maifady/

Étape 3 — Relance Claude Code

Ferme la session, relance. Voilà.

✅ Vérification

Liste-moi les agents disponibles dans ce projet.

Tu dois voir les 30 noms.

Partie 3 — Ta première commande

Le setup

Dans un projet Git, modifie quelque chose puis :

git add .

L'invocation

@code-reviewer-lite review mes changements stagés

Tu obtiens

# Code review — 2 files, 1 finding

## P1 (fix before merge)
1. **hello.py:3** — `print` sans gestion d'encoding
   Sur Windows, peut planter avec des accents.
   Fix: définir PYTHONIOENCODING=utf-8.
🎉
Bravo, tu as utilisé ton premier agent.

Partie 4 — Les 5 façons d'utiliser un agent

Pattern A — Invocation directe

@security-auditor audit src/auth/

Pattern B — Plusieurs agents en parallèle 🔥

 En parallèle :
- @code-reviewer-lite sur mon diff
- @security-auditor sur src/auth/
- @sql-optimizer sur queries/orders.sql
💡
Mot magique : "en parallèle" ou "simultanément". Sans ça, Claude peut enchaîner.

Pattern C — Délégation automatique

Tu décris ton problème en langage naturel, Claude choisit l'agent.

 J'ai une requête SQL qui prend 4 secondes, peux-tu l'optimiser ?

Pattern D — Chaînage

 1. @dead-code-finder identifie le code mort dans src/
2. Puis @refactor-assistant propose un plan
3. Puis @commit-message-writer écrit le message

Pattern E — Coller du code direct

 @regex-explainer explique-moi :
^[^\s@]+@[^\s@]+\.[^\s@]+$

Partie 5 — Les 30 agents en action

Pour chaque agent : pitch, scénario réaliste, ce que tu tapes, ce que tu obtiens, astuce bonus.

🔎
Utilise la barre de recherche en haut ou les chips de filtre pour naviguer rapidement.
Aucun agent ne correspond.Essaie un autre mot-clé ou clique sur "Tout (30)".

🛡️ Code Quality (6 agents)

1@code-reviewer-lite— Le sniper rapideQuality
Le pitch — Review rapide P0/P1/P2 de ton diff. 2 minutes par fichier. Catche les vrais bugs.

Scénario

Tu codes depuis 1h, tu veux commit. Avant git commit, tu veux un avis pro en 30 secondes.

Tu tapes

git add .
@code-reviewer-lite review mes changements stagés

Tu obtiens

# Code review — 4 files, 2 findings

## P0 (blocking)
1. **AuthController.php:34** — Password loggué en clair
   Fix: ne JAMAIS logger le password.

## P1 (fix before merge)
2. **AuthController.php:18** — Pas de rate limit sur /login
   Fix: ajouter le RateLimitMiddleware.
💡
Astuce bonus : Lance-le avant chaque commit. 30 secondes qui te sauvent une fois sur dix.
2@code-reviewer-pro— Le mentor seniorQuality
Le pitch — Review approfondie : design, perf, concurrence, observabilité, dette. Pour les PR importantes.

Scénario

Tu as fini une grosse PR qui ajoute la facturation. Tu veux te faire reviewer par un senior virtuel avant le collègue.

Tu tapes

@code-reviewer-pro review ma branche feature/billing vs main,
focus sur design et perf

Tu obtiens

Rapport détaillé avec sections "Design", "Performance", "Concurrence", "Observabilité", "Dette". Plus des questions ouvertes.

💡
Astuce : Utilise-le avant d'envoyer ta PR. Review humaine 5× plus rapide ensuite.
3@security-auditor— Le chasseur OWASPQuality
Le pitch — Audit OWASP Top 10 + secrets + crypto. Avec exploit path et fix concret.

Scénario

Tu lances ton SaaS la semaine prochaine. Tu veux un audit sécu complet avant launch.

Tu tapes

@security-auditor audit complet. Focus :
- src/auth/ (login, signup, password reset)
- src/api/ (endpoints publics)
- secrets potentiellement hardcodés

Tu obtiens

# Audit sécurité — 8 findings

## CRITICAL (1)
### 1. SQL injection in password reset
- Location: src/auth/PasswordReset.php:42
- Exploit: POST /password-reset avec email="' OR 1=1--"
- Impact: pre-auth full account takeover.
- Fix: prepared statement.

## HIGH (3)...
💡
Astuce : Lance ça avant chaque release majeure. Et après tout changement d'auth.
4@refactor-assistant— Le chirurgienQuality
Le pitch — Refactoring incrémental. Plan en étapes, comportement préservé.

Scénario

Une fonction de 240 lignes que personne ne comprend. Tu veux la nettoyer sans rien casser.

Tu tapes

@refactor-assistant cette fonction processOrder() fait 240 lignes.
Propose un plan de refactor en plusieurs étapes safe.

Tu obtiens

## Refactor plan — 5 étapes safe

### Étape 1 : Extract validateOrderInput()
### Étape 2 : Extract calculatePricing()
### Étape 5 : processOrder() devient un orchestrateur de 30 lignes
⚠️
Astuce : JAMAIS de gros refactor "tout d'un coup". L'agent t'oblige à découper.
5@dead-code-finder— Le démolisseurQuality
Le pitch — Fonctions inutilisées, imports morts, fichiers orphelins, TODOs périmés.

Scénario

Tu reprends un projet legacy démarré il y a 4 ans. Tu veux la liste de ce qui peut dégager.

Tu tapes

@dead-code-finder scan le repo. Distingue :
- code mort certain
- probablement mort (à confirmer)
- imports inutilisés
- TODOs > 1 an

Tu obtiens

# Dead code report — 47 findings

## Confident (safe to remove) — 14 items
## Likely (please confirm) — 18 items
## Unused imports — 11 items
## Stale TODOs — 4 items
💡
Astuce : Commence par les "Confident". Pour les "Likely", vérifie manuellement.
6@complexity-analyzer— Le radar gnarlyQuality
Le pitch — Mesure complexité cyclomatique + cognitive. Liste les fonctions à découper.

Scénario

Ton code devient "complexe" mais tu ne sais pas où précisément.

Tu tapes

@complexity-analyzer top 10 hot spots, ranked par complexité cognitive.
Pour les 3 pires, propose un plan de décomposition.

Tu obtiens

| Function        | File:line        | CC | Cog | LOC |
|-----------------|------------------|----|-----|-----|
| renderDashboard | Dashboard.tsx:42 | 28 | 52  | 187 |
| processWebhook  | Webhook.php:118  | 24 | 47  | 161 |

## Top 3 — plan de décomposition
### 1. renderDashboard (cog 52)
- Extraire useDashboardData() (hook)
- Extraire 3 sous-composants
- renderDashboard devient orchestrateur ~30 lignes
💡
Astuce : Cognitive > cyclomatic pour prédire les bugs. Concentre-toi sur la colonne "Cog".

🗄️ Database & Performance (4 agents)

7@sql-optimizer— Le démineur SQLDatabase
Le pitch — Analyse requête lente. Rewrite + indexes + EXPLAIN reasoning.

Scénario

Ton dashboard met 4.2 secondes. Une requête sur orders (4M lignes).

Tu tapes

@sql-optimizer cette requête prend 4.2s :

SELECT o.*, u.email FROM orders o
JOIN users u ON u.id = o.user_id
WHERE o.status = 'pending' AND o.created_at > NOW() - INTERVAL '7 days'
ORDER BY o.created_at DESC LIMIT 50;

Postgres 15. Voici les schemas + EXPLAIN ANALYZE :
[colle]

Tu obtiens

## Diagnosis
Seq scan sur orders (4M rows). Index manquant.

## Index recommendation
CREATE INDEX idx_orders_status_created ON orders (status, created_at DESC)
WHERE status = 'pending';

## Expected impact
Seq scan (4.2s) → Index Scan (4-8 ms) — ~500× plus rapide
💡
Astuce : Donne-lui toujours l'EXPLAIN ANALYZE. Sans, il devine.
8@schema-designer— L'architecte DBDatabase
Le pitch — Schéma relationnel normalisé. Types, indexes, FK. CREATE TABLE prêt.

Scénario

Tu démarres une app de gestion de tâches. Schéma DB en 5 minutes, fait correctement.

Tu tapes

@schema-designer schéma pour app de tâches :
- Users, Projets, Tâches (titre, due, statut, priorité)
- Tags M-N sur tâches
- Commentaires + historique

Cible : MariaDB 11. Multi-tenant.

Tu obtiens

6 CREATE TABLE complets, types adaptés (VARCHAR(320) emails, BIGINT IDs), indexes FK, CHECK constraints, soft delete. Plus l'ordre de migration.

💡
Astuce : Il rajoute automatiquement created_at, updated_at, deleted_at.
9@migration-writer— Le démineur de migrationsDatabase
Le pitch — Migrations SQL forward-only, safe, sans downtime.

Scénario

Ajouter colonne phone NOT NULL UNIQUE sur users. 5M lignes. Prod live.

Tu tapes

@migration-writer ajoute phone VARCHAR(20) NOT NULL UNIQUE à users.
5M rows, MariaDB 11, prod live. Plan en plusieurs migrations safe.

Tu obtiens

## Plan en 4 migrations

### 023 — Add column nullable (instant)
ALTER TABLE users ADD COLUMN phone VARCHAR(20) NULL;

### 024 — Backfill en chunks (script séparé)
### 025 — Add UNIQUE index (online)
### 026 — Add NOT NULL constraint (après backfill 100%)
⚠️
Astuce : Pour les DROP COLUMN en prod, plan en 3 étapes (stop writes → stop reads → drop).
10@perf-profiler— Le diagnosticienDatabase
Le pitch — Diagnostique latence, mémoire, CPU. Outils par stack. Hypothèses ordonnées.

Scénario

API Python consomme 4 GB. Démarrage : 200 MB. 1h plus tard : 4 GB. Memory leak.

Tu tapes

@perf-profiler API Flask en prod, RAM 200MB → 4GB en 1h.
Outils, hypothèses prioritaires ?

Tu obtiens

## Suggested measurement
1. memray (sampling, no code change)
2. py-spy snapshot

## Hypothesis ranking
1. Cache sans éviction — 60%
2. Connexions DB session leak — 25%
3. Logging handlers — 10%
💡
Astuce : Toujours mesurer avant d'optimiser.

🧪 Testing (3 agents)

11@test-generator— Le rédacteur de testsTesting
Le pitch — Tests unitaires AAA. Framework détecté. Happy + edges + errors.

Scénario

Tu viens d'écrire calculatePrice(items, discount). Tu veux les tests générés.

Tu tapes

@test-generator génère les tests pour calculatePrice() dans src/pricing.ts.
Couvre : happy, panier vide, discount négatif, discount > 100%, prix négatif.

Tu obtiens

describe('calculatePrice', () => {
  test('returns 0 for empty cart', () => {
    expect(calculatePrice([], 0)).toBe(0);
  });
  test('applies discount correctly', () => {
    expect(calculatePrice([{price:100,quantity:2}], 10)).toBe(180);
  });
  test('throws on negative discount', () => {
    expect(() => calculatePrice([], -5)).toThrow();
  });
});
💡
Astuce : Donne-lui la fonction + ses types. Pas de tests as any.
12@e2e-test-writer— Le journey-testerTesting
Le pitch — Tests E2E Playwright. Locators sémantiques, auto-waiting, network mocks.

Scénario

Flow "signup → vérif email → onboarding". Tu veux un test E2E en CI.

Tu tapes

@e2e-test-writer test Playwright pour le journey :
1. /signup → fill + submit
2. Page confirmation
3. Clic email (API /test/last-email)
4. /onboarding → /dashboard avec "Welcome"

Tu obtiens

Fichier tests/e2e/signup.spec.ts avec locators getByLabel, getByRole, auto-waiting, cleanup afterEach.

💡
Astuce : Précise comment intercepter les emails (mailpit, /test/last-email).
13@coverage-improver— Le boucheur de trousTesting
Le pitch — Gaps de tests à fort impact. Pas de tests bidons.

Scénario

Repo à 32% coverage. Passer à 70% sans tests bidons.

Tu tapes

@coverage-improver repo TypeScript + Vitest à 32%.
Identifie 5 gaps les plus impactants.

Tu obtiens

## Top 5 gaps prioritaires
1. src/api/users.ts — 0%, API publique
2. src/billing/invoice.ts — 8%, business critical
3. src/auth/passwordReset.ts — 15%, security
4. src/utils/dateFormatter.ts — 0%, widely used
5. src/notifications/emailQueue.ts — 22%, error paths

## Expected new coverage : ~58%
⚠️
Astuce : Ne cherche jamais 100%. 70-80% sur ce qui compte > 100% sur des trucs triviaux.

✏️ Git & Documentation (5 agents)

14@commit-message-writer— Le rédacteur de commitsDocs
Le pitch — Conventional Commits depuis ton diff. Type, scope, subject impératif.

Scénario

4 fichiers stagés. Tu allais taper git commit -m "fix stuff". Stop.

Tu tapes

git add .
@commit-message-writer

Tu obtiens

fix(auth): prevent timing attack on password verification

The previous compare() used a string equality check that returned
early on first mismatch, leaking timing information.

Replace with hash_equals() which is constant-time.

Refs: #SEC-1234
💡
Astuce : Lance-le systématiquement. Tes commits deviennent un changelog lisible.
15@readme-generator— Le rédacteur de READMEDocs
Le pitch — README.md pro depuis l'analyse réelle du repo. Pas de filler.

Scénario

Tu reprends un projet sans README.

Tu tapes

@readme-generator analyse le repo et écris un README.md complet.
Langue : français.

Tu obtiens

Un README avec titre + description, stack détectée, quick-start (commandes réelles), variables d'env, tests, licence. Aucune section bidon.

💡
Astuce : Si tu as un README existant pas top, lance-le quand même. Il propose une alternative.
16@gitignore-generator— Le filtreurDocs
Le pitch — .gitignore adapté à la stack. Polyglot OK.

Scénario

Projet Next.js + Supabase + Stripe. Sans oublier le .env.local.

Tu tapes

@gitignore-generator Next.js + Supabase + Stripe.

Tu obtiens

# --- Node ---
node_modules/
# --- Next.js ---
.next/
# --- Env / secrets ---
.env
.env.local
!.env.example
# --- Stripe / Supabase / OS / IDE ---
⚠️
Astuce : Lance-le AVANT ton premier git add ..
17@tech-writer— Le documentalisteDocs
Le pitch — ADR, runbooks, design docs. Format précis pour chaque type.

Scénario

Rédiger un ADR : Postgres vs MongoDB.

Tu tapes

@tech-writer ADR : on choisit Postgres plutôt que MongoDB.
Raisons : 80% relations ACID, équipe Postgres, reporting SQL, < 100M docs.

Tu obtiens

ADR formaté Context / Options / Decision / Consequences / Revisit if. Tradeoffs honnêtes.

💡
Astuce : Demande-lui un runbook après une alerte PagerDuty. Tu transformes la douleur en doc.
18@api-doc-generator— Le scribe d'APIDocs
Le pitch — Doc API depuis ton code (signatures + docblocks).

Scénario

API Express, 25 endpoints. Aucune doc.

Tu tapes

@api-doc-generator doc markdown pour tous les endpoints dans src/routes/.
Inclus : path, méthode, body, response, auth, codes d'erreur.

Tu obtiens

Un docs/api.md basé sur le code réel. Endpoints sans docblock listés en "manque de doc" plutôt qu'inventés.

💡
Astuce : Combine avec @openapi-generator pour Swagger UI auto.

🎨 Frontend (3 agents)

19@react-modernizer— Le migrateurFrontend
Le pitch — Class components → function + hooks. APIs dépréciées → modernes.

Scénario

Projet React de 2019. Class components partout. Tu veux moderniser sans casser.

Tu tapes

@react-modernizer migre Dashboard.tsx (Class) vers function + hooks.
Préserve l'API publique. Tests verts.

Tu obtiens

## Avant : Class, 187 lignes
## Après : Function + hooks, 124 lignes

## Mapping
- this.state → useState (4 hooks, un par concern)
- componentDidMount → useEffect([], ...)
- this.refs.input → useRef

## Subtle behavior changes
- useEffect runs after paint. Impact ici : aucun.
💡
Astuce : Un composant à la fois. Commit entre chaque.
20@accessibility-auditor— L'inspecteur a11yFrontend
Le pitch — Audit WCAG 2.2 AA. Sémantique, clavier, screen reader, contraste, focus, ARIA.

Scénario

Formulaire signup qui marche à la souris. Ton CEO veut "accessible pour le marché EU".

Tu tapes

@accessibility-auditor audit src/pages/Signup.tsx contre WCAG 2.2 AA.
Fixes concrets.

Tu obtiens

## CRITICAL (2)
1. **Signup.tsx:34** — Input email sans label
   WCAG 1.3.1 + 4.1.2 — bloque les screen readers.
   Fix: <label htmlFor="email">Email</label>

2. **Signup.tsx:88** — Bouton "X" sans nom accessible
   Fix: <button aria-label="Fermer">X</button>

## HIGH (3)... ## MEDIUM (4)...
💡
Astuce : Lance ça dès le développement. 10× moins cher de fixer en codant que rétro.
21@bundle-analyzer— Le diététicien JSFrontend
Le pitch — Identifie les plus gros. Code-splitting, dynamic imports, libs plus légères.

Scénario

Site charge en 4 secondes sur 4G.

Tu tapes

@bundle-analyzer analyse mon bundle Next.js.
Top 5 contributeurs gzippés + réductions concrètes.

Tu obtiens

| Module    | Gzipped | Note                    |
|-----------|---------|-------------------------|
| moment    | 71 KB   | → dayjs (-60 KB)        |
| lodash    | 38 KB   | tree-shake (-25 KB)     |
| chart.js  | 28 KB   | lazy load (-28 KB)      |

## Expected saving : -143 KB (-29%)
💡
Astuce : Mesure gzippé, pas raw. C'est ce que le user télécharge réellement.

🔌 Backend & API (3 agents)

22@api-designer— L'architecte d'APIBackend
Le pitch — REST/GraphQL : resources, verbes, status codes, errors, pagination, auth.

Scénario

App de réservation de salles. API design avant de coder.

Tu tapes

@api-designer API REST pour réservation de salles.
Resources : Users, Rooms, Bookings. Bearer JWT. Multi-tenant.

Tu obtiens

Doc Markdown : ressources, endpoints, codes HTTP, format d'erreur, pagination cursor, versioning /v1/, auth.

💡
Astuce : Fais ça avant de coder. 1h de design = 10h de refactor évités.
23@openapi-generator— Le générateur de specBackend
Le pitch — OpenAPI 3.1 depuis ton code. Compatible Swagger UI / Redoc.

Scénario

API Node existante. Tu veux Swagger sans rédiger à la main.

Tu tapes

@openapi-generator analyse src/routes/ et génère openapi.yaml.

Tu obtiens

Un docs/openapi.yaml : paths, schemas TypeScript, responses, auth, examples. Tu balances dans Swagger UI → doc interactive.

💡
Astuce : Endpoints sans types/docblocks → flagués explicitement, pas inventés.
24@microservices-architect— Le décompositeurBackend
Le pitch — Analyse monolithe, propose découpe. Et dit quand RESTER monolithique.

Scénario

Monolithe Rails 8 ans, 200k lignes. L'équipe dit "il faut microservices". Tu doutes.

Tu tapes

@microservices-architect analyse. Rester monolithique ou découper ?
Équipe : 6 devs. Pas de scaling pain. 50k MAU.

Tu obtiens

## Recommandation
**Reste modular monolith.**

## Pourquoi
- < 8 devs → coûts ops microservices > bénéfices.
- Aucun pain de scaling.
- Migrer = ralentir 6 mois pour résoudre un problème inexistant.

## Plan : Modular monolith
1. Modules avec frontières claires.
2. Pas d'imports cross-module sauf via API.
3. Extraction future = facile.
Astuce : Cet agent te dit non quand il faut. Pas "yes-man".

☁️ DevOps & Cloud (3 agents)

25@dockerfile-optimizer— Le sculpteur d'imagesDevOps
Le pitch — Réduit taille image, améliore cache, hardening. Multi-stage builds.

Scénario

Image Docker fait 1.2 GB. Pull lent.

Tu tapes

@dockerfile-optimizer optimise mon Dockerfile.
Node.js 20 + Next.js. Image actuelle : 1.2 GB.

Tu obtiens

Dockerfile multi-stage, base node:20-alpine, RUN collapsés, USER appuser. ~180 MB au lieu de 1.2 GB.

💡
Astuce : Demande aussi le .dockerignore. Build context 10× plus rapide.
26@kubernetes-yaml-writer— Le rédacteur K8sDevOps
Le pitch — Manifests K8s prod-ready. Deployment + Service + Ingress + HPA + PDB.

Scénario

Première app sur K8s. Tu veux du vrai, pas du "Hello World".

Tu tapes

@kubernetes-yaml-writer manifests pour Node.js :
- image : myregistry/myapp:v1.2.3, port 3000
- env : DB_HOST, DB_PASS (secret)
- 3 replicas, autoscale 3→10 sur CPU 70%
- Ingress https sur api.myapp.com
- runAsNonRoot, readonly FS

Tu obtiens

6 fichiers YAML avec maxUnavailable: 0, resources, probes, runAsNonRoot, capabilities drop ALL, PDB minAvailable: 2.

💡
Astuce : Demande un Kustomize layout (base/ + overlays/) si plusieurs envs.
27@terraform-writer— Le rédacteur IaCDevOps
Le pitch — Modules Terraform AWS/GCP/Azure. State, providers pinned, security defaults.

Scénario

Nouveau projet AWS. Tout en IaC dès le jour 1.

Tu tapes

@terraform-writer setup AWS :
- VPC 3 AZs
- ECS Fargate
- RDS Postgres single-AZ
- ALB devant ECS
- Route 53 pour api.myapp.com
- State remote S3 + DynamoDB lock

Tu obtiens

Structure modules + envs prête à terraform init. Encryption partout, IAM least-privilege, SG verrouillés.

⚠️
Astuce : Avant terraform apply sur prod, toujours review le plan.

🤖 AI / ML & Divers (3 agents)

28@prompt-engineer— Le coach LLMAI
Le pitch — Diagnostique prompts LLM incohérents. Réécrit avec clarté + contraintes + examples.

Scénario

Prompt extraction facture {vendor, date, total}. 30% du temps ça rate.

Tu tapes

@prompt-engineer ce prompt rate 30% du temps :

"Tu es un assistant qui extrait les données d'une facture..."

Améliore-le.

Tu obtiens

## Diagnostic
- Pas de format strict → improvisation
- Pas d'exemple → hallucination
- Pas de gestion "champ manquant"

## Rewrite
You are an invoice data extractor. Output STRICT JSON.

<output_format>
{"vendor":"string|null","date":"YYYY-MM-DD|null","total":"number|null"}
</output_format>

<rules>
- If field not clear, output null. Never guess.
</rules>

<example>
Input: "ACME Corp, March 15 2026, $1,234.56"
Output: {"vendor":"ACME Corp","date":"2026-03-15","total":1234.56}
</example>
💡
Astuce : Toujours au moins UN exemple. Le modèle apprend mieux par mimétisme.
29@ml-pipeline-architect— L'architecte ML prodAI
Le pitch — Pipeline ML prod : data, training, eval, deploy, monitoring drift. Et anti-patterns.

Scénario

Modèle de prédiction churn en prod, première fois. ML OK, MLOps non.

Tu tapes

@ml-pipeline-architect architecture pour XGBoost churn :
- 50k clients, inférence batch quotidienne
- Données Postgres, cloud AWS
- 1 data scientist + 2 backend devs, zéro MLOps

Tu obtiens

Architecture stage par stage (ingestion → features → training → eval → deploy → monitoring), stack (MLflow, Airflow), alternatives selon complexité, 3 risques premiers.

⚠️
Astuce : Data quality monitoring dès jour 1. Modèle correct sur données pourries = dangereux.
30@regex-explainer— Le traducteur de regexAI
Le pitch — Explique regex token par token. Cas de test + gotchas.

Scénario

Regex héritée que personne ne comprend. Tu veux savoir avant d'y toucher.

Tu tapes

@regex-explainer dans validators/email.js, personne ne sait :

/^[^\s@]+@[^\s@]+\.[^\s@]+$/

Tu obtiens

## Summary
Email basique : texte sans espace ni @, @, texte, point, texte.

| Token   | Means                       |
|---------|-----------------------------|
| ^       | début                       |
| [^\s@]+ | un+ caractères ni @ ni espace |
| @       | @ littéral                  |
| \.      | point littéral              |

## Matches
- user@example.com ✓
## Does NOT match
- user@example (manque le .)
- user @example.com (espace)

## Gotchas
- Très permissive. "a@b.c" passe.
- Pour valider vraiment : email de confirmation.
💡
Astuce : Regex basique + email de vérification > regex RFC-5321 de 10 lignes.

Partie 6 — 5 recettes combinées

Recette 1 — Review complète de PR en 2 minutes

 En parallèle sur ma PR (feature/billing vs main) :
- @code-reviewer-pro
- @security-auditor (focus nouveaux endpoints)
- @complexity-analyzer (fichiers modifiés)
- @test-generator vérifie tests sur nouvelles fonctions

Synthétise dans un seul rapport.

Recette 2 — Refactor d'un module legacy

 1. @dead-code-finder code mort dans src/legacy/
2. @complexity-analyzer top 5 hot spots
3. @refactor-assistant plan pour le pire
4. @test-generator tests qui sécurisent

Recette 3 — Préparer une release

 En parallèle :
- @security-auditor full repo
- @bundle-analyzer (vérifier qu'on n'a pas grossi)
- @accessibility-auditor sur pages clés
- @api-doc-generator doc à jour

Puis :
- @commit-message-writer commit de release
- @tech-writer changelog v1.5.0

Recette 4 — Onboarder sur un projet existant

Le projet ne te parle pas, tu le fais parler.

 1. @readme-generator écris un README
2. @complexity-analyzer top 10 hot spots
3. @api-doc-generator liste endpoints
4. @dead-code-finder qu'est-ce qui est mort

Recette 5 — Optimiser une page lente

 1. @perf-profiler stratégie pour /dashboard à 4s
2. @sql-optimizer les 3 requêtes les plus lentes
3. @bundle-analyzer bundle JS de cette route
4. @accessibility-auditor au passage

Partie 7 — Astuces de pro

🎯 Astuce 1 — Donne du contexte précis

@sql-optimizer ma requête est lente

@sql-optimizer cette requête prend 4.2s. EXPLAIN ANALYZE : [paste]. Schema : [paste]. MariaDB 11.

🎯 Astuce 2 — Pin le modèle

Pour les agents critiques (security, refactor, schema), dans le frontmatter :

model: opus

🎯 Astuce 3 — Crée tes propres agents

---
name: mon-agent
description: Ce que fait l'agent. Quand l'utiliser.
tools: Read, Edit, Bash
---

Tu es un expert en [X]. Ta mission est [Y].

## Methodology
1. ...
2. ...

🎯 Astuce 4 — Lance en background

 Lance @security-auditor en background sur le full repo.

Tu continues à bosser. Claude te ping quand fini.

🎯 Astuce 5 — Versionne tes combos

Slash command dans commands/ :

---
name: pre-pr
description: Audit complet avant PR
---

En parallèle :
- @code-reviewer-pro
- @security-auditor
- @complexity-analyzer
Synthétise.

Tu tapes /pre-pr et tout se déclenche.

Partie 8 — Quand ça marche pas

"L'agent dit qu'il connaît pas"

  1. Dossier bien à ~/.claude/plugins/maifady/ (avec .claude-plugin/plugin.json) ?
  2. Tu as redémarré Claude Code ?
  3. Tape Liste les agents — tu dois voir les 30 noms.

"Format weird"

→ Modèle pas assez puissant. /model opus ou /model sonnet.

"L'agent ne lit pas mes fichiers"

→ Hors d'un projet Git, ou permission manquante.

"Je veux modifier un agent"

→ Édite le .md dans agents/. Redémarre Claude Code.

"Plusieurs agents en // ne se lancent pas en //"

→ Mot magique : "en parallèle".

"L'agent invente"

→ Donne plus de contexte. Colle les fichiers, diff, EXPLAIN.


🎉 C'est tout — tu es prêt

Tu as compris, installé, tapé ta première commande, connu les patterns, vu 30 scénarios, 5 recettes, des astuces, et le troubleshooting.

Maintenant, à toi de jouer.

💬
Question ? Bug ? Idée ? → github.com/maifady ou hello@maifady.com