--- name: fft-dashboard-ops description: Build and apply Home Assistant Lovelace dashboards from templates using a staged workflow with screenshot verification and context-reactive themes. Use when this capability is needed. metadata: author: 0-cyberdyne-systems-0 --- # FFT Dashboard Ops Use this skill for generating, staging, applying, and validating farm dashboards. ## When to use this skill - Use when creating or revising Home Assistant Lovelace dashboards. - Use when applying dashboard changes through staged files and screenshot checks. - Use when adapting dashboard layout to live farm-state context. ## When not to use this skill - Do not use for direct live YAML edits in Home Assistant config. - Do not use for non-dashboard automation or device control requests. - Do not use outside main/admin chat for dashboard apply operations. - Do not use for runtime multi-card canvas composition; hand off to `fft-canvas-dynamic-ops`. ## Guardrails - Never run destructive git commands unless explicitly requested. - Preserve unrelated worktree changes. - Dashboard apply operations are main/admin chat only. - Always use the staging file flow; never modify live YAML directly. ## Template Sources - View/card/theme templates: `/workspace/dashboard-templates/` - Writable dashboard config mount: `/workspace/dashboard/` Use templates as a baseline, then adapt entity references using live discovery from `/workspace/farm-state/devices.json`. ## Lovelace Structure Rules - Top-level structure should include `title` and `views`. - Each view should define `title`, optional `path`, and `cards`. - Use supported custom cards when available: - `custom:mushroom-*` - `custom:apexcharts-card` - Prefer robust layouts (`grid`, `vertical-stack`, `horizontal-stack`) with clear labels. ## Workflow 1. Read `/workspace/farm-state/current.json` and `/workspace/farm-state/calendar.json` for context. 2. Draft dashboard YAML to `/workspace/dashboard/ui-lovelace-staging.yaml`. 3. Use `ha_dashboard_validate` before apply. 4. Request apply via `ha_apply_dashboard` with `stagingFile` set to the staging path. 5. Request screenshot via `ha_capture_screenshot` for the relevant view. 6. Verify screenshot and iterate until readable and operational. ## Skill Routing - If the user asks for runtime canvas cards, card-level canvas edits, or spec-driven layout updates, use `fft-canvas-dynamic-ops`. - If the user asks for full view composition, theme/view structure changes, or staged apply lifecycle management, stay in `fft-dashboard-ops`. ## Context-Reactive Theming Use `current.json.context.suggestedTheme` to choose theme variants (for example: dawn, midday, dusk, night, storm, frost, harvest). - High alert level: emphasize warnings/errors and simplify visual noise. - Normal operations: prioritize trend visibility and quick actions. - Calendar-heavy periods: feature timeline/task cards in primary views. ## Safety Expectations - Never bypass staging-to-live apply flow. - Never execute shell-level infrastructure changes from dashboard tasks. - Keep entity IDs explicit and avoid wildcard assumptions. --- > Converted and distributed by [TomeVault](https://tomevault.io/claim/0-cyberdyne-systems-0) — claim your Tome and manage your conversions.