> Review a ClickHouse docs page before shipping. Runs the self-review checklist, Vale linting, and PR review rubric. Use when doing a final check, running Vale, or when asked "is this ready to ship."
npx skills add https://github.com/ClickHouse/clickhouse-docs --skill docs-pre-ship-review
This skill covers the review and verification workflow for docs pages before
shipping. For the underlying voice, style, and content rules applied during
writing, see the docs-drafting skill.
Run this before requesting review. Target: 30–45 minutes.
Any time the page lists valid config values, enum options, CLI flags, or
describes what an option does, verify against the ClickHouse source code or
the relevant upstream library (e.g., ClickHouse's Poco fork). Don't trust
other docs pages or LLM knowledge alone.
Scale effort to the claim. Not every check needs a research agent. For
simple factual claims (version numbers, dates, feature names), a quick web
search or grep of the source is enough. Reserve deep research agents for
claims that are central to the page and hard to verify (e.g., how a feature
works under the hood, or whether a config option behaves as described).
Present a verification summary:
docs/. Files under i18n/ (jp, ko,ru, zh) sync automatically — never edit them directly.
pagination_prev, pagination_next, description, doc_type, keywords)
{#anchor-name})bash, yaml, python, sql)paragraphs in the same file. Pick one style and apply it throughout.
vale docs/path/to/file.mdWhen asked to lint a file, fix Vale warnings, clean up prose, or as part of
the pre-ship review, apply this workflow.
Vale is configured at .vale.ini and checks only .md files under docs/.
The style rules live in styles/ClickHouse/.
Read the target file to understand its content, then apply the Vale rules
listed below. If the user has Vale output already, use that instead.
Group issues by type. Fix in this priority order:
Auto-fixable (apply without asking):
British.yml, level: warning)optimise→optimize, organisation→organization, centre→center,
licence→license, favourite→favorite, etc.
styles/ClickHouse/British.ymlWordy.yml, level: suggestion)Repetition.yml, level: warning)Contractions.yml, level: suggestion)"it is" → "it's", "we are" → "we're", etc.
Headings.yml, level: warning)exceptions list in Headings.yml — ClickHouse, MergeTree, SQL,
OpenTelemetry, Docker, Kafka, etc. are all excepted)
Ability.yml, level: suggestion)Judgment-required (flag to user, suggest fix):
HeadingPunctuation.yml) — headings shouldn'tend with punctuation (except ?)
Ordinal.yml) — check context before fixingExclamation.yml) — remove unless truly warranted10. Backtick formatting (BackTicks*.yml) — ClickHouse functions,
settings, table engines, formats should be in backticks, but flag
rather than blindly apply
Use the Edit tool to apply fixes. Group related fixes into a single
edit where possible. Always re-read the file before editing to get
exact text matches.
After fixing, provide a brief summary:
These rules exist but are turned off in .vale.ini — do NOT flag these:
SentenceLength (disabled: ClickHouse.SentenceLength = NO)FutureTense (disabled: ClickHouse.FutureTense = NO)Don't lint these:
docs/whats-new/**/*.mddocs/releases/**/*.md.mdx files may produce false positives from JSX syntax, but Vale canstill be run on them. Review results with that caveat.
clarity in a technical context, skip the fix and note why.
admonition markers (:::note, :::warning, etc.).
bash to shell based on the CodeblockFencessuggestion. bash is more specific and widely recognized. Only change a
code fence language if it's genuinely wrong (e.g., SQL tagged as bash).
awkward than the original, skip it. The test: does it make the prose clearer
and shorter? If not, skip and note why.
terminology even if they look like style violations.
compliance docs, SLA descriptions) where contractions may be
intentionally avoided.
Headings.yml exceptions list is enormous. When in doubt aboutwhether a word in a heading is a proper noun or product name, leave it
as-is and flag it.
For reviewing PRs from other authors, use the docs-pr-review skill instead.
It covers triage, comment writing, and scope discipline for reviewing someone
else's work.
PostgreSQL-specific code review assistant focusing on PostgreSQL best practices, anti-patterns, and unique quality standards. Covers JSONB operations, array usage, custom types, schema design, function optimization, and PostgreSQL-exclusive security features like Row Level Security (RLS).
Use when writing a commit message or opening a PR in the go-redis repo — covers the Conventional-Commit format, the repo's scope vocabulary (pool, conn, sentinel, command, …), breaking-change syntax, and the rule that NO AI-attribution trailer is added.
Review a GitHub issue or pull request URL as a redis-py maintainer, with a staged assessment of whether the claim is real, practically important, already solvable with supported functionality, correctly scoped, better served by another design, and worth maintainer and contributor effort. Use when assessing issue validity or severity, deciding whether an issue should be prioritized or closed, determining whether a requested feature represents an unmet need rather than a discoverability or usage gap, judging whether a PR is worth bringing to mergeable quality, comparing open PRs or alternative designs, separating code quality from repository readiness, or drafting a concise maintainer assessment. When closure, additional evidence, or code changes should be requested, also produce a polite, concise, complete, copy-paste-ready maintainer comment.
Produce PR-ready output for redis-py — a one-line commit message and a copy-pasteable Markdown PR description (Change summary + Test coverage, 5–6 paragraphs) covering all staged changes plus the commits already on the current branch. Trigger whenever the user's message mentions any of these keywords or phrases: "PR", "pr", "PR description", "PR draft", "pull request", "the PR block", "commit msg", "commit message", or otherwise asks for a commit message or PR write-up for their local changes.
Review a GitHub issue or pull request URL as a redis-py maintainer, with a staged assessment of whether the claim is real, practically important, already solvable with supported functionality, correctly scoped, better served by another design, and worth maintainer and contributor effort. Use when assessing issue validity or severity, deciding whether an issue should be prioritized or closed, determining whether a requested feature represents an unmet need rather than a discoverability or usage gap, judging whether a PR is worth bringing to mergeable quality, comparing open PRs or alternative designs, separating code quality from repository readiness, or drafting a concise maintainer assessment. When closure, additional evidence, or code changes should be requested, also produce a polite, concise, complete, copy-paste-ready maintainer comment.
Produce PR-ready output for redis-py — a one-line commit message and a copy-pasteable Markdown PR description (Change summary + Test coverage, 5–6 paragraphs) covering all staged changes plus the commits already on the current branch. Trigger whenever the user's message mentions any of these keywords or phrases: "PR", "pr", "PR description", "PR draft", "pull request", "the PR block", "commit msg", "commit message", or otherwise asks for a commit message or PR write-up for their local changes.
Django performance code review. Use when asked to "review Django performance", "find N+1 queries", "optimize Django", "check queryset performance", "database performance", "Django ORM issues", or audit Django code for performance problems.
WordPress performance code review and optimization analysis. Use when reviewing WordPress PHP code for performance issues, auditing themes/plugins for scalability, optimizing WP_Query, analyzing caching strategies, checking code before launch, or detecting anti-patterns, or when user mentions "performance review", "optimization audit", "slow WordPress", "slow queries", "high-traffic", "scale WordPress", "code review", "timeout", "500 error", "out of memory", or "site won't load". Detects anti-patterns in database queries, hooks, object caching, AJAX, and template loading.
Take clickhouse/docs-pre-ship-review from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.