with one click
doc-author
// Write, edit, and maintain documentation. Use for collaborative drafting, autonomous writing, or improving existing docs. Defaults to collaborative mode where the human makes final decisions. Built by Mintlify.
// Write, edit, and maintain documentation. Use for collaborative drafting, autonomous writing, or improving existing docs. Defaults to collaborative mode where the human makes final decisions. Built by Mintlify.
Use this skill when contributing to InsForge's backend package. This is for maintainers editing backend routes, services, providers, auth, database logic (including RLS-enforced surfaces like storage and realtime), schedules, or backend tests in the InsForge monorepo.
Use this skill set when contributing to the InsForge monorepo itself. This is for InsForge maintainers and contributors editing the platform, the shared dashboard package, the self-hosting shell, the UI library, shared schemas, tests, or docs.
Use this skill when contributing to InsForge's product documentation in this repository. This is for maintainers editing public docs in `docs/core-concepts`, agent docs in `docs/agent-docs`, SDK integration guides in `docs/sdks`, and OpenAPI specs in `openapi`.
Use this skill set when contributing to the InsForge monorepo itself. This is for InsForge maintainers and contributors editing the platform, the shared dashboard package, the self-hosting shell, the UI library, shared schemas, tests, or docs.
Use this skill when contributing to InsForge's backend package. This is for maintainers editing backend routes, services, providers, auth, database logic (including RLS-enforced surfaces like storage and realtime), schedules, or backend tests in the InsForge monorepo.
Use this skill when contributing to InsForge's shared dashboard package. This is for maintainers editing `packages/dashboard`, which ships in `self-hosting` and `cloud-hosting` modes, and the local `frontend/` shell used for `self-hosting` in this repo.
| name | doc-author |
| description | Write, edit, and maintain documentation. Use for collaborative drafting, autonomous writing, or improving existing docs. Defaults to collaborative mode where the human makes final decisions. Built by Mintlify. |
| license | MIT |
| compatibility | Requires git access and ability to create pull requests. Works with any markdown or MDX documentation. Optimized for Mintlify-powered documentation sites. |
| metadata | {"author":"Mintlify","url":"https://mintlify.com","version":"0.2"} |
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.