sparrow-cli 0.5.1

A local-first Rust agent cockpit — route, run, replay, rewind
Documentation
# Skill: Refactor Function

**Trigger:** refactore cette fonction, clean this up, simplifie ce code

**Description:** Refactoring ciblé d'une fonction : extraction de sous-fonctions, simplification de la logique, amélioration de la lisibilité sans changer le comportement.

## Body

1. **Analyse** : ils la fonction. Qu'est-ce qu'elle fait ? Est-ce qu'elle fait TROP de choses ?
2. **Principe de responsabilité unique** : une fonction = une tâche
3. **Techniques** :
   - Extraire les blocs de code en fonctions nommées
   - Remplacer les commentaires par des noms de fonctions explicites
   - Réduire la profondeur d'imbrication (early returns)
   - Remplacer les magic numbers par des constantes nommées
   - Utiliser des `match` ou pattern matching au lieu de `if/else` en cascade
4. **Avant/Après** : montre le code original et le code refactoré côte à côte
5. **Vérification** : les tests existants doivent toujours passer

⚠️ RÈGLE D'OR : ne change JAMAIS le comportement. Le refactoring est une transformation structurelle, pas fonctionnelle.

Exemple avant/après :
```
// AVANT (40 lignes, 4 niveaux d'imbrication)
fn process_order(order: Order) -> Result<Receipt> {
    if order.is_valid() {
        if order.has_items() {
            let total = order.items.iter().map(|i| i.price).sum();
            if total > 0.0 {
                // ...
            }
        }
    }
}

// APRÈS (3 fonctions de 10 lignes)
fn process_order(order: Order) -> Result<Receipt> {
    validate_order(&order)?;
    let total = calculate_total(&order);
    generate_receipt(&order, total)
}
```