Append a new DataUpdateCoordinator to an existing Home Assistant Custom Integration — separate role, separate update interval, full integration with RuntimeData mapping, options-flow entry, translations, and tests. Activate on phrasings like "add a new coordinator for alerts", "split the existing coordinator", "add a faster polling coordinator", "füge einen Coordinator für X hinzu". Do not activate for greenfield scaffolding (use ha-integration-scaffold), coordinator removal, or push-based coordinators.
How this skill is triggered — by the user, by Claude, or both
Slash command
/claude-home-assistant:ha-coordinator-addThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Spec: <https://github.com/nolte/claude-home-assistant/blob/develop/spec/claude/ha-coordinator-add/de.md> (DE canonical) / [`en.md`](https://github.com/nolte/claude-home-assistant/blob/develop/spec/claude/ha-coordinator-add/en.md).
Spec: https://github.com/nolte/claude-home-assistant/blob/develop/spec/claude/ha-coordinator-add/de.md (DE canonical) / en.md.
Use this skill when the user wants to add a new DataUpdateCoordinator to an existing integration — typically because a subset of data needs a faster (alerts) or slower (master data) update interval than the existing coordinator.
ha-integration-scaffoldRuntimeData.coordinators; which platforms read from it is a follow-up user decision.CONF_POLL_<ROLE> lands in OPTIONS_SCHEMA plus strings.json plus translations.| Field | Required | Default | Notes |
|---|---|---|---|
target_dir | yes | — | repo root of the integration |
role | yes | — | lowercase ASCII slug (alerts, tenants, …) |
default_interval | yes | — | seconds |
min_interval | yes | — | seconds; warn if < 30 |
update_method | yes | — | API method name (e.g. async_get_alerts) |
setup_method | no | none | optional _async_setup master-data loader |
data_type | no | list[dict[str, Any]] | generic for DataUpdateCoordinator[<T>] |
git -C <target_dir> rev-parse --is-inside-work-tree and clean working tree<target_dir>/custom_components/<domain>/coordinator.py exists; read domain from manifest.json<Domain><Role>Coordinator does not yet exist; mapping key role not in RuntimeData.coordinatorsupdate_method exists in api.py (else: surface as a user todo, do not auto-add)Print one paragraph stating: role, intervals (default + min), API method, generic type, list of files to be touched. Wait for user confirmation.
Touch these files in order:
coordinator.py — append the new classconst.py — append CONF_POLL_<ROLE>, DEFAULT_POLL_<ROLE>, MIN_POLL_<ROLE>__init__.py — instantiate, first-refresh, extend mappingconfig_flow.py — extend OPTIONS_SCHEMAstrings.json and every translations/<lang>.json — options.step.init.data.poll_interval_<role>tests/test_coordinator.py — three new testsruff check custom_components/<domain>/
pytest tests/test_coordinator.py -v
Both must run cleanly. On failure, surface the tool output and abort.
min_interval < 30 s)ha-integration-scaffoldha-config-flow-augmentha-test-harness-augment (planned)Guides creation, editing, and verification of skills for AI coding agents using test-driven development with subagent scenarios. Use when authoring or debugging skills.
npx claudepluginhub nolte/claude-home-assistant --plugin claude-home-assistant