Technical Writing Standard
cursor/plugins
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.
Writes and updates Tabler documentation pages in simple English following the repository's page schema, and flags new components that have no docs yet.
$ npx skills add tabler/tabler --skill write-docs -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install tabler/tabler write-docs --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ 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-srcUse ~/.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/
Install the "write-docs" agent skill from https://github.com/tabler/tabler/tree/dev/.agents/skills/write-docs into .claude/skills/write-docs/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "write-docs", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/tabler/tabler/tree/dev/.agents/skills/write-docsType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add tabler/tabler --skill write-docs -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install tabler/tabler write-docs --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/tabler/tabler.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.agents/skills/write-docs .agents/skills/write-docs && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "write-docs" agent skill from https://github.com/tabler/tabler/tree/dev/.agents/skills/write-docs into .agents/skills/write-docs/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "write-docs", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add tabler/tabler --skill write-docs -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install tabler/tabler write-docs --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/tabler/tabler.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.agents/skills/write-docs .cursor/skills/write-docs && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "write-docs" agent skill from https://github.com/tabler/tabler/tree/dev/.agents/skills/write-docs into .cursor/skills/write-docs/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "write-docs", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/tabler/tabler.git --path .agents/skills/write-docs--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add tabler/tabler --skill write-docs -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install tabler/tabler write-docs --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/tabler/tabler.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.agents/skills/write-docs .gemini/skills/write-docs && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "write-docs" agent skill from https://github.com/tabler/tabler/tree/dev/.agents/skills/write-docs into .gemini/skills/write-docs/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "write-docs", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install tabler/tabler write-docsInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add tabler/tabler --skill write-docs -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/tabler/tabler.git skills-src && mkdir -p .github/skills && cp -r skills-src/.agents/skills/write-docs .github/skills/write-docs && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "write-docs" agent skill from https://github.com/tabler/tabler/tree/dev/.agents/skills/write-docs into .github/skills/write-docs/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "write-docs", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add tabler/tabler --skill write-docs -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install tabler/tabler write-docs --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/tabler/tabler.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.agents/skills/write-docs .opencode/skills/write-docs && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "write-docs" agent skill from https://github.com/tabler/tabler/tree/dev/.agents/skills/write-docs into .opencode/skills/write-docs/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "write-docs", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
write-docsWrites 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. 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.
10 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit b168be1. It shows what the files ask for, not the result of running them.
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.
Shell commands in SKILL.md call:
pnpmFrom the folder's file list and the shell code blocks in SKILL.md.
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.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
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.
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.
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.
The full file from tabler/tabler at commit b168be1, republished under its MIT licence (© tabler). 1,266 words, ~2,483 tokens.
.claude/skills/write-docs/SKILL.md (or your agent's skills folder).Follow the current Tabler documentation schema. How far to go depends on how the skill was triggered — see section 1.
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.Use, Add, Set, Show.Default frontmatter (required unless user asks otherwise):
---
title: ...
summary: ...
description: ...
---Rules:
layout: key — docs/pages/[...slug].astro renders every page.title, summary and description.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.Use this section order as the default structure:
## Overview## Installation (optional)## Variants or ## Usage (choose one based on page type)## Examples (optional)## Accessibility## SCSS variables (optional)## Migration notes (optional)Guidance by page type:
Variants.Usage.Installation + Usage.For visual examples, use the shared Example component (import after the frontmatter):
import Example from '@components/Example.astro';
<Example>
<button class="btn btn-primary">Primary button</button>
</Example>hideCode, centered, vertical, raw, column, bg, height, codeOnly.code={...}.@ui/ (for example <Icon name="plus" />).Example slot is reserialized by MDX — keep markup lines attached to tags to avoid stray <p> wrapping.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.
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.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).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.<Example> blocks that reflect real, valid prop/class combinations rather than invented markup.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.
docs.json for genuinely new pages. Editing an existing page needs no menu change.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.{ "title": "<Title Case name>", "url": "/<matching>/<slug>" } to that section's children, in the same alphabetical position its neighbors already follow.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.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.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.
docs/content/ui/components/<name>.mdx (or a plugin page), open preview/pages/<name>.astro and add, as a direct child of <DefaultLayout>: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.demo-pages skill covers building one.docs/content/** (or determine none exist yet — see section 7).shared/data/docs.json per section 7.preview/pages/<name>.astro per section 7a.## then ###) and snippet validity.Two hosts serve the docs, and they are not in sync:
| Host | Serves |
|---|---|
docs.tabler.io | the last release — can be many commits behind dev |
docs-dev.tabler.io | the 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.
Variants, Usage, or Examples.title, summary, description, layout (unless user requested extra keys).Example component pattern where applicable.shared/data/docs.json (section 7); edits to existing pages don't touch it.DocsLink (section 7a), and pnpm run check:docs-links passes.© tabler, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in .agents/skills/write-docs of tabler/tabler.
Open the folder on GitHubat commit b168be1
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.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Tabler Docs Writer this skilltabler/tabler | 42k | — | ~2.5k | Automated safety check: Pass | MIT | |
| Technical Writing Standardcursor/plugins | 10k | 10 repos | ~2.4k | Automated safety check: Pass | None | |
| ISO 24495-3 Technical Plain LanguageGaZmagik/iso-24495 | 189 | — | ~1.6k | Automated safety check: Pass | MIT | |
| Technical Writingcitypaul/.dotfiles | 739 | — | ~2.5k | Automated safety check: Pass | MIT | |
| Markdown Document StructurerArabelaTso/Skills-4-SE | 253 | — | ~2.2k | Automated safety check: Pass | Apache-2.0 | |
| ISO 24495 Text AuditGaZmagik/iso-24495 | 189 | 1 repos | ~817 | Automated safety check: Pass | MIT |
cursor/plugins
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.
GaZmagik/iso-24495
Applies plain language rules to software documentation, architecture explanations, code reviews and technical analysis, following the principles of ISO 24495-3:2026.
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.
ArabelaTso/Skills-4-SE
Reorganizes markdown documents into well-structured, consistent format while preserving content and improving readability.
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.
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.
tabler/tabler
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.
tabler/tabler
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.
tabler/tabler
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.
tabler/tabler
Writes or updates the classnames front matter that renders the class table at the end of a Tabler component docs page.
tabler/tabler
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.
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.
Categories
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.