PR Babysitter
openinterpreter/openinterpreter
Watches an open GitHub pull request until it merges, handling review comments, diagnosing CI failures and retrying flaky checks along the way.
Review code, test, and workflow-machinery changes across multiple dimensions using specialized agents with triage-based selection.
$ npx skills add JetBrains/youtrackdb --skill code-review -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install JetBrains/youtrackdb code-review --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/JetBrains/youtrackdb.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/code-review .claude/skills/code-review && 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 "code-review" agent skill from https://github.com/JetBrains/youtrackdb/tree/develop/.claude/skills/code-review into .claude/skills/code-review/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "code-review", 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/JetBrains/youtrackdb/tree/develop/.claude/skills/code-reviewType 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 JetBrains/youtrackdb --skill code-review -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install JetBrains/youtrackdb code-review --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/JetBrains/youtrackdb.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.claude/skills/code-review .agents/skills/code-review && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "code-review" agent skill from https://github.com/JetBrains/youtrackdb/tree/develop/.claude/skills/code-review into .agents/skills/code-review/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "code-review", 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 JetBrains/youtrackdb --skill code-review -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install JetBrains/youtrackdb code-review --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/JetBrains/youtrackdb.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.claude/skills/code-review .cursor/skills/code-review && 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 "code-review" agent skill from https://github.com/JetBrains/youtrackdb/tree/develop/.claude/skills/code-review into .cursor/skills/code-review/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "code-review", 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/JetBrains/youtrackdb.git --path .claude/skills/code-review--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 JetBrains/youtrackdb --skill code-review -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install JetBrains/youtrackdb code-review --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/JetBrains/youtrackdb.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.claude/skills/code-review .gemini/skills/code-review && 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 "code-review" agent skill from https://github.com/JetBrains/youtrackdb/tree/develop/.claude/skills/code-review into .gemini/skills/code-review/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "code-review", 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 JetBrains/youtrackdb code-reviewInstalls 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 JetBrains/youtrackdb --skill code-review -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/JetBrains/youtrackdb.git skills-src && mkdir -p .github/skills && cp -r skills-src/.claude/skills/code-review .github/skills/code-review && 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 "code-review" agent skill from https://github.com/JetBrains/youtrackdb/tree/develop/.claude/skills/code-review into .github/skills/code-review/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "code-review", 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 JetBrains/youtrackdb --skill code-review -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install JetBrains/youtrackdb code-review --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/JetBrains/youtrackdb.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.claude/skills/code-review .opencode/skills/code-review && 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 "code-review" agent skill from https://github.com/JetBrains/youtrackdb/tree/develop/.claude/skills/code-review into .opencode/skills/code-review/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "code-review", 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.
code-reviewReview code, test, and workflow-machinery changes across multiple dimensions using specialized agents with triage-based selection.
Code Review is an agent skill from JetBrains/youtrackdb, published by the product's own GitHub organization. Review code, test, and workflow-machinery changes across multiple dimensions using specialized agents with triage-based selection.
Its SKILL.md is about 9.6k 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 Development, covering Code review. 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.
7 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 94c4ac0. 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:
gitghFrom 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.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.
Code Review loads about 9.6k tokens when it runs. Until then it costs about 36 tokens; SKILL.md has 3,767 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 JetBrains/youtrackdb at commit 94c4ac0, republished under its Apache-2.0 licence (© JetBrains). 3,767 words, ~9,563 tokens.
.claude/skills/code-review/SKILL.md (or your agent's skills folder).When you Read any file under .claude/workflow/ or .claude/skills/, follow the protocol in conventions.md §1.8:
<!--Document index start--> to <!--Document index end--> (read to the closing delimiter, not a fixed line count). If the file has no TOC region (a file whose only ## heading is this bootstrap block carries none, per §1.8(d)), read the file in full.any, or the row's Roles is any) AND Phases contains any of your phases (or your phase is any, or the row's Phases is any).Read(offset, limit) to read only matched sections; if no row matches your role/phase, the file holds nothing for you — do not read further.Your role: orchestrator. Your phase: 3B or 3C (the review phase that invoked this skill).
Inline refs you find inside workflow files carry the same name:roles:phases suffix; apply file-level filtering before opening: a ref matches when any of your roles is in its roles and any of your phases is in its phases, your own any on either axis matches every ref on that axis, and a ref whose own roles or phases is any matches you. Backtick-wrapped refs carry no suffix; open or skip them at your discretion.
<!--Document index start-->
| Section | Roles | Phases | Summary |
|---|---|---|---|
| §Step 1: Determine what to review | orchestrator | 3B,3C | Resolve the review target from the argument or, when empty, from the branch's PR or its commits ahead of develop. |
§If $ARGUMENTS is provided: | orchestrator | 3B,3C | Six argument shapes: branch, commit range, last-N-commits, uncommitted, PR ref, or an unparseable input. |
§If $ARGUMENTS is empty: | orchestrator | 3B,3C | Fall back to the branch's open PR, then to commits ahead of develop, then ask the user when neither resolves. |
| §Step 2: Detect the base branch | orchestrator | 3B,3C | Pick the comparison base: a PR's baseRefName, develop for a bare branch, or none for a range or uncommitted review. |
| §Step 3: Gather the review context | orchestrator | 3B,3C | Collect changed files and commit log, and write the full diff to a unique /tmp file each agent reads on demand. |
| §For branch or PR review: | orchestrator | 3B,3C | The git diff and log commands that build the changed-file list, diff file, and commit log for a branch or PR target. |
| §For commit range: | orchestrator | 3B,3C | The git diff and log commands for a commit-range review target. |
| §For uncommitted changes: | orchestrator | 3B,3C | The git diff commands for an uncommitted-changes target, with the no-commit-history sentinel for the log. |
| §PR description (if available): | orchestrator | 3B,3C | The gh command that reads the PR body for context, when a PR is associated with the target. |
| §Step 4: Filter non-reviewable files | orchestrator | 3B,3C | List the generated-code paths to skip and pass the filter note to every dispatched agent. |
| §Step 5: Triage — categorize changes and select relevant agents | orchestrator | 3B,3C | Categorize each changed file, map categories to review agents, and log the triage decision before dispatch. |
| §5a: Categorize each changed file | orchestrator | 3B,3C | The category table mapping file signals to domains; a file may carry several categories. |
| §5b: Map categories to agents | orchestrator | 3B,3C | Launch rules for the 16 review agents across code, test, and workflow groups, keyed on detected categories. |
| §5c: Log your triage decision | orchestrator | 3B,3C | Print the triage summary naming detected categories, selected agents, and skipped agents before launching. |
| §5d: Edge cases | orchestrator | 3B,3C | Last-matching-row resolution for category combinations: workflow-only, docs-only, build-config, tests, mixed. |
| §Step 6: Dispatch selected review agents | orchestrator | 3B,3C | Launch selected agents in parallel with a scope-filtered file list and the group-specific prompt template. |
| §Prompt template — code-review and test-review groups | orchestrator | 3B,3C | The prompt body for the code and test review groups, including the PSI-over-grep tooling rule for Java symbols. |
| §Prompt template — workflow-review group | orchestrator | 3B,3C | The prompt body for the workflow-review group, noting PSI does not apply to markdown, shell, and JSON files. |
| §Handling missing fields | orchestrator | 3B,3C | Treat the missing-PR and uncommitted sentinels as no signal; do not infer requirements from their absence. |
| §Step 7: Synthesize the results | orchestrator | 3B,3C | Map sub-agent severities, deduplicate, attribute, and summarize into one unified report, not a concatenation. |
| §Handling agent failures and empty output | orchestrator | 3B,3C | Record failed reviewers, propagate preface notes, emit All clear when empty, and remove the temp diff file. |
| §Output format | orchestrator | 3B,3C | The synthesized report layout: failed reviewers, assessment, blockers, should-fix, suggestions, notes, and questions. |
| §Important rules | orchestrator | 3B,3C | Standing rules: gh CLI for GitHub, parallel dispatch, no self-added findings, no severity softening, large-diff abort. |
<!--Document index end-->
Review code, test, and workflow-machinery changes across multiple dimensions by dispatching to specialized review agents and synthesizing their findings. Production code, test code, and workflow files (skills, agents, hooks, settings, prompts, CLAUDE.md, plan/design artifacts) are reviewed in one pass with triage-driven agent selection.
Use $ARGUMENTS as the review target if provided (branch name, commit range, or "uncommitted").
<!-- roles=orchestrator phases=3B,3C summary="Resolve the review target from the argument or, when empty, from the branch's PR or its commits ahead of develop." -->
$ARGUMENTS is provided:<!-- roles=orchestrator phases=3B,3C summary="Six argument shapes: branch, commit range, last-N-commits, uncommitted, PR ref, or an unparseable input." -->
ytdb-605-unified-edges): Review all changes on that branch that are absent from the base branch.abc123..def456): Review that specific range.last 3 commits): Review HEAD~N...HEAD.git diff HEAD).#42 or https://github.com/.../pull/42): Fetch PR details and review its diff.$ARGUMENTS is empty:<!-- roles=orchestrator phases=3B,3C summary="Fall back to the branch's open PR, then to commits ahead of develop, then ask the user when neither resolves." -->
gh pr list --head $(git branch --show-current) --json number,title,body,baseRefName,url --limit 1develop:git log develop..HEAD --onelinedevelop, review those.develop or has no commits ahead, ask the user what to review. Treat the user's reply as if it were $ARGUMENTS and restart Step 1.<!-- roles=orchestrator phases=3B,3C summary="Pick the comparison base: a PR's baseRefName, develop for a bare branch, or none for a range or uncommitted review." -->
The base branch determines what "new changes" means:
baseRefName (fetched via gh pr view).develop.<!-- roles=orchestrator phases=3B,3C summary="Collect changed files and commit log, and write the full diff to a unique /tmp file each agent reads on demand." -->
Based on the review mode, collect the changed-file list and commit log inline, but write the full diff to a temp file so each agent can Read it on demand instead of receiving it interpolated into its prompt. This keeps per-agent prompt size bounded and removes the diff-size ceiling that inline interpolation would impose.
Use a unique /tmp filename to avoid collisions with concurrent Claude Code agents on the same host (per the user-global rule). Generate the suffix once and reuse it for the whole dispatch:
# Generate a unique suffix for this review's temp file
DIFF_FILE=/tmp/claude-code-review-diff-$$.txt # or use $(uuidgen)<!-- roles=orchestrator phases=3B,3C summary="The git diff and log commands that build the changed-file list, diff file, and commit log for a branch or PR target." -->
git diff {base}...HEAD --name-only # → CHANGED_FILES
git diff {base}...HEAD > "$DIFF_FILE" # → DIFF_FILE
git log {base}..HEAD --oneline # → COMMIT_LOG<!-- roles=orchestrator phases=3B,3C summary="The git diff and log commands for a commit-range review target." -->
git diff {start}..{end} --name-only # → CHANGED_FILES
git diff {start}..{end} > "$DIFF_FILE" # → DIFF_FILE
git log {start}..{end} --oneline # → COMMIT_LOG<!-- roles=orchestrator phases=3B,3C summary="The git diff commands for an uncommitted-changes target, with the no-commit-history sentinel for the log." -->
git diff HEAD --name-only # → CHANGED_FILES
git diff HEAD > "$DIFF_FILE" # → DIFF_FILEFor uncommitted changes there is no commit log; set COMMIT_LOG to the literal sentinel "(uncommitted changes — no commit history)".
<!-- roles=orchestrator phases=3B,3C summary="The gh command that reads the PR body for context, when a PR is associated with the target." -->
gh pr view {number} --json body --jq '.body'Store the collected context:
DIFF_FILE — absolute path to the temp file containing the full diff (e.g., /tmp/claude-code-review-diff-12345.txt). Each agent reads this file via the Read tool.CHANGED_FILES — the list of changed file pathsCOMMIT_LOG — the commit history, or the uncommitted-changes sentinel abovePR_DESCRIPTION — the PR body text, or the literal string "No PR associated with these changes." if absentREVIEW_SCOPE — human-readable description of what's being reviewed (e.g., "Branch ytdb-605-unified-edges vs develop (15 commits, 23 files)")The temp file is ephemeral — remove it at the end of Step 7 (synthesis) so orphans don't accumulate. The unique suffix prevents collision with concurrent agents while the review is in flight.
<!-- roles=orchestrator phases=3B,3C summary="List the generated-code paths to skip and pass the filter note to every dispatched agent." -->
Before dispatching, note files that should be skipped:
core/src/main/java/com/jetbrains/youtrackdb/internal/core/sql/parser/generated-sources/ or generated-test-sources/Include this filter note in the context passed to agents.
<!-- roles=orchestrator phases=3B,3C summary="Categorize each changed file, map categories to review agents, and log the triage decision before dispatch." -->
Before dispatching agents, perform a quick triage pass over the entire diff (both production and test code) to determine which review dimensions are actually relevant. This avoids wasting time on agents that have nothing meaningful to review.
<!-- roles=orchestrator phases=3B,3C summary="The category table mapping file signals to domains; a file may carry several categories." -->
Scan the diff and assign one or more categories to every changed file — production code, test code, and other files alike:
| Category | Signals |
|---|---|
| storage-engine | Files in storage/, cache/, wal/, StorageComponent subclasses, page read/write logic, DiskStorage, WriteCache, ReadCache, LogSequenceNumber, double-write log |
| concurrency | synchronized, Lock, Atomic*, volatile, StampedLock, ReentrantLock, thread pools, ConcurrentHashMap, CompletableFuture, shared mutable state, @GuardedBy, ConcurrentTestHelper, CountDownLatch, CyclicBarrier |
| index-data-structures | Files in index/, B-tree, hash index, SBTree, CellBTree, histogram, IndexEngine |
| network-server | Files in server/, driver/, Gremlin Server, protocol handling, TLS/SSL, authentication, session management |
| sql-query | Files in sql/ (excluding parser/), query execution, command handlers, SELECT/INSERT/UPDATE/DELETE logic |
| gremlin | Files in gremlin/, traversal steps, YTDBGraph* classes, TinkerPop integration |
| public-api | Files in com.jetbrains.youtrackdb.api, YourTracks, YouTrackDB interface |
| serialization | Record serializers, binary format, property map encoding/decoding |
| crash-durability | WAL operations, crash simulation, durable StorageComponent recovery, page corruption handling, transaction atomicity under failure, LogSequenceNumber manipulation, double-write log, Java assert statements in production code |
| configuration | GlobalConfiguration, config parameters, system properties |
| tests-only | Changes exclusively in test files with no production code changes |
| build-config | pom.xml, CI workflows, Maven profiles, Docker configs |
| workflow-machinery | Files under .claude/ (skills, agents, hooks, scripts, settings, workflow rules, workflow prompts, output styles, docs), project root CLAUDE.md, all files under docs/adr/<dir>/ (plan/design artifacts in _workflow/ and the durable design-final.md / adr.md) |
| docs-only | Markdown documentation under docs/ excluding docs/adr/<dir>/, plus comments-only changes |
| other | Files matching no category above (e.g., .gitattributes, miscellaneous root files). Triaged as a no-op — no agents dispatch on this category. |
A file can belong to multiple categories (e.g., a lock change in storage code is both storage-engine and concurrency). Production and test files in the same domain should share the same categories. workflow-machinery is exclusive with docs-only: any file under .claude/ or docs/adr/<dir>/ is workflow-machinery; anything else under docs/ is docs-only.
<!-- roles=orchestrator phases=3B,3C summary="Launch rules for the 16 review agents across code, test, and workflow groups, keyed on detected categories." -->
There are 16 specialized review agents in three groups:
Code-review agents (review production code):
| Agent | Launch when ANY of these categories are present |
|---|---|
| review-code-quality | Always launched (unless docs-only is the ONLY category) |
| review-bugs | Always launched (unless docs-only or build-config are the ONLY categories) |
| review-concurrency | concurrency is present on any changed file |
| review-crash-safety | crash-durability |
| review-security | network-server, public-api, sql-query, serialization, configuration, OR when new dependencies are added in pom.xml |
| review-performance | storage-engine, index-data-structures, concurrency, serialization, sql-query, gremlin |
review-bugs owns every defect findable by single-threaded sequential reasoning (logic, null safety, resource leaks, RID handling, state-machine / lifecycle); review-concurrency owns every defect whose detection needs reasoning about two or more threads interleaving (races, visibility / publication, lock-ordering / deadlock, compound-op atomicity). When review-bugs, reasoning sequentially, meets concurrent-looking code that review-concurrency was not triaged onto, it emits a one-line "concurrency triage gap" note so the orchestrator can launch review-concurrency.
Test-review agents (review test quality and coverage gaps):
| Agent | Launch when |
|---|---|
| review-test-quality | Always launched (unless docs-only or build-config are the ONLY categories) |
| review-test-structure | Any test files are changed (reviews isolation, readability, setup/teardown of test code itself) |
| review-test-concurrency | concurrency is present on any changed file (production or test) |
| review-test-crash-safety | crash-durability |
review-test-quality carries both the behavior sub-protocol (whether tests verify real behavior, assertion depth) and the completeness sub-protocol (corner cases, boundary conditions); it keeps both the TB and TC finding prefixes verbatim.
Categories from both production and test code count for the test-review side — for example, if production code adds a new synchronized block but tests don't exercise threading, review-test-concurrency should still launch to flag the gap.
Workflow-review agents (review changes to the workflow machinery itself):
| Agent | Launch when |
|---|---|
| review-workflow-consistency | workflow-machinery is present — always launched for this group |
| review-workflow-prompt-design | workflow-machinery AND any changed file matches .claude/skills/*/SKILL.md, .claude/agents/*.md, or .claude/workflow/prompts/*.md |
| review-workflow-instruction-completeness | workflow-machinery AND any changed file matches .claude/skills/*/SKILL.md, .claude/agents/*.md, .claude/workflow/*.md, or .claude/workflow/prompts/*.md |
| review-workflow-hook-safety | workflow-machinery AND any changed file matches .claude/hooks/*.sh, .claude/scripts/**, or .claude/settings*.json |
| review-workflow-context-budget | workflow-machinery is present — always launched for this group. The agent decides whether the diff affects any of three axes (always-loaded surface, load-on-demand discipline, or instant per-operation consumption) and emits an empty findings list when none are affected. |
| review-workflow-writing-style | workflow-machinery AND any changed file matches .claude/**/*.md, root CLAUDE.md, or docs/adr/**/*.md |
The workflow-review agents focus on .claude/, root CLAUDE.md, and plan artifacts under docs/adr/<dir>/_workflow/. They ignore Java code changes — the code-review and test-review agents handle those.
Complexity never changes which agents this step selects. Selection is domain-only: a category is present → its agent launches, identically at every per-track complexity level. The per-track complexity tag (read by the workflow's Phase-C callers, not by this standalone skill) moves only the rigor dial — what terminates the Phase-C review-iteration loop. Blockers loop until clear at every complexity level. The should-fix depth scales with the tag: low never lets should-fix drive iteration, medium allows up to three iterations, high is uncapped. The uncapped loops terminate by no-progress detection rather than a fixed cap (see review-iteration.md § Limits and track-code-review.md § Review loop). The floor plus the domain-matched set is never suppressed by a low complexity; complexity only shortens or lengthens iteration, never drops a selected reviewer. The standalone /code-review skill takes no complexity input and always runs the domain-selected set once.
<!-- roles=orchestrator phases=3B,3C summary="Print the triage summary naming detected categories, selected agents, and skipped agents before launching." -->
Before launching agents, output a brief triage summary so the user can see the reasoning:
### Triage summary
- **Categories detected**: storage-engine, concurrency, index-data-structures
- **Code agents selected**: review-code-quality, review-bugs, review-concurrency, review-crash-safety, review-performance
- **Test agents selected**: review-test-quality, review-test-structure, review-test-concurrency, review-test-crash-safety
- **Workflow agents selected**: (none — no workflow-machinery changes)
- **Agents skipped**: review-security (no network/API/SQL/config/dependency changes)<!-- roles=orchestrator phases=3B,3C summary="Last-matching-row resolution for category combinations: workflow-only, docs-only, build-config, tests, mixed." -->
The rules below cover combinations not handled by the per-row tables above. Where a combination matches more than one row, the last matching row wins. Workflow-machinery cases are listed first because workflow-only diffs are common and short-circuit the entire code/test agent dispatch.
Staged-path normalization (run first). On a workflow-modifying plan the authored .claude/... edits live under docs/adr/<dir>/_workflow/staged-workflow/.claude/... (per §1.7) while the live tree stays at develop's state. The Step 5b workflow-review globs name live .claude/... paths, so a staged path matches none of them. Three glob-gated reviewers therefore miss and fail to launch: review-workflow-prompt-design, review-workflow-instruction-completeness, and review-workflow-hook-safety. (review-workflow-consistency and review-workflow-context-budget always run for this group; review-workflow-writing-style already fires via its docs/adr/**/*.md glob, and since its .claude/**/*.md glob also matches the normalized path, it fires regardless of which form this row is evaluated against.) Before evaluating the Step 5b per-agent triggers against the workflow-machinery subset of the diff, normalize each changed path: a path matching the anchored prefix docs/adr/<any-dir>/_workflow/staged-workflow/(\.claude/…) is replaced by its captured .claude/… remainder; the match is anchored after the docs/adr/<dir>/ head (the <dir> segment is variable). A path that does not match this exact anchored prefix passes through unchanged, including one that merely contains .claude/ lower down. A staged file then evaluates exactly as its live counterpart would, and the three glob-gated reviewers launch on the staged edit. Normalization runs ahead of the Step 5b glob match only; it does not edit the globs themselves and does not change the Step 5a file-set categorization (a staged file is already workflow-machinery by the docs/adr/<dir>/ rule).
workflow-machinery: Skip all code-review and test-review agents (no Java code or tests to evaluate). Launch the workflow-review agents selected by the workflow-side rules.docs-only and workflow-machinery (any mix): Treat as workflow-machinery-only — skip code-review and test-review agents, launch the workflow-review group on the workflow-machinery files.workflow-machinery with production-code or test categories: launch each group's agents on its in-scope files. Each group is dispatched with a pre-filtered IN_SCOPE_FILES list (see Step 6) so cross-contamination is bounded.docs-only: Skip all agents. Just report that only end-user documentation changed and no review is needed.build-config: Launch only review-code-quality (to check for misconfigurations) and review-security (to check for dependency changes). Skip all test-review and workflow-review agents.tests-only: Launch review-code-quality and review-bugs (test logic can have bugs too), plus review-concurrency if the concurrency category is present, plus the full test-review set selected by the test-side rules above.build-config and tests-only (e.g., a CI tweak plus the test it enables): Launch review-code-quality, review-security, and the full test-review set. The tests-only rule wins over build-config's "skip test-review" because the tests are the substantive change..gitattributes): assign it the other category — it does not dispatch any agent. If other is the only category present, skip all agents and report that nothing reviewable changed.<!-- roles=orchestrator phases=3B,3C summary="Launch selected agents in parallel with a scope-filtered file list and the group-specific prompt template." -->
Launch the selected agents in parallel using the Agent tool. Each agent receives a scope-filtered context: build IN_SCOPE_FILES per agent group from the triage categories assigned in Step 5a.
docs-only, workflow-machinery, or other. (Files categorized as build-config stay in scope — review-code-quality and review-security need to see pom.xml and CI changes per Step 5d.)tests-only.workflow-machinery.The IN_SCOPE_FILES list narrows the agent's focus; the full DIFF is still passed so the agent can read context lines around each change.
The Tooling section differs by group. Use the code/test variant for the code-review and test-review groups, and the workflow variant for the workflow-review group.
<!-- roles=orchestrator phases=3B,3C summary="The prompt body for the code and test review groups, including the PSI-over-grep tooling rule for Java symbols." -->
Review the following changes from your specialized perspective.
## Review Scope
{REVIEW_SCOPE}
## In-Scope Files
{IN_SCOPE_FILES}
## PR Description
{PR_DESCRIPTION}
## Commit Log
{COMMIT_LOG}
## Changed Files
{CHANGED_FILES}
## Skip These Files (generated code)
- core/src/main/java/com/jetbrains/youtrackdb/internal/core/sql/parser/*
- Any files under generated-sources/ or generated-test-sources/
- Generated Gremlin DSL classes
## Tooling
Use **mcp-steroid PSI find-usages / find-implementations / type-hierarchy
via `steroid_execute_code`, not grep**, for any reference-accuracy
question about a Java symbol in this diff (callers/overrides/usages of
a method, field, class, or annotation; whether a slot is genuinely
unused; whether a renamed symbol still has stale references; for test
review, which production methods a test exercises and where else they
are called). Grep is acceptable for filename globs, unique string
literals, and orientation reads, but the load-bearing answer behind a
finding must be PSI-backed when the mcp-steroid MCP server is
reachable per the SessionStart hook (`steroid_list_projects` once at
the start confirms the open project matches the working tree). Fall
back to grep with an explicit reference-accuracy caveat in the finding
only when mcp-steroid is unreachable. See `CLAUDE.md` § MCP Steroid →
"Grep vs PSI — when to switch" for the full routing rule.
## Diff
The full diff is at: {DIFF_FILE}
Read it with the `Read` tool before forming findings. For diffs over
2000 lines, read the file in chunks using the `offset` and `limit`
parameters. Do not infer diff content from {CHANGED_FILES} alone — the
file list does not show what changed inside each file.<!-- roles=orchestrator phases=3B,3C summary="The prompt body for the workflow-review group, noting PSI does not apply to markdown, shell, and JSON files." -->
Review the following changes from your specialized perspective.
## Review Scope
{REVIEW_SCOPE}
## In-Scope Files
{IN_SCOPE_FILES}
## PR Description
{PR_DESCRIPTION}
## Commit Log
{COMMIT_LOG}
## Changed Files
{CHANGED_FILES}
## Tooling
PSI does not apply — these are markdown, shell, and JSON files, not Java
symbols. Use `Read` on the in-scope files and on any referenced skill,
agent, hook, or output-style file. Use `Grep` for "is this string
mentioned anywhere else in the repo" questions. The Java-targeted
mcp-steroid PSI rule does not apply to workflow-machinery review.
## Diff
The full diff is at: {DIFF_FILE}
Read it with the `Read` tool before forming findings. For diffs over
2000 lines, read the file in chunks using the `offset` and `limit`
parameters.<!-- roles=orchestrator phases=3B,3C summary="Treat the missing-PR and uncommitted sentinels as no signal; do not infer requirements from their absence." -->
If PR_DESCRIPTION is the literal string "No PR associated with these changes." or COMMIT_LOG is the uncommitted-changes sentinel, treat the field as carrying no signal. Do not infer requirements from the absence.
The 16 possible agents (launch only those selected in Step 5):
Code-review agents:
Test-review agents: 7. review-test-quality — behavior-driven quality (assertion precision, exception testing) plus completeness (corner cases, boundary conditions, test data quality) 8. review-test-structure — isolation, independence, readability, documentation 9. review-test-concurrency — concurrent behavior testing quality 10. review-test-crash-safety — crash/recovery test quality, production assert statements
Workflow-review agents:
11. review-workflow-consistency — cross-file references, threshold sync, hook wiring, recipe paths, glossary drift
12. review-workflow-prompt-design — prompts-as-prompts-to-an-LLM: description discriminability, deterministic decision rules, clean-context invocation, sub-agent delegation annotations
13. review-workflow-instruction-completeness — branch coverage, gate resume paths, sub-agent input/output handshake, error recovery, loop termination
14. review-workflow-hook-safety — shell hygiene, /tmp collision safety, hook performance, secret hygiene, JSON schema validity
15. review-workflow-context-budget — always-loaded surface (descriptions, CLAUDE.md, SessionStart stdout), load-on-demand discipline, instant per-operation consumption (sub-agent delegation, output caps, /tmp staging, targeted reads)
16. review-workflow-writing-style — house-style: AI-tells, banned sentence and analysis patterns, BLUF lead, soft section length cap with template-bound exemptions, repo-anchored voice.
Set subagent_type to the agent name. The agent's frontmatter declares its model; do not override it from the dispatch call unless the user explicitly asks for a different model.
<!-- roles=orchestrator phases=3B,3C summary="Map sub-agent severities, deduplicate, attribute, and summarize into one unified report, not a concatenation." -->
After all selected agents complete, produce a unified review report. Do NOT simply concatenate the outputs. Instead:
Map sub-agent severities to synthesized severities. Most sub-agents emit findings under Critical / Recommended / Minor, but several older code-review agents use legacy scales (review-bugs and review-concurrency share one, review-crash-safety and review-security each have their own). Translate as:
Critical → blocker (all agents)Recommended → should-fix (most agents)Minor → suggestion (most agents)Likely Issues → should-fix (review-bugs, review-concurrency)Potential Concerns → suggestion (review-bugs, review-concurrency)Concerning → should-fix (review-crash-safety)Informational → suggestion (review-crash-safety)High → blocker (review-security)Medium → should-fix (review-security)Low → suggestion (review-security)Apply this mapping verbatim. The "do not soften" rule below means: do not demote a sub-agent's blocker-level finding to anything below blocker. The only legal override is promoting (e.g., raising a should-fix to blocker because another sub-agent's blocker-level finding on the same line escalates the severity).
Deduplicate. Findings merge when they share the same (file, line-range, root issue). Different review dimensions on the same line merge into one finding listing all dimensions. Different lines do not merge. Workflow-review findings on a shell or JSON file may merge with code-review findings on the same file when they describe the same root issue.
Attribute. For each finding, indicate which review dimension(s) identified it. Use a short label (e.g., [code-quality], [bugs], [concurrency], [test-quality], [test-crash-safety], [workflow-consistency], [workflow-hook-safety], [workflow-writing-style]).
Summarize. Write a brief overall assessment (2-3 sentences). Cover whichever of code, tests, and workflow machinery actually appear in the diff. Do not write about a dimension that produced no findings.
<!-- roles=orchestrator phases=3B,3C summary="Record failed reviewers, propagate preface notes, emit All clear when empty, and remove the temp diff file." -->
### Failed reviewers section at the top of the report with a one-line note and continue. Do not block the synthesis.Critical / Recommended / Minor (for example, review-workflow-context-budget emits Always-loaded delta and Instant-consumption delta tables when any axis is affected), propagate them under a ### Reviewer notes section after the severity blocks rather than dropping them silently. These preface sections are optional: review-workflow-context-budget omits them in the no-impact case, and absence is not a failure.### All clear block under the overall assessment instead of an empty report.### All clear), remove the temp diff file from Step 3: rm "$DIFF_FILE". The file is no longer needed once every sub-agent has returned.<!-- roles=orchestrator phases=3B,3C summary="The synthesized report layout: failed reviewers, assessment, blockers, should-fix, suggestions, notes, and questions." -->
## Review: {REVIEW_SCOPE}
### Failed reviewers
[Omit if none. One line per failed agent.]
### Overall assessment
[2-3 sentences. Cover whichever of code, tests, and workflow machinery
produced findings — skip the dimensions that returned clean.]
### Blockers
[Must fix before merge]
1. **[Dimension]** `path/to/file.ext` (line X-Y)
- **Issue**: ...
- **Suggestion**: ...
### Should-fix
[Should fix before merge]
1. **[Dimension]** `path/to/file.ext` (line X-Y)
- **Issue**: ...
- **Suggestion**: ...
### Suggestions
[Recommended improvements]
1. **[Dimension]** `path/to/file.ext` (line X-Y)
- **Issue**: ...
- **Suggestion**: ...
### Reviewer notes
[Agent-specific preface sections propagated verbatim. Omit if none.]
### Questions for the author
[Clarifying questions aggregated from all reviewers. Omit if none.]If a priority level has no findings, omit it entirely. If all priority levels are empty, replace them with ### All clear and a one-line note.
<!-- roles=orchestrator phases=3B,3C summary="Standing rules: gh CLI for GitHub, parallel dispatch, no self-added findings, no severity softening, large-diff abort." -->
gh CLI for GitHub API calls, not WebFetch.Critical at blocker, Recommended at should-fix, Minor at suggestion. Promotion is allowed when another sub-agent's higher-severity finding on the same line argues for it..claude/workflow/review-iteration.md).© 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
Just SKILL.md in .claude/skills/code-review of JetBrains/youtrackdb.
Open the folder on GitHubat commit 94c4ac0
Code 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.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Code Review this skillJetBrains/youtrackdb | 437 | — | ~9.6k | Automated safety check: Pass | Apache-2.0 | |
| PR Babysitteropeninterpreter/openinterpreter | 69k | 3 repos | ~4.2k | Automated safety check: Pass | Apache-2.0 | |
| Code Review ChecklistshareAI-lab/learn-claude-code | 78k | 5 repos | ~1.1k | Automated safety check: Pass | MIT | |
| Backend Code Reviewlangflow-ai/langflow | 156k | — | ~3.5k | Automated safety check: Notes | MIT | |
| Understand Diff AnalysisEgonex-AI/Understand-Anything | 86k | 1 repos | ~1.4k | Automated safety check: Pass | MIT | |
| Mole Bug Patternstw93/Mole | 70k | — | ~2k | Automated safety check: Pass | GPL-3.0 |
openinterpreter/openinterpreter
Watches an open GitHub pull request until it merges, handling review comments, diagnosing CI failures and retrying flaky checks along the way.
shareAI-lab/learn-claude-code
Reviews code against a five-part checklist covering security, correctness, performance, maintainability and testing, and reports findings in a fixed format.
langflow-ai/langflow
Review backend code for quality, security, maintainability, and best practices based on established checklist rules.
Egonex-AI/Understand-Anything
Reads your git changes or a pull request against a prebuilt knowledge graph of the project to explain what changed, which components are affected and what is risky.
tw93/Mole
A catalog of recurring bug shapes in the Mole Mac cleaner, used to review safety-sensitive diffs for deletion safety, unbounded commands, shell traps and weak tests.
langgenius/dify
Reviews backend code under api/ for concrete, reproducible defects, routes to rule packs for architecture, schema, repositories and SQLAlchemy, and ranks findings from P0 to P3.
JetBrains/youtrackdb
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.
JetBrains/youtrackdb
Review documentation files for grammar, factual accuracy, and query correctness.
JetBrains/youtrackdb
Apply an edit to design.md or design-mechanics.md through the mutation discipline: apply → auto-review → iterate → present.
JetBrains/youtrackdb
Migrate a branch's docs/adr/<dir/workflow/ artifacts by replaying workflow-format commits from the per-artifact stamp base through HEAD.
JetBrains/youtrackdb
Provision a Hetzner CCX33 server, deploy the project, run JMH benchmarks, collect results, and destroy the server.
JetBrains/youtrackdb
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.
Categories
Review code, test, and workflow-machinery changes across multiple dimensions using specialized agents with triage-based selection. Code Review is an agent skill from JetBrains/youtrackdb, published by the product's own GitHub organization. Review code, test, and workflow-machinery changes across multiple dimensions using specialized agents with triage-based selection.
Code Review fits situations like: tasks that involve Code review.
Run `npx skills add JetBrains/youtrackdb --skill code-review -a claude-code`. Or copy the skill folder (.claude/skills/code-review in JetBrains/youtrackdb) into .claude/skills/code-review in your project. Claude Code loads it when a task matches its description.
Run `npx skills add JetBrains/youtrackdb --skill code-review -a codex`. Or copy the skill folder (.claude/skills/code-review in JetBrains/youtrackdb) into .agents/skills/code-review 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 JetBrains/youtrackdb --skill code-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/code-review, .gemini/skills/code-review, .github/skills/code-review and .opencode/skills/code-review in your project.
Going by SKILL.md and its folder, Code Review needs the command-line tools its instructions call (git and gh).
SKILL.md names 1 domain. In commands or code: github.com; the agent is likely to contact it 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.
Code Review 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.
About 9.6k tokens (SKILL.md is roughly 38k 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 Code Review: PR Babysitter (openinterpreter/openinterpreter, 69k stars), Code Review Checklist (shareAI-lab/learn-claude-code, 78k stars), Backend Code Review (langflow-ai/langflow, 156k stars) and Understand Diff Analysis (Egonex-AI/Understand-Anything, 86k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
JetBrains (a GitHub organization, an official publisher) maintains it in JetBrains/youtrackdb, which has 437 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.