# Self-assessment against Home Assistant's integration quality scale # (https://developers.home-assistant.io/docs/core/integration-quality-scale/). # # As a HACS custom integration this file is informational — hassfest does not # validate it — but the assessment is kept honest and current so the gaps are # explicit. The integration is a local, deviceless service integration # (no network I/O, no external dependencies), so the connectivity-related # rules are exempt. rules: # Bronze action-setup: done appropriate-polling: status: done comment: > 5-minute coordinator refresh for time-based status; sensor triggers are event-driven via state_changed listeners (no polling). brands: status: done comment: Registered in home-assistant/brands as part of the HACS default-store listing. common-modules: done config-flow: done config-flow-test-coverage: done dependency-transparency: status: done comment: No runtime requirements at all (manifest requirements is empty). docs-actions: status: done comment: services.yaml descriptors + docs/CONFIGURATION.md and docs/EXAMPLES.md. docs-conditions: status: done comment: docs/FEATURES.md "Automation triggers & conditions". docs-high-level-description: done docs-installation-instructions: done docs-removal-instructions: status: done comment: docs/TROUBLESHOOTING.md "Uninstalling". docs-triggers: status: done comment: docs/FEATURES.md "Automation triggers & conditions". entity-event-setup: done entity-unique-id: done has-entity-name: done runtime-data: done test-before-configure: status: exempt comment: Purely local — there is no device or service connection to test. test-before-setup: status: done comment: Storage load + first coordinator refresh fail the setup cleanly. unique-config-entry: status: done comment: Stable unique_id per object entry plus a singleton global entry. # Silver action-exceptions: status: done comment: Services raise ServiceValidationError / HomeAssistantError. config-entry-unloading: done docs-configuration-parameters: status: done comment: docs/CONFIGURATION.md documents every parameter. docs-installation-parameters: done entity-unavailable: done integration-owner: done log-when-unavailable: status: done comment: > Missing/unavailable trigger entities are logged with a grace period and surfaced as repair issues. parallel-updates: done reauthentication-flow: status: exempt comment: No authentication of any kind. test-coverage: status: done comment: CI enforces >= 98% coverage over 2400+ backend tests. # Gold devices: status: done comment: Every maintenance object is a device grouping its task entities. diagnostics: status: done comment: Config-entry diagnostics with PII redaction. discovery: status: exempt comment: Objects are user-defined; there is nothing on the network to discover. discovery-update-info: status: exempt comment: No discovery. docs-data-update: status: done comment: docs/FEATURES.md "Data Updates". docs-examples: done docs-known-limitations: done docs-supported-devices: status: exempt comment: > Deviceless — objects model arbitrary real-world equipment; 13 object templates are documented instead. docs-supported-functions: done docs-troubleshooting: done docs-use-cases: done dynamic-devices: status: done comment: > Objects/tasks created at runtime (panel, WS, services, import) get their device + entities immediately via entry setup/reload. entity-category: status: done comment: > Task sensors/buttons are primary by design; the global document-storage sensor is the only meta entity and is kept primary for dashboard use. entity-device-class: status: done comment: ENUM task sensors, TIMESTAMP next-due, DATA_SIZE storage, problem binary sensors. entity-disabled-by-default: status: done comment: The per-task next-due timestamp sensor is registry-disabled by default. entity-translations: status: done comment: translation_key everywhere; 18 languages with enforced key parity. exception-translations: status: todo comment: > Core lookup failures use translation keys (e.g. no_task_for_entity), but most ServiceValidationError raises are still English-only. icon-translations: done reconfiguration-flow: status: exempt comment: > Nothing is fixed at setup time — every setting is editable via the options flow or the panel settings, so a dedicated reconfigure step would duplicate them. repair-issues: status: done comment: > Missing trigger entities, orphaned operator ids, storage hygiene, and notify-service problems all raise (partly fixable) repair issues. stale-devices: status: done comment: Deleting an object removes its device; task deletion cleans its entities. # Platinum async-dependency: status: exempt comment: No dependencies. inject-websession: status: exempt comment: No HTTP client is used. strict-typing: status: done comment: mypy --strict over the whole component is a blocking CI gate.