Add Puppeteer utilities and scripts to enable AI agents to interactively
test and debug the documentation site during development.
Dependencies: puppeteer, pixelmatch, pngjs
Scripts: debug:browser, debug:screenshot, debug:inspect
Tools: 20+ helper functions, example scripts, comprehensive documentation
Enables AI agents to visually debug pages, test components, monitor
performance, and detect issues during development.
Co-authored-by: Claude <noreply@anthropic.com>
* REAL-WORLD TESTING ────────────────── BEFORE FIX: ─────────── ❌ Agent
runs: docs edit <url> ❌ Editor spawns and blocks ❌ Agent hangs for 30+
seconds ❌ Workflow times out or fails ❌ Manual intervention required
AFTER FIX: ────────── ✅ Agent runs: docs edit <url> ✅ Editor spawns
detached ✅ CLI exits in <1 second ✅ Agent continues processing ✅
Workflow completes successfully ✅ No manual intervention needed
ISSUE #21: ✅ RESOLVED ───────────────────────
The docs edit command now: • Works perfectly in automated workflows •
Doesn't hang AI agents or scripts • Exits immediately by default •
Supports blocking mode via --wait flag • Handles both URL formats •
Provides clear feedback • Has comprehensive documentation
DEPLOYMENT STATUS: ✅ READY ────────────────────────────
All tests pass: ✓ Unit tests (7/7) ✓ CLI tests ✓ Real-world agent
workflow ✓ Coverage Gap issue processing ✓ URL format support ✓
Non-blocking verification ✓ Blocking mode verification
Scenario: AI agent processes GitHub Coverage Gap issues Issues: #6702,
Results: • Fetched issues from GitHub ✅ • Used docs edit to locate files
✅ • Identified missing docs (Coverage Gaps) ✅ • Found existing docs ✅ •
No hangs, no timeouts ✅ • Total time: 2 seconds for 3 issues ✅
* refactor(cli): move docs CLI to dedicated scripts/docs-cli directory
- Organize all CLI tools and tests in scripts/docs-cli/
- Update package.json bin and script paths
- Update setup-local-bin.js to point to new location
- Fix import paths in docs-edit.js and docs-create.js
- Update SKILL.md with new features (--wait, --editor, path support)
- Update ISSUE-21-FIX-README.md with new structure
- Add comprehensive README.md for docs-cli directory
- All tests passing, non-blocking behavior verified
Closes#21
* feat(cli): add non-blocking editor support to docs create
- Add --open flag to open created files in editor
- Add --wait flag for blocking mode (use with --open)
- Add --editor flag for explicit editor selection
- Uses same editor resolution and process management as docs edit
- Non-blocking by default to prevent agent hanging
- Update all documentation with new examples
- Maintains backwards compatibility (--open is optional)
This completes the non-blocking implementation across both
docs edit and docs create commands.
* docs: update Copilot instructions with complete CLI tool reference
- Add docs create --open to Quick Reference table
- Document both create and edit commands comprehensively
- Add editor configuration section (shared between commands)
- Update content.instructions.md with CLI workflow examples
- Add NON-BLOCKING-IMPLEMENTATION-COMPLETE.md summary document
- Clarify non-blocking behavior for AI agents
* chore: remove ephemeral documentation files
Remove temporary documentation files used during development:
- CLAUDE-docs-tooling-issue21.md
- IMPLEMENTATION-SUMMARY.md
- ISSUE-21-FIX-README.md
- NON-BLOCKING-IMPLEMENTATION-COMPLETE.md
- TEST-RESULTS.md
All relevant documentation has been integrated into:
- README.md
- scripts/docs-cli/README.md
- .github/copilot-instructions.md
- .github/instructions/content.instructions.md
- .claude/skills/docs-cli-workflow/SKILL.md
* Fix url-parser.js broken import by moving to shared library location (#6727)
* Initial plan
* refactor: move url-parser.js to shared library location and fix imports
Co-authored-by: jstirnaman <212227+jstirnaman@users.noreply.github.com>
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: jstirnaman <212227+jstirnaman@users.noreply.github.com>
* Update scripts/docs-cli/__tests__/process-manager.test.js
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Update scripts/docs-cli/__tests__/editor-resolver.test.js
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
---------
Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Closes influxdata/dar/issues/587
- Wrong flag name corrected
- Added `--aws-default-region` flag with explanatory note
- Added `--plugin-dir` requirement documentation for process
- Add new cypress-e2e-testing skill with:
- Hugo server management guidance (port 1315, auto-start)
- Test execution patterns and quick reference
- API reference test prerequisites
- Failure analysis and debugging strategies
- Error pattern categorization
- Update docs-cli-workflow skill with related skills section
- Streamline hugo-template-dev skill content
Add extractStyleAttributes() function to convert headings like:
`#### Heading <!-- {.class} -->`
to:
`#### Heading {.class}`
This allows source READMEs to render cleanly on GitHub while still
supporting Hugo style classes in docs-v2.
- maintains semantic flow of tab labels and code-tab labels with their
tab contents
- formats labels in bold to avoid breaking heading level semantics
- wraps tabbed content in begin/end comments to denote options
Add guidance for AI tools about generated documentation:
- content/shared/influxdb3-plugins/plugins-library/official/CLAUDE.md
- content/telegraf/CLAUDE.md
These files document the sync workflows and prevent AI tools from
editing generated content directly.
* fix(shortcodes): latest-patch CLI version for cloud-serverless
Add cloud-serverless to the condition that handles cloud products,
and use influxdb.latest directly for CLI version lookups.
Root cause: The shortcode only checked for "cloud" version when
deciding to use the influxdb CLI version. Cloud Serverless pages
have $product="influxdb3" which doesn't exist in products.yml,
causing $latestVersion to be empty.
Fix: Calculate $influxdbLatest directly from products.influxdb.latest
within the CLI block, ensuring cloud products always use the correct
lookup key (v2) for the influx CLI version.
Includes Cypress test covering v2, Cloud, and Cloud Serverless.
Closes#6646
* Restore latest-patch shortcode for cloud-serverless. Revert "hotfix: influxdb (v2) CLI version (#6644)"
This reverts commit 5f792bd47a.
* chore(link-checker): update configs for v1.3.0 severity classification (#6688)
Remove exclusions for sites that return 403/429 (bot protection) and
5xx (server errors) - these are now handled by severity classification:
- 403/401/429 → info (shown but don't fail CI)
- 5xx/timeout → warning (shown but don't fail CI)
- 404/410/DNS → error (fail CI)
Removed exclusions:
- GitHub, Slack, Reddit, StackOverflow
- Docker Hub, Grafana, Microsoft Learn
- Claude.ai, Dremio, Scarf, InfluxData support
Kept exclusions:
- Localhost/local network URLs
- Example/placeholder URLs
- CI-specific workarounds (canonical URLs, file fragments)
Added [severity] configuration section with default thresholds.
* feat: use current-version in upgrade guide
* chore(influxdb2): Update version 2.7 to 2.8. Use shortcode where supported. Punctuation fix. (#6680)
* Update content/influxdb/v2/install/upgrade/v1-to-v2/_index.md
* Update content/influxdb/v2/install/upgrade/v1-to-v2/_index.md
* Update content/influxdb/v2/install/upgrade/v1-to-v2/_index.md
---------
Co-authored-by: Jason Stirnaman <jstirnaman@influxdata.com>
- Fix broken link to parameterized queries in time-and-timezone.md
- Remove draft: true from Core and Enterprise InfluxQL parameterized queries
- Add HTTP API examples for Core/Enterprise using /api/v3/query_sql and
/api/v3/query_influxql endpoints
- Simplify list_code_example frontmatter to use query-only format across
all SQL and InfluxQL parameterized queries pages
- Fix api-endpoint shortcode arguments to use correct method, endpoint,
and api-ref parameters
Note: PR preview URLs show broken /version/ links but they render
correctly in local Hugo testing. The link replacement logic in
layouts/partials/article/content.html processes these correctly.
Closes#6672
* docs(telegraf): add missing serializer documentation
Add documentation for missing output data formats (serializers):
- binary: Binary protocol serialization with configurable entries
- cloudevents: CloudEvents JSON format (v0.3 and v1.0)
- csv: Comma-separated values with configurable columns
- prometheus: Prometheus text exposition format
- prometheusremotewrite: Prometheus protobuf for remote write
- wavefront: Wavefront data format
Also fixes:
- Rename messagepack.md to msgpack.md to match Telegraf source
This completes the serializer documentation coverage.
* Apply suggestion from @jstirnaman
* Apply suggestion from @jstirnaman
* docs(telegraf): clarify prometheusremotewrite example shows logical representation (#6661)
* Initial plan
* docs(telegraf): clarify prometheusremotewrite example shows logical representation
Co-authored-by: jstirnaman <212227+jstirnaman@users.noreply.github.com>
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: jstirnaman <212227+jstirnaman@users.noreply.github.com>
* Update content/telegraf/v1/data_formats/output/binary.md
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* docs: improve prometheus serializer warnings and clarify configuration options (#6660)
* hotfix(influxdb3): fix duplicate menu entry for Enterprise security page
Change menu key from influxdb3_core to influxdb3_enterprise.
* chore(influxdb3) Security: style and cleanup: intro, requirements, callouts
* fix(influxdb3): restore clean install.md from jdstrand branch
Remove duplicate content and fix malformed code blocks introduced
during rebase conflict resolution.
* docs(telegraf): add design plan for batch format documentation
Defines documentation changes to clarify:
- Output plugin vs serializer relationship
- use_batch_format option location and purpose
- Histogram/summary handling with prometheus_client
- Choosing the right output approach
* docs(telegraf): clarify output plugins, serializers, and batch format
- Add "How output plugins use serializers" section explaining the
relationship between output plugins and data formats
- Add "Choosing an output approach" guidance by destination and metric type
- Create prometheus serializer doc with histogram/summary guidance
- Add "Use this plugin for..." sections to prometheus_client
- Add Data formats subsection to configuration.md
- Expand output plugins index with serializer relationship
Addresses confusion about use_batch_format being an output plugin option
rather than a serializer option, and provides clear guidance on when to
use prometheus_client vs the prometheus serializer.
---------
Co-authored-by: Jason Stirnaman <jstirnaman@influxdata.com>
---------
Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* docs(influxdb3): add Helm chart deployment guide for Enterprise
Add documentation for deploying InfluxDB 3 Enterprise on Kubernetes
using the official Helm chart (currently in beta). The guide covers:
- Prerequisites and licensing information
- Installation steps using Helm
- Configuration options for object storage (S3, Azure, GCS, MinIO)
- Cluster and ingress configuration
- Upgrade and uninstall procedures
- Troubleshooting commands
- Support and issue reporting links
* chore(influxdb3): Cleanup install
* chore(influxdb3): add version metadata for systemd
Move documentation on Raft authentication from data nodes page to meta
node page. Also add note with recommended staging for enabling Raft
authentication in an existing cluster.
Co-authored-by: Jason Stirnaman <jstirnaman@influxdata.com>
* fix(ci): add path offset for PR preview subdirectory baseURL
When PR preview builds use a subdirectory baseURL like
/docs-v2/pr-preview/pr-XXXX/, shortcodes that parse .RelPermalink
to detect product context fail because the path has extra segments.
This fix:
- Adds config/pr-preview/params.yml with prPreviewPathOffset: 3
- Updates workflow to use -e pr-preview environment
- Updates api-endpoint, influxdb/host, and children shortcodes to
use the offset when indexing path segments
- Adds nil-safety with default fallback for placeholder_host
Normal builds are unaffected (offset defaults to 0).
* fix(ci): add path offset to product-name and sidebar for PR previews
Apply the same prPreviewPathOffset fix to product-name.html and
sidebar.html that was applied in the initial PR #6665.
These templates parse RelPermalink to detect product context, but when
baseURL includes a subdirectory path (e.g., /docs-v2/pr-preview/pr-XXXX/),
the path indices shift. This fix uses the configurable offset to skip
extra path segments in PR preview builds.
* fix(ci): skip PR preview for fork PRs and add notice comment
Fork PRs cannot deploy to gh-pages because GITHUB_TOKEN has read-only
access to the base repository. This is a GitHub security feature.
Changes:
- Add condition to skip preview job for fork PRs
- Add fork-notice job to post helpful comment explaining limitation
- Include local preview instructions for contributors
* Initial plan
* docs: move perf-debug example output to query command reference
Co-authored-by: jstirnaman <212227+jstirnaman@users.noreply.github.com>
* docs: update placeholder syntax and add link to query command
Co-authored-by: jstirnaman <212227+jstirnaman@users.noreply.github.com>
* docs: add disclaimer for example performance statistics output
Co-authored-by: jstirnaman <212227+jstirnaman@users.noreply.github.com>
* fix(influxdb3): update --perf-debug example output to match documented query
Regenerate example performance statistics output using the documented
query (SELECT SUM(temp) FROM home). Tested influxctl query --perf-debug
command to verify output format and values.
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: jstirnaman <212227+jstirnaman@users.noreply.github.com>
Co-authored-by: Jason Stirnaman <jstirnaman@influxdata.com>
When PR preview builds use a subdirectory baseURL like
/docs-v2/pr-preview/pr-XXXX/, shortcodes that parse .RelPermalink
to detect product context fail because the path has extra segments.
This fix:
- Adds config/pr-preview/params.yml with prPreviewPathOffset: 3
- Updates workflow to use -e pr-preview environment
- Updates api-endpoint, influxdb/host, and children shortcodes to
use the offset when indexing path segments
- Adds nil-safety with default fallback for placeholder_host
Normal builds are unaffected (offset defaults to 0).
When PR preview builds use a subdirectory baseURL like
/docs-v2/pr-preview/pr-XXXX/, shortcodes that parse .RelPermalink
to detect product context fail because the path has extra segments.
This fix:
- Adds config/pr-preview/params.yml with prPreviewPathOffset: 3
- Updates workflow to use -e pr-preview environment
- Updates api-endpoint, influxdb/host, and children shortcodes to
use the offset when indexing path segments
- Adds nil-safety with default fallback for placeholder_host
Normal builds are unaffected (offset defaults to 0).
* refactor(ci): improve PR preview with products.yml and index page
- Load product prefixes from data/products.yml (single source of truth)
- Build regex pattern dynamically from loaded namespaces
- Fix CSS copying: Hugo outputs fingerprinted CSS at root level
- Generate index.html with clickable links to preview pages
- Add test for influxdb3_explorer namespace
This keeps the URL parser in sync as new products are added and
provides a better preview experience with navigable links.
* fix(ci): set baseURL for preview subdirectory deployment
Hugo generates absolute paths for fingerprinted assets based on baseURL.
When deploying to GitHub Pages subdirectory (pr-preview/pr-XXXX/), assets
were incorrectly resolving to the root instead of the preview path.
This sets --baseURL to the correct preview URL so all asset paths work.
- Load product prefixes from data/products.yml (single source of truth)
- Build regex pattern dynamically from loaded namespaces
- Fix CSS copying: Hugo outputs fingerprinted CSS at root level
- Generate index.html with clickable links to preview pages
- Add test for influxdb3_explorer namespace
This keeps the URL parser in sync as new products are added and
provides a better preview experience with navigable links.
* fix: add a few missing DEB/RPM instructions for license activation
* fix: sourcing shell config only needed with quick installs
* chore: address review feedback from Jason
* fix: remove a couple of mis-merges and clarify DEB/RPM is non-Docker
* chore: update install and license info for DEB/RPM
* chore: incorporate formatting and style feedback from Jason
* fix(influxdb3): Install: ToC and merge cleanup
---------
Co-authored-by: Jason Stirnaman <jstirnaman@influxdata.com>
* hotfix(influxdb3): fix duplicate menu entry for Enterprise security page
Change menu key from influxdb3_core to influxdb3_enterprise.
* chore(influxdb3) Security: style and cleanup: intro, requirements, callouts