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.
A skill your agent uses when writing or editing files in src/content/blog/.
$ npx skills add reactjs/ar.react.dev --skill docs-writer-blog -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install reactjs/ar.react.dev docs-writer-blog --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/reactjs/ar.react.dev.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/docs-writer-blog .claude/skills/docs-writer-blog && 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 "docs-writer-blog" agent skill from https://github.com/reactjs/ar.react.dev/tree/main/.claude/skills/docs-writer-blog into .claude/skills/docs-writer-blog/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "docs-writer-blog", 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/reactjs/ar.react.dev/tree/main/.claude/skills/docs-writer-blogType 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 reactjs/ar.react.dev --skill docs-writer-blog -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install reactjs/ar.react.dev docs-writer-blog --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/reactjs/ar.react.dev.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.claude/skills/docs-writer-blog .agents/skills/docs-writer-blog && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "docs-writer-blog" agent skill from https://github.com/reactjs/ar.react.dev/tree/main/.claude/skills/docs-writer-blog into .agents/skills/docs-writer-blog/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "docs-writer-blog", 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 reactjs/ar.react.dev --skill docs-writer-blog -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install reactjs/ar.react.dev docs-writer-blog --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/reactjs/ar.react.dev.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.claude/skills/docs-writer-blog .cursor/skills/docs-writer-blog && 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 "docs-writer-blog" agent skill from https://github.com/reactjs/ar.react.dev/tree/main/.claude/skills/docs-writer-blog into .cursor/skills/docs-writer-blog/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "docs-writer-blog", 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/reactjs/ar.react.dev.git --path .claude/skills/docs-writer-blog--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 reactjs/ar.react.dev --skill docs-writer-blog -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install reactjs/ar.react.dev docs-writer-blog --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/reactjs/ar.react.dev.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.claude/skills/docs-writer-blog .gemini/skills/docs-writer-blog && 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 "docs-writer-blog" agent skill from https://github.com/reactjs/ar.react.dev/tree/main/.claude/skills/docs-writer-blog into .gemini/skills/docs-writer-blog/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "docs-writer-blog", 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 reactjs/ar.react.dev docs-writer-blogInstalls 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 reactjs/ar.react.dev --skill docs-writer-blog -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/reactjs/ar.react.dev.git skills-src && mkdir -p .github/skills && cp -r skills-src/.claude/skills/docs-writer-blog .github/skills/docs-writer-blog && 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 "docs-writer-blog" agent skill from https://github.com/reactjs/ar.react.dev/tree/main/.claude/skills/docs-writer-blog into .github/skills/docs-writer-blog/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "docs-writer-blog", 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 reactjs/ar.react.dev --skill docs-writer-blog -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install reactjs/ar.react.dev docs-writer-blog --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/reactjs/ar.react.dev.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.claude/skills/docs-writer-blog .opencode/skills/docs-writer-blog && 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 "docs-writer-blog" agent skill from https://github.com/reactjs/ar.react.dev/tree/main/.claude/skills/docs-writer-blog into .opencode/skills/docs-writer-blog/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "docs-writer-blog", 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.
docs-writer-blogA skill your agent uses when writing or editing files in src/content/blog/.
Docs Writer Blog is an agent skill from reactjs/ar.react.dev, published by the product's own GitHub organization. Use when writing or editing files in src/content/blog/. Provides blog post structure and conventions.
Its SKILL.md is about 4.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 Blog and article writing and Code migrations. It works with React. The repository describes itself as: React documentation website in Arabic 📘⚛️ — وثائق React باللغة العربية. The licence is CC-BY-4.0.
7 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 2da48d6. 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:
npxFrom the folder's file list and the shell code blocks in SKILL.md.
Hosts in commands or code, which the agent is likely to contact:
github.comyoutube.combsky.appcve.orgnpmjs.comtwitter.comx.comFrom 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.
Docs Writer Blog loads about 4.2k tokens when it runs. Until then it costs about 30 tokens; SKILL.md has 774 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 reactjs/ar.react.dev at commit 2da48d6, republished under its CC-BY-4.0 licence (© reactjs). 774 words, ~4,172 tokens.
.claude/skills/docs-writer-blog/SKILL.md (or your agent's skills folder).Voice: Official React team voice Tone: Accurate, professional, forward-looking
For tone, capitalization, jargon, and prose patterns, invoke /docs-voice.
All blog posts use this YAML frontmatter structure:
---
title: "Title in Quotes"
author: Author Name(s)
date: YYYY/MM/DD
description: One or two sentence summary.
---| Field | Format | Example |
|---|---|---|
title | Quoted string | "React v19", "React Conf 2024 Recap" |
author | Unquoted, comma + "and" for multiple | The React Team, Dan Abramov and Lauren Tan |
date | YYYY/MM/DD with forward slashes | 2024/12/05 |
description | 1-2 sentences, often mirrors intro | Summarizes announcement or content |
| Type | Pattern | Example |
|---|---|---|
| Release | "React vX.Y" or "React X.Y" | "React v19" |
| Upgrade | "React [VERSION] Upgrade Guide" | "How to Upgrade to React 18" |
| Labs | "React Labs: [Topic] – [Month Year]" | "React Labs: What We've Been Working On – February 2024" |
| Conf | "React Conf [YEAR] Recap" | "React Conf 2024 Recap" |
| Feature | "Introducing [Feature]" or descriptive | "Introducing react.dev" |
| Security | "[Severity] Security Vulnerability in [Component]" | "Critical Security Vulnerability in React Server Components" |
Immediately after frontmatter, add a byline:
---
Month DD, YYYY by [Author Name](social-link)
---December 05, 2024/community/team: [The React Team](/community/team)---Examples:
December 05, 2024 by [The React Team](/community/team)
---May 3, 2023 by [Dan Abramov](https://bsky.app/profile/danabra.mov), [Sophie Alpert](https://twitter.com/sophiebits), and [Andrew Clark](https://twitter.com/acdlite)
---All blog posts follow this structure:
---)<Intro> component (1-3 sentences)---) (optional)---
title: "React vX.Y"
author: The React Team
date: YYYY/MM/DD
description: React X.Y is now available on npm! In this post, we'll give an overview of the new features.
---
Month DD, YYYY by [The React Team](/community/team)
---
<Intro>
React vX.Y is now available on npm!
</Intro>
In our [Upgrade Guide](/blog/YYYY/MM/DD/react-xy-upgrade-guide), we shared step-by-step instructions for upgrading. In this post, we'll give an overview of what's new.
- [What's new in React X.Y](#whats-new)
- [Improvements](#improvements)
- [How to upgrade](#how-to-upgrade)
---
## What's new in React X.Y {/*whats-new*/}
### Feature Name {/*feature-name*/}
[Problem this solves. Before/after code examples.]
For more information, see the docs for [`Feature`](/reference/react/Feature).
---
## Improvements in React X.Y {/*improvements*/}
### Improvement Name {/*improvement-name*/}
[Description of improvement.]
---
## How to upgrade {/*how-to-upgrade*/}
See [How to Upgrade to React X.Y](/blog/YYYY/MM/DD/react-xy-upgrade-guide) for step-by-step instructions.
---
## Changelog {/*changelog*/}
### React {/*react*/}
* Add `useNewHook` for [purpose]. ([#12345](https://github.com/facebook/react/pull/12345) by [@contributor](https://github.com/contributor))
---
_Thanks to [Name](url) for reviewing this post._---
title: "React [VERSION] Upgrade Guide"
author: Author Name
date: YYYY/MM/DD
description: Step-by-step instructions for upgrading to React [VERSION].
---
Month DD, YYYY by [Author Name](social-url)
---
<Intro>
[Summary of upgrade and what this guide covers.]
</Intro>
<Note>
#### Stepping stone version {/*stepping-stone*/}
[If applicable, describe intermediate upgrade steps.]
</Note>
In this post, we will guide you through the steps for upgrading:
- [Installing](#installing)
- [Codemods](#codemods)
- [Breaking changes](#breaking-changes)
- [New deprecations](#new-deprecations)
---
## Installing {/*installing*/}
```bash
npm install --save-exact react@^X.Y.Z react-dom@^X.Y.Z<Note>
npx codemod@latest react/[VERSION]/migration-recipe</Note>
apiName {/removed-api-name/}apiName was deprecated in Month YYYY (vX.X.X).
// Before
[old code]
// After
[new code]<Note>
Codemod [description]:
npx codemod@latest react/[VERSION]/codemod-name</Note>
apiName {/deprecated-api-name/}[Explanation and migration path.]
Thanks to Contributor for reviewing this post.
### React Labs Research Update
```markdown
---
title: "React Labs: What We've Been Working On – [Month Year]"
author: Author1, Author2, and Author3
date: YYYY/MM/DD
description: In React Labs posts, we write about projects in active research and development.
---
Month DD, YYYY by [Author1](url), [Author2](url), and [Author3](url)
---
<Intro>
In React Labs posts, we write about projects in active research and development. We've made significant progress since our [last update](/blog/previous-labs-post), and we'd like to share our progress.
</Intro>
[Optional: Roadmap disclaimer about timelines]
---
## Feature Name {/*feature-name*/}
<Note>
`<FeatureName />` is now available in React's Canary channel.
</Note>
[Description of feature, motivation, current status.]
### Subsection {/*subsection*/}
[Details, examples, use cases.]
---
## Research Area {/*research-area*/}
[Problem space description. Status communication.]
This research is still early. We'll share more when we're further along.
---
_Thanks to [Reviewer](url) for reviewing this post._
Thanks for reading, and see you in the next update!---
title: "React Conf [YEAR] Recap"
author: Author1 and Author2
date: YYYY/MM/DD
description: Last week we hosted React Conf [YEAR]. In this post, we'll summarize the talks and announcements.
---
Month DD, YYYY by [Author1](url) and [Author2](url)
---
<Intro>
Last week we hosted React Conf [YEAR] [where we announced [key announcements]].
</Intro>
---
The entire [day 1](youtube-url) and [day 2](youtube-url) streams are available online.
## Day 1 {/*day-1*/}
_[Watch the full day 1 stream here.](youtube-url)_
[Description of day 1 opening and keynote highlights.]
Watch the full day 1 keynote here:
<YouTubeIframe src="https://www.youtube.com/embed/VIDEO_ID" />
## Day 2 {/*day-2*/}
_[Watch the full day 2 stream here.](youtube-url)_
[Day 2 summary.]
<YouTubeIframe src="https://www.youtube.com/embed/VIDEO_ID" />
## Q&A {/*q-and-a*/}
* [Q&A Title](youtube-url) hosted by [Host](url)
## And more... {/*and-more*/}
We also heard talks including:
* [Talk Title](youtube-url) by [Speaker](url)
## Thank you {/*thank-you*/}
Thank you to all the staff, speakers, and participants who made React Conf [YEAR] possible.
See you next time!---
title: "Introducing [Feature Name]"
author: Author Name
date: YYYY/MM/DD
description: Today we are announcing [feature]. In this post, we'll explain [what this post covers].
---
Month DD, YYYY by [Author Name](url)
---
<Intro>
Today we are [excited/thrilled] to announce [feature]. [What this means for users.]
</Intro>
---
## tl;dr {/*tldr*/}
* Key announcement point with [relevant link](/path).
* What users can do now.
* Availability or adoption information.
## What is [Feature]? {/*what-is-feature*/}
[Explanation of the feature/tool.]
## Why we built this {/*why-we-built-this*/}
[Motivation, history, problem being solved.]
## Getting started {/*getting-started*/}
To install [feature]:
<TerminalBlock>
npm install package-name
</TerminalBlock>
[You can find more documentation here.](/path/to/docs)
## What's next {/*whats-next*/}
[Future plans and next steps.]
## Thank you {/*thank-you*/}
[Acknowledgments to contributors.]
---
Thanks to [Reviewer](url) for reviewing this post.---
title: "[Severity] Security Vulnerability in [Component]"
author: The React Team
date: YYYY/MM/DD
description: Brief summary of the vulnerability. A fix has been published. We recommend upgrading immediately.
---
Month DD, YYYY by [The React Team](/community/team)
---
<Intro>
[One or two sentences summarizing the vulnerability.]
We recommend upgrading immediately.
</Intro>
---
On [date], [researcher] reported a security vulnerability that allows [description].
This vulnerability was disclosed as [CVE-YYYY-NNNNN](https://www.cve.org/CVERecord?id=CVE-YYYY-NNNNN) and is rated CVSS [score].
The vulnerability is present in versions [list] of:
* [package-name](https://www.npmjs.com/package/package-name)
## Immediate Action Required {/*immediate-action-required*/}
A fix was introduced in versions [linked versions]. Upgrade immediately.
### Affected frameworks {/*affected-frameworks*/}
[List of affected frameworks with npm links.]
### Vulnerability overview {/*vulnerability-overview*/}
[Technical explanation of the vulnerability.]
## Update Instructions {/*update-instructions*/}
### Framework Name {/*update-framework-name*/}
```bash
npm install package@versionThank you to Researcher Name for discovering and reporting this vulnerability.
---
## Heading Conventions
### ID Syntax
All headings require IDs using CSS comment syntax:
```markdown
## Heading Text {/*heading-id*/}| Context | Example |
|---|---|
| Feature section | ## New Feature: Automatic Batching {/*new-feature-automatic-batching*/} |
| New hook | ### New hook: \useActionState` {/*new-hook-useactionstate*/}` |
| API in backticks | ### \<Activity />` {/*activity*/}` |
| Removed API | #### Removed: \propTypes` {/*removed-proptypes*/}` |
| tl;dr section | ## tl;dr {/*tldr*/} |
| Component | Usage in Blog |
|---|---|
<Intro> | Required - Opening summary after byline |
<Note> | Callouts, caveats, important clarifications |
<Pitfall> | Warnings about common mistakes |
<DeepDive> | Optional technical deep dives (use sparingly) |
<TerminalBlock> | CLI/installation commands |
<ConsoleBlock> | Console error/warning output |
<ConsoleBlockMulti> | Multi-line console output |
<YouTubeIframe> | Conference video embeds |
<Diagram> | Visual explanations |
<InlineToc /> | Auto-generated table of contents |
<Intro> PatternAlways wrap opening paragraph:
<Intro>
React 19 is now available on npm!
</Intro><Note> PatternsSimple note:
<Note>
For React Native users, React 18 ships with the New Architecture.
</Note>Titled note (H4 inside):
<Note>
#### React 18.3 has also been published {/*react-18-3*/}
To help with the upgrade, we've published `react@18.3`...
</Note><TerminalBlock> Pattern<TerminalBlock>
npm install react@latest react-dom@latest
</TerminalBlock><YouTubeIframe> Pattern<YouTubeIframe src="https://www.youtube.com/embed/VIDEO_ID" />| Type | Pattern | Example |
|---|---|---|
| Blog post | /blog/YYYY/MM/DD/slug | /blog/2024/12/05/react-19 |
| API reference | /reference/react/HookName | /reference/react/useState |
| Learn section | /learn/topic-name | /learn/react-compiler |
| Community | /community/team | /community/team |
| Type | Pattern |
|---|---|
| GitHub PR | [#12345](https://github.com/facebook/react/pull/12345) |
| GitHub user | [@username](https://github.com/username) |
| Twitter/X | [@username](https://x.com/username) |
| Bluesky | [Name](https://bsky.app/profile/handle) |
| CVE | [CVE-YYYY-NNNNN](https://www.cve.org/CVERecord?id=CVE-YYYY-NNNNN) |
| npm package | [package](https://www.npmjs.com/package/package) |
For more information, see the docs for [`useActionState`](/reference/react/useActionState).* Add `useTransition` for concurrent rendering. ([#10426](https://github.com/facebook/react/pull/10426) by [@acdlite](https://github.com/acdlite))
* Fix `useReducer` observing incorrect props. ([#22445](https://github.com/facebook/react/pull/22445) by [@josephsavona](https://github.com/josephsavona))Structure: Verb + backticked API + description + ([#PR](url) by [@user](url))
Verbs: Add, Fix, Remove, Make, Improve, Allow, Deprecate
## Changelog {/*changelog*/}
### React {/*react*/}
* [changes]
### React DOM {/*react-dom*/}
* [changes]---
Thanks to [Name](url), [Name](url), and [Name](url) for reviewing this post.Or italicized:
_Thanks to [Name](url) for reviewing this post._For post-publication updates:
<Note>
[Updated content]
-----
_Updated January 26, 2026._
</Note>| Type | Tone | Length | Key Elements |
|---|---|---|---|
| Release | Celebratory, informative | Medium-long | Feature overview, upgrade link, changelog |
| Upgrade | Instructional, precise | Long | Step-by-step, codemods, breaking changes |
| Labs | Transparent, exploratory | Medium | Status updates, roadmap disclaimers |
| Conf | Enthusiastic, community-focused | Medium | YouTube embeds, speaker credits |
| Feature | Excited, explanatory | Medium | tl;dr, "why", getting started |
| Security | Urgent, factual | Short-medium | Immediate action, timeline, CVE |
Do:
Don't:
<Intro> component<Note>
[Updated information]
-----
_Updated Month Year._
</Note>## Title {/*title-id*/}<Intro> required: Every post starts with <Intro> componentYYYY/MM/DD, byline uses Month DD, YYYYFor complete MDX component patterns, invoke /docs-components.
Blog posts commonly use: <Intro>, <Note>, <Pitfall>, <TerminalBlock>, <ConsoleBlock>, <YouTubeIframe>, <DeepDive>, <Diagram>.
Prefer inline explanations over heavy component usage.
© 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
Just SKILL.md in .claude/skills/docs-writer-blog of reactjs/ar.react.dev.
Open the folder on GitHubat commit 2da48d6
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.
Docs Writer Blog 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 |
|---|---|---|---|---|---|---|
| Docs Writer Blog this skillreactjs/ar.react.dev | 164 | — | ~4.2k | Automated safety check: Pass | CC-BY-4.0 | |
| Figurevectorize-io/hindsight | 46k | — | ~1.9k | Automated safety check: Pass | MIT | |
| Blog Postnteract/semiotic | 2.7k | — | ~3.4k | Automated safety check: Pass | Apache-2.0 | |
| Publishone-ie/one | 131 | — | ~940 | Automated safety check: Pass | Custom licence | |
| No Em Dashespetera2c/simple-table | 229 | — | ~195 | Automated safety check: Pass | MIT | |
| Experience Cms Content Renderforcedotcom/sf-skills | 1.1k | — | ~6.3k | Automated safety check: Pass | Apache-2.0 |
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.
nteract/semiotic
Author a new entry for the Semiotic blog. An agent skill from nteract/semiotic.
one-ie/one
Put words on this site — a blog post, a docs page, a product, or a live page from ONE's editor.
petera2c/simple-table
Avoid em dashes in marketing copy, hero text, changelogs, blog posts, docs, UI strings, and chat.
forcedotcom/sf-skills
Renders, embeds, or displays existing Salesforce CMS content in a React or Angular uiBundle app: installs the CMS toolkit, registers a typed reference, generates a framework-matched renderer from…
chakra-ui/chakra-ui
Guides an upgrade from Chakra UI v2 to v3: inspect the project, swap packages, run the official codemod, then fix provider, color mode, props, theming and Next.js code.
reactjs/ar.react.dev
A skill your agent uses when researching React APIs or concepts for documentation.
reactjs/ar.react.dev
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.
reactjs/ar.react.dev
A skill your agent uses when writing any React documentation.
reactjs/ar.react.dev
A skill your agent uses when writing or editing files in src/content/learn/.
reactjs/ar.react.dev
A skill your agent uses when creating new React documentation pages or updating existing ones.
reactjs/ar.react.dev
Comprehensive MDX component patterns (Note, Pitfall, DeepDive, Recipes, etc.) for all documentation types.
Works with
Categories
A skill your agent uses when writing or editing files in src/content/blog/. dev, published by the product's own GitHub organization. Use when writing or editing files in src/content/blog/.
Docs Writer Blog fits situations like: editing files in src/content/blog/; tasks that involve Blog and article writing; tasks that involve Code migrations.
Run `npx skills add reactjs/ar.react.dev --skill docs-writer-blog -a claude-code`. Or copy the skill folder (.claude/skills/docs-writer-blog in reactjs/ar.react.dev) into .claude/skills/docs-writer-blog in your project. Claude Code loads it when a task matches its description.
Run `npx skills add reactjs/ar.react.dev --skill docs-writer-blog -a codex`. Or copy the skill folder (.claude/skills/docs-writer-blog in reactjs/ar.react.dev) into .agents/skills/docs-writer-blog 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 reactjs/ar.react.dev --skill docs-writer-blog -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-writer-blog, .gemini/skills/docs-writer-blog, .github/skills/docs-writer-blog and .opencode/skills/docs-writer-blog in your project.
Going by SKILL.md and its folder, Docs Writer Blog needs the command-line tools its instructions call (npx). Our summary lists: Node.js.
SKILL.md names 7 domains. In commands or code: github.com, youtube.com, bsky.app, cve.org, npmjs.com, twitter.com and x.com; the agent is likely to contact these when it follows the instructions. 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.
Docs Writer Blog 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.
About 4.2k tokens (SKILL.md is roughly 17k 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 Docs Writer Blog: Figure (vectorize-io/hindsight, 46k stars), Blog Post (nteract/semiotic, 2.7k stars), Publish (one-ie/one, 131 stars) and No Em Dashes (petera2c/simple-table, 229 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
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.