Agent skill

Ckeditor5 Reviewing

by TriliumNext in TriliumNext/Trilium

Review or audit CKEditor 5 plugin code in the Trilium (TriliumNext Notes) monorepo, or a PR/diff touching packages/ckeditor5 (including its in-tree plugins under src/plugins/).

AGPL-3.0Auto-check passedDevelopment

Install Ckeditor5 Reviewing

skills CLI
$ npx skills add TriliumNext/Trilium --skill ckeditor5-reviewing -a claude-code

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

GitHub CLI
$ gh skill install TriliumNext/Trilium ckeditor5-reviewing --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/TriliumNext/Trilium.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/ckeditor5-reviewing .claude/skills/ckeditor5-reviewing && 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
ckeditor5-reviewing
GitHub stars
38k
Token cost
~2.5k tokens
SKILL.md length
1,066 words
Files
2 (incl. references)
Skills in repo
23
Repo updated
First seen
Licence
AGPL-3.0

At a glance

Review or audit CKEditor 5 plugin code in the Trilium (TriliumNext Notes) monorepo, or a PR/diff touching packages/ckeditor5 (including its in-tree plugins under src/plugins/).

  • Works in 10 steps: Scope the diff against Trilium's… → Read model-first. The model is the… → Check registration & wiring… → …
  • Checking a Trilium CKEditor 5 plugin for correctness and idiom: schema / conversion / command / UI / widget code
  • SKILL.md covers Scope & sources, When to use, Review workflow and Triage / severity, plus 3 more sections
  • Calls pnpm

What it does

Ckeditor5 Reviewing is an agent skill from TriliumNext/Trilium. Review or audit CKEditor 5 plugin code in the Trilium (TriliumNext Notes) monorepo, or a PR/diff touching packages/ckeditor5 (including its in-tree plugins under src/plugins/). Use when checking a Trilium CKEditor 5 plugin for correctness and idiom: schema / conversion / command / UI / widget code, CKEditor-specific defects (asymmetric upcast/downcast, unconsumed upcast elements, missing inline-widget position mapping, command refresh/isEnabled bugs, memory leaks, t() gaps, editing/UI split violations), and…

Its SKILL.md is about 2.5k tokens, which your agent loads only when the skill is triggered. The skill folder holds 2 other files, including reference files (for example `references/defect-patterns.md`).

It sits in Development, covering Monorepo tooling, Hooks and plugins and Performance optimization. The repository describes itself as: Build your personal knowledge base with Trilium Notes. The licence is AGPL-3.0.

When your agent uses it

  • Checking a Trilium CKEditor 5 plugin for correctness and idiom: schema / conversion / command / UI / widget code
  • CKEditor-specific defects (asymmetric upcast/downcast
  • Unconsumed upcast elements
  • Missing inline-widget position mapping

Example prompts

  • “/ckeditor5-reviewing”

Workflow steps

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

  1. Scope the diff against Trilium's structure. What surface changed — editing
  2. Read model-first. The model is the source of truth; trace the feature in order
  3. Check registration & wiring (Trilium-specific). A correct plugin that nobody loads is still
  4. Check conventions (Trilium-specific). Imports come from the ckeditor5 aggregate (or a
  5. Run the tests for the affected package. Use Vitest via
  6. Observe behavior. Attach the CKEditor Inspector (model / view / schema / commands), then
  7. Apply the dimension checklists (delegate to the two companion skills).
  8. Hunt defects with references/defect-patterns.md — the high-value, easy-to-miss failure
  9. Verify each finding before reporting it (see below). Reproduce it, or cite the exact line
  10. Report findings: severity-tagged, file:line, with the concrete fix or question.

What it can do on your machine

Read from SKILL.md and the folder at commit 4d9cb6d. 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:

    • pnpm

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

  • Network

    Links to these hosts (documentation or services it may open):

    • github.com
    • ckeditor.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

Ckeditor5 Reviewing loads about 2.5k tokens when it runs, and up to ~7.5k if it reads all its reference files. Until then it costs about 208 tokens; SKILL.md has 1,066 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~208
When it runs · the whole SKILL.md, loaded when a task matches
~2.5k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~7.5k

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 TriliumNext/Trilium at commit 4d9cb6d, republished under its AGPL-3.0 licence (© TriliumNext). 1,066 words, ~2,458 tokens.

Download SKILL.mdSave it as .claude/skills/ckeditor5-reviewing/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.
name
ckeditor5-reviewing
description
Review or audit CKEditor 5 plugin code in the Trilium (TriliumNext Notes) monorepo, or a PR/diff touching packages/ckeditor5 (including its in-tree plugins under src/plugins/). Use when checking a Trilium CKEditor 5 plugin for correctness and idiom: schema / conversion / command / UI / widget code, CKEditor-specific defects (asymmetric upcast/downcast, unconsumed upcast elements, missing inline-widget position mapping, command refresh/isEnabled bugs, memory leaks, t() gaps, editing/UI split violations), and Trilium integration defects (plugin not registered in plugins.ts, button missing from toolbar.ts, import/file-extension lint failures, wrong augmentation module, wrong DOM assumptions in tests). Pairs with the ckeditor5-plugin-development and ckeditor5-testing skills and delegates their checklists.

Reviewing CKEditor 5 plugins in Trilium

A workflow and defect catalog for reviewing CKEditor 5 plugin code in the Trilium monorepo — a distinct task from writing it. This skill orchestrates the review and hunts both CKEditor-specific and Trilium-integration bugs; it delegates the per-dimension "is this idiomatic?" checklists to the companion skills rather than duplicating them:

  • ckeditor5-plugin-development — its references/review-checklist.md (architecture, schema, conversion, commands, UI, a11y) and references/conventions.md (naming, imports, JSDoc, TS).
  • ckeditor5-testing — its review checklist and patterns for the test side (Vitest, browser-mode vs. @vitest/browser-playwright browser mode, real ClassicEditor.create).

Use those for "does this follow the conventions"; use this skill for how to drive the review and what subtle things tend to be wrong.

Scope & sources

This skill reviews CKEditor 5 plugin code in the Trilium monorepo (scope @triliumnext/). The CKEditor 5 library itself is the external ckeditor5 dependency, 48 or later — its docs (ckeditor.com/docs) and source (github.com/ckeditor/ckeditor5) are external references, not the code under review. Nearly all Trilium plugins live inside packages/ckeditor5, under src/plugins/<name>/ — admonition, collapsible, footnotes, keyboard_marker, mermaid and the in-tree plugins alongside them. There are no separate CKEditor plugin packages left. The aggregate assembles them all and is wired into the editor UI from apps/client.

On versions: these skills name major versions only ("48 or later"). Trilium tracks CKEditor 5 closely, so an exact pin written here would be stale within weeks — read the current one from packages/ckeditor5/package.json.

When to use

Reviewing a PR or diff that touches a Trilium CKEditor 5 plugin (packages/ckeditor5/src/plugins/ ), the aggregate itself, or the toolbar config in apps/client; auditing an existing plugin; sanity-checking your own feature before opening a PR. For writing the feature, use ckeditor5-plugin-development; for writing tests, use ckeditor5-testing.

Review workflow

  1. Scope the diff against Trilium's structure. What surface changed — editing (schema/conversion/command), UI (componentFactory/buttons/dropdowns/balloons), a widget, config? Which plugin (packages/ckeditor5/src/plugins/<name>/)? Does it also touch the aggregate's wiring (packages/ckeditor5/src/plugins.ts, src/index.ts) or the toolbar (apps/client/src/widgets/type_widgets/text/toolbar.ts)? This tells you which checklists, defect groups, and integration checks apply.
  2. Read model-first. The model is the source of truth; trace the feature in order schema → conversion → command → UI. Confirm each layer is present and consistent (e.g. a new model element has a schema registration and upcast and downcast and an insertion path).
  3. Check registration & wiring (Trilium-specific). A correct plugin that nobody loads is still broken. Confirm:
    • the plugin is exported and added to the right array in packages/ckeditor5/src/plugins.ts (CORE_PLUGINS / TRILIUM_PLUGINS / EXTERNAL_PLUGINS → builtinPlugins) so it actually loads into the editor classes in packages/ckeditor5/src/index.ts (AttributeEditor[Balloon], ClassicEditor[Decoupled], PopupEditor[Balloon]);
    • any new toolbar component is added to apps/client/src/widgets/type_widgets/text/toolbar.ts, otherwise the button never appears even though the plugin loaded.
  4. Check conventions (Trilium-specific). Imports come from the ckeditor5 aggregate (or a relative path inside packages/ckeditor5) with explicit file extensions; augmentation uses declare module 'ckeditor5' (never @ckeditor/ckeditor5-core), normally at the bottom of the plugin's glue file; any license header matches the sibling files in that plugin folder and the provenance recorded in its README.md. These are enforced by eslint-config-ckeditor5 (require-file-extensions-in-imports, allow-imports-only-from-main-package-entry-point, no-legacy-imports) and stylelint-config-ckeditor5 — a diff that breaks them fails lint.
  5. Run the tests for the affected package. Use Vitest via pnpm --filter @triliumnext/ckeditor5 test (or ...-math); the two run sequentially because each spins up headless Chromium. Both use @vitest/browser-playwright browser mode and gate src/** at 100% coverage. Coverage ≠ correctness: confirm the change itself is tested, not just that lines are hit. A bug fix with no new/changed test is a red flag even when coverage stays green.
  6. Observe behavior. Attach the CKEditor Inspector (model / view / schema / commands), then: round-trip editor.getData() → setData() (does content survive a save?); exercise selection edge cases (collapsed vs. ranged, inside objects/limits, at attribute boundaries); toggle read-only.
  7. Apply the dimension checklists (delegate to the two companion skills).
  8. Hunt defects with references/defect-patterns.md — the high-value, easy-to-miss failure modes (CKEditor-general + Trilium integration).
  9. Verify each finding before reporting it (see below). Reproduce it, or cite the exact line and the rule it breaks. Discard the ones that don't hold up.
  10. Report findings: severity-tagged, file:line, with the concrete fix or question.
Show full SKILL.md (401 more words)Show less

Triage / severity

  • Blocker — data loss (content dropped on getData()), crashes/console errors, undo corruption, security (unsanitized HTML/XSS), schema corruption; plugin not registered in plugins.ts (feature silently never loads).
  • Major — incorrect behavior in real selections, accessibility gaps (no keyboard path, missing labels/addKeystrokeInfos), memory leaks, command enabled where the schema disallows it; button missing from toolbar.ts; lint-failing imports (missing file extension / wrong package / legacy @ckeditor/*) that block the build.
  • Minor — convention/naming issues, missing t(), redundant converters, non-idiomatic but working code.
  • Nit — style preferences with no behavioral impact; mark them as optional.

Lead with blockers/majors; don't bury them under nits.

Verify before reporting (avoid false positives)

A noisy review erodes trust. Confirm a finding is real before raising it. Common false positives to not raise:

  • "Missing downcast" when the code uses a two-way helper (conversion.attributeToElement(...) registers both directions) — count two-way helpers, not just for('dataDowncast').
  • "getAttribute('data-x') should be .dataset" inside a converter callback — that's a view element, not DOM; .dataset would silently drop the value (see the plugin-dev conversion.md view-element pitfall).
  • "Boolean attribute should be set to false" — the idiom is to remove it (yields undefined).
  • "Button state not updated" when it's bind()-ed to the command (reactive, not imperative).
  • "Listener never removed" when added via this.listenTo() (auto-cleaned in destroy()).
  • "Plugin not registered" when it's pulled in transitively via another plugin's static get requires() rather than listed directly in plugins.ts — check the dependency chain before flagging.
  • "Import should be from @ckeditor/ckeditor5-*" — Trilium deliberately imports from the ckeditor5 aggregate (with file extensions); the deep @ckeditor/* path is the lint failure, not the fix.

When unsure, phrase it as a question ("Is <mark> intended to round-trip through getData()? I don't see a dataDowncast.") rather than a false assertion.

Reference map

FileUse it for
references/defect-patterns.mdThe bug catalog — CKEditor-general groups (conversion, schema, commands, UI, lifecycle, localization, undo, tests) plus a Trilium integration group. For each: the symptom, how to spot it in a diff, why it's wrong, and the fix. The core of a correctness review.

Provenance & source references

The CKEditor-general defect patterns are distilled from the companion skills and the CKEditor 5 library at 48 or later; docs/… / packages/… paths in those patterns point into the external CKEditor 5 repository (github.com/ckeditor/ckeditor5), not the Trilium code under review. The Trilium-specific paths (packages/ckeditor5/src/plugins/<name>/, packages/ckeditor5/src/{plugins,index}.ts, apps/client/src/widgets/type_widgets/text/toolbar.ts) point into the Trilium monorepo. To refresh, re-check those paths against the current Trilium tree and bump the CKEditor version if the ckeditor5 pin changes.

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

Files

SKILL.md and 1 other file (references) in .claude/skills/ckeditor5-reviewing of TriliumNext/Trilium.

  • SKILL.md
  • references/defect-patterns.md

Open the folder on GitHubat commit 4d9cb6d

Compare with similar skills

Ckeditor5 Reviewing 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.

Ckeditor5 Reviewing compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Ckeditor5 Reviewing this skillTriliumNext/Trilium38k—~2.5kAutomated safety check: PassAGPL-3.0
Typescript Expertcin12211/orca-q22412 repos~3.7kAutomated safety check: PassMIT
Bazel Build Optimizationwshobson/agents40k9 repos~502Automated safety check: PassMIT
Turborepo Cachingwshobson/agents40k9 repos~2kAutomated safety check: NotesMIT
Openiap Workflowshyodotdev/openiap155—~766Automated safety check: PassMIT
Code Review ChecklistshareAI-lab/learn-claude-code78k4 repos~1.1kAutomated safety check: PassMIT

Similar skills

  • Typescript Expert

    cin12211/orca-q

    TypeScript and JavaScript expert with deep knowledge of type-level programming, performance optimization, monorepo management, migration strategies, and modern tooling.

    224 GitHub starsUsed in 12 repos~3.7k tokens
    DevelopmentAuto-check passed
  • Production patterns for Bazel in large monorepos: workspace layout, targets and labels, remote caching and execution, custom rules and build-time tuning.

    40k GitHub starsUsed in 9 repos~502 tokens
    DevelopmentAuto-check passed
  • Turborepo Caching

    wshobson/agents

    Configures Turborepo pipelines and local or remote caching for monorepo builds, including Vercel remote cache, a self-hosted cache and cache-miss debugging.

    40k GitHub starsUsed in 9 repos~2k tokens
    DevelopmentAuto-check: notes
  • Openiap Workflows

    hyodotdev/openiap

    A skill your agent uses for OpenIAP monorepo work that should follow the repository's slash-command workflows when the user asks in natural language instead of typing a slash command, including…

    155 GitHub stars~766 tokensUpdated yesterday
    Agent WorkflowsAuto-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
  • Nx Import

    nrwl/nx

    Import, merge, or combine repositories into an Nx workspace using nx import.

    29k GitHub starsUsed in 6 repos~3.5k tokens
    DevelopmentAuto-check passed

More from TriliumNext/Trilium

All 24 skills in this repo
  • Cutting A Release

    TriliumNext/Trilium

    A skill your agent uses when cutting, preparing, or debugging a Trilium release — bumping the monorepo version, tagging, or diagnosing a failed "Release" workflow run.

    38k GitHub stars~3.2k tokensUpdated today
    Auto-check passed
  • Developing Electron Desktop

    TriliumNext/Trilium

    A skill your agent uses when working on the Trilium Electron desktop app (apps/desktop) — adding or changing an electronApi method / IPC channel, touching preload.ts, main.ts, services/window.ts or…

    38k GitHub stars~5.7k tokensUpdated today
    Auto-check passed
  • Evolving The Data Model

    TriliumNext/Trilium

    A skill your agent uses when adding a DB migration or a new column/field to a Becca entity in Trilium ("add a migration", "new column on notes/attributes", "ALTER TABLE", "add a field to…

    38k GitHub stars~2.1k tokensUpdated today
    Auto-check passed
  • Adding Internal API Route

    TriliumNext/Trilium

    A skill your agent uses when adding, moving, or wiring an internal REST endpoint in Trilium (a new /api/ route) — choosing between a core-shared handler (packages/trilium-core/src/routes/index.ts…

    38k GitHub stars~3.3k tokensUpdated today
    Auto-check passed
  • Adding LLM MCP Tools

    TriliumNext/Trilium

    A skill your agent uses when adding, changing, or reviewing an LLM/MCP tool in Trilium (the defineTools definitions under packages/trilium-core/src/services/llm/tools/ —…

    38k GitHub stars~2.5k tokensUpdated today
    Auto-check passed
  • Ckeditor5 Plugin Development

    TriliumNext/Trilium

    Write, extend, and review CKEditor 5 plugins in the Trilium (TriliumNext Notes) monorepo — the rich-text-note editor under packages/ckeditor5, whose plugins live in src/plugins/.

    38k GitHub stars~4.9k tokensUpdated today
    Auto-check passed

Categories

Questions about Ckeditor5 Reviewing

What does Ckeditor5 Reviewing do?

Review or audit CKEditor 5 plugin code in the Trilium (TriliumNext Notes) monorepo, or a PR/diff touching packages/ckeditor5 (including its in-tree plugins under src/plugins/). Ckeditor5 Reviewing is an agent skill from TriliumNext/Trilium. Review or audit CKEditor 5 plugin code in the Trilium (TriliumNext Notes) monorepo, or a PR/diff touching packages/ckeditor5 (including its in-tree plugins under src/plugins/).

When should I use Ckeditor5 Reviewing?

Ckeditor5 Reviewing fits situations like: checking a Trilium CKEditor 5 plugin for correctness and idiom: schema / conversion / command / UI / widget code; CKEditor-specific defects (asymmetric upcast/downcast; unconsumed upcast elements; missing inline-widget position mapping.

How do I install Ckeditor5 Reviewing in Claude Code?

Run `npx skills add TriliumNext/Trilium --skill ckeditor5-reviewing -a claude-code`. Or copy the skill folder (.claude/skills/ckeditor5-reviewing in TriliumNext/Trilium) into .claude/skills/ckeditor5-reviewing in your project. Claude Code loads it when a task matches its description.

How do I install Ckeditor5 Reviewing in Codex?

Run `npx skills add TriliumNext/Trilium --skill ckeditor5-reviewing -a codex`. Or copy the skill folder (.claude/skills/ckeditor5-reviewing in TriliumNext/Trilium) into .agents/skills/ckeditor5-reviewing in your project. Codex loads it when a task matches its description.

Can I use Ckeditor5 Reviewing 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 TriliumNext/Trilium --skill ckeditor5-reviewing -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/ckeditor5-reviewing, .gemini/skills/ckeditor5-reviewing, .github/skills/ckeditor5-reviewing and .opencode/skills/ckeditor5-reviewing in your project.

What does Ckeditor5 Reviewing need to run?

Going by SKILL.md and its folder, Ckeditor5 Reviewing needs the command-line tools its instructions call (pnpm).

Does Ckeditor5 Reviewing access the network?

SKILL.md names 2 domains. As links in the text: github.com and ckeditor.com. This is read from the text; nothing was executed.

Is Ckeditor5 Reviewing 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 Ckeditor5 Reviewing use?

Ckeditor5 Reviewing is published under the AGPL-3.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Ckeditor5 Reviewing use?

About 2.5k tokens (SKILL.md is roughly 9.8k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 5k tokens, read only when the agent opens those files.

What are the alternatives to Ckeditor5 Reviewing?

Skills that share tags, products or a category with Ckeditor5 Reviewing: Typescript Expert (cin12211/orca-q, 224 stars), Bazel Build Optimization (wshobson/agents, 40k stars), Turborepo Caching (wshobson/agents, 40k stars) and Openiap Workflows (hyodotdev/openiap, 155 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Ckeditor5 Reviewing?

TriliumNext (a GitHub organization) maintains it in TriliumNext/Trilium, which has 38,274 GitHub stars. The repository holds 23 skills in this directory. The repository was last updated on October 11, 2026.

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