Skip to content
Back to skills

Setup

ASecurity

Verify and provision the Kindle for PC 2.8.0 + Calibre DeDRM workflow (Windows only, personal-use, books the user owns). check probes prerequisites and current state read-only (Calibre, Python, pwsh, admin, Kindle version, firewall/ICACLS lock, downloads, plugins) via the plugin's own status script; apply runs the first-time provisioning walkthrough: the gated artifact download, install, firewall block, ICACLS lock, Calibre plugins, and keyfinder. Use when: 'set up Kindle DRM removal', 'is my...

  • 13 stars
  • 0 votes
  • 0 copies
  • 4 views
  • Added September 2, 2026
ai-agentspythonbashgit

Works with

  • claude code
  • cli

Security analysis

A100/100

Pro scans all 2 files and shows the line behind each finding

Scanned October 4, 2026

npx -y skills add melodic-software/claude-code-plugins --skill setup --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Setup?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Setup
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/melodic-software-setup-20eb6810/badge)](https://www.skillsdirectory.com/skills/melodic-software-setup-20eb6810)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
description: "Verify and provision the Kindle for PC 2.8.0 + Calibre DeDRM workflow (Windows only, personal-use, books the user owns). check probes prerequisites and current state read-only (Calibre, Python, pwsh, admin, Kindle version, firewall/ICACLS lock, downloads, plugins) via the plugin's own status script; apply runs the first-time provisioning walkthrough: the gated artifact download, install, firewall block, ICACLS lock, Calibre plugins, and keyfinder. Use when: 'set up Kindle DRM removal', 'is my DeDRM setup ready', 'provision kindle-dedrm', 'download DeDRM tools', 'check DeDRM prerequisites'. Re-runnable and safe."
argument-hint: "[check|apply] [download]"
user-invocable: true
disable-model-invocation: true
---

## Purpose

Verify and provision the first-time DeDRM setup, per the uniform setup contract
(`docs/plugin-philosophy.md` "Setup is explicit and repeatable" in the marketplace repository).
`check` inspects prerequisites and current state read-only; `apply` runs the provisioning walkthrough
(the router skill's workflow reference), then re-runs `check`. No argument or `check` runs the check;
`apply` runs the check first, then provisioning; `apply download` runs only the gated
artifact-download subaction. This plugin has no repo- or consumer-scoped
configuration and no `userConfig` scalars/toggles. Setup writes no Claude Code user settings, no
`pluginConfigs`, and nothing into the plugin cache or plugin data directory; it provisions the user's
machine (installs, firewall rule, ICACLS lock, extracted keys) and every mutation has a compensating
reversal under `/kindle-dedrm:manage cleanup`.

Scope and the hard safety rules are the router skill's: read
[`${CLAUDE_PLUGIN_ROOT}/skills/manage/SKILL.md`](${CLAUDE_PLUGIN_ROOT}/skills/manage/SKILL.md)
"Hard safety rules" before any `apply`. They apply here unchanged (never open Kindle with the firewall
down except during an active sync; never run the cached auto-update installer; never send keys or
extracted files off the machine).

## Interactivity

Much of provisioning is irreducibly interactive. The installer's UAC + EULA, the Amazon sign-in race
window, the Calibre plugin GUI loads, and the keyfinder VBS are actions on the user's machine the agent
physically cannot drive. `apply` keeps these as **user-action hand-offs** (hand the user the exact step,
wait for confirmation at each CHECKPOINT), not interview prompts. There are no configuration decisions
to interview for. The parts that genuinely automate, artifact download + SHA verification, the firewall
rule, the ICACLS lock, run non-interactively.

## `check` (read-only)

The status script
(`${CLAUDE_PLUGIN_ROOT}/skills/manage/scripts/status.sh`) is the source of truth for current
state. Run it and read its JSON before reporting. Add the prerequisite probes the pre-flight table in
the workflow reference (`${CLAUDE_PLUGIN_ROOT}/skills/manage/reference/workflow.md`)
requires. Report a PASS/FAIL/INFO table with one remediation per FAIL; modify
nothing, download nothing, extract nothing.

```bash
bash "${CLAUDE_PLUGIN_ROOT}/skills/manage/scripts/status.sh"
```

1. **Hard prerequisites.** FAIL when absent: Calibre installed (any recent version); Python 3.6+ on
   PATH and **not** the Windows Store `WindowsApps` stub; `pwsh` available; admin rights available.
   These are true prerequisites, not opt-in state.
2. **Kindle for PC version.** Installed and **not** `2.8.0.70980` is FAIL (the user must uninstall it
   first. The skill never auto-uninstalls; see
   `${CLAUDE_PLUGIN_ROOT}/skills/manage/reference/troubleshooting.md`). Absent is INFO (not
   yet provisioned. `apply` installs it). Exactly `2.8.0.70980` is PASS.
3. **Provisioning state.** Firewall rule, ICACLS deny, `~/Tools/Kindle_Key_Finder`, and the three
   `~/Downloads` artifacts. Before first setup these are legitimately absent → INFO ("not yet
   provisioned; run `apply`"), not FAIL.
4. **Cached auto-update installer.** `status.sh`'s `cached_installer` present is FAIL: it is the
   auto-update payload that breaks key extraction; remediation is
   `${CLAUDE_PLUGIN_ROOT}/skills/manage/scripts/lock-updates.sh apply` /
   `${CLAUDE_PLUGIN_ROOT}/skills/manage/scripts/sync-finalize.sh delete-cache` (never run it).
5. **Calibre plugins and books.** INFO: report `calibre_plugins` (KFX Input, DeDRM, `dedrm.json`
   presence) and the `books` synced/converted counts. Report the key store `dedrm.json` presence-only.
   Never print its contents (it holds extracted keys).

## `apply` (idempotent)

Run `check`, then provision. `apply` walks the full first-time sequence; `apply download` runs only the
gated download subaction. Every step's exact command, rationale, and verification live in
[`${CLAUDE_PLUGIN_ROOT}/skills/manage/reference/workflow.md`](${CLAUDE_PLUGIN_ROOT}/skills/manage/reference/workflow.md).
**Follow it there; do not restate it here** (that keeps the download flow's pinned-tag fallback and the
Key_Finder URL empty-match guard authoritative in one place). Pause at every CHECKPOINT for user
confirmation.

- **`apply download`.** Step 1 of the workflow reference: download the three artifacts to
  `~/Downloads` and SHA256-verify them against the versions reference
  (`${CLAUDE_PLUGIN_ROOT}/skills/manage/reference/versions.md`). The DeDRM_tools tag resolves
  dynamically via the authenticated `gh` CLI and **falls back to the pinned tag in the versions
  reference** when `gh` is unavailable or returns nothing; the guard refuses to compose a URL with the
  placeholder still in place. The Key_Finder zip URL resolves from the tutorial article and **stops with
  the mirror-procedure pointer on an empty match**. On a SHA mismatch, stop and re-fetch.
- **Full `apply`.** Steps 1-9 of the workflow reference: download (as above) → extract → user runs
  the installer (UAC/EULA hand-off, CHECKPOINT) → sign-in race window (CHECKPOINT) → verify books on
  disk → firewall block (`${CLAUDE_PLUGIN_ROOT}/skills/manage/scripts/firewall.ps1 enable`) →
  delete cached installer + ICACLS deny
  (`${CLAUDE_PLUGIN_ROOT}/skills/manage/scripts/lock-updates.sh apply`) → Calibre plugin loads
  (GUI hand-off, CHECKPOINT) → run keyfinder (VBS hand-off, CHECKPOINT) → verify EPUBs.
- **Verify after each remediation.** After each automated mutation re-run the relevant `status.sh`
  probe (firewall rule enabled, ICACLS `LOCK OK`, downloads `3/3`, Kindle version `2.8.0.70980`) and
  report its actual result; never claim a step succeeded on a command's exit code alone.

Re-running `apply` when `check` already passes changes nothing new. The download, extraction, firewall,
and lock steps are idempotent, and the skill reports "already provisioned".

## What this skill does NOT do

- Run `sync`, `update`, `cleanup`, or `status`. Those stay on the router skill
  (`/kindle-dedrm:manage`); `check` here is the read-only state report, `apply` is first-time provisioning.
- Write the plugin cache, Claude Code user settings, or `pluginConfigs`. Nor the plugin data directory.
- Send any script, key, or extracted file off the user's machine. Personal-use scope only.
- Auto-uninstall a wrong Kindle for PC version or run the cached auto-update installer.

Files in this skill

  • SKILL.md7.1 KB
  • evals/evals.json3.4 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.