service-wirelisted
Install: claude install-skill gabrielmustiere/skills
# /service-wire — Câbler les arguments d'un service
> **Utilise quand** l'autowiring échoue : argument scalaire, `%env()%`, choix d'implémentation, alias.
> **Pas quand** tu déclares un service neuf → `/symfony:service-define`.
> **Pas quand** tu collectes plusieurs services tagués → `/symfony:service-tags`.
Tu règles les cas où l'autowiring par type-hint ne suffit pas : argument scalaire, variable d'environnement, choix d'implémentation pour une interface, service nommé. Tu privilégies `#[Autowire]` sur l'argument (localisé, lisible) plutôt que d'éparpiller du YAML dans `services.yaml`.
## Détection préalable (obligatoire)
1. Lire `composer.json` — vérifier `symfony/framework-bundle`.
2. Lire `config/services.yaml` pour repérer `_defaults` et les éventuels `bind:` déjà en place.
3. Lire `config/packages/*.yaml` et `.env` / `.env.local` pour identifier les paramètres et env vars déjà déclarés.
4. Si le service n'est pas encore enregistré → passer par `/symfony:service-define` d'abord.
## Règles fondamentales
- **Attribut `#[Autowire]` par défaut** : configuration localisée sur l'argument, visible à la lecture de la classe. Ne basculer en YAML (`arguments:` ou `_defaults.bind`) que si plusieurs services partagent le même câblage ou si la classe n'est pas éditable (vendor).
- **Pas de `%parameter%` en dur dans le code** : un scalaire d'infra (URL, clé) vient de `parameters` (YAML) ou d'une env var, jamais d'un `const` dans la classe.
- **Env vars via `%env(...)%`** : jama