Official agent skill

Review Docs

by JetBrains in JetBrains/youtrackdb

Review documentation files for grammar, factual accuracy, and query correctness.

OfficialApache-2.0Auto-check passedDatabases

Install Review Docs

skills CLI
$ npx skills add JetBrains/youtrackdb --skill review-docs -a claude-code

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

GitHub CLI
$ gh skill install JetBrains/youtrackdb review-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/JetBrains/youtrackdb.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/review-docs .claude/skills/review-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
review-docs
GitHub stars
439
Token cost
~3k tokens
SKILL.md length
1,224 words
Files
1
Skills in repo
16
Repo updated
First seen
Licence
Apache-2.0

At a glance

Review documentation files for grammar, factual accuracy, and query correctness.

  • Works in 10 steps: Discover target files → Grammar and style review (per file) → Link and reference validation (per file) → …
  • The user asks to review docs
  • SKILL.md covers Scope, Workflow and Important notes
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

Review Docs is an agent skill from JetBrains/youtrackdb, published by the product's own GitHub organization. Review documentation files for grammar, factual accuracy, and query correctness. Use when the user asks to review docs, validate documentation, or check YQL examples. Accepts a path to a file or directory as argument.

Its SKILL.md is about 3k 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 Databases. The repository describes itself as: YouTrackDB is a general-use object-oriented graph database with storage format native to handle graph relations. YouTrackDB supports Gremlin queries and ACID transactions. YTDB… The licence is Apache-2.0.

When your agent uses it

  • The user asks to review docs
  • Validate documentation
  • Check YQL examples

Example prompts

  • “/review-docs”

Workflow steps

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

  1. Discover target files
  2. Grammar and style review (per file)
  3. Link and reference validation (per file)
  4. Factual claim extraction
  5. Query extraction
  6. Build validation test
  7. Run validation
  8. Produce review report
  9. Apply fixes
  10. Verify test class

What it can do on your machine

Read from SKILL.md and the folder at commit 5cd02fb. 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 java and bash).

    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

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

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

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 JetBrains/youtrackdb at commit 5cd02fb, republished under its Apache-2.0 licence (© JetBrains). 1,224 words, ~2,990 tokens.

Download SKILL.mdSave it as .claude/skills/review-docs/SKILL.md (or your agent's skills folder).
name
review-docs
description
Review documentation files for grammar, factual accuracy, and query correctness. Use when the user asks to review docs, validate documentation, or check YQL examples. Accepts a path to a file or directory as argument.
user-invocable
true

Review documentation files for grammar, factual accuracy, and query correctness.

The user will provide a path to a single document or a folder containing documents. Use $ARGUMENTS as the target path. If no argument is provided, ask the user for the path.

Scope

This command reviews Markdown documentation files (.md) covering:

  1. Grammar and style — punctuation, spelling, word choice, hyphenation, sentence structure
  2. Factual claims — verify statements about database behavior against the actual codebase
  3. Query correctness — validate all YQL/SQL code examples by executing them on a real in-memory database
  4. Internal consistency — cross-reference links, terminology, and naming conventions within and across documents
  5. Code example formatting — verify code blocks have correct language tags, consistent style

Workflow

Step 1: Discover target files
  1. If $ARGUMENTS points to a single .md file, review that file.
  2. If $ARGUMENTS points to a directory, discover all .md files in it recursively using Glob.
  3. Read each file and build a review queue.
Step 2: Grammar and style review (per file)

For each document, check for:

  • Punctuation: missing commas after introductory phrases ("For this reason,"), before conjunctions in compound sentences, around parenthetical clauses.
  • Spelling: typos, common misspellings (e.g., "straight forward" -> "straightforward").
  • Hyphenation: compound adjectives before nouns need hyphens (e.g., "case-insensitive", "not-indexed").
  • Word choice: awkward phrasing (e.g., "suggest to use" -> "suggest using", "look to" -> "refer to").
  • Consistency: same terms spelled/capitalized the same way throughout. Check YouTrackDB, YQL, class names, etc.
  • Formatting: extra spaces before colons/punctuation, double spaces, inconsistent heading levels.
  • Code block language tags: ensure ```sql, ```java, etc. are present and correct.

Produce a table of findings per file: line number, issue, suggested fix.

  1. Extract all Markdown links [text](target) and anchor links [text](#anchor).
  2. For file links (e.g., YQL-Where.md), check if the referenced file exists relative to the document using Glob. Report missing files but do not block the review — flag them as warnings.
  3. For anchor links, check if the referenced heading exists in the target file.
  4. Check for inconsistent link targets (e.g., a file linked as both SQL-Syntax.md and YQL-Syntax.md when only one exists).
Step 4: Factual claim extraction

Read through each document and extract all verifiable factual claims about YouTrackDB / YQL behavior. Examples:

  • "Keywords and class names are case-insensitive"
  • "Field names and values are case-sensitive"
  • "YouTrackDB does not support the HAVING keyword"
  • "YouTrackDB allows only one class as the target"
  • "The YQL engine automatically recognizes if any indexes can be used"

For each claim, note the file, line number, and the exact claim text.

Step 5: Query extraction

Extract all YQL/SQL code examples from fenced code blocks (```sql sections). For each query, note:

  • The file and line number
  • Whether it is a YouTrackDB YQL query or a standard SQL example (for comparison only)
  • Whether it should succeed or fail (some examples demonstrate unsupported syntax)
Step 6: Build validation test

Add new test methods to the persistent DocValidationTest class (core/src/test/java/com/jetbrains/youtrackdb/internal/core/sql/DocValidationTest.java) that validate extracted queries and factual claims against a real in-memory YouTrackDB instance using the Gremlin API with yql() methods. If the test class does not exist yet, create it with the following pattern:

java
package com.jetbrains.youtrackdb.internal.core.sql;

import static org.assertj.core.api.Assertions.assertThat;
import static org.assertj.core.api.Assertions.assertThatThrownBy;

import com.jetbrains.youtrackdb.api.DatabaseType;
import com.jetbrains.youtrackdb.api.YouTrackDB;
import com.jetbrains.youtrackdb.api.YourTracks;
import com.jetbrains.youtrackdb.api.gremlin.YTDBGraphTraversalSource;
import java.nio.file.Path;
import org.junit.After;
import org.junit.AfterClass;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;

public class DocValidationTest {
  private static YouTrackDB youTrackDB;
  private static Path dbPath;
  private YTDBGraphTraversalSource g;

  @BeforeClass
  public static void setUpClass() throws Exception {
    dbPath = Path.of(System.getProperty("java.io.tmpdir"), "doc-validation-test");
    youTrackDB = YourTracks.instance(dbPath.toString());
    youTrackDB.create("test", DatabaseType.MEMORY, "admin", "admin", "admin");
  }

  @AfterClass
  public static void tearDownClass() {
    youTrackDB.close();
  }

  @Before
  public void setUp() {
    g = youTrackDB.openTraversal("test", "admin", "admin");
  }

  @After
  public void tearDown() {
    g.close();
  }
}

CRITICAL: Only use the public Gremlin API. The test class lives in com.jetbrains.youtrackdb.internal.core.sql for organizational reasons (it is in the core module's test tree), but it must only import from com.jetbrains.youtrackdb.api.* and standard TinkerPop packages (org.apache.tinkerpop.gremlin.*). Never import internal classes like DatabaseSessionEmbedded, YouTrackDBImpl, DbTestBase, or anything else under com.jetbrains.youtrackdb.internal.

Key patterns for writing tests:

  • Schema commands (CREATE CLASS, CREATE PROPERTY, CREATE INDEX) run outside transactions using g.command(): g.command("CREATE CLASS Foo EXTENDS V") — always use EXTENDS V (vertex) or EXTENDS E (edge) so results are compatible with the Gremlin result mapper.
  • Creating data — use CREATE VERTEX (not INSERT INTO) inside transactions:
    java
    g.executeInTx(tx -> {
      tx.yql("CREATE VERTEX Foo SET name = 'bar'").iterate();
    });
  • Updating data — use UPDATE inside transactions via yql().iterate():
    java
    g.executeInTx(tx -> {
      tx.yql("UPDATE Foo SET name = 'baz' WHERE name = 'bar'").iterate();
    });
  • Querying data — use SELECT inside transactions via g.computeInTx():
    java
    var results = g.computeInTx(tx -> tx.yql("SELECT FROM Foo").toList());
    assertThat(results).isNotEmpty();
    Results from SELECT on vertex classes are Vertex objects — cast and use .value("prop"):
    java
    Vertex v = (Vertex) results.get(0);
    assertThat((String) v.value("name")).isEqualTo("baz");
  • Queries that should fail (unsupported syntax): wrap in assertThatThrownBy:
    java
    assertThatThrownBy(() -> g.executeInTx(tx -> {
      tx.yql("BAD QUERY").iterate();
    }));
  • The yql() method returns a lazy YTDBGraphTraversal — always call .iterate() or .toList() to execute it.
  • The command() method executes eagerly — no need to call .iterate(). However, command() internally iterates results through the Gremlin result mapper, which only supports vertices and stateful edges. Therefore, only use command() for DDL (CREATE CLASS, CREATE PROPERTY, CREATE INDEX) — never for INSERT, UPDATE, or DELETE.
  • Parameterized queries: use alternating key/value pairs: tx.yql("SELECT FROM Foo WHERE name = :name", "name", "bar")
Show full SKILL.md (503 more words)Show less
Gremlin API limitations to be aware of

These limitations affect what can be validated through the public API:

  1. All classes must extend V or E — the Gremlin result mapper (GremlinResultMapper) only supports vertices and stateful edges. SELECT on a plain class (not extending V/E) will throw IllegalStateException: Only vertices and stateful edges are supported in Gremlin results. If a document example uses a plain class, create it with EXTENDS V for testing purposes.
  2. Use yql().iterate() for UPDATE/INSERT — never use command() for data mutation commands, as it will fail when the result mapper tries to process the non-vertex result.
  3. RETURN AFTER on UPDATE — use tx.yql("UPDATE ... RETURN AFTER @this").toList() to collect results. The results are vertex objects when the target class extends V.

Group tests by document section. Each test method should have a comment referencing the document claim it validates.

Step 7: Run validation
  1. Run the test class:
    bash
    ./mvnw -pl core clean test -Dtest=DocValidationTest
  2. If Spotless formatting fails, fix it first:
    bash
    ./mvnw -pl core spotless:apply
  3. If tests fail, analyze each failure:
    • Parse error on a query the doc says should work -> the document has a query bug. Flag it.
    • Query succeeds but the doc says it should fail -> the document claim is wrong. Flag it.
    • Wrong result count or values -> the document example may be misleading. Flag it.
    • Compilation error -> fix the test code and re-run.
Step 8: Produce review report

After all checks complete, present a consolidated report to the user:

## Documentation Review: <path>

### Grammar & Style
| File | Line | Issue | Suggested Fix |
|------|------|-------|---------------|
| ... | ... | ... | ... |

### Link Validation
| File | Line | Link Target | Status |
|------|------|-------------|--------|
| ... | ... | ... | Missing / OK |

### Factual Claims
| File | Line | Claim | Verified | Notes |
|------|------|-------|----------|-------|
| ... | ... | ... | Yes/No | ... |

### Query Validation
| File | Line | Query | Expected | Result | Notes |
|------|------|-------|----------|--------|-------|
| ... | ... | ... | Success/Fail | Pass/Fail | ... |

### Summary
- Total files reviewed: N
- Grammar issues found: N
- Broken links: N
- Factual claims verified: N/N
- Queries validated: N/N
Step 9: Apply fixes

Ask the user whether to:

  1. Apply grammar fixes — edit the documents directly using the Edit tool.
  2. Flag query/factual issues only — report without changing files (the user may want to rewrite sections).
  3. Apply all fixes — grammar fixes + rewrite incorrect queries/claims.
Step 10: Verify test class

After the review is complete:

  1. Keep the DocValidationTest class — it serves as a living validation of documentation examples.
  2. Ensure all new test methods were added and pass: ./mvnw -pl core clean test -Dtest=DocValidationTest
  3. Run Spotless to ensure formatting: ./mvnw -pl core spotless:apply

Important notes

  • Never modify the test infrastructure — only add methods to DocValidationTest.
  • The core module uses JUnit 4 (not JUnit 5). Use @Test, @Before, @After, @BeforeClass, @AfterClass from org.junit.
  • Always run spotless:apply before running tests if the test class is new.
  • When validating queries, create unique class names per test to avoid collisions (e.g., CityDistinct, EmpSalary).
  • Standard SQL examples shown for comparison (e.g., JOIN syntax) should NOT be executed — they are expected to be invalid in YouTrackDB.
  • If a document references files that don't exist yet, flag them as warnings but don't fail the review.
  • Use yql() for YQL queries — the yql() method on YTDBGraphTraversalSourceDSL returns a lazy traversal; always terminate with .iterate() or .toList().
  • Use command() for schema DDL — command() executes eagerly and is appropriate for CREATE CLASS, CREATE PROPERTY, CREATE INDEX, etc.
  • Transaction helpers: Use g.executeInTx() for side-effecting operations, g.computeInTx() when you need a return value, and g.autoExecuteInTx() when returning a traversal that should be auto-iterated.

© JetBrains, Apache-2.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/review-docs of JetBrains/youtrackdb.

Open the folder on GitHubat commit 5cd02fb

Compare with similar skills

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

Review Docs compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Review Docs this skillJetBrains/youtrackdb439—~3kAutomated safety check: PassApache-2.0
Keeper Stress AnalysisClickHouse/ClickHouse50k—~4.7kAutomated safety check: PassApache-2.0
Perf ComparisonClickHouse/ClickHouse50k—~3.9kAutomated safety check: NotesApache-2.0
Patch Release CheckClickHouse/ClickHouse50k—~4kAutomated safety check: NotesApache-2.0
Evolving The Data ModelTriliumNext/Trilium38k—~2.1kAutomated safety check: PassAGPL-3.0
Hybrid Cloud Outboxesgetsentry/sentry46k—~4.8kAutomated safety check: PassCustom licence

Similar skills

  • Keeper Stress Analysis

    ClickHouse/ClickHouse

    Analyze ClickHouse Keeper stress-test results from play.clickhouse.com / keeperstresstests data warehouse.

    50k GitHub stars~4.7k tokensUpdated today
    DatabasesAuto-check passed
  • Perf Comparison

    ClickHouse/ClickHouse

    Evaluate ClickHouse performance test results from existing CI/dashboard data or local perf.py runs.

    50k GitHub stars~3.9k tokensUpdated today
    DatabasesAuto-check: notes
  • Patch Release Check

    ClickHouse/ClickHouse

    Check whether ClickHouse's supported versions (last 3 majors + latest LTS) have recent stable patch releases, diagnose why the scheduled AutoReleases pipeline failed, and identify which releases…

    50k GitHub stars~4k tokensUpdated today
    DatabasesAuto-check: notes
  • Evolving The Data Model

    TriliumNext/Trilium

    A skill your agent uses when adding a DB migration or a new column/field to a Becca entity in Trilium ("add a migration", "new column on notes/attributes", "ALTER TABLE", "add a field to…

    38k GitHub stars~2.1k tokensUpdated today
    DatabasesAuto-check passed
  • Hybrid Cloud Outboxes

    getsentry/sentry

    Official

    Guide for creating and maintaining outbox-based eventually consistent operations in Sentry.

    46k GitHub stars~4.8k tokensUpdated today
    DatabasesAuto-check passed
  • Adaptive Spin Wait

    microsoft/garnet

    Official

    Selects Garnet spin-wait policies based on the slow-path cost.

    12k GitHub stars~1k tokensUpdated today
    DatabasesAuto-check passed

More from JetBrains/youtrackdb

All 16 skills in this repo
  • Readability Feedback

    JetBrains/youtrackdb

    Official

    Audit a finished design document for hard-to-read or hard-to-understand paragraphs, then harden the house-style rules so future design docs avoid them.

    439 GitHub stars~2.3k tokensUpdated yesterday
    Auto-check passed
  • Edit Design

    JetBrains/youtrackdb

    Official

    Apply an edit to design.md or design-mechanics.md through the mutation discipline: apply → auto-review → iterate → present.

    439 GitHub stars~21k tokensUpdated yesterday
    Auto-check passed
  • Migrate Workflow

    JetBrains/youtrackdb

    Official

    Migrate a branch's docs/adr/<dir/workflow/ artifacts by replaying workflow-format commits from the per-artifact stamp base through HEAD.

    439 GitHub stars~12k tokensUpdated yesterday
    Auto-check passed
  • Run Jmh Benchmarks Hetzner

    JetBrains/youtrackdb

    Official

    Provision a Hetzner CCX33 server, deploy the project, run JMH benchmarks, collect results, and destroy the server.

    439 GitHub stars~3.7k tokensUpdated yesterday
    Auto-check: warnings
  • Review Workflow PR

    JetBrains/youtrackdb

    Official

    Review a workflow-style PR's design, plan, and track files in research-mode Q&A; auto-records observations and submits a line-anchored review via gh api.

    439 GitHub stars~11k tokensUpdated yesterday
    Auto-check passed
  • AI Tells

    JetBrains/youtrackdb

    Official

    Reviews any draft for AI writing tells and produces a clean rewrite.

    439 GitHub stars~1.1k tokensUpdated yesterday
    Auto-check passed

Categories

Questions about Review Docs

What does Review Docs do?

Review documentation files for grammar, factual accuracy, and query correctness. Review Docs is an agent skill from JetBrains/youtrackdb, published by the product's own GitHub organization. Review documentation files for grammar, factual accuracy, and query correctness.

When should I use Review Docs?

Review Docs fits situations like: the user asks to review docs; validate documentation; check YQL examples.

How do I install Review Docs in Claude Code?

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

How do I install Review Docs in Codex?

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

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

What does Review Docs need to run?

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

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

Review Docs is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Review Docs use?

About 3k 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 Review Docs?

Skills that share tags, products or a category with Review Docs: Keeper Stress Analysis (ClickHouse/ClickHouse, 50k stars), Perf Comparison (ClickHouse/ClickHouse, 50k stars), Patch Release Check (ClickHouse/ClickHouse, 50k stars) and Evolving The Data Model (TriliumNext/Trilium, 38k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Review Docs?

JetBrains (a GitHub organization, an official publisher) maintains it in JetBrains/youtrackdb, which has 439 GitHub stars. The repository holds 16 skills in this directory. The repository was last updated on October 8, 2026.

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