Agent skill

Ha Lock Provider

by FutureTense in FutureTense/keymaster

Guide for developing, testing, and maintaining lock platform providers (e.g., zwavejs, zigbee2mqtt, zha, schlage, akuvox) implementing BaseLockProvider in Keymaster.

MITAuto-check passed

Install Ha Lock Provider

skills CLI
$ npx skills add FutureTense/keymaster --skill ha-lock-provider -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install FutureTense/keymaster ha-lock-provider --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/FutureTense/keymaster.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/ha-lock-provider .claude/skills/ha-lock-provider && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
ha-lock-provider
GitHub stars
349
Token cost
~829 tokens
SKILL.md length
182 words
Files
1
Skills in repo
7
Repo updated
First seen
Licence
MIT

At a glance

Guide for developing, testing, and maintaining lock platform providers (e.g., zwavejs, zigbee2mqtt, zha, schlage, akuvox) implementing BaseLockProvider in Keymaster.

  • Works in 5 steps: Inherit from BaseLockProvider → Implement Required Abstract Methods → Optional Event Subscriptions → …
  • SKILL.md covers Architecture Overview, Implementing BaseLockProvider and Testing Lock Providers
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

Ha Lock Provider is an agent skill from FutureTense/keymaster. Guide for developing, testing, and maintaining lock platform providers (e.g., zwavejs, zigbee2mqtt, zha, schlage, akuvox) implementing BaseLockProvider in Keymaster.

Its SKILL.md is about 830 tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

The repository describes itself as: Home Assistant integration for managing Z-Wave enabled locks. The licence is MIT.

Example prompts

  • “/ha-lock-provider”

Requirements

  • Python 3

Workflow steps

5 steps, taken from the first numbered list in SKILL.md.

  1. Inherit from BaseLockProvider
  2. Implement Required Abstract Methods
  3. Optional Event Subscriptions
  4. Register the Provider
  5. Error Handling

What it can do on your machine

Read from SKILL.md and the folder at commit d94ffb2. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md (its code samples are python).

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Ha Lock Provider loads about 829 tokens when it runs. Until then it costs about 46 tokens; SKILL.md has 182 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~46
When it runs · the whole SKILL.md, loaded when a task matches
~829

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from FutureTense/keymaster at commit d94ffb2, republished under its MIT licence (© FutureTense). 182 words, ~829 tokens.

Download SKILL.mdSave it as .claude/skills/ha-lock-provider/SKILL.md (or your agent's skills folder).
name
ha-lock-provider
description
Guide for developing, testing, and maintaining lock platform providers (e.g., zwave_js, zigbee2mqtt, zha, schlage, akuvox) implementing BaseLockProvider in Keymaster.

Keymaster Lock Provider Development Guide

This skill guides the implementation, extension, and testing of lock platform providers in custom_components/keymaster/providers/. For general provider documentation, see custom_components/keymaster/providers/PROVIDERS.md.

Architecture Overview

All lock providers must inherit from BaseLockProvider in custom_components/keymaster/providers/_base.py.

text
custom_components/keymaster/providers/
├── __init__.py      # Provider registry and factory
├── _base.py         # BaseLockProvider ABC and CodeSlot dataclass
├── zwave_js.py      # Z-Wave JS implementation
├── zigbee2mqtt.py   # Zigbee2MQTT implementation
├── zha.py           # ZHA implementation
├── schlage.py       # Schlage implementation
├── akuvox.py        # Akuvox implementation
├── const.py         # Provider-specific constants
└── PROVIDERS.md     # Integration provider documentation

Implementing BaseLockProvider

When creating or modifying a provider:

  1. Inherit from BaseLockProvider:

    python
    from dataclasses import dataclass
    from typing import TYPE_CHECKING
    from collections.abc import Callable
    from ._base import BaseLockProvider, CodeSlot, LockEventCallback, ConnectionCallback
    
    if TYPE_CHECKING:
        from ..lock import KeymasterLock
    
    
    @dataclass
    class CustomLockProvider(BaseLockProvider):
        """Custom lock provider implementation."""
    
        @property
        def domain(self) -> str:
            """Return the integration domain."""
            return "custom_domain"
  2. Implement Required Abstract Methods:

    • @property def domain(self) -> str
    • async def async_connect(self) -> bool
    • async def async_is_connected(self) -> bool
    • async def async_get_usercodes(self) -> list[CodeSlot]
    • async def async_set_usercode( self, slot_num: int, code: str, name: str | None = None) -> bool
    • async def async_clear_usercode(self, slot_num: int) -> bool
  3. Optional Event Subscriptions:

    • subscribe_lock_events(kmlock, callback) -> Callable[[], None]
    • subscribe_connection_events(callback) -> Callable[[], None]
  4. Register the Provider:

    • In custom_components/keymaster/providers/__init__.py, import the provider class and map it in PROVIDER_MAP.
  5. Error Handling:

    • Raise appropriate exceptions from custom_components/keymaster/exceptions.py:
      • LockDisconnected
      • LockOperationFailed
      • NotFoundError
      • NotSupportedError
      • NoNodeSpecifiedError
      • ProviderNotConfiguredError
    • Never allow unhandled third-party integration exceptions to crash the coordinator refresh loop.

Testing Lock Providers

  • Provider unit tests live under tests/providers/test_<provider>.py.
  • Mock platform services/events rather than running live platform network fixtures.
  • Test the following scenarios:
    • Successful code slot set & clear
    • Handling invalid/out-of-range slot numbers
    • Disconnected platform state handling
    • Event callback invocation on unlock/lock/pin events

© FutureTense, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in .agents/skills/ha-lock-provider of FutureTense/keymaster.

Open the folder on GitHubat commit d94ffb2

Compare with similar skills

Ha Lock Provider next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Ha Lock Provider compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Ha Lock Provider this skillFutureTense/keymaster349—~829Automated safety check: PassMIT
Nemoclaw Maintainer Runtime ProviderNVIDIA/NemoClaw23k—~1.2kAutomated safety check: PassApache-2.0
DDNS Provider DevelopmentNewFuture/DDNS4.7k—~558Automated safety check: PassMIT
MCP Developmentcoollabsio/coolify63k1 repos~949Automated safety check: PassMIT
Wiki Maintaineropenclaw/openclaw392k1 repos~462Automated safety check: PassMIT
Game Developmentsickn33/agentic-awesome-skills47k1 repos~1.3kAutomated safety check: PassMIT

Similar skills

  • Official

    Implement or review a native managed NemoClaw runtime provider and its activation or qualification.

    23k GitHub stars~1.2k tokensUpdated today
    Auto-check passed
  • Adds or changes a DNS provider in the DDNS project while keeping its code, schemas, tests and Chinese and English docs consistent.

    4.7k GitHub stars~558 tokensUpdated 2 days ago
    DevelopmentAuto-check passed
  • MCP Development

    coollabsio/coolify

    A skill your agent uses for Laravel MCP development. An agent skill from coollabsio/coolify.

    63k GitHub starsUsed in 1 repo~949 tokens
    Frontend & DesignAuto-check passed
  • Wiki Maintainer

    openclaw/openclaw

    Maintain the OpenClaw memory wiki vault with deterministic pages, managed blocks, and source-backed updates.

    392k GitHub starsUsed in 1 repo~462 tokens
    Knowledge ManagementAuto-check passed
  • Game Development

    sickn33/agentic-awesome-skills

    Game development orchestrator. An agent skill from sickn33/agentic-awesome-skills.

    47k GitHub starsUsed in 1 repo~1.3k tokens
    Game DevelopmentAuto-check passed
  • Guides changes to an existing Twenty app: adding or editing objects, layouts, logic functions and front components, with a plan stated before multi-entity edits.

    58k GitHub stars~1.8k tokensUpdated yesterday
    DevelopmentAuto-check passed

More from FutureTense/keymaster

  • Ha Code Quality

    FutureTense/keymaster

    Standards and commands for linting, code formatting, typing validation (Ruff, MyPy, Codespell, ESLint, Pre-commit/Prek, Tox), and adherence to Home Assistant Python 3.14 standards in Keymaster.

    349 GitHub stars~462 tokensUpdated yesterday
    Auto-check passed
  • Ha Integration Testing

    FutureTense/keymaster

    Workflows, conventions, and commands for writing and running async Home Assistant unit and integration tests using pytest, tox, pytest-homeassistant-custom-component, and coverage tools.

    349 GitHub stars~522 tokensUpdated yesterday
    Auto-check passed
  • Patch Coverage

    FutureTense/keymaster

    Procedure and guidelines for verifying and maintaining 100% patch test coverage on all modified and added lines across Keymaster PRs and branches.

    349 GitHub stars~1.1k tokensUpdated yesterday
    Auto-check passed
  • Submit PR

    FutureTense/keymaster

    Procedure for preparing and submitting pull requests in keymaster, enforcing the required PR template (.github/PULLREQUESTTEMPLATE.md), checklist validation, and quality gates.

    349 GitHub stars~830 tokensUpdated yesterday
    Auto-check passed
  • Lovelace Strategy

    FutureTense/keymaster

    Workflows for developing, building, bundling, and testing the TypeScript / Lit Lovelace dashboard strategy in lovelacestrategy/.

    349 GitHub stars~345 tokensUpdated yesterday
    Auto-check passed
  • Coordinator Lifecycle

    FutureTense/keymaster

    Architectural patterns and lifecycle instructions for KeymasterCoordinator, KeymasterLockCoordinator, fan-out notification architecture, child entity platforms, and storage migrations.

    349 GitHub stars~857 tokensUpdated yesterday
    Auto-check passed

Questions about Ha Lock Provider

What does Ha Lock Provider do?

Guide for developing, testing, and maintaining lock platform providers (e.g., zwavejs, zigbee2mqtt, zha, schlage, akuvox) implementing BaseLockProvider in Keymaster. Ha Lock Provider is an agent skill from FutureTense/keymaster., zwavejs, zigbee2mqtt, zha, schlage, akuvox) implementing BaseLockProvider in Keymaster.

How do I install Ha Lock Provider in Claude Code?

Run `npx skills add FutureTense/keymaster --skill ha-lock-provider -a claude-code`. Or copy the skill folder (.agents/skills/ha-lock-provider in FutureTense/keymaster) into .claude/skills/ha-lock-provider in your project. Claude Code loads it when a task matches its description.

How do I install Ha Lock Provider in Codex?

Run `npx skills add FutureTense/keymaster --skill ha-lock-provider -a codex`. Or copy the skill folder (.agents/skills/ha-lock-provider in FutureTense/keymaster) into .agents/skills/ha-lock-provider in your project. Codex loads it when a task matches its description.

Can I use Ha Lock Provider in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add FutureTense/keymaster --skill ha-lock-provider -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/ha-lock-provider, .gemini/skills/ha-lock-provider, .github/skills/ha-lock-provider and .opencode/skills/ha-lock-provider in your project.

What does Ha Lock Provider need to run?

SKILL.md names no scripts, command-line tools or credentials: Ha Lock Provider is instructions for the agent only. Our summary lists: Python 3.

Does Ha Lock Provider access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Ha Lock Provider safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Ha Lock Provider use?

Ha Lock Provider is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Ha Lock Provider use?

About 829 tokens (SKILL.md is roughly 3.3k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Ha Lock Provider?

Skills that share tags, products or a category with Ha Lock Provider: Nemoclaw Maintainer Runtime Provider (NVIDIA/NemoClaw, 23k stars), DDNS Provider Development (NewFuture/DDNS, 4.7k stars), MCP Development (coollabsio/coolify, 63k stars) and Wiki Maintainer (openclaw/openclaw, 392k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Ha Lock Provider?

FutureTense (a GitHub user) maintains it in FutureTense/keymaster, which has 349 GitHub stars. The repository holds 7 skills in this directory. The repository was last updated on October 7, 2026.

Source: FutureTense/keymaster on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.