BloomDesktop: Skill for Claude Code

.claude/skills/resume-ckeditor/SKILL.md

resume-ckeditor is a skill for Claude Code from BloomBooks/BloomDesktop. It costs 65 tokens per session (794 once invoked), scanned A, original, MIT.

A step-by-step guide for continuing the long-running project to remove CKEditor and unify undo behaviour. It tells the coding agent where the project's progress, plan, and behaviour records are kept and what repository checks to perform first.

In plain words
What is it for?
Use it when continuing the CKEditor retirement project, checking its current phase, reviewing Git status and history, and following the staged plan.
Why use it?
It helps work resume safely after an interruption without relying on an old conversation or forgetting decisions already made.

Skill for Claude Code

Written for Claude Code: installed under .claude/. Also seen: mentions AGENTS.md.

This is BloomBooks/BloomDesktop's own configuration. It tells Claude Code how to work on BloomDesktop itself, so it is not a mod to install elsewhere. Copy it as a starting point and replace the rules that are about this project. Everything BloomDesktop configures →

Reuse

Borrowing it

Nothing to install: this file belongs to BloomBooks/BloomDesktop. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.

Copy the file
curl -O https://raw.githubusercontent.com/BloomBooks/BloomDesktop/master/.claude/skills/resume-ckeditor/SKILL.md
Clone the repo
git clone --depth 1 https://github.com/BloomBooks/BloomDesktop

Made for: Claude Code.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for resume-ckeditor

README.md
[![agentmods](https://agentmods.dev/badge/skills/bloombooks/bloomdesktop/resume-ckeditor/github.svg)](https://agentmods.dev/skills/bloombooks/bloomdesktop/resume-ckeditor)
Your own site
<a href="https://agentmods.dev/skills/bloombooks/bloomdesktop/resume-ckeditor"><img src="https://agentmods.dev/badge/skills/bloombooks/bloomdesktop/resume-ckeditor/github.svg" alt="Measured on agentmods" height="20"></a>

Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.

agentmods 80×15 button for resume-ckeditor

Your own site · 80×15
<a href="https://agentmods.dev/skills/bloombooks/bloomdesktop/resume-ckeditor"><img src="https://agentmods.dev/badge/skills/bloombooks/bloomdesktop/resume-ckeditor.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 65 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 794 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. A grade says what 26 rules found in the file — not that it is safe.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5.1 $0.00065 $0.00794
Opus 5.5 $0.00026 $0.00318
Sonnet 5.5 $0.00013 $0.00159
Haiku 4.5 $0.00006 $0.00079

Measured 1mo ago against content hash d52514aad7f8, method: parsed. Prices are Anthropic first-party input rates as of 2026-10-07, from the pricing page.

Security

Grade A, and why

resume-ckeditor scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 1mo ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

.claude/skills/resume-ckeditor/SKILL.md · 52 lines

How it starts

The opening of the file, as written. The whole thing — 52 lines — stays where its author put it; the contents beside it link to each section on GitHub.

Resume the CKEditor-retirement project (BL-6681)

This is a deliberately long-running project spanning many sessions and many rebases against a moving master. Its state lives in docs/retire-ckeditor/, not in any session's memory.

Do this, in order

  1. Read the state.

    • docs/retire-ckeditor/PROGRESS.md — the live log, current phase, and next actions. Start here.
    • docs/retire-ckeditor/PLAN.md — the staged plan (Stages 0–6). Authoritative for what to do. §10 holds the settled decisions and what the first review changed — do not re-litigate anything settled there; if you think a settled point is wrong, say so explicitly to the user rather than quietly changing course. §11 records what BL-6681 itself asks for, and what on it is already obsolete.
    • docs/retire-ckeditor/BEHAVIOR-INVENTORY.md if it exists — the behaviours that must survive.
  2. Orient in git. git status, git log --oneline -15, and note the current branch. Because the plan deliberately avoids long-lived branches, you may well be on master with nothing in flight; that is the normal resting state between stages, not a sign something was lost.

  3. Check for drift. Other work lands on master continuously. Before continuing a stage, confirm the files it touches still look the way the plan assumes — the plan cites specific file:line locations, and those move. If a citation has gone stale, fix the plan text as part of the work; a plan nobody trusts is worse than no plan.

  4. Continue from the next unchecked item in PROGRESS.md's "Next actions". Confirm with the user which stage to work on if more than one is plausible.

  5. Before ending the session (or when you sense you are running low on context), update PROGRESS.md: what you did, what you learned, the branch/PR, and a revised "Next actions". Do this even if the work is half-finished — especially then.

Ground rules for this project

  • New code goes in new files (bookEdit/undo/, bookEdit/textEditor/). Edits to existing files should be one-line dispatches wherever possible, and as late in the plan as possible. This is the project's whole defence against rebase pain.
  • Don't keep a long-lived branch. Each stage is designed to be its own small, green, flag-inert PR onto master.
  • Deletion commits (Stage 5) are regenerated, never rebased. If one conflicts, throw it away and redo it mechanically.
  • Build and test through the wrappers, never bare dotnet/vite — build/agent-dotnet.sh and build/agent-vite.sh — because the developer usually has a Bloom running via ./go.sh. See AGENTS.md. Never run the full pnpm build.
  • To see a change in the running Bloom, just edit the source (the Vite dev server pushes it in) and observe via the run-bloom skill. No build.

Read the full file on GitHub · 52 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 1mo ago First seen · 52 lines · 65 tokens per session scan A d52514aad7f8

Subscribe to this mod's changes

resume-ckeditor is a skill published in the GitHub repository BloomBooks/BloomDesktop (43 stars, last pushed today), licensed MIT. It adds 65 tokens to every session and 794 once invoked, about $0.0003 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-09-22.