一键导入
community-driver-audit-before-build
How to audit an existing community Hubitat driver before deciding to build a competing or replacement driver.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
How to audit an existing community Hubitat driver before deciding to build a competing or replacement driver.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Pattern for keeping a rolling temperature-trend sample buffer in Hubitat state, computing slope over a configurable window, and classifying rising/falling/steady/unknown.
Implement Tuya Local v3.3 Groovy drivers on Hubitat using rawSocket, AES-128-ECB, queued retries, and defensive frame parsing.
Use Hubitat async HTTP plus a request queue to authenticate with Cognito, cache tokens in state, refresh proactively, and replay a single 401-failed request.
When two agents produce overlapping skills in one session, consolidate by merging unique content into the highest-confidence existing skill.
Never let cached-state dedup bypass session validity in cloud-backed Hubitat drivers.
Standard guard pattern for async HTTP response callbacks in Hubitat drivers
| name | community-driver-audit-before-build |
| description | How to audit an existing community Hubitat driver before deciding to build a competing or replacement driver. |
| domain | process |
| confidence | high |
| source | earned — Rainbird LNK feasibility research, 2026-05-18 |
Use this skill when Mads asks "should we build a driver for X?" and a community driver may already exist.
"Is the existing driver good enough, or does a gap justify building our own?"
A gap justifies building ONLY if one or more of these is true:
Otherwise: IMPROVE-EXISTING. File issues first. Fork only if maintainer is unresponsive.
Run in order. Document each item.
Search GitHub:
site:github.com hubitat {device-name}site:github.com {device-name} groovy driver{device-name} hubitat directly on github.com searchSearch Hubitat community forum (community.hubitat.com):
{device-name} keywordCheck HPM (Hubitat Package Manager) catalog:
https://github.com/HubitatCommunity/hubitatpackages — search by keyword| Field | How to find it | Red flag |
|---|---|---|
| Last commit date | GitHub repo insights | >12 months = stale |
| Version number | File header or releases | v0.x still = early-stage |
| Architecture | Read capability declarations | Single parent without children when multi-zone needed |
| Protocol approach | Look for httpPost, asynchttpPost, HubAction, rawSocket | Blocking httpPost is suboptimal; HubAction Map-based is known broken |
| Encryption | Look for javax.crypto.Cipher imports | If needed and absent = gap |
| HPM listing | Search HubitatCommunity/hubitatpackages | Not listed = no install base |
| Active issues/PRs | GitHub issues tab | Open unanswered issues = maintenance risk |
| Forum thread | community.hubitat.com link in README | Dead thread = abandoned |
Compare against our repo's non-negotiables:
asynchttpPost / asynchttpGet (not blocking httpPost)HealthCheck capability with ping() for local-LAN devicesemitIfChanged pattern (no duplicate event spam)HubAction Map-based constructorsSecureRandom for IV generation (not new Random())| Status | Definition | Recommendation |
|---|---|---|
| ✅ Active | Commit within 3 months, open issues get responses | IMPROVE-EXISTING |
| ⚠️ Drifting | Last commit 3–12 months, some open issues unanswered | Evaluate gaps; file issues; watch for 30 days |
| ❌ Stale | Last commit >12 months OR no response to recent issues | BUILD or fork |
| 🔴 Abandoned | README says abandoned, no HPM, no forum thread | BUILD from scratch |
Existing driver: Active + No gaps → USE IT
Existing driver: Active + Gaps exist → File issues; wait 30 days → fork if unresponsive
Existing driver: Drifting + Minor gaps → IMPROVE-EXISTING (PR or fork)
Existing driver: Stale + Your use case works → Evaluate carefully; maybe still use it
Existing driver: Stale + Gaps → BUILD (cite which gaps justify it)
No driver exists → BUILD (normal process)
In the feasibility memo, include per-driver:
Found: 2 drivers
Verdict: IMPROVE-EXISTING. MHedish's driver covers all functionality. Identified improvement opportunities:
httpPost to asynchttpPost (our standard)HealthCheck capability (not in MHedish)SecureRandom instead of new Random() for IV generation (minor crypto hygiene)These are PR-worthy improvements, not reasons to build a competing driver from scratch.
Full memo: .squad/decisions/inbox/cypher-rainbird-lnk-feasibility.md