Official agent skill

Docs Voice

by reactjs in reactjs/ar.react.dev

A skill your agent uses when writing any React documentation.

OfficialCC-BY-4.0Auto-check passedWriting & Content

Install Docs Voice

skills CLI
$ npx skills add reactjs/ar.react.dev --skill docs-voice -a claude-code

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

GitHub CLI
$ gh skill install reactjs/ar.react.dev docs-voice --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/reactjs/ar.react.dev.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/docs-voice .claude/skills/docs-voice && 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
docs-voice
GitHub stars
164
Token cost
~1.2k tokens
SKILL.md length
511 words
Files
1
Skills in repo
10
Repo updated
First seen
Licence
CC-BY-4.0

At a glance

A skill your agent uses when writing any React documentation.

  • Writing any React documentation
  • SKILL.md covers Universal Rules, Tone by Page Type, Avoiding Jargon and Common Prose Patterns, plus 2 more sections
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md
  • Tasks that involve Plain language and style rules

What it does

Docs Voice is an agent skill from reactjs/ar.react.dev, published by the product's own GitHub organization. Use when writing any React documentation. Provides voice, tone, and style rules for all doc types.

Its SKILL.md is about 1.2k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Writing & Content, covering Plain language and style rules. It works with React. The repository describes itself as: React documentation website in Arabic 📘⚛️ — وثائق React باللغة العربية. The licence is CC-BY-4.0.

When your agent uses it

  • Writing any React documentation
  • Tasks that involve Plain language and style rules

Example prompts

  • “/docs-voice”

What it can do on your machine

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

    No scripts in the folder and no shell commands in SKILL.md (its code samples are mdx).

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

  • Network

    No URLs in SKILL.md.

    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

Docs Voice loads about 1.2k tokens when it runs. Until then it costs about 27 tokens; SKILL.md has 511 words of instructions outside code blocks.

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

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 reactjs/ar.react.dev at commit 2da48d6, republished under its CC-BY-4.0 licence (© reactjs). 511 words, ~1,246 tokens.

Download SKILL.mdSave it as .claude/skills/docs-voice/SKILL.md (or your agent's skills folder).
name
docs-voice
description
Use when writing any React documentation. Provides voice, tone, and style rules for all doc types.

React Docs Voice & Style

Universal Rules

  • Capitalize React terms when referring to the React concept in headings or as standalone concepts:
    • Core: Hook, Effect, State, Context, Ref, Component, Fragment
    • Concurrent: Transition, Action, Suspense
    • Server: Server Component, Client Component, Server Function, Server Action
    • Patterns: Error Boundary
    • Canary: Activity, View Transition, Transition Type
    • In prose: Use lowercase when paired with descriptors: "state variable", "state updates", "event handler". Capitalize when the concept stands alone or in headings: "State is isolated and private"
    • General usage stays lowercase: "the page transitions", "takes an action"
  • Product names: ESLint, TypeScript, JavaScript, Next.js (not lowercase)
  • Bold for key concepts: state variable, event handler
  • Italics for new terms being defined: event handlers
  • Inline code for APIs: useState, startTransition, <Suspense>
  • Avoid: "simple", "easy", "just", time estimates
  • Frame differences as "capabilities" not "advantages/disadvantages"
  • Avoid passive voice and jargon

Tone by Page Type

TypeToneExample
LearnConversational"Here's what that looks like...", "You might be wondering..."
ReferenceTechnical"Call useState at the top level...", "This Hook returns..."
BlogAccurateFocus on facts, not marketing

Note: Pitfall and DeepDive components can use slightly more conversational phrasing ("You might wonder...", "It might be tempting...") even in Reference pages, since they're explanatory asides.

Avoiding Jargon

Pattern: Explain behavior first, then name it.

✅ "React waits until all code in event handlers runs before processing state updates. This is called batching."

❌ "React uses batching to process state updates atomically."

Terms to avoid or explain:

JargonPlain Language
atomicall-or-nothing, batched together
idempotentsame inputs, same output
deterministicpredictable, same result every time
memoizeremember the result, skip recalculating
referentially transparent(avoid - describe the behavior)
invariantrule that must always be true
reify(avoid - describe what's being created)

Allowed technical terms in Reference pages:

  • "stale closures" - standard JS/React term, can be used in Caveats
  • "stable identity" - React term for consistent object references across renders
  • "reactive" - React term for values that trigger re-renders when changed
  • These don't need explanation in Reference pages (readers are expected to know them)
Show full SKILL.md (181 more words)Show less

Use established analogies sparingly—once when introducing a concept, not repeatedly:

ConceptAnalogy
Components/ReactKitchen (components as cooks, React as waiter)
Render phasesRestaurant ordering (trigger/render/commit)
State batchingWaiter collecting full order before going to kitchen
State behaviorSnapshot/photograph in time
State storageReact storing state "on a shelf"
State purposeComponent's memory
Pure functionsRecipes (same ingredients → same dish)
Pure functionsMath formulas (y = 2x)
PropsAdjustable "knobs"
Children prop"Hole" to be filled by parent
KeysFile names in a folder
Curly braces in JSX"Window into JavaScript"
Declarative UITaxi driver (destination, not turn-by-turn)
Imperative UITurn-by-turn navigation
State structureDatabase normalization
Refs"Secret pocket" React doesn't track
Effects/Refs"Escape hatch" from React
ContextCSS inheritance / "Teleportation"
Custom HooksDesign system

Common Prose Patterns

Wrong vs Right code:

mdx
\`\`\`js
// 🚩 Don't mutate state:
obj.x = 10;
\`\`\`

\`\`\`js
// ✅ Replace with new object:
setObj({ ...obj, x: 10 });
\`\`\`

Table comparisons:

mdx
| passing a function | calling a function |
| `onClick={handleClick}` | `onClick={handleClick()}` |

Linking:

mdx
[Read about state](/learn/state-a-components-memory)
[See `useState` reference](/reference/react/useState)

Code Style

  • Prefer JSX over createElement
  • Use const/let, never var
  • Prefer named function declarations for top-level functions
  • Arrow functions for callbacks that need this preservation

Version Documentation

When APIs change between versions:

mdx
Starting in React 19, render `<Context>` as a provider:
\`\`\`js
<SomeContext value={value}>{children}</SomeContext>
\`\`\`

In older versions:
\`\`\`js
<SomeContext.Provider value={value}>{children}</SomeContext.Provider>
\`\`\`

Patterns:

  • "Starting in React 19..." for new APIs
  • "In older versions of React..." for legacy patterns

© reactjs, CC-BY-4.0. 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 .claude/skills/docs-voice of reactjs/ar.react.dev.

Open the folder on GitHubat commit 2da48d6

Used in 3 other repositories

We found 3 copies of this SKILL.md (exact, near-identical or edited) in other folders. This page covers the copy in reactjs/ar.react.dev, which our catalogue first saw on October 7, 2026.

Compare with similar skills

Docs Voice 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.

Docs Voice compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Docs Voice this skillreactjs/ar.react.dev164—~1.2kAutomated safety check: PassCC-BY-4.0
Simplemancanwhite/Krebs1k—~574Automated safety check: PassNone
Reduce Bundle Sizekcsujeet/ilamy-calendar351—~2.9kAutomated safety check: PassMIT
Asd Ste100danyuchn/asd-ste100-skill3.9k—~4.1kAutomated safety check: PassMIT
Natural Japanese Business Writingcoji/natural-japanese1.9k—~2.1kAutomated safety check: PassMIT
Technical Writing Standardcursor/plugins10k10 repos~2.4kAutomated safety check: PassNone

Similar skills

  • Simpleman

    canwhite/Krebs

    Simple, plain language communication. An agent skill from canwhite/Krebs.

    1k GitHub stars~574 tokensUpdated 1 mo ago
    Writing & ContentAuto-check passed
  • Reduce Bundle Size

    kcsujeet/ilamy-calendar

    Systematically reduce the shipped bundle size of a JS/TS library without sacrificing code readability or breaking consumer APIs.

    351 GitHub stars~2.9k tokensUpdated 3 days ago
    Frontend & DesignAuto-check passed
  • Asd Ste100

    danyuchn/asd-ste100-skill

    A skill your agent uses when English text must be parsed without a human to resolve ambiguity — tool descriptions, error messages, inter-agent instructions, system prompts, status reports — and…

    3.9k GitHub stars~4.1k tokensUpdated 3 days ago
    Writing & ContentAuto-check passed
  • Writes and edits Japanese business documents so they read clearly and naturally, removes AI-sounding phrasing and can score how AI-like a text reads.

    1.9k GitHub stars~2.1k tokensUpdated 1 mo ago
    Writing & ContentAuto-check passed
  • 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
  • Figure

    vectorize-io/hindsight

    Draw an animated figure (boxes, arrows, moving data) as one self-contained SVG for a GitHub README, PR, issue or blog post.

    46k GitHub stars~1.9k tokensUpdated today
    Writing & ContentAuto-check passed

More from reactjs/ar.react.dev

All 10 skills in this repo
  • React Expert

    reactjs/ar.react.dev

    Official

    A skill your agent uses when researching React APIs or concepts for documentation.

    164 GitHub starsUsed in 2 repos~2.7k tokens
    Auto-check passed
  • Docs Rsc Sandpack

    reactjs/ar.react.dev

    Official

    A skill your agent uses when adding interactive RSC (React Server Components) code examples to React docs using <SandpackRSC, or when modifying the RSC sandpack infrastructure.

    164 GitHub stars~2.1k tokensUpdated 2 days ago
    Auto-check passed
  • Docs Writer Blog

    reactjs/ar.react.dev

    Official

    A skill your agent uses when writing or editing files in src/content/blog/.

    164 GitHub stars~4.2k tokensUpdated 2 days ago
    Auto-check passed
  • Docs Writer Learn

    reactjs/ar.react.dev

    Official

    A skill your agent uses when writing or editing files in src/content/learn/.

    164 GitHub stars~1.8k tokensUpdated 2 days ago
    Auto-check passed
  • Write

    reactjs/ar.react.dev

    Official

    A skill your agent uses when creating new React documentation pages or updating existing ones.

    164 GitHub stars~1.6k tokensUpdated 2 days ago
    Auto-check passed
  • Docs Components

    reactjs/ar.react.dev

    Official

    Comprehensive MDX component patterns (Note, Pitfall, DeepDive, Recipes, etc.) for all documentation types.

    164 GitHub stars~3k tokensUpdated 2 days ago
    Auto-check passed

Works with

Questions about Docs Voice

What does Docs Voice do?

A skill your agent uses when writing any React documentation. dev, published by the product's own GitHub organization. Use when writing any React documentation.

When should I use Docs Voice?

Docs Voice fits situations like: writing any React documentation; tasks that involve Plain language and style rules.

How do I install Docs Voice in Claude Code?

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

How do I install Docs Voice in Codex?

Run `npx skills add reactjs/ar.react.dev --skill docs-voice -a codex`. Or copy the skill folder (.claude/skills/docs-voice in reactjs/ar.react.dev) into .agents/skills/docs-voice in your project. Codex loads it when a task matches its description.

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

What does Docs Voice need to run?

SKILL.md names no scripts, command-line tools or credentials: Docs Voice is instructions for the agent only.

Does Docs Voice 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 Docs Voice 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 Docs Voice use?

Docs Voice is published under the CC-BY-4.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Docs Voice use?

About 1.2k tokens (SKILL.md is roughly 5k 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 Docs Voice?

Skills that share tags, products or a category with Docs Voice: Simpleman (canwhite/Krebs, 1k stars), Reduce Bundle Size (kcsujeet/ilamy-calendar, 351 stars), Asd Ste100 (danyuchn/asd-ste100-skill, 3.9k stars) and Natural Japanese Business Writing (coji/natural-japanese, 1.9k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Docs Voice?

reactjs (a GitHub organization, an official publisher) maintains it in reactjs/ar.react.dev, which has 164 GitHub stars. The repository holds 10 skills in this directory. The repository was last updated on October 5, 2026.

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