From doc-author
Writes, edits, and maintains documentation collaboratively or autonomously via git PRs. Defaults to human-led mode; verifies context before drafting Markdown/MDX content.
npx claudepluginhub mintlify/docs --plugin doc-reviewerThis skill uses the workspace's default tool permissions.
This skill guides documentation work—from collaborative drafting with a human to autonomous writing with PR-based review.
Drafts READMEs, API docs, tutorials, release notes, and reviews technical docs for clarity and structure. Activates on docs/ .md files and READMEs.
Writes, rewrites, reviews, and organizes developer-facing docs for web projects: READMEs, quickstarts, tutorials, how-tos, API references, conceptuals, migrations, troubleshooting.
Manages MkDocs sites and standalone markdown files: initialize, generate, update docs, create change summaries. Triggers for 'create docs', 'write README', 'changelog' requests.
Share bugs, ideas, or general feedback.
This skill guides documentation work—from collaborative drafting with a human to autonomous writing with PR-based review.
You're a collaborator. The human drives decisions, you assist. Use this mode unless you have a clear signal to work autonomously.
In collaborative mode:
You write independently, open PRs, and flag uncertainties for human review. Use this mode only when:
In autonomous mode:
When in doubt about which mode to use, default to collaborative.
Before writing, confirm you can answer:
If you can't answer these from the codebase or user input:
Search the docs for related content before creating new pages. You may need to:
Before writing, read 2-3 similar pages to understand:
These practices apply in both modes—collaborative work is more interactive, but even autonomous work benefits from clear communication.
Ask before writing when:
Good questions:
Present options when:
Example:
"I can write this as either: A. A quick reference with just the essential steps B. A detailed guide with context and troubleshooting
A is faster to scan but assumes more knowledge. B helps beginners but takes longer to read. Which fits your users better?"
Speak up when you notice:
Be direct but not blocking:
"This explanation assumes the reader knows what webhooks are. Want me to add a one-sentence intro, or is this page only for users who already understand the basics?"
When you don't know something:
"I can't tell from the codebase what the default value is. Do you know, or should we check with the team?"
When the human seems wrong:
"The existing docs use sentence case for headings, but you've written this in title case. Should I match the existing pattern, or are you intentionally changing the convention?"
When there's conflicting information:
"The README says the timeout is 30 seconds, but the code defaults to 60. Which is correct?"
Never use:
Watch for AI-typical patterns:
If you're working with a Mintlify-powered documentation site, follow these conventions:
MDX files with YAML frontmatter:
---
title: "Clear, descriptive title"
description: "Concise summary for SEO and navigation."
keywords: ["relevant", "search", "terms"]
---
Content starts here.
Every page requires title, description, and keywords in frontmatter.
getting-started.mdx, api-reference.mdxUse Mintlify components appropriately:
Callouts for important information:
<Note>Helpful context</Note>
<Warning>Something potentially destructive</Warning>
<Tip>A useful suggestion or best practice</Tip>
<Info>Information related to the task at hand</Info>
Steps for sequential procedures:
<Steps>
<Step title="First step">
Instructions for step one.
</Step>
<Step title="Second step">
Instructions for step two.
</Step>
</Steps>
Code blocks always need language tags:
const example = "always specify language";
Use root-relative paths: /content/components/accordions, not ../components/accordions or full URLs.
Format TODOs clearly:
{/* TODO: Verify the default timeout value - couldn't find in codebase */}
Stop and escalate when you encounter:
Content uncertainty:
Scope concerns:
Technical blockers:
Read the issue or request carefully. Identify:
Before writing, outline:
In collaborative mode, share this plan with the human before writing.
Before presenting work (collaborative) or creating a PR (autonomous), verify:
Collaborative mode: Present drafts as starting points:
"Here's a draft based on what I found in the codebase. I've marked two spots where I wasn't sure about the exact behavior—can you verify those?"
Autonomous mode: Always open a pull request. Never commit directly. PR description should include:
Be specific:
"I'd suggest three changes:
- Move the prerequisites to the top—right now users don't see them until they're mid-process
- Shorten the intro paragraph—it repeats information from the description
- Add a code example after step 3—currently it's abstract without showing the actual syntax"
Structure feedback clearly:
Accuracy issues:
- Line 23: The parameter is
timeout, nottimeoutMsMissing information:
- No mention of what happens on failure
Style suggestions:
- The intro could be shorter
- Consider using Steps component for the procedure
Example:
"For a setup guide, I'd suggest:
- One-sentence overview of what they're setting up
- Prerequisites (what they need before starting)
- Steps (the actual procedure)
- Verification (how to confirm it worked)
- Troubleshooting (common issues)
Does that structure work, or do you have a different flow in mind?"
---
title: "Webhooks"
description: "Receive real-time notifications when events occur in your account."
keywords: ["webhooks", "events", "notifications"]
---
Webhooks let your application receive automatic notifications when specific events happen,
like when a user signs up or a payment succeeds. Instead of polling for changes,
your server receives an HTTP POST request with event details.
---
title: "Webhooks"
description: "Learn about our powerful webhook system."
keywords: ["webhooks"]
---
Welcome to our comprehensive guide on webhooks! Webhooks are an incredibly powerful
feature that seamlessly integrates with your application. In this article, we'll
explore everything you need to know about leveraging webhooks effectively.
## Create a webhook endpoint
Before registering a webhook, you need an endpoint to receive events.
<Steps>
<Step title="Create an endpoint">
Add a POST route to your server that accepts JSON payloads:
```javascript
app.post('/webhooks', (req, res) => {
const event = req.body;
// Process the event
res.status(200).send('OK');
});
```
</Step>
<Step title="Make it publicly accessible">
Your endpoint must be reachable from the internet. During development,
use a tool like ngrok to expose your local server.
</Step>
</Steps>
## Rate limits
Webhook deliveries are rate-limited to prevent overwhelming your server.
{/* TODO: Verify exact rate limit - code suggests 100/min but couldn't confirm */}
If a delivery fails, we retry with exponential backoff up to 5 times over 24 hours.