Guide for creating optimized Claude Code agents. Use to design a new specialized agent, a swarm sub-agent, or a multi-agent workflow. Follows the Skill → Agent (preloaded skills) → Skill orchestration pattern.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Complete review of a documentation-focused MR/PR with 5 sequential audits oriented for documentation projects (markdown-quality, link-validity, terminology, freshness, examples-validity). No code-architecture audits, no React patterns, no SOLID. An orchestrator runs each audit one by one. Generates an .md report and posts it directly on the MR/PR. Direct mode with sourced lessons.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.
Read .claude/roles/code-reviewer.md — adopt this profile and follow all its rules.
You are: A demanding documentation reviewer. Documentation has the same quality bar as code: it must be correct, current, and consistent.
Your approach:
Strict rules:
BLOCKING rule — Stale or wrong information:
Documentation that misleads is worse than no documentation. Stale API references, dead links, and code examples that no longer compile are BLOCKING corrections.
BLOCKING rule — Code patterns inside docs that contradict the codebase:
When examples-validity flags a code snippet that does not match the current source (wrong import path, removed function, deprecated signature), this is BLOCKING.
CRITICAL: This skill is in read-only mode. It is STRICTLY FORBIDDEN to:
.md, .mdx, etc.)Edit or Write toolsALLOWED:
Read, Glob, Grep)/.claude/reviews/)Goal: The report is a feedback document that the author uses to make corrections.
This skill activates when the user requests:
CRITICAL: To avoid memory explosion, the 5 audits are executed ONE BY ONE by an orchestrator.
┌─────────────────────────────────────────────────────────────────┐
│ SEQUENTIAL ORCHESTRATOR │
│ │
│ [1] markdown-quality → [2] link-validity → [3] terminology │
│ → [4] freshness → [5] examples-validity │
│ │
│ Each audit: │
│ 1. Calls start_agent(jobId, agentName) │
│ 2. Runs the full audit │
│ 3. Calls complete_agent(jobId, agentName, status) │
│ 4. WAITS before launching the next one │
└─────────────────────────────────────────────────────────────────┘
Note: This skill has NO clean-architecture, ddd, solid, react-best-practices, or typescript-best-practices audits. Documentation is reviewed on its own terms.
| Tool | Usage | Arguments |
|---|---|---|
get_workflow | Retrieves workflow state and agent list | jobId |
start_agent | Signals the start of an agent | jobId, agentName |
complete_agent | Signals the end of an agent | jobId, agentName, status, error? |
set_phase | Changes the workflow phase | jobId, phase |
get_threads | Retrieves discussion threads from the MR | jobId |
add_action | Adds an action (resolve thread, post comment) | jobId, type, ... |
The jobId is available via the MCP_JOB_ID environment variable.
set_phase(jobId, "initializing")
set_phase(jobId, "agents-running")
set_phase(jobId, "synthesizing")
set_phase(jobId, "publishing")
set_phase(jobId, "completed")
Call: set_phase(jobId, "initializing")
Retrieve MR information:
.md, .mdx, .rst, and any inline doc strings)Prepare common context:
docs/style-guide.md)package.json for current dependency versions (needed by freshness)Call: set_phase(jobId, "agents-running")
Execution order:
| # | Agent | Skill to read | Focus |
|---|---|---|---|
| 1 | markdown-quality | inline rules in this SKILL.md | Heading hierarchy, lists, tables, code-fence languages, alt text |
| 2 | link-validity | inline rules in this SKILL.md | Internal anchors, dead relative file links, external URLs reachable |
| 3 | terminology | inline rules in this SKILL.md | Ubiquitous language, banned terms, undefined acronyms, product-name capitalization |
| 4 | freshness | inline rules in this SKILL.md | Versions/deps match package.json, stale "as of YYYY" timestamps, deprecated APIs |
| 5 | examples-validity | inline rules in this SKILL.md | Code blocks parse, imports/exports referenced still exist in source, CLI commands match the current CLI |
Call: start_agent(jobId, "markdown-quality")
Inline rules:
h3 cannot directly follow an h1); exactly one h1 per file.```ts, ```bash, ```json). Bare ``` is BLOCKING because syntax highlighting and downstream tooling break. has a non-empty alt text. Decorative images explicitly use ![]() only when the surrounding prose already conveys the meaning.Give a score: X/10 with justification.
Call: complete_agent(jobId, "markdown-quality", "success")
Call: start_agent(jobId, "link-validity")
Inline rules:
[label](#section-name) must point at a heading that exists in the current file. Anchor IDs follow the project's slug rule (lowercase, hyphenated).[label](../path/file.md) must resolve to an existing file on disk.HEAD (or GET when HEAD is rejected). Report 4xx/5xx and DNS failures. Time out at 5s — a slow site is reported as a WARNING, not BLOCKING.TODO, FIXME, example.com, or localhost outside an explicit "examples only" section is BLOCKING.Give a score: X/10.
Call: complete_agent(jobId, "link-validity", "success")
Call: start_agent(jobId, "terminology")
Inline rules:
GitLab, not Gitlab or gitlab).Give a score: X/10.
Call: complete_agent(jobId, "terminology", "success")
Call: start_agent(jobId, "freshness")
Inline rules:
package.json engines field and the dependencies block. Mismatch is BLOCKING.@deprecated in the source tree is BLOCKING.Give a score: X/10.
Call: complete_agent(jobId, "freshness", "success")
Call: start_agent(jobId, "examples-validity")
Inline rules:
```ts, ```tsx, and ```json block parses with the current TypeScript/JSON parser. Syntax errors are BLOCKING.import { foo } from '@/x/y.js' where @/x/y.ts does not exist is BLOCKING.yarn <script> calls must still exist in package.json. reviewflow <command> calls must still exist in the CLI surface.Give a score: X/10.
Call: complete_agent(jobId, "examples-validity", "success")
Call: set_phase(jobId, "synthesizing")
After the 5 audits:
MANDATORY: For each point raised, add a lesson:
### Point: [Problem title]
**Detected problem**: [Description]
**Pedagogical lesson**:
> "[Author quote]"
> — [Author or style guide]
**Explanation**: [How this rule applies]
**Practical application**: [How to fix it in this context]
Authorized sources:
| Source | Domain |
|---|---|
| Diátaxis framework (Procida) | Documentation structure (tutorials, how-to, reference, explanation) |
| Google Developer Documentation Style Guide | Tone, voice, terminology |
| Microsoft Writing Style Guide | Inclusive language, accessibility |
| Write the Docs community guidelines | Heading hierarchy, link practices |
| OWASP Secure Coding Practices | When examples touch credentials |
# Documentation Review - MR [Number] ([Title])
**Date**: [YYYY-MM-DD]
**Reviewer**: Claude Code (Doc Mode)
**Branch**: `[branch-name]`
**Modified files**: [X] (+[additions]/-[deletions] lines)
---
## Executive Summary
| Audit | Score | Verdict |
|-------|-------|---------|
| **Markdown Quality** | X/10 | [Short verdict] |
| **Link Validity** | X/10 | [Short verdict] |
| **Terminology** | X/10 | [Short verdict] |
| **Freshness** | X/10 | [Short verdict] |
| **Examples Validity** | X/10 | [Short verdict] |
**Overall Score: X/10** - [Final verdict]
---
## Blocking Corrections (before merge)
- Broken/unreachable links
- Stale references (deprecated APIs, removed configs, wrong versions)
- Terminology drift that changes meaning
- Code examples that no longer match the source
## Important Corrections (this week)
[...]
## Improvements (backlog)
[...]
## Positive Observations
[...]
## Pre-Merge Checklist
[...]
Same rules as the other review skills. Each blocking/important violation gets one POST_INLINE_COMMENT on the relevant diff line.
| Severity | Prefix |
|---|---|
| Blocking | [BLOCKING] |
| Important | [IMPORTANT] |
Body structure:
**[BLOCKING] Problem title**
`file.md:42`
Short factual description of the problem in 1-2 sentences.
**Fix**: Short solution with corrected text or link.
Call: set_phase(jobId, "publishing")
/.claude/reviews/[YYYY-MM-DD]-MR-[ID]-doc-review.md.add_action(POST_COMMENT).| Detected issue | Skill to use |
|---|---|
| Major doc restructuring | /create-doc |
| Documentation index update | /docs-index |
| Stale reference cleanup | /update-docs |
| Full documentation audit | /audit-docs |
Call: set_phase(jobId, "completed")
Global report posted on the MR: [comment URL]
Local copy: /.claude/reviews/[YYYY-MM-DD]-MR-[ID]-doc-review.md
Overall score: X/10
Inline comments posted in /diffs: X
Blocking: X
Important: X
Backlog improvements (global report only): X
[REVIEW_STATS:blocking=X:warnings=X:suggestions=X:score=X:categories=security=N,logic=N,performance=N,typeSafety=N,style=N,dependencies=N]
READ-ONLY MODE - No documentation modified
Recommended skills:
- /update-docs for stale reference cleanup
- /docs-index after major restructuring
IMPORTANT: The [REVIEW_STATS:...] line is MANDATORY for automated tracking.
categories= segment)Classify every finding (blocking + important + suggestion) into exactly one of the six dashboard categories, then emit the count per category in the marker. The six counts must sum to blocking + warnings + suggestions. Map by the audit that raised the finding:
| Audit that raised the finding | Category |
|---|---|
| Terminology, examples-validity (incorrect content) | logic |
| Markdown-quality, link-validity, freshness | style |
Use the internal keys exactly: security, logic, performance, typeSafety, style, dependencies. This skill has no Security, Performance, Type Safety or Dependency audits, so security, performance, typeSafety and dependencies are normally 0. Set any unused key to 0. Unknown keys are ignored by the tracker.
Final reminder: This skill NEVER modifies documentation. The report and inline comments are posted via MCP actions so the author can make corrections.
아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.
로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.
아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.
Guide for creating optimized Claude Code agents. Use to design a new specialized agent, a swarm sub-agent, or a multi-agent workflow. Follows the Skill → Agent (preloaded skills) → Skill orchestration pattern.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Anti-overengineering guide based on YAGNI. Use before adding an architectural pattern, during code review, or to challenge an overly complex implementation.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Clean Architecture (Uncle Bob) guide for this project. Use when creating modules, entities, use cases, presenters, controllers, gateways, guards, services. Contains tactical patterns and structure conventions.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Audit documentation for duplication, staleness, language issues, and verbosity. Read-only — produces an actionable report.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Local auto-review of modified code (no GitLab/GitHub). Runs 5 sequential audits and generates a local report. Ideal for validating code before creating a MR/PR.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Clean Code (Robert C. Martin) guide to produce and challenge code that is readable, durable, simple, and consistent. Covers naming, functions, comments, smells, and refactor heuristics. Complements `/solid` (SOLID principles) and `/anti-overengineering` (YAGNI/KISS). Activate during the REFACTOR phase of the TDD cycle and during implementation self-review.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.