Official agent skill

Docs Review

by langchain-ai in langchain-ai/docs

Review changed docs prose against Vale and the AGENTS.md style guide, reporting findings with the rule each one breaks.

OfficialMITAuto-check passedWriting & Content

Install Docs Review

skills CLI
$ npx skills add langchain-ai/docs --skill docs-review -a claude-code

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

GitHub CLI
$ gh skill install langchain-ai/docs docs-review --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/langchain-ai/docs.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/docs-review .claude/skills/docs-review && 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-review
GitHub stars
426
Token cost
~2.9k tokens
SKILL.md length
1,676 words
Files
1
Skills in repo
17
Repo updated
First seen
Licence
MIT

At a glance

Review changed docs prose against Vale and the AGENTS.md style guide, reporting findings with the rule each one breaks.

  • Works in 6 steps: Resolve the target → Run Vale → Check structure against the style guide → …
  • Writing & Content work in your project
  • SKILL.md covers Step 1. Resolve the target, Step 2. Run Vale, Step 3. Check structure… and Step 4. Check the style guide…, plus 3 more sections
  • Calls git, make and gh

What it does

Docs Review is an agent skill from langchain-ai/docs, published by the product's own GitHub organization. Review changed docs prose against Vale and the AGENTS.md style guide, reporting findings with the rule each one breaks. Use after authoring or editing a page and before committing, or to review a PR, a branch, or the current diff.

Its SKILL.md is about 2.9k 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. It works with Git. The repository describes itself as: Unified LangChain documentation. The licence is MIT.

When your agent uses it

  • Writing & Content work in your project

Example prompts

  • “/docs-review”

Requirements

  • Pre-approved tools (allowed-tools): Bash(git:*), Bash(gh pr:*), Bash(gh api:*), Bash(make lint_prose:*), Read, Grep, Glob

Workflow steps

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

  1. Resolve the target
  2. Run Vale
  3. Check structure against the style guide
  4. Check the style guide items Vale cannot see
  5. Check the mechanics the diff implies
  6. Report

What it can do on your machine

Read from SKILL.md and the folder at commit be3028f. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves these tools, so the agent can use them without asking each time:

    • Bash(git:*)
    • Bash(gh pr:*)
    • Bash(gh api:*)
    • Bash(make lint_prose:*)
    • Read
    • Grep
    • Glob

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • git
    • make
    • gh

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

  • Network

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

Docs Review loads about 2.9k tokens when it runs. Until then it costs about 61 tokens; SKILL.md has 1,676 words of instructions outside code blocks.

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

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 langchain-ai/docs at commit be3028f, republished under its MIT licence (© langchain-ai). 1,676 words, ~2,941 tokens.

Download SKILL.mdSave it as .claude/skills/docs-review/SKILL.md (or your agent's skills folder).
name
docs-review
description
Review changed docs prose against Vale and the AGENTS.md style guide, reporting findings with the rule each one breaks. Use after authoring or editing a page and before committing, or to review a PR, a branch, or the current diff.
allowed-tools
Bash(git:*), Bash(gh pr:*), Bash(gh api:*), Bash(make lint_prose:*), Read, Grep, Glob
argument-hint
[PR number or URL | branch | nothing for uncommitted or current-branch changes]
license
MIT
metadata.author
langchain
metadata.version
1.0

Review docs prose

Review documentation prose that changed in $ARGUMENTS, or in the working tree and current branch if that is empty.

Two rules govern this whole skill:

  • Review the diff, not the page. Prose that was already there is not in scope, however much you would have written it differently.
  • Skip rules that do not clearly apply. A short report of real findings is the goal. Do not stretch a rule to reach a finding, and do not restructure prose that is already fine.

Step 1. Resolve the target

Run git fetch origin first so main is current. Resolve in this order:

  1. A number or GitHub PR URL means a PR. Get the branch with gh pr view <n> --json headRefName.
  2. A branch name is used directly.
  3. Empty, with uncommitted changes present means the working tree. Take the files from git status --porcelain plus git diff --name-only --diff-filter=d origin/main...HEAD. No checkout, no worktree: the files are already in front of you. This is the mode that runs after an authoring skill.
  4. Empty, with a clean tree means the current HEAD against main: git diff --name-only --diff-filter=d origin/main...HEAD.

Narrow to src/**/*.mdx and src/**/*.md. If nothing changed, say so and stop. Never review anything under build/.

For modes 1 and 2, check out the target before inspecting anything. Your working tree is almost certainly on a different branch, and linting it silently reports on the wrong content.

For a PR, check the branch out in the main working tree so any edit that follows lands on the open branch:

bash
git stash list            # confirm nothing is about to be lost
git status --porcelain    # must be clean; stop and ask if it is not
git fetch origin <branch>
git checkout <branch>     # tracks origin/<branch>

Use git checkout <branch>, not git checkout -b or a --no-track branch. A new branch is only correct when the review is of main, or when the user asks for a separate branch of their own edits. Confirm the checkout by grepping for a string the diff added.

For a review with no edits to follow, a detached worktree is also fine:

bash
git worktree add --detach <scratch-dir>/review-wt origin/<branch>

Do all reading and linting inside it, and git worktree remove --force it when the review is done.

State the target, the resolved SHA or "working tree", and the file count before going further.

Step 2. Run Vale

In the main checkout, make lint_prose FILES="<files>" is enough. Vale's binary is gitignored, so a fresh worktree does not have it and make lint_prose there fails with .bin/vale: No such file or directory. From a worktree, call the main checkout's binary by path so it picks up .vale.ini:

bash
cd <worktree> && <main-checkout>/.bin/vale --glob='!**/node_modules/**' <files>

Vale is deterministic and CI blocks on it, so its output is not a judgment call. Report every violation with its file and line. If invoked with --fix, correct them; otherwise list them.

Lint the merge-base version of each changed file as well, and report the difference rather than the raw count:

bash
git show origin/main:<file> > <scratch>/base-<name>
<main-checkout>/.bin/vale <scratch>/base-<name>

A file that already failed on main carries pre-existing debt the author did not introduce. A file that was clean on main and fails now is this diff's CI blocker. Say which one it is, because attribution is the difference between a finding the author has to fix and one they can reasonably decline.

Reading the diff text is not a substitute for either run. A patch shows added lines without their column offsets or their surrounding component, which is exactly what these rules turn on.

Vale covers terminology, contractions, first person, future tense, Oxford commas, spaced em dashes, navigation-path arrows, and heading case. Do not spend model judgment re-checking what Vale already checks, with one exception: Vale does not scan every part of an MDX file, so a clean run is not proof of compliance. It misses content inside JSX components (<Note>, <Tip>, <Tab>, <Step>, <Accordion>) and inside table cells. A page can pass Vale with four spaced em dashes in it.

Grep the mechanical rules yourself over any file whose diff touches those places:

bash
grep -nE ' — | – ' <files>                      # spaced em dashes
grep -nEi "\b(don't|can't|won't|isn't|it's|you'll)\b" <files>   # contractions
grep -nE '\b(we|our|us|I)\b|\bwill [a-z]+\b' <files>          # first person, future tense
grep -n '→' <files>                              # navigation arrows

Report a hit inside a component the same way you would report a Vale error: it would be one if Vale could see it. A — used as an empty table-cell marker is fine and is not a finding.

Step 3. Check structure against the style guide

Read the "Structure conventions" section of AGENTS.md in the repository root, then check the changed hunks against it. For each finding, quote the rule you are applying.

Look for these, and nothing else:

  • A new section or page that does not open with a one-sentence definition of what the thing is or does, followed by the benefit, then the task. Skip when the section continues directly from the one above it.
  • Steps introduced without a colon lead-in, or steps that are not imperative. Skip for a list that is not a procedure.
  • Three or more options, parameters, or permissions written as prose where - **Term**: Explanation. would carry them. Skip for fewer than three.
  • A feature or class linked on repeat mentions, or a first mention that is not linked. Skip when the repeat is far enough down the page to be a genuine re-entry.
  • A permission, plan tier, or preview requirement stated after the steps it governs rather than before them.
  • A hard constraint hedged ("it is generally not possible to change this") where the guide calls for a flat fact ("Once set, it cannot be changed.").

Pointer phrasing is deliberately absent from that list. Both the long form ("For more information, see [Page]") and the short form ("See [Page]") are established. Do not convert between them in either direction.

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

Step 4. Check the style guide items Vale cannot see

Read the "Style guide" section of AGENTS.md. Vale enforces the mechanical half. These are the rules that need reading:

  • Passive voice where the actor is known. "Feedback is treated as a signal" hides who treats it. Skip when the actor is genuinely irrelevant or unknown.
  • Filler and hedging: "Note that", "Specifically", "simply", "easily", "just", "very", "basically", "obviously". Cut the word, keep the sentence.
  • A pronoun, "this", or "the above" whose antecedent the diff removed. Compression is the usual cause: the noun the sentence refers back to sat in a clause the edit cut. Name the thing again.
  • A condition, default, or requirement the diff shortened away. Compare the hunk against its base rather than reading the new text alone. A sentence that got shorter by dropping when the behavior applies, or what value it applies to, is a regression, and it lints clean. Quote "Be concise: cut filler words and wordy phrases" and name the fact the cut removed.
  • Product versus common noun capitalization. A capitalized feature name that appears nowhere else in the file, or that disagrees with the UI label used elsewhere on the same page, is the tell. Grep the file for the term's other casings before reporting.
  • Bold in body text beyond UI labels. Match what the rest of the page does rather than an abstract standard.
  • Repetition inside the diff. The same list of items enumerated twice in one short section, or a sentence restating the one above it.
  • Link text that does not describe its destination, and two different labels pointing at the same anchor.
  • Version minimums written with >= in prose. The convention is "v0.153.4 or later"; >= belongs only in package specifiers such as langsmith>=0.3.13.

Measure before reporting a convention violation. If you are about to say a heading form or phrasing is wrong, grep the repository for how often it already appears. A form used widely is established practice, not a defect, however much the guide seems to prohibit it. Report the count either way.

A diff can also leave a convention rather than break a new one. Lowercasing the explanation in - **Term**: Explanation., dropping a trailing period, or swapping a colon lead-in for a dash each reads as a harmless copy edit on its own. Compare the before and after of that exact form, then count both spellings across src/. When the base was following the majority, the change is the finding.

Measure the same way when the diff adopts a convention rather than breaks one, because a repeated block has three parts and matching two of them still lands wrong:

  • Component. <Note> or <Warning> or plain prose.
  • Wording. Byte-identical to the siblings, or subtly reworded.
  • Placement. Before or after the intro paragraph, relative to imports and the first heading.

A status callout copied word for word from the one page in thirteen that puts it below the intro is a finding, and only a placement count surfaces it. Report the count for each of the three.

When the same block appears on three or more pages, say so: it belongs in src/snippets/ rather than duplicated. See add-docs-page.

Step 5. Check the mechanics the diff implies

Only when the diff triggers them:

  • A new page: is it in src/docs.json, in the right product, tab, and group?
  • A renamed or deleted page: are inbound links and the docs.json entry both updated?
  • New internal links: root-relative, and free of /python/ or /javascript/?
  • A new code block: does it carry a real language tag, and are imports sorted?
  • A page or heading that changed URL: is there a redirect?

The add-docs-page skill covers all five in detail. Point at it rather than restating the procedure in a finding.

Step 6. Report

Group by file. For each finding:

txt
src/langsmith/example.mdx:42
Rule: "State requirements and constraints up front"
The admin permission requirement appears after step 3, but governs all of them.
Suggested: move it above the numbered list.

End with a one-line verdict: what blocks merge (Vale violations, missing nav entry, broken link) versus what is a suggestion.

If nothing turns up, say that plainly. "No findings" is a valid and useful result, and is more useful than a manufactured one.

Running after an authoring skill

add-docs-page invokes this skill at its verification step, in working-tree mode, on the files it just changed. Two constraints keep that useful:

  • Review finished edits, not drafts. Findings on a half-written section go stale as soon as writing resumes, and reporting them trains the reader to ignore the report. Run after the edit is complete and before the commit.
  • Scope to the files the authoring pass touched. Do not widen to the rest of the branch. If other files changed earlier and also want review, say so and let the user ask.

© langchain-ai, 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/docs-review of langchain-ai/docs.

Open the folder on GitHubat commit be3028f

Compare with similar skills

Docs Review 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 Review compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Docs Review this skilllangchain-ai/docs426—~2.9kAutomated safety check: PassMIT
Korean Commit Message Polisherepoko77-ai/im-not-ai5.9k—~504Automated safety check: PassMIT
Aboutsecurity Content Ingestionwgpsec/AboutSecurity1.8k—~1.4kAutomated safety check: PassNone
Product Update LoggerVarnan-Tech/opendirectory674—~3.9kAutomated safety check: PassMIT
Os Big Picturekharmanskyi/open-steps1.3k—~1.9kAutomated safety check: PassMIT
NeMo Curator Docs MaintenanceNVIDIA-NeMo/Curator1.8k—~4.3kAutomated safety check: PassApache-2.0

Similar skills

  • Korean Commit Message Polisher

    epoko77-ai/im-not-ai

    Rewrites Korean commit messages that read like office jargon or translation into natural wording, leaving the type, scope and meaning untouched.

    5.9k GitHub stars~504 tokensUpdated 13 days ago
    Writing & ContentAuto-check passed
  • A skill your agent uses whenever the user asks to add, absorb, migrate, port, update, merge, compare, or extract security knowledge into the AboutSecurity repository from any external resource such…

    1.8k GitHub stars~1.4k tokensUpdated yesterday
    Writing & ContentAuto-check passed
  • Product Update Logger

    Varnan-Tech/opendirectory

    Tell the skill what your product shipped. An agent skill from Varnan-Tech/opendirectory.

    674 GitHub stars~3.9k tokensUpdated 1 mo ago
    Writing & ContentAuto-check passed
  • Os Big Picture

    kharmanskyi/open-steps

    ALWAYS invoke this skill when the user asks where the project as a whole stands - "where are we", "what's the big picture", "what have we built", "what is in this project", "map the project", "what…

    1.3k GitHub stars~1.9k tokensUpdated 4 days ago
    Writing & ContentAuto-check passed
  • Adds, updates, moves and removes pages on the NeMo Curator Fern documentation site, keeping navigation entries, links and redirects in step.

    1.8k GitHub stars~4.3k tokensUpdated yesterday
    DevelopmentAuto-check passed
  • Translate Language

    pancakeswap/pancake-document

    Translate the PancakeSwap GitBook docs into one supported language, using the en branch as the source of truth.

    124 GitHub stars~1.9k tokensUpdated 2 days ago
    Writing & ContentAuto-check passed

More from langchain-ai/docs

All 17 skills in this repo
  • Add Docs Page

    langchain-ai/docs

    Official

    Add, move, rename, or delete a page on the LangChain docs site.

    426 GitHub stars~2k tokensUpdated today
    Auto-check passed
  • Deep Agents

    langchain-ai/docs

    Official

    Build batteries-included agents with planning, context management, subagent delegation, and sandboxed execution.

    426 GitHub stars~1.1k tokensUpdated today
    Auto-check passed
  • Docs Code Samples

    langchain-ai/docs

    Official

    A skill your agent uses when migrating inline code samples from LangChain docs (MDX files) into external, testable code files that are extracted by this repo’s snippet scripts and used as Mintlify…

    426 GitHub stars~4.6k tokensUpdated today
    Auto-check passed
  • Docs Edit

    langchain-ai/docs

    Official

    Edit a docs page that already has an open pull request, or revise a page in place.

    426 GitHub stars~1.9k tokensUpdated today
    Auto-check passed
  • Docs Restructure

    langchain-ai/docs

    Official

    Restructure documentation that spans several pages. An agent skill from langchain-ai/docs.

    426 GitHub stars~1.7k tokensUpdated today
    Auto-check passed
  • Docs Team Voice

    langchain-ai/docs

    Official

    Write or revise documentation prose so it reads like the rest of this site, in the docs team's shared voice.

    426 GitHub stars~1.5k tokensUpdated today
    Auto-check passed

Works with

Questions about Docs Review

What does Docs Review do?

Review changed docs prose against Vale and the AGENTS.md style guide, reporting findings with the rule each one breaks. Docs Review is an agent skill from langchain-ai/docs, published by the product's own GitHub organization.md style guide, reporting findings with the rule each one breaks.

When should I use Docs Review?

Docs Review fits situations like: writing & Content work in your project.

How do I install Docs Review in Claude Code?

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

How do I install Docs Review in Codex?

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

Can I use Docs Review 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 langchain-ai/docs --skill docs-review -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-review, .gemini/skills/docs-review, .github/skills/docs-review and .opencode/skills/docs-review in your project.

What does Docs Review need to run?

Going by SKILL.md and its folder, Docs Review needs the command-line tools its instructions call (git, make and gh). Its frontmatter pre-approves these tools: Bash(git:*), Bash(gh pr:*), Bash(gh api:*), Bash(make lint_prose:*), Read, Grep, Glob.

Does Docs Review access the network?

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

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

Docs Review is published under the MIT licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Docs Review use?

About 2.9k tokens (SKILL.md is roughly 12k 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 Review?

Skills that share tags, products or a category with Docs Review: Korean Commit Message Polisher (epoko77-ai/im-not-ai, 5.9k stars), Aboutsecurity Content Ingestion (wgpsec/AboutSecurity, 1.8k stars), Product Update Logger (Varnan-Tech/opendirectory, 674 stars) and Os Big Picture (kharmanskyi/open-steps, 1.3k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Docs Review?

langchain-ai (a GitHub organization, an official publisher) maintains it in langchain-ai/docs, which has 426 GitHub stars. The repository holds 17 skills in this directory. The repository was last updated on October 9, 2026.

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