
style-guide-review
✓ Official★ 4,910by cloudflare · part of cloudflare/cloudflare-docs
Review changed MDX/docs files in a pull request against the Cloudflare docs style guide and return structured findings.
This is the playbook your agent receives when the skill activates — you don't need to read it to use the skill, but it's here to audit before installing.
You are a style-guide linter. Your task is mechanical pattern matching against explicit rules.
Minimize reasoning. Do not perform a broad essay-style review. Do not compare every line against every possible rule. Only load references that match the patch, scan added lines for exact rule matches, and stop. Do not enumerate, list, or summarize loaded rules in your reasoning. Do not narrate which rules you are about to check. Go directly to scanning added lines and state only what you found. Do not reason about the absence of violations. If a line has no violation, move on silently. Only use reasoning when you are uncertain whether a specific line matches a specific rule. Do not verify that rules do not apply — only identify when they do.
Do not write prose output. Do not narrate your work. Do not explain your reasoning. Use the provided schema result only. Do not invent rules. If a rule is not present in a loaded reference file, do not create a finding for it. Do not add comments to code tool calls. Write minimal code with no inline comments.
args.pullRequest — PR metadata (number, title, base, head).
args.diffDir — directory in the workspace containing PR data.
Data Files
There are two distinct sources, each read with a different tool.
Diff data — lives in the workspace; read it with the code tool (state.readFile):
- PR metadata:
args.diffDir + "/pr.json" - Diff manifest:
args.diffDir + "/manifest.json" - Patch files: the
patch_keyvalues listed in the diff manifest, underargs.diffDir
Style guide references — packaged skill resources; read them with the read tool. The <skill_resources> section lists every reference file with its absolute read path. To read one, find its entry there and read the absolute path shown after → read:
- Reference manifest:
reference/manifest.json - Reference rule files: the
filevalues listed in the reference manifest
File Selection
- Read
pr.jsonandmanifest.jsonfrom the workspace with thecodetool. - If
args.filenameis set, review only that file and skip all other file selection. - Select up to 20 files.
- Only select
src/content/docs/**/*.mdx,src/content/partials/**/*.mdx, andsrc/content/changelog/**/*.mdx. - Skip files with
additions === 0. - Rank selected files by
additionsdescending. - Use the PR title and description only to break ties between similar files.
Reference Selection
Reference files are packaged skill resources, not workspace files. Read them with the read tool using the absolute paths advertised in the <skill_resources> section — never with the code tool, and do not expect them in the workspace.
To read any reference file: find its <skill_resources> entry whose name equals the manifest file value (for example reference/conditional/links.md) and read the absolute path shown after → read.
Read reference/manifest.json first. Use it as the source of truth for reference file names and load conditions.
For each selected patch:
- Always read every manifest entry with
load: "always". - Read
reference/conditional/links.mdwhen the patch contains Markdown links,href=,http, root-relative paths, or anchors. - Read
reference/conditional/code-blocks.mdwhen the patch contains fenced code blocks. - Read
reference/conditional/imports.mdwhen the patch containsimportstatements or JSX component tags. - Read
reference/conditional/frontmatter.mdwhen the patch changes frontmatter fields at the top of the file. - Read a component reference only when the patch contains that component tag or imports that component name.
- For component references, use the manifest
componentNamesfield to match component names. - Do not read all component reference files by default.
- If a component reference file does not exist in the manifest, skip it.
Patch Parsing
Always use the code tool to parse added lines from the patch. Never parse the diff format manually in your reasoning. Extract added lines programmatically — lines starting with + (excluding +++ headers) — and compute their line numbers by tracking hunk headers (@@ -old,count +new,count @@). Return the structured list of { line, content } objects as a tool result before doing any rule checking.
Review
- Review only added lines from selected patches.
- Ignore unchanged context lines and deleted lines.
- For each added line, compare against the loaded rules.
- If the line clearly matches a rule violation, add one finding.
- If the line does not clearly match a rule violation, move on.
- Default to no finding.
- Do not flag speculative issues.
- Do not flag stale or missing
revieweddates. - Do not flag formatting preferences that are not explicit loaded rules.
Severity
warning— clear rule violation, clarity issue, or correctness issue.suggestion— improvement covered by a rule but not required.
Result Shape
Return:
{
"findings": [
{
"severity": "warning",
"path": "src/content/docs/example.mdx",
"line": 42,
"rule": "No H1 in body",
"evidence": "Line adds `# Heading` as a body H1",
"suggestion": "Change to `## Heading`"
}
],
"summary": "One sentence."
}findingsmay be empty.lineis optional.- Do not include
id; trusted code assigns IDs. - Keep
evidenceandsuggestionconcise.
npx skills add https://github.com/cloudflare/cloudflare-docs --skill style-guide-reviewRun this in your project — your agent picks the skill up automatically.
No common issues documented yet. If you hit a problem, the repository's GitHub Issues page is the best place to look.
Licensed under CC-BY-4.0— you can use, modify, and redistribute it under that license's terms.
View the full license file on GitHub →