Agent skill

Clean Jsdoc Theme

by ankitskvmdam in ankitskvmdam/clean-jsdoc-theme

Expert guidance for working with clean-jsdoc-theme v5 — the JSDoc/TypeDoc documentation theme.

MITAuto-check passedDevelopment

Install Clean Jsdoc Theme

skills CLI
$ npx skills add ankitskvmdam/clean-jsdoc-theme --skill clean-jsdoc-theme -a claude-code

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

GitHub CLI
$ gh skill install ankitskvmdam/clean-jsdoc-theme clean-jsdoc-theme --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/ankitskvmdam/clean-jsdoc-theme.git skills-src && mkdir -p .claude/skills && cp -r skills-src/SKILLS/clean-jsdoc-theme .claude/skills/clean-jsdoc-theme && 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
clean-jsdoc-theme
GitHub stars
179
Token cost
~3.4k tokens
SKILL.md length
1,281 words
Files
8
Skills in repo
3
Repo updated
First seen
Licence
MIT

At a glance

Expert guidance for working with clean-jsdoc-theme v5 — the JSDoc/TypeDoc documentation theme.

  • Works in 7 steps: What it actually is (mental model) → Setup → What becomes a page → …
  • Setting up the theme
  • SKILL.md covers 1. What it actually is (mental…, 2. Setup, 3. What becomes a page and 4. Quick reference, plus 3 more sections
  • Calls npm, npx and curl

What it does

Clean Jsdoc Theme is an agent skill from ankitskvmdam/clean-jsdoc-theme. Expert guidance for working with clean-jsdoc-theme v5 — the JSDoc/TypeDoc documentation theme. Use when setting up the theme, writing jsdoc.json or typedoc.json options, authoring docs/guides/READMEs (callouts, steps, tabs, embeds, custom @category/@order/@iframe tags), referencing images (local images, JSDoc staticFiles, sitemap), structuring the sidebar, cross-linking with {@link}/@see, tuning theming/colors/fonts, localizing into multiple languages (the clean-jsdoc CLI / aadesh / bhasha), debugging a build, or…

Its SKILL.md is about 3.4k tokens, which your agent loads only when the skill is triggered. The skill folder holds 8 other files (for example `reference/architecture.md`, `reference/authoring.md` and `reference/configuration.md`).

It sits in Development, covering Technical documentation. The repository describes itself as: A clean, responsive, and customizable theme for JSDoc. https://ankdev.me/clean-jsdoc-theme/. The licence is MIT.

When your agent uses it

  • Setting up the theme
  • Writing jsdoc.json
  • Typedoc.json options
  • Authoring docs/guides/READMEs (callouts

Example prompts

  • “/clean-jsdoc-theme”

Requirements

  • Node.js

Workflow steps

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

  1. What it actually is (mental model)
  2. Setup
  3. What becomes a page
  4. Quick reference
  5. Migrating from v4
  6. Staying current
  7. Proactively improve the docs

What it can do on your machine

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

    • npm
    • npx
    • curl

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

  • Network

    No URLs in SKILL.md. Its commands use npm, npx and curl, which can reach the network depending on how they are called.

    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

Clean Jsdoc Theme loads about 3.4k tokens when it runs. Until then it costs about 150 tokens; SKILL.md has 1,281 words of instructions outside code blocks.

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

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 ankitskvmdam/clean-jsdoc-theme at commit 6489b20, republished under its MIT licence (© ankitskvmdam). 1,281 words, ~3,368 tokens.

Download SKILL.mdSave it as .claude/skills/clean-jsdoc-theme/SKILL.md (or your agent's skills folder). This skill also uses 7 other files; get the full folder from GitHub.
name
clean-jsdoc-theme
description
Expert guidance for working with clean-jsdoc-theme v5 — the JSDoc/TypeDoc documentation theme. Use when setting up the theme, writing jsdoc.json or typedoc.json options, authoring docs/guides/READMEs (callouts, steps, tabs, embeds, custom @category/@order/@iframe tags), referencing images (local images, JSDoc staticFiles, sitemap), structuring the sidebar, cross-linking with {@link}/@see, tuning theming/colors/fonts, localizing into multiple languages (the clean-jsdoc CLI / aadesh / bhasha), debugging a build, or contributing to the monorepo packages (utils, setu, rang, dwar).

clean-jsdoc-theme — working skill

<!-- skill-revision: 2026-06-26 -->

This skill makes you an expert at using and extending clean-jsdoc-theme v5. Everything here is verified against the source. When a user is documenting a JS/TS project with this theme, configuring it, authoring prose, or hacking on the packages, follow this over your prior assumptions about "a JSDoc theme."

This file is the operating guide: the mental model, setup, and behaviour. The detailed reference lives in sibling files under reference/ — read the one that matches the task (don't load them all):

Read this when…File
Writing/validating jsdoc.json / typedoc.json optionsreference/configuration.md
Authoring prose: callouts, steps, tabs, embeds, custom tagsreference/authoring.md
Referencing images / static assets, staticFiles, sitemapreference/images.md
The docs directory, frontmatter, sidebar order, cross-linksreference/content-and-sidebar.md
Multi-language / i18n: the clean-jsdoc CLI, per-locale prose + fontsreference/localization.md
Contributing to the packages (utils/setu/rang/dwar)reference/architecture.md
A build misbehaves / something doesn't renderreference/troubleshooting.md

Skill revision: 2026-06-26. Versioned with the theme — see §6 Staying current for how (and how often) to check for a newer skill or theme release.

Project: https://github.com/ankitskvmdam/clean-jsdoc-theme · npm: clean-jsdoc-theme (JSDoc) and @clean-jsdoc-theme/typedoc (TypeDoc).


1. What it actually is (mental model)

clean-jsdoc-theme is not a CSS skin on JSDoc's default template. It is a complete documentation pipeline. JSDoc or TypeDoc is used only to collect doc comments; from there the theme builds its own structured model and renders a modern static site.

The pipeline is one-way and shared by both entry points:

JSDoc doclets  ─┐
                ├─▶  setu.generateSite()  ─▶  SiteManifest  ─▶  dwar.render()  ─▶  static site
TypeDoc reflns ─┘        (no I/O)                                 (pure, uses rang components)

render() emits, per build: ‹slug›/index.html per page (SSR + lazy-hydrated Preact islands, only the islands a page uses); ‹slug›/index.md per content page (a companion Markdown authored for LLMs — the theme's defining feature); _assets/styles.‹buildId›.css; _assets/search-index.‹buildId›.json (the Ctrl K fuzzy index); and _islands/‹name›.js.

Guarantees worth knowing: setu does no disk I/O (the bridge reads files), dwar.render() is pure, and one page that fails to compile is skipped and reported, never aborts the build.


2. Setup

Two entry points. Pick the one matching the toolchain. The option names and values are identical between them — only where you put them differs: JSDoc uses opts, TypeDoc uses a cleanJsdocTheme block. (Full option list: reference/configuration.md.)

JSDoc
sh
npm install --save-dev jsdoc clean-jsdoc-theme
json5
// jsdoc.json
{
  source: { include: ["./src", "./README.md"] },
  plugins: ["plugins/markdown"],          // REQUIRED — see note below
  opts: {
    template: "node_modules/clean-jsdoc-theme/dist",
    destination: "dist",
    recurse: true,
    readme: "./README.md",
    siteName: "My Library",               // ← theme options live under opts
  },
}

Build: npx jsdoc -c jsdoc.json → dist/. Serve with npx serve dist (the island chunks and the search index are fetched, so opening index.html from disk leaves search and the islands dead).

Required: the plugins/markdown plugin. JSDoc renders comment Markdown → HTML before the theme sees it, and the theme consumes that HTML. Without it, descriptions arrive as raw, unformatted text.

TypeDoc
sh
npm install --save-dev typedoc @clean-jsdoc-theme/typedoc
json5
// typedoc.json
{
  entryPoints: ["src/index.ts"],
  tsconfig: "tsconfig.json",
  readme: "README.md",
  plugin: ["@clean-jsdoc-theme/typedoc"],            // loads it
  outputs: [{ name: "clean-jsdoc-theme", path: "dist" }],  // turns it on
  cleanJsdocTheme: { siteName: "My Library" },       // ← theme options live here
}

It registers a custom output (not a CSS theme extending DefaultTheme). Build with npx typedoc. Runnable references in the repo: examples/basic (JSDoc), examples/typedoc-basic (TypeDoc), docs-site/ (a prose-first dogfood site).


3. What becomes a page

SourceResult
Container symbol — class, interface, mixin, module, namespaceOne page; members bucketed into sections. class/interface fold in inherited members via @augments/@extends.
typedefIts own page (first-class — @type, @property, function-signature @param/@returns).
Every global-scope symbol without its own pageOne aggregated "Globals" page.
events, enums, constantsMember sections within their parent, not standalone pages.
README / tutorials / opts.docs MarkdownProse pages (see reference/content-and-sidebar.md).
Each documented source fileA Monaco source-viewer page + a "Source Files" index; each member gets a Source: file:line link (default on).

A class page leads with the class description (classdesc), then a Constructor section (on every class unless @hideconstructor): the call signature (new ClassName(id, [opts]) — a parameter-less class still shows new ClassName(), and an undocumented constructor recovers its param names so new ClassName(options) still appears), the separately-documented constructor description (when the class and its constructor have separate doc comments), and the parameter table. Every member/constructor heading now also shows the full TypeScript signature (addChild(child: Component): void), highlighted inline (both JSDoc and TypeDoc).

TypeDoc projects render a slightly different document model (v5.0.x parity with default TypeDoc — automatic, no config): enums, top-level functions, and variables each become a standalone page (not member sections), type aliases are labelled "Type Aliases", class sections use TypeDoc labels (Constructors / Properties / Accessors / Methods), module/namespace pages are a kind-grouped index of links to their exports, generics get a Type Parameters section, and overloaded functions stack one signature per overload. Standalone pages lead with a full declaration block. JSDoc's model (above) is unchanged.


4. Quick reference

jsonc
// JSDoc: opts.* | TypeDoc: cleanJsdocTheme.*  (identical values)
{
  siteName, basePath, siteUrl, llmsTxt, favicon,
  readme, docs, docGroups, defaultDocGroup, tutorials,
  sectionOrder, clubSidebarItems, collapsibleSidebarSections, menu,
  fonts, colors, darkColors, scrollbar,
  customCss, customJs, customCssFile, customJsFile, hashCustomAssets,
  footer, meta, playground,
  copyPage, aiPrompt,
  locales, defaultLocale,        // multi-language — see reference/localization.md
  strict, progress
}
// JSDoc-only, under templates.default.*:  outputSourceFiles, sourceLinkToComment, staticFiles

Authoring (details in reference/authoring.md):

  • Callout: > [!TIP] / [!NOTE] / [!WARNING] / [!ERROR] (+ aliases).
  • Steps: <steps><step label="…">…blank-line-wrapped body…</step></steps>.
  • Tabs: <tabs group="x"><tab label="…" value="…">…</tab></tabs>.
  • Embed: ```iframe fence or @iframe <https-url> key=value.
  • Sidebar: @category Core/Parsing order=1, @order N, frontmatter group/order.
  • Cross-link: {@link Symbol}, {@linkcode Symbol}, @see {@link Other}.
  • Images: ![alt](./img/x.svg) from docs/tutorials/README/doc comments → copied to _assets/ (SVGs inlined, theme-aware); JSDoc staticFiles bare names resolve too (reference/images.md).

The two most common setup mistakes: missing plugins/markdown (JSDoc) and missing tags.allowUnknownTags: true (needed for @category/@order/@iframe). More in reference/troubleshooting.md.


Show full SKILL.md (521 more words)Show less

5. Migrating from v4

If the user is on v4 (options nested under opts.theme_opts.*), that's a separate, focused job — use the dedicated migrate-v4-to-v5 skill (SKILLS/migrate-v4-to-v5/SKILL.md in this repo). The headline: v5 reads options directly from opts.* (no theme_opts block), and most options were renamed or removed. The canonical map is the repo's MIGRATION.md + migration-map.json.


6. Staying current

The skill and the theme both evolve. Keep the user current — but with restraint: check at most once per session, only when relevant (you're starting work with this skill, or the user asks about upgrading), and surface a result only when there's something actionable. Never poll on every turn, never block the task, never nag. You have no background timer — "periodically" here means opportunistically, once per session, not a loop.

Is this skill out of date? This file carries a skill-revision: <date> marker. When relevant, fetch the published copy and compare:

sh
curl -fsSL https://raw.githubusercontent.com/ankitskvmdam/clean-jsdoc-theme/master/SKILLS/clean-jsdoc-theme/SKILL.md | grep -m1 skill-revision

If the published revision is newer, tell the user and offer to update their copy (the whole clean-jsdoc-theme/ skill folder — it has reference/ files, not just SKILL.md). Don't overwrite without asking.

Is the theme out of date? When setting up or upgrading, compare installed vs latest and mention it if behind:

sh
npm ls clean-jsdoc-theme @clean-jsdoc-theme/typedoc 2>/dev/null   # installed
npm view clean-jsdoc-theme version                                # latest

If behind, note the upgrade (npm i -D clean-jsdoc-theme@latest) and point at BREAKING_CHANGES.md / MIGRATION.md for major bumps. Mention once; let the user decide.


7. Proactively improve the docs

You know features the user may not — surface them. When helping author or review docs, watch for places where a theme-specific construct reads better than plain Markdown and suggest it (briefly, with the exact syntax from reference/authoring.md; don't rewrite everything unprompted). Lead with the highest-impact one, keep it to a sentence or two, and let the user opt in.

  • A note/warning as plain text or bold ("Note: …", "⚠️ …") → a callout (> [!NOTE] / [!WARNING] / [!TIP]).
  • A numbered install/setup walkthrough → a <steps> stepper.
  • Per-tool / per-platform variants (npm vs pnpm, JSDoc vs TypeDoc) as separate code blocks → <tabs> with a shared group to sync them.
  • A linked CodePen / StackBlitz / demo → an embed (```iframe / @iframe).
  • An @example readers should run/edit → a playground (opts.playground + @playground codepen jsfiddle …): an "Open Code in" dropdown (CodePen/JSFiddle/ CodeSandbox); also filename= / highlight= on any code block.
  • A long, flat sidebar, or symbols in the wrong section → @category / @order on the symbols and group / order frontmatter on guides, plus sectionOrder / clubSidebarItems to shape the top level.
  • Cross-references written as bare text or code → {@link Symbol} so it becomes a real, resolved anchor.
  • A diagram/screenshot linked by absolute URL, or an architecture description with no visual → a local image (relative or root-relative src, even from a doc comment): it's copied to _assets/, content-hashed, and — for SVGs — inlined so light/dark follows the theme toggle (reference/images.md).
  • Undocumented params/returns → the @param / @returns tags so the generated tables (and the constructor signature) fill in.
  • A project that cares about AI consumption → remind them every page already ships a companion .md + the copyPage actions, and that aiPrompt primes the open-in-LLM handoff.
  • A project targeting multiple languages/regions (translated READMEs, non-English audience) → mention the localization workflow: declare opts.locales, then the clean-jsdoc CLI builds one site per locale with a language switcher, per-locale prose + fonts (reference/localization.md).

© ankitskvmdam, MIT. 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 7 other files in SKILLS/clean-jsdoc-theme of ankitskvmdam/clean-jsdoc-theme.

  • SKILL.md
  • reference/architecture.md
  • reference/authoring.md
  • reference/configuration.md
  • reference/content-and-sidebar.md
  • reference/images.md
  • reference/localization.md
  • reference/troubleshooting.md

Open the folder on GitHubat commit 6489b20

Compare with similar skills

Clean Jsdoc Theme 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.

Clean Jsdoc Theme compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Clean Jsdoc Theme this skillankitskvmdam/clean-jsdoc-theme179—~3.4kAutomated safety check: PassMIT
Diagram Designcathrynlavery/diagram-design45k1 repos~7.5kAutomated safety check: PassMIT
Simple Englishmoeru-ai/airi50k2 repos~4.6kAutomated safety check: PassMIT
Get API Docs with chubandrewyng/context-hub14k2 repos~775Automated safety check: PassMIT
Doc SyncJetBrains/ideavim10k2 repos~2.6kAutomated safety check: PassMIT
Mailspring App ScreenshotsFoundry376/Mailspring18k—~1.5kAutomated safety check: PassGPL-3.0

Similar skills

  • Diagram Design

    cathrynlavery/diagram-design

    Creates branded diagrams, from architecture, flowchart and sequence to charts and maps, as self-contained HTML with inline SVG, with import from draw.io, Mermaid and Excalidraw.

    45k GitHub starsUsed in 1 repo~7.5k tokens
    DevelopmentAuto-check passed
  • Simple English

    moeru-ai/airi

    Write or rewrite technical text with the rules of ASD-STE100 Simplified Technical English so it is clear, unambiguous, and free of AI slop.

    50k GitHub starsUsed in 2 repos~4.6k tokens
    DevelopmentAuto-check passed
  • Get API Docs with chub

    andrewyng/context-hub

    Fetches current documentation for third-party APIs and SDKs with the chub CLI before the agent writes code against them, instead of relying on remembered API shapes.

    14k GitHub starsUsed in 2 repos~775 tokens
    DevelopmentAuto-check passed
  • Doc Sync

    JetBrains/ideavim

    Official

    Keeps IdeaVim documentation in sync with code changes. An agent skill from JetBrains/ideavim.

    10k GitHub starsUsed in 2 repos~2.6k tokens
    DevelopmentAuto-check passed
  • Mailspring App Screenshots

    Foundry376/Mailspring

    Captures screenshots of the running Mailspring dev app for docs, PRs or visual checks by launching it with a debugging port, driving the UI and clipping to an element.

    18k GitHub stars~1.5k tokensUpdated yesterday
    DevelopmentAuto-check passed
  • Draw.io Diagram Studio

    Agents365-ai/drawio-skill

    Creates and edits editable draw.io diagrams from descriptions, code, infrastructure files, SQL and API schemas, with sync, review, test and export tools.

    10k GitHub stars~2.4k tokensUpdated 6 days ago
    DevelopmentAuto-check: notes

More from ankitskvmdam/clean-jsdoc-theme

  • Migrate V4 To V5

    ankitskvmdam/clean-jsdoc-theme

    Step-by-step procedure to migrate a project from clean-jsdoc-theme v4 to v5.

    179 GitHub stars~3.1k tokensUpdated 1 mo ago
    Auto-check passed
  • Typedoc

    ankitskvmdam/clean-jsdoc-theme

    Expert guidance for the @clean-jsdoc-theme/typedoc plugin — using clean-jsdoc-theme v5 with TypeDoc / TypeScript.

    179 GitHub stars~3k tokensUpdated 1 mo ago
    Auto-check passed

Categories

Questions about Clean Jsdoc Theme

What does Clean Jsdoc Theme do?

Expert guidance for working with clean-jsdoc-theme v5 — the JSDoc/TypeDoc documentation theme. Clean Jsdoc Theme is an agent skill from ankitskvmdam/clean-jsdoc-theme. Expert guidance for working with clean-jsdoc-theme v5 — the JSDoc/TypeDoc documentation theme.

When should I use Clean Jsdoc Theme?

Clean Jsdoc Theme fits situations like: setting up the theme; writing jsdoc.json; typedoc.json options; authoring docs/guides/READMEs (callouts.

How do I install Clean Jsdoc Theme in Claude Code?

Run `npx skills add ankitskvmdam/clean-jsdoc-theme --skill clean-jsdoc-theme -a claude-code`. Or copy the skill folder (SKILLS/clean-jsdoc-theme in ankitskvmdam/clean-jsdoc-theme) into .claude/skills/clean-jsdoc-theme in your project. Claude Code loads it when a task matches its description.

How do I install Clean Jsdoc Theme in Codex?

Run `npx skills add ankitskvmdam/clean-jsdoc-theme --skill clean-jsdoc-theme -a codex`. Or copy the skill folder (SKILLS/clean-jsdoc-theme in ankitskvmdam/clean-jsdoc-theme) into .agents/skills/clean-jsdoc-theme in your project. Codex loads it when a task matches its description.

Can I use Clean Jsdoc Theme 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 ankitskvmdam/clean-jsdoc-theme --skill clean-jsdoc-theme -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/clean-jsdoc-theme, .gemini/skills/clean-jsdoc-theme, .github/skills/clean-jsdoc-theme and .opencode/skills/clean-jsdoc-theme in your project.

What does Clean Jsdoc Theme need to run?

Going by SKILL.md and its folder, Clean Jsdoc Theme needs the command-line tools its instructions call (npm, npx and curl). Our summary lists: Node.js.

Does Clean Jsdoc Theme access the network?

SKILL.md contains no URLs. Its commands use npm, npx and curl, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is Clean Jsdoc Theme 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 Clean Jsdoc Theme use?

Clean Jsdoc Theme 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 Clean Jsdoc Theme use?

About 3.4k tokens (SKILL.md is roughly 13k 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 Clean Jsdoc Theme?

Skills that share tags, products or a category with Clean Jsdoc Theme: Diagram Design (cathrynlavery/diagram-design, 45k stars), Simple English (moeru-ai/airi, 50k stars), Get API Docs with chub (andrewyng/context-hub, 14k stars) and Doc Sync (JetBrains/ideavim, 10k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Clean Jsdoc Theme?

ankitskvmdam (a GitHub user) maintains it in ankitskvmdam/clean-jsdoc-theme, which has 179 GitHub stars. The repository holds 3 skills in this directory. The repository was last updated on September 7, 2026.

Source: ankitskvmdam/clean-jsdoc-theme on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.