# Organize

> Use when organizing Home Assistant areas, floors, labels, categories, and entity/device metadata through HA NOVA Relay.

- **Type:** Skill
- **Install:** `agentstack add skill-markusleben-ha-nova-organize`
- **Verified:** Yes — security-reviewed for prompt injection and unsafe behavior
- **Seller:** [markusleben](https://agentstack.voostack.com/s/markusleben)
- **Installs:** 0
- **Category:** [AI & ML](https://agentstack.voostack.com/c/ai-and-ml)
- **Latest version:** 0.1.0
- **License:** MIT
- **Upstream author:** [markusleben](https://github.com/markusleben)
- **Source:** https://github.com/markusleben/ha-nova/tree/main/skills/organize
- **Website:** https://github.com/markusleben/ha-nova

## Install

```sh
agentstack add skill-markusleben-ha-nova-organize
```

Requires the [AgentStack CLI](https://agentstack.voostack.com/docs/cli). Works with Claude Code, Cursor, and any MCP-compatible agent.

## About

# HA NOVA Organize

## Scope

Organization and registry metadata only:
- areas: list/create/update/delete
- floors: list/create/update/delete
- labels: list/create/update/delete
- categories: list/create/update/delete
- entity metadata updates: rename, move to area, assign/clear/add/remove labels, assign/remove categories, disable, hide, aliases
- entity category assignment/removal per scope
- device metadata updates: rename, move to area, assign/clear/add/remove labels, disable

Not in scope:
- entity removal
- removing config entries from devices
- device category assignment
- zones, persons, tags
- energy or calendar management

For those surfaces, hand off to `ha-nova:fallback`.

## Bootstrap (once per session)

Verify relay CLI: `ha-nova relay health`
If this fails: `ha-nova setup`

## Relay Contract

Use file-based WS requests only:
- `ha-nova relay ws --data-file `
- `ha-nova relay ws --data-file  --out `

Registry commands owned here:
- `config/area_registry/list|create|update|delete`
- `config/floor_registry/list|create|update|delete`
- `config/label_registry/list|create|update|delete`
- `config/category_registry/list|create|update|delete`
- `config/entity_registry/get|list|update`
- `config/device_registry/list|update`

Use `search/related` when a delete needs a quick impact preview on linked items.

## Flow

1. Resolve the exact target type and identity.
   - areas/floors/labels/categories: use the corresponding `list`
   - every category registry call must include the exact `scope`
   - do not call `config/category_registry/list|create|update|delete` without `scope`
   - entities: prefer `config/entity_registry/get` when the entity_id is known
   - devices: use `config/device_registry/list` and match by current name or linked entities
2. If multiple candidates remain, ask one blocking question.
3. For create/update:
   - build the smallest valid payload
   - preview the exact fields that will change
   - rich metadata owned here:
     - area: `name`, `floor_id`, `icon`, `picture`, `aliases`
     - floor: `name`, `level`, `icon`, `aliases`
     - label: `name`, `color`, `icon`, `description`
     - category: `name`, `icon`, exact `scope`
   - category assignment/removal is entity-only in this skill and uses one scope per request
   - category assignment uses `categories: {"":""}`
   - category removal for one scope uses `categories: {"": null}`
   - do not send `categories: {}` when the goal is to clear one existing scoped category
   - label updates on entities/devices may be:
     - replace all labels
     - add labels
     - remove labels
     - clear labels
4. For delete:
   - preview impact first
   - areas/floors: show linked areas or assignments that will lose placement
   - labels: show linked items when quickly resolvable
   - categories: show affected entity count and a small example set when resolvable
   - require token confirmation `confirm:`
5. Execute exactly one mutation.
6. Read back and verify the requested fields:
   - area/floor/label/category: re-list and match by canonical id
   - entity/device: re-read the updated registry entry
   - category delete: also verify affected entity categories are cleared for that scope
7. Report the final state in plain language.

## Entity / Device Update Fields

Use only exposed metadata fields:
- entity: `name`, `new_entity_id`, `area_id`, `labels`, `categories`, `disabled_by`, `hidden_by`, `aliases`
- device: `name_by_user`, `area_id`, `labels`, `disabled_by`

Do not guess unsupported fields.

## Output Format

- `Target`
- `Current metadata`
- `Requested change`
- `Impact` for deletes
- `Verification`
- `Next step`

Default to a compact field summary, not raw registry JSON.

## Safety

- Never guess ids.
- Create/update uses natural confirmation after preview.
- Delete uses token confirmation only.
- If the user asks for entity removal, device category assignment, or config-entry detachment, stop and hand off to `ha-nova:fallback`.

## Guardrails

- One resource at a time.
- One category scope at a time.
- Metadata updates only; no destructive registry admin beyond area/floor/label/category delete.
- Verify the changed field values, not just the WS success response.
- If a delete impact preview is incomplete, say so explicitly before asking for confirmation.

## Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

- **Author:** [markusleben](https://github.com/markusleben)
- **Source:** [markusleben/ha-nova](https://github.com/markusleben/ha-nova)
- **License:** MIT
- **Homepage:** https://github.com/markusleben/ha-nova

Install and usage instructions live in the source repository linked above.

## Pricing

- **Free** — Free

## Security capabilities

Automated source analysis of v0.1.0 — what this tool can access:

- **Network access:** no
- **Filesystem access:** no
- **Shell / process execution:** no
- **Environment & secrets:** no
- **Dynamic code execution:** no

*"Yes" means the capability is present in the source — more access means more to trust, not that it is unsafe.*


## Versions

- **0.1.0** — security scan: passed — Imported from the upstream source.

## Links

- Listing page: https://agentstack.voostack.com/l/skill-markusleben-ha-nova-organize
- Seller: https://agentstack.voostack.com/s/markusleben
- Browse the marketplace: https://agentstack.voostack.com/browse

---
Listed on AgentStack — the marketplace for AI agent skills and MCP servers. Every listing is security-reviewed. Creators keep 70%.
