8.7 KiB
InfluxData Documentation (docs-v2)
For general AI assistants (Claude, ChatGPT, Gemini, etc.)
This guide provides comprehensive instructions for AI assistants helping with the InfluxData documentation repository. It focuses on content creation, writing workflows, and style guidelines.
Other instruction resources:
- .github/copilot-instructions.md - For GitHub Copilot (focused on coding and automation)
- CLAUDE.md - For Claude with MCP (minimal pointer)
- .claude/ - Claude MCP configuration (commands, agents, skills)
- .github/instructions/ - File pattern-specific instructions
Project Overview
This repository powers docs.influxdata.com, a Hugo-based static documentation site covering InfluxDB 3, InfluxDB v2/v1, Telegraf, and related products.
Key Characteristics:
- Scale: 5,359+ pages
- Build time: ~75 seconds (NEVER cancel Hugo builds)
- Tech stack: Hugo, Node.js, Docker, Vale, Pytest, Cypress
- Test time: 15-45 minutes for full code block tests
Quick Commands
| Task | Command | Time |
|---|---|---|
| Install dependencies | CYPRESS_INSTALL_BINARY=0 yarn install |
~4s |
| Build site | npx hugo --quiet |
~75s |
| Dev server | npx hugo server |
~92s |
| Test code blocks | yarn test:codeblocks:all |
15-45m |
| Lint | yarn lint |
~1m |
Repository Structure
docs-v2/
├── content/ # Documentation content
│ ├── influxdb3/ # InfluxDB 3 (core, enterprise, cloud-*)
│ ├── influxdb/ # InfluxDB v2 and v1
│ ├── enterprise_influxdb/ # InfluxDB Enterprise v1
│ ├── telegraf/ # Telegraf docs
│ ├── shared/ # Shared content across products
│ └── example.md # Shortcode testing playground
├── layouts/ # Hugo templates and shortcodes
├── assets/ # JS, CSS, TypeScript
├── api-docs/ # OpenAPI specifications
├── data/ # YAML/JSON data files
├── public/ # Build output (gitignored, ~529MB)
└── .github/
└── copilot-instructions.md # Primary AI instructions
Content Paths: See copilot-instructions.md
Common Workflows
Editing a page in your browser
- Navigate to the desired page on docs.influxdata.com
- Click the "Edit this page" link at the bottom
- Make changes in the GitHub web editor
- Commit changes via a pull request
Creating/Editing Content Manually
Frontmatter (page metadata):
title: Page Title # Required - becomes h1
description: Brief desc # Required - for SEO
menu:
influxdb_2_0:
name: Nav Label # Optional - nav display name
parent: Parent Node # Optional - for nesting
weight: 1 # Required - sort order
Shared Content (avoid duplication):
source: /shared/path/to/content.md
Shared content files (/shared/path/to/content.md):
- Don't store frontmatter
- Can use
{{% show-in %}},{{% hide-in %}}, and theversionkeyword (/influxdb3/version/content.md)
Common Shortcodes:
- Callouts:
> [!Note],> [!Warning],> [!Important],> [!Tip] - Tabs:
{{< tabs-wrapper >}}+{{% tabs %}}+{{% tab-content %}} - Required:
{{< req >}}or{{< req type="key" >}} - Code placeholders:
{ placeholders="<PLACEHOLDER>" }
📖 Complete Reference: DOCS-SHORTCODES.md | DOCS-FRONTMATTER.md
Testing Changes
Always test before committing:
# Verify server renders (check 200 status)
curl -s -o /dev/null -w "%{http_code}" http://localhost:1313/influxdb3/core/
# Test specific content
yarn test:links content/influxdb3/core/**/*.md
# Run style linting
docker compose run -T vale content/**/*.md
📖 Complete Reference: DOCS-TESTING.md
Committing Changes
Commit Message Format:
type(scope): description
Examples:
- fix(enterprise): correct Docker environment variable
- feat(influxdb3): add new plugin documentation
- docs(core): update configuration examples
Types: fix, feat, style, refactor, test, chore
Scopes: enterprise, influxdb3, core, cloud, telegraf, etc.
Pre-commit hooks run automatically (Vale, Prettier, tests). Skip with:
git commit -m "message" --no-verify
📖 Complete Reference: DOCS-CONTRIBUTING.md
Key Patterns
Content Organization
- Product versions: Managed in
/data/products.yml - Semantic line feeds: One sentence per line for better diffs
- Heading hierarchy: Use h2-h6 only (h1 auto-generated from frontmatter)
- Image naming:
project/version-context-description.png
Code Examples
Testable code blocks (pytest):
print("Hello, world!")
Hello, world!
Language identifiers: Use python not py, bash not sh (for pytest collection)
API Documentation
- Location:
/api-docs/directory - Format: OpenAPI 3.0 YAML
- Generation: Uses Redoc + custom processing
- 📖 Workflow: api-docs/README.md
JavaScript/TypeScript
- Entry point:
assets/js/main.js - Pattern: Component-based with
data-componentattributes - Debugging: Source maps or debug helpers available
- 📖 Details: DOCS-CONTRIBUTING.md
Important Constraints
Performance
- NEVER cancel Hugo builds - they take ~75s normally
- NEVER cancel test runs - code block tests take 15-45 minutes
- Set timeouts: Hugo (180s+), tests (30+ minutes)
Style Guidelines
- Use Google Developer Documentation style
- Active voice, present tense, second person for instructions
- No emojis unless explicitly requested
- Use long options in CLI examples (
--optionvs-o) - Format code blocks within 80 characters
Network Restrictions
Some operations may fail in restricted environments:
- Docker builds requiring external repos
docker compose up local-dev(Alpine packages)- Cypress installation (use
CYPRESS_INSTALL_BINARY=0)
Documentation References
| Document | Purpose |
|---|---|
| DOCS-CONTRIBUTING.md | Contribution workflow, style guidelines |
| DOCS-TESTING.md | Testing procedures (code blocks, links, linting) |
| DOCS-SHORTCODES.md | Complete shortcode reference |
| DOCS-FRONTMATTER.md | Complete frontmatter field reference |
| .github/copilot-instructions.md | Primary AI assistant instructions |
| api-docs/README.md | API documentation workflow |
| content/example.md | Live shortcode examples for testing |
Specialized Topics
Working with Specific Products
| Product | Content Path | Special Notes |
|---|---|---|
| InfluxDB 3 Core | /content/influxdb3/core/ |
Latest architecture |
| InfluxDB 3 Enterprise | /content/influxdb3/enterprise/ |
Core + licensed features, clustered |
| InfluxDB Cloud Dedicated | /content/influxdb3/cloud-dedicated/, /content/influxdb3/cloud-serverless/ |
Managed and distributed |
| InfluxDB Clustered | /content/influxdb3/clustered/ |
Self-managed and distributed |
| InfluxDB Cloud | /content/influxdb/cloud/ |
Legacy but active |
| InfluxDB v2 | /content/influxdb/v2/ |
Legacy but active |
| InfluxDB Enterprise v1 | /content/enterprise_influxdb/v1/ |
Legacy but active enterprise, clustered |
Advanced Tasks
- Vale configuration:
.ci/vale/styles/for custom rules - Link checking: Uses custom
link-checkerbinary - Docker testing:
compose.yamldefines test services - Lefthook: Git hooks configuration in
lefthook.yml
Troubleshooting
| Issue | Solution |
|---|---|
| Pytest collected 0 items | Use python not py for code block language |
| Hugo build errors | Check /config/_default/ configuration |
| Link validation slow | Test specific files: yarn test:links content/file.md |
| Vale errors | Check .ci/vale/styles/config/vocabularies |
Critical Reminders
- Be a critical thinking partner - Challenge assumptions, identify issues
- Test before committing - Run relevant tests locally
- Reference, don't duplicate - Link to detailed docs instead of copying
- Respect build times - Don't cancel long-running operations
- Follow conventions - Use established patterns for consistency