Enhance `validateVariables()` in `PlanTemplateService` to produce
actionable errors instead of the generic "Required variable '...' is missing".
Changes:
- Extracted `buildVariableError()` helper that composes the message from
the variable's `description`, `format`, `example`, and `examples` fields
- Added `naming_convention` key to the returned array so callers have
a constant reminder that variable names use snake_case
- Added a `NAMING_CONVENTION` private const to avoid string duplication
Tests (6 new cases in `PlanTemplateServiceTest`):
- description included in error message
- single `example` value included
- `examples` list (first two) included
- `format` hint included alongside example
- `naming_convention` present in both valid and invalid results
- bare variable (no description) still produces useful "missing" message
Closes#30
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>