Mintlify Documentation — CLAUDE.md
This file provides context to Claude Code when working in the/help-docs directory.
Project Context
- Platform: Mintlify (replaces GitBook)
- Format: MDX files with YAML frontmatter
- Config:
docs.jsonfor navigation, theme, and settings - Components: Mintlify MDX components (Cards, Steps, Tabs, Accordions, CodeGroups, Callouts, etc.)
- Schema reference: https://mintlify.com/docs.json
- Full docs index: Append
/llms.txtto the deployed docs URL for structured AI-readable index
Working Relationship
- ALWAYS ask for clarification rather than making assumptions about product behavior
- NEVER guess or fabricate feature descriptions — verify against the codebase in
/nestand/next - You can push back on documentation approaches — cite reasoning when you do
Content Strategy
- Document just enough for user success — not too much, not too little
- Prioritize accuracy and usability over completeness
- Make content evergreen when possible — avoid version-specific language unless necessary
- Search for existing content before adding anything new — avoid duplication
- Check existing pages for consistency before writing new ones
- Start by making the smallest reasonable changes
docs.json
- Refer to the docs.json schema when modifying navigation or settings
- Required top-level keys:
theme,name,colors.primary,navigation - Pages are referenced as relative paths without
.mdxextension (e.g.,"getting-started/introduction") - The landing page is
index.mdx, referenced in navigation as"index" - Navigation uses
groupswithgroup(title) andpages(array) keys - Empty groups (no pages) won’t render in the sidebar — add placeholder pages or remove the group
Frontmatter Requirements
Every.mdx file MUST have frontmatter with at minimum:
sidebarTitle— abbreviated nav label when title is longicon— visual identifier in sidebar (Font Awesome, Lucide, or Tabler icons)tag— badge like “NEW” or “BETA” next to sidebar titlehidden— removes from sidebar but keeps URL accessible
Writing Standards
Dual Audience: Humans + AI
Every sentence must serve two audiences:- Human readers who need to complete tasks quickly
- Mintlify’s AI assistant (and external LLMs via
llms.txt/ MCP) which answers user questions by referencing your content
Core Principles
1. Action-Oriented Content Users come with goals, not curiosity. Structure everything around “What do you want to do?”- Good: “To add a flag to a skill, navigate to Library > Skills > [Skill Name] and select Add Flag.”
- Bad: “Flags can be added to skills through the library interface where skills are managed by administrators who have the appropriate permissions.”
- Good: “Admin users can create custom flags. Manager users can apply flags to their direct reports. Standard users cannot modify flags.”
- Bad: “Different user types have different permissions when it comes to flags.”
- Good: “The Expert flag grants training approval rights. Users designated as Experts can approve training requests for their assigned skills.”
- Bad: “This flag grants training approval rights. They can approve training requests.”
Voice and Tone
- Direct: Use active voice. “Select Save” not “The Save button should be selected”
- Confident: State facts clearly. “This requires admin access” not “This may require admin access”
- Respectful: Assume user intelligence. Don’t over-explain obvious UI elements
- Helpful: Anticipate confusion and address it proactively
- Tone spectrum: Admin/technical content → more formal, precise terminology. End-user content → warmer, more supportive. Troubleshooting → calm, solution-focused.
Grammar and Mechanics
- Voice: Second person (“you”) — address the reader directly
- Pronouns: Use “you” for the reader. Use “we” for the product team (sparingly). Avoid “I” entirely. Never use ambiguous “it” or “this” without an explicit noun.
- Tense: Present tense for current features (“The flag appears in the table”). Future tense for outcomes (“This will create a new flag”). Imperative for instructions (“Select Save”).
- Sentences: Under 25 words when possible. One idea per sentence. Front-load key information.
- Paragraphs: 2-4 sentences maximum. Single-sentence paragraphs are acceptable for emphasis.
- Language: American English spelling (e.g., “organize” not “organise”).
- Prerequisites: List at the start of any procedural content.
- Code examples: Test before publishing; include language tags on all code blocks.
- Images: Alt text on all images; use relative paths; 20 MB max file size.
- Internal links: Use relative paths (e.g.,
/getting-started/introduction), never absolute URLs.
AI-Optimized Writing Patterns
These patterns make content machine-parseable while remaining human-readable.Pattern 1: Explicit Capability Statements
Always state who can do what explicitly.Pattern 2: Structured Prerequisites
Use consistent prerequisite blocks.Pattern 3: Cause-Effect Relationships
Always connect actions to outcomes explicitly.Pattern 4: Comparative Tables
Use tables to show options, differences, and specifications.Pattern 5: Explicit Navigation Paths
Always provide full navigation paths, never abbreviate.- Good: “Navigate to Library > Skills > [Skill Name] > Expert Matrix”
- Bad: “Go to the skill’s Expert Matrix”
Pattern 6: Conditional Logic
Structure conditionals clearly for AI parsing.Pattern 7: Settings-Dependent Features
When features depend on account settings (e.g., the grading scale that determines proficiency levels), use a reasonable example (e.g., a 1-5 scale) but note that it is configured by the account admins.Formatting Standards
Headers
Use semantic heading hierarchy:- H2 headers should be task-oriented: “Creating a Custom Flag” not “Custom Flags”
- Exception: Concept sections can be noun phrases: “Understanding Flag Types”
- Never skip levels (don’t go from H2 to H4)
Lists
Numbered lists: Use for sequential steps that must be performed in order.- Don’t use lists in the main overview/introduction
- Don’t list things that would be better as a table
- Don’t create single-item lists
Callout Components (Mintlify)
Use Mintlify callout components instead of raw HTML or GitBook hint blocks:| Component | Use For | Equivalent |
|---|---|---|
<Note> | Contextual information, important details | GitBook {% hint style="info" %} |
<Tip> | Best practices, pro tips, helpful suggestions | GitBook {% hint style="success" %} |
<Warning> | Important cautions, potential issues | GitBook {% hint style="warning" %} |
<Info> | Supplementary context, background information | General info callouts |
<Check> | Success confirmations, completion indicators | Positive outcomes |
- Maximum 3 callout components per section
- Keep callout text to 1-3 sentences
- Always include a bolded label (e.g., Tip:, Warning:, Note:)
Tables
When to use tables:- Comparing features, options, or specifications
- Showing permissions matrices
- Listing field definitions
- Displaying keyboard shortcuts
- Keep columns to 5 or fewer
- Use sentence case for headers
- Keep cell content concise (under 20 words)
- Left-align text, right-align numbers
Code and UI Elements
- Button/menu text: Use bold — Select Save, Navigate to Company > Settings
- Field names: Use bold — Enter the Flag Name, Toggle Enabled
- User input examples: Use
code formatting— EnterExpertin the Flag Name field, Set the limit to50 - Code blocks: Use fenced code blocks with language tags for multi-line code, commands, or JSON
- Navigation paths: Always bolded and complete — Settings > Flags Configuration
Content Depth Guidelines
Overview Section (200-400 words)
Purpose: Give users enough context to decide if this article answers their question. Must include:- What this feature/concept is (1-2 sentences)
- Why it exists / what problem it solves (2-3 sentences)
- Who uses it / who it’s for (1-2 sentences)
- High-level benefits or outcomes (2-3 bullet points in prose, not list)
- Include key terminology that users might search for
- Define any ambiguous terms
- State relationships to other features explicitly
Task Sections (minimum 150 words per task)
Structure each task as:- Context statement — One sentence explaining when/why to do this
- Navigation/Access — How to reach the starting point
- Step-by-step instructions — Numbered list of actions (use
<Steps>component) - Outcome statement — What happens when complete
- Optional: Next steps — What users typically do after
- Start each instruction with an action verb
- Include the full path even if mentioned elsewhere
- State the outcome explicitly, don’t assume it’s obvious
Common Questions Section
Purpose: Address edge cases, limitations, and anticipated confusion. Format:- Use
<AccordionGroup>with<Accordion>components for each question - Phrase questions exactly as users would ask them
- Provide yes/no answers before elaborating
- Include alternative phrasings in the question
- Capability questions — “Can I [action]?”
- Limitation questions — “What happens if [edge case]?”
- Troubleshooting questions — “Why is [problem] happening?”
- Best practice questions — “Should I [approach A] or [approach B]?”
Required Article Structure
Every article must include these sections in this order:- Frontmatter — YAML metadata (
title,descriptionminimum) - Title — Clear H1 with feature/concept name (auto-generated from frontmatter
titlein Mintlify) - Quick Summary —
<Info>callout with 1-2 sentence TL;DR - Overview — What/why/who in 200-400 words
- Prerequisites (if applicable) — Required permissions, setup, or knowledge
- Main Content — Task-oriented sections with clear H2 headers, 150+ words each
- Common Questions — FAQ using
<AccordionGroup>, minimum 3 questions - Related Articles — Cross-references to related content using
<CardGroup>/<Card> - Need More Help? — Support contact info
- Advanced Options — Power user features
- Troubleshooting — Common problems and solutions (see Special Content Types)
- Examples — Real-world use cases
- Best Practices — Tips for optimal usage
AI Agent Optimization Checklist
Before publishing any article, verify: Structural Elements:- All prerequisites are explicitly stated in a Prerequisites section
- Every task includes the full navigation path from the top level
- All tables have clear, semantic column headers
- Code blocks include language specification
- No ambiguous pronouns (it, this, that, they) without explicit antecedents
- All conditional statements use “If…then…” structure
- All capability statements follow “[Role] can/cannot [action]” pattern
- All outcomes are stated explicitly (“This creates…” not “You’ll see…”)
- Every feature mentioned has a brief explanation inline (no dangling references)
- All acronyms are defined on first use
- All relationships between features are explicitly stated
- All limitations and edge cases are documented
- Article includes all common search terms users might use
- Headers use natural language (how users think about tasks)
- Alternative terminology is mentioned where appropriate
- Related articles are cross-linked
Quality Standards
Accuracy Requirements
Code/UI verification:- Button text must match actual UI exactly (case-sensitive)
- Navigation paths must be complete and correct
- Field names must match the product precisely
- Error messages should be quoted exactly
- Test all workflows before documenting them
- Verify permissions and role restrictions
- Confirm field validations and limits
- Check feature availability across plans/tiers
Completeness Standards
An article is complete when it answers:- What is this? (Definition and purpose)
- Who is it for? (Roles and permissions)
- When would I use it? (Use cases and scenarios)
- How do I use it? (Step-by-step instructions)
- What can go wrong? (Limitations and edge cases)
- What’s related? (Connected features and workflows)
- Overview: 200-400 words
- At least 2 task sections: 150+ words each
- At least 3 common questions
- At least 3 related article links
Consistency Standards
Terminology:- Use product terminology exactly as it appears in the UI
- Never mix synonyms (choose one term and stick with it)
- Product feature names: Sentence case (“Training approval” not “Training Approval”)
- UI elements: Match the UI exactly
- Section headers: Sentence case
- Button text: Match the UI exactly (including case)
- Always use: Section > Subsection > Page
- Always bold the full path
- Use full paths even when abbreviated elsewhere
Examples: Good vs Bad
Permission Statements
Bad:Task Instructions
Bad:Feature Relationships
Bad:Conditional Logic
Bad:Writing Process
1. Research Phase (before writing)
Gather information:- Read Linear issues/PRDs for the feature
- Access staging/production to verify UI
- Review code for validation rules and error messages
- Identify related features and dependencies Identify structure:
- List all user roles involved
- Map all workflows/tasks users perform
- Identify edge cases and limitations
- Note common questions from support tickets
2. Drafting Phase
Write in this order:- Frontmatter — Set the scope (title, description)
- Overview — Establish context
- Task sections — Core instructional content
- Common Questions — Address edge cases
- Related Articles — Create connections
- Prerequisites (if needed) — Fill in requirements
- Write for clarity first, optimization second
- Link to related articles as you write (even if they don’t exist yet)
- Flag any questions or uncertainties for the user — do not leave TODO/FIXME comments in the published MDX
3. Optimization Phase
AI agent optimization:- Remove all ambiguous pronouns
- Add explicit capability statements
- Convert vague conditionals to “If…then…” format
- Ensure all task sections include full navigation paths
- Add tables where comparisons exist
- Break up long paragraphs
- Add callout components for important information
- Ensure scannable structure with clear headers
- Vary sentence length and structure
4. Review Phase
Self-review checklist:- Read article out loud — does it sound natural?
- Can each section stand alone if quoted by the AI?
- Are all terms defined on first use?
- Do all internal links work?
- Does it pass the “five-year-old test” (no unexplained jargon)?
- Pick 5 questions a user might ask about this topic
- Can you find a complete answer by reading one section?
- Are answers unambiguous (yes/no, or clear explanation)?
Special Content Types
Troubleshooting Content
Troubleshooting sections need clear problem-solution pairs:Conceptual Content (vs. task-based)
Some articles explain concepts rather than tasks. These need:- Clear definition in first paragraph
- Real-world analogy or example
- Comparison to related concepts
- Visual representation (diagram or table)
- Link to task-based articles for “how to use”
API Documentation
API docs require additional structure:- Endpoint URL and method
- Authentication requirements
- Request parameters table (name, type, required, description)
- Response schema with example
- Error codes table
- Rate limits
/help-docs/api-docs/ for existing API documentation patterns.
Maintenance and Updates
When to Update an Article
Update immediately when:- UI text changes (button labels, page titles)
- Workflows change (different steps required)
- Permissions change (who can access)
- Features are added or removed
- Error messages change
- Related features change
- Best practices evolve
- Common questions emerge from support
Version Control
Git commit messages for doc changes:Getting Started Checklist
Before writing your first article, ensure you have:- Access to the product (staging or production)
- Linear issues or PRDs for the feature
- Access to the codebase (for verification against
/nestand/next) - This writing guide reviewed
- 2-3 existing articles from the same section read for tone matching
- Follow the Required Article Structure above
- Include all required sections
- Pass the AI Agent Optimization Checklist
- Be reviewed by someone familiar with the feature
Additional Resources
- Mintlify Documentation — Platform docs and component reference
- Mintlify MDX Components — Full component API
- Microsoft Writing Style Guide — Industry standard
- Google Developer Documentation Style Guide — Technical writing best practices
Questions and Feedback
If you’re unsure about how to handle a specific content situation:- Check this guide for relevant patterns
- Look at existing articles for precedent
- Consult with the docs team lead
- Document your decision for future reference
Article Template (Mintlify)
Use this template when creating new articles. Adapt sections as needed — not every article requires every optional section.Available MDX Components
Use Mintlify components instead of raw HTML:| Component | Use For |
|---|---|
<Note>, <Warning>, <Tip>, <Info>, <Check> | Callout boxes |
<Card> / <CardGroup> | Navigation cards, feature highlights |
<Steps> / <Step> | Sequential instructions |
<Tabs> / <Tab> | Tabbed content (e.g., different platforms) |
<Accordion> / <AccordionGroup> | Collapsible FAQ-style content |
<CodeGroup> | Multi-language code examples |
<Columns> | Side-by-side layout (1-4 cols) |
File Organization
Local Development
Relationship to Codebase
This documentation lives inside theskillsdb-next monorepo at /help-docs. Mintlify is configured to read from this path on the branch set in the Mintlify dashboard (GitHub integration).
- Code changes that affect the UI should have corresponding doc updates in this directory
- The
/update-docsskill automates identifying and drafting doc changes based on code diffs - Engineers own doc updates — they happen in the same PR as code changes, not as a follow-up
Deployment Model
Mintlify uses unidirectional sync — GitHub is the source of truth. Changes only flow from GitHub to Mintlify, never the reverse.- PR merge → auto-deploy: Merging a PR into the deployment branch triggers a rebuild
- Open PRs → preview only: PRs get a preview URL and CI checks, but don’t affect live docs
- Web editor → creates PRs: Edits via the Mintlify web editor create GitHub PRs (they don’t push directly, especially on protected branches)
- No bypass needed: The GitHub App works within branch protection rules — no special permissions required
Do Not
- Skip frontmatter on any MDX file
- Use absolute URLs for internal links
- Include untested code examples
- Edit
docs.jsonwithout validating the schema - Add pages to
docs.jsonnavigation without creating the corresponding.mdxfile - Make assumptions about product behavior — verify against the actual codebase
- Hard-code version numbers in prose — use Mintlify variables (
{{variable}}) if needed