diff --git a/.github/agents/ui-specialist.md b/.github/agents/ui-specialist.md index fe03d30758..961f2bbb39 100644 --- a/.github/agents/ui-specialist.md +++ b/.github/agents/ui-specialist.md @@ -121,9 +121,10 @@ When a feature is unavailable due to insufficient data (not insufficient permiss ### Jinja2 Template Safety - [ ] Sensor/asset IDs embedded in JS use `{{ sensor.id }}` (integer, safe), not `.name` or freeform text -- [ ] User-supplied values displayed in HTML use `{{ value | e }}` or `{{ value | safe }}` (only for pre-sanitised server values like `sensor._ui_unit | safe`) -- [ ] `availableUnitsRawJSON.replace(/'/g, - '"')` pattern is used for JSON embedded via template — this is the established workaround for Flask's single-quote JSON serialisation +- [ ] User-supplied values displayed in HTML rely on Jinja's auto-escaping (`{{ value }}`), never `{{ value | safe }}` +- [ ] Data embedded in a ` -