ワンクリックで
ha-create-skill
🧰 Create or update a Home Assistant skill under .claude/skills/.
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
メニュー
🧰 Create or update a Home Assistant skill under .claude/skills/.
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
SOC 職業分類に基づく
| name | ha-create-skill |
| description | 🧰 Create or update a Home Assistant skill under .claude/skills/. |
Create or update a Claude Code skill under .claude/skills/<name>/SKILL.md. Once committed, the skill is invokable as /ha-<name>. This skill enforces the repo's house conventions for every other /ha-... skill.
.claude/skills/<kebab-case-name>/SKILL.md — one folder per skill.ha-. Kebab-case, lowercase, letters/digits/hyphens only.name and description. Total ≤1024 chars.<emoji> <imperative verb phrase>. — describe what the skill does, not when to use it. One sentence, ≤~100 chars. No Use when ... prefix. Never include a slash-command name (e.g. /ha-foo, /init, /...) inside the description — the harness loader silently drops the description and falls back to the skill name. Describe the concept instead (e.g. "a Home Assistant skill", not "a /ha-... skill").# <h1 matching the folder name>## Overview — 1–2 sentences on the core purpose## Hard Rules / ## House Conventions — bullets of non-negotiables## Procedure — numbered steps## Style Reference — code blocks for concrete examples (when useful)## Common Mistakes — | Mistake | Fix | markdown tablepnpm references — this repo is Home Assistant YAML, not a JS project.Check the user's request:
Read the file first).When in doubt, ask: Tu veux un nouveau skill ou modifier <closest match>?
Settle these before writing:
ha-<something>, kebab-case.oui / yes?Ask only what can't be reasonably defaulted. Prefer AskUserQuestion with concrete options.
name and description (with emoji)Write .claude/skills/<name>/SKILL.md.Edit targeted sections (don't rewrite the whole file unless the change is sweeping).git add .claude/skills/<name>/Co-Authored-By):
feat(skill): <concise description>fix(skill): <concise description>refactor(skill): <concise description>/ha-squash-and-commit).Frontmatter template:
---
name: ha-<kebab-name>
description: <emoji> <Imperative verb phrase describing what the skill does>.
---
Examples of correct descriptions (from skills already in this repo):
🚀 Ship the current worktree as one clean commit on origin/main.📘 Create or update a Home Assistant automation blueprint.🧰 Create or update a Home Assistant skill under .claude/skills/.Body skeleton:
# ha-<name>
## Overview
<1–2 sentences on what this skill does and why.>
## Hard Rules
- **NEVER** <forbidden action>.
- **<Other non-negotiable>**.
## Procedure
1. **<Step title>**
- <action>
- <action>
2. **<Next step>**
- …
## Common Mistakes
| Mistake | Fix |
|---|---|
| <Typical failure mode> | <How to recover> |
| Mistake | Fix |
|---|---|
Description starts with Use when ... | Strip the prefix. Format: <emoji> <verb phrase>. — what the skill DOES. |
| Description is multiple sentences or > ~100 chars | Cut to one tight sentence. |
| Missing emoji in description | Add one that matches the purpose semantically. |
Skill name without ha- prefix | Rename. Every skill in this repo is ha-*. |
| Skill name has uppercase or underscores | Kebab-case, lowercase only. |
Frontmatter has fields other than name / description | Remove them. Only these two are supported. |
Co-Authored-By trailer in any commit (or in commit examples in the skill body) | Strip it. Hard repo rule — no AI watermark. |
| Created a new file when the user meant to update an existing skill | Always run the Detect-mode step. Ask when ambiguous. |
| Update-mode: rewrote the whole file instead of editing | Use Edit for targeted changes; only rewrite if the change is sweeping. |
| Multiple commits for one skill change | One commit per skill change. |
| Pushed after committing | Don't push — pushing is a separate manual step. |
| Wrote a long workflow summary in the description | The description is what, the body is how. |
Description references a slash-command name (/ha-foo, /..., /init) | Rephrase to the concept ("a Home Assistant skill"). The harness silently drops the description otherwise and the menu shows only the skill name. |