Agent skill

Tabler Docs Writer

by tabler in tabler/tabler

Writes and updates Tabler documentation pages in simple English following the repository's page schema, and flags new components that have no docs yet.

MITAuto-check passedDevelopment

Install Tabler Docs Writer

skills CLI
$ npx skills add tabler/tabler --skill write-docs -a claude-code

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

GitHub CLI
$ gh skill install tabler/tabler write-docs --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/tabler/tabler.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/write-docs .claude/skills/write-docs && 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
write-docs
GitHub stars
42k
Token cost
~2.5k tokens
SKILL.md length
1,266 words
Files
1
Skills in repo
21
Repo updated
First seen
Licence
MIT

At a glance

Writes and updates Tabler documentation pages in simple English following the repository's page schema, and flags new components that have no docs yet.

  • Works in 10 steps: Scope and behavior → Required language style (simple English) → Frontmatter rules → …
  • Documenting a newly added Tabler component, plugin or feature
  • SKILL.md covers 1. Scope and behavior, 2. Required language style…, 3. Frontmatter rules and 4. Documentation schema to…, plus 8 more sections
  • Calls pnpm

What it does

The skill covers MDX pages under docs/content, from components and utilities to forms, plugins, getting started and icons. Leaf pages are single files and parents with sub-pages use an index file. The agent may edit existing pages to document new functionality or create new ones, always in plain prose with short sentences, common words, direct verbs such as Use, Add, Set and Show, and no marketing filler.

Frontmatter is static YAML and by default holds only title, summary and description. Extended keys such as order, related or added-in are added only when you ask or nearby pages use them, because the collection schema is strict and unknown keys fail the build. Pages normally run Overview, Installation, Variants or Usage, Examples, Accessibility, SCSS variables and Migration notes.

How it acts depends on how it was triggered. When you ask for docs, it writes straight into the files. When it fires on its own because a new component or plugin has no matching page, it only says what is missing and where the page would live, then waits for your go-ahead before editing.

When your agent uses it

  • Documenting a newly added Tabler component, plugin or feature
  • Updating a docs page after a component gains new props or variants
  • Standardizing the section structure of pages in one docs category

Example prompts

  • “Write docs for the new timeline component under the components section.”
  • “Update the badge page to cover the new light variant and its accessibility notes.”
  • “Check which shared UI components have no page under docs/content yet.”

Requirements

  • A Tabler checkout with the docs content folder

Workflow steps

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

  1. Scope and behavior
  2. Required language style (simple English)
  3. Frontmatter rules
  4. Documentation schema to follow
  5. Example and snippet pattern
  6. Analyzing the component or plugin source
  7. Registering new pages in the docs menu
  8. Workflow for each request
  9. Rules while updating existing docs
  10. Quality checklist before finishing

What it can do on your machine

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

    No URLs in SKILL.md. Its commands use pnpm, 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

Tabler Docs Writer loads about 2.5k tokens when it runs. Until then it costs about 141 tokens; SKILL.md has 1,266 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~141
When it runs · the whole SKILL.md, loaded when a task matches
~2.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 tabler/tabler at commit b168be1, republished under its MIT licence (© tabler). 1,266 words, ~2,483 tokens.

Download SKILL.mdSave it as .claude/skills/write-docs/SKILL.md (or your agent's skills folder).
name
write-docs
description
Write, update, or suggest Tabler documentation pages in simple English using the current docs schema. Use whenever the user asks to create docs, edit docs, add new feature docs to an existing page, or standardize docs structure across any docs category. Also consult this skill proactively — without being asked — whenever a new visual UI component (shared/ui/*.astro), plugin, or other user-facing feature has just been added or changed and has no matching, up-to-date page under docs/content/**, since undocumented components are easy to forget about.

Write Tabler Docs

Follow the current Tabler documentation schema. How far to go depends on how the skill was triggered — see section 1.

1. Scope and behavior

  • Works for any docs page type under docs/content/** (components, utilities, forms, layout, plugins, base, getting started, emails, illustrations, icons, index pages). Pages are MDX: leaf pages foo.mdx, parents with sub-pages foo/index.mdx.
  • Edit existing pages when the user asks to document new functionality in an existing component/page.
  • Create new pages when needed.
  • Use simple English in all prose.
Direct request vs. proactive suggestion
  • If the user explicitly asked for docs (e.g. "document this", "write docs for X", "update the badge page"), write directly in the files — do not stop at draft mode.
  • If this skill triggered on its own because something was built or changed without matching docs, don't start editing files unprompted. Point out what's missing in one or two sentences (which component/plugin, which page it would live under) and ask whether to write it. Proceed to write directly, per the rule above, only once the user says go.

2. Required language style (simple English)

  • Use short sentences and common words.
  • Keep one main idea per sentence when possible.
  • Prefer direct verbs: Use, Add, Set, Show.
  • Avoid buzzwords and marketing filler.
  • Keep paragraphs short and easy to scan.

3. Frontmatter rules

Default frontmatter (required unless user asks otherwise):

yaml
---
title: ...
summary: ...
description: ...
---

Rules:

  • Keep frontmatter static YAML only.
  • No layout: key — docs/pages/[...slug].astro renders every page.
  • By default, include only title, summary and description.
  • Add extended keys only when the user explicitly asks for them or nearby pages in the same category use them. The full set is seoTitle, seoDescription, icon, order, related, docs-libs, css-plugins, hide-pagination, added-in — the collection schema in docs/content.config.ts is strict, so anything else fails the build.

4. Documentation schema to follow

Use this section order as the default structure:

  1. ## Overview
  2. ## Installation (optional)
  3. ## Variants or ## Usage (choose one based on page type)
  4. ## Examples (optional)
  5. ## Accessibility
  6. ## SCSS variables (optional)
  7. ## Migration notes (optional)

Guidance by page type:

  • Component-like pages: prefer Variants.
  • Utility or workflow pages: prefer Usage.
  • Library/package pages (for example icons, emails): keep Installation + Usage.
  • Intro/index pages: may use concise overview sections, but keep hierarchy clear and consistent.

5. Example and snippet pattern

For visual examples, use the shared Example component (import after the frontmatter):

mdx
import Example from '@components/Example.astro';

<Example>
<button class="btn btn-primary">Primary button</button>
</Example>
  • Add 1-2 short sentences before each preview block to explain what the preview shows.
  • Use props when useful: hideCode, centered, vertical, raw, column, bg, height, codeOnly.
  • For a cleaner displayed snippet than the rendered preview, pass code={...}.
  • For icons and other shared components inside examples, import them from @ui/ (for example <Icon name="plus" />).
  • Raw HTML in the Example slot is reserialized by MDX — keep markup lines attached to tags to avoid stray <p> wrapping.

6. Analyzing the component or plugin source

Prose and example markup are only as accurate as their source. Before writing examples, ground them in the actual implementation rather than in guesses or in what a similar-looking page happens to show — nearby .mdx pages are a good style reference but can drift out of sync with the code.

  • UI components live at shared/ui/<ComponentName>.astro. Read its interface Props block: each field (and its JSDoc comment, when present) is the authoritative list of supported options, defaults, and edge cases — for example shared/ui/Badge.astro documents scale, light, icon, and personId this way.
  • Plugins and utilities are often CSS-class-driven rather than a single Astro component. Check core/scss/**/_<name>.scss (or core/scss/tabler-<name>.scss) for the class variants that actually exist, and shared/data/<name>.json when the plugin is data-driven (e.g. flags, payments, social-icons).
  • Real usage in preview/pages/** renders the finished HTML and often exercises more combinations in practice than the docs page does — a useful cross-check for realistic examples.
  • Turn what you find into <Example> blocks that reflect real, valid prop/class combinations rather than invented markup.

7. Registering new pages in the docs menu

docs/content/** is not scanned automatically to build navigation — the sidebar tree is frozen in shared/data/docs.json (see the comment in docs/components/DocsMenu.astro). A new leaf page with no entry there exists but is unreachable from the docs site.

  • Only touch docs.json for genuinely new pages. Editing an existing page needs no menu change.
  • Find the matching section in the menu array by directory: docs/content/ui/components/* → the "Components" entry under "Tabler UI", docs/content/ui/plugins/* → "Plugins", docs/content/icons/libraries/* → "Libraries" under "Tabler Icons", and so on — the section title/url pairs mirror the docs/content/ui/* and docs/content/icons/* subdirectory names.
  • Add { "title": "<Title Case name>", "url": "/<matching>/<slug>" } to that section's children, in the same alphabetical position its neighbors already follow.
  • No trailing slash on url. The menu compares it against the page url, which never has one, so a trailing slash silently breaks the active-item highlight for that page.
  • The title and url must match the new page's frontmatter title and its file path exactly, or the sidebar entry will point at the wrong place.
Show full SKILL.md (460 more words)Show less

7a. Linking a new page from the demo page

Every component with a page in preview/pages/** shows a "Documentation" button in its page header, rendered by DocsLink. A new docs page is easy to forget here, and the demo page then looks undocumented even though the docs exist.

  • After creating docs/content/ui/components/<name>.mdx (or a plugin page), open preview/pages/<name>.astro and add, as a direct child of <DefaultLayout>:
astro
import DocsLink from '@ui/DocsLink.astro'
…
<DocsLink slot="page-header-actions" path="/ui/components/<name>" />
  • path is the docs path without the extension, the same string as the url in docs.json.
  • pnpm run check:docs-links resolves every DocsLink against docs/content/** and fails on a typo, so run it after adding one.
  • When there is no demo page yet, say so — the demo-pages skill covers building one.

8. Workflow for each request

  1. Identify target file(s) in docs/content/** (or determine none exist yet — see section 7).
  2. Read the target page and 2-3 nearby pages in the same category to match tone and conventions.
  3. Read the underlying component/plugin source per section 6 so examples are accurate, not guessed.
  4. Apply the schema from section 4.
  5. Write/update the page directly in file(s).
  6. If the page is new, add its entry to shared/data/docs.json per section 7.
  7. If the page is new, link it from the matching demo page in preview/pages/<name>.astro per section 7a.
  8. Keep only required frontmatter by default.
  9. Ensure prose is in simple English.
  10. Verify heading hierarchy (## then ###) and snippet validity.

8a. Checking a page on the published site

Two hosts serve the docs, and they are not in sync:

HostServes
docs.tabler.iothe last release — can be many commits behind dev
docs-dev.tabler.iothe dev branch

Check a page's live url on docs-dev.tabler.io. Production still serves the pre-content-collection urls, so a page that exists in docs/content/** can return 404 there while being perfectly fine. A 404 on docs.tabler.io alone never justifies renaming a page or rewriting a link — confirm on docs-dev.tabler.io first.

9. Rules while updating existing docs

  • Preserve valid existing content that is still correct.
  • Add new functionality docs as focused new subsection(s), usually under Variants, Usage, or Examples.
  • Remove or rewrite only conflicting or outdated text.
  • Keep naming and terms consistent across the page.

10. Quality checklist before finishing

  • Uses simple English.
  • Examples reflect the real Props/classes found in the source (section 6), not guesses.
  • Frontmatter uses static YAML.
  • Default frontmatter contains only title, summary, description, layout (unless user requested extra keys).
  • Follows schema and heading hierarchy.
  • Examples use the Example component pattern where applicable.
  • Accessibility section exists for interactive UI docs.
  • New pages have a matching entry in shared/data/docs.json (section 7); edits to existing pages don't touch it.
  • New pages are linked from their demo page with DocsLink (section 7a), and pnpm run check:docs-links passes.
  • No mention of changeset reminders unless user asks.

© tabler, 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 .agents/skills/write-docs of tabler/tabler.

Open the folder on GitHubat commit b168be1

Compare with similar skills

Tabler Docs Writer 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.

Tabler Docs Writer compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Tabler Docs Writer this skilltabler/tabler42k—~2.5kAutomated safety check: PassMIT
Technical Writing Standardcursor/plugins10k10 repos~2.4kAutomated safety check: PassNone
ISO 24495-3 Technical Plain LanguageGaZmagik/iso-24495189—~1.6kAutomated safety check: PassMIT
Technical Writingcitypaul/.dotfiles739—~2.5kAutomated safety check: PassMIT
Markdown Document StructurerArabelaTso/Skills-4-SE253—~2.2kAutomated safety check: PassApache-2.0
ISO 24495 Text AuditGaZmagik/iso-244951891 repos~817Automated safety check: PassMIT

Similar skills

  • Official

    Applies four layers of technical-writing rules to docs, RFCs, readmes, PR descriptions and commit messages so a tired engineer follows them on the first read.

    10k GitHub starsUsed in 10 repos~2.4k tokens
    Writing & ContentAuto-check passed
  • Applies plain language rules to software documentation, architecture explanations, code reviews and technical analysis, following the principles of ISO 24495-3:2026.

    189 GitHub stars~1.6k tokensUpdated today
    Writing & ContentAuto-check passed
  • Technical Writing

    citypaul/.dotfiles

    Writing developer-facing prose that can be skimmed first and trusted enough to finish — READMEs, guides, tutorials, reference docs, proposals, PR descriptions, release notes.

    739 GitHub stars~2.5k tokensUpdated 5 days ago
    Writing & ContentAuto-check passed
  • Markdown Document Structurer

    ArabelaTso/Skills-4-SE

    Reorganizes markdown documents into well-structured, consistent format while preserving content and improving readability.

    253 GitHub stars~2.2k tokensUpdated 1 mo ago
    Documents & OfficeAuto-check passed
  • ISO 24495 Text Audit

    GaZmagik/iso-24495

    Audits a Markdown or text file or folder you choose for plain-language problems such as legalese, wordy phrases and long sentences, reporting each finding with file and line.

    189 GitHub starsUsed in 1 repo~817 tokens
    Writing & ContentAuto-check passed
  • JavaScript Concept Page Writer

    leonardomso/33-js-concepts

    Writes or reviews documentation pages for the 33 JavaScript Concepts project, following its structure, a beginner-friendly voice and rules against AI-sounding language.

    67k GitHub stars~14k tokensUpdated 27 days ago
    Writing & ContentAuto-check passed

More from tabler/tabler

All 21 skills in this repo
  • Starts the right Tabler dev server, keeps it from clashing with builds and verifies changes in the browser before a page or component is handed back.

    42k GitHub stars~1.2k tokensUpdated yesterday
    Auto-check passed
  • Rules for adding or fixing client-side scripts in Tabler's Astro components so the copied preview HTML stays readable, self-contained and runs in the right order.

    42k GitHub stars~2.1k tokensUpdated yesterday
    Auto-check passed
  • Sets the file structure, typing and Data API pattern for writing a new Bootstrap-style JavaScript component class in Tabler's vendored port of Bootstrap's JS.

    42k GitHub stars~2.2k tokensUpdated yesterday
    Auto-check passed
  • Writes or updates the classnames front matter that renders the class table at the end of a Tabler component docs page.

    42k GitHub stars~1.4k tokensUpdated yesterday
    Auto-check passed
  • Guidance for changing the Tabler framework's own JavaScript in core/js: the tabler.js and tabler-theme.js bundles, the Bootstrap port and their tests.

    42k GitHub stars~1.4k tokensUpdated yesterday
    Auto-check passed
  • Tabler Core SCSS

    tabler/tabler

    Rules for adding or changing styles in Tabler's core/scss framework: file placement, custom properties, dark mode, RTL, tests and build gates.

    42k GitHub stars~2k tokensUpdated yesterday
    Auto-check passed

Questions about Tabler Docs Writer

What does Tabler Docs Writer do?

Writes and updates Tabler documentation pages in simple English following the repository's page schema, and flags new components that have no docs yet. The skill covers MDX pages under docs/content, from components and utilities to forms, plugins, getting started and icons. Leaf pages are single files and parents with sub-pages use an index file.

When should I use Tabler Docs Writer?

Tabler Docs Writer fits situations like: documenting a newly added Tabler component, plugin or feature; updating a docs page after a component gains new props or variants; standardizing the section structure of pages in one docs category.

How do I install Tabler Docs Writer in Claude Code?

Run `npx skills add tabler/tabler --skill write-docs -a claude-code`. Or copy the skill folder (.agents/skills/write-docs in tabler/tabler) into .claude/skills/write-docs in your project. Claude Code loads it when a task matches its description.

How do I install Tabler Docs Writer in Codex?

Run `npx skills add tabler/tabler --skill write-docs -a codex`. Or copy the skill folder (.agents/skills/write-docs in tabler/tabler) into .agents/skills/write-docs in your project. Codex loads it when a task matches its description.

Can I use Tabler Docs Writer 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 tabler/tabler --skill write-docs -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/write-docs, .gemini/skills/write-docs, .github/skills/write-docs and .opencode/skills/write-docs in your project.

What does Tabler Docs Writer need to run?

Going by SKILL.md and its folder, Tabler Docs Writer needs the command-line tools its instructions call (pnpm). Our summary lists: A Tabler checkout with the docs content folder.

Does Tabler Docs Writer access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Tabler Docs Writer 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 Tabler Docs Writer use?

Tabler Docs Writer 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 Tabler Docs Writer use?

About 2.5k tokens (SKILL.md is roughly 9.9k 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 Tabler Docs Writer?

Skills that share tags, products or a category with Tabler Docs Writer: Technical Writing Standard (cursor/plugins, 10k stars), ISO 24495-3 Technical Plain Language (GaZmagik/iso-24495, 189 stars), Technical Writing (citypaul/.dotfiles, 739 stars) and Markdown Document Structurer (ArabelaTso/Skills-4-SE, 253 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Tabler Docs Writer?

tabler (a GitHub organization) maintains it in tabler/tabler, which has 41,830 GitHub stars. The repository holds 21 skills in this directory. The repository was last updated on October 7, 2026.

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