Agent skill

Preset Upkeep

by prestomation in prestomation/ha-home-keeper

Check the integration presets against their upstream integrations, fix the keys that changed, add presets for new duty keys and for integrations Home Keeper does not cover yet, and open one draft PR.

MITAuto-check passedDevelopment

Install Preset Upkeep

skills CLI
$ npx skills add prestomation/ha-home-keeper --skill preset-upkeep -a claude-code

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

GitHub CLI
$ gh skill install prestomation/ha-home-keeper preset-upkeep --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/prestomation/ha-home-keeper.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/preset-upkeep .claude/skills/preset-upkeep && 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
preset-upkeep
GitHub stars
105
Token cost
~1.8k tokens
SKILL.md length
949 words
Files
1
Skills in repo
4
Repo updated
First seen
Licence
MIT

At a glance

Check the integration presets against their upstream integrations, fix the keys that changed, add presets for new duty keys and for integrations Home Keeper does not cover yet, and open one draft PR.

  • Works in 7 steps: Start → Breaks: keys that are gone → New keys in integrations we cover → …
  • The weekly upkeep run
  • SKILL.md covers 1. Start, 2. Breaks: keys that are gone, 3. New keys in integrations we… and 4. Integrations we do not cover, plus 3 more sections
  • Calls python, git and ruff; reaches github.com and raw.githubusercontent.com

What it does

Preset Upkeep is an agent skill from prestomation/ha-home-keeper. Check the integration presets against their upstream integrations, fix the keys that changed, add presets for new duty keys and for integrations Home Keeper does not cover yet, and open one draft PR. Use for the weekly upkeep run, or when asked to check, refresh or audit the presets against upstream.

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

It sits in Development. The repository describes itself as: Home Keeper is a Home Assistant plugin for tracking home maintenance and chores with deep HA integration. The licence is MIT.

When your agent uses it

  • The weekly upkeep run
  • Audit the presets against upstream

Example prompts

  • “/preset-upkeep”

Requirements

  • Python 3

Workflow steps

7 steps, taken from the step headings in SKILL.md.

  1. Start
  2. Breaks: keys that are gone
  3. New keys in integrations we cover
  4. Integrations we do not cover
  5. Pin and test
  6. CHANGELOG and version
  7. Pull request

What it can do on your machine

Read from SKILL.md and the folder at commit 3fe5967. 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

    Shell commands in SKILL.md call:

    • python
    • git
    • ruff
    • pytest
    • bash

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

  • Network

    Hosts in commands or code, which the agent is likely to contact:

    • github.com
    • raw.githubusercontent.com

    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

Preset Upkeep loads about 1.8k tokens when it runs. Until then it costs about 79 tokens; SKILL.md has 949 words of instructions outside code blocks.

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

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 prestomation/ha-home-keeper at commit 3fe5967, republished under its MIT licence (© prestomation). 949 words, ~1,843 tokens.

Download SKILL.mdSave it as .claude/skills/preset-upkeep/SKILL.md (or your agent's skills folder).
name
preset-upkeep
description
Check the integration presets against their upstream integrations, fix the keys that changed, add presets for new duty keys and for integrations Home Keeper does not cover yet, and open one draft PR. Use for the weekly upkeep run, or when asked to check, refresh or audit the presets against upstream.

Preset upkeep

The integration presets in custom_components/home_keeper/declarative_presets_catalog.py select entities by the translation_key that each upstream integration gives them. Each entry names its English translation file (source) and the upstream commit we last read (verified.ref). This skill finds what changed upstream since then, fixes or extends the catalog, and opens one draft PR. Two scripts do the finding with no judgment. You do the judgment.

Follow AGENTS.md for everything this file does not say: ASD-STE100 English in all user text, tests before a push, CHANGELOG rules, the beta bump, /q review after a push. Never merge, and never comment on a GitHub issue.

1. Start

  1. Work on the branch the session gives you. When it gives none, branch from origin/main as preset-upkeep-YYYY-MM-DD.

  2. source .venv/bin/activate (see AGENTS.md, "Session setup").

  3. Run the key check and keep the report:

    bash
    python ci/check_preset_keys.py --report /tmp/preset-report.json
  4. Get the core translation files and list the candidates:

    bash
    rm -rf /tmp/ha-core
    git clone -q --depth 1 --filter=blob:none --sparse \
        https://github.com/home-assistant/core /tmp/ha-core
    git -C /tmp/ha-core sparse-checkout set --no-cone \
        '/homeassistant/components/*/strings.json'
    python ci/find_preset_candidates.py --core /tmp/ha-core --json /tmp/candidates.json

2. Breaks: keys that are gone

For each record in the report with missing keys or a fetch_error:

  • Read the upstream file at pinned_ref and at head_ref (https://raw.githubusercontent.com/<owner>/<repo>/<ref>/<path>), and the integration's entity code when the file does not say enough.
  • A renamed key: change it in the catalog. Keep the task name.
  • A removed key: remove it. When a duty loses all its keys, remove the duty.
  • Never remove a preset id that is in tests/unit/shipped_preset_ids.txt. A saved companion keeps its id, and test_shipped_preset_ids_never_change fails when one goes away. When an entry or a shape loses all its keys, keep it as it is and ask the maintainer in the PR.
  • branch ... not found: the default branch changed. Find it with git ls-remote --symref https://github.com/<owner>/<repo> HEAD and fix source.
  • A file that moved: fix source to the new path.
  • cannot reach the repository: a network error, not a change upstream. Run the check again for that domain (python ci/check_preset_keys.py <domain>). When it still fails, leave the entry and list it in the PR.
  • pin_error (no diff, the pinned commit is gone, for example after a force push): the head was still checked. Read the upstream history of the file by hand for new keys, then pin the entry as usual.

3. New keys in integrations we cover

For each record with added keys, start with hints:

  • Read the entity description upstream: unit, device class, what the value counts, and whether the device can reset it.
  • When the key is a maintenance duty, add it to the duty that has the same task, or add a duty. A duty needs a shape from SHAPES in declarative_presets.py (percent_low, life_low, wear_high, reading_low, reading_high, alert) and a limit (see the catalog docstring). A wear counter that counts events, not time, gets "counted": True.
  • A new task name goes in DUTY_NAMES in declarative_preset_text.py, in all 16 languages. Use the words that the other entries use.
  • A key that is not a duty (a status, a setting, a mode) is skipped. List it in the PR as skipped, with one short reason.
Show full SKILL.md (490 more words)Show less

4. Integrations we do not cover

/tmp/candidates.json lists core integrations with duty-like keys and HACS repositories added since the last run. Review at most 10 per run, the HACS ones first, then core in the order listed.

  • For a HACS repository, find its translation file (custom_components/<domain>/translations/en.json) on its default branch.

  • When it has a clear duty, add a catalog entry: domain, brand, icon, source (raw URL on the branch), duties. Put it in the section of its kind of device.

  • For each preset that you add (a new entry, or a new shape in an entry), add its id to tests/unit/shipped_preset_ids.txt in sorted order. The id is <domain>_<shape>_<platform>_<state> (see _integration_presets in declarative_presets.py). Leave out the platform when it is sensor, and the state when the shape has none: dreo_percent_low, electrolux_alert_Change, roomba_alert_binary_sensor_on. The unit test names a missing id. Add a new entry's brand to the table in docs/guide/views/settings.md ("Integration presets").

  • Record every candidate you reviewed, added or not, so the next run skips it:

    bash
    python ci/find_preset_candidates.py --core /tmp/ha-core --mark core:<domain> "<reason>"
    python ci/find_preset_candidates.py --mark hacs:<owner/repo> "<reason>"

    The reason says what you decided: "added", or why it is not a duty.

  • After the HACS candidates are all reviewed, run python ci/find_preset_candidates.py --pin-hacs.

5. Pin and test

  1. Pin every entry you read in this run, also the ones with no change, so the next report starts from today:

    bash
    python ci/check_preset_keys.py --pin

    An entry that still has a break is not pinned. Fix it, or say in the PR why not.

  2. Run the gates:

    bash
    python ci/check_preset_keys.py
    ruff format custom_components ci tests && ruff check custom_components ci tests
    pytest tests/unit -q
    bash ci/test-frontend.sh

    tests/unit/test_declarative_companions.py checks that every duty has a task name in every language and that every preset text resolves.

6. CHANGELOG and version

Only when users get a change (a fixed, added or removed preset):

  • One ### Added bullet for new presets and one ### Fixed bullet for repaired ones. Name the integrations; no mechanism, no key names. Follow the bullet rules in AGENTS.md. Run vale on the lines you added.
  • Bump to the next beta as AGENTS.md says (manifest.json, const.py, the CHANGELOG heading), and run python ci/check-changelog-release-gap.py.

A run that only moves the pins and records reviews needs no CHANGELOG entry and no version bump.

7. Pull request

  • When nothing changed upstream and you recorded no review, open no PR. Reply "No upstream change" and stop.
  • Otherwise commit, push, and open a draft PR titled Preset upkeep YYYY-MM-DD. The body has these sections: Fixed, Added, Skipped keys, Candidates reviewed, Candidates left, and Pins moved (a count).
  • Open the PR against main, not against another branch. The CI workflows run only for a PR to main, and a later change of the base does not start them.
  • Post /q review on the PR with a request that names the integrations you changed.
  • Reply with a short summary in ASD-STE100 English: what you fixed, what you added, and the PR link.

© prestomation, 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 .claude/skills/preset-upkeep of prestomation/ha-home-keeper.

Open the folder on GitHubat commit 3fe5967

Compare with similar skills

Preset Upkeep 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.

Preset Upkeep compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Preset Upkeep this skillprestomation/ha-home-keeper105—~1.8kAutomated safety check: PassMIT
Vercel Composition Patternssupabase/supabase111k58 repos~726Automated safety check: PassMIT
Finishing a Development Branchobra/superpowers297k5 repos~1.9kAutomated safety check: PassMIT
Typescript Advanced Typesrolling-scopes/rsschool-app10k25 repos~4.2kAutomated safety check: PassMPL-2.0
PR Babysitteropeninterpreter/openinterpreter69k3 repos~4.2kAutomated safety check: PassApache-2.0
Code Review ChecklistshareAI-lab/learn-claude-code78k4 repos~1.1kAutomated safety check: PassMIT

Similar skills

  • Official

    React composition patterns that scale. An agent skill from supabase/supabase.

    111k GitHub starsUsed in 58 repos~726 tokens
    DevelopmentAuto-check passed
  • Walks the last step of a branch: confirm tests pass, detect the git environment, ask how to integrate, carry out your choice and clean up the worktree.

    297k GitHub starsUsed in 5 repos~1.9k tokens
    DevelopmentAuto-check passed
  • Typescript Advanced Types

    rolling-scopes/rsschool-app

    Master TypeScript's advanced type system including generics, conditional types, mapped types, template literals, and utility types for building type-safe applications.

    10k GitHub starsUsed in 25 repos~4.2k tokens
    DevelopmentAuto-check passed
  • PR Babysitter

    openinterpreter/openinterpreter

    Watches an open GitHub pull request until it merges, handling review comments, diagnosing CI failures and retrying flaky checks along the way.

    69k GitHub starsUsed in 3 repos~4.2k tokens
    DevelopmentAuto-check passed
  • Code Review Checklist

    shareAI-lab/learn-claude-code

    Reviews code against a five-part checklist covering security, correctness, performance, maintainability and testing, and reports findings in a fixed format.

    78k GitHub starsUsed in 4 repos~1.1k tokens
    DevelopmentAuto-check passed
  • Greploop

    onyx-dot-app/onyx

    Iteratively improves a PR (GitHub), MR (GitLab), or shelved changelist (Perforce) until Greptile gives it a 5/5 confidence score with zero unresolved comments.

    32k GitHub starsUsed in 4 repos~3.3k tokens
    DevelopmentAuto-check passed

More from prestomation/ha-home-keeper

  • Open Work

    prestomation/ha-home-keeper

    Report the open work on Home Keeper and sort it by who must act next, and show a draft of the CHANGELOG for the next stable release.

    105 GitHub stars~2.5k tokensUpdated yesterday
    Auto-check passed
  • Preview Comment

    prestomation/ha-home-keeper

    Draft the maintainer's short comment that tells an issue reporter a preview build of the fix is ready to try, with links to its preview docs, and post it on the issue only after the maintainer…

    105 GitHub stars~1.6k tokensUpdated yesterday
    Auto-check passed
  • UX Review

    prestomation/ha-home-keeper

    Senior-UX-reviewer process. An agent skill from prestomation/ha-home-keeper.

    105 GitHub stars~3k tokensUpdated yesterday
    Auto-check passed

Categories

Questions about Preset Upkeep

What does Preset Upkeep do?

Check the integration presets against their upstream integrations, fix the keys that changed, add presets for new duty keys and for integrations Home Keeper does not cover yet, and open one draft PR. Preset Upkeep is an agent skill from prestomation/ha-home-keeper. Check the integration presets against their upstream integrations, fix the keys that changed, add presets for new duty keys and for integrations Home Keeper does not cover yet, and open one draft PR.

When should I use Preset Upkeep?

Preset Upkeep fits situations like: the weekly upkeep run; audit the presets against upstream.

How do I install Preset Upkeep in Claude Code?

Run `npx skills add prestomation/ha-home-keeper --skill preset-upkeep -a claude-code`. Or copy the skill folder (.claude/skills/preset-upkeep in prestomation/ha-home-keeper) into .claude/skills/preset-upkeep in your project. Claude Code loads it when a task matches its description.

How do I install Preset Upkeep in Codex?

Run `npx skills add prestomation/ha-home-keeper --skill preset-upkeep -a codex`. Or copy the skill folder (.claude/skills/preset-upkeep in prestomation/ha-home-keeper) into .agents/skills/preset-upkeep in your project. Codex loads it when a task matches its description.

Can I use Preset Upkeep 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 prestomation/ha-home-keeper --skill preset-upkeep -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/preset-upkeep, .gemini/skills/preset-upkeep, .github/skills/preset-upkeep and .opencode/skills/preset-upkeep in your project.

What does Preset Upkeep need to run?

Going by SKILL.md and its folder, Preset Upkeep needs the command-line tools its instructions call (python, git, ruff, pytest and bash). Our summary lists: Python 3.

Does Preset Upkeep access the network?

SKILL.md names 2 domains. In commands or code: github.com and raw.githubusercontent.com; the agent is likely to contact these when it follows the instructions. This is read from the text; nothing was executed.

Is Preset Upkeep 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 Preset Upkeep use?

Preset Upkeep 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 Preset Upkeep use?

About 1.8k tokens (SKILL.md is roughly 7.4k 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 Preset Upkeep?

Skills that share tags, products or a category with Preset Upkeep: Vercel Composition Patterns (supabase/supabase, 111k stars), Finishing a Development Branch (obra/superpowers, 297k stars), Typescript Advanced Types (rolling-scopes/rsschool-app, 10k stars) and PR Babysitter (openinterpreter/openinterpreter, 69k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Preset Upkeep?

prestomation (a GitHub user) maintains it in prestomation/ha-home-keeper, which has 105 GitHub stars. The repository holds 4 skills in this directory. The repository was last updated on October 10, 2026.

Source: prestomation/ha-home-keeper on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.