/profile
utilitaire nouveauConfigurer les tech profiles du projet. Les profils injectent des conventions, patterns et anti-patterns spécifiques à une stack technologique dans tous les skills du framework.
Le problème
Le framework est générique — il ne sait pas si votre projet utilise Rust, Java, Python ou TypeScript. Sans profil, les personas (architect, developer, reviewer) appliquent des patterns génériques.
La solution
Les profils ajoutent un contexte technologique spécifique :
CLAUDE.md
profile: rust, tauri, vue-typescript
↓
APEX Step 00 charge les profils
↓
Tous les personas connaissent votre stackUsage
/profile # Voir les profils actifs
/profile list # Lister les profils disponibles
/profile add rust tauri # Ajouter des profils
/profile remove xterm # Retirer un profil
/profile show tauri # Voir le contenu d'un profil
/profile create spring-boot # Créer un profil customProfils disponibles
| Profil | Description | Extends |
|---|---|---|
rust | Conventions Rust, error handling, clippy, toolchain | — |
tauri | Architecture Tauri 2, commandes, plugins, managed state | rust |
vue-typescript | Vue 3 Composition API, Pinia, TypeScript strict | — |
xterm | xterm.js, addons, intégration PTY avec Tauri | vue-typescript |
Comment ça marche
1. Configuration
Ajoutez la ligne profile: dans votre CLAUDE.md :
## Tech Profile
profile: rust, tauri, vue-typescript, xterm2. Chargement automatique
Quand APEX démarre (Step 00), il :
- Lit la ligne
profile:dansCLAUDE.md - Charge chaque fichier
framework/profiles/{name}.md - Résout les
extends:(tauri hérite de rust) - Injecte le contexte combiné dans la tâche
3. Impact sur les personas
| Persona | Sans profil | Avec profil rust + tauri |
|---|---|---|
| Architect | Design générique | Propose Managed State, plugins Tauri, patterns PTY |
| Developer | Code générique | #[tauri::command], thiserror, async/await |
| Reviewer | Review générique | Vérifie : pas de unwrap(), pas de lazy_static, Result<T> |
4. Héritage
Les profils peuvent hériter d'un autre via extends: :
---
name: tauri
extends: rust # hérite de toutes les conventions Rust
---L'ordre de chargement : parent d'abord, puis enfant. Les conventions de l'enfant complètent (pas remplacent) celles du parent.
Créer un profil custom
/profile create spring-bootStructure générée :
---
name: spring-boot
description: Profil Java Spring Boot.
tags: [backend, java, spring]
---
# Profil Spring Boot
## Conventions
...
## Patterns à suivre
...
## Anti-patterns à éviter
...Exemple concret
Avec les profils rust + tauri actifs, quand vous lancez :
/apex -a -s implement PTY managementL'Architect sait qu'il doit utiliser portable-pty, les commandes Tauri, et le Managed State. Le Developer écrit du code avec #[tauri::command], Result\<T, String\>, et thiserror. Le Reviewer vérifie qu'il n'y a pas de unwrap() en production.
Sans profil, tout ce contexte est perdu et vous devez le re-expliquer à chaque interaction.