Skip to content

/profile

utilitaire nouveau

Configurer 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 stack

Usage

bash
/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 custom

Profils disponibles

ProfilDescriptionExtends
rustConventions Rust, error handling, clippy, toolchain
tauriArchitecture Tauri 2, commandes, plugins, managed staterust
vue-typescriptVue 3 Composition API, Pinia, TypeScript strict
xtermxterm.js, addons, intégration PTY avec Taurivue-typescript

Comment ça marche

1. Configuration

Ajoutez la ligne profile: dans votre CLAUDE.md :

markdown
## Tech Profile
profile: rust, tauri, vue-typescript, xterm

2. Chargement automatique

Quand APEX démarre (Step 00), il :

  1. Lit la ligne profile: dans CLAUDE.md
  2. Charge chaque fichier framework/profiles/{name}.md
  3. Résout les extends: (tauri hérite de rust)
  4. Injecte le contexte combiné dans la tâche

3. Impact sur les personas

PersonaSans profilAvec profil rust + tauri
ArchitectDesign génériquePropose Managed State, plugins Tauri, patterns PTY
DeveloperCode générique#[tauri::command], thiserror, async/await
ReviewerReview génériqueVérifie : pas de unwrap(), pas de lazy_static, Result<T>

4. Héritage

Les profils peuvent hériter d'un autre via extends: :

yaml
---
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

bash
/profile create spring-boot

Structure générée :

yaml
---
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 :

bash
/apex -a -s implement PTY management

L'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.

Shingan (心眼) — Linagora