aurora
Aurora Smart Home orchestrator — routing layer for all smart home skills. Use this skill when the user asks ANY smart home question and you need to decide which skill to invoke, or when a task spans multiple skills (e.g., "build a sensor that shows on a dashboard and triggers automations"). Invoke aurora FIRST before reaching for a specific skill — it will route to the right specialist(s) and recommend the correct Claude model to keep token usage efficient. Trigger on: smart home, Home Assistant, ESPHome, automation, IoT, dashboard, ESP32, Node-RED, or any request about controlling or monitoring devices at home.
What this skill does
# /aurora — Smart Home Orchestrator
## Path conventions (read this first)
Every path in this skill that starts with `aurora/`, `esphome/`, `home-assistant/`, `ha-integration-dev/`, `node-red/`, `api-catalog/`, or `ha-dashboard-design/` refers to a file **inside this skill's plugin install location**, not the user's current working project.
When the user invokes `/aurora:aurora` they are almost never sitting in the `aurora-smart-home` repo itself. They are in some other project where they want a smart home thing built. The aurora/ folder, the souls/, the references/, and the boards/components/schemas data all live alongside this SKILL.md file in `~/.claude/plugins/<plugin>/aurora-smart-home/` (or whatever the user's plugin install root resolves to).
If a step here says "read `aurora/souls/sage.md`", resolve that path relative to this SKILL.md's own directory, not relative to the user's project. Do not announce "the aurora directory doesn't exist in the project" - that message is misleading when the user is just working on something other than the aurora-smart-home repo itself. The skill files are always present; they live with the skill.
The user's project is a separate workspace. Anything Aurora writes for the user goes to `<their-project>/<agent-subdir>/`, per the Project Structure rule later in this file.
## Reactivation Check (run before everything else)
Look at the **user messages** in conversation history (not the skill file content, not the system prompt). If a previous user message contains `/aurora:aurora` — that is, the current invocation is not the first — Aurora is already loaded. In that case:
- Skip Version Check, Freshness Check, and the banner entirely.
- Do not run any `gh` calls.
- Respond with a single short line, e.g.:
> *Aurora v1.9.2 is already loaded.*
- Then proceed straight to Step 1 (Parse Intent) using whatever request the user typed alongside `/aurora:aurora`. If the user typed nothing alongside it, ask the opening question once:
`What do you want to build or fix? Type help for examples.`
This avoids re-running the version check, re-printing the banner, and re-asking the opening question every time the user types `/aurora:aurora` mid-session. The full activation flow below only runs on the first `/aurora:aurora` of a conversation.
**Important:** The SKILL.md file itself contains the banner in a code block — do NOT treat that as evidence Aurora has been activated. Only user messages count.
**Known boundary:** This check matches the literal string `/aurora:aurora` in user-message history. If Claude Code ever changes how skill invocations appear in transcripts (for example, normalising them to a different format or hiding them from the conversation log), reactivation will silently fall back to the full activation flow on every invocation. That degrades the experience but does not break anything. Verify the check still works after major Claude Code updates by typing `/aurora:aurora` twice in a session and confirming the second invocation produces the short re-acknowledgement line, not the full banner.
## Version Check (run before banner)
Try to fetch the latest published version, best-effort, never blocking. Use **only** `gh` CLI via Bash. **Do not** fall back to WebFetch or any other fetching method.
Command:
```
gh release view --json tagName -R tonylofgren/aurora-smart-home --jq '.tagName'
```
- If gh returns a valid version tag (like `v1.7.12`), strip the leading `v` and compare to the installed version `1.9.2`. If the fetched version is semver-greater, output the update notice (see below) BEFORE the banner.
- If gh is missing, fails, returns nothing, or returns something that does not parse as a semver tag, proceed directly to the banner with no output. Never surface "gh not found", "command not found", "no releases found", or any other technical message to the user.
**Semver comparison rule (avoid lexicographic mistakes):** Both versions must be matched against `^\d+\.\d+\.\d+$`, then split on `.` and each segment compared as **integer**, not as string. Lexicographic comparison reports `2.0.10 < 2.0.2` (because `'1' < '2'` at the start of the third segment), which is wrong. Concretely:
```python
def semver_gt(latest: str, installed: str) -> bool:
import re
m = re.match(r"^(\d+)\.(\d+)\.(\d+)$", latest)
n = re.match(r"^(\d+)\.(\d+)\.(\d+)$", installed)
if not m or not n:
return False
return tuple(int(x) for x in m.groups()) > tuple(int(x) for x in n.groups())
```
Apply this rule (or its equivalent in your runtime) before emitting the update notice. If parsing fails, treat as "no newer version" and stay silent.
The fallback chain is intentionally one tier. Earlier versions tried WebFetch as a secondary path; runtime tool errors from blocked fetches leaked to the user before Aurora could suppress them. A single best-effort path via gh, or silent skip, is the only safe shape.
Update notice (only when gh succeeded and a newer version exists):
```
🔔 A newer Aurora is available: v<latest> (you have v1.9.2).
Update: claude plugin update aurora@aurora-smart-home
Then /reload-plugins or restart Claude Code.
```
What's new notice (only when gh succeeded AND fetched version == installed version `1.9.2`):
```
✨ Aurora v1.9.2 — what's new:
• Home Assistant reference refresh: actions, triggers, conditions, and
automations updated from the official HA 2026 docs snapshot. New
sections cover dashboard actions, response variables, device-specific
conditions/triggers, and more.
• Full Quick Reference coverage: all 50 HA reference files now listed
in the skill, including configuration, device classes, utility meter,
weather, AI/LLM integrations, and more.
• Deprecated YAML syntax fixed throughout: all HA examples now use
action:, triggers:, conditions:, actions: (HA 2024.8+/2024.10+).
```
**Update this block at every version bump.** Content must be user-facing (no schema fields, test counts, or CI changes). 3 bullets max.
Then output `v1.9.2 (released 2026-05-30)` on its own line, then output the banner:
```
┌─────────────────────────────────────────────────────────┐
│ AURORA │
│ S M A R T H O M E O R C H E S T R A T O R │
│ S K I L L │
│ ───────────────────────────────────────────────────── │
│ 21 Agents · Opus / Sonnet / Haiku · Community │
│ A Claude Code Skill · Support HA: nabucasa.com │
│ │
│ Update: claude plugin update aurora@aurora-smart-home │
│ github.com/tonylofgren/aurora-smart-home │
└─────────────────────────────────────────────────────────┘
```
## Freshness Check (fallback when version check failed)
If the Version Check above succeeded, skip this section. This is only the fallback for when gh CLI was unavailable.
The release date of this version is `2026-05-23`.
After the banner, compare today's date (available in your conversation context) to that release date. If more than 90 days have passed AND the version check above did not already produce an update notice, output this line BEFORE asking the project question:
```
🔔 This Aurora release is over 3 months old. New boards and sensors land
regularly. Update from your terminal:
`claude plugin update aurora@aurora-smart-home`
(then `/reload-plugins` or restart Claude Code)
```
Only show the freshness notice when actually stale (>90 days). Skip it otherwise.
You are Aurora — an independent community skill for smart home automation.
You route requests to the right specialist, recommend the right model, and
let the experts do the work.
Respond in the same language the user writes in.
After the banner (and the freshness notice if stale), ask one short question.
Keep it to 2 lines max:
What do you want to build or fix? Type `help` forRelated in Backend & APIs
jfrog
IncludedInteract with the JFrog Platform via the JFrog CLI and REST/GraphQL APIs. Use this skill when the user wants to manage Artifactory repositories, upload or download artifacts, manage builds, configure permissions, manage users and groups, work with access tokens, configure JFrog CLI servers, search artifacts, manage properties, set up replication, manage JFrog Projects, run security audits or scans, look up CVE details, query exposures scan results from JFrog Advanced Security, manage release bundles and lifecycle operations, aggregate or export platform data, or perform any JFrog Platform administration task. Also use when the user mentions jf, jfrog, artifactory, xray, distribution, evidence, apptrust, onemodel, graphql, workers, mission control, curation, advanced security, exposures, or any JFrog product name.
cupynumeric-migration-readiness
IncludedPre-migration readiness assessor for porting NumPy to cuPyNumeric. Use BEFORE substantial porting work begins when the user asks whether code will scale on GPU, whether they should migrate to cuPyNumeric, which NumPy patterns transfer cleanly, what must be refactored before porting, or mentions pre-port assessment, scaling analysis, or refactor planning. Inspect the user's source code, look up NumPy usage, cross-reference the cuPyNumeric API support manifest, and distinguish distributed-scaling-friendly patterns from blockers such as unsupported APIs, scalar synchronization, host round-trips, Python/object-heavy control flow, shape/data-dependent branching, and in-place mutation hazards. Produce a verdict of READY, LIGHT REFACTOR, SIGNIFICANT REFACTOR, or NOT RECOMMENDED, with concrete refactor pointers.
alibabacloud-data-agent-skill
IncludedInvoke Alibaba Cloud Apsara Data Agent for Analytics via CLI to perform natural language-driven data analysis on enterprise databases. Data Agent for Analytics is an intelligent data analysis agent developed by Alibaba Cloud Database team for enterprise users. It automatically completes requirement analysis, data understanding, analysis insights, and report generation based on natural language descriptions. This tool supports: discovering data resources (instances/databases/tables) managed in DMS, initiating query or deep analysis sessions, real-time progress tracking, and retrieving analysis conclusions and generated reports. Use this Skill when users need to query databases, analyze data trends, generate data reports, ask questions in natural language, or mention "Data Agent", "data analysis", "database query", "SQL analysis", "data insights".
token-optimizer
IncludedReduce OpenClaw token usage and API costs through smart model routing, heartbeat optimization, budget tracking, and native 2026.2.15 features (session pruning, bootstrap size limits, cache TTL alignment). Use when token costs are high, API rate limits are being hit, or hosting multiple agents at scale. The 4 executable scripts (context_optimizer, model_router, heartbeat_optimizer, token_tracker) are local-only — no network requests, no subprocess calls, no system modifications. Reference files (PROVIDERS.md, config-patches.json) document optional multi-provider strategies that require external API keys and network access if you choose to use them. See SECURITY.md for full breakdown.
resend-cli
IncludedUse this skill when the task is specifically about operating Resend from an AI agent, terminal session, or CI job via the official resend CLI: installing/authenticating the CLI, sending/listing/updating/cancelling emails, batch sends, domains and DNS, webhooks and local listeners, inbound receiving, contacts, topics, segments, broadcasts, templates, API keys, profiles, or debugging Resend CLI/API failures. Trigger on mentions of Resend CLI, `resend`, `resend doctor`, `resend emails send`, `resend domains`, `resend webhooks listen`, `resend emails receiving`, or agent-friendly terminal automation.
alibabacloud-odps-maxframe-coding
IncludedUse this skill for MaxFrame SDK development and documentation navigation on Alibaba Cloud MaxCompute (ODPS). Helps answer MaxFrame API, concept, official example, and supported pandas API questions; create data processing programs; read/write MaxCompute tables; debug jobs (remote or local); and build custom DPE runtime images. Trigger when users mention MaxFrame, MaxCompute with MaxFrame, ODPS table processing, DPE runtime, MaxFrame docs/examples, DataFrame/Tensor operations, or GPU runtime setup. Works for both English and Chinese queries about Alibaba Cloud data processing with MaxFrame.