用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/Tzeusy/butlers --skill device-health-check命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
Guide for discovering, analyzing, and pruning the Butlers test suite. Use when working on test condensation beads (Phase 1 epic bu-rhztl and Phase 2 epic bu-hg8rl both CLOSED; Phase 3 maintenance cycle underway 2026-06-21), assessing test bloat, identifying pruning targets, or rewriting tests to be contract-driven. Triggers on test reduction, test pruning, test consolidation, or condensation tasks for this project. Also use when a fresh session needs to assess test health, create new condensation beads, or resume in-progress condensation work.
Generate a weekly home energy digest with trends, top consumers, and recommendations.
Orchestrate a UX redesign of a Butlers dashboard page (or sub-page set) using /project-direction as the spec+beads engine, with redesign-specific upfront phases for vision capture, asset ingestion, impact analysis, backend-contract derivation, LLM-cost feasibility, manifesto/identity preservation, and a th-design design-bar audit. The binding design language is the Dispatch spec (openspec/specs/dashboard-design-language/spec.md); bundles live under pr/overview/ and resolve via references/bundle-registry.md. Use when asked to redesign a dashboard page, with or without a Claude Design bundle. Triggers on "redesign the X page", "plan the Y redesign", "integrate the redesign bundle", "what would it take to ship the SLUG redesign", "design language integration for AREA".
基于 SOC 职业分类
正在显示 SKILL.md
| name | device-health-check |
| description | Nightly Home Assistant device survey for offline devices, low batteries, and firmware issues. |
Perform a nightly device health survey at 4am. Query all connected Home Assistant entities for
online status, battery levels, and last communication time. Flag offline devices, critically low
batteries, and devices due for firmware updates. Store findings in memory and send an alert via
notify(channel="telegram", intent="send") — alert if issues found, all-clear summary otherwise.
Use this skill when:
device-health-check scheduled task fires (cron: 0 4 * * *, nightly at 04:00)Call ha_list_entities() (no domain filter) to get the complete list of entities.
Identify entities with problematic states:
"unavailable" or "unknown"battery or battery_levelBuild three categorized lists from the results:
offline_entities: entities with state unavailable or unknownlow_battery_entities: battery sensors with value <= 20%critical_battery_entities: battery sensors with value <= 10%For each entity identified as a battery sensor (step 1), call:
ha_get_entity_state(entity_id=<battery_sensor_entity_id>)
Classify by urgency:
Classify each issue:
| Condition | Severity | Action |
|---|---|---|
Device offline > 24h (check last_changed) | Critical | Alert |
| Device offline < 24h | Warning | Store, include in next digest |
| Battery <= 10% | Critical | Alert |
| Battery 11-20% | Warning | Store, include in alert summary |
| Battery 21-30% | Info | Store for trend tracking |
| Entity state: unknown (transient) | Info | Store if recurring |
For each issue found, store a memory fact:
Critical/high battery:
memory_store_fact(
subject=<device_friendly_name>,
predicate="device_issue",
content="battery at <X>% — needs replacement <urgency>",
permanence="volatile",
importance=8.0 if critical else 6.5,
tags=["maintenance", "battery", "urgent" if critical else "warning"]
)
Offline device:
memory_store_fact(
subject=<device_friendly_name>,
predicate="device_issue",
content="device offline — state is <unavailable/unknown> since <last_changed>",
permanence="volatile",
importance=7.5,
tags=["offline", "maintenance", "urgent"]
)
Healthy check (no issues):
memory_store_fact(
subject="device-fleet",
predicate="device_issue",
content="health check passed — all <N> devices online, no low battery",
permanence="volatile",
importance=3.0,
tags=["health-check", "healthy"]
)
If any critical or high-severity issues were found, compose and send an alert:
Device Health Check — [Date]
Issues Requiring Attention:
[device name] battery at 8% — replace soon (critical)
[device name] offline since [time] — check power or connectivity
Warnings (non-urgent):
[device name] battery at 15% — replace within a few days
[device name] battery at 18% — plan to replace this week
[N] other devices checked — all healthy.
Send via:
notify(
channel="telegram",
intent="send",
subject="Device Health Alert — [N] issues found",
message=<formatted_alert>,
)
Use intent="send" — this is a scheduled proactive delivery, not a reply.
If no critical issues found, send a brief status update:
notify(
channel="telegram",
intent="send",
subject="Device Health Check — All Clear",
message="Nightly check complete. All [N] devices online. No low battery alerts.",
)
ha_list_entities() called to survey all entitiesha_get_entity_state() called for each battery sensor identifiedmemory_store_fact() called for each issue (and for a clean-bill-of-health if no issues)notify(channel="telegram", intent="send") called — either with alert (if issues) or all-clear summarytroubleshooting skill when user follows up)ha_list_entities() Returns Empty or Failsmemory_store_fact(subject="device-fleet", predicate="device_issue", content="health check failed — ha_list_entities returned no results", permanence="volatile", ...)unavailable or unknown state from ha_list_entities() (state is
included in the listing response).ha_get_entity_state() only for battery sensors and offline devices — not for all entities.last_changed shows the entity returned to normal very recently (within 30 minutes), classify
as Info rather than Warning.importance=4.0.