# Skill: WPML Integration

Skill ID: `wpml-integration`

Rules
- Detect WPML/provider availability before registering hooks/services.
- Register translation service container entries only when provider is active.
- Validate WPML hook payload schema before processing.
- Validate all WPML hook parameters before use.
- Sanitize job IDs and language codes from WPML events.
- Enforce language allowlist from plugin-supported language map.
- Keep provider-specific behavior inside adapters.
- Keep adapter/factory boundaries explicit (WPML/Polylang/null).
- Handle missing provider plugins gracefully.
- Prevent duplicate processing for repeated provider callbacks.

Mistakes to avoid
| Mistake | Fix |
|---|---|
| Registering integration without provider detection | Guard hook/service registration |
| Unvalidated WPML payload | Validate + sanitize payload first |
| Unsupported language codes | Enforce language allowlist |
| Provider logic in core flow | Keep provider logic inside adapter |
