Commit Graph

9 Commits (507ec68cf7054074ee3d460151dbca73e518c19d)

Author SHA1 Message Date
Jason Stirnaman b951d3c27a
feat(ci): add doc review pipeline with auto-labeling and Copilot review (#6890)
* feat: add doc review pipeline implementation plan

Detailed plan for two interconnected systems:
1. Label system overhaul (22 automation-driven labels replacing 30+ inconsistent ones)
2. Doc review workflow (Claude visual review + Copilot structural review with screenshots)

This is a plan document only — no implementation changes.

https://claude.ai/code/session_01D5rLaHdQv9iBL55UEsdQFt

* fix: split product:v3 into v3-monolith and v3-distributed labels

- product:v3-monolith: Core, Enterprise (single-node / clusterable)
- product:v3-distributed: Cloud Serverless, Cloud Dedicated, Clustered
- Updated auto-label path mappings to match content directory structure
- Updated migration mapping and label count (22 → 23)

https://claude.ai/code/session_01D5rLaHdQv9iBL55UEsdQFt

* feat: define agent instruction file architecture in Phase 3

- One CLAUDE.md (pointer) → role-specific files in .claude/agents/
- doc-triage-agent.md: label taxonomy, path mapping, priority rules
- doc-review-agent.md: review scope, severity classification, output format
- Prompt file (.github/prompts/) references agent file, stays workflow-specific
- Updated file summary and implementation order

https://claude.ai/code/session_01D5rLaHdQv9iBL55UEsdQFt

* feat: move visual/screenshot review from Claude to Copilot

Claude now handles diff-only Markdown review (frontmatter, shortcodes,
style, terminology). Copilot handles visual review by analyzing
screenshots posted as images in PR comments.

Key changes:
- Job 3 (Claude) runs in parallel with Jobs 1→2→4 (diff-only, no screenshots)
- Job 4 (Copilot) analyzes screenshots via @copilot PR comment mentions
- Two prompt files: doc-review.md (Claude), copilot-visual-review.md (Copilot)
- doc-review-agent.md scoped to diff-only (no screenshot analysis)
- Q1 resolved: screenshots delivered to Copilot via PR comment images
- Reduced Claude API cost (no image processing)
- Added Copilot failure handling (fallback to human review of artifacts)

https://claude.ai/code/session_01D5rLaHdQv9iBL55UEsdQFt

* chore: resolve all open questions in doc review pipeline plan

Convert Q2–Q5 from open recommendations to resolved decisions:
- Q2: Advisory only (no required status checks) until false-positive rate confirmed
- Q3: Playwright for CI screenshots, Puppeteer for local debugging
- Q4: Poll preview URL with 15s interval and 10-min timeout
- Q5: Cost acceptable with existing mitigations (path filters, skip-review, concurrency)

Rename section from "Open Questions" to "Decisions (Resolved)".

https://claude.ai/code/session_01D5rLaHdQv9iBL55UEsdQFt

* Apply suggestions from code review

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Fix label naming inconsistency and document workflow migration requirements (#6893)

* Initial plan

* fix: resolve label naming inconsistency and document workflow updates

- Rename review:approved to approval:codeowner to avoid confusion with review/* labels
- Add note explaining the distinct prefix to prevent implementor confusion
- Document required workflow updates for sync-plugin-docs label migration
- Specify exact files and line numbers that need updating

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>

* feat(ci): add doc review pipeline and deduplicate instruction files

Add Phase 2-3 pipeline components: doc-review workflow (3-job
architecture), Claude/Copilot review prompts, URL resolver script,
triage and review agents, and label guide.

Deduplicate AGENTS.md (254→96 lines) by removing content available
in referenced docs. Remove duplicate sections from
copilot-instructions.md (264→221 lines). AGENTS.md now contains
only high-signal guidelines loaded every session: commands,
constraints, style rules, product paths, and reference pointers.

* task: updated PR pipeline plan

* task: remove old cli plan

* task: products file now contains content path mappings and (GitHub) label groups for each product. Product group labels will be used to assign reviewers and help with content checks.

* feat(ci): add auto-label workflow for PR product detection

Add auto-label workflow that applies product and source labels to
PRs based on changed file paths, using data/products.yml as the
source of truth. Add workflow-utils.js shared helper for product
path matching.

* refactor(ci): extract shared label and review format definitions

Consolidate duplicated label definitions and review comment format
into shared source-of-truth files to prevent context drift.

New files:
- data/labels.yml: source, waiting, workflow, review, and
  product:shared label definitions (names, colors, descriptions)
- .github/templates/review-comment.md: severity levels, comment
  structure, result rules, and result-to-label mapping

Updated consumers to reference shared files instead of inline copies:
- .claude/agents/doc-review-agent.md
- .claude/agents/doc-triage-agent.md
- .github/prompts/copilot-visual-review.md
- .github/LABEL_GUIDE.md

Workflow fixes:
- Pin all GitHub Actions to SHA hashes
- Fix fromJson() for url-count comparison in doc-review.yml
- Fix fallback handler to remove all review:* labels before re-adding

* refactor(ci): replace Claude review with Copilot native code review

- Remove claude-code-action job, use `copilot-reviews` reviewer instead
- Extract review criteria to .github/instructions/content-review.instructions.md
- Simplify copilot-instructions.md by removing duplicated content
- Harden auto-label workflow (scoped permissions, pagination, concurrency)
- Upsert visual review comments instead of creating duplicates
- Delete unused .github/prompts/doc-review.md

* Update .github/workflows/doc-review.yml

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update .github/DOC-REVIEW-PIPELINE-PLAN.md

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* task: update review pipeline plan

* task: add label-migration scripts. These are one-use scripts that we'll remove after the label migration

* Update .github/workflows/doc-review.yml

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update .github/workflows/doc-review.yml

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update .github/workflows/auto-label.yml

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Apply suggestions from code review

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Apply suggestions from code review

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* style: remove unnecessary escape in regex character class

* feat(ci): add workflow_dispatch to auto-label and doc-review workflows

- Add workflow_dispatch with pr_number input to both workflows for
  manual testing and on-demand re-runs
- Migrate sync-plugin-docs label references to source:sync
- Add area:agents, area:ci, area:links, release:*, good-first-issue,
  source:feedback, waiting:pr to labels.yml
- Update products.yml: influxdb_cloud label_group v2 -> v2-cloud
- Track label renames and deletions in LABEL_GUIDE.md

* fix(ci): replace npm ci with targeted js-yaml install in auto-label

npm ci fails in sparse checkout because package-lock.json is not
included. The workflow only needs js-yaml for YAML parsing.

* fix(ci): add --legacy-peer-deps to auto-label npm install

* task: updated labels for migration

* docs: update pipeline plan with test results and completion status

* test: reapply reverted serve.md changes for e2e pipeline test

Reverse the revert from 2f8efd6 to provide content changes that
exercise the auto-label and doc-review workflows end-to-end.

* fix(ci): fix preview URL polling in doc-review visual review

curl --head outputs response headers before the status code from -w,
so STATUS contained "HTTP/2 200 ...200" instead of just "200".
Drop --head and add -o /dev/null to capture only the status code.

* fix: correct broken fragment links in InfluxDB 3 serve.md files (#6910)

* Initial plan

* fix: correct broken links in serve.md files for enterprise config-options

Co-authored-by: jstirnaman <212227+jstirnaman@users.noreply.github.com>

* Update content/influxdb3/enterprise/reference/cli/influxdb3/serve.md

---------

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>

---------

Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com>
2026-03-09 20:22:31 -05:00
Jason Stirnaman 7f28155055
Enforce errors-only validation for plugin READMEs in workflow (#6782) 2026-02-02 09:53:58 -06:00
meelahme 3c30f19436 Disable screenshot generation for MVP 2025-11-17 13:30:01 -08:00
meelahme e0d56ad41e fix: added npm install playwrite 2025-11-14 13:25:54 -08:00
meelahme 930bb7091b fix: correct relative path to influxdb3_plugins dir 2025-11-14 10:53:57 -08:00
meelahme e18e2a1daf debug: add file structure inspection to identify path issue 2025-11-14 10:28:02 -08:00
meelahme df8d5f8378 fix: combine PAT and path fixes for plugin sync 2025-11-10 10:00:39 -08:00
meelahme d645e75215 fix: use PAT for reading from influxdb3_plugins 2025-11-10 09:42:50 -08:00
Jason Stirnaman 20562d5bb6
Automate plugin documentation sync workflow between influxdb3_plugins and docs-v2 (#6329)
* feat(plugins): add automated plugin documentation sync workflow

- Add GitHub Actions workflow for syncing plugin docs from influxdb3_plugins
- Create issue template for triggering sync requests
- Add Node.js transformation script (port_to_docs.js) with ES modules
- Add mapping configuration (docs_mapping.yaml) for all official plugins
- Add npm scripts for plugin sync operations
- Include comprehensive documentation in helper-scripts/influxdb3-plugins/README.md

The workflow provides:
- Issue-triggered automation with no cross-repo secrets required
- Validation of source READMEs against template requirements
- Content transformation with Hugo shortcodes and GitHub URLs
- Screenshot generation for visual validation
- Automatic PR creation with detailed change summaries

* Updated source paths in docs_mapping.yaml to use ./influxdb3_plugins/ instead of ../influxdb3_plugins/ to match what the
  GitHub Actions workflow expects when it clones the
  repository:

  1. GitHub Actions workflow clones to ./influxdb3_plugins/
  2. docs_mapping.yaml references
  ./influxdb3_plugins/influxdata/[plugin]/README.md
  3. Local development can manually clone the repo to the same
   location for testing

  Tupdated all the source paths in
  docs_mapping.yaml to use ./influxdb3_plugins/ instead of
  ../influxdb3_plugins/. This now matches exactly what the
  GitHub Actions workflow expects when it clones the
  repository.

  The paths are now consistent:

  1. GitHub Actions workflow clones to ./influxdb3_plugins/
  2. docs_mapping.yaml references
  ./influxdb3_plugins/influxdata/[plugin]/README.md
  3. Local development can manually clone the repo to the same
   location for testing

  This resolves the inconsistency and makes the automation
  more reliable. For local development, developers would
  just need to run:

  git clone
  https://github.com/influxdata/influxdb3_plugins.git

  From the docs-v2 root directory, and then they can use the
  same paths that the automation uses.

* Updated source paths in docs_mapping.yaml to use ./influxdb3_plugins/ instead of ../influxdb3_plugins/ to match what the
  GitHub Actions workflow expects when it clones the
  repository:

  1. GitHub Actions workflow clones to ./influxdb3_plugins/
  2. docs_mapping.yaml references
  ./influxdb3_plugins/influxdata/[plugin]/README.md
  3. Local development can manually clone the repo to the same
   location for testing

  Tupdated all the source paths in
  docs_mapping.yaml to use ./influxdb3_plugins/ instead of
  ../influxdb3_plugins/. This now matches exactly what the
  GitHub Actions workflow expects when it clones the
  repository.

  The paths are now consistent:

  1. GitHub Actions workflow clones to ./influxdb3_plugins/
  2. docs_mapping.yaml references
  ./influxdb3_plugins/influxdata/[plugin]/README.md
  3. Local development can manually clone the repo to the same
   location for testing

  This resolves the inconsistency and makes the automation
  more reliable. For local development, developers would
  just need to run:

  git clone
  https://github.com/influxdata/influxdb3_plugins.git

  From the docs-v2 root directory, and then they can use the
  same paths that the automation uses.

* Jmercer/plugin sync test (#6468)

* fix: update workflow branch references from master to main

* fix: update issue template branch references from master to main

- Update sync-plugin-docs.yml description (line 40)
- Update placeholder from 'master' to 'main' (line 41)
- Update default value from 'master' to 'main' (line 42)
- Add influxdb3_plugins/ to .gitignore
- Ensures template matches influxdb3_plugins default branch

* Update .gitignore

---------

Co-authored-by: Jason Stirnaman <stirnamanj@gmail.com>

* Update docs_mapping.yaml

* Apply suggestion from @Copilot

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Apply suggestion from @jstirnaman

* Apply suggestion from @jstirnaman

* Apply suggestion from @jstirnaman

* Apply suggestion from @jstirnaman

* Use <docs-root>/.ext/influxdb3_plugins for the source path

---------

Co-authored-by: Jameelah Mercer <36314199+MeelahMe@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-10-20 17:18:34 -05:00